html{-webkit-text-size-adjust:100%}body{margin:0}img{max-width:100%}[hidden]{display:none!important}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
/* Layout: sticky navy title bar with tabs (same as SSE Bid Board), then KPI tiles, two charts, attention lists; calls view is a filter bar over a scrolling table. */
:root{
  --bg:#f3f5f8; --surface:#ffffff; --surface-2:#eaeef4; --line:#d3dae4; --fg:#14213a; --muted:#5b6880;
  --navy:#16295a; --navy-fg:#ffffff; --accent:#c8202f; --accent-fg:#ffffff; --link:#1d4fa8; --bar:#1d4fa8; --bar-2:#9fb6e0;
  --ok:#1e7a45; --ok-bg:#e2f3e8; --warn:#9a5b00; --warn-bg:#fdf0d9; --bad:#b21d2a; --bad-bg:#fbe4e6; --info:#1d4fa8; --info-bg:#e3ecfb; --neutral-bg:#e8ebf0;
  --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif; --body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:6px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0d1424; --surface:#141d31; --surface-2:#1b2640; --line:#2a3757; --fg:#e4e9f3; --muted:#97a3bb;
  --navy:#0a1330; --navy-fg:#ffffff; --accent:#ec4552; --accent-fg:#ffffff; --link:#86aef5; --bar:#6f9bef; --bar-2:#34507f;
  --ok:#6fd497; --ok-bg:#163525; --warn:#f2b955; --warn-bg:#3a2a0e; --bad:#ff8590; --bad-bg:#3d1519; --info:#8db4f7; --info-bg:#172b4f; --neutral-bg:#242f48; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0d1424; --surface:#141d31; --surface-2:#1b2640; --line:#2a3757; --fg:#e4e9f3; --muted:#97a3bb;
  --navy:#0a1330; --navy-fg:#ffffff; --accent:#ec4552; --accent-fg:#ffffff; --link:#86aef5; --bar:#6f9bef; --bar-2:#34507f;
  --ok:#6fd497; --ok-bg:#163525; --warn:#f2b955; --warn-bg:#3a2a0e; --bad:#ff8590; --bad-bg:#3d1519; --info:#8db4f7; --info-bg:#172b4f; --neutral-bg:#242f48; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:14px;line-height:1.45}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--navy)}
.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));max-width:1400px;margin:0 auto}
header.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--navy);color:var(--navy-fg);border-bottom:3px solid var(--accent)}
header.bar .wrap{display:flex;align-items:center;gap:16px;padding-block:10px;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:10px;margin-right:auto;flex-wrap:wrap}
.brand b{font-family:var(--display);font-size:26px;letter-spacing:.02em;font-weight:700}
.brand b i{font-style:normal;color:#ff5b67}
.brand span{font-size:12px;opacity:.75;letter-spacing:.06em;text-transform:uppercase}
.who{font-size:12px;opacity:.8;display:flex;gap:8px;align-items:center}
.who button{background:transparent;color:var(--navy-fg);border-color:rgba(255,255,255,.35);padding:4px 10px;font-size:12px}
nav.tabs{display:flex;gap:4px;flex-wrap:wrap;max-width:100%}
@media (max-width:560px){nav.tabs{width:100%}nav.tabs button{padding:6px 8px;font-size:12px;flex:1 1 auto}}
nav.tabs button{background:transparent;border:0;color:var(--navy-fg);opacity:.75;font:600 13px var(--body);letter-spacing:.04em;text-transform:uppercase;padding:8px 12px;border-radius:var(--r);cursor:pointer}
nav.tabs button[aria-selected="true"]{opacity:1;background:rgba(255,255,255,.12)}
nav.tabs button:hover{opacity:1}
main.wrap{padding-block:20px 48px}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:.01em;margin:0;text-wrap:balance}
h2{font-size:22px} h3{font-size:17px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
button,.btn{font:500 13px var(--body);border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--fg);padding:7px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none;white-space:nowrap}
button:hover,.btn:hover{border-color:var(--muted)}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}
button.primary:hover{filter:brightness(1.08)}
button.ghost{background:transparent;border-color:transparent;color:var(--link);padding-inline:6px}
button.danger{color:var(--bad)}
button.danger.armed{background:var(--bad);color:#fff;border-color:var(--bad)}
button:disabled{opacity:.5;cursor:not-allowed}
:focus-visible{outline:2px solid var(--link);outline-offset:2px}
input,select,textarea{font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:7px 9px;width:100%;min-width:0}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--link);outline-offset:0;border-color:transparent}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--neutral-bg);color:var(--fg);white-space:nowrap;letter-spacing:.02em}
.chip.ok{background:var(--ok-bg);color:var(--ok)} .chip.warn{background:var(--warn-bg);color:var(--warn)} .chip.bad{background:var(--bad-bg);color:var(--bad)} .chip.info{background:var(--info-bg);color:var(--info)}
.notice{padding:12px 16px;border-radius:var(--r);background:var(--info-bg);color:var(--fg);border:1px solid var(--line);margin-bottom:16px}
.empty{padding:28px 16px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--fg);font-size:15px;margin-bottom:4px}
/* Dashboard */
.dash{display:flex;flex-direction:column;gap:20px}
.dash-head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.dash-head .title{margin-right:auto}
.dash-head h2{font-size:28px;line-height:1.1}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.tile{background:var(--surface);padding:14px 16px;display:flex;flex-direction:column;gap:4px;text-align:left;border:0;border-radius:0;cursor:pointer;white-space:normal;align-items:stretch;font:inherit;color:inherit;border-top:4px solid transparent}
.tile:hover{background:var(--surface-2)}
.tile .n{font-family:var(--display);font-size:40px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.tile .sub{font-size:12px;color:var(--muted)}
.tile.bad{border-top-color:var(--bad)} .tile.bad .n{color:var(--bad)}
.tile.warn{border-top-color:var(--warn)} .tile.info{border-top-color:var(--info)} .tile.ok{border-top-color:var(--ok)} .tile.neutral{border-top-color:var(--muted)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media (max-width:900px){.grid-2{grid-template-columns:minmax(0,1fr)}}
.card{padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.card-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.card-head h3{margin-right:auto}
.chart{position:relative;width:100%}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart text{fill:var(--muted);font:11px var(--body)}
.chart .val{fill:var(--fg);font:600 11px var(--mono)}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .mark{fill:var(--bar)}
.chart .mark.dim{fill:var(--bar-2)}
.chart .hit{fill:transparent;cursor:pointer}
.chart .hit:hover + .mark,.chart g:hover .mark{fill:var(--accent)}
.tip{position:absolute;pointer-events:none;background:var(--navy);color:var(--navy-fg);padding:6px 9px;border-radius:var(--r);font-size:12px;white-space:nowrap;transform:translate(-50%,-110%);z-index:3;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.alist{display:flex;flex-direction:column}
.alist button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 12px;align-items:center;text-align:left;white-space:normal;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:10px 4px;width:100%}
.alist button:first-child{border-top:0}
.alist button:hover{background:var(--surface-2)}
.alist .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.alist .d{grid-column:2;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.alist .age{grid-row:1/3;grid-column:3}
.alist .no{grid-row:1/3;font-family:var(--mono);font-size:12px;color:var(--muted)}
/* Calls */
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.toolbar input[type=search]{max-width:300px;flex:1 1 200px}
.toolbar select{width:auto;max-width:220px}
.toolbar input[type=date]{width:auto}
.seg{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.seg button{border-radius:999px;padding:5px 12px;font-size:12.5px}
.seg button[aria-pressed="true"]{background:var(--navy);color:var(--navy-fg);border-color:var(--navy)}
.seg button .c{font-family:var(--mono);opacity:.7;font-size:11.5px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:13px}
th{text-align:left;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:600;background:var(--surface-2);padding:8px 10px;white-space:nowrap}
td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:top}
tbody tr{cursor:pointer}
tbody tr:hover td{background:var(--surface-2)}
td.wrapcell{min-width:200px;max-width:340px}
td .clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
td.nowrap{white-space:nowrap}
tr.stale td:first-child{box-shadow:inset 4px 0 0 var(--warn)}
tr.hot td:first-child{box-shadow:inset 4px 0 0 var(--bad)}
.count{font-size:12.5px;color:var(--muted);margin:0 0 8px}
.more{display:flex;justify-content:center;padding:12px}
/* Resources & settings */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:20px;align-items:start}
.links{display:flex;flex-direction:column}
.links a{display:flex;justify-content:space-between;gap:12px;padding:9px 4px;border-top:1px solid var(--line);color:var(--link);text-decoration:none;font-weight:500}
.links a:first-child{border-top:0}
.links a span{color:var(--muted);font-family:var(--mono);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%}
.links a:hover{text-decoration:underline}
.guide ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.guide p{margin:0;max-width:70ch}
/* Dialogs */
dialog{border:1px solid var(--line);border-radius:10px;padding:0;background:var(--surface);color:var(--fg);width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 48px)}
dialog::backdrop{background:rgba(8,14,30,.55)}
dialog form{display:flex;flex-direction:column;max-height:calc(100vh - 50px)}
.dh{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dh .title{margin-right:auto;min-width:0}
.dh h2{font-size:24px;line-height:1.1}
.db{padding:16px 18px;overflow:auto;display:flex;flex-direction:column;gap:16px}
.df{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;align-items:center}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:720px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.grid3{grid-template-columns:minmax(0,1fr)}}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field.full{grid-column:1/-1}
.field.span2{grid-column:span 2}
@media (max-width:460px){.field.span2{grid-column:auto}}
.check{display:flex;flex-direction:row;gap:8px;align-items:center}
.check input{width:auto}
fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
legend{padding:0;margin-bottom:6px}
.log{white-space:pre-wrap;font-size:13px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;max-height:220px;overflow:auto}
.meta{font-size:12px;color:var(--muted)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--navy);color:var(--navy-fg);padding:10px 16px;border-radius:var(--r);font-weight:500;z-index:50;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.signin{max-width:460px;margin:60px auto;padding:28px;display:flex;flex-direction:column;gap:14px;text-align:center;align-items:center}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* ---- v2 additions ---- */
.room{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:860px){.room{grid-template-columns:minmax(0,1fr)}}
.plist{display:flex;flex-direction:column;gap:8px;min-width:0}
#cu-list{max-height:calc(100vh - 220px);overflow:auto}
.pcard{display:block;width:100%;text-align:left;white-space:normal;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--r);cursor:pointer;font:inherit;color:inherit}
.pcard[aria-current="true"]{border-color:var(--link);border-left-color:var(--accent);box-shadow:0 0 0 1px var(--link)}
.pcard .t{font-weight:600;display:block}
.pcard .s{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:12px;color:var(--muted)}
.sheet{padding:20px;display:flex;flex-direction:column;gap:20px;min-width:0}
.sheet-head{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.sheet-head .title{flex:1;min-width:200px}
.sheet-head h2{font-size:28px;line-height:1.1}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.facts div{background:var(--surface);padding:10px 12px;min-width:0}
.facts .v{font-weight:500;margin-top:2px;overflow-wrap:anywhere;white-space:pre-line}
.sec{display:flex;flex-direction:column;gap:10px}
.sec-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sec-head h3{margin-right:auto}
dialog.wide{width:min(1040px,calc(100vw - 24px))}
.dtabs{display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--line);overflow-x:auto;flex-shrink:0}
.dtabs button{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;padding:10px 12px;font-weight:600;color:var(--muted)}
.dtabs button[aria-selected="true"]{color:var(--fg);border-bottom-color:var(--accent)}
.dtabs .c{font-family:var(--mono);font-size:11px;color:var(--muted)}
[data-cpane]{display:flex;flex-direction:column;gap:16px}
[data-cpane][hidden]{display:none!important}
fieldset:disabled input,fieldset:disabled select,fieldset:disabled textarea{background:var(--surface-2);color:var(--fg);opacity:1}
.newbox{background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--r);padding:10px 12px}
.taglist{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-flex;align-items:center;gap:4px;padding:4px 4px 4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:13px}
.tag button{border:0;background:transparent;padding:0 6px;color:var(--muted);font-size:15px;line-height:1}
.tag button:hover{color:var(--bad)}
.notes{display:flex;flex-direction:column;gap:10px}
.note{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;background:var(--surface)}
.note .h{display:flex;gap:8px;font-size:12px;color:var(--muted);margin-bottom:4px;flex-wrap:wrap}
.note .h b{color:var(--fg)}
.note p{margin:0;white-space:pre-wrap}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pgrid button{padding:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;align-items:stretch;background:var(--surface-2);white-space:normal;text-align:left}
.pgrid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--surface-2)}
.pgrid .cap{font-size:11.5px;color:var(--muted);padding:6px 8px}
.hist{display:flex;flex-direction:column}
.hist .e{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 14px;padding:9px 0;border-top:1px solid var(--line);font-size:13px}
.hist .e:first-child{border-top:0}
.hist .when{color:var(--muted);font-family:var(--mono);font-size:12px}
.hist ul{margin:4px 0 0;padding-left:18px;color:var(--muted)}
@media (max-width:560px){.hist .e{grid-template-columns:minmax(0,1fr)}}
.tiles.small .n{font-size:28px}
.tiles.small .tile{cursor:default}
.addrow{align-items:center;grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:820px){.addrow{grid-template-columns:repeat(2,minmax(0,1fr))}}
.links.cols2{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));column-gap:24px}
.links.cols2 a:first-child{border-top:1px solid var(--line)}
label.btn.primary-ish{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}
.stg{display:grid;grid-template-columns:minmax(0,1.2fr) 120px 90px minmax(0,2fr) auto;gap:8px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}
.stg:first-child{border-top:0}
@media (max-width:720px){.stg{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.stg .sts{display:flex;flex-wrap:wrap;gap:4px}
.stg .sts label{display:inline-flex;gap:4px;align-items:center;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:2px 8px;cursor:pointer}
.stg .sts input{width:auto}
.ok-t{color:var(--ok)} .bad-t{color:var(--bad)} .warn-t{color:var(--warn)}
.ti-row-skip td{color:var(--muted)}

/* ---- v3: stage color palette (14 tones, both themes) ---- */
:root{--t-red-fg:#b21d2a;--t-red-bg:#fbe4e6;--t-orange-fg:#b4470b;--t-orange-bg:#fde8da;--t-amber-fg:#9a5b00;--t-amber-bg:#fdf0d9;--t-yellow-fg:#7a6400;--t-yellow-bg:#fbf4c8;--t-lime-fg:#4d6b00;--t-lime-bg:#ecf6d2;--t-green-fg:#1e7a45;--t-green-bg:#e2f3e8;--t-teal-fg:#0b6e6a;--t-teal-bg:#d9f2ef;--t-cyan-fg:#0a6688;--t-cyan-bg:#daf0f8;--t-blue-fg:#1d4fa8;--t-blue-bg:#e3ecfb;--t-indigo-fg:#3a3fb0;--t-indigo-bg:#e6e7fb;--t-purple-fg:#6b2fa8;--t-purple-bg:#efe4fb;--t-pink-fg:#a8236c;--t-pink-bg:#fbe3ef;--t-brown-fg:#7a4a26;--t-brown-bg:#f1e6dc;--t-gray-fg:#4a5568;--t-gray-bg:#e8ebf0}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--t-red-fg:#ff8590;--t-red-bg:#3d1519;--t-orange-fg:#ffa66b;--t-orange-bg:#3f2210;--t-amber-fg:#f2b955;--t-amber-bg:#3a2a0e;--t-yellow-fg:#f0d860;--t-yellow-bg:#363012;--t-lime-fg:#b5dc5c;--t-lime-bg:#26330e;--t-green-fg:#6fd497;--t-green-bg:#163525;--t-teal-fg:#5fd3c9;--t-teal-bg:#11312f;--t-cyan-fg:#6cc8ea;--t-cyan-bg:#0f2e3b;--t-blue-fg:#8db4f7;--t-blue-bg:#172b4f;--t-indigo-fg:#a3a8fb;--t-indigo-bg:#1f2250;--t-purple-fg:#c99cf5;--t-purple-bg:#2e1a48;--t-pink-fg:#f590c4;--t-pink-bg:#3f1730;--t-brown-fg:#d9a77e;--t-brown-bg:#33241a;--t-gray-fg:#b4bdcc;--t-gray-bg:#242f48}}
:root[data-theme="dark"]{--t-red-fg:#ff8590;--t-red-bg:#3d1519;--t-orange-fg:#ffa66b;--t-orange-bg:#3f2210;--t-amber-fg:#f2b955;--t-amber-bg:#3a2a0e;--t-yellow-fg:#f0d860;--t-yellow-bg:#363012;--t-lime-fg:#b5dc5c;--t-lime-bg:#26330e;--t-green-fg:#6fd497;--t-green-bg:#163525;--t-teal-fg:#5fd3c9;--t-teal-bg:#11312f;--t-cyan-fg:#6cc8ea;--t-cyan-bg:#0f2e3b;--t-blue-fg:#8db4f7;--t-blue-bg:#172b4f;--t-indigo-fg:#a3a8fb;--t-indigo-bg:#1f2250;--t-purple-fg:#c99cf5;--t-purple-bg:#2e1a48;--t-pink-fg:#f590c4;--t-pink-bg:#3f1730;--t-brown-fg:#d9a77e;--t-brown-bg:#33241a;--t-gray-fg:#b4bdcc;--t-gray-bg:#242f48}
.chip.t-red{background:var(--t-red-bg);color:var(--t-red-fg)} .tile.t-red{border-top-color:var(--t-red-fg)} .swatch.t-red{background:var(--t-red-fg)}
.chip.t-orange{background:var(--t-orange-bg);color:var(--t-orange-fg)} .tile.t-orange{border-top-color:var(--t-orange-fg)} .swatch.t-orange{background:var(--t-orange-fg)}
.chip.t-amber{background:var(--t-amber-bg);color:var(--t-amber-fg)} .tile.t-amber{border-top-color:var(--t-amber-fg)} .swatch.t-amber{background:var(--t-amber-fg)}
.chip.t-yellow{background:var(--t-yellow-bg);color:var(--t-yellow-fg)} .tile.t-yellow{border-top-color:var(--t-yellow-fg)} .swatch.t-yellow{background:var(--t-yellow-fg)}
.chip.t-lime{background:var(--t-lime-bg);color:var(--t-lime-fg)} .tile.t-lime{border-top-color:var(--t-lime-fg)} .swatch.t-lime{background:var(--t-lime-fg)}
.chip.t-green{background:var(--t-green-bg);color:var(--t-green-fg)} .tile.t-green{border-top-color:var(--t-green-fg)} .swatch.t-green{background:var(--t-green-fg)}
.chip.t-teal{background:var(--t-teal-bg);color:var(--t-teal-fg)} .tile.t-teal{border-top-color:var(--t-teal-fg)} .swatch.t-teal{background:var(--t-teal-fg)}
.chip.t-cyan{background:var(--t-cyan-bg);color:var(--t-cyan-fg)} .tile.t-cyan{border-top-color:var(--t-cyan-fg)} .swatch.t-cyan{background:var(--t-cyan-fg)}
.chip.t-blue{background:var(--t-blue-bg);color:var(--t-blue-fg)} .tile.t-blue{border-top-color:var(--t-blue-fg)} .swatch.t-blue{background:var(--t-blue-fg)}
.chip.t-indigo{background:var(--t-indigo-bg);color:var(--t-indigo-fg)} .tile.t-indigo{border-top-color:var(--t-indigo-fg)} .swatch.t-indigo{background:var(--t-indigo-fg)}
.chip.t-purple{background:var(--t-purple-bg);color:var(--t-purple-fg)} .tile.t-purple{border-top-color:var(--t-purple-fg)} .swatch.t-purple{background:var(--t-purple-fg)}
.chip.t-pink{background:var(--t-pink-bg);color:var(--t-pink-fg)} .tile.t-pink{border-top-color:var(--t-pink-fg)} .swatch.t-pink{background:var(--t-pink-fg)}
.chip.t-brown{background:var(--t-brown-bg);color:var(--t-brown-fg)} .tile.t-brown{border-top-color:var(--t-brown-fg)} .swatch.t-brown{background:var(--t-brown-fg)}
.chip.t-gray{background:var(--t-gray-bg);color:var(--t-gray-fg)} .tile.t-gray{border-top-color:var(--t-gray-fg)} .swatch.t-gray{background:var(--t-gray-fg)}
.tile.t-red .n{color:var(--t-red-fg)}
.swatch{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:middle;flex:none}
.themepick{display:flex;align-items:center;gap:6px;font-size:12px;opacity:.85}
.themepick select{width:auto;padding:3px 6px;font-size:12px;background:transparent;color:var(--navy-fg);border-color:rgba(255,255,255,.35)}
.themepick select option{color:#14213a;background:#fff}
.preset{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.preset button{border:0;border-radius:0}
.preset button + button{border-left:1px solid var(--line);color:var(--muted);padding-inline:8px}
.mgr{font-family:var(--mono);font-size:11px;font-weight:600;padding:1px 6px;border-radius:4px;background:var(--surface-2);color:var(--link);margin-right:4px}
tr.inactive td{color:var(--muted)}

/* work ticket preview */
.pdfpages{background:var(--bg);align-items:center;gap:16px}
.pdfpages canvas,.pdfpages img{width:100%;max-width:816px;height:auto;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);border-radius:2px}
@media print{body>*:not(#print-root){display:none!important}#print-root{display:block!important}#print-root img{width:100%;page-break-after:always;display:block}}
#print-root{display:none}
.note .h .spacer{flex:1}
.note .h button{padding:2px 8px;font-size:12px;min-height:0}
.note.editing textarea{width:100%;margin:4px 0 8px}
@keyframes sstflash{0%,100%{box-shadow:none}30%{box-shadow:0 0 0 4px rgba(200,32,47,.45)}}
.flash{animation:sstflash 1.2s ease 2}
/* type-ahead picker */
.combo{position:relative}
.combo-src{display:none!important}
.combo-list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 2px);max-height:280px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.combo-list>div{padding:9px 11px;cursor:pointer;font-size:14px;line-height:1.3;border-bottom:1px solid var(--surface-2)}
.combo-list>div:last-child{border-bottom:0}
.combo-list>div.act,.combo-list>div[role=option]:hover{background:var(--surface-2)}
.combo-list>div.new{color:var(--link);font-weight:600}
.combo-list>.more{color:var(--muted);font-size:12px;cursor:default}
/* photo album */
.album{position:relative;align-items:center;justify-content:center;background:#0b1020;min-height:50vh;touch-action:pan-y}
.album img{max-width:100%;max-height:72vh;border-radius:4px;object-fit:contain;user-select:none}
.album .nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:64px;border:0;border-radius:8px;background:rgba(255,255,255,.18);color:#fff;font-size:34px;line-height:1;cursor:pointer;padding:0}
.album .nav:hover{background:rgba(255,255,255,.32)}
.album .prev{left:10px}.album .next{right:10px}
.album .nav[disabled]{opacity:.25;cursor:default}

/* ---- SSE Time Tracker additions ---- */
.notice.warn{background:var(--warn-bg)}
.notice.demo{background:var(--warn-bg);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.notice.demo select{width:auto}
.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
th.num{font-family:var(--body)}
.weekbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.weekbar > button:not(.ghost){width:34px;justify-content:center;padding:6px 0;font-size:18px;line-height:1}
.wk-t{display:flex;flex-direction:column;min-width:200px;text-align:center}
.wk-t b{font-family:var(--display);font-size:19px;font-weight:600;line-height:1.1}
.dash-head .wk-slot{display:flex}
#view-sheet .dash-head,#view-review .dash-head,#view-payroll .dash-head,#view-lists .dash-head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:16px}
#view-sheet .dash-head .title,#view-review .dash-head .title,#view-payroll .dash-head .title,#view-lists .dash-head .title{margin-right:auto}
.dash-head h2{font-size:28px;line-height:1.1}
label.inline{display:flex;align-items:center;gap:8px}
label.inline select{width:auto;min-width:200px}
.ts-sum{margin:6px 0 14px}
.ts-sum .tiles{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.ts-sum .tile{cursor:default}
.ts-sum .tile .n{font-size:32px}
.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
@media (max-width:1100px){.days{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:720px){.days{grid-template-columns:minmax(0,1fr)}}
.day{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;min-width:0}
.day.today{border-color:var(--link);box-shadow:0 0 0 1px var(--link)}
.day.weekend{background:var(--surface-2)}
.day-h{display:flex;align-items:baseline;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line)}
.day-h b{font-family:var(--display);font-size:18px;font-weight:600}
.day-h .tot{margin-left:auto;font-family:var(--mono);font-weight:600}
.day-b{display:flex;flex-direction:column;gap:6px;padding:8px;flex:1}
.day-b .add{justify-content:center;border-style:dashed;color:var(--muted);background:transparent}
.ent{display:flex;flex-direction:column;align-items:stretch;gap:3px;text-align:left;white-space:normal;width:100%;padding:7px 9px;border:1px solid var(--line);border-left:4px solid var(--bar);border-radius:var(--r);background:var(--surface);cursor:pointer}
.ent:hover{background:var(--surface-2)}
.ent.ot{border-left-color:var(--accent)}
.ent.svc{border-left-color:var(--ok)}
.ent .j{font-weight:600;font-size:12.5px;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ent .m{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.ent .h{margin-left:auto;font-family:var(--mono);font-weight:600;color:var(--fg);font-size:13px}
.ent .flag{width:8px;height:8px;border-radius:50%;display:inline-block}
.flag.bad{background:var(--bad)} .flag.warn{background:var(--warn)} .flag.info{background:var(--info)}
.ts-foot{margin-top:14px;padding:12px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ts-foot .grow{flex:1;min-width:220px}
.matrix{margin-bottom:16px}
.matrix table td,.matrix table th{padding:6px 10px}
.matrix td.num,.matrix th.num{min-width:54px}
.matrix td.zero{color:var(--muted)}
.matrix td.miss{background:var(--warn-bg)}
.matrix tr.tot td{font-weight:600;background:var(--surface-2)}
.matrix tbody tr:not(.tot):hover td{background:var(--surface-2)}
table.lines td{vertical-align:middle}
table.lines tr.sel td{background:var(--info-bg)}
table.lines td .iss{font-size:12px;color:var(--muted);max-width:340px}
table.lines td .iss .bad{color:var(--bad)} table.lines td .iss .warn{color:var(--warn)}
.tablewrap.flat{border:0}
.steps{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.step{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 14px;padding:14px 16px;align-items:start}
.step .no{grid-row:1/4;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:19px;font-weight:700;background:var(--neutral-bg);color:var(--muted)}
.step.ok .no{background:var(--ok-bg);color:var(--ok)} .step.warn .no{background:var(--warn-bg);color:var(--warn)} .step.bad .no{background:var(--bad-bg);color:var(--bad)}
.step h3{color:var(--fg);font-size:18px}
.step .body{display:flex;flex-direction:column;gap:8px;min-width:0}
.step .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
pre.iif{margin:0;font:12px/1.5 var(--mono);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;max-height:240px;overflow:auto;white-space:pre}
.picker{position:relative}
.pick-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 2px);max-height:280px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 24px rgba(8,14,30,.18)}
.pick-list button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;border:0;border-top:1px solid var(--line);border-radius:0;white-space:normal;text-align:left;padding:7px 10px}
.pick-list button:first-child{border-top:0}
.pick-list button:hover,.pick-list button.on{background:var(--surface-2)}
.pick-list .s{font-size:12px;color:var(--muted)}
.daypick,.crewpick{display:flex;gap:6px;flex-wrap:wrap}
.daypick label,.crewpick label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12.5px;cursor:pointer;background:var(--surface)}
.daypick input,.crewpick input{width:auto;margin:0}
.daypick label:has(input:checked),.crewpick label:has(input:checked){background:var(--navy);color:var(--navy-fg);border-color:var(--navy)}
.daypick label:has(input:disabled){opacity:.45;cursor:default}
.seg.kind{margin:0}
ul.issues{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
ul.issues li{font-size:12.5px;padding:6px 10px;border-radius:var(--r);background:var(--neutral-bg)}
ul.issues li.bad{background:var(--bad-bg);color:var(--bad)} ul.issues li.warn{background:var(--warn-bg);color:var(--warn)} ul.issues li.info{background:var(--info-bg);color:var(--info)}
.chart .mark.ot{fill:var(--accent)}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px;background:var(--bar)}
.legend i.ot{background:var(--accent)}
.ls-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.ls-tools input[type=search]{max-width:320px;flex:1 1 200px}
.ls-tools select{width:auto}
.drop{border:2px dashed var(--line);border-radius:var(--r);padding:18px;text-align:center;color:var(--muted)}
.drop input{width:auto}
.iifprev{max-height:260px;overflow:auto}.iifprev td,.iifprev th{padding:4px 8px;font-size:12px}
.pick-note{padding:6px 10px;font-size:12px;color:var(--muted);background:var(--surface-2);display:flex;flex-direction:column;border-top:1px solid var(--line)}.pick-note:first-child{border-top:0}.pick-note .s{font-size:11.5px}
label.btn input[type=file]{display:none}
