:root{--bg:#edf1f4;--surface:#fff;--sunk:#f3f6f8;--fg:#0f1b2a;--muted:#566476;--line:#dbe2e9;--accent:#0b7a75;--on-accent:#fff;--navy:#0f1b2a;--ok:#17804a;--warn:#b25e09;--bad:#b42318;--bar:#c4d1dc;--signal:#c27a06;--shadow:0 1px 2px rgba(15,27,42,.05),0 8px 24px -12px rgba(15,27,42,.14);color-scheme:light}
:root[data-theme=dark]{--bg:#0a111c;--surface:#101a28;--sunk:#152133;--fg:#e4eaf1;--muted:#93a1b3;--line:#213046;--accent:#3cc9c1;--on-accent:#04201e;--navy:#f1f5f9;--ok:#55d69b;--warn:#f2b04f;--bad:#ff8a7a;--bar:#2a3b52;--signal:#f2b544;--shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px -14px rgba(0,0,0,.6);color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 "Segoe UI",system-ui,sans-serif;padding:20px 16px 64px}
main{max-width:1200px;margin:0 auto;display:grid;gap:32px}
h1{font:800 clamp(34px,6vw,60px)/1 "Segoe UI",system-ui,sans-serif;letter-spacing:-.025em;margin:0}
h2{font:700 24px/1.15 system-ui,sans-serif;color:var(--navy);margin:0;padding-bottom:10px;border-bottom:1px solid var(--line)}
h3{font:600 15px/1.3 system-ui,sans-serif;margin:0;color:var(--navy);display:flex;justify-content:space-between;gap:10px}
h3 a{font-size:12px;font-weight:500;color:var(--accent);text-decoration:none}
p{margin:0}a{color:var(--accent)}
.muted{color:var(--muted)}.cap{font-size:13.5px}
.banner{background:color-mix(in srgb,var(--warn) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 40%,var(--line));color:var(--warn);border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600}
section{display:grid;gap:16px;scroll-margin-top:16px}
.hero{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;padding:clamp(18px,4vw,36px);display:grid;gap:20px}
.topbar{display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:space-between;align-items:center}
.eyebrow{font:500 12px ui-monospace,Consolas,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.live{color:var(--signal);display:inline-flex;align-items:center;gap:7px}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--signal);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35}}
.colon{color:var(--accent)}
nav{display:flex;flex-wrap:wrap;gap:6px}
nav a{font-size:13px;color:var(--fg);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:5px 13px;background:var(--sunk)}
nav a:hover{border-color:var(--accent)}
.themesw{display:inline-flex;align-items:center;gap:9px;font:500 11px ui-monospace,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.themesw button{all:unset;cursor:pointer;position:relative;width:46px;height:26px;border-radius:13px;background:var(--sunk);border:1px solid var(--line)}
.themesw button i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--signal);transition:transform .2s}
.themesw button[aria-checked=true] i{transform:translateX(20px);background:var(--accent)}
.control{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;background:var(--sunk);border:1px solid var(--line);border-radius:16px;padding:18px 20px}
@media(max-width:720px){.control{grid-template-columns:1fr}}
.status{display:flex;flex-wrap:wrap;gap:12px 36px}.status div{display:grid;gap:2px}
.status .l,.tile .l{font:500 11px ui-monospace,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.status .v{font:500 15px ui-monospace,Consolas,monospace}
.scanbtn{font:700 17px system-ui,sans-serif;background:var(--accent);color:var(--on-accent);border:0;border-radius:14px;padding:15px 24px;cursor:pointer;display:inline-flex;gap:10px;align-items:center;justify-content:center;min-width:15rem}
.scanbtn:disabled{opacity:.5;cursor:default}
.scanbtn.busy .ic{display:inline-block;animation:spin 1.2s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.control #take,.control .prog,.control #msg{grid-column:1/-1}
#take{font-weight:500;padding:11px 14px;border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}
.prog{height:4px;border-radius:2px;background:var(--line);overflow:hidden}.prog i{display:block;height:100%;width:0;background:var(--accent);transition:width .5s}
#msg{min-height:1.4em;color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:7px;font-weight:600}
.pill::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:currentColor}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}.idle{color:var(--muted)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 20px;display:grid;gap:12px;align-content:start;min-width:0;box-shadow:var(--shadow)}
.grid,.brief,.news{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));align-items:start}
.tiles{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr))}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:grid;gap:4px}
.tile .v{font:800 36px/1 system-ui,sans-serif;color:var(--navy)}
.tile .v.ok{color:var(--ok)}.tile .v.warn{color:var(--warn)}.tile .v.bad{color:var(--bad)}
.tile .s{font-size:13px;color:var(--muted)}
.slots{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.slot{display:grid;gap:6px;justify-items:center;font:500 12px ui-monospace,Consolas,monospace;color:var(--muted)}
.slot b{display:block;height:10px;width:100%;border-radius:5px;background:var(--sunk);border:1px solid var(--line)}
.slot.ran b{background:var(--ok);border-color:transparent}.slot.failed b{background:var(--bad);border-color:transparent}
.slot.missed b{background:var(--warn);border-color:transparent;opacity:.8}.slot.next b{border:2px solid var(--accent)}.slot.next{color:var(--accent)}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
.vbar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--sunk)}.vbar span{height:100%}
.chart{display:flex;align-items:flex-end;gap:8px;height:150px;padding-top:8px}
.chart .col{flex:1;display:grid;gap:4px;justify-items:center;align-content:end;height:100%;font:500 11px ui-monospace,Consolas,monospace;color:var(--muted)}
.chart .col b{display:block;width:70%;max-width:34px;background:var(--accent);border-radius:4px 4px 0 0}
.tbox{overflow:auto;max-height:34rem;border:1px solid var(--line);border-radius:12px}
table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:last-child td{border-bottom:0}
th{position:sticky;top:0;background:var(--sunk);font:500 11px ui-monospace,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);z-index:1}
td a{color:var(--accent)}
.tag{display:inline-block;border-radius:999px;padding:2px 10px;font:600 12px/1.5 system-ui,sans-serif;border:1px solid color-mix(in srgb,currentColor 28%,transparent);background:color-mix(in srgb,currentColor 9%,transparent);white-space:nowrap}
.tag.yes,.tag.applied,.tag.t-ai{color:var(--ok)}.tag.maybe,.tag.t-ops{color:var(--warn)}.tag.no,.tag.t-oth{color:var(--muted)}.tag.ready,.tag.t-hr{color:var(--accent)}.tag.t-cus,.tag.rejected{color:var(--bad)}.tag.remote{font-size:10.5px;padding:0 7px;margin-left:8px;color:var(--accent)}
.row-open td{background:var(--sunk)}
tr.main{cursor:pointer}tr.main:hover td{background:var(--sunk)}
tr.grp td{background:var(--surface);font:700 15px system-ui,sans-serif;color:var(--navy);padding-top:16px;padding-bottom:8px;border-bottom:2px solid var(--line)}
.why{display:grid;gap:10px;max-width:80ch;padding:4px 2px 8px}
.why b{font:500 11px ui-monospace,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block}
.why textarea{width:100%}
.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between}
.stack{display:flex;flex-direction:column;gap:8px;min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chips .lbl{font:500 11px ui-monospace,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);min-width:4.5rem}
.chips button,.btn,.adlink,select{font:500 13px system-ui,sans-serif;border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:999px;padding:5px 13px;cursor:pointer}
.chips button:hover{border-color:var(--accent)}
.chips button[aria-pressed=true],.btn{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn.sm{padding:3px 11px;font-size:12px}
.adlink{text-decoration:none;color:var(--accent);padding:3px 11px;white-space:nowrap}
.linkbtn{all:unset;cursor:pointer;color:var(--accent);text-decoration:underline;font-size:13px}
input,textarea{font:inherit;font-size:14px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--sunk);color:var(--fg)}
input[type=search]{width:min(100%,19rem)}
input:focus,textarea:focus{border-color:var(--accent);outline:none;background:var(--surface)}
.form{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));align-items:center}
.form textarea,.form .btn,.form #importmsg{grid-column:1/-1}.form .btn{justify-self:start;border-radius:10px;padding:8px 18px}
.form.col{grid-template-columns:1fr}.form.col label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
label.inline{display:flex;gap:6px;align-items:center}
.dl{display:grid;gap:10px}.dl .it{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:10px}.dl .it:first-child{border-top:0;padding-top:0}
.soon{color:var(--bad);font-weight:600}
.empty{color:var(--muted);font-size:14px;padding:6px 0}
.bl{list-style:none;margin:0;padding:0;display:grid}
.bl li{display:grid;gap:3px;padding:10px 0;border-top:1px solid var(--line)}.bl li:first-child{border-top:0;padding-top:0}
.bl .meta{font:500 11.5px ui-monospace,Consolas,monospace;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}.bl .meta .k{color:var(--accent);text-transform:uppercase}
.bl .hl{font-weight:600;color:var(--navy)}.bl .fy{font-size:14px;color:var(--muted)}
.feed{list-style:none;margin:0;padding:0}.feed li{display:grid;grid-template-columns:9rem 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.feed li:first-child{border-top:0}
.feed time{font:500 12.5px ui-monospace,Consolas,monospace;color:var(--muted)}.feed .k{font:500 11px ui-monospace,Consolas,monospace;color:var(--accent);margin-right:8px;text-transform:uppercase}
@media(max-width:540px){.feed li{grid-template-columns:1fr}}
.news .for{border-top:1px dashed var(--line);padding-top:10px;font-size:14px}
dialog{max-width:min(90vw,720px);width:100%;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--fg);padding:18px 20px}
dialog::backdrop{background:rgba(0,0,0,.45)}
.dlghead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
pre{white-space:pre-wrap;font:14px/1.5 system-ui,sans-serif;margin:0;max-height:60vh;overflow:auto}
:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* jobs by source, CV request control */
.tbox.nomax{max-height:none}
.sbar{height:8px;border-radius:4px;background:var(--sunk);overflow:hidden;min-width:60px}.sbar i{display:block;height:100%;background:var(--accent);border-radius:4px}
#srctab td.n{font-family:ui-monospace,Consolas,monospace;font-size:14px}#srctab td.n.z{color:var(--muted)}#srctab tr.tot td{font-weight:600;border-top:2px solid var(--line)}
#srctab td:last-child{width:28%}
.adcell{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cvbtn{font:600 12.5px system-ui,sans-serif;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);border-radius:999px;padding:3px 11px;cursor:pointer;white-space:nowrap}
.cvbtn:disabled{cursor:default;opacity:.6}
.cvstate{font:500 12px system-ui,sans-serif;white-space:nowrap;padding:3px 10px;border-radius:999px;border:1px dashed var(--line);color:var(--muted)}
.cvstate.go{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.cvstate.done{color:var(--ok);border-style:solid;border-color:color-mix(in srgb,var(--ok) 40%,transparent)}

/* login (demo) */
#login{display:none;min-height:100vh;min-height:100dvh;place-items:center;padding:20px}
html:not(.authed) #login{display:grid}
html:not(.authed) main,html:not(.authed) dialog{display:none}
html:not(.authed) body{padding:0}
.logincard{width:min(100%,26rem);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;padding:clamp(22px,6vw,36px);display:grid;gap:16px}
.logincard h1{font-size:clamp(30px,9vw,42px)}
.logincard label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.logincard input{font-size:16px;padding:12px 14px}
.logincard .scanbtn{min-width:0;width:100%}

/* mobile first: bottom tab bar, stacked cards, thumb-sized targets */
nav{position:fixed;left:0;right:0;bottom:0;z-index:20;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 20px -12px rgba(15,27,42,.3);scrollbar-width:none}
nav::-webkit-scrollbar{display:none}
nav a{flex:0 0 auto;display:flex;align-items:center;min-height:44px;padding:0 16px;white-space:nowrap}
body{padding:12px 12px calc(84px + env(safe-area-inset-bottom))}
main{gap:24px}
h2{font-size:21px}
.scanbtn{min-width:0;width:100%}
.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile .v{font-size:30px}
.chips button,.btn,.adlink,select,.cvbtn{min-height:36px}
.linkbtn{padding:6px 2px}
input,textarea,select{font-size:16px}
@media(max-width:720px){
  .themesw>span{display:none}
  .banner{font-size:12px}
  .hero{border-radius:18px}
  .chips .lbl{min-width:100%}
  input[type=search]{width:100%}
  dialog{max-width:100vw;max-height:100dvh;border-radius:16px 16px 0 0;margin:auto 0 0}
  .tbox{max-height:none;border:0;overflow:visible}
  table,tbody{display:block}thead{display:none}
  tbody tr{display:block;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:6px 12px;margin-bottom:10px}
  tbody tr.grp{background:none;border:0;padding:0;margin:14px 0 6px}
  tr.grp td{padding:0;border:0}
  td{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:7px 0;border-bottom:1px dashed var(--line);text-align:right}
  td:last-child,tbody tr:last-child td{border-bottom:0}
  td::before{content:attr(data-label);flex:0 0 auto;font:500 11px ui-monospace,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left}
  td:empty{display:none}
  td[colspan]{display:block;text-align:left}td[colspan]::before{content:none}
  tr.row-open{border-color:var(--accent)}
  #srctab td:last-child{width:auto}#srctab .sbar{width:8rem}
  .adcell{justify-content:flex-end}
  .why{max-width:none}
}

/* desktop: sidebar navigation and a wider dashboard */
@media(min-width:1024px){
  body{padding:24px 28px 48px 252px}
  nav{top:0;bottom:auto;right:auto;width:224px;flex-direction:column;overflow:visible;gap:4px;padding:24px 14px;border-top:0;border-right:1px solid var(--line);box-shadow:none}
  nav a{min-height:0;padding:9px 14px;border-radius:10px;border:0;background:none;font-size:14px}
  nav a:hover{background:var(--sunk)}
  main{max-width:1500px;gap:36px}
  .scanbtn{width:auto;min-width:15rem}
  .tiles{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}
  .brief{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:1100px){
  #today{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
  #today>h2,#today>.tiles,#today>.card:last-child{grid-column:1/-1}
  #today>h2{order:0}#today>.tiles{order:1}#today>.card:nth-of-type(1),#today .grid>.card{order:2}#today>.card:last-child{order:3}
  #today .grid{display:contents}
  .slot b{height:8px}
}
@media(max-width:720px){td[data-label=""]::before{display:none}}
