:root{
  --bg:#F7F8FA;--bg2:#FFFFFF;--bg3:#F0F2F7;--surface:#FFFFFF;
  --border:#E4E8F0;--border2:#CBD3E3;
  --accent:#1A3FA6;--accent-lt:rgba(26,63,166,.08);--accent-md:rgba(26,63,166,.15);
  --accent2:#3B82F6;
  --green:#047857;--green-lt:rgba(4,120,87,.09);
  --amber:#B45309;--amber-lt:rgba(180,83,9,.09);
  --rose:#BE123C;--rose-lt:rgba(190,18,60,.09);
  --purple:#5B21B6;--purple-lt:rgba(91,33,182,.09);
  --text1:#0C1730;--text2:#44546A;--text3:#8D9BB5;
  --r:11px;--r2:7px;--gap:20px;
  --shadow:0 1px 3px rgba(12,23,48,.06),0 4px 16px rgba(12,23,48,.05);
  --shadow-lg:0 8px 28px rgba(12,23,48,.11),0 2px 8px rgba(12,23,48,.06);
  --font-head:'Fraunces',serif;--font-body:'Figtree',sans-serif;--font-mono:'JetBrains Mono',monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg);color:var(--text1);min-height:100vh;overflow-x:hidden;font-size:14px;line-height:1.6}
::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg3)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:99px}

/* LOGIN / CHANGE-PASSWORD OVERLAY */
.auth-overlay{position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,#0C1730 0%,#1A3FA6 60%,#0C2A5A 100%);display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto}
.auth-overlay.hidden{display:none}
#login-screen{position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,#0C1730 0%,#1A3FA6 60%,#0C2A5A 100%);display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto}
#login-screen.hidden{display:none}
/* SESSION-ENDING STATE. Mirrored in app.js, which injects the identical rule
   at load. Deliberate duplication: all three static assets are served
   unversioned, so a browser can pair any two across a deploy — with the rule
   in only one of them there is a window where the class is set and nothing is
   hidden. With both, whichever asset is fresh supplies it.
   Keep them in step BY HAND: nothing checks that they stay identical, and the
   Playwright leak tests cannot — deleting either copy on its own leaves every
   test in e2e/session-reset.spec.js green, and only deleting both is caught.
   A run always fetches both assets fresh, so the stale-pairing the duplication
   hedges against is a scenario the suite never constructs. The same note is on
   the app.js copy; the measurement, with its date, its commit and its counts,
   is docs/decisions/playwright-mutation-survey.md, mutations S2, S2a and S2b —
   deliberately not restated here, because a count copied into two comments
   nothing keeps in step is the very failure these comments are about. */
body.session-ending > *:not(#signout-screen){display:none!important}
body.session-ending #signout-screen{display:flex}
/* overflow-y:auto, and the card centres with margin:auto rather than with
   align-items alone. These are fixed, full-viewport flex overlays; a card
   taller than the viewport overflowed SYMMETRICALLY and neither end could be
   scrolled to, so the top of the form and anything at the bottom were simply
   unreachable. Measured before this: at 1024x500 the change-password card lost
   140px, accept 63px and login 34px; at 740x360, 210/133/110. align-items:center
   is not enough on its own — it clips the START edge in an overflow container,
   which is exactly the end a scroll cannot recover. margin:auto on the item
   centres it when it fits and leaves both edges reachable when it does not. */
#accept-screen,#chpw-screen,#signout-screen{position:fixed;inset:0;z-index:10000;background:linear-gradient(135deg,#0C1730 0%,#1A3FA6 60%,#0C2A5A 100%);display:none;align-items:center;justify-content:center;padding:24px;overflow-y:auto}
#accept-screen.visible,#chpw-screen.visible,#signout-screen.visible{display:flex}
.login-card{background:rgba(255,255,255,.97);border-radius:18px;padding:44px 40px;width:100%;max-width:400px;margin:auto;flex-shrink:0;box-shadow:0 32px 80px rgba(0,0,0,.35);animation:loginIn .4s cubic-bezier(.34,1.56,.64,1)}
@keyframes loginIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.login-logo{display:flex;align-items:center;gap:11px;margin-bottom:30px;justify-content:center}
.login-logo-icon{width:42px;height:42px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:11px;display:grid;place-items:center}
.login-logo-icon svg{width:22px;height:22px;fill:#fff}
.login-logo-name{font-family:var(--font-head);font-size:26px;font-weight:700;letter-spacing:-.5px;color:var(--text1)}
.login-logo-name span{color:var(--accent)}
.login-heading{font-family:var(--font-head);font-size:21px;font-weight:600;color:var(--text1);text-align:center;margin-bottom:6px}
.login-sub{font-size:13px;color:var(--text2);text-align:center;margin-bottom:28px}
.login-field{margin-bottom:16px}
.login-label{display:block;font-size:11.5px;font-weight:600;color:var(--text2);letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;font-family:var(--font-mono)}
.login-input{width:100%;padding:11px 14px;font-family:var(--font-body);font-size:14px;border:1.5px solid var(--border);border-radius:var(--r2);color:var(--text1);background:var(--bg3);outline:none;transition:border-color .2s,box-shadow .2s}
.login-input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-lt)}
.login-btn{width:100%;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:var(--r2);font-family:var(--font-body);font-size:14px;font-weight:700;cursor:pointer;margin-top:8px;transition:all .2s}
.login-btn:hover{background:#142d80;box-shadow:0 6px 20px rgba(26,63,166,.4);transform:translateY(-1px)}
.login-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.login-error{display:none;background:var(--rose-lt);border:1px solid rgba(190,18,60,.2);color:var(--rose);font-size:12.5px;padding:9px 12px;border-radius:var(--r2);text-align:center;margin-top:10px;font-weight:500}
/* Shown by _runBootProbe() when the session probe neither confirmed nor was
   rejected. Amber, not rose: the form below it still works.

   The hidden default is an inline style in index.html, not here: these three
   files are served unversioned, so a new index.html can be paired with a cached
   old app.css. Stating it in both places would also be one default in two
   files. */
.login-notice{background:var(--amber-lt);border:1px solid rgba(180,83,9,.2);color:var(--amber);font-size:12.5px;padding:9px 12px;border-radius:var(--r2);text-align:center;margin-top:10px;font-weight:500;line-height:1.7}
.login-notice-btn{margin-left:6px;background:none;border:1px solid rgba(180,83,9,.35);color:var(--amber);font-family:inherit;font-size:12px;font-weight:600;padding:3px 10px;border-radius:var(--r2);cursor:pointer}
.login-footer{text-align:center;font-size:11.5px;color:var(--text3);margin-top:22px;font-family:var(--font-mono)}

/* APP */
#app-root{display:none}#app-root.visible{display:block}
.app-shell{display:grid;grid-template-columns:248px 1fr;grid-template-rows:58px 1fr;min-height:100vh}
.topbar{grid-column:1/-1;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:14px;position:sticky;top:0;z-index:100;box-shadow:0 1px 4px rgba(12,23,48,.05)}
.logo{font-family:var(--font-head);font-size:21px;font-weight:700;letter-spacing:-.5px;display:flex;align-items:center;gap:10px;color:var(--text1);cursor:pointer}
.logo-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:8px;display:grid;place-items:center}
.logo-icon svg{width:17px;height:17px;fill:#fff}
.logo-hrx{color:var(--accent)}
.logo-dot{width:7px;height:7px;background:var(--green);border-radius:50%;animation:pulse 2s ease infinite;flex-shrink:0;align-self:center}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.api-label{font-family:var(--font-mono);font-size:11px;color:var(--text3)}
.user-chip{display:flex;align-items:center;gap:8px;padding:5px 11px 5px 5px;background:var(--bg3);border:1.5px solid var(--border);border-radius:99px;cursor:pointer;transition:all .15s}
.user-chip:hover{border-color:var(--border2)}
.user-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:grid;place-items:center;font-family:var(--font-head);font-size:11px;font-weight:700;color:#fff}
.user-name{font-size:12px;font-weight:600;color:var(--text2)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.sidebar{background:var(--bg2);border-right:1px solid var(--border);padding:20px 0;display:flex;flex-direction:column;position:sticky;top:58px;height:calc(100vh - 58px);overflow-y:auto}
.nav-section-title{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.14em;color:var(--text3);text-transform:uppercase;padding:0 20px;margin-bottom:5px}
.nav-group{margin-bottom:24px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9.5px 20px;cursor:pointer;color:var(--text2);font-weight:500;font-size:13.5px;transition:all .18s;border-left:3px solid transparent;user-select:none}
.nav-item:hover{background:var(--bg3);color:var(--text1);border-left-color:var(--border2)}
.nav-item.active{background:var(--accent-lt);color:var(--accent);border-left-color:var(--accent);font-weight:600}
.nav-icon{font-size:15px;width:19px;text-align:center;flex-shrink:0}
.nav-badge{margin-left:auto;font-family:var(--font-mono);font-size:10px;background:var(--bg3);color:var(--text2);padding:2px 8px;border-radius:99px;border:1px solid var(--border)}
.nav-item.active .nav-badge{background:var(--accent-lt);color:var(--accent);border-color:rgba(26,63,166,.2)}
.sidebar-footer{margin-top:auto;padding:14px 20px;border-top:1px solid var(--border)}
.sf-label{font-size:11px;color:var(--text2);font-weight:600;margin-bottom:5px}
.pill-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.mini-pill{font-size:9.5px;font-family:var(--font-mono);padding:2px 7px;border-radius:4px;border:1px solid}
.mp-blue{background:var(--accent-lt);border-color:rgba(26,63,166,.22);color:var(--accent)}
.mp-green{background:var(--green-lt);border-color:rgba(4,120,87,.22);color:var(--green)}
.mp-amber{background:var(--amber-lt);border-color:rgba(180,83,9,.22);color:var(--amber)}
.mp-purple{background:var(--purple-lt);border-color:rgba(91,33,182,.22);color:var(--purple)}
.main{padding:28px;overflow-y:auto;display:flex;flex-direction:column;gap:22px}
.view{display:none;flex-direction:column;gap:20px;animation:fadeUp .26s ease}
.view.active{display:flex}
@keyframes fadeUp{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.section-header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px}
.section-title{font-family:var(--font-head);font-size:22px;font-weight:600;letter-spacing:-.4px;color:var(--text1)}
.section-sub{font-size:13px;color:var(--text2);margin-top:3px}

/* AGENT */
.agent-layout{display:grid;grid-template-columns:1fr 330px;gap:20px;align-items:start}
.agent-chat-panel{background:var(--surface);border:1.5px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;height:calc(100vh - 140px);min-height:520px}
.agent-chat-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#0C1730 0%,#1A3FA6 100%)}
.agent-avatar{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.25);display:grid;place-items:center;font-size:20px;flex-shrink:0}
.agent-name{font-family:var(--font-head);font-size:16px;font-weight:600;color:#fff}
.agent-status{font-size:11.5px;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:5px;margin-top:1px}
.agent-online-dot{width:6px;height:6px;border-radius:50%;background:#34D399;animation:pulse 2s ease infinite}
.chat-messages{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:13px;background:var(--bg3)}
.msg{display:flex;gap:10px;animation:msgIn .22s ease}
@keyframes msgIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.msg.user{flex-direction:row-reverse}
.msg-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;flex-shrink:0;margin-top:2px}
.msg.agent .msg-avatar{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-family:var(--font-head);font-size:11px;font-weight:700}
.msg.user .msg-avatar{background:var(--bg2);border:1.5px solid var(--border);color:var(--text2);font-size:12px}
.msg-bubble{max-width:82%;padding:11px 15px;border-radius:12px;font-size:13.5px;line-height:1.65}
.msg.agent .msg-bubble{background:var(--bg2);border:1px solid var(--border);color:var(--text1);border-bottom-left-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.msg.user .msg-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}
.msg-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.msg-action-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:var(--accent-lt);border:1.5px solid rgba(26,63,166,.2);border-radius:7px;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--font-body)}
.msg-action-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.typing-bubble{background:var(--bg2);border:1px solid var(--border);border-radius:12px;border-bottom-left-radius:4px;padding:12px 16px;display:flex;gap:5px;align-items:center;width:58px}
.typing-dot{width:7px;height:7px;border-radius:50%;background:var(--text3);animation:typingDot 1.2s ease infinite}
.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}
@keyframes typingDot{0%,80%,100%{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}
.chat-input-area{padding:14px 16px;border-top:1px solid var(--border);background:var(--bg2);display:flex;gap:9px;align-items:flex-end}
.chat-input{flex:1;padding:10px 14px;font-family:var(--font-body);font-size:13.5px;border:1.5px solid var(--border);border-radius:10px;color:var(--text1);background:var(--bg3);outline:none;resize:none;max-height:100px;line-height:1.5;transition:border-color .2s,box-shadow .2s}
.chat-input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-lt)}
.chat-input::placeholder{color:var(--text3)}
.chat-send-btn{width:38px;height:38px;border-radius:9px;background:var(--accent);border:none;cursor:pointer;display:grid;place-items:center;flex-shrink:0;transition:all .15s}
.chat-send-btn:hover{background:#142d80;box-shadow:0 4px 12px rgba(26,63,166,.4)}
.chat-send-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.chat-send-btn svg{width:16px;height:16px;fill:#fff}
.quick-prompts{padding:10px 16px 0;background:var(--bg2);display:flex;flex-wrap:wrap;gap:6px;border-top:1px solid var(--border)}
.qp-btn{font-size:11.5px;padding:5px 11px;background:var(--bg3);border:1.5px solid var(--border);border-radius:99px;color:var(--text2);cursor:pointer;font-family:var(--font-body);font-weight:500;transition:all .15s;white-space:nowrap}
.qp-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-lt)}
.agent-side{display:flex;flex-direction:column;gap:14px}
.side-card{background:var(--surface);border:1.5px solid var(--border);border-radius:12px;padding:18px;box-shadow:var(--shadow)}
.side-card-title{font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--text1);margin-bottom:12px;display:flex;align-items:center;gap:7px}
.stat-row-mini{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}
.stat-row-mini:last-child{border-bottom:none;padding-bottom:0}
.srm-label{font-size:12.5px;color:var(--text2)}
.srm-sub{font-size:10.5px;color:var(--text3);font-family:var(--font-mono);margin-top:1px}
.srm-val{font-family:var(--font-head);font-size:20px;font-weight:700;color:var(--text1);flex-shrink:0}
.nav-shortcut{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:all .18s;border:1.5px solid var(--border);margin-bottom:7px}
.nav-shortcut:last-child{margin-bottom:0}
.nav-shortcut:hover{border-color:var(--accent);background:var(--accent-lt)}
.nav-shortcut:hover .ns-arrow{color:var(--accent);transform:translateX(2px)}
.ns-icon{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:16px;flex-shrink:0}
.ns-label{flex:1}
.ns-title{font-weight:600;font-size:13px;color:var(--text1)}
.ns-desc{font-size:11.5px;color:var(--text3);margin-top:1px}
.ns-arrow{color:var(--text3);font-size:14px;transition:all .15s}
.panel{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}
.msec{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.msec::after{content:'';flex:1;height:1px;background:var(--border)}
.controls-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.search-box{flex:1;min-width:180px;display:flex;align-items:center;gap:9px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r2);padding:8.5px 14px;transition:all .2s;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-lt)}
.search-box input{background:none;border:none;outline:none;color:var(--text1);font-family:var(--font-body);font-size:13px;width:100%}
.search-box input::placeholder{color:var(--text3)}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8.5px 16px;border-radius:var(--r2);border:none;cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:600;transition:all .18s;white-space:nowrap}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 3px rgba(26,63,166,.3)}
.btn-primary:hover{background:#142d80;box-shadow:0 4px 14px rgba(26,63,166,.35);transform:translateY(-1px)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn-secondary{background:var(--surface);color:var(--text2);border:1.5px solid var(--border)}
.btn-secondary:hover{border-color:var(--border2);color:var(--text1);background:var(--bg3)}
.btn-ghost{background:transparent;color:var(--text2);border:1.5px solid transparent;padding:6px 10px;font-size:12px}
.btn-ghost:hover{background:var(--bg3);color:var(--text1)}
.select-input{appearance:none;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r2);color:var(--text2);padding:8.5px 14px;font-family:var(--font-body);font-size:13px;outline:none;cursor:pointer}
.select-input:focus{border-color:var(--accent)}
.resume-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(308px,1fr));gap:var(--gap)}
.resume-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;transition:all .22s;cursor:pointer;box-shadow:var(--shadow)}
.resume-card:hover{border-color:rgba(26,63,166,.35);box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.card-header{padding:15px 17px 12px;display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--border)}
.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-head);font-weight:700;font-size:15px;color:#fff;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.card-name{font-family:var(--font-head);font-size:14.5px;font-weight:600;color:var(--text1);line-height:1.3}
.card-meta{font-size:12px;color:var(--text2);margin-top:3px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.dot{width:3px;height:3px;border-radius:50%;background:var(--text3);flex-shrink:0}
.card-id{font-family:var(--font-mono);font-size:9.5px;color:var(--text3);background:var(--bg3);padding:2px 6px;border-radius:4px;border:1px solid var(--border);margin-left:auto;flex-shrink:0;align-self:flex-start}
.card-body{padding:13px 17px}
.exp-bar-wrap{margin-bottom:11px}
.exp-label{display:flex;justify-content:space-between;font-size:11px;color:var(--text2);margin-bottom:4px;font-family:var(--font-mono)}
.exp-bar{height:5px;background:var(--bg3);border-radius:99px;overflow:hidden}
.exp-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .7s cubic-bezier(.34,1.56,.64,1)}
.skills-wrap{display:flex;flex-wrap:wrap;gap:5px}
.skill-chip{font-size:11px;font-family:var(--font-mono);padding:3px 8px;border-radius:5px;background:var(--bg3);border:1px solid var(--border);color:var(--text2);transition:all .15s}
.skill-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-lt)}
.skill-chip.hl{background:var(--accent-lt);border-color:rgba(26,63,166,.3);color:var(--accent)}
.skills-more{font-size:11px;font-family:var(--font-mono);color:var(--text3);padding:3px 5px}
.card-footer{padding:9px 17px;background:var(--bg3);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}
.card-contact{font-size:11.5px;color:var(--text2);display:flex;align-items:center;gap:5px;overflow:hidden;min-width:0}
.card-contact span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-actions{display:flex;gap:5px;flex-shrink:0}
.icon-btn{height:28px;border-radius:var(--r2);background:var(--surface);border:1.5px solid var(--border);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-family:var(--font-mono);color:var(--text2);transition:all .15s;padding:0 8px;white-space:nowrap;text-decoration:none}
.icon-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-lt)}
.icon-btn.del:hover{border-color:var(--rose);color:var(--rose);background:var(--rose-lt)}
.jd-panel{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow)}
.jd-textarea{width:100%;min-height:120px;background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--r2);color:var(--text1);font-family:var(--font-body);font-size:13px;padding:13px;resize:vertical;outline:none;line-height:1.7;transition:border-color .2s}
.jd-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-lt)}
.jd-textarea::placeholder{color:var(--text3)}
.jd-row{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.label-filters{margin-top:12px;font-size:12px}
.bulk-warn{margin-top:8px;padding:6px 10px;border-radius:6px;background:#fef3c7;color:#92400e;font-size:12px}
.bulk-tray-warn{display:block;color:#92400e;font-size:11px;margin-top:2px}
.expiry-notices{position:fixed;top:72px;left:50%;transform:translateX(-50%);z-index:500;display:flex;flex-direction:column;gap:6px;max-width:min(560px,calc(100vw - 32px))}
.expiry-notice{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:#fff7ed;border:1px solid #fdba74;color:#7c2d12;font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.expiry-notice span{flex:1}
.label-filters>summary{cursor:pointer;color:var(--text2);font-weight:600}
.lf-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.lf-row label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--text3);min-width:150px;flex:1}
.lf-row select,.lf-row input{padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:12px;background:var(--surface,#fff);color:var(--text)}
.lf-hint{margin-top:6px;font-size:11px;color:var(--text3)}
.top-k-wrap{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text2)}
.top-k-input{width:60px;background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--r2);color:var(--text1);padding:7px 9px;font-family:var(--font-mono);font-size:13px;outline:none;text-align:center}
.upload-zone{border:2px dashed var(--border2);border-radius:var(--r);padding:26px;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg3);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text3)}
.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);background:var(--accent-lt);color:var(--accent)}
.upload-zone.has-file{border-color:var(--green);background:var(--green-lt);color:var(--green);border-style:solid}
.upload-icon{font-size:28px}
.or-divider{display:flex;align-items:center;gap:10px;color:var(--text3);font-size:12px;font-family:var(--font-mono)}
.or-divider::before,.or-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.method-pills{display:flex;gap:5px;flex-wrap:wrap}
.method-pill{font-family:var(--font-mono);font-size:10.5px;padding:3px 10px;border-radius:99px;border:1.5px solid;font-weight:500}
.mp-sm{border-color:rgba(4,120,87,.3);background:var(--green-lt);color:var(--green)}
.mp-em{border-color:rgba(26,63,166,.3);background:var(--accent-lt);color:var(--accent)}
.mp-km{border-color:rgba(180,83,9,.3);background:var(--amber-lt);color:var(--amber)}
.mp-ai{border-color:rgba(91,33,182,.3);background:var(--purple-lt);color:var(--purple)}
.results-area{display:flex;flex-direction:column;gap:14px}
.result-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;transition:all .22s;animation:fadeUp .3s ease both;box-shadow:var(--shadow)}
.result-card:hover{border-color:rgba(26,63,166,.3);box-shadow:var(--shadow-lg)}
.result-header{display:flex;align-items:center;gap:16px;padding:15px 20px;border-bottom:1px solid var(--border)}
.rank-badge{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-head);font-size:13px;font-weight:700;flex-shrink:0}
.rk1{background:linear-gradient(135deg,#F59E0B,#D97706);color:#fff;box-shadow:0 3px 10px rgba(217,119,6,.4)}
.rk2{background:linear-gradient(135deg,#94A3B8,#64748B);color:#fff}
.rk3{background:linear-gradient(135deg,#F97316,#EA580C);color:#fff}
.rkn{background:var(--bg3);color:var(--text2);border:1.5px solid var(--border)}
.result-info{flex:1}
.result-name{font-family:var(--font-head);font-size:16px;font-weight:600;color:var(--text1)}
.result-meta{font-size:12px;color:var(--text2);margin-top:3px;display:flex;gap:12px;flex-wrap:wrap}
.result-scores{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.final-score{font-family:var(--font-head);font-size:28px;font-weight:700;color:var(--accent);line-height:1}
.final-label{font-size:9.5px;color:var(--text3);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;text-align:right}
.result-body{padding:15px 20px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.score-breakdown{display:flex;flex-direction:column;gap:8px}
.score-row{display:flex;align-items:center;gap:10px}
.score-method{font-family:var(--font-mono);font-size:10px;color:var(--text3);width:100px;text-transform:uppercase;letter-spacing:.04em}
.score-bar-wrap{flex:1;height:5px;background:var(--bg3);border-radius:99px;overflow:hidden}
.score-bar-fill{height:100%;border-radius:99px;transition:width .8s cubic-bezier(.34,1.56,.64,1)}
.sb-green{background:linear-gradient(90deg,var(--green),#10B981)}
.sb-blue{background:linear-gradient(90deg,var(--accent),var(--accent2))}
.sb-amber{background:linear-gradient(90deg,var(--amber),#F59E0B)}
.sb-purple{background:linear-gradient(90deg,var(--purple),#8B5CF6)}
.score-val{font-family:var(--font-mono);font-size:10px;color:var(--text2);width:36px;text-align:right;font-weight:500}
.mlabel{font-size:10px;color:var(--text3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.modal-backdrop{position:fixed;inset:0;background:rgba(12,23,48,.45);z-index:200;display:none;align-items:center;justify-content:center;padding:22px;backdrop-filter:blur(6px)}
.modal-backdrop.open{display:flex}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:14px;width:100%;max-width:720px;max-height:92vh;overflow-y:auto;animation:scaleIn .22s cubic-bezier(.34,1.56,.64,1);box-shadow:0 24px 60px rgba(0,0,0,.18)}
@keyframes scaleIn{from{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}
.modal-header{padding:22px 26px 16px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:14px;position:sticky;top:0;background:var(--bg2);z-index:1}
.modal-avatar{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-head);font-size:19px;font-weight:700;color:#fff;flex-shrink:0;box-shadow:0 3px 12px rgba(0,0,0,.18)}
.modal-title{font-family:var(--font-head);font-size:20px;font-weight:700;color:var(--text1)}
.modal-sub{font-size:13px;color:var(--text2);margin-top:3px}
.modal-close{margin-left:auto;width:33px;height:33px;border-radius:var(--r2);background:var(--bg3);border:1.5px solid var(--border);cursor:pointer;display:grid;place-items:center;color:var(--text2);font-size:14px;transition:all .15s;flex-shrink:0}
.modal-close:hover{border-color:var(--rose);color:var(--rose);background:var(--rose-lt)}
.modal-body{padding:22px 26px;display:flex;flex-direction:column;gap:22px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.info-item{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:10px 13px}
.info-item.full{grid-column:1/-1}
.info-key{font-size:10px;color:var(--text3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}
.info-val{font-size:13px;color:var(--text1);margin-top:3px;word-break:break-all}
.info-val a{color:var(--accent);text-decoration:none}
.exp-item{background:var(--bg3);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 var(--r2) var(--r2) 0;padding:12px 15px;margin-bottom:8px}
.exp-role{font-weight:700;font-size:14px;color:var(--text1)}
.exp-co{font-size:12px;color:var(--text2);margin-top:3px;font-family:var(--font-mono)}
.exp-desc{font-size:12.5px;color:var(--text2);margin-top:7px;line-height:1.65}
.edu-item{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:12px 15px;margin-bottom:8px}
.edu-deg{font-weight:700;font-size:14px;color:var(--text1)}
.edu-inst{font-size:12px;color:var(--text2);margin-top:3px;font-family:var(--font-mono)}
.summary-box{background:var(--bg3);border:1px solid var(--border);border-left:3px solid var(--green);border-radius:0 var(--r2) var(--r2) 0;padding:14px 16px;font-size:13px;color:var(--text2);line-height:1.75}
.cert-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-family:var(--font-mono);padding:3px 9px;border-radius:var(--r2);background:var(--green-lt);border:1px solid rgba(4,120,87,.25);color:var(--green);margin:3px 3px 0 0}
.proj-item{font-size:12.5px;color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:9px 12px;margin-bottom:6px}
.jd-parsed-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r2);padding:14px 17px;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.jdf-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3)}
.jdf-val{font-size:13px;color:var(--text1);margin-top:2px;font-weight:500}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;color:var(--text3);text-align:center;gap:10px}
.empty-icon{font-size:36px;opacity:.4}
.empty-title{font-family:var(--font-head);font-size:16px;color:var(--text2)}
.empty-sub{font-size:13px;max-width:300px}
.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:36px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.ai-thinking{display:flex;flex-direction:column;align-items:center;gap:14px;padding:44px}
.ai-orbs{display:flex;gap:8px}
.ai-orb{width:10px;height:10px;border-radius:50%;animation:orb 1.4s ease-in-out infinite}
.ai-orb:nth-child(1){background:var(--accent)}.ai-orb:nth-child(2){background:var(--purple);animation-delay:.2s}.ai-orb:nth-child(3){background:var(--green);animation-delay:.4s}
@keyframes orb{0%,80%,100%{transform:scale(.5);opacity:.4}40%{transform:scale(1);opacity:1}}
.ai-thinking-label{font-family:var(--font-mono);font-size:11.5px;color:var(--text3)}
.ai-stages{display:flex;flex-direction:column;gap:6px;min-width:280px}
.ai-stage{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;color:var(--text3);padding:4px 0}
.ai-stage-dot{width:6px;height:6px;border-radius:50%;background:var(--border2);flex-shrink:0}
.ai-stage.active .ai-stage-dot{background:var(--accent);animation:pulse 1s ease infinite}
.ai-stage.done .ai-stage-dot{background:var(--green)}
.ingest-box{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow)}
.toast-container{position:fixed;bottom:24px;right:24px;z-index:999;display:flex;flex-direction:column;gap:8px}
.toast{background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);padding:12px 16px;font-size:13px;color:var(--text1);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;animation:slideIn .22s ease;max-width:320px}
.toast.success{border-left:3px solid var(--green)}.toast.error{border-left:3px solid var(--rose)}.toast.info{border-left:3px solid var(--accent)}
@keyframes slideIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
.no-data{color:var(--text3);font-size:12px;font-family:var(--font-mono)}
/* BULK CV INTAKE: the progress panel on Add Candidate and the corner tray */
.bulk-panel{display:flex;flex-direction:column;gap:14px}
.bulk-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.bulk-title{font-family:var(--font-head);font-size:17px;font-weight:600;color:var(--text1)}
.bulk-status{font-size:13px;color:var(--text2);margin-top:2px;word-break:break-word}
.bulk-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bulk-note{font-size:12px;color:var(--green);font-weight:600}
.bulk-bar{height:8px;border-radius:99px;background:var(--bg3);overflow:hidden;position:relative}
.bulk-bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .4s ease}
.bulk-bar.is-live .bulk-bar-fill{background-size:200% 100%;background-image:linear-gradient(90deg,var(--accent),var(--accent2),var(--accent));animation:bulkFlow 2.2s linear infinite}
@keyframes bulkFlow{to{background-position:-200% 0}}
.bulk-stats{display:flex;gap:8px;flex-wrap:wrap}
.bulk-stat{border:1.5px solid var(--border);background:var(--bg2);border-radius:99px;padding:4px 12px;font-size:12.5px;color:var(--text2);font-family:var(--font-body);cursor:pointer;transition:all .15s}
span.bulk-stat{cursor:default}
.bulk-stat b{font-weight:700;color:var(--text1)}
button.bulk-stat:hover,.bulk-stat.is-on{border-color:var(--accent);background:var(--accent-lt)}
.bulk-stat.tone-green b{color:var(--green)}.bulk-stat.tone-amber b{color:var(--amber)}.bulk-stat.tone-rose b{color:var(--rose)}.bulk-stat.tone-sky b{color:#0369a1}
.bulk-hint{font-size:12px;color:var(--text3)}
.bulk-list{list-style:none;border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;max-height:460px;overflow-y:auto}
.bulk-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 14px;border-bottom:1px solid var(--border);font-size:13px;animation:fadeUp .2s ease}
.bulk-row:last-child{border-bottom:none}
.bulk-row.is-hidden{display:none}
.bulk-row.is-muted .bulk-name{color:var(--text3)}
.bulk-main{min-width:0;flex:1}
.bulk-name{word-break:break-all;color:var(--text1)}
.bulk-side{display:flex;align-items:center;gap:10px;flex-shrink:0}
.bulk-detail{font-size:12px;color:var(--text2);margin-top:2px}
.bulk-link{font-size:12px;color:var(--accent);text-decoration:none;font-weight:600}
.bulk-link:hover{text-decoration:underline}
.bulk-ask{margin-top:6px;padding:8px 10px;border:1px solid #fcd34d;background:#fffbeb;border-radius:6px;font-size:12px;color:#92400e}
.bulk-ask-btns{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}
.bulk-err{margin-top:4px;color:#991b1b}
.bulk-pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:99px;font-size:11px;font-weight:600;white-space:nowrap;background:var(--bg3);color:var(--text3)}
.bulk-pill.tone-blue{background:#dbeafe;color:#1d4ed8}.bulk-pill.tone-green{background:#d1fae5;color:#065f46}.bulk-pill.tone-sky{background:#e0f2fe;color:#0369a1}.bulk-pill.tone-rose{background:#fee2e2;color:#991b1b}.bulk-pill.tone-amber{background:#fef3c7;color:#92400e}
.bulk-spin{width:10px;height:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
.bulk-tray{position:fixed;right:24px;bottom:24px;z-index:998;display:flex;align-items:center;background:var(--bg2);border:1.5px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);animation:slideIn .22s ease;max-width:calc(100vw - 48px)}
.bulk-tray-open{display:flex;align-items:center;gap:12px;padding:10px 14px;background:none;border:none;cursor:pointer;text-align:left;font-family:var(--font-body);color:var(--text1);min-width:0}
.bulk-tray-text{display:flex;flex-direction:column;font-size:12px;color:var(--text2);line-height:1.4;min-width:0}
.bulk-tray-text b{font-size:13px;color:var(--text1)}
.bulk-tray-x{background:none;border:none;color:var(--text3);font-size:18px;padding:0 12px 0 4px;cursor:pointer;align-self:stretch}
.bulk-tray-x:hover{color:var(--text1)}
.bulk-ring{width:34px;height:34px;transform:rotate(-90deg);flex-shrink:0}
.bulk-ring circle{fill:none;stroke-width:4}
.bulk-ring .ring-bg{stroke:var(--bg3)}
.bulk-ring .ring-fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .4s ease}
.bulk-tray[data-phase="paused"] .ring-fg{stroke:var(--amber)}
.bulk-ring-done{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--green-lt);color:var(--green);font-weight:700;flex-shrink:0}
.bulk-ring-done.is-warn{background:var(--amber-lt);color:var(--amber)}
body.bulk-tray-on .toast-container{bottom:96px}
@media(max-width:580px){.bulk-tray{right:16px;bottom:16px}.bulk-row{flex-direction:column}.bulk-side{align-self:flex-start}}
.req-jd-strip{border:1.5px dashed var(--border2);border-radius:var(--r);padding:12px 14px;margin-bottom:12px;background:var(--bg3)}
.form-input.jd-filled{border-color:var(--amber);background:var(--amber-lt)}
@media(max-width:1100px){.agent-layout{grid-template-columns:1fr}}
/* Below 900px the sidebar is a drawer opened from the top bar's menu button. */
.nav-toggle{display:none;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border:1.5px solid var(--border);border-radius:8px;background:var(--bg2);color:var(--text);font-size:18px;line-height:1;cursor:pointer}
.nav-scrim{display:none}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.result-body{grid-template-columns:1fr}.nav-toggle{display:inline-flex}body.nav-open .sidebar{display:flex;position:fixed;top:58px;left:0;bottom:0;width:248px;height:auto;z-index:150;box-shadow:4px 0 18px rgba(12,23,48,.18)}body.nav-open .nav-scrim{display:block;position:fixed;top:58px;left:0;right:0;bottom:0;background:rgba(12,23,48,.35);z-index:140}.topbar{padding:0 14px}.tabs{overflow-x:auto}.tab{white-space:nowrap}}
@media(max-width:580px){.resume-grid{grid-template-columns:1fr}.main{padding:16px}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r2)}

/* R1.4 — DATA TABLES */
.data-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.data-table{width:100%;border-collapse:collapse;font-size:13px}
.data-table th{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);text-align:left;padding:8px 12px;border-bottom:1.5px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--bg2)}
.data-table td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text1);vertical-align:top}
.data-table tbody tr{transition:background .12s}
.data-table tbody tr:hover{background:var(--bg3)}
.data-table tbody tr.clickable{cursor:pointer}

/* STATUS PILLS */
.pill{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:10px;padding:3px 9px;border-radius:99px;font-weight:500;white-space:nowrap;border:1px solid}
.pill-blue{background:var(--accent-lt);border-color:rgba(26,63,166,.22);color:var(--accent)}
.pill-green{background:var(--green-lt);border-color:rgba(4,120,87,.22);color:var(--green)}
.pill-amber{background:var(--amber-lt);border-color:rgba(180,83,9,.22);color:var(--amber)}
.pill-rose{background:var(--rose-lt);border-color:rgba(190,18,60,.22);color:var(--rose)}
.pill-purple{background:var(--purple-lt);border-color:rgba(91,33,182,.22);color:var(--purple)}
.pill-gray{background:var(--bg3);border-color:var(--border);color:var(--text2)}

/* FORM FIELDS */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-field{display:flex;flex-direction:column;gap:4px}
.form-field.full{grid-column:1/-1}
.form-label{font-size:11px;font-weight:600;color:var(--text2);letter-spacing:.04em;text-transform:uppercase;font-family:var(--font-mono)}
.form-input{width:100%;padding:9px 12px;font-family:var(--font-body);font-size:13px;border:1.5px solid var(--border);border-radius:var(--r2);color:var(--text1);background:var(--bg3);outline:none;transition:border-color .2s}
.form-input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-lt)}
.form-input::placeholder{color:var(--text3)}
textarea.form-input{resize:vertical;min-height:70px;line-height:1.6}
select.form-input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2344546A' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 10px center;background-size:12px;padding-right:30px}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}

/* DETAIL LAYOUT */
.detail-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text2);cursor:pointer;font-weight:500;transition:color .15s;border:none;background:none;font-family:var(--font-body);padding:0}
.detail-back:hover{color:var(--accent)}
.tabs{display:flex;gap:0;border-bottom:1.5px solid var(--border);margin-bottom:16px}
.tab{padding:10px 18px;font-size:13px;font-weight:600;color:var(--text2);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;font-family:var(--font-body);background:none;border-top:none;border-left:none;border-right:none}
.tab:hover{color:var(--text1)}
.tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.tab-panel{display:none}.tab-panel.active{display:block}

/* SNAPSHOT DIVIDER */
.snapshot-divider{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin:16px 0 10px;padding:6px 0}
.snapshot-divider.internal{color:var(--text3)}.snapshot-divider.internal::after{content:'';flex:1;height:1px;background:var(--border)}
.snapshot-divider.client{color:var(--accent);font-weight:600}.snapshot-divider.client::before{content:'';width:3px;height:14px;border-radius:2px;background:var(--accent)}.snapshot-divider.client::after{content:'';flex:1;height:1px;background:var(--accent-md)}
.hidden-by-role{display:none!important}

/* TRACKER SUMMARY CARDS */
#tracker-summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:16px}
.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:14px 16px;text-align:center}
.summary-val{font-family:var(--font-head);font-size:26px;font-weight:600;color:var(--text1);line-height:1}
.summary-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-top:4px}
