/* Corelink Walkout Management Portal
   Layout: full-height navy side rail with a gold edge, grey top bar, darker grey desk with light cards. */
:root{
  --bg:#e6e4ef; --surface:#f4f3f9; --card:#ffffff; --sunken:#e9e7f2; --ink:#16142f; --muted:#4f4c6b; --line:#cfcbe0;
  --bar:#d9d6e6; --bar-line:#c9c5db; --rail-ink:#c9c6e6; --rail-dim:#7d79a8; --rail-line:#221e4a;
  --navy:#05031b; --navy-2:#100d33; --gold:#f5b316; --gold-ink:#1d1300; --purple:#6a48d8; --purple-soft:#efeafd;
  --accent:var(--purple); --accent-ink:#ffffff; --focus:#8b6cf0;
  --st-to_validate:#6b7686; --st-assignment:#7c4fe0; --st-in_field:#0f9488; --st-charter:#e0264a; --st-qc1:#c47d0b;
  --st-qc_issues:#d9483b; --st-qc2:#2a6fd6; --st-passed:#2b9348; --st-rejected:#a3577a; --st-allotted:#b5487f; --st-review:#9a7b12;
  --warn:#c47d0b; --crit:#d9483b; --prio:#e8700a;
  --display:"Barlow Semi Condensed","Arial Narrow",system-ui,sans-serif;
  --body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --r:8px;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
img{max-width:100%}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:13px/1.45 var(--body);margin:0}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--navy)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;letter-spacing:.01em}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.dim{color:var(--muted)}
.label{font:600 10.5px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--navy);color:#fff;border-bottom:3px solid var(--gold)}
.top-in{max-width:1480px;margin:0 auto;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;min-width:0;padding-right:14px;border-right:1px solid #2b2752}
.brand img{height:54px;width:auto;flex:none}
.brand h1{font-size:17.5px;font-weight:700;line-height:1.1;color:#fff}
.brand small{display:block;font:500 10.5px var(--body);color:#b9b4dc}
.search-wrap{flex:1 1 300px;display:flex;min-width:0}
.search-wrap select{flex:none;border:1px solid #2b2752;border-right:0;border-radius:var(--r) 0 0 var(--r);background:var(--navy-2);color:var(--gold);font-weight:600;padding:9px 8px}
.search{flex:1;position:relative;min-width:0}
.search input{width:100%;padding:10px 12px 10px 36px;border:1px solid #2b2752;border-radius:0 var(--r) var(--r) 0;background:var(--navy-2);color:#fff}
.search input::placeholder{color:#8f8ab5}
.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#8f8ab5}
.all-top{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:10px;padding:5px 12px;border-radius:var(--r);border:1px solid #3a3466;background:var(--navy-2)}
.all-top:hover{border-color:var(--gold)}
.all-top .at-l{font:600 9.5px/1.15 var(--display);letter-spacing:.08em;text-transform:uppercase;color:#b9b4dc}
.all-top .at-n{font:700 19.5px/1 var(--display);font-variant-numeric:tabular-nums;color:#fff}
.all-top .at-mi{font:600 11.5px/1 var(--mono);color:var(--gold);white-space:nowrap}
.top-acts{display:flex;gap:8px;align-items:center;margin-left:auto}
.hdr-btn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--r);border:1px solid #3a3466;color:#fff;font-weight:600;white-space:nowrap}
.hdr-btn:hover{border-color:#8f8ab5}
.hdr-btn.gold{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.hdr-btn.gold:hover{filter:brightness(1.06)}
.online-dot{width:8px;height:8px;border-radius:50%;background:#3ad16a}
.avatar{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--purple);color:#fff;font:700 10.5px var(--display)}
.mode-line{width:100%;font:500 10.5px var(--mono);color:#8f8ab5;margin-top:-4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pop{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 10px 30px rgba(10,8,40,.18);min-width:230px;padding:6px;z-index:20;display:flex;flex-direction:column}
.pop button{all:unset;cursor:pointer;padding:9px 10px;border-radius:6px;font-weight:500}
.pop button:hover{background:var(--sunken)}
.pop .who{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.rel{position:relative}

/* shell */
.wrap{max-width:1480px;margin:0 auto;padding-block:0 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start}
.side{position:sticky;top:calc(env(safe-area-inset-top,0px) + 96px);margin-top:20px;display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 120px);overflow:auto;padding-bottom:12px}
.side .grp{font:600 9.5px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 12px 4px}
.nav{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;font-weight:500;color:var(--ink)}
.nav:hover{background:var(--sunken)}
.nav[aria-current="page"]{background:var(--purple-soft);color:var(--purple);font-weight:700;box-shadow:inset 3px 0 0 var(--gold)}
.nav .ct{margin-left:auto;font:500 10.5px var(--mono);color:var(--muted)}
.nav .sw{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none}
.nav:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.menu-btn{display:none}
.content{min-width:0}
.view{margin-top:20px}
@media (max-width:900px){
  .wrap{grid-template-columns:minmax(0,1fr)}
  .side{position:static;max-height:none;margin-top:12px;border:1px solid var(--line);border-radius:var(--r);padding:6px}
  .side.closed{display:none}
  .menu-btn{display:inline-flex;margin-top:14px}
  .brand{border-right:0}
}
@media (max-width:560px){.brand img{height:44px}.brand h1{font-size:15px}.top-acts{margin-left:0}}

/* buttons, chips, pills */
.btn{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:9px 14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--purple);border-color:var(--purple);color:#fff}
.btn.primary:hover{filter:brightness(1.08)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.btn.danger{color:var(--crit);border-color:color-mix(in srgb,var(--crit) 45%,var(--line))}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.sm{padding:5px 10px;font-size:11.5px}
.pill{--c:var(--muted);display:inline-flex;align-items:center;gap:6px;padding:2px 9px 2px 7px;border-radius:999px;font:600 10.5px var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--c);background:color-mix(in srgb,var(--c) 11%,transparent);border:1px solid color-mix(in srgb,var(--c) 30%,transparent);white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.chip{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 8px;border-radius:999px;font:500 10.5px/1 var(--mono);background:var(--sunken);border:1px solid var(--line);white-space:nowrap}
.chip.prio{color:var(--prio);border-color:color-mix(in srgb,var(--prio) 55%,var(--line));background:color-mix(in srgb,var(--prio) 10%,transparent);font-family:var(--body);font-weight:700}
.chip.assist{color:var(--st-charter);border-color:color-mix(in srgb,var(--st-charter) 55%,var(--line));background:color-mix(in srgb,var(--st-charter) 10%,transparent);font-family:var(--body);font-weight:700}
.role-chip{display:inline-flex;padding:1px 8px;border-radius:999px;font:600 10px var(--display);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line);background:var(--sunken);color:var(--muted)}
.role-chip.admin{color:var(--purple);border-color:color-mix(in srgb,var(--purple) 40%,var(--line))}
.role-chip.qc1{color:var(--st-qc1)}.role-chip.qc2{color:var(--st-qc2)}.role-chip.ops{color:var(--st-assignment)}
.status{display:inline-flex;align-items:center;gap:8px;font-weight:600;white-space:nowrap}
.status.on{--c:var(--st-passed);color:var(--st-passed)}
.status.off{--c:var(--crit);color:var(--crit)}
.pulse{position:relative;flex:none;width:10px;height:10px;border-radius:50%;background:var(--c)}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--c);animation:pulse 1.6s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.8);opacity:0}}
.uav{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--purple-soft);color:var(--purple);font:700 10.5px var(--display);margin-right:10px;vertical-align:middle}

/* banner */
.banner{margin-top:16px;padding:10px 14px;border-radius:var(--r);border:1px solid color-mix(in srgb,var(--gold) 60%,var(--line));background:color-mix(in srgb,var(--gold) 12%,#fff);font-size:12.5px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.banner b{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:11.5px}

/* pipeline */
.pipe{margin-top:16px;display:grid;grid-template-columns:repeat(var(--n,9),minmax(0,1fr));gap:8px}
.stage{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 8px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;position:relative;min-width:0}
.stage::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:var(--r) var(--r) 0 0;background:var(--c)}
.stage:hover{border-color:var(--muted)}
.stage[aria-pressed="true"]{border-color:var(--c);box-shadow:inset 0 0 0 1px var(--c);background:color-mix(in srgb,var(--c) 5%,#fff)}
.stage .n{font:700 24.5px/1 var(--display);font-variant-numeric:tabular-nums;color:var(--ink)}
.stage .nm{font:600 11px/1.2 var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);min-height:2.4em;display:flex;align-items:center;justify-content:center;text-wrap:balance}
.stage .sub{font-size:10.5px;color:var(--muted);min-height:1.2em}
.stage .sub.alert{color:var(--crit);font-weight:600}
.stage.charter-attn{animation:charterTile 1.4s ease-in-out infinite}
@keyframes charterTile{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--st-charter) 35%,transparent)}}
@media (max-width:1250px){.pipe{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:640px){.pipe{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* tabs */
.tabs{margin-top:20px;display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.tab{all:unset;cursor:pointer;padding:10px 16px;font:600 13px var(--display);letter-spacing:.03em;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--gold)}
.tab .cnt{font:500 10.5px var(--mono);color:var(--muted);margin-left:4px}

/* panels & tables */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0;margin-top:16px}
.panel-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line)}
.panel-h h2{font-size:16.5px;font-weight:700}
.panel-h p{margin:2px 0 0;color:var(--muted);font-size:11.5px}
.panel-h .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.f-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--sunken)}
.f-filters select,.f-filters input{font-size:11.5px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);max-width:100%}
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{font:600 10.5px var(--display);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);background:var(--sunken);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tbody tr.click{cursor:pointer}
tbody tr.click:hover td{background:var(--sunken)}
tfoot td{font-weight:700;background:var(--sunken)}
.fname{font-weight:600}
.fname small{display:block;font:400 10.5px var(--mono);color:var(--muted)}
.clock{font-family:var(--mono);font-size:11.5px}
.clock.warn{color:var(--warn);font-weight:500}
.clock.crit{color:var(--crit);font-weight:600}
.clock.crit::after{content:" overdue";font:600 9.5px var(--display);text-transform:uppercase;letter-spacing:.06em}
tr.charter-row>td{animation:charterPulse 1.4s ease-in-out infinite}
tr.charter-row>td:first-child{box-shadow:inset 3px 0 0 var(--st-charter)}
@keyframes charterPulse{0%,100%{background:color-mix(in srgb,var(--st-charter) 4%,transparent)}50%{background:color-mix(in srgb,var(--st-charter) 13%,transparent)}}
tr.prio-row>td{animation:prioPulse 1.8s ease-in-out infinite}
tr.prio-row>td:first-child{box-shadow:inset 3px 0 0 var(--prio)}
@keyframes prioPulse{0%,100%{background:color-mix(in srgb,var(--prio) 4%,transparent)}50%{background:color-mix(in srgb,var(--prio) 12%,transparent)}}
.empty{padding:40px 20px;text-align:center;color:var(--muted)}
.empty h3{color:var(--ink);font-size:17.5px;margin-bottom:6px}
mark{background:color-mix(in srgb,var(--gold) 40%,transparent);color:inherit;border-radius:2px}

/* tiles + charts */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:16px}
.tile{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;background:var(--sunken);display:flex;flex-direction:column;gap:2px}
.tile .lbl{font-size:11.5px;color:var(--muted)}
.tile .val{font:700 24.5px/1.1 var(--display);font-variant-numeric:tabular-nums}
.tile .cmp{font-size:11px;color:var(--muted)}
.chart-card{border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:0 16px 16px;background:var(--surface)}
.chart-card h3{font:600 13px var(--body)}
.chart-card .sub{font-size:11px;color:var(--muted);margin:2px 0 8px}
.chart-card svg{display:block;width:100%;height:auto}
.chart-card svg text{font-family:var(--body);fill:var(--muted);font-size:11.5px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--c);margin-right:6px;vertical-align:-1px}

/* fielder & customer portals */
.rp-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--warn) 60%,var(--line));border-radius:var(--r);background:color-mix(in srgb,var(--gold) 9%,#fff)}
.rp-bar .t{flex:1;min-width:220px;display:flex;flex-direction:column;gap:3px}
.rp-bar .t b{font-size:14px;color:var(--warn)}
.rp-bar .t span{font-size:12px;color:var(--muted)}
.rp-bar.ok{border-color:color-mix(in srgb,var(--st-passed) 55%,var(--line));background:color-mix(in srgb,var(--st-passed) 7%,#fff)}
.rp-bar.ok .t b{color:var(--st-passed)}
.cu-filters{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}
.cu-filters button{all:unset;box-sizing:border-box;cursor:pointer;padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:11.5px;font-weight:600;color:var(--muted)}
.cu-filters button[aria-pressed="true"]{border-color:var(--purple);color:var(--purple);background:var(--purple-soft)}

/* dialogs */
dialog{border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:0;width:min(780px,calc(100vw - 32px));max-height:calc(100vh - 48px)}
dialog::backdrop{background:rgba(5,3,27,.5)}
.dlg-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--line);border-top:4px solid var(--c,var(--gold));border-radius:12px 12px 0 0}
.dlg-h h2{font-size:19.5px;font-weight:700;overflow-wrap:anywhere}
.dlg-b{padding:18px 20px;display:flex;flex-direction:column;gap:18px}
.dlg-f{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.x{all:unset;cursor:pointer;width:32px;height:32px;display:grid;place-items:center;border-radius:6px;color:var(--muted);flex:none}
.x:hover{background:var(--sunken)}
.props{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.props div{background:var(--surface);padding:10px 12px;min-width:0}
.props b{display:block;font:500 13px var(--mono);margin-top:2px;overflow-wrap:anywhere}
@media (max-width:560px){.props{grid-template-columns:repeat(2,minmax(0,1fr))}}
.action-box{border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:12px;background:var(--sunken)}
.action-row{display:flex;gap:10px;flex-wrap:wrap}
.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.timeline li{display:grid;grid-template-columns:14px minmax(0,1fr);gap:12px;position:relative;padding-bottom:14px}
.timeline li::before{content:"";position:absolute;left:6px;top:14px;bottom:0;width:2px;background:var(--line)}
.timeline li:last-child::before{display:none}
.timeline .dot{width:14px;height:14px;border-radius:50%;border:3px solid var(--c);background:var(--surface);margin-top:3px}
.timeline .note{margin-top:4px;padding:8px 10px;border-radius:6px;background:color-mix(in srgb,var(--st-qc_issues) 7%,#fff);border:1px solid color-mix(in srgb,var(--st-qc_issues) 25%,var(--line));font-size:12.5px;white-space:pre-wrap}
.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid-form .full{grid-column:1/-1}
@media (max-width:560px){.grid-form{grid-template-columns:minmax(0,1fr)}}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field input,.field textarea,.field select{padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--surface);width:100%}
.field textarea{min-height:72px;resize:vertical}
.field .err{font-size:10.5px;color:var(--crit)}
.drop{border:2px dashed var(--line);border-radius:var(--r);padding:22px;text-align:center;color:var(--muted);background:var(--sunken)}
.drop.over{border-color:var(--purple);background:var(--purple-soft)}

/* sign-in */
.auth{position:fixed;inset:0;z-index:100;background:var(--sunken);display:grid;place-items:center;padding:24px 16px;overflow:auto}
.auth-col{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(420px,100%)}
.auth-card{width:100%;display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 24px 24px;box-shadow:0 12px 40px rgba(10,8,40,.08);overflow:hidden}
.auth-logo{margin:0 -24px 6px;background:var(--navy);padding:18px 24px;display:grid;place-items:center;border-bottom:3px solid var(--gold)}
.auth-logo img{width:280px;height:auto}
.auth-card h1{font-size:23px}
.auth-card p{margin:0}
.auth-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--line);border-radius:var(--r);background:var(--sunken)}
.auth-tabs button{all:unset;box-sizing:border-box;flex:1;text-align:center;padding:7px 10px;border-radius:6px;cursor:pointer;font-weight:600;color:var(--muted)}
.auth-tabs button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.check{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-weight:600;font-size:13px}
.check input{width:18px;height:18px;accent-color:var(--purple)}
.link{all:unset;cursor:pointer;color:var(--purple);font-weight:600;text-align:center}
.link.u{text-decoration:underline;text-underline-offset:3px}
.ver{font-size:10.5px;color:var(--muted)}
.demo-note{font-size:11.5px;color:var(--muted);text-align:center;max-width:42ch}

/* subcontractors */
.co-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 3px;border-radius:6px;font:600 11.5px var(--body);color:var(--purple);background:var(--purple-soft);border:1px solid color-mix(in srgb,var(--purple) 28%,transparent);white-space:nowrap}
.co-chip b{font:700 9px/1.4 var(--display);letter-spacing:.08em;background:var(--purple);color:#fff;padding:0 5px;border-radius:4px}
.chip.crit{color:var(--crit);border-color:color-mix(in srgb,var(--crit) 45%,var(--line));background:color-mix(in srgb,var(--crit) 8%,transparent)}
.walk{display:block;margin-top:3px;font-size:11px;color:var(--muted)}
.walk b{color:var(--ink);font-weight:600}
td.sel,th.sel{width:34px;padding-right:0}
td.sel input,th.sel input{width:16px;height:16px;accent-color:var(--purple);cursor:pointer}
.filebox{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--sunken)}
.filebox b{display:block;margin-top:2px;overflow-wrap:anywhere}
.fn{font-size:11px;white-space:normal;overflow-wrap:anywhere;min-width:150px;max-width:280px}
table.bk select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);max-width:210px}
tr.bad-row td{background:color-mix(in srgb,var(--crit) 6%,transparent)}
tr.ok-row td{background:color-mix(in srgb,var(--st-passed) 6%,transparent)}
.ok{color:var(--st-passed);font-weight:600}.bad{color:var(--crit);font-weight:600;white-space:normal}.warn-t{color:var(--warn);font-weight:600}
.btn:disabled{opacity:.5;cursor:not-allowed}
.f-filters input{min-width:200px}
.acct-sub td{background:var(--sunken);font-weight:600}
.acct-crew td{color:var(--muted);font-size:12px;padding-top:6px;padding-bottom:6px}
.acct-crew td:first-child{padding-left:36px}
dialog.wide{width:min(1100px,calc(100vw - 32px))}
.req-banner{border-color:color-mix(in srgb,var(--purple) 40%,var(--line));background:var(--purple-soft)}
.req-banner b{color:var(--purple)}
/* QC lock, Fuse, Charter, folder check, viewer */
.lock-chip{--c:var(--st-qc2);display:inline-flex;align-items:center;gap:6px;margin-left:4px;padding:1px 8px;border-radius:999px;font:600 10px var(--body);color:var(--st-qc2);background:color-mix(in srgb,var(--st-qc2) 9%,transparent);border:1px solid color-mix(in srgb,var(--st-qc2) 35%,transparent)}
.lock-chip .pulse{width:7px;height:7px}
.lock-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border-radius:var(--r);border:1px dashed var(--line);background:var(--sunken)}
.lock-box .t{flex:1;min-width:200px}
.lock-box.mine{--c:var(--st-qc2);border:1px solid color-mix(in srgb,var(--st-qc2) 50%,var(--line));background:color-mix(in srgb,var(--st-qc2) 6%,#fff)}
.lock-box.other{--c:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 55%,var(--line));background:color-mix(in srgb,var(--warn) 7%,#fff)}
.lock-box.done{border-style:solid;border-color:color-mix(in srgb,var(--st-passed) 45%,var(--line));background:color-mix(in srgb,var(--st-passed) 6%,#fff)}
.chip.fuse{color:var(--st-passed);border-color:color-mix(in srgb,var(--st-passed) 50%,var(--line));background:color-mix(in srgb,var(--st-passed) 8%,transparent);font-family:var(--body);font-weight:700}
.charter-box{border:1px solid color-mix(in srgb,var(--st-charter) 50%,var(--line));background:color-mix(in srgb,var(--st-charter) 4%,#fff);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.dev-row{display:flex;gap:8px;flex-wrap:wrap}
.dev-row label{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-weight:600;font-size:12px;user-select:none}
.dev-row label:has(input:checked){border-color:var(--st-charter);color:var(--st-charter);background:color-mix(in srgb,var(--st-charter) 8%,transparent)}
.dev-row input{width:16px;height:16px;margin:0;accent-color:var(--st-charter)}
.dev-tag{display:inline-flex;padding:1px 8px;border-radius:999px;font:600 10.5px var(--display);letter-spacing:.05em;color:var(--st-charter);border:1px solid color-mix(in srgb,var(--st-charter) 45%,var(--line))}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.photos figure{margin:0;aspect-ratio:1;max-width:100%;border-radius:6px;overflow:hidden;border:1px solid var(--line);background:var(--sunken);display:grid;place-items:center;font-size:9.5px;color:var(--muted);text-align:center;padding:4px;position:relative;overflow-wrap:anywhere}
.photos img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.pw-rules{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:4px 12px;font-size:11.5px}
.pw-rules li{color:var(--muted)}.pw-rules li::before{content:"○ "}.pw-rules li.ok{color:var(--st-passed);font-weight:600}.pw-rules li.ok::before{content:"● "}
.pop-l{font:600 9.5px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 10px 2px}
.scan-alert{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:4px 14px;border-radius:999px;font-weight:700;font-size:11.5px;color:#fff;background:var(--crit);box-shadow:0 2px 8px rgba(5,3,27,.25);position:absolute;left:50%;bottom:0;transform:translate(-50%,50%);z-index:6;white-space:nowrap;--c:#fff}
.scan-alert:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.scan-list{list-style:none;margin:0;padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.scan-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid color-mix(in srgb,var(--crit) 40%,var(--line));border-radius:var(--r);background:var(--sunken)}
.scan-item .path{font:11px var(--mono);color:var(--muted);overflow-wrap:anywhere}
@media (max-width:560px){.scan-item{grid-template-columns:auto minmax(0,1fr)}.scan-item .action-row{grid-column:1/-1}}
.scan-ok{display:flex;align-items:center;gap:10px;padding:16px;font-size:13px}
.pv{overflow:auto;background:#3b3f44;padding:12px;height:min(70vh,640px)}
.pv svg{display:block;margin:0 auto;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.4);max-width:none}
.tree{font:11.5px/1.7 var(--mono);margin:0;padding:12px 16px;background:var(--sunken);overflow-x:auto;white-space:pre}
table.bk input{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}
/* toasts */
.toasts{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;z-index:200}
.toast{background:var(--navy);color:#fff;border-left:4px solid var(--gold);padding:10px 14px;border-radius:6px;box-shadow:0 8px 24px rgba(5,3,27,.3);font-size:12.5px;max-width:340px}
@media (prefers-reduced-motion:reduce){.pulse::after,tr.charter-row>td,tr.prio-row>td,.stage.charter-attn{animation:none}}

/* live app */
.pdf-frame{display:block;width:100%;height:min(72vh,760px);border:0;background:#3b3f44}
#pdfDlg{padding:0}
.auth-card .pw-rules{grid-template-columns:repeat(2,minmax(0,1fr))}
.link:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed}
details>summary{list-style:none}
details>summary::-webkit-details-marker{display:none}

.btn.menu-btn{display:none}
.timeline .note.plain{background:var(--sunken);border-color:var(--line)}
.top-acts{flex-wrap:wrap;min-width:0}
#uName{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:900px){.btn.menu-btn{display:inline-flex}}
@media (max-width:560px){#uName{display:none}.all-top{min-width:0}}

/* markets and hubs */
.mk-tbl td{vertical-align:middle}
.mk-name{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:12px;cursor:default;font-size:14px}
button.mk-name{cursor:pointer}
button.mk-name:hover b{color:var(--purple)}
button.mk-name:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}
.mk-icon{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#8db4ff;flex:none}
td.hub-cell{white-space:normal;min-width:280px}
.hub-chips{display:flex;flex-wrap:wrap;gap:6px}
.hub-chip{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;border:1px solid var(--line);background:var(--sunken);font:500 12px var(--body);color:var(--ink);white-space:nowrap}
button.hub-chip{cursor:pointer}
button.hub-chip:hover{border-color:var(--purple);color:var(--purple)}
button.hub-chip:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hub-chip.off{opacity:.55;text-decoration:line-through}
.hub-chip.add{border-color:transparent;color:var(--purple);background:transparent;font-weight:600}
.hub-chip.due{background:var(--purple-soft);border-color:color-mix(in srgb,var(--purple) 35%,transparent);color:var(--purple);font-weight:600}
.hub-chip.due.soon{background:color-mix(in srgb,var(--gold) 15%,#fff);border-color:color-mix(in srgb,var(--gold) 60%,var(--line));color:#7a5600}
.hub-chip.due.late{background:color-mix(in srgb,var(--crit) 10%,#fff);border-color:color-mix(in srgb,var(--crit) 45%,var(--line));color:var(--crit)}

/* validation and Open in Revu */
.val-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.val-tools .btn svg{flex:none}
.tool-note{font-size:11.5px;color:var(--muted)}
.lock-chip.val{--c:var(--st-to_validate);color:#3d4652;background:color-mix(in srgb,var(--st-to_validate) 12%,transparent);border-color:color-mix(in srgb,var(--st-to_validate) 40%,transparent)}
.revu-steps{margin:0;padding-left:20px;display:grid;gap:8px;font-size:13px}
.cmdfile{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--sunken)}
.cmdfile .ic{width:34px;height:34px;flex:none;border-radius:6px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);font:700 10px var(--mono)}
.revu-hint{font-size:11.5px;color:var(--ink-2,inherit);flex-basis:100%}
.revu-saved{font-size:11.5px;color:var(--ok,#2d7a46);flex-basis:100%}

/* Markets in the left menu: each market opens to show its hubs */
.mk-manage{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;margin:2px 4px 6px;padding:8px 12px;border-radius:6px;border:1px dashed color-mix(in srgb,var(--purple) 45%,var(--line));color:var(--purple);font-weight:700;font-size:12.5px}
.mk-manage:hover{background:var(--purple-soft)}
.mk-manage[aria-current="page"]{background:var(--purple-soft);border-style:solid}
.mk-manage:focus-visible,.mk-row:focus-visible,.hub-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mk-row{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;font-weight:600;color:var(--ink);min-width:0}
.mk-row:hover{background:var(--sunken)}
.mk-row .car{width:14px;height:14px;flex:none;color:var(--muted);transition:transform .15s}
.mk-row[aria-expanded="true"] .car{transform:rotate(90deg);color:var(--purple)}
.mk-row .ct,.hub-row .ct{margin-left:auto;font:500 10.5px var(--mono);color:var(--muted)}
.mk-row[aria-current="true"]{background:var(--purple-soft);color:var(--purple);box-shadow:inset 3px 0 0 var(--gold)}
.mk-row .t,.hub-row .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hubs-dd{display:flex;flex-direction:column;gap:1px;margin:0 0 4px 19px;padding-left:8px;border-left:1px solid var(--line)}
.hubs-dd[hidden]{display:none}
.hub-row{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;font-size:12.5px;color:var(--ink);min-width:0}
.hub-row:hover{background:var(--sunken)}
.hub-row[aria-current="true"]{background:var(--purple-soft);color:var(--purple);font-weight:700}
.hub-row.none{color:var(--muted);font-style:italic;cursor:default}
.crumb{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:18px}
.crumb b{color:var(--ink)}
.crumb button{all:unset;cursor:pointer;color:var(--purple);font-weight:600}
.crumb button:hover{text-decoration:underline}
.crumb button:focus-visible{outline:2px solid var(--focus)}

/* Upload walkout map form */
.up-k{font:600 10.5px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.up-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 18px}
.up-form .full{grid-column:1/-1}
.up-form .req{color:var(--crit)}
.up-form .add{all:unset;cursor:pointer;color:var(--purple);font-weight:700;font-size:13px;margin-top:2px;align-self:flex-start}
.up-form .add:hover{text-decoration:underline}
.up-form .add:focus-visible{outline:2px solid var(--focus)}
.file-box{display:flex;align-items:center;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--surface);min-width:0}
.file-box.over{border-color:var(--purple);background:var(--purple-soft)}
.file-box .btn{flex:none}
.file-box .fn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.file-box .fn.has{color:var(--ink);font-family:var(--mono);font-size:12px}
.radios{display:flex;gap:22px;flex-wrap:wrap;padding-top:2px}
.radios label{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.radios input{accent-color:var(--purple);width:16px;height:16px}
.hint{font-size:11px;color:var(--muted)}
.inline-add{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}
.inline-add input{flex:1 1 140px;min-width:0;padding:7px 10px;border:1px solid var(--line);border-radius:6px}
.ret-note{margin-top:6px;padding:8px 11px;border-radius:6px;background:color-mix(in srgb,var(--st-qc_issues) 7%,#fff);border:1px solid color-mix(in srgb,var(--st-qc_issues) 25%,var(--line));font-size:12px}
.chip.failed{color:var(--st-qc_issues);border-color:color-mix(in srgb,var(--st-qc_issues) 55%,var(--line));background:color-mix(in srgb,var(--st-qc_issues) 10%,transparent);font-family:var(--body);font-weight:700}
@media (max-width:640px){.up-form{grid-template-columns:minmax(0,1fr)}}

/* Map window: status history timeline and footer */
.sh{border-top:1px solid var(--line);padding-top:14px}
.sh h3{font:600 10.5px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.tl{list-style:none;margin:0;padding:0}
.tl li{position:relative;padding:0 0 16px 30px}
.tl li::before{content:"";position:absolute;left:7px;top:18px;bottom:-2px;width:2px;background:var(--line)}
.tl li:last-child{padding-bottom:0}
.tl li:last-child::before{display:none}
.tl .ring{position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;border:3.5px solid var(--c);background:var(--surface);box-sizing:border-box}
.tl .what{font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.tl .what b{font-weight:700}
.tl .when{font-size:11.5px;color:var(--muted);margin-top:2px}
.tl .note{margin-top:8px;padding:9px 12px;border-radius:6px;background:var(--sunken);border:1px solid var(--line);font-size:12.5px;white-space:pre-wrap}
.tl .note.red{background:color-mix(in srgb,var(--st-qc_issues) 7%,#fff);border-color:color-mix(in srgb,var(--st-qc_issues) 30%,var(--line))}
.dlg-f.split{justify-content:space-between}
.dlg-f-r{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.btn.danger-o{color:var(--crit);border-color:color-mix(in srgb,var(--crit) 55%,var(--line));background:var(--surface)}
.btn.danger-o:hover{background:color-mix(in srgb,var(--crit) 8%,#fff)}
.btn.primary.red{background:var(--crit);border-color:var(--crit);color:#fff}

/* Fielders: status light, contractor, add-fielder window */
.ping{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:11.5px;padding:3px 10px 3px 8px;border-radius:999px;white-space:nowrap}
.ping i{width:9px;height:9px;border-radius:50%;background:currentColor;position:relative}
.ping i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid currentColor;opacity:0;animation:pingRing 1.8s ease-out infinite}
@keyframes pingRing{0%{transform:scale(.6);opacity:.7}100%{transform:scale(1.5);opacity:0}}
@media (prefers-reduced-motion:reduce){.ping i::after{animation:none}}
.ping.on{color:var(--st-passed);background:color-mix(in srgb,var(--st-passed) 11%,#fff)}
.ping.off{color:var(--crit);background:color-mix(in srgb,var(--crit) 9%,#fff)}
td.co{font-weight:600}
.req{color:var(--crit)}
.field .hint{font-size:11px;color:var(--muted)}
.add{all:unset;cursor:pointer;color:var(--purple);font-weight:700;font-size:12.5px;margin-top:2px;align-self:flex-start}
.add:hover{text-decoration:underline}
.add:focus-visible{outline:2px solid var(--focus)}
.st-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--sunken)}
.st-box .hint{font-size:11px;color:var(--muted);flex:1 1 220px}
.st-pick{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.st-pick button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 10px;border-radius:999px;font-weight:700;font-size:11.5px;color:var(--muted)}
.st-pick button i{width:9px;height:9px;border-radius:50%;background:currentColor;opacity:.45}
.st-pick button[aria-pressed="true"].on{color:var(--st-passed);background:color-mix(in srgb,var(--st-passed) 13%,#fff)}
.st-pick button[aria-pressed="true"].off{color:var(--crit);background:color-mix(in srgb,var(--crit) 11%,#fff)}
.st-pick button[aria-pressed="true"] i{opacity:1}
.st-pick button:focus-visible{outline:2px solid var(--focus)}

/* Map window (same layout in every folder) */
#detail{width:min(860px,calc(100vw - 32px))}
.kicker{font:600 9.5px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.wtitle{font:700 17px/1.25 var(--display)!important;margin-top:3px;overflow-wrap:anywhere}
.row1{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row1 .say{font-size:12px}
.mk-chip{margin-left:auto;font-weight:700;font-size:10.5px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:var(--sunken)}
.pri{all:unset;cursor:pointer;font-weight:700;font-size:11px;padding:5px 11px;border-radius:7px;background:#f59f1b;color:#2a1700}
.pri.on{background:var(--surface);color:#b86b00;box-shadow:inset 0 0 0 1px #f0b45c}
.pri:focus-visible{outline:2px solid var(--focus)}
.card{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.card>h3{margin:0;padding:9px 14px;font-size:11.5px;font-weight:700;border-bottom:1px solid var(--line)}
.mgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line)}
.mgrid>div{background:var(--surface);padding:9px 14px;min-width:0}
.mgrid .s2{grid-column:span 2}
.mgrid.five{grid-template-columns:1.2fr 1fr 1.3fr 1fr .8fr}
.mgrid .k{font:600 9.5px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mgrid .v{font-weight:700;font-size:12.5px;margin-top:3px;overflow-wrap:anywhere}
.mgrid .v.mono{font-family:var(--mono);font-weight:500}
.mgrid .ping{margin-top:4px;font-size:10.5px;padding:1px 8px 1px 6px}
.due{display:inline-block;margin-top:5px;font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--line)}
.due.late{color:var(--crit);border-color:color-mix(in srgb,var(--crit) 45%,var(--line))}
.empty-f{padding:12px 14px;font-size:12px;color:var(--muted)}
.errbox{border:1px solid color-mix(in srgb,var(--st-qc_issues) 40%,var(--line));background:color-mix(in srgb,var(--st-qc_issues) 6%,#fff);border-radius:10px;padding:11px 14px}
.errbox .k{font:600 9.5px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--st-qc_issues)}
.errbox p{margin:5px 0 0;font-size:12px;white-space:pre-wrap}
.queue{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px dashed var(--line);border-radius:10px;background:var(--sunken)}
.queue b{font-size:12.5px}.queue .dim{font-size:11px}.queue .btn{margin-left:auto}
.queue.mine{--c:var(--st-qc2);border:1px solid color-mix(in srgb,var(--st-qc2) 50%,var(--line));background:color-mix(in srgb,var(--st-qc2) 6%,#fff)}
.queue.other{--c:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 55%,var(--line));background:color-mix(in srgb,var(--warn) 7%,#fff)}
.mv{border:1px solid var(--line);border-radius:10px;padding:13px 15px;display:flex;flex-direction:column;gap:10px}
.mv .btn[data-mode][aria-pressed="true"]{box-shadow:inset 0 0 0 1px currentColor}
.mv .mode{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:10px}
.mv .mode[hidden]{display:none}
.next{font-size:10.5px;color:var(--muted)}.next b{color:var(--ink)}
@media (max-width:640px){.mgrid,.mgrid.five{grid-template-columns:1fr 1fr}.mgrid .s2{grid-column:span 2}.mk-chip{margin-left:0}}

/* Sign-in: who are you signing in as */
.who-pick{display:flex;flex-direction:column;gap:10px}
.who-btn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-height:62px}
.who-btn:hover{border-color:var(--purple);background:var(--purple-soft)}
.who-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.who-btn .ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--c-soft);color:var(--c)}
.who-btn .ic svg{width:21px;height:21px}
.who-btn b{display:block;font-size:13px}
.who-btn small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.who-btn .go{margin-left:auto;color:var(--muted);font-size:16px}
.back-link{all:unset;cursor:pointer;color:var(--purple);font-weight:600;font-size:11.5px}
.back-link:focus-visible{outline:2px solid var(--focus)}
.as-tag{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:999px;background:var(--c-soft);color:var(--c)}

/* Fielder portal */
.fwrap{max-width:1280px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-right,0px)) 48px max(16px,env(safe-area-inset-left,0px))}
.hello{margin-top:18px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.hello h2{font-size:17px;margin:0}
.hello span{font-size:11px;color:var(--muted)}
.fcard{border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-top:12px}
.rq{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:12px 16px}
.rq .t{flex:1 1 240px}.rq .t b{font-size:12.5px}.rq .t small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.rq .field{min-width:180px}
.rq select{padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}
.away{border-top:1px solid var(--line);padding:9px 16px;font-size:11.5px;color:var(--muted);display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.away b{color:var(--ink)}
.blocked{color:var(--crit);font-weight:600}
.fstats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}
.fstat{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:11px 14px}
.fstat .k{font-size:10.5px;color:var(--muted)}.fstat .v{font:700 18.5px var(--display);margin-top:2px}.fstat small{display:block;font-size:10px;color:var(--muted)}
@media (max-width:900px){.fstats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mapname{font-weight:600;font-size:11.5px;white-space:normal;max-width:340px;overflow-wrap:anywhere}.mapname small{display:block;font-weight:400;color:var(--muted);font-size:10.5px}
tr.qci td{background:color-mix(in srgb,var(--st-qc_issues) 7%,#fff)}
tr.qci td:first-child{box-shadow:inset 3px 0 0 var(--st-qc_issues)}
.from{font-size:9.5px;font-weight:700;padding:1px 7px;border-radius:999px;border:1px solid color-mix(in srgb,var(--st-qc_issues) 45%,var(--line));color:var(--st-qc_issues);margin-left:4px;white-space:nowrap}
.acts2{display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.acts2 .row{display:flex;gap:5px}
.btn.sub{background:var(--purple);border-color:var(--purple);color:#fff}
.btn.ch{color:var(--crit);border-color:color-mix(in srgb,var(--crit) 45%,var(--line))}
@media (max-width:760px){
  .fmaps table thead{display:none}
  .fmaps table,.fmaps tbody,.fmaps tr,.fmaps td{display:block;width:100%}
  .fmaps tr{border-bottom:1px solid var(--line);padding:10px 12px}
  .fmaps td{border:0;padding:3px 0;white-space:normal;text-align:left!important}
  .fmaps td[data-l]::before{content:attr(data-l) ": ";color:var(--muted);font-size:10.5px}
  .acts2{align-items:flex-start;margin-top:6px}
}
.kick{font:600 9.5px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fixbox{border:1px solid color-mix(in srgb,var(--warn) 50%,var(--line));background:color-mix(in srgb,var(--warn) 8%,#fff);border-radius:8px;padding:10px 12px;font-size:12px;white-space:pre-wrap}
.chbox{border:1px solid color-mix(in srgb,var(--crit) 40%,var(--line));background:color-mix(in srgb,var(--crit) 5%,#fff);border-radius:8px;padding:10px 12px;font-size:11.5px}
.chbox b{color:var(--crit)}.chbox ul{margin:6px 0 0;padding-left:18px}
.filebox2{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:6px;min-width:0}
.filebox2 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hint{font-size:11px;color:var(--muted)}.hint.bad{color:var(--crit)}
.devs{display:flex;gap:8px;flex-wrap:wrap}.devs label{display:flex;gap:6px;align-items:center;font-size:11.5px;border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.devs input{width:auto!important;margin:0}
.ans{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-radius:12px;margin-top:12px;border:1px solid color-mix(in srgb,var(--st-charter) 45%,var(--line));background:color-mix(in srgb,var(--st-charter) 6%,#fff)}
.ans b{font-size:12.5px}.ans small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.ans .btn{margin-left:auto}
.who-l{padding:6px 10px 8px}
body.fp .avatar{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--purple);color:#fff;font:700 10.5px var(--display)}

/* Office: fielder sign-in, legend line */
.login-box{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--sunken)}
.reset-ask{color:var(--crit);font-weight:700;font-size:11.5px;margin-bottom:6px}
.temp-pw{font-size:12px}
.card .foot{padding:8px 14px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}
.okline{color:var(--st-passed);font-weight:600}
.warnline{color:var(--crit);font-weight:600}


/* ======================= D layout: side rail, top bar, desk ======================= */
.shell{display:flex;align-items:stretch;min-height:100vh}
.rail{flex:none;width:250px;background:var(--navy);color:#ecebf7;border-right:3px solid var(--gold);position:sticky;top:0;height:100vh;overflow:auto;padding:18px 12px calc(18px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:6px}
.rail-top{display:flex;align-items:center;gap:10px;padding:0 6px 16px;border-bottom:1px solid var(--rail-line);margin-bottom:4px}
.rail-top img{height:42px;width:auto}
.desk{flex:1;min-width:0;display:flex;flex-direction:column}
.desk .content{padding-block:0 48px;padding-left:28px;padding-right:max(28px,env(safe-area-inset-right,0px))}
header.top{background:var(--bar);color:var(--ink);border-bottom:1px solid var(--bar-line)}
.top-in{max-width:none;padding-left:28px;padding-right:max(28px,env(safe-area-inset-right,0px));padding-block:12px}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:0;border-right:0;padding-right:4px}
.brand h1{color:var(--ink);font-size:18px}
.brand small{color:var(--muted)}
.search-wrap select{background:var(--surface);color:var(--purple);border-color:var(--bar-line)}
.search input{background:var(--surface);color:var(--ink);border-color:var(--bar-line)}
.search input::placeholder{color:#6e6a8c}
.search svg{color:#6e6a8c}
.hdr-btn{color:var(--ink);border-color:var(--bar-line);background:var(--surface);min-height:40px}
.hdr-btn:hover{border-color:var(--muted)}
.hdr-btn.gold{background:var(--navy);border-color:var(--navy);color:var(--gold);font-weight:700}
.hdr-btn.user .avatar{border-radius:8px}
.scan-alert{bottom:0}

/* side menu on the dark rail */
.side{position:static;margin-top:0;max-height:none;overflow:visible;padding-bottom:0}
.side .grp{color:var(--rail-dim);font-size:10px;letter-spacing:.12em}
.nav,.mk-row,.hub-row{color:var(--rail-ink)}
.nav:hover,.mk-row:hover,.hub-row:hover{background:#15123a}
.nav[aria-current="page"]{background:var(--gold);color:var(--gold-ink);font-weight:700;box-shadow:none}
.nav[aria-current="page"] .ct{color:var(--gold-ink)}
.mk-row[aria-current="true"]{background:#1f1b4d;color:var(--gold);font-weight:700;box-shadow:inset 3px 0 0 var(--gold)}
.nav .ct,.mk-row .ct,.hub-row .ct{color:var(--rail-dim)}
.mk-row .car{color:var(--rail-dim)}
.mk-row[aria-expanded="true"] .car{color:var(--gold)}
.hub-row[aria-current="true"]{background:#1f1b4d;color:var(--gold)}
.hubs-dd{border-left-color:var(--rail-line)}
.mk-manage{color:var(--gold);border-color:#3a3570}
.mk-manage:hover,.mk-manage[aria-current="page"]{background:#15123a}
.menu-btn{margin-left:auto;background:#15123a;color:#ecebf7;border:1px solid #2a2656;border-radius:8px;padding:8px 12px;font-weight:600;cursor:pointer}
.nav:focus-visible,.mk-row:focus-visible,.hub-row:focus-visible,.mk-manage:focus-visible{outline-color:var(--gold)}

/* page heading and this week */
.page-h{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:22px}
.page-h h1{font:700 30px/1.1 var(--display)}
.page-h .acts{display:flex;gap:8px;flex-wrap:wrap}
.week{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:baseline;margin-top:4px;color:var(--muted)}
.week b{font:700 17px var(--display);color:var(--ink);font-variant-numeric:tabular-nums}
.week .wk-l{font:600 10.5px var(--display);letter-spacing:.1em;text-transform:uppercase}

/* folder tiles */
.pipe{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.stage{align-items:flex-start;text-align:left;padding:12px 14px;border-radius:12px;background:var(--surface);border-color:var(--line);gap:6px}
.stage::before{height:3px;border-radius:12px 12px 0 0}
.stage .nm{min-height:0;justify-content:flex-start;color:var(--ink);font-size:11px;letter-spacing:.08em;display:flex;align-items:center;gap:8px}
.stage .nm::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}
.stage .n{font-size:28px}
.stage .sub{color:var(--muted);font-size:11px}
.stage[aria-pressed="true"]{background:var(--card)}
.stage.all{--c:var(--gold);background:var(--navy);border-color:var(--navy)}
.stage.all .nm,.stage.all .n{color:#ecebf7}
.stage.all .sub{color:#9b97c4}
.stage.all[aria-pressed="true"]{background:var(--navy);box-shadow:0 0 0 2px var(--gold)}
@media (max-width:1100px){.pipe{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.pipe{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* cards, tables */
.panel{border-radius:14px;overflow:hidden;margin-top:18px}
.panel-h h2{font-size:15px}
th{background:var(--sunken)}
td{border-bottom-color:#dddae9}
tbody tr.click:hover td{background:var(--card)}
.fname .fn{font:500 12px var(--mono)}
.seg{gap:6px}
.segb{all:unset;box-sizing:border-box;cursor:pointer;padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:12px;font-weight:600;color:var(--muted)}
.segb[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--gold)}
.segb:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.btn{background:var(--surface);border-color:var(--bar-line)}
.btn.primary{background:var(--navy);border-color:var(--navy);color:var(--gold)}
.banner{background:#fff7e0}
.uav{background:#ddd5fb}

/* map window */
#detail{background:var(--surface)}
#detail .dlg-h{background:var(--navy);color:#ecebf7;border-top:0;border-bottom:3px solid var(--gold);border-radius:12px 12px 0 0}
#detail .dlg-h .kicker{color:var(--gold)}
#detail .dlg-h .wtitle{font:600 15.5px/1.35 var(--mono)!important;color:#ecebf7}
#detail .dlg-h .x{color:#ecebf7;border:1px solid #2a2656;background:#110e33;width:40px;height:40px}
#detail .dlg-h .x:hover{background:#1b1747}
.card{background:var(--card);border-color:var(--line);border-radius:12px}
.card>h3{background:var(--sunken);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-family:var(--display);font-size:12px}
.mgrid{background:#dddae9}
.mgrid>div{background:var(--card)}
.queue.mine,.lock-box.mine{background:var(--navy);border-color:var(--navy);color:#ecebf7;--c:var(--gold)}
.queue.mine .dim,.lock-box.mine .dim{color:#9b97c4}
.queue.mine .btn,.lock-box.mine .btn{background:transparent;color:#ecebf7;border-color:#3a3570}
.mv{background:var(--card)}
.errbox{background:#fdf1ef}
.sh .tl .ring{background:var(--surface)}

/* fielder portal */
.fp .fwrap{max-width:none;margin:0;width:100%;box-sizing:border-box;padding-left:28px;padding-right:max(28px,env(safe-area-inset-right,0px))}
.hello{margin-top:22px}
.hello h2{font:700 30px/1.1 var(--display)}
.hello span{font-size:13px}
.ans{background:#fff7e0;border-color:#ecc767}
.ans .btn{background:var(--navy);border-color:var(--navy);color:var(--gold)}
.fcard{background:var(--navy);color:#ecebf7;border-color:var(--navy);border-radius:14px}
.fcard .rq .t b{font:700 16px var(--display)}
.fcard .rq .t small,.fcard .away{color:#9b97c4}
.fcard .away{border-top-color:var(--rail-line)}
.fcard .away b{color:#ecebf7}
.fcard .label{color:#9b97c4}
.fcard select{background:#110e33;color:#ecebf7;border-color:#2a2656}
.fcard .btn.primary{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.fcard .btn{background:transparent;color:#ecebf7;border-color:#3a3570}
.fcard .btn:disabled{color:#7d79a8}
.fcard .blocked{color:#ffb4a8}
.fstat{background:var(--surface);border-radius:12px;box-shadow:inset 0 3px 0 var(--c,var(--purple))}
.fstat .k{font:600 11px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.fstat .v{font-size:26px}
.fstat small{font-size:11px}
.fp-side .nav{width:100%}

/* phones and narrow windows: the rail becomes a top band with a menu button */
@media (max-width:900px){
  .shell{flex-direction:column}
  .rail{position:static;width:auto;height:auto;border-right:0;border-bottom:3px solid var(--gold);padding:10px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px))}
  .rail-top{border-bottom:0;padding:0;margin:0}
  .side{margin-top:8px}
  .side.closed{display:none}
  .menu-btn{display:inline-flex}
  .desk .content,.top-in,.fp .fwrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
}
@media (min-width:901px){.menu-btn{display:none!important}.side.closed{display:flex}}
/* the side rail leaves less room: keep long map names readable and let the table scroll sideways */
.fmaps .mapname{min-width:220px;font:500 11.5px var(--mono)}
.fmaps .mapname small{font-family:var(--body)}
@media (max-width:900px){.fmaps .mapname{min-width:0}}

/* bulk upload: spreadsheet box, hub for the batch, compact rows */
#upDlg.bulk{width:min(1180px,calc(100vw - 32px))}
#upDlg.bulk .dlg-h{background:var(--navy);color:#ecebf7;border-top:0;border-bottom:3px solid var(--gold)}
#upDlg.bulk .dlg-h .up-k{color:var(--gold)}
#upDlg.bulk .dlg-h .dim{color:#9b97c4}
#upDlg.bulk .dlg-h .x{color:#ecebf7;border:1px solid #2a2656;background:#110e33;width:40px;height:40px}
#upDlg.bulk.over{outline:3px dashed var(--gold);outline-offset:-6px}
#upDlg .dlg-b{gap:12px}
.dz{border:1.5px dashed #b9b4d4;border-radius:12px;background:var(--card);padding:14px 16px;display:flex;gap:14px;align-items:center;min-width:0;flex-wrap:wrap}
.dz .ic{flex:none;width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font:700 10px var(--mono);color:#fff!important;background:var(--st-passed)}
.dz b{display:block;font-size:13.5px}
.dz span{font-size:12px;color:var(--muted)}
.dz.done{border-style:solid;border-color:#9fd3ae;background:#f2faf4}
.dz.done span{color:#1f6e35}
.dz .err{color:var(--crit)}
.allbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;background:var(--sunken);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.allbar .lbl{font:600 10.5px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-self:center;margin-right:4px}
.allbar label{display:flex;flex-direction:column;gap:3px;font:600 10px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.allbar select,.allbar input{border:1px solid var(--bar-line);border-radius:8px;padding:8px 10px;background:var(--card);font:500 13px var(--body);color:var(--ink);min-height:38px;text-transform:none;letter-spacing:0}
.bk-add{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;padding-left:10px;border-left:2px solid var(--gold)}
.bk-add input{width:200px}
.bk-add .err{align-self:center;font-size:12px}
table.bkt td{padding:4px 8px;font-size:12px;background:var(--card)}
table.bkt td.fn{font:500 10.5px/1.3 var(--mono);max-width:200px;white-space:normal;overflow-wrap:anywhere}
table.bkt td.nn{font:500 11px/1.35 var(--mono);color:#1f6e35;min-width:170px;max-width:200px;white-space:normal;overflow-wrap:anywhere;padding-right:14px}
table.bkt td.mk{font-weight:600}
table.bkt input{width:100px;font-family:var(--mono);min-height:30px;padding:4px 8px;font-size:12px;border-radius:6px;background:var(--card);border:1px solid var(--bar-line)}
table.bkt .src{display:block;font-size:10px;margin-top:1px;color:var(--muted);white-space:normal;max-width:160px}
table.bkt .src.sheet{color:#1f6e35}
table.bkt .src.warn{color:#8a5807}
table.bkt .x{width:28px;height:28px}
table.bkt td.st{white-space:normal;max-width:220px}
.chk{font-size:11.5px;font-weight:600}
.chk.ok{color:#1f6e35}.chk.warn{color:#8a5807}.chk.bad{color:#ad3127}
table.bkt tr.warn-row td{background:#fff8e8}
table.bkt tr.bad-row td{background:#fdf1ef}
table.bkt tr.ok-row td{background:#f2faf4}

/* photos from the field */
.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.ph{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card);display:flex;flex-direction:column;min-width:0}
.ph-img{all:unset;cursor:zoom-in;display:block;aspect-ratio:4/3;background:var(--sunken);max-width:100%}
.ph-img img{width:100%;height:100%;object-fit:cover;display:block}
.ph-img:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.ph .cap{padding:5px 8px;font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center;min-width:0}
.ph .cap span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ph .cap .x{width:26px;height:26px;flex:none}
.ph .cap .x.armed{width:auto;padding:0 6px;color:var(--crit);font-size:11px;font-weight:700}
.ph-dl{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:6px;color:var(--ink);border:1px solid var(--line);background:var(--surface)}
.ph-dl:hover{border-color:var(--muted)}
.addph{border:1.5px dashed #b9b4d4;border-radius:10px;display:grid;place-items:center;text-align:center;padding:10px;color:var(--muted);font-size:12px;min-height:120px;background:var(--card);cursor:pointer}
.addph b{display:block;font-size:22px;line-height:1}
.addph small{display:block;font-size:11px}
.ph-btn{border-color:var(--purple)!important;color:var(--purple)}
.pv-dlg{border:0;background:transparent;padding:0;width:100vw;height:100vh;max-width:none;max-height:none;margin:0}
.pv-dlg::backdrop{background:rgba(5,3,27,.92)}
.pv-dlg{display:flex;flex-direction:column;color:#ecebf7;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));box-sizing:border-box;gap:10px}
.pv-dlg:not([open]){display:none}
.pv-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pv-t{display:flex;flex-direction:column;min-width:0;flex:1}
.pv-t b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-t span{font-size:12px;color:#9b97c4}
.pv-acts{display:flex;gap:6px;flex-wrap:wrap}
.pv-b{all:unset;box-sizing:border-box;cursor:pointer;min-width:40px;height:40px;padding:0 12px;display:inline-grid;place-items:center;border-radius:8px;background:#110e33;border:1px solid #2a2656;color:#ecebf7;font-weight:600;font-size:13px}
.pv-b:hover{border-color:#5a55a0}
.pv-b.gold{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.pv-b:focus-visible,.pv-nav:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.pv-stage{flex:1;min-height:0;display:flex;align-items:center;gap:10px}
.pv-frame{flex:1;min-width:0;align-self:stretch;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none;border-radius:8px}
/* The whole photo fits the screen when it opens; zoom in from there. */
.pv-frame img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 120px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));object-fit:contain;transform-origin:center;transition:transform .08s;user-select:none}
.pv-nav{all:unset;cursor:pointer;flex:none;width:44px;height:64px;display:grid;place-items:center;border-radius:10px;background:#110e33;border:1px solid #2a2656;color:#ecebf7;font-size:28px}
@media (max-width:640px){.pv-nav{width:36px}}

/* time on a map since it was taken */
.qwho{display:flex;flex-direction:column;gap:2px;min-width:0}
.qtimer{font-size:11.5px;color:var(--muted)}
.qtimer b{font:600 12px var(--mono);font-variant-numeric:tabular-nums;color:var(--warn)}
.queue.mine .qtimer{color:#9b97c4}
.queue.mine .qtimer b{color:var(--gold)}

/* QC account window */
.qc-access{border:1px solid var(--line);background:var(--sunken);border-radius:10px;padding:10px 12px;font-size:12.5px}
.qc-access b.t{display:block;font:600 10.5px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.qc-access ul{margin:0;padding-left:18px;display:grid;gap:3px}
.qc-access li.no{color:var(--muted)}
.qc-active{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--card);cursor:pointer}
.qc-active input{width:20px;height:20px;accent-color:#2b9348;margin-top:2px;flex:none}
.qc-active .dim{display:block;font-size:12px}

/* Production reports */
.rp-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:12px 16px;border-bottom:1px solid var(--line)}
.rp-filters label{display:flex;flex-direction:column;gap:3px;font:600 10px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rp-filters input,.rp-filters select{border:1px solid var(--bar-line);border-radius:8px;padding:8px 10px;background:var(--card);font:500 13px var(--body);color:var(--ink);min-height:38px;text-transform:none;letter-spacing:0}
.rp-filters .btn.sm{min-height:38px}
.rp-miss{margin:0 16px 12px;border:1px solid #ecc767;background:#fff7e0;border-radius:10px;padding:10px 14px;font-size:13px}
.rp-miss.ok{border-color:#9fd3ae;background:#f2faf4;color:#1f6e35;font-weight:600}

/* Fielder: daily production report */
.rpc{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:14px 16px;margin-top:12px;display:grid;gap:10px}
.rpc.due{border-color:#e7a19a;background:#fdf3f1}
.rpc-h{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.rpc-h .kick{display:block;font:600 10.5px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rpc-h b{font:700 18px var(--display)}
.rpc-due{margin:0;color:#ad3127;font-weight:600;font-size:13px}
.rpc-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rpc-list li{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;font-size:13px;border-top:1px solid var(--line);padding-top:6px}
.rpc-list small{color:var(--muted);margin-left:auto}
.rpn{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px;display:grid;gap:10px}
.rpn-h{display:flex;gap:10px;align-items:flex-end}
.rpn-h label{flex:1}
.rpn-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.rpn label.label{display:flex;flex-direction:column;gap:3px}
.rpn input,.rpn select,.rpn textarea{width:100%;box-sizing:border-box;border:1px solid var(--bar-line);border-radius:8px;padding:10px;background:#fff;font:inherit;color:var(--ink);min-height:42px;text-transform:none;letter-spacing:0;font-weight:400}

/* Upload: failed return */
.fr-pick{margin-top:8px;border:1px solid #9fd3ae;background:#f2faf4;border-radius:10px;padding:9px 12px;font-size:12.5px}
.fr-lock{background:var(--sunken)!important;color:var(--muted)}

/* Contractor portal on the office side */
.chip.co{color:var(--navy);border-color:color-mix(in srgb,var(--gold) 70%,var(--line));background:color-mix(in srgb,var(--gold) 22%,#fff);font-family:var(--body);font-weight:700}
.held{display:flex;gap:6px 10px;align-items:center;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--gold) 60%,var(--line));background:color-mix(in srgb,var(--gold) 12%,#fff);border-radius:10px;padding:9px 12px;font-size:13px}
.cp-box{border:1px solid var(--line);background:var(--sunken);border-radius:10px;padding:12px}

/* Contractor portal */
.cwrap{display:grid;gap:14px}
.cwrap .panel{margin:0}
.ctiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
@media (max-width:900px){.ctiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ctile{all:unset;box-sizing:border-box;cursor:pointer;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--c);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.ctile .k{font:600 10.5px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ctile .v{font:700 28px var(--display);color:var(--ink)}
.ctile.on{box-shadow:0 0 0 2px var(--c)}
.ctile.hot{box-shadow:0 0 0 2px var(--gold);background:color-mix(in srgb,var(--gold) 10%,var(--card))}
.ctile:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
.ctabs,.cfilters{display:flex;gap:6px;flex-wrap:wrap}
.cfilters{padding:12px 16px;border-bottom:1px solid var(--line)}
.ctabs button,.cfilters button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;font:600 12.5px var(--body);cursor:pointer;color:var(--ink);min-height:36px}
.ctabs button[aria-selected=true],.cfilters button[aria-pressed=true]{background:var(--navy);color:var(--gold);border-color:var(--navy)}
.cfilters button[aria-pressed=true] .dim{color:#c9c5ea}
.req-box{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:12px 16px}
.req-box label{display:flex;flex-direction:column;gap:3px;font:600 10px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.req-box input,.req-box select,.cwrap td select,.tpw,.cbox select{border:1px solid var(--bar-line);border-radius:8px;padding:8px 10px;background:var(--card);font:500 13px var(--body);color:var(--ink);min-height:38px;text-transform:none;letter-spacing:0}
.tpw{width:150px}
.creq{margin:10px 16px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);background:var(--sunken);border-radius:10px;padding:9px 12px;font-size:13px}
.creq span{flex:1 1 240px}
.creq.bad{border-color:#e7a19a;background:#fdf3f1;color:#ad3127}
.cbox{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px;display:grid;gap:10px}
.cbox .h{font:600 11px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cbox textarea{width:100%;box-sizing:border-box;border:1px solid var(--bar-line);border-radius:8px;padding:10px;font:inherit;min-height:64px;background:var(--card)}
.row2{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.qcf{border:1px solid #ecc767;background:#fff7e0;border-radius:10px;padding:10px 12px;font-size:13px}
.chq{border:1px solid color-mix(in srgb,var(--st-charter) 45%,var(--line));background:color-mix(in srgb,var(--st-charter) 5%,#fff);border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;font-size:13px}
.chq .full{grid-column:1/-1}.chq .k{font:600 10px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
@media (max-width:560px){.chq{grid-template-columns:minmax(0,1fr)}}
.chist summary{cursor:pointer;font:600 12px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.chist ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px;font-size:12.5px}
.chist li{border-left:3px solid var(--line);padding-left:10px}
.cp .desk{min-width:0}
.cwrap,.cwrap>*,#tabBody{min-width:0}
.cwrap .tbl-wrap{max-width:100%}
.role-chip.owner{color:var(--navy);border-color:color-mix(in srgb,var(--gold) 70%,var(--line));background:color-mix(in srgb,var(--gold) 20%,#fff)}

.nf-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end;padding:12px 16px}
@media (max-width:760px){.nf-form{grid-template-columns:minmax(0,1fr)}}
.nf-form label{display:flex;flex-direction:column;gap:3px;font:600 10px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.nf-form input{border:1px solid var(--bar-line);border-radius:8px;padding:9px 10px;background:var(--card);font:500 13px var(--body);color:var(--ink);min-height:40px;text-transform:none;letter-spacing:0}

/* Accounting */
.acc-pp{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.acc-pp select{border:1px solid var(--bar-line);border-radius:8px;padding:8px 10px;background:var(--card);font:600 13px var(--body);color:var(--ink);min-height:40px}
.acc-now{font:600 11px var(--display);letter-spacing:.08em;text-transform:uppercase;color:#1f6e35;border:1px solid #9fd3ae;background:#f2faf4;border-radius:999px;padding:3px 10px}
.acc-rate{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--bar-line);border-radius:8px;background:var(--card);padding:0 8px;min-height:34px}
.acc-rate input{border:0;background:transparent;width:64px;font:500 13px var(--mono);text-align:right;outline:none;color:var(--ink)}
.acc-rate:focus-within{border-color:var(--purple);box-shadow:0 0 0 2px color-mix(in srgb,var(--purple) 20%,transparent)}
.acc-maps{all:unset;cursor:pointer;color:var(--purple);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.acc-wc{color:#ad3127}
tr.acc-tot td{background:var(--sunken);border-top:2px solid var(--line)}

.pay-box{border:1px solid color-mix(in srgb,var(--gold) 60%,var(--line));background:color-mix(in srgb,var(--gold) 10%,#fff);border-radius:10px;padding:12px;display:grid;gap:6px}
.pay-rate{display:flex;align-items:center;gap:6px}.pay-rate input{max-width:120px;font-family:var(--mono)}
.acc-norate{display:block;color:#ad3127;font-weight:700;font-size:10.5px;margin-top:3px}
.pp-next{border:1px solid var(--line);background:var(--sunken);border-radius:10px;padding:10px 12px;font-size:12.5px;display:grid;gap:4px}
.pp-warn{border:1px solid #ecc767;background:#fff7e0;border-radius:10px;padding:10px 12px;font-size:12.5px}

/* Outstanding maps */
.out-drop{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:12px 16px;border:1.5px dashed #b9b4d4;border-radius:12px;padding:12px 14px;background:var(--card)}
.out-drop.over{border-color:var(--purple);background:var(--purple-soft)}
.out-drop .ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font:700 10px var(--mono);color:#fff;background:#2b9348;flex:none}
.out-flt{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 12px}
.out-flt button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font:600 12px var(--body);cursor:pointer;color:var(--ink);min-height:34px}
.out-flt button[aria-pressed=true]{background:var(--navy);color:var(--gold);border-color:var(--navy)}
tr.out-bad td{background:#fdf1ef}
tr.out-done td{background:color-mix(in srgb,var(--st-passed) 6%,transparent)}

/* Rejected map window: Map details / Rejection form tabs */
.dpane{display:flex;flex-direction:column;gap:18px}
.dpane[hidden]{display:none}
.rej-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:-6px}
.rej-tabs button{all:unset;cursor:pointer;padding:8px 14px;font:600 13px var(--body);border-bottom:3px solid transparent;margin-bottom:-1px}
.rej-tabs button[aria-selected="true"]{border-color:var(--st-rejected);color:var(--st-rejected)}
.rej-tabs button:focus-visible{outline:2px solid var(--st-rejected);outline-offset:2px;border-radius:4px}

/* Pending Assignment: Corelink fielder or contractor, side by side */
.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width:640px){.choices{grid-template-columns:minmax(0,1fr)}}
.choice{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:8px;align-content:start;cursor:pointer;background:#fff;transition:opacity .15s,border-color .15s,box-shadow .15s}
.choice .t{display:flex;gap:8px;align-items:center;font-weight:700;font-size:14px}
.choice .t input{accent-color:var(--st-assignment);width:16px;height:16px;margin:0}
.choice .d{font-size:12.5px;color:var(--muted)}
.choice select{width:100%;appearance:none;-webkit-appearance:none;min-height:44px;padding:10px 40px 10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card,#fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236b6790' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;font:500 14px var(--body);color:var(--ink);box-shadow:0 1px 2px rgba(5,3,27,.06);cursor:pointer;transition:border-color .15s,box-shadow .15s;text-overflow:ellipsis}
.choice select:hover{border-color:color-mix(in srgb,var(--st-assignment) 45%,var(--line))}
.choice select:focus{outline:none;border-color:var(--st-assignment);box-shadow:0 0 0 3px color-mix(in srgb,var(--st-assignment) 20%,transparent)}
.choice.on{border-color:var(--st-assignment);box-shadow:0 0 0 3px color-mix(in srgb,var(--st-assignment) 15%,transparent)}
.choice.off{opacity:.45}
.choice.off select{pointer-events:none}
.choice:has(input:focus-visible){outline:2px solid var(--st-assignment);outline-offset:2px}

/* Settings: Automatic map assignment switch */
.tog{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#fff}
.tog h3{margin:0 0 4px;font-weight:700;font-size:15px}
.tog p{margin:0;font-size:13px;color:var(--muted);max-width:620px}
.tog ul{margin:8px 0 0;padding-left:18px;font-size:13px;color:var(--muted)}
.tog .state{font:700 12px var(--display);letter-spacing:.06em;text-transform:uppercase;margin-top:8px;display:block}
.tog .state.on{color:#1f7a45}.tog .state.off{color:#ad3127}
.aa-sw{all:unset;cursor:pointer;flex:none;width:52px;height:30px;border-radius:999px;background:#c9c6db;position:relative;transition:background .2s}
.aa-sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .2s}
.aa-sw[aria-checked=true]{background:#1f9d55}
.aa-sw[aria-checked=true]::after{left:25px}
.aa-sw:disabled{cursor:not-allowed;opacity:.6}
.aa-sw:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
.offbar{border:1px solid #f0c3bd;background:#fff3f1;color:#7a2318;border-radius:10px;padding:10px 14px;font-size:13px}

/* Rejected: Replace with new map */
.nm-drop{border:2px dashed color-mix(in srgb,var(--st-rejected) 45%,var(--line));border-radius:12px;padding:18px;text-align:center;background:#fff;display:grid;gap:6px;justify-items:center;cursor:pointer}
.nm-drop.over,.nm-drop:hover{background:color-mix(in srgb,var(--st-rejected) 6%,#fff)}
.nm-drop:focus-visible{outline:2px solid var(--st-rejected);outline-offset:2px}
.nm-drop b{font-size:14px}
.nm-file{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}
.nm-file b{font-size:13.5px;word-break:break-all}
.nm-file .btn{margin-left:auto}
.nm-steps{margin:4px 0 0;padding-left:18px;font-size:12.5px;color:var(--muted);display:grid;gap:3px}
.nm-drop[hidden],.nm-file[hidden]{display:none}

/* Long lists: 100 at a time */
.list-more{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:14px 16px;border-top:1px solid var(--line);background:var(--surface)}
.list-more .dim{font-size:13px}
.list-more b{color:var(--ink)}
.older-line{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:12px 16px 14px;border:1px dashed var(--line);border-radius:10px;padding:10px 14px;font-size:13px;background:#fff}
.chip.older{background:var(--surface);color:var(--muted);border:1px solid var(--line)}

/* Pending Assignment: give out several maps at once */
.sel-c{width:38px;text-align:center}
.sel-cb{width:17px;height:17px;accent-color:var(--st-assignment);cursor:pointer}
tr:has(.sel-cb:checked) td{background:color-mix(in srgb,var(--st-assignment) 7%,#fff)}
.sel-hint{margin:10px 16px 0;font-size:12.5px}
.give-bar{position:sticky;top:8px;z-index:3;display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--navy,#05031b);color:#fff;border-radius:12px;padding:10px 14px;margin:12px 16px 4px;box-shadow:0 10px 30px rgba(5,3,27,.25)}
.give-bar b{font-size:14px}
.give-bar select{min-height:38px;border-radius:8px;border:1px solid #2b2752;background:#fff;color:var(--ink);padding:6px 10px;font:500 13.5px var(--body);max-width:100%}
.give-bar .sp{flex:1}
.give-bar .btn.ghost{color:#cfcce8}
.give-bar .btn.primary{background:var(--gold,#f5b301);border-color:var(--gold,#f5b301);color:var(--navy,#05031b)}
.give-bar.fuse .dim-l{font-size:13px;color:#cfcce8}
.give-bar.fuse ~ .tbl-wrap .sel-cb,.sel-cb.fz{accent-color:var(--st-passed)}
