/* ============================================================
   PAX CLOUD — DESIGN SYSTEM "Carbon"
   Carbon neutral base · gold brand thread · semantic status palette
   ============================================================ */

:root, [data-theme="dark"] {
  --bg:#0e0f11; --surface:#17181b; --surface-2:#1e1f23; --surface-3:#26272c; --rail-bg:#121316;
  --text:#e8e9ec; --text-muted:#9a9ca3; --text-dim:#63656d;
  --border:rgba(255,255,255,0.06); --border-strong:rgba(255,255,255,0.11);
  --accent:#d8b25c; --accent-hover:#e8c976; --accent-soft:rgba(216,178,92,0.12); --accent-ink:#1a1206;
  --gold:#d8b25c; --gold-hi:#e8c976; --gold-soft:rgba(216,178,92,0.12); --gold-ink:#1a1206;
  --oxblood:#51070d;
  --info:#5b9dd9; --info-soft:rgba(91,157,217,0.13);
  --ok:#56b884; --ok-soft:rgba(86,184,132,0.13);
  --warn:#d9a441; --warn-soft:rgba(217,164,65,0.13);
  --danger:#dd6b5c; --danger-soft:rgba(221,107,92,0.13);
  --accent2:#9b8cc4; --accent2-soft:rgba(155,140,196,0.13);
  --shadow:0 1px 2px rgba(0,0,0,0.4),0 6px 20px rgba(0,0,0,0.22); --shadow-lg:0 8px 40px rgba(0,0,0,0.4);
  --radius:14px; --radius-sm:9px;
  --sans:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:ui-monospace,"Cascadia Code",Consolas,monospace;
}
[data-theme="light"] {
  --bg:#f4f5f7; --surface:#ffffff; --surface-2:#f0f1f4; --surface-3:#e7e9ee; --rail-bg:#16171a;
  --text:#1a1c20; --text-muted:#5c5f68; --text-dim:#9498a2;
  --border:rgba(0,0,0,0.08); --border-strong:rgba(0,0,0,0.14);
  --accent:#a6801f; --accent-hover:#8a6a17; --accent-soft:rgba(166,128,31,0.12); --accent-ink:#ffffff;
  --gold:#a6801f; --gold-hi:#8a6a17; --gold-soft:rgba(166,128,31,0.12); --gold-ink:#ffffff;
  --info:#3b7cbf; --info-soft:rgba(59,124,191,0.10);
  --ok:#2f9c68; --ok-soft:rgba(47,156,104,0.10);
  --warn:#bd8420; --warn-soft:rgba(189,132,32,0.12);
  --danger:#c94f3d; --danger-soft:rgba(201,79,61,0.10);
  --accent2:#7d6cae; --accent2-soft:rgba(125,108,174,0.10);
  --shadow:0 1px 2px rgba(0,0,0,0.05),0 4px 16px rgba(0,0,0,0.07); --shadow-lg:0 10px 40px rgba(0,0,0,0.12);
}

*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; min-height:100%; }
body { font-family:var(--sans); color:var(--text); background:var(--bg); font-size:15px; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
h1,h2,h3 { margin:0; letter-spacing:-0.02em; }
.mono { font-family:var(--mono); font-size:0.88em; }

/* ===== LOGIN ===== */
.page-login { background:radial-gradient(1100px 600px at 15% -10%,rgba(216,178,92,0.08),transparent 55%),linear-gradient(160deg,#1a1b1f 0%,#0e0f11 60%); }
.login-shell { min-height:100vh; display:grid; grid-template-columns:minmax(280px,1.05fr) minmax(320px,0.95fr); }
.brand-panel,.form-panel { display:flex; flex-direction:column; justify-content:center; padding:56px 64px; }
.brand-panel { border-right:1px solid var(--border); }
.login-logo { max-width:340px; width:100%; height:auto; margin-bottom:28px; }
.eyebrow { margin:0 0 18px; letter-spacing:0.22em; text-transform:uppercase; font-size:12px; color:var(--gold); }
.brand-panel h1 { font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.08; font-weight:640; letter-spacing:-0.04em; }
.lede { max-width:34ch; margin:22px 0 0; color:var(--text-muted); line-height:1.55; }
.form-panel form { width:100%; max-width:380px; padding:28px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-lg); }
.form-panel h2 { font-size:1.35rem; }
.form-hint { margin:8px 0 22px; color:var(--text-muted); font-size:0.95rem; }
.field { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; font-size:0.82rem; color:var(--text-muted); }
.field-input { width:100%; padding:12px 13px; border:1px solid var(--border-strong); border-radius:10px; background:var(--surface-2); color:var(--text); font:inherit; font-size:1rem; }
.field-input:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.form-errors,.errorlist { margin:0 0 16px; padding:0; list-style:none; color:var(--danger); font-size:0.9rem; }
.btn-primary { width:100%; margin-top:8px; padding:12px 16px; border:0; border-radius:10px; background:var(--gold); color:var(--gold-ink); font:inherit; font-weight:650; cursor:pointer; }
.btn-primary:hover { background:var(--gold-hi); }

/* ===== APP SHELL ===== */
.page-app { min-height:100vh; }
.app-shell { display:grid; grid-template-columns:212px 1fr; min-height:100vh; background:var(--bg); color:var(--text); }
[data-rail="collapsed"] .app-shell { grid-template-columns:64px 1fr; }
.rail { display:flex; flex-direction:column; align-items:stretch; gap:4px; padding:16px 12px; background:var(--rail-bg); border-right:1px solid var(--border); }
.rail-mark { display:flex; align-items:center; justify-content:flex-start; padding:4px 6px 16px; background:transparent; }
.rail-logo-full { height:32px; width:auto; }
.rail-logo-mark { height:32px; width:32px; display:none; }
[data-rail="collapsed"] .rail-mark { justify-content:center; padding:4px 0 16px; }
[data-rail="collapsed"] .rail-logo-full { display:none; }
[data-rail="collapsed"] .rail-logo-mark { display:block; }
.rail-items { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.rail-link,.rail-theme,.rail-collapse { display:flex; align-items:center; gap:12px; width:100%; padding:9px 11px; border:0; border-radius:10px; background:transparent; color:var(--text-muted); font:inherit; font-size:0.9rem; font-weight:500; cursor:pointer; text-align:left; }
.rail-link:hover,.rail-theme:hover,.rail-collapse:hover { background:var(--surface-2); color:var(--text); }
.rail-link.is-active { background:var(--gold-soft); color:var(--gold); font-weight:600; }
.rail-link svg,.rail-theme svg,.rail-collapse svg,.ic { width:19px; height:19px; flex:none; }
.rail-label { white-space:nowrap; }
.rail-theme { margin-top:auto; }
.rail-collapse .ic { transition:transform .15s; }
[data-rail="collapsed"] .rail-collapse .ic { transform:rotate(180deg); }
[data-rail="collapsed"] .rail-label { display:none; }
[data-rail="collapsed"] .rail-link,[data-rail="collapsed"] .rail-theme,[data-rail="collapsed"] .rail-collapse { justify-content:center; padding:10px 0; }
[data-rail="collapsed"] .rail { align-items:center; }
/* rail groups */
.rail-group { margin:2px 0; }
.rail-group-head { width:100%; background:none; border:none; cursor:pointer; display:flex; align-items:center; gap:10px; padding:9px 12px; color:var(--text-dim); font:inherit; font-size:0.9rem; border-radius:var(--radius-sm); }
.rail-group-head:hover { color:var(--text); background:var(--gold-soft); }
.rail-caret { margin-left:auto; transition:transform .15s; flex:none; }
.rail-group.is-open .rail-caret { transform:rotate(90deg); }
.rail-subitems { list-style:none; margin:0; padding:0; max-height:0; overflow:hidden; transition:max-height .2s ease; }
.rail-group.is-open .rail-subitems { max-height:300px; }
.rail-sublink { display:block; padding:8px 11px 8px 42px; color:var(--text-muted); font-size:0.87rem; border-radius:10px; font-weight:500; }
.rail-sublink:hover { background:var(--surface-2); color:var(--text); }
[data-rail="collapsed"] .rail-group-head .rail-label,[data-rail="collapsed"] .rail-subitems { display:none; }
[data-rail="collapsed"] .rail-group-head { justify-content:center; padding:8px 0; }

.app-main { display:flex; flex-direction:column; min-width:0; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:60px; padding:0 28px; border-bottom:1px solid var(--border); background:var(--bg); }
.mark { display:inline-flex; align-items:center; gap:10px; color:var(--text); font-weight:600; font-size:0.95rem; }
.topbar-logo { height:22px; width:22px; }
.topbar-right { display:flex; align-items:center; gap:14px; }
.who { color:var(--text-muted); font-size:0.88rem; }
.btn-ghost { padding:8px 14px; border:1px solid var(--border-strong); border-radius:var(--radius-sm); background:transparent; color:var(--text); font:inherit; font-size:0.88rem; cursor:pointer; }
.btn-ghost:hover { border-color:var(--gold); color:var(--gold); }
.app-canvas { flex:1; display:flex; min-height:0; background:var(--bg); }
.canvas-empty { flex:1; display:grid; place-items:center; }
.canvas-quiet { color:var(--text-dim); font-size:0.95rem; }
.msgs { padding:14px 34px 0; }
.msg { padding:11px 15px; border-radius:var(--radius-sm); font-size:0.9rem; margin-bottom:8px; }
.msg-success { background:var(--ok-soft); color:var(--ok); border:1px solid rgba(86,184,132,0.3); }
.msg-error { background:var(--danger-soft); color:var(--danger); border:1px solid rgba(221,107,92,0.3); }

/* ===== PAGES ===== */
.listpage,.detailpage { padding:30px 36px; max-width:1560px; width:100%; margin:0 auto; }
.formpage { padding:30px 36px; max-width:1120px; margin:0 auto; }
.listpage-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; flex-wrap:wrap; }
.listpage-title,.detail-title { font-size:1.55rem; font-weight:660; }
.backlink { color:var(--text-muted); font-size:0.9rem; }
.backlink:hover { color:var(--gold); }
.detail-head { display:flex; align-items:center; gap:14px; margin:10px 0 6px; flex-wrap:wrap; }
.detail-actions { display:inline-flex; gap:8px; margin-left:auto; }
.detail-pax { color:var(--gold); font-size:0.9rem; background:var(--gold-soft); padding:3px 11px; border-radius:999px; }
.editbtn { margin:6px 0 14px; display:inline-block; }

/* ===== BUTTONS ===== */
.btn-gold { display:inline-flex; align-items:center; gap:7px; padding:9px 17px; border:0; border-radius:var(--radius-sm); background:var(--gold); color:var(--gold-ink); font:inherit; font-weight:600; font-size:0.88rem; cursor:pointer; text-decoration:none; }
.btn-gold:hover { background:var(--gold-hi); }
.btn-sm { padding:8px 14px; font-size:0.85rem; }

/* ===== CHIPS / PILLS ===== */
.chips { display:flex; gap:8px; flex-wrap:wrap; }
.chip { padding:7px 14px; border-radius:999px; border:1px solid var(--border); color:var(--text-muted); font-size:0.83rem; }
.chip:hover { border-color:var(--border-strong); color:var(--text); }
.chip.is-on { background:var(--gold-soft); border-color:transparent; color:var(--gold); font-weight:600; }
.pill { display:inline-flex; align-items:center; gap:6px; padding:3px 11px; border-radius:999px; font-size:0.76rem; font-weight:600; }
.pill-ok { background:var(--ok-soft); color:var(--ok); }
.pill-off { background:var(--surface-3); color:var(--text-dim); }

/* ===== TABLES ===== */
.tablewrap { width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.dtable { width:100%; border-collapse:collapse; font-size:0.9rem; }
.dtable thead th { text-align:left; padding:13px 18px; color:var(--text-dim); font-weight:600; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; border-bottom:1px solid var(--border); }
.dtable tbody td { padding:14px 18px; border-bottom:1px solid var(--border); color:var(--text); }
.dtable tbody tr { cursor:pointer; transition:background .1s; }
.dtable tbody tr:hover { background:var(--surface-2); }
.dtable tbody tr:last-child td { border-bottom:0; }
.dtable .mono { color:var(--gold); }
.empty { text-align:center; color:var(--text-muted); padding:28px; }
.pager { display:flex; align-items:center; gap:14px; justify-content:center; margin-top:16px; color:var(--text-muted); font-size:0.9rem; }
.pager a { color:var(--gold); }

/* ===== CARDS ===== */
.cardgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:16px; align-items:start; }
.card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px 22px; box-shadow:var(--shadow); }
.card-muted { opacity:0.92; }
.card-h { margin:0 0 15px; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-dim); font-weight:600; display:flex; align-items:center; gap:8px; }
.card-h svg { width:15px; height:15px; color:var(--gold); }
.kv { display:grid; grid-template-columns:minmax(96px,38%) 1fr; gap:10px 14px; margin:0; font-size:0.9rem; align-items:baseline; }
.kv dt { color:var(--text-muted); }
.kv dd { margin:0; color:var(--text); font-weight:500; }
.kv-inline { grid-template-columns:repeat(auto-fit,minmax(56px,1fr)); text-align:center; gap:8px; }
.card-note { margin:12px 0 0; color:var(--text-dim); font-size:0.83rem; }
.notes { margin:0; line-height:1.55; white-space:pre-wrap; max-width:70ch; }

/* ===== SHARED: fact bar (app-wide standard for read-only field display) =====
   Horizontal, wrapping label/value pairs. Use anywhere a set of read-only
   fields is shown. Replaces vertical .kv where horizontal flow reads better. */
.factbar { display:flex; flex-wrap:wrap; gap:22px 34px; align-items:baseline; }
.fact { display:flex; flex-direction:column; gap:3px; min-width:0; }
.fact-l { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--text-muted); font-weight:600; }
.fact-v { font-size:0.94rem; color:var(--text); font-weight:500; }
.fact-v.mono { font-size:0.9rem; }
.fact-v strong { color:var(--gold); }
.fact-wide { flex-basis:100%; }

/* ===== FORMS ===== */
.fieldgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px 18px; }
.ff { display:flex; flex-direction:column; gap:6px; min-width:0; }
.ff-wide,.ff.ff-wide { grid-column:1/-1; }
.ff label { font-size:0.78rem; color:var(--text-muted); font-weight:500; }
.ff input,.ff select,.ff textarea,.entity-form textarea { width:100%; min-width:0; box-sizing:border-box; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface-2); color:var(--text); font:inherit; font-size:0.92rem; }
.ff input:focus,.ff select:focus,.ff textarea:focus,.entity-form textarea:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.ff input:disabled,.ff select:disabled { opacity:0.5; cursor:not-allowed; }
.ff-check { flex-direction:row; align-items:center; gap:9px; }
.ff-check input { width:auto; accent-color:var(--gold); }
.ff-check label { order:2; font-size:0.9rem; color:var(--text); }
.ff-err { color:var(--danger); font-size:0.8rem; }
.entity-form .card { margin-bottom:18px; }
.entity-form textarea { min-height:72px; resize:vertical; }
.form-actions { margin-top:10px; }

/* ===== TABS ===== */
.tabbar { display:flex; gap:4px; border-bottom:1px solid var(--border); margin:22px 0 26px; flex-wrap:wrap; }
.tab { background:transparent; border:0; border-bottom:2px solid transparent; color:var(--text-muted); padding:11px 16px; font:inherit; font-size:0.92rem; font-weight:500; cursor:pointer; margin-bottom:-1px; }
.tab:hover { color:var(--text); }
.tab.is-active { color:var(--gold); border-bottom-color:var(--gold); font-weight:600; }
.tab-loading,.tab-empty { color:var(--text-dim); padding:30px 4px; max-width:70ch; }

/* ===== DUE / STATUS ===== */
.due { display:inline-block; padding:2px 9px; border-radius:6px; font-size:0.85rem; }
.due-ok { background:var(--ok-soft); color:var(--ok); }
.due-overdue { background:var(--danger-soft); color:var(--danger); }
.due-empty { color:var(--text-dim); }

/* ===== REGISTRATION (grid of cards) ===== */
.reg-block { margin-top:8px; }
.reg-topline { display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.reg-heading { font-size:1.15rem; font-weight:640; }
.reg-overall { font-size:0.82rem; padding:5px 14px; border-radius:999px; font-weight:600; display:inline-flex; align-items:center; gap:6px; }
.reg-overall.is-ok { background:var(--ok-soft); color:var(--ok); }
.reg-overall.is-overdue { background:var(--danger-soft); color:var(--danger); }
.accent-ck{--dc:#5b9dd9;} .accent-it{--dc:#d9a441;} .accent-vat{--dc:#56b884;} .accent-paye{--dc:#dd6b5c;}
.accent-wca{--dc:#4fb0a5;} .accent-uif{--dc:#5bb5c9;} .accent-customs{--dc:#9b8cc4;} .accent-cashbook{--dc:#d8b25c;}
.reg-strip { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.reg-chip { display:inline-flex; align-items:center; gap:6px; padding:7px 13px 7px 9px; border-radius:999px; border:1px solid var(--border); font-size:0.8rem; font-weight:600; color:var(--text-muted); }
.reg-chip .reg-icon-wrap { color:var(--dc); display:inline-flex; }
.reg-chip .reg-ic { width:15px; height:15px; }
.reg-chip:hover { border-color:var(--dc); color:var(--text); }
.reg-accordion { display:grid; grid-template-columns:repeat(auto-fill,minmax(380px,1fr)); gap:14px; align-items:start; }
.reg-domain { background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--dc,var(--border-strong)); border-radius:14px; overflow:hidden; box-shadow:var(--shadow); height:fit-content; }
.reg-domain.reg-overdue { border-left-color:var(--danger); }
.reg-summary { display:flex; align-items:center; gap:12px; padding:15px 18px; cursor:pointer; list-style:none; user-select:none; }
.reg-summary::-webkit-details-marker { display:none; }
.reg-summary:hover { background:var(--surface-2); }
.reg-icon-wrap { display:inline-flex; color:var(--dc); flex:none; }
.reg-ic { width:22px; height:22px; }
.reg-title-wrap { flex:1; display:flex; flex-direction:column; gap:1px; min-width:0; }
.reg-title { font-weight:600; font-size:0.92rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.reg-code { font-size:0.68rem; color:var(--text-dim); letter-spacing:0.05em; text-transform:uppercase; }
.reg-pill { font-size:0.78rem; padding:3px 9px; border-radius:999px; font-weight:600; flex:none; }
.reg-pill-ok { background:var(--ok-soft); color:var(--ok); }
.reg-pill-overdue { background:var(--danger-soft); color:var(--danger); }
.reg-pill-empty { background:var(--surface-3); color:var(--text-dim); }
.reg-edit-btn { flex:none; background:var(--gold-soft); color:var(--gold); border:0; border-radius:7px; padding:4px 12px; font-size:0.78rem; font-weight:600; cursor:pointer; margin-right:2px; }
.reg-edit-btn:hover { background:var(--gold); color:var(--gold-ink); }
.reg-body { padding:6px 18px 18px; border-top:1px solid var(--border); }
.reg-body .kv { margin-top:14px; grid-template-columns:minmax(110px,45%) 1fr; }

/* ===== MODALS ===== */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.6); backdrop-filter:blur(2px); display:grid; place-items:center; z-index:100; padding:20px; }
.modal { background:var(--surface); border:1px solid var(--border-strong); border-radius:16px; width:100%; max-width:440px; box-shadow:var(--shadow-lg); overflow:hidden; animation:modalpop .14s ease; }
.modal-sm { max-width:380px; }
@keyframes modalpop { from{opacity:0; transform:translateY(8px) scale(.98);} to{opacity:1; transform:none;} }
.modal-head { display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--border); }
.modal-head h3 { font-size:1.05rem; }
.modal-x { background:transparent; border:0; color:var(--text-muted); font-size:1.1rem; cursor:pointer; padding:4px; }
.modal-x:hover { color:var(--text); }
.modal-body { padding:20px 22px; display:flex; flex-direction:column; gap:15px; max-height:60vh; overflow-y:auto; }
.modal-foot { display:flex; justify-content:flex-end; gap:10px; padding:16px 22px; border-top:1px solid var(--border); background:var(--surface-2); }

/* ===== ADDRESSES & CONTACTS ===== */
.ac-wrap { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.ac-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.ac-head h3 { font-size:1rem; font-weight:640; }
.ac-list { display:grid; grid-template-columns:1fr; gap:12px; }
.ac-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:15px 17px; box-shadow:var(--shadow); }
.ac-card.is-primary { border-left:3px solid var(--gold); }
.ac-card-top { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.ac-name { font-weight:600; font-size:0.95rem; }
.ac-badge { font-size:0.7rem; padding:2px 9px; border-radius:999px; background:var(--gold-soft); color:var(--gold); font-weight:600; }
.ac-addr { margin:0; line-height:1.5; color:var(--text-muted); font-size:0.9rem; }
.ac-rowactions { margin-left:auto; display:inline-flex; gap:4px; }
.ac-link { background:transparent; border:0; color:var(--text-muted); font-size:0.8rem; cursor:pointer; padding:2px 6px; border-radius:5px; }
.ac-link:hover { color:var(--gold); background:var(--gold-soft); }
.ac-del:hover { color:var(--danger); background:var(--danger-soft); }
.ac-del-confirm { background:var(--danger); color:#fff; }
.ac-del-confirm:hover { background:#c94f3d; }
@media (max-width:860px){ .ac-wrap{ grid-template-columns:1fr; } }
@media (min-width:1300px){ .ac-list{ grid-template-columns:1fr 1fr; } }

/* ===== ROUTINES ===== */
.rt-wrap { max-width:900px; }
.rt-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.rt-head h3 { font-size:1rem; font-weight:640; }
.rt-count { font-size:0.78rem; color:var(--text-dim); font-weight:500; margin-left:6px; }
.rt-list { display:flex; flex-direction:column; gap:12px; }
.rt-card { background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--gold); border-radius:12px; padding:15px 18px; box-shadow:var(--shadow); }
.rt-card.rt-inactive { border-left-color:var(--text-dim); opacity:0.7; }
.rt-card-top { display:flex; align-items:center; gap:10px; margin-bottom:8px; flex-wrap:wrap; }
.rt-cat { font-weight:600; font-size:0.9rem; }
.rt-freq { font-size:0.72rem; padding:2px 9px; border-radius:999px; background:var(--surface-3); color:var(--text-muted); }
.rt-code { font-size:0.82rem; color:var(--gold); }
.rt-badge-off { font-size:0.7rem; padding:2px 8px; border-radius:999px; background:var(--surface-3); color:var(--text-dim); }
.rt-actions { margin-left:auto; display:inline-flex; gap:4px; }
.rt-note { margin:0; font-size:0.88rem; line-height:1.55; color:var(--text-muted); white-space:pre-wrap; }

/* ===== QC PROFILE ===== */
.qc-page { padding:30px 36px; max-width:1560px; width:100%; margin:0 auto; }
.qc-codebar { position:sticky; top:12px; z-index:5; margin:18px 0 22px; max-width:640px; }
.qc-code-inner { display:flex; align-items:center; gap:14px; background:linear-gradient(135deg,#1e1f23,#17181b); border:1px solid var(--gold-soft); border-radius:14px; padding:16px 22px; box-shadow:var(--shadow); }
.qc-code-label { font-size:0.72rem; letter-spacing:0.1em; color:var(--gold); font-weight:700; }
.qc-code-value { font-size:1.25rem; color:var(--text); letter-spacing:0.02em; }
.qc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:16px; align-items:start; width:100%; }
.qc-card { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:20px; box-shadow:var(--shadow); height:fit-content; }
.qc-card.qc-wide { grid-column:span 2; }
.qc-card-head { display:flex; align-items:center; gap:11px; margin-bottom:16px; }
.qc-card-head h2 { font-size:1rem; font-weight:640; }
.qc-sub { font-size:0.72rem; color:var(--text-dim); text-transform:uppercase; letter-spacing:0.05em; font-weight:500; }
.qc-ic { width:22px; height:22px; color:var(--gold); }
.qc-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 15px; }
.qc-fields label { display:flex; flex-direction:column; gap:5px; font-size:0.8rem; color:var(--text-muted); min-width:0; }
.qc-fields input,.qc-fields select { width:100%; min-width:0; box-sizing:border-box; padding:9px 11px; border:1px solid var(--border); border-radius:8px; background:var(--surface-2); color:var(--text); font:inherit; font-size:0.92rem; }
.qc-fields input:focus,.qc-fields select:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.qc-chips { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.qc-chip { display:flex; align-items:center; gap:8px; padding:8px 11px; border:1px solid var(--border); border-radius:9px; font-size:0.82rem; cursor:pointer; }
.qc-chip:has(input:checked) { background:var(--gold-soft); border-color:var(--gold); color:var(--gold); font-weight:600; }
.qc-chip input { accent-color:var(--gold); }
.qc-actions { margin-top:22px; }

/* ===== ESTATE HUB ===== */
.hub-actions { display:flex; gap:10px; margin-bottom:8px; }
.rowlink { color:var(--gold); font-size:0.86rem; }
.rowlink:hover { text-decoration:underline; }
.listpage h2.card-h { margin-top:30px; margin-bottom:14px; }

@media (max-width:840px){ .login-shell{ grid-template-columns:1fr; } .brand-panel,.form-panel{ padding:36px 22px; } .brand-panel{ border-right:0; } }
@media (max-width:640px){ .app-shell{ grid-template-columns:56px 1fr; } }

.rowactions-cell { text-align:right; white-space:nowrap; }
.ac-create { color:var(--gold); font-weight:600; }
.ac-create:hover { background:var(--gold-soft); }
.user-extra { display:flex; flex-wrap:wrap; gap:12px; padding-top:10px; border-top:1px solid var(--border); margin-top:6px; }
.user-extra .ac-link { padding:4px 0; }
.lh-table { font-size:0.85rem; }
.lh-table td, .lh-table th { padding:8px 12px; }

.lockout-wrap { min-height:100vh; display:grid; place-items:center; padding:24px; }
.lockout-card { max-width:440px; width:100%; text-align:center; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:40px 34px; box-shadow:var(--shadow-lg); }
.lockout-logo { width:64px; height:64px; margin-bottom:20px; }
.lockout-title { font-size:1.5rem; font-weight:660; margin-bottom:12px; }
.lockout-msg { color:var(--text-muted); line-height:1.6; margin-bottom:26px; }
.lockout-back { display:inline-block; }

/* ===== TASKS — info cards ===== */
.listpage-dense { max-width:none; }
.tasktop { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:12px; }
.tasktop-stats { display:flex; gap:18px; font-size:0.85rem; color:var(--text-dim); }
.tasktop-stats strong { color:var(--gold); font-weight:600; }
.taskfilters { display:flex; gap:10px; align-items:center; margin-bottom:14px; flex-wrap:wrap; }
.ff-mini { padding:6px 10px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface); color:var(--text); font:inherit; font-size:0.85rem; }
.seg { display:inline-flex; border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; }
.seg-btn { padding:6px 14px; font-size:0.85rem; cursor:pointer; color:var(--text-dim); }
.seg-btn input { display:none; }
.seg-btn.is-on { background:var(--gold-soft); color:var(--gold); font-weight:600; }

.tcards { display:flex; flex-direction:column; gap:10px; }
.tcard-row { display:block; background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--gold); border-radius:var(--radius-sm); padding:12px 16px; text-decoration:none; color:var(--text); transition:border-color .12s, background .12s; }
.tcard-row:hover { border-color:var(--gold); background:var(--gold-soft); }
.tcard-row.is-fin { border-left-color:var(--ok); opacity:0.82; }

/* task type accents (left border by department) */
.tcard-row { border-left-color:var(--dc, var(--gold)); }
.tcard-row:hover { border-color:var(--dc, var(--gold)); }
.tcard-row.is-fin { border-left-color:var(--ok); }
.dept-payroll { --dc:#dd6b5c; } .dept-fs { --dc:#56b884; } .dept-tax { --dc:#d9a441; }
.dept-gen { --dc:#8a8f98; } .dept-statgen { --dc:#5b9dd9; } .dept-est { --dc:#9b8cc4; }
.dept-admin { --dc:#c98b6b; } .dept-mcb { --dc:#d8b25c; } .dept-3g { --dc:#4fb0a5; }
.dept-ycb { --dc:#c9a44f; } .dept-cipc { --dc:#5bb5c9; } .dept-debtors { --dc:#cc6b8e; }
.dept-audit { --dc:#7d9bd0; } .dept-na { --dc:#8a8f98; }

/* flags in card header */
.tcr-flags { display:inline-flex; gap:4px; }
.fpill { display:inline-block; font-size:0.64rem; font-weight:700; line-height:1; padding:3px 5px; border-radius:4px; letter-spacing:0.02em; }
.fpill-io { background:var(--accent-soft); color:var(--accent); }
.fpill-rv { background:var(--info-soft); color:var(--info); }
.fpill-dx { background:var(--gold-soft); color:var(--gold); }
.fpill-rb { background:var(--danger-soft); color:var(--danger); }

.tcr-head { display:flex; align-items:baseline; gap:14px; margin-bottom:10px; flex-wrap:wrap; }
.tcr-no { color:var(--gold); font-size:0.82rem; font-weight:600; }
.tcr-client { font-weight:640; font-size:1rem; }
.tcr-cat { color:var(--text); opacity:0.75; font-size:0.9rem; }
.tcr-meta { margin-left:auto; display:flex; gap:14px; align-items:baseline; font-size:0.82rem; color:var(--text-dim); }
.tcr-phase { color:var(--text); }
.tcr-time { color:var(--gold); }

.tcr-tiers { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.tl-tier { border:1px solid var(--border); border-radius:6px; padding:6px 9px; font-size:0.8rem; line-height:1.35; background:var(--bg); }
.tl-tier.is-late { background:var(--danger-soft); border-color:transparent; }
.tl-tier.is-done { background:var(--ok-soft); border-color:transparent; }
.tl-tier.is-empty { opacity:0.5; }
.tl-role { display:block; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--text-dim); font-weight:600; }
.tl-who { font-weight:600; }
.tl-due { margin-left:6px; color:var(--text); opacity:0.65; font-size:0.78rem; }
.tl-tier.is-late .tl-due { color:var(--danger); font-weight:600; }
.tl-stat { display:block; font-size:0.74rem; color:var(--text); opacity:0.7; }
.tl-tier.is-done .tl-stat { color:var(--ok); }
.tl-un { color:var(--text-muted); font-size:0.78rem; }
.ovd { border:1px solid var(--border); border-radius:var(--radius-sm); }
.ovd.is-on { background:var(--danger-soft); color:var(--danger); }
.ff-search { min-width:200px; flex:1; }
.viewas { border-color:var(--info); color:var(--info); }

/* ===== TASK DETAIL — card language ===== */
.td-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; background:var(--surface); border:1px solid var(--border); border-left:4px solid var(--dc,var(--gold)); border-radius:var(--radius-sm); padding:16px 20px; margin:8px 0 16px; }
.td-head.is-fin { border-left-color:var(--ok); }
.td-no { color:var(--gold); font-size:0.8rem; font-weight:600; }
.td-client { margin:4px 0 2px; font-size:1.4rem; font-weight:680; }
.td-client a { color:inherit; text-decoration:none; }
.td-client a:hover { color:var(--gold); }
.td-cat { color:var(--text); opacity:0.7; font-size:0.9rem; }
.td-head-flags { display:flex; gap:6px; flex-wrap:wrap; }

.td-cols { display:flex; flex-direction:column; gap:14px; }
.td-facts .kv { max-width:520px; }
.td-lines { display:flex; gap:16px; margin-top:14px; padding-top:12px; border-top:1px solid var(--border); font-size:0.85rem; color:var(--text-dim); }
.td-lines strong { color:var(--text); }

.td-events { margin-top:18px; }

.td-audit { margin-top:20px; padding-top:12px; border-top:1px solid var(--border); font-size:0.78rem; color:var(--text-muted); }

/* ===== TASKS — icons + pipeline (flashy pass) ===== */
.ic { width:1em; height:1em; display:inline-block; vertical-align:-0.15em; flex:none; }
.ic-sm { width:0.85em; height:0.85em; }
.card-h .ic { color:var(--gold); margin-right:5px; }

/* flag icon chips */
.ficon { display:inline-flex; align-items:center; justify-content:center; width:1.6em; height:1.6em; border-radius:6px; }
.fi-io { background:var(--accent-soft); color:var(--accent); }
.fi-rv { background:var(--info-soft); color:var(--info); }
.fi-dx { background:var(--gold-soft); color:var(--gold); }
.fi-rb { background:var(--danger-soft); color:var(--danger); }

/* pipeline */
.pipeline { display:flex; align-items:stretch; gap:6px; overflow-x:auto; padding-bottom:4px; }
.pconn { color:var(--text-muted); align-self:center; width:1.1em; height:1.1em; flex:none; }
.pnode { flex:1; min-width:150px; display:flex; flex-direction:column; gap:6px; padding:13px 14px; border-radius:10px; border:1px solid var(--border); background:var(--bg); position:relative; }
.pnode-top { display:flex; align-items:center; gap:7px; }
.pnode-ic { width:1.2em; height:1.2em; }
.pnode-role { font-size:0.66rem; text-transform:uppercase; letter-spacing:0.05em; font-weight:700; color:var(--text-dim); }
.pnode-who { font-weight:640; font-size:0.95rem; }
.pnode-meta { display:flex; flex-direction:column; gap:5px; margin-top:auto; }
.pnode-due { display:inline-flex; align-items:center; gap:5px; font-size:0.8rem; color:var(--text-dim); }
.pnode-stat { align-self:flex-start; font-size:0.74rem; padding:2px 10px; border-radius:999px; background:var(--surface); color:var(--text-dim); }
.pnode-un { color:var(--text-muted); font-size:0.82rem; }
/* node states */
.pnode-done { background:var(--ok-soft); border-color:transparent; }
.pnode-done .pnode-ic, .pnode-done .pnode-role { color:var(--ok); }
.pnode-done .pnode-stat { background:var(--ok-soft); color:var(--ok); }
.pnode-overdue { background:var(--danger-soft); border-color:transparent; }
.pnode-overdue .pnode-ic, .pnode-overdue .pnode-role, .pnode-overdue .pnode-due { color:var(--danger); }
.pnode-wait .pnode-ic { color:var(--info); }
.pnode-empty { opacity:0.5; }
.pnode-overdue::after { content:""; position:absolute; inset:0; border-radius:10px; box-shadow:0 0 0 1.5px var(--danger); opacity:0; animation:pnpulse 2.4s ease-in-out infinite; pointer-events:none; }
@keyframes pnpulse { 0%,100%{opacity:0;} 50%{opacity:0.55;} }
@media (prefers-reduced-motion:reduce){ .pnode-overdue::after{ animation:none; opacity:0.4; } }
@media (max-width:1000px){ .pipeline{ flex-wrap:wrap; } .pconn{ display:none; } .pnode{ min-width:140px; } }

/* list card time with icon */
.tcr-time { display:inline-flex; align-items:center; gap:5px; color:var(--gold); }

/* ===== status badges (colour + icon) ===== */
.stbadge { display:inline-flex; align-items:center; gap:5px; font-size:0.76rem; font-weight:600; padding:2px 10px; border-radius:999px; white-space:nowrap; }
.st-ok { background:var(--ok-soft); color:var(--ok); }
.st-info { background:var(--info-soft); color:var(--info); }
.st-gold { background:var(--gold-soft); color:var(--gold); }
.st-violet { background:var(--accent2-soft,rgba(155,140,196,.13)); color:var(--accent2,#9b8cc4); }
.st-warn { background:rgba(217,164,65,0.14); color:#d9a441; }
.st-teal { background:rgba(79,176,165,0.14); color:#4fb0a5; }
.st-danger { background:var(--danger-soft); color:var(--danger); }
.st-mute { background:var(--border); color:var(--text-dim); }
.st-info .ic { animation:stspin 2s linear infinite; }
@media (prefers-reduced-motion:reduce){ .st-info .ic{ animation:none; } }
@keyframes stspin { to { transform:rotate(360deg); } }

/* richer card accent: dept-tinted header strip + accent glow on hover */
.tcard-row { position:relative; overflow:hidden; }
.tcard-row::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--dc,var(--gold)); }
.tcard-row { border-left:none; padding-left:19px; }
.tcard-row:hover { border-color:var(--dc,var(--gold)); box-shadow:0 0 0 1px var(--dc,var(--gold)), 0 4px 18px rgba(0,0,0,0.25); }
.tcard-row.is-fin::before { background:var(--ok); }
.tcr-cat { position:relative; padding-left:20px; }
.tcr-cat::before { content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:9px; height:9px; border-radius:3px; background:var(--dc,var(--gold)); }

/* ===== detail: subtle dept accent on all section cards ===== */
.td-page .card { border-left:3px solid var(--dc,var(--gold)); }
.td-page.dept-payroll { --dc:#dd6b5c; } .td-page.dept-fs { --dc:#56b884; }
.td-page.dept-tax { --dc:#d9a441; } .td-page.dept-gen { --dc:#8a8f98; }
.td-page.dept-statgen { --dc:#5b9dd9; } .td-page.dept-est { --dc:#9b8cc4; }
.td-page.dept-admin { --dc:#c98b6b; } .td-page.dept-mcb { --dc:#d8b25c; }
.td-page.dept-3g { --dc:#4fb0a5; } .td-page.dept-ycb { --dc:#c9a44f; }
.td-page.dept-cipc { --dc:#5bb5c9; } .td-page.dept-debtors { --dc:#cc6b8e; }
.td-page.dept-audit { --dc:#7d9bd0; } .td-page.dept-na { --dc:#8a8f98; }
.td-page .card-h .ic { color:var(--dc,var(--gold)); }

/* ===== task notes journal ===== */
.td-notes-card { margin-bottom:14px; }
.notebox { display:flex; gap:10px; align-items:flex-start; margin-bottom:14px; }
.notebox textarea { flex:1; padding:9px 12px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--bg); color:var(--text); font:inherit; font-size:0.9rem; resize:vertical; }
.notebox textarea:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.notejournal { display:flex; flex-direction:column; gap:0; max-height:340px; overflow-y:auto; }
.note-entry { padding:10px 0; border-top:1px solid var(--border); }
.note-entry:first-child { border-top:none; }
.note-meta { font-size:0.74rem; color:var(--gold); font-weight:600; margin-bottom:3px; }
.note-body { white-space:pre-wrap; color:var(--text); opacity:0.9; font-size:0.9rem; line-height:1.5; }
.notejournal-toggle { cursor:pointer; list-style:none; display:inline-flex; align-items:center; gap:7px; font-size:0.8rem; font-weight:600; color:var(--text-dim); padding:6px 0; user-select:none; }
.notejournal-toggle::-webkit-details-marker { display:none; }
.notejournal-toggle:hover { color:var(--text); }
.nj-chev { transition:transform .15s; transform:rotate(90deg); }
details[open] > .notejournal-toggle .nj-chev { transform:rotate(-90deg); }
.notejournal-wrap { border-top:1px solid var(--border); margin-top:4px; }

.pnode-editwrap { flex:1; min-width:150px; display:flex; }
.pnode-editwrap .pnode { flex:1; min-width:0; }
.pnode-statsel { font-size:0.76rem; padding:3px 8px; border:1px solid var(--border); border-radius:6px; background:var(--surface); color:var(--text); cursor:pointer; max-width:140px; }
.pnode-statsel:focus { outline:none; border-color:var(--gold); }
.pnode-err { margin-top:6px; font-size:0.74rem; color:var(--danger); }
.pnode-assign { display:flex; flex-direction:column; gap:5px; }
.pnode-assel, .pnode-dueinput { font-size:0.76rem; padding:4px 8px; border:1px solid var(--border); border-radius:6px; background:var(--surface); color:var(--text); font-family:inherit; }
.pnode-dueinput { color-scheme:dark; cursor:pointer; }
.pnode-dueinput::-webkit-calendar-picker-indicator { filter:invert(0.7); cursor:pointer; }
.pnode-assel:focus, .pnode-dueinput:focus { outline:none; border-color:var(--gold); }

/* ===== event cards ===== */
.ev-add { display:flex; gap:8px; align-items:center; margin-bottom:14px; flex-wrap:wrap; }
.ev-in { padding:6px 9px; border:1px solid var(--border); border-radius:6px; background:var(--bg); color:var(--text); font:inherit; font-size:0.85rem; }
.ev-sub-in { min-width:150px; }
.ev-min-in { width:64px; }
.ev-note-in { flex:1; min-width:200px; }

.ev-cards { display:flex; flex-direction:column; gap:9px; }
.ev-card { border:1px solid var(--border); border-left:3px solid var(--border-strong); border-radius:8px; padding:11px 14px; background:var(--surface); }
.ev-card.has-flags { border-left-color:var(--danger); }
.ev-card.is-locked { position:relative; border-left-color:var(--ok); background:var(--bg); }
.ev-card-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.ev-no { color:var(--gold); font-size:0.78rem; }
.ev-sub { font-weight:600; }
.ev-min { color:var(--gold); }
.ev-flagset { display:inline-flex; gap:3px; margin-left:auto; }
.ev-fchk { display:inline-flex; align-items:center; justify-content:center; width:1.7em; height:1.7em; border-radius:5px; cursor:pointer; color:var(--text-muted); background:var(--bg); }
.ev-fchk input { display:none; }
.ev-fchk.on { color:var(--gold); background:var(--gold-soft); }
.ev-lock { display:inline-flex; align-items:center; gap:4px; font-size:0.74rem; color:var(--text-dim); }
.ev-noteform { margin-top:8px; }
.ev-note-edit { width:100%; box-sizing:border-box; padding:8px 11px; border:1px solid var(--border); border-radius:6px; background:var(--bg); color:var(--text); font:inherit; font-size:0.88rem; resize:vertical; }
.ev-note-edit:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.ev-note { margin-top:7px; color:var(--text); opacity:0.9; font-size:0.88rem; white-space:pre-wrap; word-break:break-word; line-height:1.55; max-height:none; overflow:visible; }
.ev-audit { display:flex; gap:12px; flex-wrap:wrap; margin-top:9px; padding-top:8px; border-top:1px solid var(--border); font-size:0.72rem; color:var(--text-muted); }
.ev-worked { color:var(--text-dim); }

.entity-results { display:flex; flex-direction:column; gap:2px; margin-top:4px; max-height:240px; overflow-y:auto; }
.entity-hit { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:8px 12px; background:var(--bg); border:1px solid var(--border); border-radius:6px; cursor:pointer; text-align:left; color:var(--text); }
.entity-hit:hover { border-color:var(--gold); background:var(--gold-soft); }
.eh-pax { color:var(--text-dim); font-size:0.8rem; }
.entity-chosen { margin-top:6px; font-size:0.85rem; color:var(--gold); }
.taskform .ff { margin-bottom:16px; }
.tc-modal { max-width:520px; border-top:3px solid var(--gold); }
.tc-modal-head h3 { display:flex; align-items:center; gap:8px; }
.tc-modal-head .ic { color:var(--gold); }
.tc-modal .ff label { display:flex; align-items:center; gap:6px; }
.tc-modal .ff label .ic { color:var(--gold); }
.tc-clientrow { display:flex; gap:8px; }
.tc-kind { max-width:140px; flex:none; }
.tc-month { max-width:200px; color-scheme:dark; }
.tc-modal .entity-results { margin-top:6px; }

.td-tabbar { margin:16px 0; }
.asset-add { display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.asset-ref-slot { flex:1; min-width:240px; display:flex; }
.asset-ref-slot > * { flex:1; }
.asset-notes-in { flex:1; min-width:160px; }
.asset-cards { display:flex; flex-direction:column; gap:7px; }
.asset-card { display:flex; align-items:center; gap:14px; padding:10px 14px; border:1px solid var(--border); border-left:3px solid var(--gold); border-radius:8px; background:var(--surface); }
.as-type { font-weight:600; min-width:90px; }
.as-ref { flex:1; }
.as-la { color:var(--gold); font-size:0.78rem; }
.as-note { color:var(--text-dim); font-size:0.85rem; }
.as-del { margin-left:auto; background:none; border:none; color:var(--text-muted); cursor:pointer; font-size:0.9rem; }
.as-del:hover { color:var(--danger); }
.loglist { display:flex; flex-direction:column; }
.logrow { display:flex; gap:14px; align-items:baseline; flex-wrap:wrap; padding:9px 0; border-bottom:1px solid var(--border); font-size:0.85rem; }
.log-when { color:var(--gold); font-size:0.78rem; }
.log-field { font-weight:600; min-width:90px; }
.log-old { color:var(--text-dim); text-decoration:line-through; }
.log-new { color:var(--text); }
.log-who { margin-left:auto; color:var(--text-muted); font-size:0.8rem; }

/* ===== DASHBOARD ===== */
.dash { display:flex; flex-direction:column; gap:18px; width:100%; }
.dash-top { display:flex; justify-content:space-between; align-items:center; padding:4px 2px; }
.dash-greet h1 { margin:0; font-size:1.7rem; font-weight:680; }
.dash-clock { text-align:right; display:flex; flex-direction:column; gap:2px; }
.dash-time { font-size:2rem; font-weight:700; color:var(--ok); font-variant-numeric:tabular-nums; letter-spacing:1px; }
.dash-date { color:var(--text); font-size:0.9rem; }
.dash-week { color:var(--text-dim); font-size:0.78rem; }

.dash-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.dstat { display:block; text-decoration:none; color:var(--text); border:1px solid var(--border); border-top:3px solid var(--gold); border-radius:var(--radius-sm); padding:14px 16px; background:var(--surface); transition:border-color .12s, transform .08s; }
.dstat:hover { transform:translateY(-2px); }
.dstat-blue:hover { border-color:var(--info); }
.dstat-red:hover { border-color:var(--danger); }
.dstat-gold:hover { border-color:var(--gold); }
.dstat-violet:hover { border-color:#9b8cc4; }
.dstat-top { display:flex; justify-content:space-between; align-items:center; }
.dstat-label { font-size:0.78rem; font-weight:600; color:var(--text-dim); }
.dstat-top .ic { width:1.2em; height:1.2em; color:var(--text-muted); }
.dstat-num { font-size:2.2rem; font-weight:720; margin:4px 0 2px; }
.dstat-sub { font-size:0.76rem; color:var(--text-dim); }
.dstat-blue { border-top-color:var(--info); } .dstat-blue .dstat-num,.dstat-blue .ic { color:var(--info); }
.dstat-red { border-top-color:var(--danger); } .dstat-red .dstat-num,.dstat-red .ic { color:var(--danger); }
.dstat-gold { border-top-color:var(--gold); } .dstat-gold .dstat-num,.dstat-gold .ic { color:var(--gold); }
.dstat-violet { border-top-color:#9b8cc4; } .dstat-violet .dstat-num,.dstat-violet .ic { color:#9b8cc4; }

.dash-body { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr); gap:18px; align-items:start; }
.dash-chart-card { display:flex; flex-direction:column; }
.dash-card-head { display:flex; justify-content:space-between; align-items:center; }
.phasechart { width:100%; height:300px; max-height:340px; display:block; }
.dtt-grand { color:var(--gold); font-weight:700; font-size:1.05rem; }
.timecards { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:8px; margin-top:10px; }
.timecard { display:flex; flex-direction:column; gap:2px; padding:9px 11px; border:1px solid var(--border); border-radius:7px; background:var(--bg); }
.tc-uname { font-size:0.78rem; font-weight:600; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tc-utime { font-size:0.95rem; font-weight:700; color:var(--gold); font-variant-numeric:tabular-nums; }
.pc-val { font-size:12px; font-weight:700; }
.pc-lbl { fill:var(--text-dim); font-size:11px; }
.pc-bar { cursor:pointer; transition:opacity .1s; }
.phasechart a:hover .pc-bar { opacity:1; }
.card-h .ic { color:var(--gold); width:1.05em; height:1.05em; }
.dash-right { display:flex; flex-direction:column; gap:16px; }
.dash-time-tiers { display:flex; gap:18px; flex-wrap:wrap; font-size:0.9rem; color:var(--text-dim); }
.dash-time-tiers strong { color:var(--gold); }
.dtt-total { margin-left:auto; }
.da-list { display:flex; flex-direction:column; gap:7px; max-height:340px; overflow-y:auto; margin-top:8px; padding-right:2px; }
.da-card { display:flex; align-items:center; gap:12px; padding:9px 12px; border:1px solid var(--border); border-left:3px solid var(--gold); border-radius:7px; background:var(--bg); text-decoration:none; color:var(--text); font-size:0.85rem; }
.da-card:hover { border-color:var(--gold); background:var(--gold-soft); }
.da-task { color:var(--gold); font-size:0.78rem; font-weight:600; }
.da-who { color:var(--text); font-weight:500; }
.da-when { margin-left:auto; color:var(--text-muted); font-size:0.76rem; white-space:nowrap; }
.da-count { background:var(--gold-soft); color:var(--gold); font-size:0.75rem; font-weight:600; padding:2px 9px; border-radius:999px; }
.ql-row { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.ql-dept { font-size:0.72rem; font-weight:600; color:var(--text-dim); min-width:80px; }
.ql-note { flex:1; } .ql-min { width:56px; }
.ql-total { color:var(--gold); font-size:0.8rem; font-weight:600; min-width:48px; text-align:right; }
.dmsg-list { display:flex; flex-direction:column; gap:6px; margin:8px 0; }
.dmsg-row { display:flex; flex-direction:column; gap:2px; padding:9px 12px; border:1px solid var(--border); border-left:3px solid var(--info); border-radius:7px; background:var(--bg); text-decoration:none; color:var(--text); }
.dmsg-row:hover { border-color:var(--info); background:var(--info-soft); }
.dmsg-from { font-size:0.78rem; font-weight:600; color:var(--info); }
.dmsg-subj { font-size:0.88rem; }
.dmsg-when { font-size:0.72rem; color:var(--text-muted); }
.dmsg-all { font-size:0.82rem; }
@media (max-width:1000px){ .dash-body{ grid-template-columns:1fr; } .dash-stats{ grid-template-columns:1fr 1fr; } }

/* ===== MESSENGER ===== */
.msgr { display:flex; flex-direction:column; gap:14px; width:100%; height:calc(100vh - 120px); }
.msgr-head { display:flex; justify-content:space-between; align-items:center; flex:none; }
.msgr-body { display:grid; grid-template-columns:200px minmax(320px,400px) 1fr; gap:14px; flex:1; min-height:0; width:100%; }
.msgr-folders { display:flex; flex-direction:column; gap:4px; min-height:0; }
.msgr-fold { display:flex; align-items:center; gap:9px; padding:10px 13px; border-radius:var(--radius-sm); color:var(--text-dim); cursor:pointer; text-decoration:none; font-size:0.9rem; }
.msgr-fold:hover { background:var(--gold-soft); color:var(--text); }
.msgr-fold.is-active { background:var(--gold-soft); color:var(--gold); font-weight:600; }
.msgr-fold .ic { color:var(--gold); }
.msgr-cnt { margin-left:auto; background:var(--gold); color:var(--gold-ink); font-size:0.72rem; font-weight:700; padding:1px 8px; border-radius:999px; }
.msgr-list { padding:0; overflow:hidden; overflow-y:auto; min-height:0; height:100%; }
.msgr-listinner { display:flex; flex-direction:column; }
.msgr-item { text-align:left; background:none; border:none; border-bottom:1px solid var(--border); padding:11px 14px; cursor:pointer; color:var(--text); }
.msgr-item:hover { background:var(--gold-soft); }
.msgr-item.is-sel { background:var(--gold-soft); border-left:3px solid var(--gold); }
.msgr-item.is-unread .mi-from, .msgr-item.is-unread .mi-subj { font-weight:700; }
.msgr-item.is-unread::before { content:""; }
.mi-top { display:flex; align-items:center; gap:6px; font-size:0.82rem; }
.mi-from { font-weight:600; }
.mi-when { margin-left:auto; color:var(--text-muted); font-size:0.74rem; }
.mi-imp { color:var(--danger); } .mi-flag { color:var(--gold); }
.mi-subj { font-size:0.9rem; margin:2px 0; }
.mi-prev { font-size:0.8rem; color:var(--text-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.msgr-reader { height:100%; overflow-y:auto; min-height:0; }
.msgr-empty { display:flex; align-items:center; justify-content:center; height:100%; min-height:200px; text-align:center; color:var(--text-muted); font-size:0.95rem; }
.msgr-readinner { display:flex; flex-direction:column; gap:14px; }
.mr-subj { margin:0; font-size:1.3rem; display:flex; align-items:center; gap:8px; }
.mr-imp { color:var(--danger); }
.mr-meta { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.85rem; color:var(--text-dim); }
.mr-receipts { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:10px; background:var(--bg); border-radius:8px; font-size:0.78rem; }
.mr-rec-h { font-weight:600; color:var(--text-dim); }
.mr-rec { padding:2px 9px; border-radius:999px; background:var(--surface); color:var(--text-muted); }
.mr-rec.is-read { background:var(--ok-soft); color:var(--ok); }
.mr-body { line-height:1.6; white-space:pre-wrap; padding:8px 0; border-top:1px solid var(--border); }
.mr-actions { display:flex; gap:8px; }
.msg-modal { max-width:600px; }
.msg-bands { display:flex; gap:6px; margin-bottom:8px; }
.msg-recips { min-height:120px; }
.msg-search { margin-bottom:8px; }
.msg-checklist { max-height:220px; overflow-y:auto; border:1px solid var(--border); border-radius:var(--radius-sm); padding:4px; }
.msg-chk { display:flex !important; flex-direction:row !important; align-items:center; gap:10px; padding:7px 10px; border-radius:6px; cursor:pointer; }
.msg-chk:hover { background:var(--gold-soft); }
.msg-chk input[type=checkbox] { accent-color:var(--gold); width:18px !important; height:18px !important; min-width:18px; flex:none !important; margin:0; padding:0; box-shadow:none !important; }
.msg-chk-name { flex:1; font-size:0.9rem; }
.msg-chk-tier { font-size:0.74rem; color:var(--text-dim); }
.msg-band-tag { display:inline-block; margin:6px 6px 0 0; padding:3px 10px; background:var(--info-soft); color:var(--info); border-radius:999px; font-size:0.78rem; }
#nav-msg-badge, .msgr-unreadbadge { display:none; }
#nav-msg-badge { margin-left:auto; background:var(--gold); color:var(--gold-ink); font-size:0.7rem; font-weight:700; padding:1px 7px; border-radius:999px; }
@media (max-width:1000px){ .msgr-body{ grid-template-columns:1fr; } }
.dc-count { background:var(--gold-soft); color:var(--gold); font-size:0.78rem; font-weight:600; padding:2px 10px; border-radius:999px; }
.flagbtn { display:inline-flex; align-items:center; gap:5px; padding:5px 12px; border:1px solid var(--border); border-radius:999px; background:var(--surface); color:var(--text-dim); cursor:pointer; font-size:0.82rem; }
.flagbtn:hover { border-color:var(--danger); color:var(--danger); }
.flagbtn.is-on { background:var(--danger-soft); border-color:transparent; color:var(--danger); font-weight:600; }
.dc-flag { display:inline-flex; align-items:center; gap:4px; background:var(--danger-soft); color:var(--danger); font-size:0.78rem; font-weight:600; padding:2px 10px; border-radius:999px; }
.tabd-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.tabd-count { font-size:0.85rem; color:var(--text-dim); font-weight:600; }
.inj-cols { display:grid; grid-template-columns:1.4fr 1fr; gap:16px; align-items:start; }
.inj-filters { display:flex; gap:8px; margin-bottom:10px; flex-wrap:wrap; align-items:center; }
.inj-checklist { max-height:52vh; overflow-y:auto; border:1px solid var(--border); border-radius:var(--radius-sm); padding:8px; }
.cardpick { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:8px; }
.pickcard { position:relative; display:flex; flex-direction:column; gap:2px; padding:11px 13px 11px 34px; border:1px solid var(--border); border-radius:9px; background:var(--bg); cursor:pointer; transition:border-color .1s, background .1s; }
.pickcard:hover { border-color:var(--gold); }
.pickcard.is-sel { border-color:var(--gold); background:var(--gold-soft); }
.pc-check { position:absolute; left:10px; top:50%; transform:translateY(-50%); width:18px; height:18px; border:1.5px solid var(--border-strong); border-radius:5px; display:flex; align-items:center; justify-content:center; color:transparent; }
.pickcard.is-sel .pc-check { background:var(--gold); border-color:var(--gold); color:var(--gold-ink); }
.pc-name { font-size:0.85rem; font-weight:600; line-height:1.25; }
.pc-pax { font-size:0.72rem; color:var(--text-dim); }
.inj-startover { margin-top:12px; }
.injector { width:100%; }
.wiz-steps { display:flex; align-items:center; gap:0; margin:16px 0; }
.wiz-step { display:flex; align-items:center; gap:8px; font-size:0.85rem; color:var(--text-dim); font-weight:600; }
.wiz-num { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:999px; background:var(--surface); border:1px solid var(--border); font-size:0.8rem; }
.wiz-step.is-active { color:var(--gold); }
.wiz-step.is-active .wiz-num { background:var(--gold); color:var(--gold-ink); border-color:transparent; }
.wiz-conn { flex:1; height:2px; background:var(--border); margin:0 12px; max-width:120px; }
.wiz-pane { }
.wiz-nav { display:flex; justify-content:space-between; margin-top:16px; }
.inj-undo { margin-top:14px; display:flex; align-items:center; gap:12px; }
.inj-undo-hint { font-size:0.8rem; color:var(--text-dim); }
.inj-chk { display:flex !important; align-items:center; gap:10px; padding:6px 10px; border-radius:6px; cursor:pointer; }
.inj-chk:hover { background:var(--gold-soft); }
.inj-chk input[type=checkbox] { width:17px !important; height:17px !important; flex:none !important; accent-color:var(--gold); }
.inj-chk-name { flex:1; font-size:0.88rem; }
.inj-chk-pax { color:var(--text-dim); font-size:0.78rem; }
.inj-go { width:100%; margin-top:12px; }
.inj-made { display:flex; flex-wrap:wrap; gap:5px; margin-top:12px; }
.inj-tag { font-size:0.74rem; background:var(--ok-soft); color:var(--ok); padding:2px 8px; border-radius:5px; }
@media (max-width:900px){ .inj-cols{ grid-template-columns:1fr; } }

/* ===== FILE MANAGER ===== */
.filerow { display:flex !important; align-items:center; gap:12px; }
.file-swatch { width:16px; height:16px; border-radius:4px; flex:none; border:1px solid rgba(255,255,255,0.15); display:inline-block; }
.fr-main { flex:1; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.fr-no { color:var(--gold); font-size:0.8rem; }
.fr-cat { font-size:0.76rem; color:var(--text-dim); }
.fr-vol { font-size:0.76rem; color:var(--text-dim); }
.fstat { font-size:0.74rem; font-weight:600; padding:2px 10px; border-radius:999px; white-space:nowrap; }
.fstat-in { background:var(--ok-soft); color:var(--ok); }
.fstat-out { background:var(--danger-soft); color:var(--danger); }
.fstat-pend { background:var(--gold-soft); color:var(--gold); }
.fstat-pm { background:var(--info-soft); color:var(--info); }
.fstat-me { background:var(--accent-soft); color:var(--accent); }
.file-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.fa-transfer, .fa-inline { display:inline-flex; gap:8px; align-items:center; margin:0; }
.fa-danger button { color:var(--danger); }
.filehist { grid-template-columns:130px 90px 1.4fr 100px 1fr; }
.fh-kind { font-weight:700; font-size:0.72rem; }
.fh-in { color:var(--ok); } .fh-transfer { color:var(--gold); } .fh-out { color:var(--danger); }
.fh-flow { display:inline-flex; align-items:center; gap:6px; }
.fh-purpose { color:var(--text-dim); font-size:0.8rem; }


/* ===== FILE MANAGER ===== */
.filerow { display:flex !important; align-items:center; gap:12px; }
.file-swatch { width:16px; height:16px; border-radius:4px; flex:none; border:1px solid rgba(255,255,255,0.15); display:inline-block; }
.fr-main { flex:1; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.fr-no { color:var(--gold); font-size:0.8rem; }
.fr-cat, .fr-vol { font-size:0.76rem; color:var(--text-dim); }
.fstat { font-size:0.74rem; font-weight:600; padding:2px 10px; border-radius:999px; white-space:nowrap; }
.fstat-in { background:var(--ok-soft); color:var(--ok); }
.fstat-out { background:var(--danger-soft); color:var(--danger); }
.fstat-pend { background:var(--gold-soft); color:var(--gold); }
.fstat-pm { background:var(--info-soft); color:var(--info); }
.fstat-me { background:var(--accent-soft); color:var(--accent); }
.file-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.fa-transfer, .fa-inline { display:inline-flex; gap:8px; align-items:center; margin:0; }
.fa-danger button { color:var(--danger); }
.filehist { grid-template-columns:130px 90px 1.4fr 100px 1fr; }
.fh-kind { font-weight:700; font-size:0.72rem; }
.fh-in { color:var(--ok); } .fh-transfer { color:var(--gold); } .fh-out { color:var(--danger); }
.fh-flow { display:inline-flex; align-items:center; gap:6px; }
.fh-purpose { color:var(--text-dim); font-size:0.8rem; }

/* file master — entity cards */
.filecard { display:block !important; padding:14px 16px; }
.fc-head { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.fc-client { font-weight:640; font-size:1rem; color:var(--text); text-decoration:none; }
.fc-client:hover { color:var(--gold); }
.fc-pax { color:var(--text-dim); font-size:0.8rem; }
.fc-count { color:var(--text-dim); font-size:0.82rem; }
.fc-stats { margin-left:auto; display:flex; gap:6px; flex-wrap:wrap; }
.fc-files { display:flex; flex-direction:column; gap:4px; }
.fc-file { display:flex; align-items:center; gap:10px; padding:7px 10px; border:1px solid var(--border); border-radius:6px; background:var(--bg); text-decoration:none; color:var(--text); font-size:0.85rem; }
.fc-file:hover { border-color:var(--gold); background:var(--gold-soft); }
.fe-problems { margin:8px 0; padding-left:20px; color:var(--danger); font-size:0.86rem; line-height:1.7; }
