/* =====================================================================
   RAMCON Connects — design system
   Near-black canvas, hairline rules, one cool accent, desaturated status.
   Dark is the default; [data-theme="light"] on <html> switches palettes.
   Legacy variable names (--navy, --warnbg, --card …) are kept and mapped
   so inline styles in app.js keep working in both themes.
   ===================================================================== */

/* ---------- fonts (self-hosted, SIL OFL — see fonts/LICENSE-*) ---------- */
@font-face{font-family:"Inter";font-style:normal;font-weight:300;font-display:swap;src:url(fonts/inter-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/inter-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Black Ops One";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/black-ops-one-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Saira Stencil One";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/saira-stencil-one-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/barlow-condensed-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/barlow-condensed-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/barlow-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/barlow-condensed-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:200;font-display:swap;src:url(fonts/barlow-latin-200-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:300;font-display:swap;src:url(fonts/barlow-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/barlow-latin-400-normal.woff2) format("woff2")}

/* ---------- tokens: DARK (default) ---------- */
:root{
  color-scheme:dark;
  --brand:#010160;       /* RAMCON navy — header band and brand moments */
  --bg:#03042c;          /* canvas: RAMCON navy, deepened so text and status colors read cleanly */
  --bg-2:#0a0d47;        /* panels, lanes (RAMCON Navy, 3.300) */
  --bg-3:#0e1254;        /* raised / hover */
  --bg-inset:#050732;    /* group rows, wells */
  --ink:#eef0fa;         /* primary text */
  --ink-2:#b9bfdc;       /* secondary */
  --ink-3:#9097bd;       /* labels, meta */
  --line:rgba(160,175,255,.12);
  --line-2:rgba(160,175,255,.2);
  --line-3:rgba(255,255,255,.30);
  --hover:rgba(160,175,255,.05);
  --track:rgba(255,255,255,.07);
  --accent:#8c97ff;      /* RAMCON Navy accent (links, the one action color on navy) */
  --accent-a:rgba(140,151,255,.14);
  --accent-ink:#03042c;
  /* the old gold, retired (Kyle 10/24): highlight = the navy accent family; celebrations = platinum (the logo swoosh) */
  --gold:#c3c8f0; --gold-bg:rgba(140,151,255,.10); --celebrate:#cccccc;
  --good:#5fd19b; --good-a:rgba(95,209,155,.13);
  --warn:#e6b25e; --warn-a:rgba(230,178,94,.13);
  --crit:#ff8a80; --crit-a:rgba(255,138,128,.13);
  --data:#b6a9f4; --data-a:rgba(182,169,244,.12);
  --metal:#73c7da; --metal-a:rgba(115,199,218,.12);
  --hatch:rgba(255,255,255,.06);
  --scrim:rgba(0,0,0,.62);
  --shadow:0 0 0 1px var(--line-2), -24px 0 60px rgba(0,0,0,.55);
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a8a8b0' stroke-width='1.2'/%3E%3C/svg%3E");

  --f-ui:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-disp:"Barlow Condensed","Arial Narrow","Inter",sans-serif;
  --f-num:"Barlow","Inter",system-ui,sans-serif;
  --track-wide:.16em;
  --r:6px;          /* v2: softer corners */
  --ease:cubic-bezier(.2,.7,.2,1);
  --t:160ms;
  --gut:32px;
  --hdr-h:93px;

  /* legacy names used by app.js inline styles */
  --navy:var(--accent); --navy2:var(--accent); --muted:var(--ink-2); --card:var(--bg-2);
  --critbg:var(--crit-a); --warnbg:var(--warn-a); --goodbg:var(--good-a); --databg:var(--data-a);
  --watch:var(--ink-2); --watchbg:rgba(255,255,255,.045); --bad:var(--crit);
  font-family:var(--f-ui);
}
/* ---------- tokens: LIGHT ---------- */
:root[data-theme="light"]{
  color-scheme:light;
  --brand:#010160;
  --bg:#f4f6fa; --bg-2:#ffffff; --bg-3:#eef1f6; --bg-inset:#eef1f6;
  --ink:#0b1030; --ink-2:#434a5e; --ink-3:#5d6574;
  --line:#e3e7ee; --line-2:#cfd4df; --line-3:#7d8494;
  --hover:rgba(1,1,96,.035); --track:rgba(1,1,96,.07);
  --accent:#2525a0; --accent-a:rgba(37,37,160,.09); --accent-ink:#ffffff;
  --gold:#2525a0; --gold-bg:#eceeff; --celebrate:#cccccc;
  --good:#12704a; --good-a:rgba(18,112,74,.10);
  --warn:#8f5300; --warn-a:rgba(143,83,0,.11);
  --crit:#b3261e; --crit-a:rgba(179,38,30,.08);
  --data:#5a44c0; --data-a:rgba(90,68,192,.09);
  --metal:#0e6a80; --metal-a:rgba(14,106,128,.09);
  --hatch:rgba(0,0,0,.05);
  --scrim:rgba(20,20,24,.32);
  --shadow:0 0 0 1px var(--line-2), -24px 0 60px rgba(0,0,0,.12);
  --watchbg:rgba(0,0,0,.04);
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2346464e' stroke-width='1.2'/%3E%3C/svg%3E");
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html,body{overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font-size:13.5px;line-height:1.45;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
  scrollbar-color:var(--line-2) transparent}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--accent);text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration:underline}
b,strong{font-weight:600}
small{font-size:11px;color:var(--ink-3)}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:1px}
input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:14px;height:14px;vertical-align:-2px;margin:0 6px 0 0}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--line-2);border:3px solid transparent;background-clip:padding-box;border-radius:10px}
*::-webkit-scrollbar-thumb:hover{background-color:var(--line-3)}
*::-webkit-scrollbar-track{background:transparent}

/* tabular figures only where numbers line up — Inter's tnum also widens hyphens, so it is not global */
td.n,th.n,.kpi .v,.kv div:nth-child(even),.mini,.score,.rv,.comprow b,.fc-head,.fc-cap,.board thead,.pay td.d,.health .big,.iqv,.stage b,h2 .count,#pulled,
input[type=number],input[type=date],.tbl.cmp td,.card .num{font-variant-numeric:tabular-nums}

/* ---------- header ---------- */
.top{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);
  -webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);border-bottom:1px solid var(--line)}
.top .bar{display:flex;align-items:center;gap:20px;height:52px;padding:0 var(--gut)}
.brand{display:flex;align-items:center;gap:16px;min-width:0;white-space:nowrap}
.brand .mark{font-family:var(--f-num);font-weight:400;font-size:17px;letter-spacing:.42em;margin-right:-.42em;color:var(--ink);line-height:1}
.brand .sub{font-family:var(--f-disp);font-weight:500;font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-3);
  padding-left:16px;border-left:1px solid var(--line-2);line-height:14px}
.tools,.sync{display:flex;align-items:center;gap:10px;margin-left:auto}
#pulled{font-family:var(--f-disp);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;margin-right:6px}
.hbtn,#refresh,.fieldlink{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 12px;
  background:transparent;border:1px solid var(--line-2);border-radius:var(--r);color:var(--ink);
  font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;text-decoration:none;
  transition:background var(--t) var(--ease),border-color var(--t) var(--ease),color var(--t) var(--ease)}
.hbtn:hover,#refresh:hover,.fieldlink:hover{border-color:var(--ink);background:var(--hover);text-decoration:none}
#refresh:disabled{opacity:.55;cursor:progress}
.themebtn{width:30px;padding:0}
.themebtn svg{width:14px;height:14px;display:block}

#tabs{display:flex;gap:2px;height:40px;padding:0 calc(var(--gut) - 12px);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 28px),transparent);
          mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 28px),transparent)}
#tabs::-webkit-scrollbar{display:none}
#tabs button{position:relative;flex:none;background:none;border:0;padding:0 12px;height:40px;color:var(--ink-3);
  font-family:var(--f-disp);font-weight:500;font-size:13px;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;
  transition:color var(--t) var(--ease)}
#tabs button::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease)}
#tabs button:hover{color:var(--ink)}
#tabs button.on{color:var(--ink)}
#tabs button.on::after{transform:scaleX(1);height:2px}
#tabs button:focus-visible{outline-offset:-4px}

/* ---------- filter bar ---------- */
.filters{display:flex;gap:10px;padding:14px var(--gut);border-bottom:1px solid var(--line);flex-wrap:wrap;background:var(--bg)}
.filters input{flex:1;min-width:240px}

/* ---------- form controls ---------- */
input[type=text],input[type=search],input[type=number],input[type=date],input:not([type]),select,textarea{
  height:34px;padding:0 11px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r);color:var(--ink);
  font-size:13px;outline:none;transition:border-color var(--t) var(--ease),background var(--t) var(--ease)}
textarea{height:auto;min-height:64px;padding:8px 11px}
input::placeholder,textarea::placeholder{color:var(--ink-3)}
input:hover,select:hover,textarea:hover{border-color:var(--line-3)}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}
select{-webkit-appearance:none;appearance:none;padding-right:30px;background-image:var(--chev);background-repeat:no-repeat;background-position:right 11px center;cursor:pointer}
input[type=file]{font-size:12.5px;color:var(--ink-2);max-width:100%}
input[type=file]::file-selector-button{margin-right:10px;height:30px;padding:0 12px;background:transparent;border:1px solid var(--line-2);border-radius:var(--r);color:var(--ink);
  font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
input:disabled,select:disabled{opacity:.5}

/* ---------- layout ---------- */
main{padding:28px var(--gut) 72px;max-width:1680px;margin:0 auto}
.loading{padding:96px 0;text-align:center;color:var(--ink-3);font-family:var(--f-disp);font-weight:500;font-size:13px;letter-spacing:.22em;text-transform:uppercase}
.loading::after{content:"";display:block;width:180px;height:1px;margin:20px auto 0;background:linear-gradient(90deg,transparent,var(--ink),transparent) no-repeat,var(--line);
  background-size:40% 100%,100% 100%;animation:scan 1.3s linear infinite}
@keyframes scan{from{background-position:-80% 0,0 0}to{background-position:180% 0,0 0}}
.banner{position:relative;background:var(--warn-a);color:var(--ink);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-left:2px solid var(--warn);
  border-radius:var(--r);padding:11px 14px 11px 16px;margin-bottom:18px;font-size:13px}
.empty{color:var(--ink-3);font-size:13px;padding:6px 0}
td.empty{padding:22px 12px;text-align:center}
.muted{opacity:.45}
.sec-note{color:var(--ink-3);font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;font-family:var(--f-ui)}
.sec-note a.on{color:var(--ink);text-decoration:underline}
.legend{font-size:11px;color:var(--ink-3)}

/* section headings */
h2{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:40px 0 14px;font-family:var(--f-disp);font-weight:600;font-size:14px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
main>h2:first-child,.health>h2:first-child{margin-top:4px}
h2 .count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 7px;border:1px solid var(--line-2);border-radius:var(--r);
  font-family:var(--f-num);font-weight:400;font-size:12px;letter-spacing:.02em;color:var(--ink-2);background:transparent}
h2 .sec-note{font-size:12px}

/* toolbar row at top of a view */
.schbar{display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap;margin-bottom:24px}
.schbar>b{font-family:var(--f-disp);font-weight:600;font-size:15px;letter-spacing:.14em;text-transform:uppercase;margin-right:6px}
.schbar>b[style]{font-family:var(--f-ui);letter-spacing:0;text-transform:none;font-size:20px!important;font-weight:500}
.schbar label.sec-note{display:inline-flex;align-items:center}
.schbar input[type=search]{min-width:200px}

/* buttons */
.linkbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:0 16px;background:var(--ink);color:var(--bg);border:1px solid var(--ink);border-radius:var(--r);
  font-family:var(--f-disp);font-weight:600;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;white-space:nowrap;
  transition:background var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease),opacity var(--t)}
.linkbtn:hover{background:transparent;color:var(--ink);text-decoration:none}
.linkbtn.sec{background:transparent;color:var(--ink);border-color:var(--line-2)}
.linkbtn.sec:hover{border-color:var(--ink);background:var(--hover)}
.linkbtn:disabled,.linkbtn[disabled]{opacity:.35!important;cursor:not-allowed;background:transparent;color:var(--ink)}
.dbody>.linkbtn,.panel>.linkbtn{margin-top:14px}

/* segmented control */
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:transparent;max-width:100%;overflow-x:auto;scrollbar-width:none}
.seg button{flex:none;border:0;background:transparent;height:32px;padding:0 13px;border-right:1px solid var(--line-2);color:var(--ink-2);
  font-family:var(--f-disp);font-weight:600;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;
  transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.seg button:last-child{border-right:0}
.seg button:hover{color:var(--ink);background:var(--hover)}
.seg button.on{background:var(--ink);color:var(--bg)}

/* ---------- KPI strip: hairline grid, no boxes ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0;margin:0 0 28px;overflow:hidden;
  border-top:1px solid var(--line-2);border-bottom:1px solid var(--line)}
.kpi{position:relative;padding:18px 22px 20px;box-shadow:-1px 0 0 var(--line),0 -1px 0 var(--line);min-width:0;background:transparent}
.kpis .kpi:first-child{padding-left:2px}
.kpi .l{display:flex;align-items:center;gap:8px;font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3)}
.kpi.bad .l::before,.kpi.ok .l::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--good)}
.kpi.bad .l::before{background:var(--crit)}
.kpi .v{font-family:var(--f-num);font-weight:300;font-size:clamp(28px,2.5vw,38px);line-height:1.08;letter-spacing:-.005em;margin-top:10px;color:var(--ink);font-variant-numeric:tabular-nums lining-nums;overflow-wrap:anywhere}
.kpi .v span[style]{font-size:18px!important;font-weight:400}
.kpi .s{font-size:12px;color:var(--ink-3);margin-top:8px;line-height:1.4}
.kpi.bad .v{color:var(--crit)}

/* stage summary */
.stages{display:flex;flex-wrap:wrap;gap:0;margin:-8px 0 8px;border-bottom:1px solid var(--line)}
.stage{padding:0 22px 16px 0;margin-right:22px;border-right:1px solid var(--line);font-family:var(--f-disp);font-weight:500;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.stage:last-child{border-right:0}
.stage b{font-family:var(--f-num);font-weight:400;font-size:15px;letter-spacing:0;color:var(--ink);margin-left:6px}

/* ---------- exception cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:12px}
.card{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px 16px 20px;cursor:pointer;
  transition:border-color var(--t) var(--ease),background var(--t) var(--ease)}
.card::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:2px;background:var(--ink-3)}
.card.s3::before{background:var(--crit)} .card.s2::before{background:var(--warn)}
.card:hover{border-color:var(--line-3);background:var(--bg-3)}
.card .hd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.card .num{font-family:var(--f-num);font-weight:400;color:var(--ink-2);letter-spacing:.04em}
.card .nm{font-weight:600}
.card .meta{color:var(--ink-3);font-size:12px;margin:4px 0 12px}
.flags{display:flex;flex-direction:column;gap:4px}
.fl{font-size:12.5px;line-height:1.4;padding:6px 10px;border-radius:1px;background:var(--watchbg);color:var(--ink-2);border-left:2px solid var(--line-3)}
.fl.s3{background:var(--crit-a);color:var(--ink);border-left-color:var(--crit)}
.fl.s2{background:var(--warn-a);color:var(--ink);border-left-color:var(--warn)}
.fl.data{background:var(--data-a);color:var(--ink);border-left-color:var(--data)}
.fl[data-ev],.fl[data-mp]{transition:background var(--t)}
.fl[data-ev]:hover,.fl[data-mp]:hover{filter:brightness(1.15)}
.mini{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:11.5px;color:var(--ink-3)} .mini b{color:var(--ink);font-weight:500;margin-left:3px}

/* progress bars on cards */
.hbar{position:relative;height:4px;background:var(--track);border-radius:0;overflow:hidden;margin-top:10px}
.hbar .e{position:absolute;top:0;bottom:0;left:0;background:var(--line-3)}
.hbar .a{position:absolute;left:0;top:1px;height:2px;background:var(--accent)}
.hbar .over{background:var(--crit)}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;background:transparent}
th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:middle}
th{font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);cursor:pointer;
  border-bottom:0;box-shadow:inset 0 -1px 0 var(--line-2);background:var(--bg);user-select:none}
th:hover{color:var(--ink-2)}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tbody tr{transition:background 120ms var(--ease)}
tr.row,tr.click{cursor:pointer}
tr.row:hover td,tr.click:hover td{background:var(--hover)}
tbody tr:last-child td{border-bottom:0}
.tablewrap{overflow:auto;max-height:calc(100vh - var(--hdr-h) - 40px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tablewrap thead th{position:sticky;top:0;z-index:2}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--line-3);margin-right:2px;vertical-align:1px}
.dot.s3{background:var(--crit);box-shadow:0 0 0 3px var(--crit-a)} .dot.s2{background:var(--warn)} .dot.s1{background:var(--ink-3)} .dot.ok{background:var(--good);opacity:.8} .dot.nodata{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line-3)}
.pill{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--r);font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;white-space:nowrap;background:transparent;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-2);vertical-align:middle}
.pill[style*="goodbg"]{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--good) 30%,transparent)}
.pill[style*="warnbg"]{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 30%,transparent)}
.pill[style*="critbg"]{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--crit) 30%,transparent)}
.neg{color:var(--crit)} .pos{color:var(--good)}

/* compact tables used inside panels */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{padding:8px 10px;font-size:11px;background:var(--bg-2);cursor:default;text-align:left}
.panel .tbl thead th{position:sticky;top:var(--hdr-h);z-index:2}
#drawer .panel .tbl thead th,#drawer table th{position:static}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--line)}
.tbl td.sec-note{white-space:normal;min-width:260px;line-height:1.5}
.tbl.fmt td{white-space:normal}
.tbl.fmt td:nth-child(2){min-width:190px}
.tbl.fmt td:nth-child(3),.tbl.fmt td:nth-child(4){white-space:nowrap}
.tbl.fmt td:nth-child(10){min-width:84px}
.tbl.fmt td:nth-child(10) .rdchip{margin:2px 0}
.tbl.fmt td,.tbl.fmt th{padding-left:8px;padding-right:8px}
.tbl td .sec-note{margin-top:2px}
.tbl th a{color:inherit;text-decoration:none}
.tbl th a:hover{color:var(--ink)}
.tbl th a.on{color:var(--ink);text-decoration:none;box-shadow:inset 0 -1px 0 var(--ink)}
.tbl b.bad,b.bad{color:var(--crit)} .tbl b.good,b.good,td.good,.good>b{color:var(--good)}
.tbl.cmp th{text-align:left;cursor:default}
.tbl.cmp tbody th{background:transparent;box-shadow:none;border-bottom:1px solid var(--line);color:var(--ink-3);font-size:11px}
.tbl.cmp td{font-variant-numeric:tabular-nums;font-family:var(--f-num);font-size:15px}
.tbl.cmp thead th a{font-family:var(--f-ui);text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink);font-weight:600}
.pay td.d{text-align:center;font-variant-numeric:tabular-nums;color:var(--ink-2)} .pay td.ot{color:var(--crit);font-weight:600}

/* ---------- panels ---------- */
.panel{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin-bottom:14px}
.panel h4,.panel h3{margin:0 0 14px;font-family:var(--f-disp);font-weight:600;font-size:12.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-2)}
.panel h4 .sec-note,.panel h3 .sec-note{margin-left:8px}
.panel>.sec-note:first-of-type{margin:-8px 0 10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid2>div>h2:first-child{margin-top:8px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:0;font-size:13px}
.kv div:nth-child(odd){padding-right:16px}
.kv div{padding:6px 0;border-bottom:1px solid var(--line)}
.kv div:nth-last-child(-n+2){border-bottom:0}
.kv div:nth-child(odd){color:var(--ink-3)}
.kv div:nth-child(even){text-align:right;font-weight:500;font-variant-numeric:tabular-nums}
.list{font-size:13px}
.list .it{padding:10px 0;border-bottom:1px solid var(--line)}
.list .it:first-child{padding-top:2px}
.list .it:last-child{border-bottom:0;padding-bottom:0}
.list .it[data-id],.list .it[data-fj],.list .it[data-rd]{margin:0 -10px;padding-left:10px;padding-right:10px;transition:background var(--t)}
.list .it[data-id]:hover,.list .it[data-fj]:hover,.list .it[data-rd]:hover{background:var(--hover)}
.list .d{color:var(--ink-3);font-size:12px;margin-top:3px}
.list .d.bad{color:var(--crit)}
.loopmap{font-size:13px;line-height:1.7;color:var(--ink-2)} .loopmap b{color:var(--ink)}
ul.nar{margin:0;padding-left:16px;font-size:13px;line-height:1.6;color:var(--ink-2)}
ul.nar li{padding:2px 0}
ul.nar li::marker{color:var(--ink-3)}
ul.nar.good li::marker{color:var(--good)} ul.nar.bad li::marker{color:var(--crit)}

/* ---------- data health ---------- */
.health .panel{max-width:none}
.health .row3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line);overflow:hidden;margin-bottom:8px}
.health .row3 .panel{margin:0;border:0;border-radius:0;background:transparent;box-shadow:-1px 0 0 var(--line),0 -1px 0 var(--line);padding:22px 24px 24px}
.health .row3 .panel b{display:block;margin-top:8px;font-weight:500}
.health .big{font-family:var(--f-num);font-weight:300;font-size:40px;line-height:1.05;color:var(--ink)}
.health>p.sec-note,main>p.sec-note{margin-top:20px;line-height:1.6}

/* ---------- drawer ---------- */
#drawer{position:fixed;top:0;right:0;bottom:0;width:min(880px,100%);background:var(--bg);z-index:30;transform:translateX(100%);visibility:hidden;
  transition:transform 220ms var(--ease),visibility 0s linear 220ms;overflow-y:auto;box-shadow:none;border-left:1px solid var(--line-2);overscroll-behavior:contain}
#drawer.open{transform:none;visibility:visible;transition:transform 220ms var(--ease),visibility 0s;box-shadow:var(--shadow)}
#scrim{position:fixed;inset:0;background:var(--scrim);z-index:25;display:block;opacity:0;pointer-events:none;transition:opacity 200ms var(--ease);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#scrim.open{opacity:1;pointer-events:auto}
.dhead{position:sticky;top:0;z-index:3;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  color:var(--ink);padding:22px 28px 18px;border-bottom:1px solid var(--line)}
.dhead .x{float:right;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin:-4px -6px 0 16px;background:transparent;border:1px solid var(--line-2);
  border-radius:var(--r);color:var(--ink-2);font-size:20px;line-height:1;font-weight:300;transition:border-color var(--t),color var(--t)}
.dhead .x:hover{border-color:var(--ink);color:var(--ink)}
.dhead h3{margin:0;font-family:var(--f-disp);font-weight:600;font-size:22px;line-height:1.2;letter-spacing:.06em;text-transform:uppercase}
.dhead .meta{color:var(--ink-3);font-size:12.5px;margin-top:6px}
.dhead .meta b{color:var(--ink)}
.dbody{padding:22px 28px 40px}
.dbody table{font-size:12.5px}
.dbody .panel{background:var(--bg-2)}
.dbody .panel th{background:var(--bg-2)}

/* forms in drawer */
.mform{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 14px;margin-bottom:12px}
.mform input,.mform select{width:100%}
.mform>div{display:flex;flex-direction:column;justify-content:flex-end}
.mform label.fl-l,.mform>div>label{display:block;font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:12px 0 6px}
.mform label a{letter-spacing:.04em;text-transform:none;font-family:var(--f-ui);font-weight:500;font-size:11.5px;margin-left:6px}
.panel>label.sec-note{display:block;font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;margin:12px 0 6px}
.panel>select,.panel>input[type=text],.panel>.grid2 input{width:100%}
.panel>.grid2{gap:14px}
.panel>.grid2 label.sec-note{display:block;font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;margin:12px 0 6px}

/* signals */
.sigcard{display:flex;gap:18px;align-items:flex-start}
.sigcard img,.sigcard .nophoto{width:148px;height:110px;object-fit:cover;border-radius:var(--r);flex:none;background:var(--bg-inset);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-family:var(--f-disp);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.sigbody{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.sigbody .hd{display:flex;justify-content:space-between;gap:10px}
.sigact{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}

/* ---------- schedule board ---------- */
.board-wrap{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-2)}
table.board{border:0;border-radius:0;table-layout:fixed;min-width:1100px}
.board th,.board td{white-space:normal;vertical-align:top;border-right:1px solid var(--line);padding:6px;width:112px}
.board thead tr:first-child th{position:sticky;top:0;z-index:2}
.board thead th{cursor:default;text-align:center;background:var(--bg-2);color:var(--ink-2);padding:10px 6px}
.board thead th span{color:var(--ink-3);font-family:var(--f-num);font-weight:400;letter-spacing:.02em;margin-left:4px}
.board thead tr.load th{position:static;font-family:var(--f-num);font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink);font-size:12.5px;box-shadow:inset 0 -1px 0 var(--line)}
.board .lane{position:sticky;left:0;z-index:1;background:var(--bg-2);width:180px;text-align:left;box-shadow:inset -1px 0 0 var(--line-2)}
.board thead .lane{z-index:3;background:var(--bg-2);text-align:left}
.board td.lane b{display:block;font-size:12.5px;font-weight:600}
.board td.lane span{display:block;color:var(--ink-3);font-size:11px;margin-top:2px}
.board tr.grp td.lane{background:var(--bg-inset)}
.board th.today,.board td.today{background:var(--accent-a)!important}
.board thead th.today{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}
.board td.wkend,.board th.wkend{background:color-mix(in srgb,var(--bg-inset) 70%,var(--bg-2))}
.ev{display:block;border-radius:1px;padding:4px 7px;margin-bottom:4px;font-size:11.5px;line-height:1.3;cursor:pointer;border:0;border-left:2px solid var(--line-3);
  background:var(--watchbg);color:var(--ink);transition:filter var(--t)}
.ev:hover{filter:brightness(1.18)}
.ev b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev span{display:block;color:var(--ink-3);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev.prod{background:var(--accent-a);border-left-color:var(--accent)}
.ev.trans{background:var(--warn-a);border-left-color:var(--warn)}
.ev.st{background:var(--good-a);border-left-color:var(--good)}
.ev.sales{background:var(--data-a);border-left-color:var(--data)}
.ev.sub{background:var(--metal-a);border-left-color:var(--metal)}
.ev.rain{background:var(--hatch);border-left-color:var(--ink-3);text-decoration:line-through;color:var(--ink-3)}
.ev.done{opacity:.45}:where(html.f-phonepass) .ev.done{opacity:.7} /* #285 (switch phonepass, #308): faded, still readable (was .45, 2.7:1) */
.schleg{display:flex;gap:6px 14px;flex-wrap:wrap;margin-top:12px;align-items:center}
.schleg .ev{display:inline-flex;align-items:center;gap:4px;margin:0;cursor:default;background:transparent!important;padding:2px 0 2px 8px;font-size:11.5px;color:var(--ink-2)}
.schleg .ev:hover{filter:none}
.schleg .ev.rain{color:var(--ink-3)}

/* ---------- forecast gantt ---------- */
.fc{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);overflow-x:auto}
.fc-row{display:flex;min-width:1100px;border-bottom:1px solid var(--line)}
.fc-row:last-child{border-bottom:0}
.fc-lane{flex:0 0 196px;padding:8px 14px;border-right:1px solid var(--line-2);font-size:12px;cursor:pointer;background:var(--bg-2);position:sticky;left:0;z-index:4;transition:background var(--t)}
.fc-lane:hover{background:var(--bg-3)}
.fc-lane b{display:block;font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-lane span{color:var(--ink-3);font-size:11px} .fc-lane em{color:var(--crit);font-style:normal}
.fc-track{position:relative;flex:1;min-height:38px}
.fc-track>i{position:absolute;top:0;bottom:0;border-left:1px solid var(--line);opacity:.7}
.fc-head .fc-track span,.fc-cap .fc-track span{position:absolute;top:11px;font-family:var(--f-num);font-size:11px;color:var(--ink-3);padding-left:5px;letter-spacing:.02em}
.fc-head,.fc-cap{background:var(--bg-2)}
.fc-head .fc-lane,.fc-cap .fc-lane{cursor:default;font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);padding-top:11px}
.fc-head .fc-lane:hover,.fc-cap .fc-lane:hover{background:var(--bg-2)}
.fc-cap{border-bottom:1px solid var(--line-2)!important}
.fc-cap .fc-track span{text-align:center;padding:0;color:var(--ink-2)} .fc-cap .fc-track span.open{color:var(--warn);font-weight:500}
.fc-grp{min-width:1100px;padding:14px 14px 6px;background:var(--bg-inset);font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--line)}
.fc-bar{position:absolute;top:8px;height:22px;border-radius:1px;font-size:10.5px;line-height:22px;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;
  border:0;border-left:2px solid var(--ink-3);box-sizing:border-box;color:var(--ink);background:var(--watchbg);transition:filter var(--t),box-shadow var(--t)}
.fc-bar.ip,.ev.prod{background:var(--accent-a);border-left-color:var(--accent)}
.fc-bar.pc,.ev.fcpc{background:var(--warn-a);border-left-color:var(--warn)}
.fc-bar.sup,.ev.fcsup{background:repeating-linear-gradient(45deg,transparent 0 4px,var(--hatch) 4px 8px);border-left-color:var(--line-3);color:var(--ink-2)}
.fc-bar.metal,.ev.fcmetal{background:var(--metal-a);border-left-color:var(--metal);color:var(--ink);font-style:normal}
.fc-bar.metal{font-family:var(--f-disp);font-weight:500;font-size:11.5px;letter-spacing:.06em}
.fc-bar:hover{filter:brightness(1.25);box-shadow:inset 0 0 0 1px var(--line-3);z-index:3}
:root[data-theme="light"] .fc-bar:hover{filter:brightness(.97)}
.fc-today{position:absolute;top:0;bottom:0;width:1px;background:var(--crit);z-index:2;opacity:.85}
.fc-hol{position:absolute;top:0;bottom:0;background:var(--hatch);text-decoration:none}
.fc-off{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,var(--crit-a) 0 3px,transparent 3px 6px);text-decoration:none}
u.lg{position:static;display:inline-block;width:12px;height:12px;vertical-align:middle;margin:0 4px 0 6px;border:1px solid var(--line-2)}
.fc-bar s{text-decoration:none}
.rd{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 5px 0 1px;vertical-align:1px;text-decoration:none}
.rd.ok{background:var(--good)}.rd.warn{background:var(--warn)}.rd.bad{background:var(--crit)}
.fc-bar .sl{float:right;font-size:10px;font-weight:600;color:var(--crit);margin-left:6px}
.rdchip{display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:var(--r);font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  white-space:nowrap;color:var(--ink-2);background:transparent;box-shadow:inset 0 0 0 1px var(--line-2);vertical-align:middle}
.rdchip.ok{color:var(--good);background:var(--good-a);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--good) 30%,transparent)}
.rdchip.warn{color:var(--warn);background:var(--warn-a);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 30%,transparent)}
.rdchip.bad{color:var(--crit);background:var(--crit-a);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--crit) 30%,transparent)}
.rdt{width:100%;border-collapse:collapse;font-size:13px}
.rdt td{padding:8px 6px;border-bottom:1px solid var(--line);white-space:normal}
.rdt td.src{color:var(--ink-3);font-size:11px;white-space:nowrap}
.rdt tr.no td:first-child{color:var(--crit);font-weight:500}.rdt tr.yes td:first-child{color:var(--good)}
.rdt td:last-child{white-space:nowrap}
.rdopt{display:inline-flex;align-items:center;margin-left:10px;font-size:12px;white-space:nowrap;cursor:pointer;color:var(--ink-2)}
.qbtn{float:right;display:inline-flex;gap:4px}
.qbtn button{width:28px;height:24px;border:1px solid var(--line-2);background:transparent;border-radius:var(--r);cursor:pointer;padding:0;color:var(--ink-2);font-size:10px}
.qbtn button:hover{border-color:var(--ink);color:var(--ink)}

/* ---------- foremen analytics ---------- */
.fbar{display:inline-block;width:72px;height:4px;background:var(--track);border-radius:0;overflow:hidden;vertical-align:middle}
.fbar i{display:block;height:100%;background:var(--ink-3)}
.fbar.good i{background:var(--good)} .fbar.bad i{background:var(--crit)}
.comps{display:grid;grid-template-columns:repeat(5,auto);gap:3px 8px}
.comps small{display:block;font-family:var(--f-disp);font-size:10px;letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase;margin-bottom:3px}
.comps .fbar{width:40px}
.score{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:30px;padding:0 8px;font-family:var(--f-num);font-weight:400;font-size:18px;
  border-radius:var(--r);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink);background:transparent}
.score.good{color:var(--good);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--good) 40%,transparent);background:var(--good-a)}
.score.bad{color:var(--crit);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--crit) 40%,transparent);background:var(--crit-a)}
.score.big{font-size:34px;font-weight:300;height:auto;padding:2px 12px;min-width:0;line-height:1.1}
.kpi .v .score.big{margin-top:-2px}
.comprow{display:grid;grid-template-columns:100px 1fr 40px 36px;align-items:center;gap:10px;font-size:12.5px;margin:6px 0;text-transform:capitalize;color:var(--ink-2)}
.comprow .fbar{width:100%}
.comprow b{font-family:var(--f-num);font-weight:400;font-size:14px;color:var(--ink);text-align:right}
.comprow small{text-align:right}
.rbars{display:flex;flex-direction:column;gap:8px}
.rb{display:grid;grid-template-columns:160px 1fr 56px;gap:12px;align-items:center;font-size:12.5px}
.rb small{color:var(--ink-3);margin-left:4px}
.rt{position:relative;height:10px;background:transparent;border-radius:0}
.rt::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line-2)}
.rt b{position:absolute;top:2px;height:6px;border-radius:0;background:var(--ink-3)}
.rt b.bad{background:var(--crit)} .rt b.good{background:var(--good)}
.rb1{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--ink)}
.rbc{position:absolute;top:-3px;bottom:-3px;width:0;border-left:1px dashed var(--warn)}
.rv{text-align:right;font-family:var(--f-num);font-size:14px;font-variant-numeric:tabular-nums}
svg text{font-family:var(--f-num)}
svg.trend{width:100%;height:auto;margin-top:8px;overflow:visible}
svg.trend .t1{stroke:var(--line-3);stroke-width:1}
svg.trend .tc{stroke:var(--warn);stroke-dasharray:3 4;stroke-width:1}
svg.trend .tp{fill:none;stroke:var(--accent);stroke-width:1.5}
svg.trend circle{stroke:var(--bg-2);stroke-width:2}
svg.trend circle.bad{fill:var(--crit)} svg.trend circle.good{fill:var(--good)}
svg.trend .tl{font-size:10px;fill:var(--ink-3);letter-spacing:.04em}

/* drawer trend chart (colours are hard-coded attributes in app.js) */
svg [stroke="#eceef2"]{stroke:var(--line)}
svg [fill="#5f6670"]{fill:var(--ink-3)}
svg [stroke="#067647"]{stroke:var(--good);stroke-width:1}
svg [fill="#067647"]{fill:var(--good)}
svg [stroke="#b42318"]{stroke:var(--crit);stroke-width:1}
svg [fill="#b42318"]{fill:var(--crit)}
svg path[stroke="#010160"]{stroke:var(--accent);stroke-width:1.75}
svg [fill="#010160"]{fill:var(--accent)}
/* bids "why we lose" bars (inline styles in app.js) */
div[style*="background:#eceef2"]{background:var(--track)!important;height:4px!important;border-radius:0!important}
div[style*="background:var(--navy);height:12px"]{height:4px!important;border-radius:0!important;background:var(--accent)!important}
div[style*="display:flex;align-items:center;gap:10px;margin:4px 0"]{padding:7px 0;margin:0!important;border-bottom:1px solid var(--line);font-size:13px}
div[style*="display:flex;align-items:center;gap:10px;margin:4px 0"]:last-child{border-bottom:0}

/* intelligence index */
.iqh{display:flex;gap:40px;align-items:flex-start;flex-wrap:wrap}
.iqp>.iqh>div:first-child>.sec-note:first-child{font-family:var(--f-disp);font-weight:600;font-size:12.5px;letter-spacing:var(--track-wide);color:var(--ink-2)}
.iqv{font-family:var(--f-num);font-weight:200;font-size:72px;line-height:1;margin:10px 0 8px;letter-spacing:-.01em}
.iqp .comprow{margin:8px 0}
.iqp>.iqh>div:last-child .sec-note{padding:3px 0}

/* ---------- motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}
}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .cards{grid-template-columns:1fr}
  .grid3{grid-template-columns:1fr}
}
@media (max-width:900px){
  .grid2{grid-template-columns:1fr!important}
  .panel{overflow-x:auto}
  .panel .tbl thead th{position:static}
  .iqp .comprow{grid-template-columns:minmax(0,1.3fr) 1fr 34px 32px!important}
}
@media (max-width:760px){
  :root{--gut:16px}
  body{font-size:14px}
  .top .bar{height:50px;gap:10px}
  .brand .sub,#pulled{display:none}
  .brand .mark{font-size:15px;letter-spacing:.36em;margin-right:-.36em}
  .hbtn,#refresh,.fieldlink{height:32px;padding:0 10px;font-size:11.5px;letter-spacing:.12em}
  .fieldlink .fl-long{display:none}
  .themebtn{width:32px}
  #tabs{padding:0 4px;height:42px}
  #tabs button{height:42px;padding:0 12px;font-size:12.5px}
  .filters{gap:8px;padding:12px var(--gut)}
  .filters input{flex-basis:100%;min-width:0}
  .filters select{flex:1;min-width:0}
  main{padding:20px var(--gut) 56px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{padding:14px 14px 16px}
  .kpis .kpi:first-child{padding-left:14px}
  .kpi .v{font-size:28px}
  .kpi .l{font-size:11px;letter-spacing:.12em}
  .stage{padding:0 12px 12px 0;margin:0 12px 10px 0;font-size:11.5px}
  .cards{grid-template-columns:1fr}
  .card{padding:14px 14px 14px 16px}
  h2{margin:32px 0 12px;font-size:13px}
  .schbar{gap:10px}
  .schbar>b{flex-basis:100%}
  .panel{padding:16px}
  .dhead{padding:18px 16px 14px}
  .dhead h3{font-size:19px}
  .dbody{padding:16px 16px 40px}
  .kv{font-size:12.5px}
  .sigcard{flex-direction:column}
  .sigcard img,.sigcard .nophoto{width:100%;height:160px}
  .rb{grid-template-columns:96px 1fr 48px}
  .comprow{grid-template-columns:84px 1fr 34px 30px}
  .iqv{font-size:56px}
  .health .big{font-size:32px}
  .tablewrap{max-height:none}
  .tablewrap thead th{position:static}
  .fc-lane{flex-basis:132px;padding:8px 10px}
  .board .lane{width:132px}
}
/* ---------- Ask Connects (command palette) ---------- */
.askbtn{display:flex;align-items:center;gap:10px;flex:1;max-width:520px;margin:0 20px;height:32px;padding:0 10px 0 12px;background:var(--bg-inset,rgba(255,255,255,.04));border:1px solid var(--line-2);border-radius:var(--r,2px);color:var(--ink-3);font:inherit;font-size:13px;cursor:text;transition:border-color .15s var(--ease,ease),background .15s}
.askbtn:hover{border-color:var(--line-3);color:var(--ink-2)}
.askbtn svg{width:14px;height:14px;flex:none}.askph{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.askbtn kbd,.ask-foot kbd{font:500 10px/1 var(--f-ui,Inter);letter-spacing:.08em;padding:4px 6px;border:1px solid var(--line-2);border-radius:2px;color:var(--ink-3)}
.ask{position:fixed;inset:0;z-index:60;background:var(--scrim,rgba(0,0,0,.6));backdrop-filter:blur(6px);display:flex;justify-content:center;align-items:flex-start;padding:10vh 16px 16px}
.ask[hidden]{display:none}
.ask-panel{width:min(760px,100%);max-height:78vh;display:flex;flex-direction:column;background:var(--bg-2,#111);border:1px solid var(--line-2);box-shadow:0 30px 80px rgba(0,0,0,.5);animation:askIn .16s var(--ease,ease)}
@keyframes askIn{from{opacity:0;transform:translateY(-6px) scale(.99)}to{opacity:1;transform:none}}
.ask-in{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.ask-in svg{width:18px;height:18px;color:var(--ink-3);flex:none}
.ask-in input{flex:1;background:none;border:0;outline:0;color:var(--ink);font:400 17px/1.4 var(--f-ui,Inter)}
.askgo{font:600 11px/1 var(--f-disp,inherit);letter-spacing:.14em;text-transform:uppercase;padding:9px 12px;background:var(--accent);color:var(--accent-ink);border:0;border-radius:2px;cursor:pointer}
.ask-body{overflow:auto;padding:6px 0 10px}
.ask-sec{font:600 10px/1 var(--f-disp,inherit);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);padding:14px 18px 8px}
.ask-row,.ask-ex{display:flex;align-items:baseline;gap:12px;width:100%;text-align:left;padding:9px 18px;background:none;border:0;border-left:2px solid transparent;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.ask-row:hover,.ask-row.on,.ask-ex:hover{background:var(--hover,rgba(255,255,255,.04));border-left-color:var(--accent)}
.ask-ex{color:var(--ink-2)}
.ask-k{flex:none;width:38px;font:600 10px/1 var(--f-disp,inherit);letter-spacing:.12em;color:var(--accent)}
.ask-t{flex:none;max-width:52%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ask-s{color:var(--ink-3);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ask-ans{padding:14px 20px 12px;border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.6;color:var(--ink)}
.ask-ans p{margin:0 0 8px}.ask-ans ul{margin:4px 0 10px;padding-left:18px}.ask-ans h4{margin:12px 0 6px;font:600 11px/1 var(--f-disp,inherit);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.ask-ans .tbl{margin:6px 0 10px;font-size:13px}
.chip{display:inline-block;padding:0 6px;border:1px solid var(--line-2);border-radius:2px;color:var(--accent);font-size:.92em;line-height:1.5;white-space:nowrap}.chip:hover{border-color:var(--accent);background:var(--accent-a)}
.ask-steps{margin-top:8px;font-size:11.5px;color:var(--ink-3);letter-spacing:.02em}
.ask-think{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:13px}.ask-think i{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:askDot 1s infinite ease-in-out}.ask-think i:nth-child(2){animation-delay:.15s}.ask-think i:nth-child(3){animation-delay:.3s}
@keyframes askDot{0%,80%,100%{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
.ask-foot{display:flex;justify-content:space-between;gap:12px;padding:9px 16px;border-top:1px solid var(--line);font-size:11px;color:var(--ink-3);letter-spacing:.03em}
@media (max-width:760px){.askbtn{margin:0 8px;max-width:none}.askbtn kbd,.ask-foot span:first-child{display:none}.ask{padding:8px}.ask-panel{max-height:92vh}.ask-t{max-width:60%}}
@media (prefers-reduced-motion:reduce){.ask-panel{animation:none}.ask-think i{animation:none;opacity:.7}}
/* ---------- Job page ---------- */
.jhead{display:grid;grid-template-columns:1fr auto;gap:4px 24px;padding:6px 0 14px;border-bottom:1px solid var(--line)}
.jback{grid-column:1/-1;font:600 11px/1 var(--f-disp,inherit);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.jtitle{display:flex;align-items:baseline;gap:16px;min-width:0}.jtitle h1{margin:0;font:300 30px/1.15 var(--f-num,var(--f-ui));letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis}
.jnum{font:200 38px/1 var(--f-num,var(--f-ui));color:var(--accent);letter-spacing:.02em}
.jmeta{grid-column:1;color:var(--ink-2);font-size:13px;letter-spacing:.02em}
.jact{grid-column:2;grid-row:2/4;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.jalerts{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 2px}
.jal{font-size:12px;padding:4px 9px;border:1px solid var(--line-2);border-left:2px solid var(--ink-3);color:var(--ink-2)}
.jal.s3{border-left-color:var(--crit);color:var(--crit);background:var(--crit-a)}.jal.s2{border-left-color:var(--warn);color:var(--warn);background:var(--warn-a)}.jal.s1{border-left-color:var(--accent)}.jal.s0{border-left-color:var(--good);color:var(--good)}
.jkpis{margin-top:14px}.kpi .v small{font-size:.5em;color:var(--ink-3)}
.jtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:4px 0 16px;overflow-x:auto}
.jtabs button{background:none;border:0;border-bottom:2px solid transparent;padding:12px 14px 10px;color:var(--ink-3);font:600 12px/1 var(--f-disp,inherit);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;white-space:nowrap}
.jtabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.jtabs button small{letter-spacing:.04em;text-transform:none;color:var(--warn);font-weight:500;margin-left:6px}
.jgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px}
.jsec{margin:0 0 18px}.jsec-h{display:flex;align-items:baseline;gap:10px;margin:0 0 8px;border-bottom:1px solid var(--line);padding-bottom:6px}
.jsec-h h3{margin:0;font:600 11px/1.2 var(--f-disp,inherit);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
.kvrow{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}.kvrow>span:first-child{color:var(--ink-3)}.kvrow>span:last-child{text-align:right}
.jpeople{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.jperson{border:1px solid var(--line);padding:10px 12px;cursor:pointer;transition:border-color .15s}.jperson:hover{border-color:var(--accent)}.jperson:not([onclick]){cursor:default}.jperson:not([onclick]):hover{border-color:var(--line)}.jperson b{display:block;margin:3px 0;font-weight:500}
.jnote{white-space:pre-wrap;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.jphotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.jphotos img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border:1px solid var(--line)}
.jchart{width:100%;height:auto}.jchart .ax{stroke:var(--line-2)}.jchart .ln{fill:none;stroke-width:1.6}.jchart .ln.a,.jchart .pt.a{stroke:var(--ink-3);fill:var(--ink-3)}.jchart .ln.b,.jchart .pt.b{stroke:var(--accent);fill:var(--accent)}.jchart .ln{fill:none!important}
.jchart .tl{font-size:10px;fill:var(--ink-3);font-family:var(--f-ui,Inter)}.jchart .lg.b{fill:var(--accent)}.jchart .bar{fill:var(--accent);opacity:.75}.jchart .bar:hover{opacity:1}
.jtbl td{max-width:320px}.tblwrap{overflow-x:auto}.dim{color:var(--ink-3)}td.bad,b.bad{color:var(--crit)}
.jmat{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 18px}.jmat div{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}.jmat span{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jall{columns:2;column-gap:32px}
@media (max-width:760px){.jhead{grid-template-columns:1fr}.jact{grid-column:1;grid-row:auto;justify-content:flex-start}.jtitle{flex-direction:column;gap:2px}.jtitle h1{font-size:22px}.jnum{font-size:28px}.jall{columns:1}.jgrid{grid-template-columns:1fr}}
.jkpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.jempty{margin:6px 0 20px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3);letter-spacing:.02em}

/* ---------- sign-in, user menu, users admin ---------- */
[hidden]{display:none!important}
body.signed-out .top nav,body.signed-out .filters,body.signed-out #main,body.signed-out .askbtn,body.signed-out .sync{visibility:hidden}
.login{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px;background:
  radial-gradient(120% 70% at 50% 115%,var(--accent-a),transparent 60%),var(--bg)}
.login::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,transparent,var(--line-2),transparent)}
.lg-card{position:relative;width:100%;max-width:360px;display:flex;flex-direction:column;gap:6px;padding:40px 32px 28px;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r);animation:lgIn .5s var(--ease) both}
@keyframes lgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.lg-card{animation:none}}
.lg-mark{font-family:var(--f-num);font-weight:400;font-size:22px;letter-spacing:.5em;margin-right:-.5em;text-align:center;color:var(--ink)}
.lg-sub{font-family:var(--f-disp);font-weight:500;font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-3);text-align:center;margin:8px 0 26px}
.lg-card label{font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3);margin-top:10px}
.lg-card input{height:40px;padding:0 12px;background:var(--bg-inset);border:1px solid var(--line-2);border-radius:var(--r);color:var(--ink);font:inherit;font-size:15px}
.lg-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-a)}
.lg-err{min-height:18px;color:var(--crit);font-size:13px;margin-top:6px}
.lg-go{height:42px;margin-top:6px;font-family:var(--f-disp);font-weight:600;letter-spacing:.2em;text-transform:uppercase;font-size:13px}
.lg-foot{margin-top:16px;color:var(--ink-3);font-size:12px;line-height:1.5;text-align:center}
.lg-foot a{color:var(--ink-2)}
.uchip{position:relative;display:flex;align-items:center;gap:8px}
.uav{width:30px;padding:0;border-radius:50%!important;font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.06em}
.uprev{font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);padding:4px 8px;border-radius:var(--r);white-space:nowrap}
.umenu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:280px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r);padding:6px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.umh{padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px;display:flex;flex-direction:column;gap:3px}
.umh b{font-size:14px}.umh span{color:var(--ink-3);font-size:12px}
.uroles{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.uml{display:block;padding:8px 10px 4px;font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3)}
.umsel{width:calc(100% - 20px);margin:0 10px 8px}
.umi{display:block;width:100%;text-align:left;padding:9px 10px;background:none;border:0;color:var(--ink);font:inherit;font-size:13px;cursor:pointer;border-radius:var(--r)}
.umi:hover{background:var(--hover)}
.rchip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--line-2);border-radius:var(--r);font-size:11.5px;color:var(--ink-3);white-space:nowrap;cursor:pointer;transition:all var(--t,.15s) var(--ease)}
.rchip.on{color:var(--ink);border-color:var(--accent);background:var(--accent-a)}
.rchip input{position:absolute;opacity:0;pointer-events:none}
.rchip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}
.rpick{display:flex;flex-wrap:wrap;gap:4px;max-width:520px}
.umhead{margin:28px 0 14px}.umt{font-family:var(--f-disp);font-weight:600;font-size:28px;letter-spacing:.04em;text-transform:uppercase;margin:0 0 6px}
.umform{display:grid;grid-template-columns:1.2fr 1.4fr 1.2fr 1.4fr auto;gap:8px;margin-bottom:6px}
.umform input,.umform select,.umq{height:34px}
.umq{margin-left:auto;max-width:220px}
.umtbl td{vertical-align:middle}.umtbl tr.dim td{opacity:.5}
.umact{white-space:nowrap}.umact .linkbtn{min-height:28px;padding:0 10px;font-size:12px;margin-left:4px}
/* Admin > Users: the account drawer and the person picker (public/users-ui.js) */
.uaname{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;text-align:left;text-decoration:underline dotted;text-underline-offset:3px}
.uaname:hover{color:var(--accent)}
.uapick{margin-top:4px}
.uarow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.uarow .grow{flex:1}
.uacaps{display:grid;grid-template-columns:1fr;gap:2px;margin-top:10px;max-height:340px;overflow:auto}
.uacap{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;padding:4px 2px;cursor:pointer}
.uacap input{margin-top:2px}.uacap input:disabled+span{opacity:.75}
.uapeople{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.uaperson{display:block;text-align:left;width:100%;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;color:var(--ink);font:inherit;cursor:pointer;min-height:44px}
.uaperson:hover,.uaperson:focus-visible{border-color:var(--accent)}.uaperson.on{border-color:var(--accent);background:var(--accent-a)}
.umtoast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:90;background:var(--bg-2);border:1px solid var(--accent);color:var(--ink);padding:10px 16px;border-radius:var(--r);font-size:13px;max-width:90vw;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.umtoast.bad{border-color:var(--bad,#e5484d)}
.ok-b{border-left-color:var(--good);background:var(--good-a)}
.tpw{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;padding:2px 6px;border:1px solid var(--line-2);border-radius:var(--r);user-select:all}
.mxwrap{overflow-x:auto;border:1px solid var(--line)}
.mx th:not(:first-child),.mx td.mxc{text-align:center;width:110px}
.mx td.mxc input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.mx tr.mxg td{background:var(--bg-inset);font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3);padding-top:14px}
.mx tbody tr:not(.mxg):hover td{background:var(--hover)}
tr.bad-r td{color:var(--crit)}
@media (max-width:900px){.umform{grid-template-columns:1fr 1fr}.umform .linkbtn{grid-column:1/-1}}
.umform input,.umform select{width:100%;padding:0 10px;background:var(--bg-inset);border:1px solid var(--line-2);border-radius:var(--r);color:var(--ink);font:inherit;font-size:13px}
.umform input:focus,.umform select:focus{outline:none;border-color:var(--accent)}

/* =====================================================================
   Home
   ===================================================================== */
.home{--hr:360px}
/* hero */
.hh{position:relative;min-height:340px;margin:-4px 0 0;padding:44px 40px 0;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto auto;overflow:hidden;
  border:1px solid var(--line);background:var(--bg-inset);color:#f2f2f4;isolation:isolate}
.hh-bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center 40%;transition:opacity .38s var(--ease);transform:scale(1.02)}
.hh::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(2,3,40,.92) 0%,rgba(2,3,40,.66) 45%,rgba(2,3,40,.25) 100%),linear-gradient(0deg,rgba(2,3,40,.9) 0%,rgba(2,3,40,0) 45%)}
.hh-grid{position:absolute;inset:0;z-index:-2;background:radial-gradient(90% 120% at 85% 0%,rgba(184,211,255,.14),transparent 60%),
  repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 96px),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 96px)}
.hh-in{align-self:end;padding-bottom:26px;min-width:0}
.hh-k{font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:rgba(242,242,244,.62)}
.hh-h{font-family:var(--f-num);font-weight:300;font-size:clamp(34px,4.6vw,64px);line-height:1.02;letter-spacing:-.01em;margin:12px 0 12px;color:#fff}
.hh-s{font-size:15px;color:rgba(242,242,244,.8);white-space:pre-wrap}
.hh-25{grid-column:2;grid-row:1;align-self:start;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 12px;border:1px solid rgba(255,255,255,.22);background:rgba(5,6,8,.35);backdrop-filter:blur(6px)}
.hh-25 .n{font-family:var(--f-num);font-weight:200;font-size:44px;line-height:.9;color:#fff}
.hh-25 .t{font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(242,242,244,.7);line-height:1.5}
.hh-25 .t b{color:#fff;font-weight:600}
.hh-cap{grid-column:2;grid-row:2;align-self:end;justify-self:end;padding-bottom:26px;font-size:12px;color:rgba(242,242,244,.7);display:flex;align-items:center;gap:8px}
.hh-cap a{color:#fff}.hh-nx{width:26px;height:26px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;border-radius:50%;cursor:pointer}
.hh-nx:hover{background:rgba(255,255,255,.12)}
.hh-wx{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:repeat(6,1fr);margin:0 -40px;border-top:1px solid rgba(255,255,255,.14);background:rgba(5,6,8,.55);backdrop-filter:blur(8px)}
.wxd{padding:12px 16px 14px;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;border-left:1px solid rgba(255,255,255,.1)}
.wxd:first-child{border-left:0;padding-left:40px}
.wxn{font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(242,242,244,.6)}
.wxt{grid-column:2;justify-self:end;font-family:var(--f-num);font-size:15px;color:#fff}.wxt small{margin-left:4px;color:rgba(242,242,244,.5);font-size:12px}
.wxr{grid-column:1/-1;height:2px;background:rgba(255,255,255,.12)}.wxr i{display:block;height:100%;background:#b8d3ff}
.wxp{grid-column:1/-1;font-size:11.5px;color:rgba(242,242,244,.55)}
.wxd.wet .wxr i{background:#e2aa52}.wxd.wet .wxp{color:#e2aa52}
/* RAMCON pride (Kyle 10/10: "more RAMCON, more prideful"): gold rule, the brand's three words, the 25 medallion, the numbers band */
.hh{--gold:var(--celebrate);min-height:400px;box-shadow:inset 0 3px 0 var(--gold)}
.hh-h{text-shadow:0 2px 24px rgba(2,3,40,.55)}
.hh-tag{display:inline-flex;align-items:center;gap:14px;margin-top:20px;font-family:"Saira Stencil One",var(--f-disp);font-size:16px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.hh-tag i{display:inline-block;width:6px;height:6px;background:var(--gold);transform:rotate(45deg);opacity:.75}
.hh-25{border-color:color-mix(in srgb,var(--gold) 45%,transparent);background:rgba(2,3,40,.55)}
.hh-25 .n{font-family:"Saira Stencil One",var(--f-num);font-weight:400;font-size:54px;color:var(--gold);letter-spacing:.02em}
.hh-25 .t em{display:block;margin-top:2px;font-style:normal;font-weight:500;letter-spacing:.2em;color:rgba(242,242,244,.55)}
.hpride{--gold:var(--celebrate);position:relative;padding:24px 40px 26px;background:linear-gradient(180deg,#05074a 0%,#020328 100%);color:#f2f2f4;border:1px solid var(--line);border-top:0;overflow:hidden}
.hpride::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:repeating-linear-gradient(-45deg,var(--gold) 0 12px,#020328 12px 24px);opacity:.85}
.hpride::after{content:"R";position:absolute;right:28px;bottom:-46px;font-family:"Black Ops One",var(--f-disp);font-size:220px;line-height:1;color:rgba(255,255,255,.035);pointer-events:none}
.hp-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 18px;margin:6px 0 18px}
.hp-k{font-family:"Saira Stencil One",var(--f-disp);font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.hp-s{font-size:13px;color:rgba(242,242,244,.62)}
.hp-row{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.hp-f{padding:2px 24px 0;border-left:1px solid rgba(255,255,255,.12)}.hp-f:first-child{border-left:0;padding-left:0}
.hp-f b{display:block;font-family:"Saira Stencil One",var(--f-num);font-weight:400;font-size:clamp(34px,3.8vw,56px);line-height:1;color:#fff;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.hp-f span{display:block;margin-top:10px;font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(242,242,244,.62)}
.hpride + .dp{margin-top:22px}
.hp-today{margin:28px 0 0;padding:0 0 10px;font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:12px}
.hp-today::after{content:"";flex:1;height:1px;background:var(--line)}
/* Fresh from the air (public/home-aerials.js): the newest RAMCON aerials, between the numbers and Today */
.hair{margin:28px 0 0}
.hair-h{padding:0 0 10px;font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:12px}
.hair-h::after{content:"";flex:1;height:1px;background:var(--line);order:1}
.hair-all{order:2;letter-spacing:.08em;text-transform:none;font-size:12.5px;color:var(--ink-2);text-decoration:none;white-space:nowrap}.hair-all:hover{color:var(--ink)}
.hair-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}
.hair-t{display:flex;flex-direction:column;min-width:0;padding:0;margin:0;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-2);color:var(--ink);text-align:left;cursor:pointer;overflow:hidden;font:inherit}
.hair-t:hover,.hair-t:focus-visible{border-color:var(--ink-3)}.hair-t:focus-visible{outline:2px solid var(--focus,var(--gold));outline-offset:2px}
.hair-i{display:block;aspect-ratio:4/3;background:var(--bg-inset,rgba(255,255,255,.04));overflow:hidden}
.hair-i img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s}.hair-t:hover .hair-i img{transform:scale(1.04)}
.hair-c{display:block;padding:7px 9px 8px;min-width:0}
.hair-c b{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hair-c small{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-3)}
@media (max-width:1100px){.hair-row{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.hair-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px}.hair-t{flex:0 0 42%;scroll-snap-align:start}}
@media (prefers-reduced-motion:reduce){.hair-i img{transition:none}.hair-t:hover .hair-i img{transform:none}}
/* pulse */
.hpulse{margin:0 0 30px;border:1px solid var(--line)}
.hpulse .kpi{padding:16px 20px 18px}.hpulse .kpi:first-child{padding-left:20px}
.hpulse .kpi .v{font-size:clamp(26px,2.2vw,34px);margin-top:8px}
.kpi.go{cursor:pointer;transition:background var(--t) var(--ease)}.kpi.go:hover{background:var(--hover)}
.kpi.go:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
/* columns */
.hcols{display:grid;grid-template-columns:minmax(0,1fr) var(--hr);gap:32px;align-items:start}
.hmain{min-width:0}
.hrail{display:flex;flex-direction:column;gap:18px;min-width:0}
/* composer */
.hc{border:1px solid var(--line-2);background:var(--bg-2);margin:0 0 18px}
.hc-open{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;background:none;border:0;color:var(--ink-3);font:inherit;font-size:15px;text-align:left;cursor:text}
.hc-open:hover{color:var(--ink-2)}
.hc.open{padding:14px 16px 12px}
.hc-kinds,.hfil{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.hc-kinds button,.hfil button{height:30px;padding:0 12px;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--ink-2);font:inherit;font-size:12.5px;cursor:pointer;transition:all var(--t) var(--ease)}
.hc-kinds button:hover,.hfil button:hover{border-color:var(--line-3);color:var(--ink)}
.hc-kinds button.on,.hfil button.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.hfil{margin:6px 0 16px}
.hc-title,.hc-body,.hc-job input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;padding:10px 2px}
.hc-title{font-family:var(--f-num);font-size:22px;font-weight:400}
.hc-body{font-size:15px;line-height:1.55;resize:vertical;min-height:92px}
.hc-title:focus,.hc-body:focus,.hc-job input:focus{outline:none;border-bottom-color:var(--accent)}
.hc-bar{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}.hc-bar .grow{flex:1}
.linkbtn.sm{min-height:30px;padding:0 12px;font-size:12px}
.hc-file{position:relative;overflow:hidden}.hc-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.hc-ph,.hc-jph{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 2px}
.hc-ph span{position:relative}.hc-ph img,.hc-jph img{width:84px;height:64px;object-fit:cover;display:block;border:1px solid var(--line-2)}
.hc-ph button{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:1px solid var(--line-3);background:var(--bg);color:var(--ink);cursor:pointer;line-height:1}
.hc-jph button{padding:0;border:2px solid transparent;background:none;cursor:pointer;opacity:.6;transition:all var(--t)}.hc-jph button.on{border-color:var(--accent);opacity:1}
.hc-job{margin:0 0 6px}.hc-jobs{display:flex;flex-direction:column;max-height:240px;overflow:auto}
.hc-jobs button{display:flex;justify-content:space-between;gap:10px;padding:9px 4px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.hc-jobs button:hover{background:var(--hover)}.hc-jobs small{color:var(--ink-3)}
.hc-jobsel{display:flex;align-items:center;gap:10px;font-size:15px;margin:2px 0 8px}
.hc-err{color:var(--crit);font-size:13px;margin-top:8px}
/* avatars */
.av{flex:none;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-3);font-family:var(--f-disp);font-weight:600;font-size:13px;letter-spacing:.04em;color:var(--ink);background:var(--bg-3);object-fit:cover}
.av.sm{width:28px;height:28px;font-size:11px}.av.ghost{visibility:hidden}
/* posts */
.hfeed{display:flex;flex-direction:column;gap:14px}
.post{border:1px solid var(--line);background:var(--bg);transition:border-color var(--t) var(--ease)}
.post:hover{border-color:var(--line-2)}
.post.pinned{border-color:color-mix(in srgb,var(--gold) 40%,var(--line));box-shadow:inset 0 2px 0 var(--gold)}
.post-in{padding:18px 20px 12px}
.post header{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.pmeta{display:flex;flex-direction:column;min-width:0;flex:1}.pmeta b{font-size:14px}.pmeta>span{font-size:12px;color:var(--ink-3)}
/* the post's kind (was .pk, which the meeting packet also uses — that collision stacked and centered every post header) */
.pkind{font-family:var(--f-disp);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;color:var(--ink-2)}
.k-news .pkind{color:var(--accent)}.k-safety .pkind{color:var(--warn)}.k-spotlight .pkind{color:var(--good)}.k-idea .pkind{color:var(--data)}
.pin{color:var(--accent)}
.ptitle{font-family:var(--f-num);font-weight:400;font-size:22px;line-height:1.25;margin:0 0 8px;letter-spacing:-.005em}
.k-article .ptitle{font-size:26px}
.pbody{font-size:15px;line-height:1.6;color:var(--ink)}.pbody p{margin:0 0 10px}.pbody ul{margin:0 0 10px;padding-left:20px}.pbody li{margin:3px 0}
.pbody .more{background:none;border:0;color:var(--accent);font:inherit;padding:0;cursor:pointer}
.ment{color:var(--accent);font-weight:500}.jref{font-variant-numeric:tabular-nums}
.post-hero{position:relative;aspect-ratio:21/9;overflow:hidden;cursor:zoom-in;background:var(--bg-3)}
.post-hero img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}.post-hero:hover img{transform:scale(1.015)}
.ph-job{position:absolute;left:16px;bottom:14px;font-family:var(--f-num);font-size:30px;font-weight:300;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.pjob{display:inline-block;margin:0 0 10px;font-size:13px}
.pfacts{display:flex;flex-wrap:wrap;gap:0;margin:4px 0 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pfacts span{display:flex;flex-direction:column;gap:2px;padding:9px 18px 9px 0;margin-right:18px;font-size:14px;font-family:var(--f-num)}
.pfacts small{font-family:var(--f-disp);font-weight:600;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.pph{display:grid;gap:4px;margin:6px 0 10px}.pph.n1{grid-template-columns:1fr}.pph.n2{grid-template-columns:1fr 1fr}.pph.n3{grid-template-columns:2fr 1fr 1fr}.pph.n4{grid-template-columns:repeat(4,1fr)}
.pph button{padding:0;border:0;background:var(--bg-3);cursor:zoom-in;aspect-ratio:4/3;overflow:hidden}.pph.n1 button{aspect-ratio:16/9}
.pph img{width:100%;height:100%;object-fit:cover;display:block}
.post footer{display:flex;gap:4px;align-items:center;border-top:1px solid var(--line);padding-top:8px;margin-top:4px}
.react,.vote{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;background:none;border:1px solid transparent;border-radius:var(--r);color:var(--ink-3);font:inherit;font-size:13px;cursor:pointer;transition:all var(--t) var(--ease)}
.react svg{width:15px;height:15px}.react:hover,.vote:hover{color:var(--ink);background:var(--hover)}
.react.on{color:var(--accent)}.react b,.vote b{color:var(--ink);font-weight:600}
.vote{border-color:var(--line-2);margin-right:6px}.vote svg{width:11px;height:11px}.vote.on{border-color:var(--data);color:var(--data)}.vote.on b{color:var(--data)}
.istat{font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap}
.istat.s-under-review{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.istat.s-doing-it{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.istat.s-done{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,transparent)}.istat.s-not-now{opacity:.6}
.snote{font-size:13px;color:var(--ink-2);border-left:2px solid var(--data);padding:4px 10px;margin:0 0 8px}
.pmenu{position:relative}.pm-b{width:30px;height:30px;background:none;border:1px solid transparent;color:var(--ink-3);cursor:pointer;letter-spacing:.1em;border-radius:var(--r)}.pm-b:hover{border-color:var(--line-2);color:var(--ink)}
.pm-l{position:absolute;right:0;top:34px;z-index:5;min-width:200px;background:var(--bg-2);border:1px solid var(--line-2);padding:4px;box-shadow:0 12px 30px rgba(0,0,0,.3)}
.pm-l button{display:block;width:100%;text-align:left;padding:8px 10px;background:none;border:0;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.pm-l button:hover{background:var(--hover)}.pm-l .bad{color:var(--crit)}
.pcm{border-top:1px solid var(--line);margin-top:8px;padding-top:10px;display:flex;flex-direction:column;gap:10px}
.cm{display:flex;gap:10px;font-size:14px}.cm b{font-size:13px}.cm small{color:var(--ink-3);font-size:11.5px}.cm p{margin:2px 0 0}
.cmx{background:none;border:0;color:var(--ink-3);cursor:pointer}.cmx:hover{color:var(--crit)}
.cm-in{display:flex;gap:8px;align-items:center}.cm-in input{flex:1;height:34px;padding:0 10px;background:var(--bg-inset);border:1px solid var(--line-2);color:var(--ink);font:inherit;font-size:14px;border-radius:var(--r)}
.cm-in input:focus{outline:none;border-color:var(--accent)}
/* the wire */
.wire{border:1px solid var(--line);background:var(--bg-inset)}
.wire-h{display:flex;align-items:baseline;gap:10px;padding:12px 16px 8px}
.wire-h span{font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.24em;text-transform:uppercase}.wire-h small{color:var(--ink-3);font-size:12px}
.wrow{display:grid;grid-template-columns:88px minmax(0,1fr) auto auto;grid-template-areas:"k t d b" "k s d b";column-gap:12px;align-items:center;padding:10px 16px;border-top:1px solid var(--line)}
.wire.solo .wrow{border-top:0}
.wk{grid-area:k;font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.k-won .wk{color:var(--good)}.k-mobilized .wk{color:var(--accent)}.k-completed .wk{color:var(--ink)}.k-warranty .wk{color:var(--data)}
.wt{grid-area:t;color:var(--ink);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws{grid-area:s;color:var(--ink-3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wd{grid-area:d;color:var(--ink-3);font-size:12px;white-space:nowrap}.wrow .linkbtn{grid-area:b}
.wire-more{display:block;width:100%;padding:10px 16px;background:none;border:0;border-top:1px solid var(--line);color:var(--accent);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.hempty{padding:40px 20px;text-align:center;color:var(--ink-3);border:1px dashed var(--line-2)}
/* rail */
.rc{border:1px solid var(--line);padding:14px 16px 12px;background:var(--bg)}
.hrail .rc{max-width:none;margin:0}   /* RECON's .rc (centered, 980px) must not shrink the home rail cards */
.rc-h{display:flex;align-items:center;gap:10px;margin:0 0 10px}.rc-h h4{margin:0;flex:1;font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.rrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);color:var(--ink);font-size:13px;text-decoration:none!important}
a.rrow:hover{background:var(--hover)}
.rrow>span{display:flex;flex-direction:column;min-width:0}.rrow small{color:var(--ink-3);font-size:11.5px}
.rrow .rj{margin-left:auto;text-align:right;align-items:flex-end}.rrow .rj,.rrow .it{overflow:hidden;text-overflow:ellipsis}
.rrow .iv{flex:none;width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line-2);font-family:var(--f-num);font-size:15px}
.rrow .it small.istat{align-self:flex-start;margin-top:4px;font-size:9.5px;padding:2px 6px}
.rrow.ann .yrs{margin-left:auto;align-items:flex-end}.rrow.ann .yrs b{font-family:var(--f-num);font-weight:300;font-size:22px;line-height:1}
.rrow .cd{flex:none;width:40px;align-items:center;border-right:1px solid var(--line);margin-right:2px}.rrow .cd b{font-family:var(--f-num);font-weight:300;font-size:20px;line-height:1}
.rc-cta{margin-top:10px;width:100%}
.onl{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-3)}.onl i{width:7px;height:7px;border-radius:50%;background:var(--good)}
.rchan{display:flex;gap:4px;overflow-x:auto;margin:0 -2px 8px;scrollbar-width:none}
.rchan button{flex:none;height:26px;padding:0 9px;border:1px solid var(--line);background:none;color:var(--ink-3);font:inherit;font-size:12px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.rchan button.on{color:var(--ink);border-color:var(--line-3)}.rchan i{font-style:normal;font-size:10.5px;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:0 5px;line-height:16px}
.rmsgs{max-height:300px;overflow:auto;margin:0 -4px;padding:0 4px;scrollbar-width:thin}
.rsend{display:flex;gap:6px;margin-top:8px}.rsend input{flex:1;min-width:0;height:32px;padding:0 10px;background:var(--bg-inset);border:1px solid var(--line-2);color:var(--ink);font:inherit;font-size:13px;border-radius:var(--r)}
.rsend input:focus{outline:none;border-color:var(--accent)}
/* messages (rail + dock) */
.msg{position:relative;display:flex;gap:10px;padding:6px 4px 2px}.msg.cont{padding-top:0}
.msg .mb{min-width:0;flex:1}.mh{display:flex;align-items:baseline;gap:8px}.mh b{font-size:13px}.mh time{font-size:11px;color:var(--ink-3)}
.mt{font-size:14px;line-height:1.45;overflow-wrap:anywhere}.mt p{margin:0 0 2px}.mt ul{margin:2px 0;padding-left:18px}
.msg .mx{position:absolute;right:2px;top:4px;opacity:0;background:none;border:0;color:var(--ink-3);cursor:pointer}.msg:hover .mx{opacity:1}.msg .mx:hover{color:var(--crit)}
.mday{display:flex;align-items:center;gap:10px;margin:10px 0 4px;font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.mday::before,.mday::after{content:"";flex:1;height:1px;background:var(--line)}
.mempty{color:var(--ink-3);font-size:13px;padding:14px 4px}
/* header chat button + dock */
.chatbtn{position:relative;gap:6px;padding:0 10px}.chatbtn svg{width:14px;height:14px}
.cbadge{min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font:600 10px/16px var(--f-ui);text-align:center}
.cbadge.men{background:var(--warn)}
#chatDock{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);z-index:40;background:var(--bg);box-shadow:var(--shadow);display:flex;flex-direction:column;transform:translateX(100%);visibility:hidden;transition:transform 220ms var(--ease),visibility 0s 220ms}
#chatDock.open{transform:none;visibility:visible;transition:transform 220ms var(--ease),visibility 0s}
.dk-h{display:flex;align-items:center;gap:12px;height:56px;padding:0 16px;border-bottom:1px solid var(--line)}
.dk-h>div{flex:1;display:flex;flex-direction:column;min-width:0}.dk-h b{font-size:15px}.dk-h small{color:var(--ink-3);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dk-b{flex:1;display:grid;grid-template-columns:150px 1fr;min-height:0}
.dk-c{border-right:1px solid var(--line);padding:8px 6px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.dk-c button{display:flex;align-items:center;justify-content:space-between;gap:6px;height:32px;padding:0 10px;background:none;border:0;border-radius:var(--r);color:var(--ink-3);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.dk-c button:hover{background:var(--hover);color:var(--ink)}.dk-c button.on{background:var(--bg-3);color:var(--ink)}.dk-c button.un{color:var(--ink);font-weight:600}
.dk-c i{font-style:normal;font-size:10.5px;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:0 6px;line-height:17px}.dk-c i.men{background:var(--warn)}
.dk-c .addc{color:var(--accent);margin-top:8px}
.dk-m{display:flex;flex-direction:column;min-height:0}
.dk-msgs{flex:1;overflow:auto;padding:8px 14px}
.dk-in{display:flex;gap:8px;align-items:flex-end;padding:10px 14px;border-top:1px solid var(--line)}
.dk-in textarea{flex:1;min-height:38px;max-height:160px;padding:9px 10px;background:var(--bg-inset);border:1px solid var(--line-2);color:var(--ink);font:inherit;font-size:14px;resize:none;border-radius:var(--r);field-sizing:content}
.dk-in textarea:focus{outline:none;border-color:var(--accent)}
.dk-on{padding:0 14px 10px;font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dk-on:not(:empty)::before{content:"Online: "}
/* lightbox + toast */
.lbox{position:fixed;inset:0;z-index:90;background:rgba(3,3,4,.94);display:grid;place-items:center;cursor:zoom-out}
.lbox img{max-width:94vw;max-height:88vh;object-fit:contain;cursor:default}
.lbox button{position:absolute;width:44px;height:44px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(0,0,0,.4);color:#fff;font-size:18px;cursor:pointer}
.lbx{top:18px;right:18px}.lbp{left:18px;top:50%}.lbn{right:18px;top:50%}.lbc{position:absolute;bottom:18px;color:rgba(255,255,255,.7);font-size:13px}
.htoast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:50;max-width:min(560px,92vw);padding:10px 16px;border:1px solid var(--line-3);background:var(--bg-2);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* light theme: hero stays dark (photo), everything else follows tokens */
/* responsive */
@media (max-width:1180px){.hcols{grid-template-columns:1fr}.hrail{position:static;max-height:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.hmain{max-width:none}}
@media (max-width:760px){
  .hh{padding:28px 16px 0;min-height:300px;grid-template-columns:1fr}.hh-25{grid-column:1;grid-row:1;justify-self:start;margin-bottom:18px}.hh-25 .n{font-size:32px}
  .hh-cap{display:none}.hh-wx{margin:0 -16px;grid-template-columns:repeat(3,1fr)}.wxd:first-child{padding-left:16px}.wxd:nth-child(4){border-left:0;padding-left:16px}.wxd:nth-child(n+4){border-top:1px solid rgba(255,255,255,.1)}
  .hpulse{grid-template-columns:repeat(2,1fr)}.hpulse .kpi:first-child{padding-left:20px}
  .hh-tag{font-size:13px;letter-spacing:.24em;gap:10px}.hh-25 .n{font-size:38px}
  .hpride{padding:20px 16px 22px}.hp-row{grid-template-columns:repeat(2,1fr);row-gap:18px}.hp-f{padding:0 0 0 14px}.hp-f:nth-child(odd){border-left:0;padding-left:0}.hpride::after{font-size:150px;bottom:-30px;right:10px}
  .wrow{grid-template-columns:1fr auto;grid-template-areas:"k d" "t t" "s s" "b b";row-gap:2px}.wrow .linkbtn{justify-self:start;margin-top:6px}
  .dk-b{grid-template-columns:1fr}.dk-c{flex-direction:row;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.dk-c button{flex:none}
  .chatbtn .cl{display:none}.pph.n3,.pph.n4{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){.hh-bg,.post-hero img,#chatDock{transition:none}}

.rrow.roof{flex-direction:column;align-items:stretch;gap:2px}.rrow.roof .l1{display:flex;justify-content:space-between;gap:8px;flex-direction:row}
.rrow.roof .l2{color:var(--ink-2);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.hmain .post,.hmain .wire,.hmain .hc{max-width:none}
@media (max-width:560px){#themeBtn{display:none}.fieldlink .fl-long{display:none}.top .bar{gap:10px}.chatbtn{padding:0 8px}}

/* =====================================================================
   App footer + tools
   ===================================================================== */
.afoot{border-top:1px solid var(--line);background:var(--bg-inset);margin-top:56px}
.afoot .fin{max-width:1680px;margin:0 auto;padding:34px var(--gut) 26px}
.ftop{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding-bottom:26px;border-bottom:1px solid var(--line)}
.fbrand{display:flex;align-items:baseline;gap:16px;flex:1;min-width:240px}
.fbrand .mark{font-family:var(--f-num);font-size:20px;letter-spacing:.42em;color:var(--ink)}
.fbrand .sub{font-family:var(--f-disp);font-weight:500;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3)}
.fstat{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}
.fcols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px;padding:28px 0 30px}
.fcol h5{margin:0 0 12px;font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-2)}
.fcol a{display:flex;align-items:baseline;gap:8px;padding:5px 0;color:var(--ink-3);font-size:13px;text-decoration:none;transition:color var(--t) var(--ease)}
.fcol a:hover{color:var(--ink)}
.fcol a i{font-style:normal;font-size:10.5px;color:var(--ink-3);opacity:.7}
.fcol a i.cl{font-family:var(--f-disp);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:9px;border:1px solid var(--line-2);padding:1px 5px;opacity:.8}
.fbot{display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3)}
.fbot a{color:var(--ink-3)}.fbot a:hover{color:var(--ink)}.fbot .grow{flex:1}
.flink{background:none;border:0;color:var(--accent);font:inherit;font-size:12px;cursor:pointer;padding:0}
@media (max-width:1100px){.fcols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.fcols{grid-template-columns:1fr 1fr}.afoot .fin{padding:26px 16px 22px}}
/* tool pages */
.thead{margin:6px 0 18px}.tt{font-family:var(--f-disp);font-weight:600;font-size:30px;letter-spacing:.05em;text-transform:uppercase;margin:6px 0 0}
.tbar{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;margin:0 0 18px}.tbar input[type=search]{max-width:360px;flex:1;min-width:220px}
.rdy{font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border:1px solid var(--line-2)}
.rdy.r-ready{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,transparent)}.rdy.r-at-risk{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.rdy.r-not-ready,.rdy.r-blocked{color:var(--crit);border-color:color-mix(in srgb,var(--crit) 40%,transparent)}
.wxnow{display:flex;gap:30px;margin:4px 0 22px}.wxnow .l{font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.wxnow .v{font-family:var(--f-num);font-weight:200;font-size:64px;line-height:1.05}.wxnow .s{color:var(--ink-2)}
.wxh{display:grid;grid-template-columns:repeat(14,1fr);gap:4px;align-items:end;height:150px}
.wxh>div{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:11px;color:var(--ink-3)}
.wxh i{display:block;width:70%;background:var(--accent);opacity:.55;min-height:3px}.wxh .wet i{background:var(--warn);opacity:.9}
.wxh b{font-weight:500;color:var(--ink-2);margin-top:4px}.wxh small{font-size:10.5px}
.wxt10 tr.wet td{background:var(--warn-a)}.rbar{display:inline-block;width:60px;height:4px;background:var(--track);vertical-align:middle;margin-right:6px}.rbar i{display:block;height:100%;background:var(--accent)}
.wxt10 tr.wet .rbar i{background:var(--warn)}
.dir{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
/* K2 (Kyle 10/19): the directory in groups — Office, Operations, Field — with a jump row */
.dir-jump{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin:2px 0 4px;font-size:12.5px}
.dir-jump>span{font:600 10.5px var(--f-disp);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3)}
.dir-jump button{min-height:30px;padding:0;border:0;background:none;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.dir-jump button:hover,.dir-jump button:focus-visible{text-decoration-color:currentColor}.dir-jump small{margin-left:3px;color:var(--ink-3)}
.dir-g{margin:18px 0 0;scroll-margin-top:140px}
.dir-h{display:flex;align-items:baseline;gap:10px;margin:0 0 10px;padding:0 0 8px;border-bottom:1px solid var(--line);font:600 13px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
.dir-h small{font:500 12px var(--f-num);letter-spacing:0;color:var(--ink-3)}
.dcard{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);background:var(--bg)}
.dcard:hover{border-color:var(--line-2)}.av.lg{width:48px;height:48px;font-size:15px}
.di{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.di b{font-size:15px}.di>span{color:var(--ink-2);font-size:13px}.di small{color:var(--ink-3);font-size:12px}
.dl{display:flex;flex-direction:column;margin-top:6px;font-size:13px}.dl a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dy{margin-left:auto;text-align:right;font-family:var(--f-num);font-weight:300;font-size:22px;line-height:1}.dy small{display:block;font-size:10.5px;color:var(--ink-3);font-family:var(--f-ui)}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.gal figure{margin:0;border:1px solid var(--line);background:var(--bg)}.gal button{display:block;width:100%;padding:0;border:0;background:var(--bg-3);cursor:zoom-in;aspect-ratio:4/3;overflow:hidden}
.gal img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}.gal button:hover img{transform:scale(1.03)}
.gal figcaption{padding:8px 10px;display:flex;flex-direction:column;gap:2px;font-size:13px}.gal small{color:var(--ink-3);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fed .fed-in{width:min(1100px,94vw);max-height:90vh;overflow:auto;background:var(--bg);border:1px solid var(--line-2);padding:22px;cursor:default;color:var(--ink)}
.fed h3{margin:0 0 6px;font-family:var(--f-disp);letter-spacing:.14em;text-transform:uppercase}
.fed-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:14px 0}
.fed-cols input,.fed-cols textarea{width:100%;background:var(--bg-inset);border:1px solid var(--line-2);color:var(--ink);font:inherit;font-size:12.5px;padding:8px}
.fed-cols input{margin-bottom:6px;font-weight:600}
@media (max-width:760px){.wxh{grid-template-columns:repeat(7,1fr);height:auto;row-gap:10px}.wxh>div{height:90px}.dir{grid-template-columns:1fr}}
.fed{position:fixed;inset:0;z-index:90;background:rgba(3,3,4,.72);display:grid;place-items:center}
/* footer v2 — lean */
.afoot .fin{padding:40px var(--gut) 22px}
.fmain{display:grid;grid-template-columns:minmax(260px,1.1fr) 2fr;gap:40px;padding-bottom:30px}
.fbrand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.fbrand .sub{letter-spacing:.24em}
.fbrand address{font-style:normal;font-size:12.5px;line-height:1.7;color:var(--ink-3);margin-top:10px}
.fbrand address a{color:var(--ink-3)}.fbrand address a:hover{color:var(--ink)}
.fmain .fcols{grid-template-columns:repeat(3,minmax(0,1fr));padding:4px 0 0;gap:24px}
.fcol a{padding:4px 0}
.fcol a i{font-size:10px;opacity:.5}
.fbot{gap:8px 22px}
@media (max-width:900px){.fmain{grid-template-columns:1fr;gap:26px}}
@media (max-width:560px){.fmain .fcols{grid-template-columns:1fr 1fr}}

/* =====================================================================
   Bid pipeline + main bid page
   ===================================================================== */
.bsub{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 14px}.bsub .hfil{margin:0}
.bkpi{margin-bottom:18px}
.bboard{display:grid;grid-template-columns:repeat(5,minmax(230px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px;align-items:start}
.bcol{background:var(--bg-inset);border:1px solid var(--line);min-width:0;display:flex;flex-direction:column;max-height:calc(100vh - var(--hdr-h,100px) - 40px)}
.bcol header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:12px 12px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg-inset)}
.bcol h3{margin:0;font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.bcol header .count{font-family:var(--f-num);font-size:13px;color:var(--ink-2)}.bcol .bval{margin-left:auto;font-family:var(--f-num);font-size:13px;color:var(--ink)}
.bcol header small{flex-basis:100%;color:var(--ink-3);font-size:11.5px}
.bcol.c-won header{box-shadow:inset 0 2px 0 var(--good)}.bcol.c-bidding header{box-shadow:inset 0 2px 0 var(--accent)}.bcol.c-submitted header{box-shadow:inset 0 2px 0 var(--data)}.bcol.c-closed header{box-shadow:inset 0 2px 0 var(--line-3)}.bcol.c-requested header{box-shadow:inset 0 2px 0 var(--warn)}
.bcards{display:flex;flex-direction:column;gap:8px;padding:10px;overflow-y:auto}
.bcard{background:var(--bg);border:1px solid var(--line);padding:11px 12px 10px;cursor:pointer;transition:border-color var(--t) var(--ease),transform var(--t) var(--ease)}
.bcard:hover{border-color:var(--line-3)}.bcard:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.bcard h4{margin:6px 0 4px;font-size:14px;font-weight:600;line-height:1.3}
.bcard h4 .bnew{display:inline-block;margin-right:4px;padding:1px 6px;border-radius:var(--r);background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:700;vertical-align:1px}
.bc1{display:flex;align-items:center;gap:8px}.bprice{margin-left:auto;font-family:var(--f-num);font-weight:400;font-size:14px}
.bc2{font-size:12px;color:var(--ink-3);line-height:1.4}.bc2 .ok{color:var(--good)}
.bc3{display:flex;align-items:center;gap:8px;margin-top:8px}.gcs{font-size:12px;color:var(--ink-2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gcs.none{color:var(--ink-3);font-style:italic}
.est{flex:none;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-3);display:grid;place-items:center;font-family:var(--f-disp);font-weight:600;font-size:10px}
.bnext{display:block;width:100%;margin-top:10px;padding:7px 8px;border:1px solid var(--line-2);background:transparent;color:var(--ink);font:inherit;font-size:12px;text-align:left;cursor:pointer;border-radius:var(--r)}
.bnext:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.bempty{color:var(--ink-3);font-size:12.5px;padding:14px 4px;text-align:center}
.due{font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.due.soon{color:var(--warn)}.due.late{color:var(--crit)}.due.none{opacity:.6}
.bst{display:inline-block;font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap}
.bst.s-won{color:var(--good);border-color:color-mix(in srgb,var(--good) 45%,transparent)}.bst.s-lost{color:var(--crit);border-color:color-mix(in srgb,var(--crit) 40%,transparent)}
.bst.s-bidding{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.bst.s-submitted-pending,.bst.s-budget-only{color:var(--data);border-color:color-mix(in srgb,var(--data) 45%,transparent)}
.bst.s-bid-requested{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.bst.s-declined-to-bid,.bst.s-canceled{opacity:.7}
/* main bid */
.bstep{display:flex;list-style:none;margin:18px 0 4px;padding:0;gap:0;flex-wrap:wrap}
.bstep li{display:flex;align-items:center;gap:8px;padding:8px 16px 8px 0;margin-right:16px;font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);position:relative}
.bstep li:not(:last-child)::after{content:"";position:absolute;right:-12px;top:50%;width:12px;height:1px;background:var(--line-3)}
.bstep li span{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-3);display:grid;place-items:center;font-size:11px;letter-spacing:0}
.bstep li.done{color:var(--ink-2)}.bstep li.done span{background:var(--ink-2);color:var(--bg);border-color:var(--ink-2)}
.bstep li.now{color:var(--ink)}.bstep li.now span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.bstep.closed li:not(.term){opacity:.45}
.bacts{flex-wrap:wrap}
.bnextbox{display:flex;align-items:center;gap:18px;justify-content:space-between;padding:16px 18px;margin:0 0 18px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));background:var(--accent-a)}
.bnextbox .l{font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.bnextbox b{display:block;font-size:17px;margin:2px 0}
.bgc td{vertical-align:middle}.gcpx{width:130px;height:30px;padding:0 8px;background:var(--bg-inset);border:1px solid var(--line-2);color:var(--ink);font:inherit}
.bestf{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.bestf label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-3)}
.bestf input{height:34px;padding:0 10px;background:var(--bg-inset);border:1px solid var(--line-2);color:var(--ink);font:inherit;font-size:14px;font-family:var(--f-num)}
.bestf .linkbtn{grid-column:1/-1;justify-self:start}
.bdocs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.bdoc{border:1px dashed var(--line-2);padding:16px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.bdoc.has{border-style:solid}
.bdoc .l{font-family:var(--f-disp);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
/* pickers + modals */
.pick{position:relative}.pick input[type=search]{width:100%}
.pk-sel{display:flex;flex-wrap:wrap;gap:4px}.pk-sel:not(:empty){margin-bottom:6px}
.pk-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 9px;border:1px solid var(--accent);background:var(--accent-a);font-size:12.5px;color:var(--ink)}
.pk-chip button{border:0;background:none;color:var(--ink-2);cursor:pointer;font-size:14px;line-height:1}
.pk-res{position:absolute;left:0;right:0;top:100%;z-index:5;background:var(--bg-2);border:1px solid var(--line-2);max-height:260px;overflow:auto;box-shadow:0 12px 28px rgba(0,0,0,.35)}
.pk-res button{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:8px 10px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.pk-res button:hover{background:var(--hover)}.pk-res small{color:var(--ink-3);font-size:11.5px}
.pk-res .pk-new{color:var(--accent);font-weight:500}
/* inline create from a picker (Kyle 10/20, public/quickadd-ui.js): "Did you mean …?" */
.qa-dym{margin:0 0 12px;padding:10px 12px;background:var(--warn-a);border-left:2px solid var(--warn)}
.qa-warn{font-size:13px;margin-bottom:6px}
.qa-ms{display:flex;flex-direction:column;gap:4px}
.qa-m{display:flex;flex-direction:column;align-items:flex-start;min-height:40px;padding:6px 10px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.qa-m:hover,.qa-m:focus-visible{border-color:var(--accent)}.qa-m small{color:var(--ink-3);font-size:11.5px}
.qa-co{position:relative}
.bm-in{width:min(680px,94vw)}.bm-body{margin:12px 0 4px}
.bm-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.bm-grid .span2{grid-column:1/-1}
.bm-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--ink-3)}
.bm-grid input:not([type=checkbox]):not([type=radio]),.bm-grid select,.bm-grid textarea,.bm-body>label textarea,.bm-body>label select{width:100%;padding:8px 10px;background:var(--bg-inset);border:1px solid var(--line-2);color:var(--ink);font:inherit;font-size:14px;border-radius:var(--r)}
.bm-grid input:focus,.bm-grid select:focus,.bm-grid textarea:focus{outline:none;border-color:var(--accent)}
.bm-l{font-size:12px;color:var(--ink-3);margin-bottom:6px}
.bm-gc{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important;padding:8px 10px;border:1px solid var(--line);margin-bottom:4px;color:var(--ink)!important;font-size:14px!important}
.bm-gc span{flex:1}.bm-gc input[type=number]{width:150px!important;flex:none}
.bm-check{flex-direction:row!important;align-items:center;color:var(--ink-2)!important;font-size:13px!important}
@media (max-width:1100px){.bboard{grid-template-columns:repeat(5,minmax(240px,78vw));scroll-snap-type:x mandatory}.bcol{scroll-snap-align:start}}
@media (max-width:640px){.bm-grid,.bestf{grid-template-columns:1fr}.bnextbox{flex-direction:column;align-items:flex-start}}
/* #26 hand edits (public/edit-ui.js) */
.ed-form{max-width:760px}.ed-form .bm-body{max-height:70vh;overflow:auto}
.ed-multi{border:1px solid var(--line-2);border-radius:var(--r);padding:8px 10px;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}.ed-multi legend{font-size:12px;color:var(--ink-3);padding:0 4px}
.ed-chk{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:6px;color:var(--ink)!important;font-size:13px!important}
.ed-pick{display:flex;flex-direction:column;gap:6px}.ed-pl{font-size:12px;color:var(--ink-3)}.ed-chips{display:flex;flex-wrap:wrap;gap:6px}
.ed-chip{display:inline-flex;align-items:center;gap:4px;background:var(--bg-inset);border:1px solid var(--line-2);border-radius:999px;padding:3px 4px 3px 10px;font-size:13px}.ed-chip button{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:15px;min-width:24px;min-height:24px}
.ed-res{display:flex;flex-direction:column;gap:2px}.ed-res button{text-align:left;background:var(--bg-inset);border:1px solid var(--line-2);color:var(--ink);border-radius:var(--r);padding:7px 10px;cursor:pointer;font:inherit;font-size:14px}.ed-res button:hover,.ed-res button:focus{border-color:var(--accent)}.ed-res small{display:block;color:var(--ink-3);font-size:12px}
.ed-hist{margin-top:10px}.ed-hist summary{cursor:pointer;font-size:13px;color:var(--ink-3)}.ed-hlist{margin:6px 0 0;padding-left:18px;font-size:13px}.ed-hlist li{margin:4px 0}
.ed-mine{margin-bottom:14px}.ed-mine .bm-grid{margin-top:8px}

/* ── Workspaces (cr17): top row picks the area, #tabs shows only its sections ── */
#ws{display:flex;gap:4px;height:38px;align-items:center;padding:0 calc(var(--gut) - 8px);overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line)}
#ws::-webkit-scrollbar{display:none}
#ws button{flex:none;background:none;border:1px solid transparent;border-radius:999px;padding:5px 13px;color:var(--ink-3);font:inherit;font-size:12.5px;letter-spacing:.02em;cursor:pointer;transition:color 150ms,background 150ms,border-color 150ms}
#ws button:hover{color:var(--ink)}
#ws button.on{color:var(--ink);background:var(--watchbg);border-color:var(--line)}
#ws button[data-ws="admin"]{margin-left:auto}
.offws{display:none!important}
#tabs a.tlink{flex:none;display:inline-flex;align-items:center;padding:0 12px;height:40px;color:var(--ink-3);text-decoration:none;white-space:nowrap;font-family:var(--f-disp);font-weight:500;font-size:13px;letter-spacing:.15em;text-transform:uppercase}
#tabs a.tlink:hover{color:var(--ink)}
td.warnc{color:var(--warn)} td.bad{color:var(--crit)}
.prio{display:inline-block;min-width:18px;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:600;background:var(--crit-a);color:var(--crit)}
.svt td{vertical-align:top}
.wdesc{max-width:360px;white-space:normal;color:var(--ink-2);font-size:12.5px;line-height:1.4}
.svt td{white-space:nowrap}.svt td:first-child,.svt td.wdesc{white-space:normal;min-width:180px}

/* ── MyConnects (cr18) ── */
#ws button.wsmy{color:var(--ink-2)}
#ws button.wsmy.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.my{padding:22px var(--gut) 40px;max-width:1500px;margin:0 auto}
.my.busy{opacity:.65;transition:opacity .2s}
.myhead{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}
.myeb{font-family:var(--f-disp);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.myhead h1{font-family:var(--f-disp);font-weight:400;font-size:clamp(26px,3.2vw,40px);letter-spacing:.02em;margin:6px 0 6px}
.mymission{margin:0;color:var(--ink-2);max-width:760px;font-size:14px;line-height:1.5}
.myctl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.myctl select{max-width:240px}
.myloop{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 18px}
.myloop span{font-size:12px;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:var(--watchbg)}
.myscore{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:22px}
.mykpi{background:var(--bg);padding:14px 14px 12px;position:relative;min-height:150px;display:flex;flex-direction:column}
.mykpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:transparent}
.mykpi.s-good::before{background:var(--good)} .mykpi.s-warn::before{background:var(--warn)} .mykpi.s-bad::before{background:var(--crit)}
.mykpi .l{font-family:var(--f-disp);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);min-height:28px}
.mykpi .v{font-size:30px;font-weight:300;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.mykpi.s-bad .v{color:var(--crit)} .mykpi.s-good .v{color:var(--ink)}
.mykpi .t{font-size:11.5px;color:var(--ink-3)} .mykpi .d.up{color:var(--good)} .mykpi .d.dn{color:var(--crit)}
.mykpi .s{font-size:11.5px;color:var(--ink-3);margin-top:auto;line-height:1.35}
.myspark{width:100%;height:28px;margin:6px 0 4px;display:block}
.myspark polyline{fill:none;stroke:var(--ink-2);stroke-width:1.5;vector-effect:non-scaling-stroke}
.myspark line.tg{stroke:var(--ink-3);stroke-dasharray:3 3;stroke-width:1;vector-effect:non-scaling-stroke}
.myspark.empty{font-size:11px;color:var(--ink-3);height:auto}
.mycols{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}
@media (max-width:1050px){.mycols{grid-template-columns:1fr}}
.myact{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);position:relative}
.myact .mrk{font-family:var(--f-disp);color:var(--ink-3);font-size:13px;padding-top:2px}
.myact .mtt{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.myact .mtt a{color:var(--ink);font-weight:500;text-decoration:none}
.myact .mtt a:hover{text-decoration:underline}
.myact .msub{font-size:13px;color:var(--ink-2);margin-top:2px}
.myact .mwhy{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.myact .mwhy span{font-size:11.5px;color:var(--ink-2);background:var(--watchbg);border-radius:4px;padding:2px 7px}
.myact .mfb{display:flex;gap:4px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}
.myact .mfb button{background:none;border:1px solid var(--line);color:var(--ink-2);border-radius:6px;padding:3px 8px;font:inherit;font-size:12px;cursor:pointer}
.myact .mfb button:hover{border-color:var(--ink);color:var(--ink)}
.myact .mfb .msc{font-size:11px;color:var(--ink-3);width:100%;text-align:right}
.mtag{font-family:var(--f-disp);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border-radius:4px;background:var(--watchbg);color:var(--ink-2);white-space:nowrap}
.mtag.t-final,.mtag.t-late,.mtag.t-leak,.mtag.t-re-inspect,.mtag.t-closed-job{background:var(--crit-a);color:var(--crit)}
.mtag.t-audit,.mtag.t-due,.mtag.t-unscheduled,.mtag.t-over-budget{background:var(--warn-a);color:var(--warn)}
.mtag.t-coaching,.mtag.t-follow-up,.mtag.t-warranty{background:var(--data-a,rgba(120,160,255,.12));color:var(--ink)}
.mywhy{grid-column:2/4;display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px 0 0}
.mywhy button{background:var(--watchbg);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;cursor:pointer}
.myside .jsec{margin-bottom:18px}
.myins{margin:0;padding-left:18px;color:var(--ink-2);font-size:13px;line-height:1.5} .myins li{margin-bottom:8px}
.mysec{margin-top:26px}
.mybars{display:flex;gap:10px;align-items:flex-end;height:170px;padding:10px 0;overflow-x:auto}
.mybars .mb{flex:1;min-width:52px;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}
.mybars .bx{flex:1;width:100%;display:flex;gap:3px;align-items:flex-end;justify-content:center}
.mybars i{display:block;width:40%;border-radius:2px 2px 0 0}
.mybars i.b0,.lg.b0{background:var(--ink)} .mybars i.b1,.lg.b1{background:var(--ink-3)}
.lg{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle}
.mybars .lb{font-size:11px;color:var(--ink-3);white-space:nowrap} .mybars .n{font-size:12px}
.myhow{margin-top:28px;color:var(--ink-2);font-size:13px;line-height:1.55;border-top:1px solid var(--line);padding-top:14px}
.myhow summary{cursor:pointer;color:var(--ink);font-family:var(--f-disp);letter-spacing:.12em;text-transform:uppercase;font-size:12px}
@media (max-width:640px){.myact{grid-template-columns:22px 1fr}.myact .mfb{grid-column:2;justify-content:flex-start}}
/* Bid vs Build */
.prhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.prhead h2{font-family:var(--f-disp);font-weight:400;font-size:30px;margin:4px 0}
.prprofit .prp{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:8px 0}
.prprofit .v{font-size:30px;font-weight:300;font-variant-numeric:tabular-nums} .prprofit .x{font-size:26px;color:var(--ink-3)}
.pv{font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:4px;background:var(--watchbg);white-space:nowrap}
.pv.v-broke,.pv.v-unbudgeted{background:var(--crit-a);color:var(--crit)} .pv.v-beat{background:var(--good-a);color:var(--good)}
.prsheet{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:80;display:flex;justify-content:flex-end}
.prsheet[hidden]{display:none}
.prsheet-in{background:var(--bg);width:min(1100px,100%);height:100%;overflow:auto;padding:26px 28px;border-left:1px solid var(--line);position:relative}
.prsheet-in .x{position:absolute;right:16px;top:12px;background:none;border:0;color:var(--ink);font-size:26px;cursor:pointer}
.prjob h3{font-family:var(--f-disp);font-weight:400;font-size:24px;margin:0 30px 4px 0}
.prj-k{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:14px 0}
.prj-k>div{background:var(--bg);padding:10px 12px;display:flex;flex-direction:column;gap:3px} .prj-k b{font-size:18px;font-weight:400} .prj-k span{font-size:11.5px;color:var(--ink-3)}
.prcrew{display:flex;flex-wrap:wrap;gap:6px} .prcrew span{font-size:12px;background:var(--watchbg);border-radius:4px;padding:3px 8px}
.prjob select{max-width:230px}
/* Hotels */
.htask{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap} .htask textarea{flex:1;min-width:260px;resize:vertical;font:inherit}
.htdraft{margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:12px}
.htgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px} .htgrid label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--ink-3)} .htgrid .w2{grid-column:span 2} .htgrid .w3{grid-column:span 3}
@media (max-width:760px){.htgrid{grid-template-columns:1fr 1fr}.htgrid .w2,.htgrid .w3{grid-column:span 2}}
.htsug{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:stretch}.htsug>.sec-note{width:100%}
.htsg{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--watchbg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;color:var(--ink);font:inherit;cursor:pointer;max-width:280px}
.htsg span{font-size:11.5px;color:var(--ink-3)} .htsg:hover{border-color:var(--ink)}
.htreq{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.htbk{display:flex;gap:6px;flex-wrap:wrap;align-items:center} .htbk input,.htbk select{max-width:150px}
.htin{max-width:90px}
/* Learn & earn */
.hlearn,.hstore{padding:28px var(--gut) 8px;max-width:1500px;margin:0 auto}
.hlearn .jsec-h{align-items:center;gap:12px}
.lrgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin:10px 0 18px}
.lrc{border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;background:var(--bg);display:flex;flex-direction:column;transition:transform .15s,border-color .15s}
.lrc:hover{transform:translateY(-2px);border-color:var(--ink-3)}
.lrh{height:92px;padding:12px 14px;display:flex;justify-content:space-between;align-items:flex-start;color:#fff}
.lrh span{font-family:var(--f-disp);font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.9}
:where(html.f-phonepass) .lrh span{opacity:1;background:rgba(0,0,0,.35);border-radius:999px;padding:3px 8px} /* #285 (switch phonepass, #308): on a chip like the points, readable on the light end too */
.lrpts,.lrdone{font-size:11px;background:rgba(0,0,0,.35);border-radius:999px;padding:3px 8px;font-weight:500}
.lrb{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1} .lrb h4{margin:0;font-size:16px;font-weight:500} .lrb p{margin:0;font-size:13px;color:var(--ink-2);line-height:1.45}
.lrsec{font-family:var(--f-disp);font-weight:400;letter-spacing:.12em;text-transform:uppercase;font-size:13px;color:var(--ink-3);margin:18px 0 0}
.lread{max-width:860px;margin:0 auto;padding:0 0 60px}
.lrhero{color:#fff;padding:26px 34px 30px;border-radius:0 0 14px 14px}
.lrhero .linkbtn{background:rgba(0,0,0,.25);color:#fff;border-color:rgba(255,255,255,.35);margin-bottom:18px}
.lrhero .myeb{color:rgba(255,255,255,.8)} .lrhero h1{font-family:var(--f-disp);font-weight:400;font-size:clamp(28px,4vw,44px);margin:8px 0 10px;line-height:1.05} .lrhero p{margin:0;opacity:.9;max-width:640px;line-height:1.5}
.lrbody{padding:10px 34px}
@media (max-width:640px){.lrbody,.lrhero{padding-left:16px;padding-right:16px}}
.lrsecn{margin:26px 0} .lrsecn h3{font-family:var(--f-disp);font-weight:500;font-size:20px;letter-spacing:.04em;margin:0 0 10px}
.lrsecn p{line-height:1.65;color:var(--ink);font-size:15.5px;margin:0 0 12px}
.lrlist,.lrnum{padding-left:20px;line-height:1.6;font-size:15px} .lrlist li,.lrnum li{margin-bottom:8px}
.lrcall{margin:14px 0;padding:14px 18px;border-left:3px solid var(--ink);background:var(--watchbg);font-size:17px;font-family:var(--f-disp);letter-spacing:.02em}
.lrformula{margin:12px 0;padding:14px 16px;border:1px dashed var(--ink-3);border-radius:8px;font-family:ui-monospace,Menlo,monospace;font-size:14px;line-height:1.5}
.lrsteps{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 14px} .lrsteps span{background:var(--watchbg);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13px} .lrsteps i{color:var(--ink-3);font-style:normal}
.lrbases{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:10px 0 14px}
.lrbases>div{border:1px solid var(--line);border-radius:10px;padding:12px;position:relative} .lrbases b{position:absolute;right:12px;top:8px;font-size:28px;font-weight:300;color:var(--ink-3)} .lrbases h5{margin:0 0 6px;font-size:14px;text-transform:uppercase;letter-spacing:.1em;font-family:var(--f-disp)} .lrbases p{font-size:13.5px;margin:0;color:var(--ink-2)}
.lrcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px} .lrcards>div{border:1px solid var(--line);border-radius:10px;padding:14px} .lrcards h5{margin:0 0 4px;font-family:var(--f-disp);font-size:15px;letter-spacing:.08em;text-transform:uppercase} .lrcards b{display:block;margin-bottom:6px} .lrcards p{font-size:14px;color:var(--ink-2);margin:0}
.lrgoals{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px} .lrgoals>div{background:var(--watchbg);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:3px} .lrgoals small{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.lrex{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:10px 0} .lrex small{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)} .lrex div{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line)} .lrex div.tot{border:0;color:var(--crit);font-size:16px}
.lrbig{font-size:54px;font-weight:300;line-height:1;margin:4px 0 8px}
.lrtbl{margin:10px 0}
.lrqa{border-bottom:1px solid var(--line);padding:10px 0} .lrqa summary{cursor:pointer;font-weight:500} .lrqa p{margin:8px 0 0;color:var(--ink-2)}
.lrquiz{margin-top:34px;border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.lrquiz h3{font-family:var(--f-disp);font-weight:500;font-size:20px;margin:0 0 4px}
.lrq{padding:12px 0;border-bottom:1px solid var(--line)} .lrq .qq{margin-bottom:8px;font-weight:500}
.lrq label{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:14.5px} .lrq label:hover{background:var(--watchbg)}
.lrq label.right{background:var(--good-a);color:var(--good)} .lrq label.wrong{background:var(--crit-a);color:var(--crit)}
.lrresult{margin:14px 0;font-size:16px} .lrresult b{font-size:26px;font-weight:400} .lrresult.pass b{color:var(--good)}
.lrquiz .linkbtn{margin-top:10px}
/* K12 Learn Connects: the library header, progress, filters, What's new, the reader's language switch and the article editor */
.lrlib{max-width:1500px;margin:0 auto}
.lrtop{display:flex;gap:24px;align-items:center;flex-wrap:wrap;justify-content:space-between;margin-bottom:14px}.lrtop h2{margin:4px 0}
.lrprog{display:flex;gap:12px;align-items:center;padding:10px 16px;border:1px solid var(--line);border-radius:12px;background:var(--watchbg)}
.lrring{--p:0;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--good) calc(var(--p)*1%),var(--track) 0)}
.lrring b{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--bg);font-size:13px;font-weight:600}
.lrfilters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0 4px}
.lrfilters input[type=search]{flex:1 1 240px;min-height:40px;padding:8px 12px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);font:inherit}
.lrfilters select{min-height:40px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);padding:0 10px;font:inherit}
.lrchips{display:flex;gap:6px;flex-wrap:wrap}
.lrchip{min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer}
.lrchip.on{background:var(--accent-a);color:var(--ink);border-color:var(--accent)}
.lrc:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lrnew{font-size:11px;background:var(--warn);color:#111;border-radius:999px;padding:3px 8px;font-weight:600;margin-left:auto;margin-right:6px}
.lrbar{height:4px;border-radius:2px;background:var(--track);overflow:hidden;margin-top:4px}.lrbar i{display:block;height:100%;background:var(--warn)}
.lrgrid.lrbig{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.lrc.big .lrh{height:120px}.lrc.big h4{font-size:19px}
fieldset.lrq{border:0;border-bottom:1px solid var(--line);margin:0;padding:12px 0}fieldset.lrq legend{padding:0;margin-bottom:8px}
.lrlang{display:inline-flex;margin-left:10px;border:1px solid rgba(255,255,255,.35);border-radius:999px;overflow:hidden;vertical-align:top}
.lrlang button{background:transparent;color:#fff;border:0;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer;min-height:32px}.lrlang button.on{background:rgba(0,0,0,.35)}
.ledit{max-width:1100px;margin:0 auto}.leside{min-width:240px}.lemine{list-style:none;padding:0;margin:8px 0;font-size:13.5px;line-height:1.9}
.leform{display:flex;flex-direction:column;gap:14px}.leform label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-2)}
.leform input:not([type=checkbox]):not([type=radio]),.leform textarea,.leform select{font:inherit;font-size:15px;color:var(--ink);background:var(--bg-2);border:1px solid var(--line-2);border-radius:8px;padding:9px 12px;min-height:40px}
.leform textarea{line-height:1.55;resize:vertical}
.le2{display:grid;grid-template-columns:220px 1fr;gap:14px}.lelbl{font-size:13px;color:var(--ink-2)}
.leaud{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px}.leform .leaud label{flex-direction:row;align-items:center;gap:6px;color:var(--ink);min-height:32px}
.legen{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.leq{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;margin:0}.leq.unrev{border-color:var(--warn);background:var(--warn-a)}
.leq legend{font-size:13px;color:var(--ink-2);padding:0 6px}.leo{display:flex;gap:8px;align-items:center}.leo input[type=radio]{width:20px;height:20px}.leo .leopt{flex:1}
.leqa{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.leform .leqa label{flex-direction:row;align-items:center;gap:8px;color:var(--ink)}
.leact{display:flex;gap:10px;flex-wrap:wrap;padding:6px 0 30px}.banner.warn{border-color:var(--warn)}
@media (max-width:640px){.le2{grid-template-columns:1fr}.lrprog{width:100%}.lrtop .linkbtn{width:100%}}
/* Store */
.hstore{border-top:1px solid var(--line);margin-top:24px;padding-top:30px;padding-bottom:30px}
.hstore-h{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.hstore-h h2{font-family:var(--f-disp);font-weight:400;font-size:34px;margin:4px 0}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px} .pgrid.full{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.pcard{border:1px solid var(--line);border-radius:10px;overflow:hidden;position:relative;display:flex;flex-direction:column;background:var(--bg)}
.pimg{width:100%;aspect-ratio:1;display:block}
.pbadge{position:absolute;left:10px;top:10px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;background:var(--ink);color:var(--bg);border-radius:4px;padding:2px 7px;z-index:1}
.pb{padding:10px 12px 14px;display:flex;flex-direction:column;gap:7px;flex:1} .pb h4{margin:0;font-size:15px;font-weight:500} .pb p{margin:0;font-size:12.5px;color:var(--ink-2);line-height:1.45}
.pprice{display:flex;align-items:baseline;gap:8px} .pprice b{font-size:18px;font-weight:500} .pprice span{font-size:12px;color:var(--ink-3)}
.pchips{display:flex;flex-wrap:wrap;gap:4px} .pchips button{background:none;border:1px solid var(--line);color:var(--ink-2);border-radius:5px;padding:2px 7px;font:inherit;font-size:11.5px;cursor:pointer} .pchips button.on{border-color:var(--ink);color:var(--ink);background:var(--watchbg)}
.pb .linkbtn{margin-top:auto;align-self:flex-start}
.scols{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start} @media (max-width:960px){.scols{grid-template-columns:1fr}}
.scart{border:1px solid var(--line);border-radius:12px;padding:14px 16px;position:sticky;top:120px;display:flex;flex-direction:column;gap:8px} .scart h3{margin:0;font-family:var(--f-disp);font-weight:500}
.scart .kvrow.tot{border-top:1px solid var(--line);padding-top:8px}
.spay{display:flex;flex-direction:column;gap:5px;font-size:13px}

/* RAMCON navy theme (dark): brand navy header band */
:root:not([data-theme="light"]) header.top{background:color-mix(in srgb,var(--brand) 95%,transparent)}

/* ===================== charts (public/charts.js) ===================== */
.k0{--k:var(--accent)}.k1{--k:var(--good)}.k2{--k:var(--warn)}.k3{--k:var(--data)}.k4{--k:var(--metal)}.k5{--k:var(--crit)}.k6{--k:var(--ink-2)}.k7{--k:color-mix(in srgb,var(--accent) 35%,transparent)}
.chart{width:100%;height:auto;display:block;overflow:visible}
.chgrid{stroke:var(--line);stroke-width:1}.chref{stroke:var(--warn);stroke-dasharray:4 4;stroke-width:1.2}
.chax{fill:var(--ink-3);font:11px var(--f-ui)}
.chline{fill:none;stroke:var(--k);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.chline.dash{stroke-dasharray:5 4;stroke-width:1.6}
.charea{fill:var(--k);opacity:.12;stroke:none}
.chpt{fill:var(--k);stroke:var(--bg);stroke-width:1.5}.chpt:hover{r:5}
.chbar{fill:var(--k)}.chbar:hover{opacity:.8}
.chdot{fill:var(--k);opacity:.6;stroke:none}.chdot:hover{opacity:1;r:6}
.chdon{fill:none;stroke:var(--k);stroke-width:18}.chdon:hover{stroke-width:22}.chdn{fill:var(--ink);font:300 24px var(--f-num)}
.chd{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.chd .chleg{flex-direction:column;align-items:flex-start}
.chleg{display:flex;flex-wrap:wrap;gap:6px 16px;margin:6px 0 0;font-size:12px;color:var(--ink-2)}.chleg i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--k);margin-right:6px;vertical-align:-1px}
.chh{display:flex;flex-direction:column;gap:6px}.chh-r{display:grid;grid-template-columns:minmax(120px,34%) 1fr 74px;gap:10px;align-items:center;font-size:13px}.chh-r.go{cursor:pointer}.chh-r.go:hover .chh-l{color:var(--accent)}
.chh-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chh-l small{display:block;color:var(--ink-3);font-size:11px}
.chh-b{position:relative;height:12px;background:var(--track);border-radius:2px}.chh-b i{position:absolute;inset:0 auto 0 0;background:var(--k);border-radius:2px}.chh-b .ghost{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}
.chh-v{text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums}
.chf{display:flex;flex-direction:column;gap:5px}.chf-r{display:grid;grid-template-columns:150px 1fr 90px;gap:10px;align-items:center;font-size:13px}
.chf-b{height:22px;background:var(--track)}.chf-b i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,var(--data)))}
.chf-v{text-align:right;font-family:var(--f-num)}.chf-v small{margin-left:6px;color:var(--ink-3)}
.chheat{display:grid;gap:2px;font-size:12px}.chheat b{font-weight:500;color:var(--ink-3);text-align:center;font-size:11px}.chheat .hl{padding-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chheat i{font-style:normal;text-align:center;padding:5px 2px;background:color-mix(in srgb,var(--accent) calc(var(--a)*100%),transparent);border-radius:2px;color:var(--ink)}
.chm{position:relative;height:20px;background:var(--track);border-radius:2px;overflow:hidden}.chm span{position:absolute;inset:0 auto 0 0;background:var(--warn)}.chm.ok span{background:var(--good)}.chm.lo span{background:var(--crit)}
.chm b{position:relative;font:500 11.5px var(--f-ui);padding:0 8px;line-height:20px;color:var(--ink)}
.chtip{position:fixed;z-index:99;pointer-events:none;background:var(--bg-3);color:var(--ink);border:1px solid var(--line-2);padding:5px 8px;font-size:12px;border-radius:3px;max-width:340px;box-shadow:0 6px 20px rgba(0,0,0,.35)}
.spark{display:inline-block;vertical-align:middle}
/* panels + grids used by analytics, clients, sales */
.agrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;margin:16px 0}
.apanel{border:1px solid var(--line);background:var(--bg-2);padding:16px 18px;min-width:0}
.apanel h3{margin:0 0 4px;font:600 12px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
.apanel .sub{margin:0 0 12px;color:var(--ink-3);font-size:12.5px;line-height:1.45}
.apanel.wide{grid-column:1/-1}
.recs{display:flex;flex-direction:column;gap:8px;margin:14px 0}.recs div{border-left:3px solid var(--warn);background:var(--warn-a);padding:9px 12px;font-size:13.5px;line-height:1.45}
.recs div.good{border-color:var(--good);background:var(--good-a)}.recs div.crit{border-color:var(--crit);background:var(--crit-a)}
/* K6 (Kyle 10/19): Job cost — Production / Service / Both, and Show completed */
.jc-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:18px 0 4px}
.jc-seg{display:inline-flex;padding:3px;border:1px solid var(--line-2);border-radius:999px;background:var(--bg-inset)}
.jc-seg button{min-height:32px;padding:0 16px;border:0;border-radius:999px;background:none;color:var(--ink-2);font:600 12.5px var(--f-ui);letter-spacing:.02em;cursor:pointer;transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.jc-seg button:hover{color:var(--ink)}.jc-seg button.on{background:var(--accent);color:var(--accent-ink)}
.jc-seg small,.jc-done small{margin-left:4px;font-weight:500;opacity:.75}
.jc-done{min-height:32px;padding:0 14px;border:1px dashed var(--line-3);border-radius:999px;background:none;color:var(--ink-2);font:500 12.5px var(--f-ui);cursor:pointer}
.jc-done:hover{color:var(--ink);border-style:solid}.jc-done.on{border-style:solid;border-color:var(--accent);color:var(--accent)}
.jc-stage{display:inline-block;margin-left:6px;padding:1px 7px;border:1px solid var(--line-2);border-radius:999px;font-size:11px;color:var(--ink-3);vertical-align:1px}
tr.jc-old td{opacity:.72}
@media (max-width:560px){.jc-seg{width:100%}.jc-seg button{flex:1;padding:0 8px}.jc-done{flex:1}}
.segs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.segs button{height:30px;padding:0 12px;border:1px solid var(--line-2);background:none;color:var(--ink-2);font:500 12.5px var(--f-ui);cursor:pointer;border-radius:15px}
.segs button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.segs button small{opacity:.7;margin-left:5px}:where(html.f-phonepass) .segs button small{opacity:.85;color:inherit} /* #285 (switch phonepass, #308): the count reads on the chosen (blue) chip too */
.tag{display:inline-block;font:600 10px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;padding:2px 6px;border-radius:3px;margin:0 4px 2px 0;background:var(--watchbg);color:var(--ink-2)}
.tag.top{background:var(--accent-a);color:var(--accent)}.tag.growing{background:var(--good-a);color:var(--good)}.tag.slipping,.tag.time-sink{background:var(--crit-a);color:var(--crit)}.tag.dormant{background:var(--warn-a);color:var(--warn)}.tag.new{background:var(--data-a);color:var(--data)}
.score{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:2px solid var(--line-3);font:400 15px var(--f-num)}
.score.hi{border-color:var(--good);color:var(--good)}.score.mid{border-color:var(--accent)}.score.lo{opacity:.7}
.readcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}.readcols ul{margin:6px 0 0;padding-left:18px;font-size:13.5px;line-height:1.5}
.readcols h4{margin:0;font:600 11px var(--f-disp);letter-spacing:.18em;text-transform:uppercase}.readcols .g h4{color:var(--good)}.readcols .r h4{color:var(--crit)}.readcols .n h4{color:var(--accent)}.readcols .w h4{color:var(--warn)}
.bignums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:8px 0 14px}.bignums div{background:var(--watchbg);padding:10px 12px}.bignums small{display:block;font:600 10.5px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.bignums b{display:block;font:300 24px var(--f-num);margin:2px 0}.bignums span{font-size:12px;color:var(--ink-3);line-height:1.35;display:block}
.tbl tr.row{cursor:pointer}.tbl tr.row:hover td{background:var(--hover)}
.tbl td.n,.tbl th.n{text-align:right;font-variant-numeric:tabular-nums}
.diamond{position:relative;max-width:520px;margin:0 auto}.diamond svg{width:100%}
.dbase{cursor:pointer}.dbase rect{fill:var(--bg-3);stroke:var(--line-3);stroke-width:1.5}.dbase.on rect{fill:var(--accent);stroke:var(--accent)}.dbase text{fill:var(--ink);font:600 13px var(--f-disp);letter-spacing:.06em}.dbase.on text{fill:var(--accent-ink)}
.dbase .n{font:300 22px var(--f-num)}
.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding:0 0 14px 22px;border-left:1px solid var(--line-2);margin-left:6px;font-size:13.5px}.timeline li:before{content:"";position:absolute;left:-5px;top:3px;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.timeline li b{font-weight:600}.timeline li small{color:var(--ink-3);margin-left:6px}.timeline li p{margin:3px 0 0;color:var(--ink-2);white-space:pre-wrap;line-height:1.45}
.basepath{display:flex;gap:4px;flex-wrap:wrap;margin:12px 0}.basepath span{flex:1;min-width:80px;padding:6px 8px;border:1px solid var(--line-2);font-size:11.5px;text-align:center;color:var(--ink-3)}
.basepath span.done{border-color:var(--good);color:var(--good)}.basepath span.now{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.basepath small{display:block;font-size:10.5px;opacity:.8}
.cmp{border:1px solid var(--line);padding:12px 14px;margin:8px 0;background:var(--bg-2)}.cmp h5{margin:0 0 4px;font-size:14px;font-weight:600}.cmp .sim{float:right;font:300 20px var(--f-num);color:var(--accent)}
.cmp .cm{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;margin:8px 0 4px;font-size:12.5px}.cmp .cm span{color:var(--ink-3);display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em}
.cmp .bad{color:var(--crit)}.cmp .ok{color:var(--good)}
.ch3{font:600 12px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin:22px 0 8px}
td.bad,span.bad,b.bad{color:var(--crit)} td.ok,span.ok,b.ok{color:var(--good)}
.tbar .grow{flex:1}
.intelbtn{white-space:nowrap}
.intelmenu{position:fixed;top:56px;right:16px;z-index:80;width:min(880px,calc(100vw - 32px));max-height:calc(100vh - 80px);overflow:auto;background:var(--bg-2);border:1px solid var(--line-2);box-shadow:0 18px 50px rgba(0,0,0,.45)}
.intelmenu .im-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 18px;padding:16px 18px}
.intelmenu h5{margin:6px 0 6px;font:600 11px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.intelmenu .im-i{display:block;width:100%;text-align:left;background:none;border:0;padding:7px 8px;margin:0 -8px;color:var(--ink);cursor:pointer;font:inherit}
.intelmenu button.im-i:hover{background:var(--hover)}.intelmenu .im-i b{display:block;font-size:13.5px;font-weight:600}.intelmenu .im-i i{font-style:normal;color:var(--ink-3)}
.intelmenu .im-i span{display:block;font-size:12px;color:var(--ink-3);line-height:1.35}.intelmenu .im-i.soon{opacity:.6;cursor:default}.intelmenu .im-i.soon b:after{content:" · soon";font-weight:400;color:var(--warn)}
.dsrc{display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.dhead{margin:14px 0 6px}.dhead h1{font-size:30px;font-weight:600;letter-spacing:0;text-transform:none}
/* ===================== maps ===================== */
.mapwrap{display:grid;grid-template-columns:270px 1fr;gap:0;border:1px solid var(--line);min-height:calc(100vh - 230px);margin-top:14px}
.mside{padding:14px 16px;border-right:1px solid var(--line);background:var(--bg-2);overflow:auto;max-height:calc(100vh - 230px)}
.mside h3{margin:14px 0 6px;font:600 11px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.mside h3:first-child{margin-top:0}
.mside input[type=search],.mside select{width:100%;height:32px;margin:0 0 6px;background:var(--bg-inset);border:1px solid var(--line-2);color:var(--ink);font:inherit;font-size:12.5px;padding:0 8px}
.mlay{display:flex;align-items:center;gap:8px;font-size:13px;padding:3px 0;cursor:pointer}.mlay i{width:10px;height:10px;border-radius:50%;display:inline-block}.mlay small{color:var(--ink-3);margin-left:auto}
.mmap{min-height:calc(100vh - 230px);background:var(--bg-inset)}.mmap .leaflet-container,.mmap.leaflet-container{background:var(--bg-inset)}
.mview .mv{font-size:13px;margin:3px 0}.mview b{font-family:var(--f-num);font-weight:500}
.mpop{font:13px var(--f-ui);line-height:1.45;color:#111}.mpop small{display:block;color:#666;text-transform:uppercase;letter-spacing:.08em;font-size:10.5px}.mpop b{display:block;font-size:14px}
.mpop .mact{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.mpop .mact a{font-weight:600}
.mhq{background:#fff;color:#010160;border-radius:50%;text-align:center;line-height:22px;font:700 12px var(--f-ui);box-shadow:0 0 0 3px rgba(1,1,96,.6)}
.minimap{height:300px;border:1px solid var(--line);background:var(--bg-inset)}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background-color:rgba(184,211,255,.25)!important}.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background-color:rgba(184,211,255,.75)!important;color:#03042c!important;font-weight:600}
@media (max-width:860px){.mapwrap{grid-template-columns:1fr}.mside{max-height:none;border-right:0;border-bottom:1px solid var(--line)}.mmap{min-height:70vh}}
.radar{display:flex;flex-direction:column;gap:8px}
.rcard{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;border:1px solid var(--line);background:var(--bg-2);padding:12px 14px;align-items:start}
.rsc{width:46px;height:46px;border-radius:50%;border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;font:300 18px var(--f-num)}
.rcb{min-width:0}.rcb h4{margin:3px 0 2px;font-size:15px}.rcb p{margin:6px 0;font-size:13.5px;line-height:1.45;color:var(--ink-2)}
.ract{display:flex;flex-direction:column;gap:6px;min-width:170px}
@media (max-width:760px){.rcard{grid-template-columns:40px 1fr}.ract{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}}
.ptab td:first-child{min-width:240px;max-width:380px;white-space:normal}.ptab td .sec-note{white-space:normal}
/* info tips */
.itip{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;border:1px solid var(--line-3);color:var(--ink-2);font:italic 600 11px Georgia,serif;cursor:help;vertical-align:middle;margin-left:6px;user-select:none;text-transform:none;letter-spacing:0;flex:none}
.itip:hover,.itip:focus{border-color:var(--accent);color:var(--accent);outline:none}
.ihelp{position:fixed;z-index:120;background:var(--bg-3);color:var(--ink);border:1px solid var(--line-2);box-shadow:0 14px 40px rgba(0,0,0,.45);padding:12px 14px;font:13px/1.5 var(--f-ui);border-radius:4px}
.ihelp b{display:block;font-size:14px;margin-bottom:4px}.ihelp p{margin:6px 0 0;color:var(--ink-2)}.ihelp small{display:block;font:600 10px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:1px}
/* WO 3.3: a view with no header of its own gets its info tip on a slim line at the top */
.vtip{display:flex;justify-content:flex-end;margin:0 0 6px}
/* ===================== War Room ===================== */
.warpage{background:#01021a;margin:0}.warpage main{max-width:none;padding:0}
.wr{--wr-bg:#020325;--wr-line:rgba(120,150,255,.22);--wr-glow:0 0 0 1px rgba(120,150,255,.18),0 0 24px rgba(60,90,255,.10) inset;display:flex;flex-direction:column;min-height:calc(100vh - 140px);background:radial-gradient(ellipse at top,#07094a 0%,#020325 55%,#01021a 100%);color:#e8ebff;padding:14px;gap:12px;font-family:var(--f-ui)}
.warpage .wr{min-height:100vh}.warin{margin:-8px -8px 0}
.wr-top{display:flex;align-items:center;gap:22px;padding:6px 6px 10px;border-bottom:1px solid var(--wr-line)}
.wr-brand{font:600 15px var(--f-disp);letter-spacing:.42em;color:#aeb6ff}.wr-brand b{color:#fff;letter-spacing:.32em}
.wr-status{font:600 12px var(--f-disp);letter-spacing:.24em;padding:6px 12px;border:1px solid currentColor;border-radius:2px}.wr-status b{margin-left:8px}
.wr-status.ok{color:#63c393}.wr-status.warn{color:#e2aa52}.wr-status.bad{color:#f0766b;animation:wrpulse 2s infinite}
@keyframes wrpulse{50%{box-shadow:0 0 18px rgba(240,118,107,.45)}}
.wr-clock{margin-left:auto;text-align:right}.wr-clock b{display:block;font:300 26px var(--f-num);color:#fff;letter-spacing:.04em}.wr-clock span{font-size:12px;color:#8a92c8}
.wr-tools{display:flex;gap:8px}.wr-tools button,.wr-tools a{background:none;border:1px solid var(--wr-line);color:#aeb6ff;font:600 11px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;padding:7px 12px;cursor:pointer;text-decoration:none}
.wr-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(250px,auto);gap:12px;flex:1}
.wr-s{background:linear-gradient(180deg,rgba(14,18,90,.55),rgba(4,6,40,.85));border:1px solid var(--wr-line);box-shadow:var(--wr-glow);display:flex;flex-direction:column;min-width:0;cursor:pointer;position:relative;overflow:hidden}
.wr-s:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px)}
.wr-s:hover{border-color:rgba(160,185,255,.5)}
.wr-s header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--wr-line);font:600 11px var(--f-disp);letter-spacing:.2em;text-transform:uppercase;color:#aeb6ff}
.wr-s header span{margin-left:auto;color:#6c74a8;letter-spacing:.06em}
.wr-dot{width:7px;height:7px;border-radius:50%;background:#555b8a}.wr-dot.ok{background:#63c393;box-shadow:0 0 8px #63c393}.wr-dot.bad{background:#f0766b;box-shadow:0 0 8px #f0766b}
.wr-b{padding:10px 12px;flex:1;display:flex;flex-direction:column;gap:8px;min-height:0}
.wr-map2{grid-column:span 2;grid-row:span 2}.wr-wide{grid-column:span 2}.wr-tallp{grid-row:span 1}
.wr-map{flex:1;min-height:420px;border:1px solid var(--wr-line)}.wr-map2 .wr-b{padding:0}.wr-map2 .wr-map{border:0;height:100%}
.wr-row{display:flex;gap:14px;flex-wrap:wrap}
.wr-big{flex:1;min-width:90px}.wr-big b{display:block;font:300 34px/1.05 var(--f-num);color:#fff}.wr-big small{display:block;font:600 10px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:#8a92c8;margin-top:2px}.wr-big span{display:block;font-size:11.5px;color:#9aa2d6;margin-top:2px}
.wr-big.ok b{color:#7ee0ad}.wr-big.bad b{color:#ff8a80}
.wr-list{display:flex;flex-direction:column;gap:2px;font-size:12.5px;overflow:hidden}.wr-list>div{display:flex;align-items:center;gap:10px;padding:4px 0;border-bottom:1px solid rgba(120,150,255,.08)}
.wr-list span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wr-list span b{font-weight:500;color:#e8ebff}.wr-list em{display:block;font-style:normal;color:#8a92c8;font-size:11px;overflow:hidden;text-overflow:ellipsis}
.wr-list i{font-style:normal;font-family:var(--f-num)}.wr-list i.ok{color:#7ee0ad}.wr-list i.bad{color:#ff8a80}
.wr-score{min-width:32px;text-align:center;border:1px solid rgba(184,211,255,.45);border-radius:12px;padding:1px 6px;color:#b8d3ff}
.wr-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px}.wr-col small{display:block;font:600 10px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:#8a92c8;margin-bottom:4px}
.wr-col div{display:flex;gap:8px;align-items:center;font-size:13px;padding:3px 0}.wr-col i{font-style:normal;color:#6c74a8;width:14px}.wr-col b{flex:1;font-weight:500}.wr-col span{font-family:var(--f-num);color:#7ee0ad}
.wr-note{margin:auto 0 0;font-size:11px;color:#6c74a8}
.wr-wait,.wr-err{margin:auto;color:#6c74a8;font:600 11px var(--f-disp);letter-spacing:.24em;text-transform:uppercase}.wr-err{color:#ff8a80;letter-spacing:.06em;text-transform:none;font:12px var(--f-ui);text-align:center}
.wr-ticker{overflow:hidden;border:1px solid var(--wr-line);background:rgba(4,6,40,.8);height:34px;position:relative}
.wr-tk{display:inline-flex;gap:48px;white-space:nowrap;line-height:34px;font-size:13px;color:#d6dbff;animation:wrtick 180s linear infinite;padding-left:100%}.wr-tk span{color:#ffd28a}
@keyframes wrtick{to{transform:translateX(-100%)}}
.wr .chart .chax{fill:#7d85bb}.wr .chgrid{stroke:rgba(120,150,255,.12)}
@media (max-width:1200px){.wr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wr-cols{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.wr-grid{grid-template-columns:1fr}.wr-map2,.wr-wide{grid-column:auto}.wr-top{flex-wrap:wrap}}

/* =====================================================================
   v2 — depth, motion and interaction (paired with public/ux.js)
   Keeps the industrial look: navy, hairlines, big numbers. Adds light, depth and motion.
   Everything here respects prefers-reduced-motion.
   ===================================================================== */
:root{--glow:rgba(120,150,255,.16);--lift:0 1px 0 rgba(255,255,255,.04) inset,0 10px 30px -12px rgba(0,0,0,.6);--surface:linear-gradient(180deg,color-mix(in srgb,var(--bg-2) 92%,#fff 8%) 0%,var(--bg-2) 46px)}
:root[data-theme="light"]{--glow:rgba(29,79,196,.08);--lift:0 1px 2px rgba(0,0,0,.05),0 10px 24px -14px rgba(0,0,0,.18);--surface:var(--bg-2)}

/* ambient light on the canvas */
body{background:
  radial-gradient(1200px 520px at 12% -8%,var(--glow),transparent 60%),
  radial-gradient(900px 480px at 100% 0%,color-mix(in srgb,var(--data) 9%,transparent),transparent 62%),
  var(--bg);background-attachment:fixed}

/* header: accent hairline under the bar, glowing tab indicator */
.top{box-shadow:0 1px 0 var(--line),0 8px 24px -18px rgba(0,0,0,.8)}
.top::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 45%,transparent) 30%,color-mix(in srgb,var(--data) 40%,transparent) 70%,transparent);pointer-events:none}
#tabs button::after{height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--data));box-shadow:0 0 12px color-mix(in srgb,var(--accent) 60%,transparent)}
#tabs button.on::after,#tabs button:hover::after{transform:scaleX(1)}
#tabs button:hover:not(.on)::after{opacity:.35}
#ws button.on{box-shadow:0 0 0 1px var(--line-2),0 4px 14px -6px color-mix(in srgb,var(--accent) 40%,transparent)}

/* KPI strip becomes one raised instrument panel */
.kpis{background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--lift)}
.kpis .kpi:first-child{padding-left:22px}
.kpi{transition:background var(--t) var(--ease)}
.kpi::after{content:"";position:absolute;left:22px;right:22px;top:0;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,var(--accent),var(--data));transform:scaleX(0);transform-origin:left;transition:transform 260ms var(--ease)}
.kpi.go{cursor:pointer}
.kpi:hover{background:var(--hover)}.kpi.go:hover::after{transform:scaleX(1)}
.kpi.bad .v{text-shadow:0 0 22px color-mix(in srgb,var(--crit) 35%,transparent)}

/* cards and panels: surface, depth, lift on hover, a light that follows the pointer */
.card,.panel,.bcard{background:var(--surface);box-shadow:var(--lift)}
.card,.bcard{transition:transform 180ms var(--ease),box-shadow 180ms var(--ease),border-color 180ms var(--ease),background 180ms var(--ease)}
.card:hover,.bcard:hover{transform:translateY(-2px);border-color:var(--line-2);box-shadow:var(--lift),0 16px 34px -18px color-mix(in srgb,var(--accent) 45%,transparent)}
.card::before{border-radius:var(--r) 0 0 var(--r);width:3px}
.card.s3::before{box-shadow:0 0 14px color-mix(in srgb,var(--crit) 70%,transparent)}
.card.s2::before{box-shadow:0 0 14px color-mix(in srgb,var(--warn) 60%,transparent)}
.spot{position:relative;isolation:isolate}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity 220ms var(--ease);
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--accent) 9%,transparent),transparent 60%)}
.spot:hover::after{opacity:1}

/* tables: accent rail on the hovered row */
tr.row td:first-child,tr.click td:first-child{box-shadow:inset 2px 0 0 transparent;transition:box-shadow 140ms var(--ease)}
tr.row:hover td:first-child,tr.click:hover td:first-child{box-shadow:inset 2px 0 0 var(--accent)}
.tablewrap thead th,.tbl th{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* tooltips: glass, multi-line */
.chtip{white-space:pre-line;line-height:1.5;padding:7px 10px;border-radius:8px;background:color-mix(in srgb,var(--bg-3) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 30px -8px rgba(0,0,0,.55)}

/* loading: a pulse instead of plain text */
.loading::before{content:"";display:block;width:34px;height:34px;margin:0 auto 18px;border-radius:50%;border:1px solid var(--line-2);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 50%,transparent);animation:ux-ping 1.6s var(--ease) infinite}
@keyframes ux-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 45%,transparent)}100%{box-shadow:0 0 0 22px transparent}}

/* view entrance: content rises in, staggered (only when the view changes) */
#main.ux-enter>*{animation:ux-rise 420ms var(--ease) both}
#main.ux-enter>*:nth-child(2){animation-delay:50ms}#main.ux-enter>*:nth-child(3){animation-delay:100ms}#main.ux-enter>*:nth-child(4){animation-delay:150ms}
#main.ux-enter>*:nth-child(5){animation-delay:200ms}#main.ux-enter>*:nth-child(n+6){animation-delay:240ms}
#main.ux-enter .cards>.card:nth-child(-n+12){animation:ux-rise 420ms var(--ease) both;animation-delay:calc(var(--i,0) * 35ms + 120ms)}
@keyframes ux-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* charts draw themselves in */
#main.ux-enter .chline{stroke-dasharray:1;stroke-dashoffset:1;animation:ux-draw 900ms var(--ease) 150ms forwards}
#main.ux-enter .chline.dash{stroke-dasharray:none;animation:none}
#main.ux-enter .chbar{transform-box:fill-box;transform-origin:bottom;animation:ux-grow 600ms var(--ease) both}
#main.ux-enter .charea,#main.ux-enter .chpt,#main.ux-enter .chdot{animation:ux-fade 700ms var(--ease) 400ms both}
#main.ux-enter .chh-b i,#main.ux-enter .chf-b i,#main.ux-enter .chm span{transform-origin:left;animation:ux-growx 700ms var(--ease) both}
@keyframes ux-draw{to{stroke-dashoffset:0}}
@keyframes ux-grow{from{transform:scaleY(0)}to{transform:none}}
@keyframes ux-growx{from{transform:scaleX(0)}to{transform:none}}
@keyframes ux-fade{from{opacity:0}}

/* chart crosshair (CH.line) */
.chcol{fill:transparent;cursor:crosshair}
.chx{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3;opacity:0;pointer-events:none;transition:opacity 100ms}
.chcolg:hover .chx{opacity:.9}
.chcolg:hover .chcol{fill:var(--hover)}

/* keyboard sheet */
.uxkeys{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:ux-fade 160ms both}
.uxkeys>div{width:min(560px,92vw);background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:22px 26px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7)}
.uxkeys h3{margin:0 0 14px;font:600 13px var(--f-disp);letter-spacing:.18em;text-transform:uppercase}
.uxkeys dl{display:grid;grid-template-columns:auto 1fr;gap:9px 18px;margin:0;font-size:13px}.uxkeys dt{white-space:nowrap}.uxkeys dd{margin:0;color:var(--ink-2)}
kbd{display:inline-block;min-width:22px;padding:2px 6px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;background:var(--bg-inset);font:500 11.5px var(--f-ui);text-align:center;color:var(--ink)}
.uxtoast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:121;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,var(--bg-3) 90%,transparent);border:1px solid var(--line-2);font-size:12.5px;box-shadow:0 12px 30px -10px rgba(0,0,0,.6);animation:ux-rise 200ms var(--ease) both;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}

/* map time-lapse */
.mmap{position:relative}
.tl{position:absolute;left:14px;right:14px;bottom:14px;z-index:500;display:grid;grid-template-columns:auto auto 1fr auto auto;gap:14px;align-items:center;padding:12px 16px;border-radius:12px;
  background:color-mix(in srgb,var(--bg-2) 82%,transparent);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 16px 40px -14px rgba(0,0,0,.7)}
.tl button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line-3);background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:14px}
.tl .tly{font:300 40px/1 var(--f-num);letter-spacing:-.01em;min-width:150px}
.tl .tly small{display:block;font:500 11px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-top:4px}
.tl input[type=range]{width:100%;accent-color:var(--accent)}
.tl .tls{font-size:12px;color:var(--ink-2);text-align:right;line-height:1.5;white-space:nowrap}.tl .tls b{font:400 18px var(--f-num);color:var(--ink)}
.tl .tlx{background:transparent;color:var(--ink);border-color:var(--line-2);width:30px;height:30px;font-size:16px}
.mside .tlgo{width:100%;margin:4px 0 10px}

@media (prefers-reduced-motion:reduce){
  #main.ux-enter *,.card,.bcard{animation:none!important;transition:none!important}
  .card:hover,.bcard:hover{transform:none}
}

/* v2 — gradient chart fills, alerts, section marks */
.chbar.k0{fill:url(#chg-k0)}.chbar.k1{fill:url(#chg-k1)}.chbar.k2{fill:url(#chg-k2)}.chbar.k3{fill:url(#chg-k3)}.chbar.k4{fill:url(#chg-k4)}.chbar.k5{fill:url(#chg-k5)}.chbar.k6{fill:url(#chg-k6)}.chbar.k7{fill:url(#chg-k7)}
.chbar{rx:2px}
.charea{opacity:1}.charea.k0{fill:url(#cha-k0)}.charea.k1{fill:url(#cha-k1)}.charea.k2{fill:url(#cha-k2)}.charea.k3{fill:url(#cha-k3)}.charea.k4{fill:url(#cha-k4)}.charea.k5{fill:url(#cha-k5)}.charea.k6{fill:url(#cha-k6)}
.chline{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--k) 45%,transparent))}
.chline.dash{filter:none}
.chpt{stroke:var(--bg-2);stroke-width:2}
.chh-b,.chm,.chf-b{border-radius:999px;overflow:hidden}.chh-b i{border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--k) 55%,transparent),var(--k))}
.chh-b .ghost{border-radius:1px}

.recs div,.banner{border-radius:8px;border:1px solid var(--line);border-left:3px solid var(--warn);background:linear-gradient(90deg,var(--warn-a),transparent 75%);padding:11px 14px 11px 16px}
.recs div.good{border-left-color:var(--good);background:linear-gradient(90deg,var(--good-a),transparent 75%)}
.recs div.crit{border-left-color:var(--crit);background:linear-gradient(90deg,var(--crit-a),transparent 75%)}

main h2::before,.jsec-h h3::before{content:"";flex:none;width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--accent),var(--data));box-shadow:0 0 10px color-mix(in srgb,var(--accent) 50%,transparent)}
.jsec-h h3{display:flex;align-items:center;gap:8px}
.panel h3,.panel h4{color:var(--ink)}

/* inputs: softer and they light up on focus */
input[type=search],input[type=text],input[type=number],input[type=date],select,textarea{border-radius:8px;transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}
input[type=search]:focus,input[type=text]:focus,input[type=number]:focus,input[type=date]:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-a);outline:none}
.hbtn,#refresh,.fieldlink{border-radius:8px}
.hbtn:hover,#refresh:hover,.fieldlink:hover{box-shadow:0 0 0 3px var(--accent-a)}
.recs div.good,.recs div.crit{border-top-color:var(--line);border-right-color:var(--line);border-bottom-color:var(--line)}

/* ===================== photos (public/photos.js) ===================== */
.phgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.phgrid.wall{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.phgrid.strip{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.phgrid.film{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}.phgrid.film .ph{flex:0 0 220px;scroll-snap-align:start}
.ph{position:relative;display:block;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg-inset);aspect-ratio:4/3;cursor:zoom-in;
  transition:transform 200ms var(--ease),box-shadow 200ms var(--ease),border-color 200ms var(--ease)}
.ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 600ms var(--ease),filter 300ms}
.ph:hover{transform:translateY(-2px);border-color:var(--line-2);box-shadow:0 16px 34px -16px rgba(0,0,0,.7)}
.ph:hover img{transform:scale(1.05)}
.ph::after{content:"";position:absolute;inset:auto 0 0 0;height:55%;background:linear-gradient(180deg,transparent,rgba(2,3,30,.82));pointer-events:none}
.ph .phk{position:absolute;top:8px;left:8px;z-index:1;padding:2px 7px;border-radius:999px;background:rgba(2,3,30,.6);color:#fff;font:600 10px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.ph .phl{position:absolute;left:10px;right:10px;bottom:8px;z-index:1;color:#fff;font-size:12px;line-height:1.35;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ph .phl small{display:block;color:rgba(255,255,255,.72);font-size:11px}
.phgrid.strip .ph::after,.phgrid.film .ph::after{height:35%}
.ph.broken{display:none}
/* lightbox */
body.lbopen{overflow:hidden}
.phlb{position:fixed;inset:0;z-index:200;display:grid;grid-template-rows:auto 1fr auto;background:rgba(1,2,20,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:ux-fade 160ms both;color:#fff}
.phlb-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 20px}
.phlb-top b{display:block;font-size:15px}.phlb-top b a{color:#fff}.phlb-top span{display:block;color:rgba(255,255,255,.7);font-size:12.5px;margin-top:2px}
.phlb-act{display:flex;align-items:center;gap:8px}.phlb-act .hbtn{color:#fff;border-color:rgba(255,255,255,.3)}.phlb-n{font:400 13px var(--f-num);color:rgba(255,255,255,.7);margin-right:6px}
.phlb-stage{position:relative;display:grid;place-items:center;min-height:0;padding:0 64px}
.phlb-stage img{max-width:100%;max-height:calc(100vh - 190px);object-fit:contain;border-radius:6px;box-shadow:0 30px 80px -20px rgba(0,0,0,.8);animation:ux-fade 220ms both}
.phlb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;font-size:28px;line-height:1}
.phlb-nav:hover{background:rgba(255,255,255,.18)}.phlb-nav.l{left:12px}.phlb-nav.r{right:12px}
.phlb-strip{display:flex;justify-content:center;gap:6px;padding:12px 16px 16px;overflow-x:auto}
.phlb-strip button{flex:none;width:72px;height:52px;padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;background:none;opacity:.55;transition:opacity 150ms}
.phlb-strip button.on{border-color:var(--accent);opacity:1}.phlb-strip button:hover{opacity:1}.phlb-strip img{width:100%;height:100%;object-fit:cover}
/* before / after */
.phcmp{position:relative;max-width:1100px;aspect-ratio:16/9;border-radius:12px;overflow:hidden;cursor:ew-resize;user-select:none;touch-action:none;border:1px solid var(--line-2);background:var(--bg-inset)}
.phcmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.phcmp-a{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--x)) 0 0)}
.phcmp-h{position:absolute;top:0;bottom:0;left:var(--x);width:2px;background:#fff;box-shadow:0 0 14px rgba(0,0,0,.6);transform:translateX(-1px)}
.phcmp-h span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:#fff;color:#03042c;display:grid;place-items:center;font-weight:700;font-size:13px;box-shadow:0 6px 18px rgba(0,0,0,.5)}
.phcmp-l{position:absolute;top:12px;padding:3px 9px;border-radius:999px;background:rgba(2,3,30,.65);color:#fff;font:600 11px var(--f-disp);letter-spacing:.12em;text-transform:uppercase}.phcmp-l.l{left:12px}.phcmp-l.r{right:12px}
/* job hero */
.jhead.hashero{position:relative;padding-top:150px;isolation:isolate}
.jhero{position:absolute;left:calc(-1 * var(--gut));right:calc(-1 * var(--gut));top:-28px;height:300px;z-index:-1;background-size:cover;background-position:center 40%;cursor:zoom-in;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.75) 45%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.75) 45%,transparent 100%)}
.jhero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,4,44,.15),rgba(3,4,44,.55) 60%,var(--bg))}
:root[data-theme="light"] .jhero::after{background:linear-gradient(180deg,rgba(244,244,242,0),rgba(244,244,242,.5) 60%,var(--bg))}
.jhead.hashero .jtitle h1{text-shadow:0 2px 18px rgba(0,0,0,.55)}
/* ops cards with a cover */
.card.hascover{padding-top:0}
.ccover{position:relative;height:110px;margin:0 -18px 14px -20px;border-radius:var(--r) var(--r) 0 0;background-size:cover;background-position:center;overflow:hidden}
.ccover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,color-mix(in srgb,var(--bg-2) 92%,transparent))}
.ccover span{position:absolute;right:10px;top:8px;z-index:1;padding:2px 7px;border-radius:999px;background:rgba(2,3,30,.6);color:#fff;font:600 10px var(--f-disp);letter-spacing:.12em;text-transform:uppercase}
.card:hover .ccover{filter:saturate(1.15)}
/* faces */
.face{display:inline-grid;place-items:center;flex:none;border-radius:50%;object-fit:cover;border:1px solid var(--line-2);background:var(--bg-3);vertical-align:middle}
.face.ini{color:var(--ink-2);font:600 11px var(--f-ui);letter-spacing:.02em;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 22%,var(--bg-3)),color-mix(in srgb,var(--data) 22%,var(--bg-3)))}
.jperson .face{float:left;margin:2px 10px 0 0}
.tmname{display:flex;align-items:center;gap:10px}
.tmhead{display:flex;align-items:center;gap:18px}.tmhead .face{border-width:2px;box-shadow:0 8px 24px -8px rgba(0,0,0,.6)}
.mpimg{display:block;width:100%;max-width:260px;height:120px;object-fit:cover;border-radius:6px;margin:0 0 6px;cursor:pointer}
.wr-air{position:relative;height:100%;min-height:260px;border-radius:8px;background-size:cover;background-position:center;overflow:hidden;animation:ux-fade 900ms both}
.wr-air>div{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(180deg,transparent,rgba(2,3,30,.85));color:#fff}
.wr-air b{display:block;font-size:14px}.wr-air span{font-size:12px;color:rgba(255,255,255,.75)}

/* ===================== quick actions (public/jobquick.js) ===================== */
.qabar{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
.qabar button{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px 0 11px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);color:var(--ink);font:500 13px var(--f-ui);box-shadow:var(--lift);
  transition:border-color 150ms var(--ease),transform 150ms var(--ease),background 150ms var(--ease)}
.qabar button svg{width:16px;height:16px;fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex:none}
.qabar button:hover{border-color:var(--accent);transform:translateY(-1px);background:var(--accent-a)}
.qabar button:active{transform:none}
.qamini{position:absolute;right:12px;bottom:12px;display:flex;gap:4px;opacity:0;transform:translateY(4px);transition:opacity 160ms var(--ease),transform 160ms var(--ease);z-index:2}
.card:hover .qamini,.card:focus-within .qamini{opacity:1;transform:none}
.qamini button{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-3);padding:0}
.qamini button svg{width:15px;height:15px;fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.qamini button:hover{border-color:var(--accent);background:var(--accent-a)}
@media (hover:none){.qamini{opacity:1;transform:none}}
.qa-job{margin:-4px 0 12px;color:var(--ink-3);font-size:12.5px}
.qa-pct{display:flex;flex-direction:column;gap:14px;margin:4px 0 10px}
.qa-pr{display:grid;grid-template-columns:150px 1fr 70px 96px;gap:12px;align-items:center}
.qa-pl b{display:block;font-size:13.5px}.qa-pl small{color:var(--ink-3);font-size:11.5px}
.qa-pr input[type=range]{width:100%;accent-color:var(--accent)}
.qa-pr input[type=number]{width:70px;text-align:right;font:400 18px var(--f-num)}
.qa-pe{text-align:right;line-height:1.2}.qa-pe b{display:block;font:400 20px var(--f-num)}.qa-pe b.bad{color:var(--crit)}.qa-pe b.good{color:var(--good)}.qa-pe small{color:var(--ink-3);font-size:11px}
.qa-drop input[type=file]{width:100%;padding:18px;border:1px dashed var(--line-3);border-radius:10px;background:var(--bg-inset)}
.qa-prev{display:flex;flex-wrap:wrap;gap:6px}.qa-prev img{width:72px;height:54px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.qa-inl select{min-width:180px;padding:4px 28px 4px 10px;height:30px;border-radius:999px;font-size:12.5px;cursor:pointer}
.qa-inl select.good{border-color:color-mix(in srgb,var(--good) 55%,transparent);color:var(--good)}
.qa-inl select.warn{border-color:color-mix(in srgb,var(--warn) 55%,transparent);color:var(--warn)}
.qa-inl select.empty{color:var(--ink-3)}
.qa-hist{display:flex;flex-direction:column}
.qa-hist>div{display:grid;grid-template-columns:130px 140px 1fr auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
.qa-hist>div span{color:var(--ink-3);font-size:12px}.qa-hist>div em{font-style:normal;color:var(--ink-2)}.qa-hist>div.undone em{text-decoration:line-through;opacity:.6}
.uxtoast.ok{border-color:color-mix(in srgb,var(--good) 55%,transparent)}.uxtoast.ok::before{content:"✓ ";color:var(--good);font-weight:700}
.bmodal .bm-in{max-width:min(720px,94vw)}
/* bid board drag & drop */
.bcard[draggable=true]{cursor:grab}.bcard[draggable=true]:active{cursor:grabbing}
body.bdragging .bcol{transition:background 150ms,box-shadow 150ms}
body.bdragging .bcol.dropok{background:var(--accent-a);box-shadow:inset 0 0 0 2px var(--accent)}
@media (max-width:700px){.qa-pr{grid-template-columns:1fr 70px;}.qa-pr .qa-pl{grid-column:1/-1}.qa-pr .qa-pe{grid-column:1/-1;text-align:left}.qa-hist>div{grid-template-columns:1fr auto}.qa-hist>div span,.qa-hist>div b{grid-column:1}}

/* ===================== brand: the RAMCON logo ===================== */
.brand .mark{display:inline-flex;align-items:center;letter-spacing:0;margin-right:0}
.brand .mark img{height:30px;width:auto;display:block;filter:drop-shadow(0 2px 10px rgba(0,0,0,.35))}
.logo-l{display:none!important}
:root[data-theme="light"] .logo-d{display:none!important}:root[data-theme="light"] .logo-l{display:block!important}
.brand .sub{padding-left:14px}
.lg-mark{letter-spacing:0;margin:0 auto 4px}.lg-mark img{height:70px;width:auto;display:block;margin:0 auto}
.wr-brand{display:flex;align-items:center;gap:14px}.wr-brand img{height:30px;width:auto;display:block}
.login{background:linear-gradient(180deg,rgba(3,4,44,.55),rgba(3,4,44,.92)),var(--hero,none) center/cover no-repeat,var(--bg)!important}
.login::before{display:none}
:root[data-theme="light"] .login{background:linear-gradient(180deg,rgba(244,244,242,.5),rgba(244,244,242,.95)),var(--hero,none) center/cover no-repeat,var(--bg)!important}
.lg-card{background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);max-width:400px}
.lg-hero-cap{position:fixed;left:24px;bottom:20px;color:rgba(255,255,255,.75);font-size:12px;letter-spacing:.04em}

/* ===================== notifications (public/notify-ui.js) ===================== */
.bellbtn{position:relative;width:34px;padding:0}.bellbtn svg{width:16px;height:16px}
.bellbtn.has svg{animation:ring 2.4s var(--ease) 1}
@keyframes ring{0%,100%{transform:none}10%{transform:rotate(14deg)}20%{transform:rotate(-12deg)}30%{transform:rotate(8deg)}40%{transform:rotate(-4deg)}50%{transform:none}}
.bdot{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--crit);color:#fff;font:700 10.5px/18px var(--f-ui);letter-spacing:0;box-shadow:0 0 0 2px var(--bg)}
.ntpanel{position:fixed;top:58px;right:18px;z-index:150;width:min(420px,calc(100vw - 24px));max-height:min(640px,calc(100vh - 80px));display:flex;flex-direction:column;
  background:color-mix(in srgb,var(--bg-2) 96%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 30px 80px -20px rgba(0,0,0,.75);animation:ux-rise 180ms var(--ease) both}
.nt-h{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.nt-h b{flex:1;font:600 13px var(--f-disp);letter-spacing:.16em;text-transform:uppercase}
.nt-x{background:none;border:0;font-size:20px;color:var(--ink-3);padding:0 4px}
.nt-list{overflow:auto;padding:6px}
.nt-g{padding:10px 10px 4px;font:600 10.5px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.nt-i{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:start;width:100%;text-align:left;padding:10px;border:0;border-radius:10px;background:none;color:var(--ink)}
.nt-i:hover{background:var(--hover)}
.nt-i.unread{background:var(--accent-a)}.nt-i.unread .nt-t b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:7px;vertical-align:1px}
.nt-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--bg-3);font-size:13px;color:var(--accent)}
.nt-i.s-good .nt-ic{color:var(--good)}.nt-i.s-warn .nt-ic{color:var(--warn)}.nt-i.s-crit .nt-ic{color:var(--crit);background:var(--crit-a)}
.nt-t b{display:block;font-size:13px;font-weight:600;line-height:1.35}.nt-t small{display:block;color:var(--ink-3);font-size:12px;margin-top:2px;line-height:1.35}
.nt-a{font-size:11px;color:var(--ink-3);white-space:nowrap}
.nt-empty{padding:30px 20px;text-align:center;color:var(--ink-3);font-size:13px;line-height:1.6}
.nt-f{padding:10px 16px;border-top:1px solid var(--line);font-size:12.5px}
/* automations */
.au-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:6px 0 4px}
.au-card{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--lift)}
.au-card.live{border-color:color-mix(in srgb,var(--good) 55%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--good) 30%,transparent),var(--lift)}
.au-card.safe .au-v{color:var(--warn)}.au-card.live .au-v{color:var(--good)}
.au-k{font:600 11px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.au-v{font:300 30px var(--f-num);margin:6px 0 4px}
.au-sw{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:13px}.au-btns{display:flex;gap:6px;margin-top:10px}
.au-setup{margin:12px 0;padding:14px 18px;border:1px dashed var(--line-3);border-radius:12px;font-size:13px}.au-setup pre{margin:10px 0;padding:12px;background:var(--bg-inset);border-radius:8px;font-size:12.5px;overflow:auto}
.au-rules{display:flex;flex-direction:column}
.au-rule{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(180px,1fr) auto;gap:18px;align-items:center;padding:14px 4px;border-bottom:1px solid var(--line)}
.au-rl b{font-size:14px}.au-rl p{margin:4px 0;color:var(--ink-2);font-size:12.5px;line-height:1.45}.au-rl small,.au-rw small{display:block;color:var(--ink-3);font-size:11.5px;margin-top:2px}
.au-rw{font-size:13px}.au-tag{margin-left:8px;padding:1px 7px;border-radius:999px;border:1px solid var(--line-2);font-size:10.5px;color:var(--ink-3);vertical-align:2px}
.au-rm{display:flex;border:1px solid var(--line-2);border-radius:999px;overflow:hidden}.au-rm button{border:0;background:none;padding:6px 12px;font-size:12px;color:var(--ink-3)}.au-rm button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}
.au-out{display:flex;flex-direction:column}.au-o{display:grid;grid-template-columns:80px 1fr auto;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line)}
.au-o b{font-size:13.5px}.au-o small{display:block;color:var(--ink-3);font-size:12px;margin-top:2px}.au-ob{display:flex;gap:6px}
.au-os{justify-self:start;padding:2px 8px;border-radius:999px;font:600 10.5px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line-2)}
.au-o.s-held .au-os{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,transparent)}.au-o.s-sent .au-os{color:var(--good);border-color:color-mix(in srgb,var(--good) 50%,transparent)}.au-o.s-failed .au-os{color:var(--crit)}
.au-grps{display:flex;flex-direction:column;gap:8px;margin:10px 0 14px}.au-grp{display:grid;grid-template-columns:220px 1fr auto;gap:8px;align-items:center}.gmw{display:flex;gap:6px;align-items:center;font-size:12px;white-space:nowrap}
.au-prev{position:fixed;inset:0;z-index:210;display:grid;place-items:center;background:var(--scrim)}.au-prev>div{width:min(760px,96vw);height:min(90vh,1000px);display:flex;flex-direction:column;background:var(--bg-2);border-radius:12px;overflow:hidden;border:1px solid var(--line-2)}
.au-prev-h{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}.au-prev iframe{flex:1;border:0;background:#eef0f6}
@media (max-width:800px){.au-rule{grid-template-columns:1fr}.au-grp{grid-template-columns:1fr}}

/* ===================== lifecycle (public/flows-ui.js) ===================== */
.fl-board{display:grid;grid-template-columns:repeat(6,minmax(218px,1fr));gap:12px;overflow-x:auto;padding-bottom:10px;align-items:start}
.fl-col{background:var(--bg-inset);border:1px solid var(--line);border-radius:12px;min-height:200px}
.fl-col>header{position:sticky;top:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;padding:12px 14px 10px;border-bottom:1px solid var(--line);border-radius:12px 12px 0 0;background:var(--surface)}
.fl-col>header b{font:600 13px var(--f-disp);letter-spacing:.14em;text-transform:uppercase}.fl-col>header small{width:100%;color:var(--ink-3);font-size:11.5px}
.fl-col>header::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:2px}
.flc-mobilize>header::before{background:var(--warn)}.flc-build>header::before{background:var(--good)}.flc-punch>header::before{background:var(--data)}.flc-closeout>header::before{background:var(--metal)}.flc-done>header::before{background:var(--ink-3)}
.fl-cards{display:flex;flex-direction:column;gap:10px;padding:10px}
.fl-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;box-shadow:var(--lift);transition:transform 160ms var(--ease),border-color 160ms var(--ease)}
.fl-card:hover{transform:translateY(-2px);border-color:var(--line-2)}
.fl-card.ready{border-color:color-mix(in srgb,var(--good) 60%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--good) 35%,transparent),var(--lift)}
.fl-cv{height:74px;background-size:cover;background-position:center;position:relative}.fl-cv::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--bg-2) 85%,transparent))}
.fl-cb{padding:10px 12px 12px}
.fl-t{display:flex;justify-content:space-between;gap:8px}.fl-t b{display:block;font-size:13.5px;line-height:1.3}.fl-t small{display:block;color:var(--ink-3);font-size:11.5px;margin-top:3px}
.fl-n{font:400 12px var(--f-num);color:var(--ink-3);letter-spacing:.04em}
.fl-ring{flex:none}.fl-done{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--good-a);color:var(--good);font-weight:700}.fl-done.big{width:64px;height:64px;font-size:26px}
.fl-who{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12px}
.fl-next{margin-top:8px;font-size:12.5px;color:var(--ink-2)}.fl-next.go{color:var(--good);font-weight:600}
.fl-gaps{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.fl-gaps span{padding:2px 7px;border-radius:999px;background:var(--crit-a);color:var(--ink-2);font-size:10.5px}
.fl-steps{display:flex;gap:0;margin:6px 0 18px;overflow-x:auto}
.fl-step{flex:1;min-width:110px;display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:3px solid var(--line);color:var(--ink-3);font-size:12.5px}
.fl-step i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11.5px;border:1px solid var(--line-2)}
.fl-step.past{border-top-color:var(--good);color:var(--ink-2)}.fl-step.past i{background:var(--good-a);color:var(--good);border-color:transparent}
.fl-step.now{border-top-color:var(--accent);color:var(--ink);font-weight:600}.fl-step.now i{background:var(--accent);color:var(--accent-ink);border-color:transparent;box-shadow:0 0 0 4px var(--accent-a)}
.fl-sum{display:flex;align-items:center;gap:18px;padding:16px 18px;margin-bottom:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--lift)}
.fl-sum>div{flex:1}.fl-sum b{font-size:16px}.fl-sum p{margin:4px 0 0;color:var(--ink-2);font-size:13px}
.fl-sec.cur{border-left:2px solid var(--accent);padding-left:12px}
.fl-it{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line)}
.fl-it b{font-size:13.5px;font-weight:500}.fl-it small{display:block;color:var(--ink-3);font-size:12px;margin-top:2px}
.fl-ic{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:1px solid var(--line-2);color:var(--ink-3)}
.fl-it.s-ok .fl-ic{background:var(--good-a);color:var(--good);border-color:transparent}.fl-it.s-miss .fl-ic{background:var(--crit-a);color:var(--crit);border-color:transparent}
.fl-it.s-exc .fl-ic{background:var(--warn-a);color:var(--warn);border-color:transparent}.fl-it.s-na{opacity:.55}.fl-it.s-manual .fl-ic,.fl-it.s-unk .fl-ic{border-style:dashed}
.fl-ia{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
/* Friday update */
.fr-tools{display:flex;gap:8px;align-items:center}
.fr-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:4px 0 16px}.fr-head p{margin:6px 0 0}
.fr-list{display:flex;flex-direction:column;gap:12px}
.fr-job{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--lift)}.fr-job.done{border-color:color-mix(in srgb,var(--good) 45%,transparent)}
.fr-top{display:flex;align-items:center;gap:12px}.fr-top>div:not(.fr-cv){flex:1}.fr-top b{display:block;font-size:14.5px}.fr-top small{color:var(--ink-3);font-size:12px}
.fr-cv{width:84px;height:56px;border-radius:8px;background-size:cover;background-position:center;flex:none}
.fr-ok{color:var(--good);font-size:12.5px;font-weight:600}
.fr-sl{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:12px 0 8px}.fr-sl label{font-size:12.5px;color:var(--ink-2)}.fr-sl .v{font:400 18px var(--f-num);color:var(--ink);margin-left:6px}
.fr-sl input[type=range]{width:100%;accent-color:var(--accent);height:28px}
.fr-sug{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-top:-6px;padding:6px 10px;border:1px dashed var(--accent);border-radius:8px;background:var(--accent-a);font-size:12.5px}.fr-sug.low{border-color:var(--warn);background:var(--warn-a)} /* FLOW-05 */
.fr-tx{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fr-tx textarea{width:100%;resize:vertical;font:inherit;font-size:13px;padding:8px 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-inset);color:var(--ink)}
.fr-bar{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line-2);border-radius:12px;background:color-mix(in srgb,var(--bg-2) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
@media (max-width:760px){.fr-sl,.fr-tx{grid-template-columns:1fr}.fl-board{grid-template-columns:repeat(6,82vw)}}

/* ===================== marketing (public/marketing-ui.js) ===================== */
.mk-safe{margin:12px 0 0;padding:10px 14px;border-radius:10px;border:1px dashed color-mix(in srgb,var(--warn) 55%,transparent);background:var(--warn-a);font-size:13px}
.mk-camps{display:flex;flex-direction:column;gap:12px}
.mk-camp{padding:16px 18px 14px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;background:var(--surface);box-shadow:var(--lift)}
.mk-camp.c-good{border-left-color:var(--good)}.mk-camp.c-warn{border-left-color:var(--warn)}.mk-camp.c-data{border-left-color:var(--data)}.mk-camp.c-crit{border-left-color:var(--crit)}.mk-camp.c-ink{border-left-color:var(--ink-3)}
.mk-camp.off{opacity:.6}
.mk-ch{display:flex;justify-content:space-between;gap:16px}.mk-ch b{font-size:15px}.mk-ch p{margin:4px 0 0;color:var(--ink-2);font-size:13px}
.mk-sw{display:flex;align-items:center;gap:6px;font-size:12.5px;white-space:nowrap}
.mk-steps{display:flex;align-items:stretch;gap:8px;margin:14px 0 10px;overflow-x:auto}
.mk-step{flex:1;min-width:200px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-inset)}.mk-step b{display:block;font-size:13px;font-weight:500;margin:4px 0 8px;line-height:1.35}
.mk-day{font:600 10.5px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.mk-arr{align-self:center;font-style:normal;color:var(--ink-3)}
.mk-sb{display:flex;gap:6px;flex-wrap:wrap}
.mk-stats{display:flex;flex-wrap:wrap;gap:16px;font-size:12.5px;color:var(--ink-2)}.mk-stats b{color:var(--ink);font-family:var(--f-num);font-size:15px;font-weight:400}
.mk-mem{margin-top:10px}
.mk-auds{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.mk-aud{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--lift)}.mk-an{display:flex;justify-content:space-between;gap:10px}.mk-an span{font-size:12.5px;color:var(--ink-2)}.mk-an span b{font:400 20px var(--f-num);color:var(--ink)}
.mk-aud p{margin:4px 0 8px;color:var(--ink-2);font-size:12.5px}.mk-aud small{display:block;color:var(--ink-3);font-size:11.5px;margin-bottom:8px}
.mk-aud ul{margin:0;padding:0;list-style:none}.mk-aud li{padding:6px 0;border-top:1px solid var(--line);font-size:12.5px}.mk-aud li small{display:block;margin:2px 0 0}
.mk-sps{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.mk-sp{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:var(--lift)}
.mk-spi{height:180px;background-size:cover;background-position:center;position:relative}.mk-spi span{position:absolute;left:10px;bottom:10px;padding:3px 9px;border-radius:999px;background:rgba(2,3,30,.7);color:#fff;font-size:11.5px}
.mk-spb{padding:12px 14px 14px}.mk-spb b{display:block;font-size:14px;margin:2px 0 6px;line-height:1.35}.mk-spb p{margin:0 0 10px;font-size:12.5px;color:var(--ink-2);line-height:1.5}
.mk-rules ul{margin:0;padding-left:18px;line-height:1.8;font-size:13.5px}
.fl-lag{margin-top:6px;font-size:11.5px;color:var(--warn,#e2aa52);border-left:2px solid var(--warn,#e2aa52);padding-left:7px}
.fl-sec.past{opacity:.86}.fl-sec.past>summary{cursor:pointer;list-style:none}.fl-sec.past>summary::-webkit-details-marker{display:none}.fl-sec.past>summary::after{content:'Show';margin-left:auto;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.fl-sec.past[open]>summary::after{content:'Hide'}
.fl-mq{margin:0 0 12px;padding:10px 12px;border-radius:var(--r);background:var(--panel2,rgba(255,255,255,.04))}.fl-mq small{display:block;color:var(--muted);margin-top:2px}
.uxtoast.bad{border-color:color-mix(in srgb,var(--bad,#f0766b) 60%,transparent)}.uxtoast.bad::before{content:"! ";color:var(--bad,#f0766b);font-weight:700}
/* ---------- What's new ---------- */
.bmodal .wn-in{max-width:1040px!important;width:calc(100vw - 32px)!important;padding:0!important;overflow:hidden}
.wn-h{display:flex;align-items:center;gap:18px;padding:22px 26px;background:#010160;border-bottom:3px solid var(--gold)}.wn-h img{height:38px;width:auto}
.wn-h b{display:block;color:#fff;font:600 20px var(--f-disp);letter-spacing:.06em}.wn-h span{color:rgba(255,255,255,.72);font-size:13px}
.wn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;padding:20px 22px;max-height:62vh;overflow:auto}
.wn-c{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);cursor:pointer;transition:transform 160ms var(--ease),border-color 160ms var(--ease)}
.wn-c:hover{transform:translateY(-2px);border-color:var(--line-2)}.wn-c i{font-style:normal;font-size:20px;width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--bg-inset)}
.wn-c b{font-size:15px}.wn-c p{margin:0;color:var(--ink-2);font-size:13px;line-height:1.5}.wn-c span{margin-top:auto;padding-top:6px;font:600 12px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.wn .hc-bar{padding:12px 22px 18px}
@media (max-width:640px){.wn-h{padding:16px}.wn-grid{padding:14px}}
/* ---------- Reports ---------- */
.rp-grid{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start;margin-top:14px}
.rp-cat{position:sticky;top:12px;max-height:calc(100vh - 160px);overflow:auto;padding-right:4px}
.rp-cat h4{font:600 11px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:14px 4px 6px}
.rp-i{display:block;width:100%;text-align:left;border:1px solid transparent;background:none;border-radius:10px;padding:9px 11px;color:var(--ink);cursor:pointer;margin-bottom:2px}
.rp-i b{display:block;font-size:13.5px}.rp-i span{display:block;font-size:12px;color:var(--ink-3);line-height:1.35;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rp-i:hover{background:var(--surface)}.rp-i.on{background:var(--surface);border-color:var(--line-2);box-shadow:inset 3px 0 0 var(--accent)}
.rp-main{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px}
.rp-h{display:flex;gap:12px;align-items:flex-start}.rp-h h3{margin:0;font:600 20px var(--f-disp);letter-spacing:.04em}.rp-h p{margin:4px 0 0;color:var(--ink-2);font-size:13.5px}
.rp-star{margin-left:auto;border:1px solid var(--line);background:none;border-radius:50%;width:34px;height:34px;color:var(--ink-3);font-size:16px;cursor:pointer}.rp-star.on{color:var(--gold);border-color:var(--gold)}
.rp-params{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:14px 0 4px;padding:12px;border-radius:10px;background:var(--bg-inset)}
.rp-params label{display:flex;flex-direction:column;gap:4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.rp-params input,.rp-params select{min-width:150px}
.rp-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 8px}.rp-bar>div{flex:1;min-width:220px;font-size:13px}.rp-bar>div span{color:var(--ink-2)}.rp-bar small{display:block;color:var(--ink-3);font-size:11px}.rp-bar input{max-width:200px}
.rp-wrap{overflow:auto;max-height:calc(100vh - 330px);border:1px solid var(--line);border-radius:10px}
.rp-t{width:100%;border-collapse:collapse;font-size:12.5px}.rp-t th{position:sticky;top:0;z-index:1;background:var(--surface);text-align:left;font:600 11px var(--f-disp);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);padding:9px 10px;border-bottom:2px solid var(--line-2);cursor:pointer;white-space:nowrap}
.rp-t th.up::after{content:" ▲";font-size:9px}.rp-t th.dn::after{content:" ▼";font-size:9px}.rp-t td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}.rp-t .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rp-t tbody tr:hover td{background:var(--bg-inset)}.rp-t tfoot td{position:sticky;bottom:0;background:var(--surface);font-weight:700;border-top:2px solid var(--line-2)}
.rp-empty{display:grid;place-items:center;text-align:center;gap:6px;min-height:240px;color:var(--ink-2)}.rp-empty b{font:600 20px var(--f-disp)}
.rp-sch{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line)}.rp-sch div{flex:1}.rp-sch b{display:block}.rp-sch span{font-size:12.5px;color:var(--ink-2)}
@media (max-width:900px){.rp-grid{grid-template-columns:1fr}.rp-cat{position:static;max-height:none}}
@media print{.rp-cat,.rp-params,.rp-bar{display:none}}
/* Friday update print (WO 2.17): the job blocks only */
@media print{header.top,#filters,.fr-bar,.fr-tools,#drawer,#scrim{display:none!important}.fr-job{break-inside:avoid}}
/* ---------- Meeting minutes (WO 2.17): one calm block per job; decision jobs carry a thin colored edge ---------- */
.mm-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:4px 0 14px}.mm-head p{margin:6px 0 0}.mm-head p b{color:var(--ink)}
.mm-tools{display:flex;gap:8px;align-items:center}.mm-chk{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);cursor:pointer}
.mm-print-h{display:none}
.mm-gh{display:flex;align-items:baseline;gap:10px;margin:22px 0 10px;font:600 13px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.mm-gh .count{font:500 12px var(--f-num);letter-spacing:0;padding:1px 8px;border:1px solid var(--line-2);border-radius:var(--r);color:var(--ink)}.mm-gh small{letter-spacing:0;text-transform:none;font:400 12px var(--f-num)}
.mm-job{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:16px 20px 14px;margin:0 0 12px}
.mm-job.dec::before{content:"";position:absolute;left:-1px;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--ink-3)}
.mm-job.crit::before{background:var(--crit)}.mm-job.warn::before{background:var(--warn)}
.mm-t{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.mm-t b{font-size:16px;font-weight:600}
.mm-n{background:none;border:0;padding:0;cursor:pointer;font:500 15px var(--f-num);color:var(--accent)}.mm-n:hover{text-decoration:underline}
.mm-life{font:600 10.5px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line-2);border-radius:4px;padding:1px 6px}
.mm-line{margin-top:4px;color:var(--ink-2)}.mm-line2{margin-top:2px;color:var(--ink-3);font-size:12.5px}.mm-line2 b{color:var(--ink);font-weight:600}
.mm-why{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin:10px 0 2px;padding:8px 12px;border-radius:8px;background:var(--watchbg);font-size:12.5px}
.mm-why.crit{background:var(--crit-a)}.mm-why.warn{background:var(--warn-a)}
.mm-wl{font:600 10.5px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}.mm-rs{color:var(--ink)}.mm-rs.s1{color:var(--ink-2)}.mm-rs+.mm-rs::before{content:"·";margin-right:14px;color:var(--ink-3)}
.mm-grid{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:6px 28px;margin-top:10px}
.mm-s{padding:8px 0 6px;border-top:1px solid var(--line)}.mm-grid>div>.mm-s:first-child{border-top:0}
.mm-s h4{margin:0 0 6px;font:600 10.5px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.mm-s h4 small{letter-spacing:0;text-transform:none;font-weight:400;margin-left:6px}
.mm-r{display:flex;justify-content:space-between;gap:12px;padding:2px 0;font-size:12.5px}.mm-r>span{color:var(--ink-3);flex:none}.mm-r>b{font-weight:500;text-align:right;color:var(--ink)}
.mm-r.warn>b{color:var(--warn)}.mm-r.bad>b{color:var(--crit)}.neg{color:var(--crit)}
.mm-mute{color:var(--ink-3);font-size:12px}.mm-fail{color:var(--warn);font-size:12px}
.mm-ny{font-size:12px;color:var(--ink-3);padding:2px 0}.mm-ny i{font-style:normal;opacity:.75;margin-left:4px}.mm-ny i::before{content:"— "}
.mm-pc{display:grid;grid-template-columns:78px 1fr 40px;align-items:center;gap:8px;font-size:12.5px;padding:2px 0}.mm-pc span{color:var(--ink-3)}.mm-pc b{font-weight:500;text-align:right}
.mm-bar{height:5px;border-radius:3px;background:var(--line-2);overflow:hidden}.mm-bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.mm-tb{width:100%;border-collapse:collapse;font-size:12.5px;margin-bottom:4px}.mm-tb th,.mm-tb td{padding:2px 0;text-align:right;font-weight:500}.mm-tb thead th{font-size:10.5px;color:var(--ink-3);font-weight:500}
.mm-tb th{background:none!important;border:0!important;text-transform:none;letter-spacing:0;position:static}.mm-tb tbody th{text-align:left;color:var(--ink-3);font:400 12.5px var(--f-num)}.mm-tb td{border:0}
.mm-fri{padding:6px 10px;margin:0 0 6px;border-radius:6px;background:var(--bg-inset)}.mm-fri p{margin:2px 0;font-size:12.5px}.mm-issue{color:var(--warn)}
.mm-hist{margin-top:6px}.mm-note{padding:5px 0;border-top:1px dashed var(--line)}.mm-note:first-child{border-top:0}
.mm-nd{font:500 12px var(--f-num);color:var(--ink-2)}.mm-nd small{margin-left:6px}.mm-note p{margin:1px 0 0;font-size:12.5px;white-space:pre-line}.mm-nt{display:block;color:var(--ink-2)}.mm-note em{color:var(--ink-3);font-style:normal}
.mm-old{display:none}.mm-showall .mm-old{display:block}.mm-morebtn{margin-top:4px}
.mm-aus{margin-top:4px}.mm-au{display:grid;grid-template-columns:52px 1fr auto;gap:8px;font-size:12px;padding:1px 0;color:var(--ink-2)}.mm-au b{font-weight:500;color:var(--ink)}.mm-au b.neg{color:var(--crit)}
.mm-li{font-size:12px;color:var(--ink-2);padding:1px 0}
.mm-foot{margin:18px 0 6px}
@media (max-width:1100px){.mm-grid{grid-template-columns:1fr 1fr}.mm-grid>div:nth-child(2){grid-column:span 2;order:3}}
@media (max-width:700px){.mm-grid{grid-template-columns:1fr}.mm-grid>div:nth-child(2){grid-column:auto}.mm-job{padding:14px 14px 12px}}
/* print: the blocks only, in ink on paper; a block is never split across pages when it fits on one */
@media print{
  #ws,#tabs,.mm-tools,.mm-bar2,.mm-morebtn,.itip,.vtip,.banner,.bmodal{display:none!important}
  body:has(.mm),body:has(.mm) #main{background:#fff!important}.an-root{display:none!important}
  .mm,.mm *{color:#000!important;background:transparent!important;box-shadow:none!important}
  .mm-print-h{display:block;font:600 13px var(--f-num);margin:0 0 8px;padding-bottom:6px;border-bottom:2px solid #000}
  .mm-head{display:none}.mm-old{display:block}
  .mm-job{break-inside:avoid;page-break-inside:avoid;border:1px solid #999!important;border-radius:6px;padding:10px 12px;margin:0 0 10px}
  .mm-job.dec::before{background:#000!important}.mm-why{border:1px solid #bbb;padding:4px 8px}
  .mm-grid{grid-template-columns:1fr 1.25fr 1fr!important;gap:2px 18px}.mm-grid>div:nth-child(2){grid-column:auto!important;order:0!important}
  .mm-bar{border:1px solid #888}.mm-bar i{background:#555!important}.mm-gh{break-after:avoid;margin:12px 0 6px}
  .mm-s{border-top-color:#ccc}.mm-fri{border:1px solid #ccc}
}
/* ---------- Account pursuits ---------- */
.pu-hero{display:flex;align-items:flex-end;gap:20px;width:100%;text-align:left;border:0;cursor:pointer;margin-top:14px;padding:26px 28px;border-radius:16px;color:#fff;
  background:radial-gradient(120% 160% at 0% 0%,#2238c9 0%,#010160 45%,#000030 100%);box-shadow:0 18px 40px rgba(1,1,96,.28);position:relative;overflow:hidden}
.pu-hero::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 35%,transparent),transparent 70%);animation:puGlow 6s ease-in-out infinite}
@keyframes puGlow{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.15);opacity:1}}
.pu-hero>div{flex:1;position:relative;z-index:1}.pu-k{font:600 11px var(--f-disp);letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}.pu-hero b{display:block;font:700 30px var(--f-disp);letter-spacing:.02em;margin:4px 0 6px}
.pu-hero p{margin:0;max-width:860px;color:rgba(255,255,255,.82);font-size:14px;line-height:1.5}.pu-hs{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:14px;font-size:13px;color:rgba(255,255,255,.8)}.pu-hs b{display:inline;font:700 18px var(--f-disp);color:var(--gold);margin:0 4px 0 0}
.pu-go{position:relative;z-index:1;font:600 12px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;background:var(--gold);color:#010160;padding:10px 16px;border-radius:24px}
.pu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:12px}
.pu-card{display:flex;flex-direction:column;gap:8px;text-align:left;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:var(--lift);transition:transform 160ms var(--ease),border-color 160ms}
.pu-card:hover{transform:translateY(-2px);border-color:var(--line-2)}.pu-top{display:flex;gap:8px;align-items:center;font-size:11px}
.pu-tier{font:600 10.5px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border-radius:5px;background:var(--bg-inset);color:var(--ink-2)}.pu-tier.t-Dream{background:var(--gold);color:#010160}.pu-tier.t-Active{background:var(--good-a);color:var(--good)}
.pu-kind{color:var(--ink-3)}.pu-od{margin-left:auto;color:var(--bad,#f0766b);font-weight:600}
.pu-name{font-size:17px;line-height:1.25}.pu-steps{display:flex;align-items:center;gap:4px}.pu-steps i{width:22px;height:6px;border-radius:3px;background:var(--line-2)}.pu-steps i.past{background:var(--accent)}.pu-steps i.now{background:var(--gold);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 25%,transparent)}.pu-steps span{margin-left:6px;font-size:12px;color:var(--ink-2)}
.pu-next{font-size:13px;color:var(--ink-2);line-height:1.4}.pu-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--ink-3);margin-top:auto}
.pu-head{display:flex;align-items:center;gap:20px;margin-top:12px;padding:22px 24px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pu-head.feature{background:radial-gradient(120% 160% at 0% 0%,#2238c9 0%,#010160 50%,#000030 100%);color:#fff;border:0}.pu-head h2{margin:6px 0 4px;font:700 30px var(--f-disp);letter-spacing:.02em}.pu-hl{flex:1}.pu-who{font-size:13px;opacity:.85}
.pu-ring{--p:0;width:110px;height:110px;border-radius:50%;display:grid;place-items:center;align-content:center;text-align:center;background:conic-gradient(var(--gold) calc(var(--p)*1%),rgba(127,127,160,.25) 0);position:relative}
.pu-ring::before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--surface)}.pu-head.feature .pu-ring::before{background:#010160}.pu-ring b,.pu-ring span{position:relative}.pu-ring b{font:700 26px var(--f-disp)}.pu-ring span{font-size:10.5px;opacity:.75}
.pu-stepper{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:14px 0}.pu-stepper button{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;font-size:12.5px;text-align:left}
.pu-stepper i{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:700;background:var(--bg-inset)}.pu-stepper .past i{background:var(--accent);color:var(--accent-ink,#fff)}.pu-stepper .now{border-color:var(--gold);color:var(--ink)}.pu-stepper .now i{background:var(--gold);color:#010160}
.pu-why{display:grid;grid-template-columns:2fr 1fr;gap:18px;padding:16px 18px;border-radius:14px;background:var(--bg-inset)}.pu-why h4,.pu-pg h4{margin:0 0 6px;font:600 11px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.pu-why p{margin:0 0 8px;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.pu-stage{margin-bottom:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}.pu-stage.cur{border-color:var(--gold);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 18%,transparent)}
.pu-sh{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-inset)}.pu-sh b{font:600 14px var(--f-disp);letter-spacing:.12em;text-transform:uppercase}.pu-sh span{font-size:12px;color:var(--ink-3)}
.pu-play{display:grid;grid-template-columns:34px 1fr 190px;gap:12px;align-items:start;padding:12px 14px;border-top:1px solid var(--line)}.pu-play.done .pu-pb b{text-decoration:line-through;opacity:.6}.pu-play.late .pu-own span{color:var(--bad,#f0766b)}
.pu-chk{width:26px;height:26px;border-radius:8px;border:2px solid var(--line-2);background:none;color:#010160;font-weight:800;cursor:pointer;transition:transform .15s}.pu-play.done .pu-chk{background:var(--gold);border-color:var(--gold)}.pu-chk:active{transform:scale(.88)}
.pu-pb b{font-size:14px}.pu-pb p{margin:4px 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.5}.pu-pb small{display:block;margin-top:4px;color:var(--good);font-size:12px}
.pu-own{text-align:right;border:0;background:none;color:var(--ink);cursor:pointer;font-size:12.5px;padding:2px}.pu-own i{color:var(--ink-3)}.pu-own span{display:block;color:var(--ink-3);font-size:11.5px;margin-top:2px}
.pu-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}.pu-pg{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.pu-p{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.pu-p:first-of-type{border-top:0}.pu-p>div:first-child{flex:1}.pu-p b{display:block;font-size:13.5px}.pu-p span{font-size:12px;color:var(--ink-2)}.pu-p small{display:block;font-size:11.5px;color:var(--ink-3);margin-top:3px;line-height:1.45}
.pu-pr{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.pu-warm{letter-spacing:2px;color:var(--ink-3)}.pu-warm.w2,.pu-warm.w3{color:var(--gold)}.pu-warm.w1{color:var(--accent)}
.pu-tl{border-left:2px solid var(--line-2);margin-left:8px}.pu-t{position:relative;padding:4px 0 16px 20px}.pu-t i{position:absolute;left:-7px;top:8px;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px var(--bg)}.pu-t span{display:block;font-size:12px;color:var(--ink-3)}.pu-t p{margin:4px 0;font-size:13.5px}.pu-t small{color:var(--accent)}
.pu-intel>div{display:grid;grid-template-columns:80px 1fr;gap:2px 12px;padding:10px 0;border-bottom:1px solid var(--line)}.pu-intel span{font-size:12px;color:var(--ink-3)}.pu-intel p{grid-column:2;margin:2px 0 0;font-size:12.5px;color:var(--ink-2)}
.pu-book{display:flex;gap:18px;padding:22px;border-radius:16px;background:linear-gradient(135deg,#010160,#16219a);color:#fff}.pu-book b{font:700 22px var(--f-disp)}.pu-book p{color:rgba(255,255,255,.82);max-width:720px}.pu-acts{display:flex;gap:8px}
.pu-h3{font:600 12px var(--f-disp);letter-spacing:.2em;text-transform:uppercase;margin:22px 0 10px;color:var(--ink-2)}
.pu-att{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.pu-att>div{position:relative;padding:16px 16px 14px 56px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.pu-att i{position:absolute;left:14px;top:14px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-style:normal;font:700 15px var(--f-disp);background:var(--gold);color:#010160}.pu-att p{margin:4px 0 0;font-size:13px;color:var(--ink-2);line-height:1.5}
.pu-src{columns:2;font-size:12.5px}.pu-src li{margin-bottom:5px}
.pu-srcl{display:block;margin-top:3px;font-size:11.5px;color:var(--ink-3,#6b7080)}.pu-srcl a{color:inherit;text-decoration:underline}
@media (max-width:900px){.pu-stepper{grid-template-columns:repeat(3,1fr)}.pu-why{grid-template-columns:1fr}.pu-play{grid-template-columns:30px 1fr}.pu-own{grid-column:2;text-align:left}.pu-people{grid-template-columns:1fr}}
.pu-head h2{text-transform:none;font-size:30px!important;letter-spacing:.01em!important;padding:0!important;border:0!important;margin:6px 0 4px!important;display:block!important}.pu-head h2::before,.pu-head h2::after{display:none!important}
/* AP13 (#254): pursuit covers — a real job photo over a clean typographic card (the card stays if the photo fails); scoped to pursuits */
.pu-card{overflow:hidden}.pu-card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.pu-cv{position:relative;margin:-16px -16px 4px;height:156px;background:linear-gradient(135deg,#010160 0%,#14207f 60%,#1d2ea8 100%);color:#fff;overflow:hidden}
.pu-cv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.pu-cvn{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;padding:14px 16px}
.pu-cvn b{font:700 19px/1.2 var(--f-disp);letter-spacing:.02em;overflow-wrap:anywhere}.pu-cvn span{font-size:12px;color:rgba(255,255,255,.78)}
.pu-cv.none::after{content:"";position:absolute;right:14px;top:14px;width:34px;height:4px;border-radius:2px;background:var(--gold)}
.pu-cvc{position:absolute;left:0;right:0;bottom:0;padding:16px 12px 6px;font-size:11px;color:#fff;background:linear-gradient(transparent,rgba(1,1,40,.78))}
.pu-hero{overflow:hidden}.pu-cv.hero{position:absolute;margin:0;inset:0 0 0 auto;width:42%;height:auto;z-index:0;background:none}
.pu-cv.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#010160 0%,rgba(1,1,96,.55) 35%,transparent 75%)}
.pu-cv.hero .pu-cvn,.pu-cv.head .pu-cvn{display:none}.pu-cv.hero .pu-cvc{z-index:2;left:auto;padding-left:24px}
.pu-cv.head{margin:12px 0 -4px;height:150px;border-radius:16px}
@media (max-width:900px){.pu-cv.hero{display:none}}
@media (max-width:600px){.pu-cv{height:140px}.pu-cv.head{height:120px}}
@media (prefers-reduced-motion:reduce){.pu-card,.pu-card:hover{transition:none;transform:none}}
/* ---------- FX: the small moments ---------- */
.fx-canvas{position:fixed;inset:0;pointer-events:none;z-index:300}
.fx-banner{position:fixed;left:50%;top:22%;transform:translateX(-50%);z-index:301;pointer-events:none;text-align:center;padding:20px 34px;border-radius:18px;background:rgba(1,1,96,.94);color:#fff;box-shadow:0 24px 60px rgba(1,1,96,.45),0 0 0 2px var(--gold) inset;animation:fxIn .55s cubic-bezier(.2,1.5,.4,1) both}
.fx-banner b{display:block;font:700 34px/1.1 var(--f-disp);letter-spacing:.04em}.fx-banner span{display:block;margin-top:6px;font-size:13.5px;color:var(--gold);letter-spacing:.04em}
.fx-banner.out{opacity:0;transform:translate(-50%,-14px) scale(.96);transition:all .6s ease}
@keyframes fxIn{from{opacity:0;transform:translate(-50%,18px) scale(.86)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
.fx-spark{position:fixed;width:7px;height:7px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--gold);pointer-events:none;z-index:302;animation:fxSp .7s ease-out forwards}
@keyframes fxSp{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
#bellBtn.ring svg{animation:fxRing .9s ease}@keyframes fxRing{0%,100%{transform:rotate(0)}20%{transform:rotate(16deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-4deg)}}
@media (prefers-reduced-motion:reduce){.fx-banner{animation:none}#bellBtn.ring svg{animation:none}}

/* Toolbox talks (toolbox-ui.js) */
.tb-head{display:flex;gap:18px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.tb-head>div:first-child{flex:1;min-width:280px;max-width:760px}
.tb-kpis{display:flex;gap:8px;flex-wrap:wrap}.tb-kpis span{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:12px;color:var(--ink-3);min-width:96px}.tb-kpis b{display:block;font:700 22px var(--f-disp);color:var(--ink)}
.tb-lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.tb-card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column}
.tb-card .tb-k{font:600 11px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.tb-card b{font-size:15px;margin-top:4px}.tb-card i{font-size:13px;color:var(--ink-3)}
.tb-card p{font-size:13px;line-height:1.45;margin:8px 0;flex:1}.tb-f{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--ink-3)}.tb-f .grow{flex:1}
.tb-sigs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:10px}.tb-sigs figure{margin:0;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fff}
.tb-sigs img{width:100%;height:80px;object-fit:contain;display:block}.tb-sigs figcaption{font-size:12px;color:#333;border-top:1px solid #ddd;padding-top:4px}.tb-sigs b{color:#b07d00}
tr.clk{cursor:pointer}tr.clk:hover td{background:var(--hover)}
.pill.ok{background:var(--goodbg);color:var(--good)}.pill.warn{background:var(--warnbg);color:var(--warn)}

/* Teach Connects + Link Doctor (iq-ui.js) */
.tc,.ld{margin-bottom:14px}
.tc-head{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.tc-head>div:first-child{flex:1;min-width:260px;max-width:760px}
.tc-stats{display:flex;gap:8px}.tc-stats span{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:12px;color:var(--ink-3);min-width:92px}.tc-stats b{display:block;font:700 22px var(--f-disp);color:var(--ink)}
.tc-card{max-width:760px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:12px;padding:16px 18px;background:var(--bg-2);animation:tcIn .35s cubic-bezier(.2,.8,.2,1) both}
.tc-job b{display:block;font-size:16px}.tc-job span{font-size:12.5px;color:var(--ink-3)}
.tc-q{font:700 22px var(--f-disp);margin:12px 0 10px}
.tc-guess{display:block;width:100%;text-align:left;border:2px solid var(--gold);background:color-mix(in srgb,var(--gold) 10%,transparent);border-radius:12px;padding:12px 14px;color:var(--ink);cursor:pointer;margin-bottom:10px}
.tc-guess:hover{background:color-mix(in srgb,var(--gold) 20%,transparent)}.tc-guess small{display:block;font:600 11px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.tc-guess b{display:block;font-size:20px;margin:2px 0}.tc-guess span{display:block;font-size:13px;color:var(--ink-2)}.tc-guess em{display:block;font-style:normal;font-size:11px;color:var(--ink-3);margin-top:4px}
.tc-opts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.tc-opts button{border:1px solid var(--line-2);background:transparent;color:var(--ink);border-radius:18px;padding:6px 12px;font-size:13px;cursor:pointer}.tc-opts button:hover{border-color:var(--gold)}
.tc-num{display:flex;gap:8px;align-items:center;margin-bottom:10px}.tc-num input,.tc-num select{flex:1;max-width:320px}
.tc-foot{display:flex;align-items:center;gap:8px}.tc-foot .grow{flex:1}
.tc-empty{padding:18px;border:1px dashed var(--line-2);border-radius:12px;color:var(--ink-3);max-width:760px}
.tc-lead{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--ink-3);align-items:center}.tc-lead span{border:1px solid var(--line);border-radius:14px;padding:3px 10px;color:var(--ink-2)}.tc-lead b{color:var(--ink)}
.tc-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#010160;color:#fff;border:1px solid var(--gold);border-radius:20px;padding:8px 16px;font-size:14px;z-index:90;transition:opacity .4s,transform .4s}.tc-toast.out{opacity:0;transform:translate(-50%,8px)}
@keyframes tcIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tc-card{animation:none}}

/* People & Risk (people-ui.js) */
.pxkpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px}
.pxk{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.pxk b{display:block;font:700 26px var(--f-disp);color:var(--ink)}.pxk b small{font-size:14px;color:var(--ink-3)}.pxk span{font-size:12px;color:var(--ink-3);line-height:1.3;display:block}
.pxk.good{border-left:4px solid var(--good)}.pxk.warn{border-left:4px solid var(--warn)}.pxk.bad{border-left:4px solid var(--crit)}
.pxrow{display:flex;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer}.pxrow:hover{background:var(--hover)}.pxrow:last-child{border-bottom:0}.pxrow b{display:block}.pxrow small{color:var(--ink-3);font-size:12px}
.av{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#010160;color:var(--gold);font:700 13px var(--f-disp)}
.pxflag{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin-top:5px;line-height:1.35}.pxflag i{flex:none;font-style:normal;font:600 10px var(--f-disp);letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:var(--line);color:var(--ink-2)}
.pxflag.s3 i{background:var(--critbg,rgba(240,118,107,.14));color:var(--crit)}.pxflag.s2 i{background:var(--warnbg,rgba(226,170,82,.14));color:var(--warn)}.pxflag small{display:block;color:var(--ink-3);font-size:12px}
.pxp{display:block}.pxhead{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:12px;padding:16px 18px;margin-bottom:14px}
.pxav{width:76px;height:76px;border-radius:50%;background:#010160;color:var(--gold);display:grid;place-items:center;font:700 28px var(--f-disp);overflow:hidden;flex:none}.pxav img{width:100%;height:100%;object-fit:cover}
.pxid{flex:1;min-width:260px}.pxeb{font:600 11px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.pxid h1{margin:2px 0 4px;font:700 30px var(--f-disp)}
.pxchips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}.pxlang{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--ink-3);text-transform:none;letter-spacing:0;margin:0}.pxlang select{height:26px;font-size:12px}
.pxbucks{min-width:190px;text-align:right}.pxbucks span{display:block;font:600 11px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.pxbucks b{display:block;font:700 42px var(--f-disp);color:#b07d00}.pxbucks small{display:block;font-size:12px;color:var(--ink-3)}.pxbucks a{font-size:13px}
.pxgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px}.pxgrid .panel{margin-bottom:14px}.pxgrid h3{margin:0 0 8px}
@media (max-width:900px){.pxgrid{grid-template-columns:1fr}.pxbucks{text-align:left}}
.pxstat{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:8px}.pxstat span{font-size:12px;color:var(--ink-3)}.pxstat b{display:block;font:700 22px var(--f-disp);color:var(--ink)}
.pxweeks{display:flex;gap:5px}.pxweeks i{width:16px;height:16px;border-radius:50%;border:2px solid var(--line-2)}.pxweeks i.s{background:color-mix(in srgb,var(--gold) 45%,transparent);border-color:var(--gold)}.pxweeks i.p{background:#0b7a3b;border-color:#0b7a3b}
.pxkv{display:grid;grid-template-columns:180px 1fr;gap:6px 12px;font-size:13px}.pxkv span{color:var(--ink-3)}
.pxgrant{display:flex;gap:6px;margin:6px 0 10px}
.pxtalk h2{font:700 22px var(--f-disp);margin:0 0 10px}.pxtalk p{font-size:15px;line-height:1.55;margin:0 0 10px}.pxes{display:block;color:var(--ink-2);font-style:italic;border-left:3px solid var(--gold);padding-left:8px;margin-top:4px}
.pxsig{border:2px dashed var(--line-2);border-radius:10px;background:#fff;margin:8px 0}.pxsig canvas{width:100%;height:170px;display:block;touch-action:none;cursor:crosshair}
.pxq{margin-bottom:12px}.pxq b{display:block;margin-bottom:4px}.pxq label{display:block;font-size:14px;text-transform:none;letter-spacing:0;margin:3px 0;color:var(--ink)}.pxq.miss b{color:var(--crit)}
.pxp .tbl td,.pxgrid .tbl td{white-space:normal}.pxgrid .panel{overflow-x:auto}
/* ---------- War Room · Decisions (go left / go right) ---------- */
.dx{grid-column:1/-1;cursor:default}.dx .wr-b{gap:12px}
.dx-top{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between}
.dx-fl{display:flex;flex-wrap:wrap;gap:6px}.dx-fl button{background:none;border:1px solid var(--wr-line);color:#aeb6ff;font:600 11px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;cursor:pointer;border-radius:2px}
.dx-fl button small{color:#6c74a8;margin-left:4px;font-size:11px}.dx-fl button.on{border-color:var(--gold);color:var(--gold)}.dx-fl button.on small{color:#ffd28a}
.dx-tr{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:#9aa2d6}.dx-tr b{color:#e8ebff;font-weight:600}
.dx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));gap:12px}
.dx-card{border:1px solid var(--wr-line);background:rgba(4,6,40,.6);padding:12px 14px;display:flex;flex-direction:column;gap:9px;min-width:0;position:relative}
.dx-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font:600 10.5px var(--f-disp);letter-spacing:.16em;text-transform:uppercase}
.dx-k{color:#aeb6ff}.dx-st{color:#ffd28a;letter-spacing:.06em}.dx-c{margin-left:auto;padding:2px 8px;border:1px solid currentColor;border-radius:10px;letter-spacing:.08em;cursor:help}
.dx-c.hi{color:#7ee0ad}.dx-c.md{color:#e2aa52}.dx-c.lo{color:#ff8a80}
.dx-card h4{margin:0;font:600 15.5px/1.35 var(--f-ui);color:#fff}
.dx-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dx-o{border:1px solid rgba(120,150,255,.16);padding:10px;display:flex;flex-direction:column;gap:5px;min-width:0;background:rgba(14,18,90,.25)}
.dx-o.rec{border-color:var(--gold);box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 35%,transparent),0 0 18px color-mix(in srgb,var(--gold) 8%,transparent) inset;background:color-mix(in srgb,var(--gold) 5%,transparent)}
.dx-ol{display:flex;align-items:center;gap:8px}.dx-ol small{font:600 10px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:#6c74a8}
.dx-ol em{margin-left:auto;font:700 10px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;font-style:normal;background:var(--gold);color:#010160;padding:2px 7px;border-radius:2px}
.dx-o>b{font:600 15px var(--f-ui);color:#fff}.dx-e{font:500 13.5px var(--f-num);color:#7ee0ad}
.dx-m{margin:0;padding-left:16px;font-size:12px;color:#c3c9f0;line-height:1.45}.dx-m li{margin:1px 0}
.dx-pick{margin-top:auto;align-self:flex-start;background:none;border:1px solid var(--wr-line);color:#e8ebff;font:600 11px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;padding:8px 12px;cursor:pointer;min-height:36px}
.dx-o.rec .dx-pick{background:var(--gold);border-color:var(--gold);color:#010160}.dx-pick:hover{border-color:var(--gold)}.dx-pick:disabled{opacity:.5;cursor:wait}
.dx-why{margin:0;font-size:13px;color:#d6dbff}.dx-why b{color:#ffd28a;font-weight:600}
.dx-more summary,.dx-log summary{cursor:pointer;font:600 11px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:#8a92c8;padding:3px 0}
.dx-d{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-top:6px}
.dx-d small{display:block;font:600 10px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:#6c74a8;margin-bottom:2px}
.dx-d ul{margin:0;padding-left:16px;font-size:12px;color:#c3c9f0}.dx-d li{margin:2px 0}
.dx-how{margin:8px 0 0;font-size:11.5px;color:#8a92c8}.dx-how b{color:#aeb6ff;font-weight:600}
.dx-ai{border-left:3px solid #b8d3ff;padding:6px 10px;background:rgba(184,211,255,.06)}.dx-ai.off{border-left-color:#6c74a8}
.dx-ai small{font:600 10px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:#b8d3ff}.dx-ai p{margin:3px 0;font-size:13px;color:#e8ebff}.dx-ai ul{margin:2px 0 0;padding-left:16px;font-size:12px;color:#c3c9f0}.dx-n{color:#8a92c8!important;font-size:11.5px!important}
.dx-f{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.dx-sp{flex:1}
.dx-lk{background:none;border:0;color:#b8d3ff;font:600 12px var(--f-ui);padding:4px 2px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(184,211,255,.35)}.dx-lk:hover{color:#fff}
.dx-all{align-self:flex-start}
.dx-log{border-top:1px solid var(--wr-line);padding-top:6px}
.dx-r{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:7px 0;border-bottom:1px solid rgba(120,150,255,.08);font-size:12.5px}
.dx-r>div:first-child{min-width:0}.dx-r b{color:#fff;font-weight:600}.dx-r span{display:block;color:#c3c9f0}.dx-r em{display:block;font-style:normal;color:#8a92c8;font-size:11.5px}.dx-ov{display:inline!important;color:#e2aa52!important}
.dx-ra{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;justify-content:flex-end;flex:none;max-width:45%}
.dx-g{font-style:normal;font-size:12px;text-align:right}.dx-g.ok{color:#7ee0ad}.dx-g.bad{color:#ff8a80}.dx-g.na,.dx-g.wait{color:#8a92c8}
@media (max-width:700px){.dx-opts,.dx-d{grid-template-columns:1fr}.dx-c{margin-left:0}.dx-pick{align-self:stretch}.dx-r{flex-direction:column}.dx-ra{max-width:none;justify-content:flex-start}.dx-g{text-align:left}.dx-card{padding:10px}}
.dx-e.neg{color:#e2aa52}.dx-e.flat{color:#c3c9f0}
/* ---- account pursuits: analysis and the learning loop (pursuits-ui.js → brain) ---- */
.pu-rings{display:flex;gap:12px;align-items:center}.pu-ring.win{border:0;cursor:pointer;color:inherit;font:inherit;padding:0;background:conic-gradient(var(--good) calc(var(--p)*1%),rgba(127,127,160,.25) 0)}
.pu-win{margin-left:auto;font:700 12px var(--f-disp);padding:2px 8px;border-radius:12px;background:var(--good-a);color:var(--good)}.pu-od+.pu-win{margin-left:6px}
.pu-nm{color:var(--accent);font-weight:600;font-size:12.5px}
.pu-ownw{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.pu-skip{border:0;background:none;color:var(--ink-3);font-size:11.5px;cursor:pointer;padding:0;text-decoration:underline}
.pu-ai-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px}.pu-ai-bar>div{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.pu-ai-bar b{font:600 15px var(--f-disp);letter-spacing:.06em}
.pu-ai-grid{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:14px;margin-bottom:14px}.pu-ai-grid+.pu-ai-grid{grid-template-columns:1fr 1fr}
.pu-ai-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}.pu-ai-wide{margin-bottom:14px}
.pu-ai-big{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.pu-ai-big b{font:700 44px var(--f-disp);line-height:1;color:var(--good)}.pu-ai-big span{font-size:12.5px;color:var(--ink-2)}.pu-spark{color:var(--accent);margin-top:6px}
.pu-fx{list-style:none;margin:0 0 10px;padding:0}.pu-fx li{display:flex;gap:10px;align-items:baseline;font-size:13px;padding:4px 0;border-top:1px solid var(--line)}.pu-fx i{flex:none;width:38px;text-align:right;font-style:normal;font-weight:700}.pu-fx .up i{color:var(--good)}.pu-fx .dn i{color:var(--bad,#f0766b)}
.pu-ai-read{background:var(--bg-inset);border-radius:10px;padding:10px 12px;margin:8px 0}.pu-ai-read p{margin:6px 0 4px;font-size:13.5px;line-height:1.5}.pu-ai-read small{color:var(--ink-3)}
.pu-chip{display:inline-block;font:600 10.5px var(--f-disp);letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:5px;background:var(--bg-inset);color:var(--ink-2)}.pu-chip.ai{background:var(--gold);color:#010160}.pu-chip.sm{font-size:9.5px;padding:1px 5px}
.pu-mv{display:grid;grid-template-columns:28px 1fr auto;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.pu-mv:first-of-type{border-top:0}.pu-mv>i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font:700 13px var(--f-disp);background:var(--gold);color:#010160}
.pu-mvt{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:4px}.pu-mvt small{color:var(--ink-3);font-size:11.5px}.pu-mvb b{font-size:14px;line-height:1.35}.pu-mvb p{margin:4px 0;font-size:12.5px;color:var(--ink-2);line-height:1.5}
.pu-evl{margin:4px 0;padding-left:18px;font-size:12px;color:var(--ink-2)}.pu-wk{display:block;font-size:11.5px;color:var(--accent);margin-top:2px}.pu-mva{display:flex;flex-direction:column;gap:6px}
.pu-dt{margin-top:8px;font-size:12.5px;color:var(--ink-2)}.pu-dt summary{cursor:pointer;color:var(--ink-3)}.pu-dt p{margin:4px 0}.pu-done{color:var(--good)}
.pu-gap{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:7px 0;border-top:1px solid var(--line);font-size:13px}.pu-gap:first-of-type{border-top:0}
.pu-risk{display:flex;gap:10px;align-items:baseline;padding:6px 0;font-size:13px}.pu-risk i{flex:none;width:9px;height:9px;border-radius:50%;background:var(--ink-3)}.pu-risk.s-high i{background:var(--bad,#f0766b)}.pu-risk.s-med i{background:var(--warn)}.pu-risk.s-ai i{background:var(--gold)}
.pu-q{padding:8px 0;border-top:1px solid var(--line)}.pu-q:first-of-type{border-top:0}.pu-q b{font-size:13px}.pu-qf{display:flex;gap:8px;margin-top:6px}.pu-qf input{flex:1;min-width:0}
.pu-dr{padding:10px 0;border-top:1px solid var(--line)}.pu-dr b{display:block;font-size:13.5px;margin-bottom:6px}.pu-dr textarea{width:100%;box-sizing:border-box;font-size:13px;line-height:1.5}.pu-dr .pu-acts{flex-wrap:wrap;margin-top:6px}.pu-ok{color:var(--good)}
.pu-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:12px}.pu-tiles>div{background:var(--bg-inset);border-radius:10px;padding:10px}.pu-tiles b{display:block;font:700 20px var(--f-disp)}.pu-tiles span{font-size:11.5px;color:var(--ink-3)}
.pu-scroll{overflow-x:auto;margin-bottom:10px}.pu-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pu-h4{margin:10px 0 6px;font:600 11px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.pu-rate{display:inline-block;min-width:44px;text-align:right;background:linear-gradient(90deg,var(--good-a) calc(var(--r)*1%),transparent 0);padding:1px 4px;border-radius:4px}
.pu-loop>div{display:grid;grid-template-columns:70px 180px 1fr;gap:8px;padding:5px 0;border-top:1px solid var(--line);font-size:12.5px}.pu-loop span{color:var(--ink-3)}.pu-loop small{color:var(--ink-2)}
.pu-lrnb{margin-top:16px}.pu-lrnb summary{cursor:pointer;margin-bottom:8px}
@media (max-width:900px){.pu-ai-grid,.pu-ai-grid+.pu-ai-grid,.pu-two{grid-template-columns:1fr}.pu-head{flex-wrap:wrap}.pu-rings{width:100%;justify-content:flex-start}.pu-ownw{grid-column:2;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px}}
@media (max-width:600px){.pu-ring{width:88px;height:88px}.pu-ring b{font-size:21px}.pu-mv{grid-template-columns:26px 1fr}.pu-mva{grid-column:2;flex-direction:row}.pu-loop>div{grid-template-columns:62px 1fr}.pu-loop small{grid-column:2}.pu-ai-big b{font-size:36px}.pu-src{columns:1}.pu-people{grid-template-columns:1fr}.pu-intel>div{grid-template-columns:64px 1fr}}
/* ---- Smart upload: file cabinet / bid / job (smartupload-ui.js → lib/smartupload.js) ---- */
.su-btn svg{flex:none}
.su-wrap{position:fixed;inset:0;z-index:115;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px}
.su-wrap[hidden]{display:none}body.su-on{overflow:hidden}
.su-scrim{position:absolute;inset:0;background:var(--scrim)}
.su-modal{position:relative;width:min(880px,100%);max-height:90vh;overflow:auto;background:var(--bg-2);border:1px solid var(--line-2);border-radius:12px;padding:20px 22px 22px;box-shadow:0 24px 80px rgba(0,0,0,.45);overscroll-behavior:contain}
.su-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.su-head h2{margin:0;font:600 22px var(--f-disp);letter-spacing:.02em}
.su-ctx{color:var(--ink-2);font-size:12.5px;margin-top:2px}.su-ctx b{color:var(--ink)}
.su-x{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--line-2);background:transparent;font-size:20px;line-height:1}.su-x:hover{background:var(--hover)}
.su-track{display:flex;flex-wrap:wrap;gap:4px 14px;margin:12px 0;padding:8px 12px;border-radius:8px;background:var(--bg-inset);font-size:12px;color:var(--ink-2)}.su-track b{color:var(--good);font-weight:600}
.su-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.su-mode button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border-radius:8px;border:1px solid var(--line-2);background:transparent}
.su-mode button.su-sel{border-color:var(--accent);background:var(--accent-a)}.su-mode button b{font-size:13.5px}.su-mode button small{font-size:11.5px;color:var(--ink-2)}
.su-drop{display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 16px;border:1.5px dashed var(--line-3);border-radius:10px;text-align:center;cursor:pointer;color:var(--ink-2);transition:background var(--t) var(--ease),border-color var(--t) var(--ease)}
.su-drop b{color:var(--ink);font-size:15px}.su-drop u{color:var(--accent)}.su-drop:hover,.su-drop.su-over,.su-drop:focus-visible{border-color:var(--accent);background:var(--accent-a);outline:none}
.su-bulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:14px 0 6px}.su-count{color:var(--ink-3);font-size:12px}
.su-list{display:flex;flex-direction:column;gap:10px}
.su-card{border:1px solid var(--line-2);border-left:3px solid var(--line-3);border-radius:10px;padding:12px 14px;background:var(--bg-2)}
.su-card.su-s-ok{border-left-color:var(--good)}.su-card.su-s-ask{border-left-color:var(--warn)}.su-card.su-s-err{border-left-color:var(--crit)}.su-card.su-s-filed{border-left-color:var(--good);background:var(--good-a)}.su-card.su-s-man{border-left-color:var(--accent)}
.su-top{display:flex;gap:10px;align-items:baseline;justify-content:space-between;margin-bottom:8px;min-width:0}
.su-fname{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.su-conf{flex:none;font:600 11px var(--f-disp);letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:10px}.su-conf.su-hi{background:var(--good-a);color:var(--good)}.su-conf.su-lo{background:var(--warn-a);color:var(--warn)}
.su-askbar{font-size:12.5px;color:var(--warn);margin:-2px 0 8px}
.su-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px}.su-wide{grid-column:span 2}
.su-f{display:flex;flex-direction:column;gap:3px;min-width:0}.su-f>span{font-size:11px;color:var(--ink-3);letter-spacing:.04em}
.su-f select,.su-f input{width:100%;min-width:0;min-height:34px;padding:5px 8px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg-inset)}
.su-q{margin-top:6px}.su-res{display:flex;flex-direction:column;gap:2px;margin-top:4px;max-height:200px;overflow:auto}
.su-res button{display:block;text-align:left;padding:6px 8px;border:0;border-radius:6px;background:var(--bg-inset);font-size:12.5px}.su-res button:hover{background:var(--hover);outline:1px solid var(--line-2)}.su-res small{display:block;color:var(--ink-3)}
.su-facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.su-chip{font-size:11.5px;padding:2px 8px;border-radius:10px;background:var(--data-a);color:var(--ink)}
.su-sum{margin-top:8px;font-size:12.5px;color:var(--ink-2)}.su-sub{font-size:11.5px;color:var(--ink-3);margin-top:4px}
.su-why{margin-top:8px;font-size:12.5px}.su-why summary{cursor:pointer;color:var(--accent);width:max-content}.su-why ul{margin:6px 0 4px;padding-left:18px;color:var(--ink-2)}.su-why li{margin:2px 0}
.su-msg{margin-top:8px;font-size:12.5px;color:var(--crit)}
.su-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.su-grow{flex:1}.su-okc{display:flex;gap:6px;align-items:center;font-size:12.5px;cursor:pointer}
.su-reading{display:flex;gap:4px;align-items:center;color:var(--ink-2);font-size:12.5px}.su-reading i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:su-b 1s infinite ease-in-out}.su-reading i:nth-child(2){animation-delay:.15s}.su-reading i:nth-child(3){animation-delay:.3s;margin-right:6px}
@keyframes su-b{0%,80%,100%{opacity:.25}40%{opacity:1}}
.su-done{display:flex;gap:10px;align-items:flex-start}.su-tick{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--good);color:var(--bg);font-weight:700}
.su-fu{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.su-fu-h{font-size:11px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}
.su-fu-r{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:4px 0;font-size:12.5px}.su-fu-ok{color:var(--good);font-size:12px}
@media (max-width:700px){.su-wrap{padding:0}.su-modal{width:100%;max-height:100vh;height:100%;border-radius:0;border:0;padding:16px}.su-mode{grid-template-columns:1fr}.su-grid{grid-template-columns:1fr 1fr}.su-f{grid-column:1/-1}.su-f.su-d{grid-column:auto}.su-fu-r{flex-direction:column;align-items:flex-start}}
@media (prefers-reduced-motion:reduce){.su-reading i{animation:none;opacity:.7}}

/* ── MyConnects war-room desks: estimator + superintendent (public/desk-ui.js) ── */
.dkw{--dkw-panel:var(--bg-2);--dkw-line:var(--line);--dkw-glow:0 1px 2px rgba(0,0,0,.04),0 14px 30px -24px rgba(0,0,0,.25);--dkw-hero:radial-gradient(900px 220px at 0% 0%,var(--accent-a),transparent 70%),var(--bg-2);padding:18px var(--gut) 48px;max-width:1640px;margin:0 auto}
:root:not([data-theme="light"]) .dkw{--dkw-panel:linear-gradient(180deg,rgba(14,18,90,.42),rgba(4,6,40,.6));--dkw-line:rgba(160,185,255,.15);--dkw-glow:0 0 0 1px rgba(160,185,255,.06),0 24px 60px -36px rgba(0,0,0,.85);--dkw-hero:radial-gradient(900px 260px at 0% 0%,rgba(110,140,255,.22),transparent 70%),linear-gradient(180deg,rgba(14,18,90,.65),rgba(4,6,40,.75))}
.dkw.busy{opacity:.7;transition:opacity .2s}
.dkw-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;flex-wrap:wrap;padding:18px 22px;border:1px solid var(--dkw-line);border-radius:var(--r);background:var(--dkw-hero);box-shadow:var(--dkw-glow);margin-bottom:12px}
.dkw-eb{display:flex;align-items:center;gap:8px;font:600 11px var(--f-disp);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3)}
.dkw-live{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 0 var(--good);animation:dkpulse 2.4s infinite}
@keyframes dkpulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--good) 55%,transparent)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.dkw-hero h1{font:400 clamp(28px,3.4vw,44px)/1.05 var(--f-disp);letter-spacing:.02em;margin:8px 0 10px}
.dkw-chips{display:flex;flex-wrap:wrap;gap:6px}
.dkw-chips span{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--dkw-line);background:var(--watchbg);color:var(--ink-2)}
.dkw-chips .c-good{color:var(--good);background:var(--good-a);border-color:transparent}.dkw-chips .c-warn{color:var(--warn);background:var(--warn-a);border-color:transparent}.dkw-chips .c-bad{color:var(--crit);background:var(--crit-a);border-color:transparent}
.dkw-ctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dkw select,.dkw input[type=text],.dkw input[type=number]{background:var(--bg);border:1px solid var(--line-2);border-radius:6px;padding:6px 9px;font-size:13px;color:var(--ink);min-width:0}
.dkw-ctl select{max-width:230px}
.dkw-x{background:transparent;border:1px solid var(--line-2);color:var(--ink);border-radius:6px;padding:5px 11px;font-size:12.5px;line-height:1.3;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.dkw-x:hover{border-color:var(--ink-2);text-decoration:none}.dkw-x[disabled]{opacity:.55;cursor:default}
.dkw-x.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:500}.dkw-x.pri:hover{filter:brightness(1.06)}
.dkw-x.ok{border-color:var(--good);color:var(--good)}.dkw-x.lnk{border:0;color:var(--accent);padding:6px 0;margin-top:6px}
.dkw-notes{font-size:12.5px;color:var(--warn);background:var(--warn-a);border-radius:6px;padding:8px 12px;margin-bottom:12px}.dkw-notes.bad{color:var(--crit);background:var(--crit-a)}
/* scoreboard */
.dkw-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px;margin-bottom:12px}
.dkw-k{position:relative;background:var(--dkw-panel);border:1px solid var(--dkw-line);border-radius:var(--r);padding:12px 14px 10px;box-shadow:var(--dkw-glow);display:flex;flex-direction:column;min-height:138px;overflow:hidden}
.dkw-k::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--line-2)}
.dkw-k.s-good::before{background:var(--good)}.dkw-k.s-warn::before{background:var(--warn)}.dkw-k.s-bad::before{background:var(--crit)}
.dkw-k .l{font:600 10.5px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);min-height:26px}
.dkw-k .v{font:300 32px/1.05 var(--f-num);font-variant-numeric:tabular-nums;margin:2px 0}
.dkw-k.s-bad .v{color:var(--crit)}.dkw-k.s-good .v{color:var(--ink)}
.dkw-k .d{font-size:11px;color:var(--ink-3)}.dkw-k .d .up{color:var(--good)}.dkw-k .d .dn{color:var(--crit)}
.dkw-k .spark,.dkw-nosp{display:block;width:100%;height:26px;margin:4px 0 2px}
.dkw-k .s{font-size:11.5px;color:var(--ink-3);margin-top:auto;line-height:1.35}
/* ask + analysis */
.dkw-ask,.dkw-an{background:var(--dkw-panel);border:1px solid var(--dkw-line);border-radius:var(--r);box-shadow:var(--dkw-glow);padding:10px 12px;margin-bottom:12px}
.dkw-askrow{display:flex;gap:8px;align-items:center}.dkw-askrow select{flex:0 1 240px}.dkw-askrow input{flex:1}
.dkw-ans{margin-top:10px;padding:10px 4px 2px;border-top:1px solid var(--dkw-line);font-size:14px;line-height:1.6}.dkw-ans p{margin:0 0 8px}.dkw-ans ul{margin:4px 0 10px;padding-left:18px}.dkw-ans .tbl{font-size:13px;margin:6px 0}
.dkw-steps{font-size:11.5px;color:var(--ink-3);margin:4px 0 6px}
.dkw-err{color:var(--crit);font-size:13px}
.dkw-an{border-left:3px solid var(--accent)}
.dkw-an header,.dkw-p header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dkw-an h3,.dkw-p h3{margin:0;font:600 12px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.dkw-an header span,.dkw-p header>span{font-size:11.5px;color:var(--ink-3)}.dkw-an header .dkw-x{margin-left:auto;border:0;font-size:18px;padding:0 6px}
.dkw-plan{margin:10px 0 6px;padding-left:22px}.dkw-plan li{margin:0 0 8px}.dkw-plan b{display:block;font-weight:500}.dkw-plan span{font-size:12.5px;color:var(--ink-2)}
.dkw-ai{margin-top:8px;border-top:1px solid var(--dkw-line);padding-top:8px;font-size:13.5px;line-height:1.55}.dkw-ai small{font:600 10.5px var(--f-disp);letter-spacing:.16em;text-transform:uppercase}
/* layout */
.dkw-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:14px;align-items:start}
.dkw-main,.dkw-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.dkw-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.dkw-p{background:var(--dkw-panel);border:1px solid var(--dkw-line);border-radius:var(--r);box-shadow:var(--dkw-glow);min-width:0}
.dkw-p>header{padding:10px 14px;border-bottom:1px solid var(--dkw-line)}.dkw-p>header>span{margin-left:auto}
.dkw-b{padding:10px 14px 12px;min-width:0}
.dkw-empty{color:var(--ink-3);font-size:13px;padding:14px 0}
.dkw-mut{color:var(--ink-3);font-size:12px}.dkw-cap{display:block;font:600 10px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:2px 0 6px}
.dkw-call{margin:8px 0;padding:8px 10px;border-radius:6px;background:var(--accent-a);font-size:13px}
.dkw-kv2{display:flex;flex-wrap:wrap;gap:10px 24px;margin:2px 0 10px}.dkw-kv2 b{display:block;font:300 24px/1.1 var(--f-num);font-variant-numeric:tabular-nums}.dkw-kv2 small{font-size:11.5px}
.dkw .chart{width:100%;height:auto;display:block}
/* bids */
.dkw-bid{display:grid;grid-template-columns:64px minmax(0,1fr) 140px 120px auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--dkw-line)}
.dkw-bid:last-child{border-bottom:0}
.dkw-due{text-align:center;border:1px solid var(--dkw-line);border-radius:6px;padding:6px 2px}.dkw-due b{display:block;font:500 18px/1 var(--f-num)}.dkw-due small{font-size:10.5px}
.dkw-bid.d-late .dkw-due{background:var(--crit-a);border-color:transparent}.dkw-bid.d-late .dkw-due b{color:var(--crit)}
.dkw-bid.d-now .dkw-due,.dkw-bid.d-soon .dkw-due{background:var(--warn-a);border-color:transparent}.dkw-bid.d-now .dkw-due b,.dkw-bid.d-soon .dkw-due b{color:var(--warn)}
.dkw-bm a{color:var(--ink);font-weight:500;font-size:14px}.dkw-meta{font-size:12px;color:var(--ink-3);margin-top:2px}
.dkw-gcs{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.dkw-gcs span{font-size:11px;padding:1px 7px;border-radius:4px;background:var(--watchbg);color:var(--ink-2);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dkw-gcs span i{font-style:normal;color:var(--ink-3)}.dkw-gcs .sink{background:var(--crit-a);color:var(--crit)}.dkw-gcs .strong{background:var(--good-a);color:var(--good)}.dkw-gcs .none{font-style:italic}
.dkw-bp{text-align:right}.dkw-bp b{display:block;font:500 16px var(--f-num);font-variant-numeric:tabular-nums}.dkw-bp small{display:block;font-size:11.5px;color:var(--ink-2);margin-top:2px}
.dkw-od{display:grid;grid-template-columns:1fr auto;gap:2px 6px;align-items:center}.dkw-od b{font:500 15px var(--f-num)}.dkw-od small{grid-column:1/3;font-size:10.5px;color:var(--ink-3)}
.dkw-ba{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.dkw-m{display:inline-block;width:70px;height:6px;border-radius:4px;background:var(--track);overflow:hidden;vertical-align:middle}.dkw-m i{display:block;height:100%;border-radius:4px;background:var(--accent)}
.dkw-m.ok i{background:var(--good)}.dkw-m.wn i{background:var(--warn)}.dkw-m.bd i{background:var(--crit)}.dkw-m.ac i{background:var(--accent)}
.dkw-bd{display:inline-block;font-size:10.5px;padding:0 6px;border-radius:4px;font-variant-numeric:tabular-nums;vertical-align:1px}.dkw-bd.ok{background:var(--good-a);color:var(--good)}.dkw-bd.wn{background:var(--warn-a);color:var(--warn)}.dkw-bd.bd{background:var(--crit-a);color:var(--crit)}
.dkw-form{border:1px dashed var(--line-2);border-radius:var(--r);padding:12px;margin:2px 0 10px;background:var(--bg-inset)}
.dkw-fg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.dkw-fg label span{display:block;font-size:11px;color:var(--ink-3);margin-bottom:3px}.dkw-fg input{width:100%}
.dkw-prev{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0;font-size:13px}.dkw-prev small{color:var(--ink-3)}
.dkw-fa{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
/* tables */
.dkw-tw{overflow-x:auto}.dkw-t{width:100%;border-collapse:collapse;font-size:12.5px}
.dkw-t th{font:600 10px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:6px 8px;border-bottom:1px solid var(--dkw-line);white-space:nowrap}
.dkw-t td{padding:7px 8px;border-bottom:1px solid var(--dkw-line);vertical-align:top}.dkw-t tr:last-child td{border-bottom:0}.dkw-t .n{text-align:right;font-variant-numeric:tabular-nums}
.dkw-t a{color:var(--ink);font-weight:500}.dkw-t b.up{color:var(--good)}.dkw-t b.dn{color:var(--crit)}
/* recommendations */
.dkw-recs .dkw-b{padding-top:4px}
.dkw-rec{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;padding:10px 0;border-bottom:1px solid var(--dkw-line)}
.dkw-rn{font:500 13px var(--f-num);color:var(--ink-3);padding-top:1px}
.dkw-rt{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.dkw-rt a{color:var(--ink);font-weight:500;line-height:1.35}
.dkw-tag{font:600 10px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:var(--watchbg);color:var(--ink-2);white-space:nowrap}
.dkw-tag.t-late,.dkw-tag.t-fade,.dkw-tag.t-over,.dkw-tag.t-fcst,.dkw-tag.t-safety,.dkw-tag.t-today{background:var(--crit-a);color:var(--crit)}
.dkw-tag.t-due,.dkw-tag.t-start,.dkw-tag.t-burn,.dkw-tag.t-readiness,.dkw-tag.t-punch,.dkw-tag.t-dailies,.dkw-tag.t-friday,.dkw-tag.t-pi{background:var(--warn-a);color:var(--warn)}
.dkw-tag.t-teach,.dkw-tag.t-bid-vs-build,.dkw-tag.t-loss,.dkw-tag.t-price,.dkw-tag.t-hours{background:var(--data-a);color:var(--data)}
.dkw-tag.t-follow-up,.dkw-tag.t-toolbox,.dkw-tag.t-qc{background:var(--metal-a);color:var(--metal)}
.dkw-why{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.dkw-why span{font-size:11.5px;color:var(--ink-2);background:var(--watchbg);border-radius:4px;padding:1px 7px}
.dkw-rf{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-top:7px}.dkw-rf .dkw-x{padding:3px 9px;font-size:12px}
.dkw-sc{margin-left:auto;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.dkw-sc i{font-style:normal;margin-right:6px}.dkw-sc i.up{color:var(--good)}.dkw-sc i.dn{color:var(--crit)}
.dkw-whyr{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:7px}.dkw-whyr small{width:100%}.dkw-whyr .dkw-x{border-radius:999px;font-size:12px}
.dkw-inl{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:7px}.dkw-inl select{max-width:220px}.dkw-inl input{width:110px}
.dkw-ins{margin:0;padding-left:18px;color:var(--ink-2);font-size:13px;line-height:1.5}.dkw-ins li{margin-bottom:7px}
.dkw-dx{padding:8px 0;border-bottom:1px solid var(--dkw-line)}.dkw-dx b{display:block;font-weight:500}.dkw-dx span{display:block;font-size:12.5px;color:var(--accent)}.dkw-dx small{display:block;margin-top:2px}
/* loop */
.dkw-lp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin-bottom:10px}.dkw-ln b{display:block;font:300 24px/1.1 var(--f-num);font-variant-numeric:tabular-nums}.dkw-ln small{font-size:11px}
.dkw-rec2{margin:10px 0}.dkw-rec2>div{display:flex;gap:8px;padding:5px 0;font-size:12.5px;border-bottom:1px solid var(--dkw-line)}.dkw-rec2 i{font-style:normal;width:16px}.dkw-rec2 i.ok{color:var(--good)}.dkw-rec2 i.bd{color:var(--crit)}.dkw-rec2 small{display:block}
.dkw-mods{display:flex;flex-direction:column;gap:4px;margin:10px 0 4px}.dkw-mods span{font-size:11.5px;color:var(--ink-2);border-left:2px solid var(--accent);padding-left:8px}
.dkw-how{margin-top:8px;font-size:12.5px;color:var(--ink-2);line-height:1.5}.dkw-how summary{cursor:pointer;color:var(--ink);font:600 11px var(--f-disp);letter-spacing:.14em;text-transform:uppercase}.dkw-how ol{padding-left:18px;margin:8px 0 0}
/* jobs */
.dkw-wipp .dkw-b,.dkw-jobs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.dkw-jobs{padding:0}
.dkw-job{border:1px solid var(--dkw-line);border-radius:var(--r);padding:12px;background:var(--bg-inset);display:flex;flex-direction:column;gap:8px;min-width:0}
.dkw-job.over{border-left:3px solid var(--crit)}
.dkw-job header{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.dkw-job header a{color:var(--ink);font-weight:500;flex:1 1 160px;min-width:0}
.dkw-life{font:600 10px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:var(--accent-a);color:var(--accent)}.dkw-life.l-mobilize,.dkw-life.l-sold{background:var(--warn-a);color:var(--warn)}.dkw-life.l-punch,.dkw-life.l-closeout{background:var(--data-a);color:var(--data)}
.dkw-fl{font:600 9.5px var(--f-disp);letter-spacing:.1em;padding:1px 5px;border-radius:3px;background:var(--watchbg);color:var(--ink-2)}.dkw-fl.s3{background:var(--crit-a);color:var(--crit)}.dkw-fl.s2{background:var(--warn-a);color:var(--warn)}
.dkw-bars>div{display:grid;grid-template-columns:86px 1fr 44px;gap:8px;align-items:center;font-size:12px;margin:3px 0}.dkw-bars small{color:var(--ink-3)}.dkw-bars .dkw-m{width:100%;height:8px}.dkw-bars b{font:500 13px var(--f-num);text-align:right}
.dkw-jn{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--ink-2)}
.dkw-chip2{display:flex;flex-wrap:wrap;gap:4px}.dkw-chip2 span{font-size:11px;padding:1px 7px;border-radius:4px;background:var(--watchbg);color:var(--ink-2)}.dkw-chip2 .ok{background:var(--good-a);color:var(--good)}.dkw-chip2 .wn{background:var(--warn-a);color:var(--warn)}.dkw-chip2 .bd{background:var(--crit-a);color:var(--crit)}
.dkw-job footer{display:flex;gap:6px;align-items:center;margin-top:auto}.dkw-job footer .dkw-mut{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dkw-ready{display:flex;gap:12px;align-items:flex-start}
.dkw-ring{--p:0;flex:none;width:58px;height:58px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--p) * 1%),var(--track) 0);display:grid;place-items:center;position:relative}
.dkw-ring::before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--bg-inset)}.dkw-ring b{position:relative;font:500 15px var(--f-num)}
.dkw-gap{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:12px;padding:2px 0}.dkw-gap i{font-style:normal;color:var(--ink-3);font-size:11px;text-align:right}.dkw-gap .dkw-x{padding:2px 8px;font-size:11.5px}
/* weather + losses */
.dkw-wx{display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--dkw-line)}.dkw-wx:last-child{border-bottom:0}.dkw-wx>b{font-weight:500;font-size:13px}
.dkw-wx>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.dkw-wx span{text-align:center;border-radius:6px;padding:5px 2px;background:var(--watchbg)}.dkw-wx span small{display:block;font-size:10.5px}.dkw-wx span b{display:block;font:400 15px var(--f-num)}.dkw-wx span i{font-style:normal;font-size:11px;color:var(--ink-3)}
.dkw-wx span.wet{background:var(--metal-a)}.dkw-wx span.wet i{color:var(--metal);font-weight:600}.dkw-wx span.wind{background:var(--warn-a)}
.dkw-beat{margin-top:10px}.dkw-beat div{display:flex;justify-content:space-between;font-size:12.5px;padding:3px 0;border-bottom:1px solid var(--dkw-line)}
.dkw .chd{flex-wrap:wrap}
/* loading */
.dkw-load{text-align:center;color:var(--ink-3)}.dkw-sk{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px;margin:8px 0 18px}
.dkw-sk i{display:block;height:120px;border-radius:var(--r);background:linear-gradient(90deg,var(--watchbg),var(--hover),var(--watchbg));background-size:200% 100%;animation:dkshim 1.4s linear infinite}
@keyframes dkshim{to{background-position:-200% 0}}
@media (max-width:1200px){.dkw-grid{display:flex;flex-direction:column;align-items:stretch;gap:14px}.dkw-main,.dkw-side{display:contents}.dkw-grid .dkw-p{order:2}.dkw-grid .dkw-board,.dkw-grid .dkw-today{order:0}.dkw-grid .dkw-recs{order:1}.dkw-main>.dkw-two{order:2}.dkw-main>.dkw-two.top{order:0}}   /* narrow: the to-do list right under the board */
@media (max-width:900px){.dkw-two{grid-template-columns:minmax(0,1fr)}.dkw-fg{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .dkw{padding:12px 16px 40px}.dkw-hero{padding:14px}.dkw-ctl{width:100%}.dkw-ctl select{flex:1 1 140px;max-width:none}
  .dkw-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dkw-k{min-height:120px;padding:10px 12px}.dkw-k .v{font-size:26px}
  .dkw-askrow{flex-wrap:wrap}.dkw-askrow select{flex:1 1 100%}
  .dkw-bid{grid-template-columns:52px minmax(0,1fr);gap:6px 10px}.dkw-bp,.dkw-od,.dkw-ba{grid-column:2}.dkw-bp{text-align:left}.dkw-ba{justify-content:flex-start}
  .dkw-wipp .dkw-b,.dkw-jobs{grid-template-columns:1fr}.dkw-wx{grid-template-columns:1fr}.dkw-lp{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.dkw-live,.dkw-sk i{animation:none}}

/* ===================== Scheduler (public/scheduler-ui.js) — sk* ===================== */
.sk{--skc:150px;--skw:118px}
.sk .grow{flex:1}
.sk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.sk-seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden}
.sk-seg button{height:32px;padding:0 12px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink-2);font:inherit;font-size:12.5px;cursor:pointer}
.sk-seg button:last-child{border-right:0}.sk-seg button:hover{color:var(--ink);background:var(--hover)}.sk-seg button.on{background:var(--ink);color:var(--bg)}
.sk-range{font-family:var(--f-disp);font-size:14px}
.sk-bar input[type=search],.sk-bar select{height:32px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2);color:var(--ink);padding:0 10px;font:inherit;font-size:13px;min-width:0}
.sk-bar input[type=search]{width:190px}
.sk-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);margin:0 0 14px;background:var(--bg-2)}
.sk-kpi{padding:12px 16px;border-right:1px solid var(--line);min-width:0}.sk-kpi:last-child{border-right:0}
.sk-kpi span{display:block;font:600 11px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.sk-kpi b{display:block;font:300 26px/1.15 var(--f-num);margin-top:4px;color:var(--ink);font-variant-numeric:tabular-nums}
.sk-kpi small{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px;line-height:1.35}
.sk-kpi.bad b{color:var(--crit)}.sk-kpi.warn b{color:var(--warn)}.sk-kpi.ok b{color:var(--good)}
.sk-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-2);max-height:calc(100vh - var(--hdr-h) - 120px)}
.sk-grid{border-collapse:separate;border-spacing:0;min-width:100%;font-size:12px}
.sk-grid thead th{position:sticky;top:0;z-index:3;background:var(--bg-3,var(--bg-2));border-bottom:1px solid var(--line-2);padding:6px 6px 5px;text-align:left;font-weight:400;min-width:var(--skw);vertical-align:top}
.sk-grid thead th.sk-lane{z-index:4}
.sk-grid th.sk-lane{position:sticky;left:0;z-index:2;background:var(--bg-2);min-width:var(--skc);max-width:var(--skc);width:var(--skc);padding:8px 10px;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.sk-lane b{display:block;font-size:12.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sk-lane span{display:block;font-size:11px;color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sk-dh{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-2)}.sk-dh b{font-weight:600;color:var(--ink)}
.sk-hol{font-size:10.5px;color:var(--warn);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sk-load{font-size:10.5px;color:var(--ink-3);margin-top:2px;font-variant-numeric:tabular-nums}
.sk-rainday{margin-left:auto;border:1px solid transparent;background:transparent;color:var(--ink-3);border-radius:4px;cursor:pointer;font-size:12px;line-height:1;padding:2px 5px}
.sk-rainday:hover,.sk-rainday:focus-visible{border-color:var(--line-2);color:var(--metal)}
.sk-grid th.today,.sk-c.today{box-shadow:inset 0 2px 0 var(--accent)}
.sk-c{position:relative;vertical-align:top;padding:4px 4px 22px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-width:var(--skw);height:52px}
.sk-c.wkend,.sk-grid th.wkend{background:var(--hatch)}
.sk-c.off{background:repeating-linear-gradient(135deg,var(--warn-a) 0 6px,transparent 6px 12px)}
.sk-c.hol{background:repeating-linear-gradient(135deg,var(--hatch) 0 6px,transparent 6px 12px)}
.sk-c.drop{outline:2px dashed var(--accent);outline-offset:-3px;background:var(--accent-a,var(--hover))}
.sk-off{font-size:10.5px;color:var(--warn);margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sk-grp th.sk-lane b{color:var(--ink-2);font-weight:500}
.sk-add{position:absolute;left:4px;right:4px;bottom:3px;height:16px;border:1px dashed transparent;border-radius:4px;background:transparent;color:transparent;font-size:12px;line-height:12px;cursor:pointer}
.sk-c:hover .sk-add,.sk-add:focus-visible{border-color:var(--line-2);color:var(--ink-3)}
.sk-add:hover{border-color:var(--accent);color:var(--accent)}
.sk-chip{--h:220;--c:hsl(var(--h) 65% 62%);display:block;width:100%;text-align:left;margin:0 0 3px;padding:4px 6px 4px 7px;border:1px solid var(--line-2);border-left:3px solid var(--c);border-radius:5px;background:var(--bg);color:var(--ink);font:inherit;font-size:11.5px;line-height:1.25;cursor:pointer;min-height:30px}
:root[data-theme="light"] .sk-chip{--c:hsl(var(--h) 60% 42%);background:#fff}
.sk-chip b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sk-chip b i{font-style:normal;font-size:10px}
.sk-chip span{display:block;color:var(--ink-3);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sk-chip:hover{border-color:var(--line-3)}.sk-chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.sk-chip[draggable=true]{cursor:grab}.sk-chip.drag{opacity:.45}
.sk-chip.ty-sub{--c:var(--data);background:var(--data-a)}.sk-chip.ty-trans{--c:var(--metal);background:var(--metal-a)}.sk-chip.ty-st{--c:var(--good)}.sk-chip.ty-insp{--c:var(--warn)}.sk-chip.ty-meet{--c:var(--ink-3)}
.sk-chip.st-tent{border-style:dashed;border-left-style:solid;opacity:.85}
.sk-chip.st-conf b::after{content:" ✓";color:var(--good);font-weight:700}
.sk-chip.st-rain{background:repeating-linear-gradient(135deg,var(--metal-a) 0 5px,transparent 5px 10px);--c:var(--metal)}
.sk-chip.st-rain b{text-decoration:line-through;text-decoration-color:var(--metal)}
.sk-chip.st-canc{opacity:.5}.sk-chip.st-canc b{text-decoration:line-through}
.sk-chip.st-done{opacity:.6}
.sk-chip.flag{box-shadow:0 0 0 1px var(--crit) inset;border-color:var(--crit)}
.sk-chip.locked{border-right:3px double var(--line-3)}
/* SP14 (#248): the assigned superintendent's color is a chip's / bar's main edge (public/jobcard.js); status keeps its own marks */
.sk-chip.mgr{border-left:5px solid var(--mgr)}.sk-chip.mgr.flag{border-left-color:var(--mgr)}
.sk-chip.mgr:not(.ty-prod):not(.flag){box-shadow:inset -3px 0 0 var(--c)}
.fc-bar.mgr{border-left:4px solid var(--mgr)!important}.fc-bar:focus-visible{outline:2px solid var(--accent);outline-offset:1px;z-index:4}
.jc-sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 5px -1px 0;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.jc-leg{display:inline-flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:11.5px;color:var(--ink-2);margin-left:6px}
.jc{position:fixed;z-index:9000;width:320px;max-width:calc(100vw - 16px);background:var(--bg-2);color:var(--ink);border:1px solid var(--line-3);border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.35);padding:10px 12px;font-size:12.5px;line-height:1.35}
.jc[hidden]{display:none}
.jc.sheet{left:0!important;right:0;bottom:0;top:auto!important;width:auto;max-width:none;border-radius:12px 12px 0 0;padding:14px 16px calc(14px + env(safe-area-inset-bottom))}
.jc-h{display:flex;gap:8px;align-items:flex-start;margin-bottom:6px}.jc-h b{flex:1;font-size:13.5px}.jc-h em{font-style:normal;font-size:11px;color:var(--ink-3);white-space:nowrap;padding-top:2px}
.jc-x{background:none;border:0;color:var(--ink-3);font-size:18px;line-height:1;cursor:pointer;min-width:28px;min-height:28px}.jc.sheet .jc-x{min-width:44px;min-height:44px}
.jc-r{display:flex;gap:10px;padding:2px 0;border-top:1px solid var(--line)}.jc-r span{width:118px;flex:none;color:var(--ink-3)}.jc-r b{font-weight:600}.jc-r small{color:var(--ink-3);font-weight:400}
.jc-unk{color:var(--ink-3);font-style:italic;font-weight:400}.jc-n{color:var(--ink-2);font-size:11.5px;margin-top:4px}
.jc-a{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.jc.sheet .jc-a .linkbtn{min-height:44px}
@media print{.jc{display:none!important}}
.sk-legend{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.sk-legend .sk-chip{display:inline-block;width:auto;min-height:0;margin:0;cursor:default}
.sk-tabs{margin:6px 0 10px}
.sk-low{padding:14px 16px}
.sk-iss{display:grid;gap:5px}
.sk-i{display:flex;gap:8px;align-items:baseline;font-size:12.5px;line-height:1.4;padding:6px 8px;border-radius:5px;border:1px solid var(--line);background:var(--bg)}
.sk-i[role=button]{cursor:pointer}.sk-i[role=button]:hover{border-color:var(--line-3)}
.sk-i em{flex:none;font:600 10px var(--f-disp);letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border-radius:4px;font-style:normal}
.sk-i span{flex:none;color:var(--ink-3);font-size:11.5px}
.sk-i.s3{border-color:color-mix(in srgb,var(--crit) 45%,transparent)}.sk-i.s3 em{background:var(--crit-a);color:var(--crit)}
.sk-i.s2 em{background:var(--warn-a);color:var(--warn)}.sk-i.s1 em,.sk-i.s0 em{background:var(--hover);color:var(--ink-3)}
.sk-agenda{display:none}
.sk-ag{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);gap:8px;align-items:start;margin:0 0 4px}
.sk-who{font-size:12px;color:var(--ink-2);padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sk-agenda section{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-2);padding:10px 12px;margin:0 0 10px}
.sk-agenda section.today{border-color:var(--accent)}
.sk-agenda h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font:600 13px var(--f-disp)}
.sk-agenda .sk-rainday{font-size:12px;border-color:var(--line-2)}
.sk-learn{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.sk-learn h4{margin:0 0 10px;font:600 12px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}.sk-learn h4 .sec-note{display:block;margin-top:4px;letter-spacing:0;text-transform:none}
.sk-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;align-items:end;height:130px}
.sk-bars div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:10px;color:var(--ink-3)}
.sk-bars i{display:block;width:100%;max-width:22px;background:var(--metal);border-radius:3px 3px 0 0;min-height:2px}.sk-bars b{font-weight:500;color:var(--ink-2);margin-top:3px}
.sk-kv{display:flex;gap:8px;align-items:baseline;font-size:12.5px;padding:3px 0;border-bottom:1px solid var(--line)}.sk-kv span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sk-kv small{color:var(--ink-3)}
.sk-log{display:grid;gap:6px}
.sk-lg{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:4px 12px;align-items:center;font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--line)}
.sk-lg>span{color:var(--ink-3);font-size:11.5px}.sk-lg small{grid-column:2;color:var(--ink-3)}.sk-lg button{grid-row:1/3;grid-column:3}.sk-lg.undone b{text-decoration:line-through;color:var(--ink-3)}
/* the sheet */
.sk-sheet{position:fixed;inset:0;z-index:60;display:none}.sk-sheet.open{display:block}
.sk-scrim{position:absolute;inset:0;background:var(--scrim)}
.sk-pane{position:absolute;top:0;right:0;bottom:0;width:min(1000px,100vw);background:var(--bg);box-shadow:var(--shadow);display:flex;flex-direction:column}
.sk-ph{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line)}.sk-ph>b{font:600 13px var(--f-disp);letter-spacing:.14em;text-transform:uppercase}.sk-ph .grow{flex:1}
.sk-x{width:34px;height:34px;border:1px solid var(--line-2);border-radius:var(--r);background:transparent;color:var(--ink);font-size:20px;line-height:1;cursor:pointer}
.sk-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:0}
.sk-left,.sk-right{overflow:auto;padding:16px 20px 30px}.sk-right{border-left:1px solid var(--line);background:var(--bg-2)}
.sk-left h3{margin:14px 0 10px;font:600 15px var(--f-disp)}
.sk-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
.sk-f{display:flex;flex-direction:column;gap:4px;min-width:0}.sk-f.wide{grid-column:1/-1}
.sk-form>.wide{grid-column:1/-1}.sk-form>.sk-note{margin:0}
.sk-f>span{font:600 10.5px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.sk-f input,.sk-f select,.sk-f textarea{width:100%;min-height:36px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2);color:var(--ink);padding:6px 9px;font:inherit;font-size:13.5px;box-sizing:border-box}
.sk-f textarea{resize:vertical}.sk-f input:focus,.sk-f select:focus,.sk-f textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.sk-chk{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);min-height:28px;cursor:pointer}.sk-chk input{width:16px;height:16px;flex:none;margin:0}
.sk-note{font-size:12.5px;line-height:1.45;padding:8px 10px;border-radius:5px;background:var(--hover);color:var(--ink-2);margin:6px 0}
.sk-note.warn{background:var(--warn-a);color:var(--ink)}.sk-note.ok{background:var(--good-a);color:var(--ink)}
.sk-crew{border:1px solid var(--line-2);border-radius:var(--r);padding:8px}.sk-crew input[type=search]{min-height:32px;margin-bottom:6px}
.sk-crewl{max-height:170px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 10px}
.sk-crewl label{display:flex;align-items:center;gap:6px;font-size:12.5px;min-height:26px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sk-crewl small{color:var(--ink-3)}
.sk-crewl input{width:15px;height:15px;min-height:0;flex:none;margin:0}
.sk-evh{border-left:4px solid hsl(var(--h,220) 65% 58%);padding:4px 0 4px 12px;margin:0 0 12px}.sk-evh b{display:block;font-size:15px}.sk-evh span{font-size:12.5px;color:var(--ink-3)}.sk-evh em{font-style:normal;color:var(--ink)}
.sk-kvs{display:grid;grid-template-columns:130px minmax(0,1fr);gap:6px 12px;font-size:13px;margin:0 0 12px}.sk-kvs>div{display:contents}.sk-kvs span{color:var(--ink-3)}.sk-kvs b{font-weight:500;white-space:pre-line}
.sk-acts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.sk-pill{height:30px;padding:0 12px;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--ink-2);font:inherit;font-size:12.5px;cursor:pointer}.sk-pill:hover{color:var(--ink);border-color:var(--line-3)}.sk-pill.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.sk-right h4{margin:16px 0 8px;font:600 11.5px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.sk-sum{font-size:14px;font-weight:600;line-height:1.4}
.sk-busy{font-size:11px;color:var(--ink-3);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}
.sk-ops{font-size:12.5px;color:var(--ink-2);margin:8px 0}.sk-ops summary{cursor:pointer}.sk-ops div{padding:2px 0 2px 12px;color:var(--ink-3)}
.sk-fb{border:1px solid var(--line);border-left:3px solid var(--line-3);border-radius:5px;background:var(--bg);padding:8px 10px;margin:0 0 6px}
.sk-fb b{font-size:12.5px}.sk-fb p{margin:3px 0 0;font-size:12.5px;line-height:1.45;color:var(--ink-2)}.sk-fb small{display:block;font-size:11px;color:var(--ink-3);margin-top:4px}
.sk-fb.warn{border-left-color:var(--warn)}.sk-fb.info{border-left-color:var(--accent)}.sk-fb.ok{border-left-color:var(--good)}.sk-fb.num{border-left-color:var(--data)}.sk-fb.learn{border-left-color:var(--metal)}
.sk-wk{display:grid;gap:4px;margin-top:6px}.sk-wk>div{display:grid;grid-template-columns:62px minmax(0,1fr) 38px;gap:8px;align-items:center;font-size:11.5px;color:var(--ink-3)}
.sk-wk i{position:relative;height:9px;border-radius:5px;background:var(--track);overflow:hidden}.sk-wk u,.sk-wk s{position:absolute;left:0;top:0;bottom:0;border-radius:5px}
.sk-wk s{background:var(--data);opacity:.9}.sk-wk u{background:var(--ink-3);z-index:1;height:3px;top:auto}.sk-wk em{font-style:normal;text-align:right;color:var(--ink-2)}
.sk-thin{font-size:12px;color:var(--ink-3);margin:12px 0 0;padding:8px 10px;border:1px dashed var(--line-2);border-radius:5px}.sk-thin b{display:block;font-weight:600;color:var(--ink-2);margin-bottom:2px}
.sk-save{position:sticky;bottom:-30px;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;padding:12px 0 6px;background:var(--bg-2);border-top:1px solid var(--line);margin-top:14px}
.sk-save .sk-f{flex:1 1 100%}
@media (max-width:1100px){.sk-learn{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.sk-body{grid-template-columns:1fr;overflow:auto}.sk-left,.sk-right{overflow:visible}.sk-right{border-left:0;border-top:1px solid var(--line)}.sk-pane{width:100vw}}
@media (max-width:700px){
  .sk-wrap{display:none}.sk-agenda{display:block}
  .sk-kpis{grid-template-columns:1fr 1fr}.sk-kpi:nth-child(2){border-right:0}.sk-kpi:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .sk-bar input[type=search]{flex:1 1 100%;width:auto}.sk-bar select{flex:1 1 100%}.sk-bar .linkbtn{flex:1 1 auto}
  .sk-form{grid-template-columns:1fr 1fr}.sk-crewl{grid-template-columns:1fr}.sk-learn{grid-template-columns:1fr}
  .sk-left,.sk-right{padding:12px 16px 24px}.sk-ph{padding:10px 16px}
  .sk-lg{grid-template-columns:minmax(0,1fr) auto}.sk-lg>span{grid-column:1}.sk-lg small{grid-column:1}.sk-lg button{grid-row:1/4;grid-column:2}
  .sk-kvs{grid-template-columns:100px minmax(0,1fr)}
}

/* ---------- RAMCON 25 — the anniversary welcome (anniv.js) ----------
   A full-screen canvas over the app for ~4 s, once per person per day through Nov 30, 2026. Click, tap or Esc skips. */
.an-root{position:fixed;inset:0;z-index:400;overflow:hidden;cursor:pointer;background:#03042c;opacity:1;transition:opacity .6s ease;animation:anIn .3s ease-out;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
.an-root.an-light{background:#f7f6f1}
.an-root.an-out{opacity:0;pointer-events:none;animation:none}
.an-cv{position:absolute;inset:0;width:100%;height:100%;display:block}
.an-skip{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));padding:9px 15px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(3,4,44,.35);color:rgba(255,255,255,.62);font:600 11px/1 var(--f-disp);letter-spacing:.24em;text-transform:uppercase;transition:color .15s,border-color .15s}
.an-skip:hover,.an-skip:focus-visible{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 55%,transparent)}
.an-light .an-skip{border-color:rgba(1,1,96,.2);background:rgba(255,255,255,.5);color:rgba(1,1,96,.65)}
.an-light .an-skip:hover,.an-light .an-skip:focus-visible{color:#010160;border-color:rgba(1,1,96,.5)}
.an-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@keyframes anIn{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.an-root{animation-duration:.25s}}

/* ---------- RAMCON Store merch mockups (public/merch.js) ---------- */
.mx{position:relative;--mx-a:#f3f4f6;--mx-b:#d9dde3}
:root:not([data-theme="light"]) .mx{--mx-a:#3a3f5e;--mx-b:#1a1d38}
.mx .mxsvg{display:block;width:100%;aspect-ratio:1}
.mx[data-side="b"] .mxf,.mx:not([data-side="b"]) .mxb{display:none}
.mxflip{position:absolute;right:10px;top:10px;z-index:2;display:inline-flex;align-items:center;gap:5px;font:600 10.5px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;
  padding:4px 9px 4px 7px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:rgba(255,255,255,.82);color:#14152a;cursor:pointer;backdrop-filter:blur(4px);transition:background var(--t)}
.mxflip:hover{background:#fff} .mxflip svg{width:13px;height:13px}
:root:not([data-theme="light"]) .mxflip{background:rgba(10,12,34,.6);color:#eef0ff;border-color:rgba(255,255,255,.16)}
:root:not([data-theme="light"]) .mxflip:hover{background:rgba(10,12,34,.85)}
.mxsw{position:absolute;left:10px;bottom:10px;z-index:2;display:flex;gap:6px}
.mxsw button{width:20px;height:20px;padding:0;border-radius:50%;cursor:pointer;background:linear-gradient(135deg,var(--c1) 50%,var(--c2) 50%);
  border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px rgba(0,0,0,.25),0 1px 3px rgba(0,0,0,.3);transition:transform var(--t)}
.mxsw button:hover{transform:scale(1.12)} .mxsw button.on{box-shadow:0 0 0 2px var(--ink),0 1px 3px rgba(0,0,0,.3)}
.mxflip:focus-visible,.mxsw button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* SR13-A (#242): the product's own views — card poster + "Look closer" viewer (public/merch.js MERCH.poster / MERCH.open) */
.mxph{background:#d6d4cf} .mxph .mxphoto{object-fit:contain;background:#d6d4cf}
.mxtag,.mxv-tag{position:absolute;left:8px;bottom:8px;z-index:2;font:600 10px var(--f-disp);letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.88);color:#14152a;border-radius:999px;padding:3px 9px}
.plook{align-self:flex-start}
body.mxv-on{overflow:hidden}
.mxv{position:fixed;inset:0;z-index:1000;background:rgba(6,10,24,.62);display:flex;align-items:center;justify-content:center;padding:16px}
.mxv-box{background:var(--bg);color:var(--ink);border-radius:14px;width:min(1040px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:16px 18px 20px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.mxv-hd{display:flex;justify-content:space-between;align-items:center;gap:12px} .mxv-hd h3{margin:0;font-family:var(--f-disp);font-weight:500;font-size:22px}
.mxv-x{min-width:44px;min-height:44px;font-size:24px;line-height:1;background:none;border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer}
.mxv-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;margin-top:12px}
.mxv-stage{position:relative;overflow:hidden;border-radius:12px;background:#d6d4cf;aspect-ratio:1;touch-action:pan-y;cursor:grab;user-select:none}
.mxv-stage.art{background:none;cursor:default}
.mxv-stage:focus-visible,.mxv button:focus-visible,.mxv input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.mxv-img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .18s ease;pointer-events:none}
.mxv-arr{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid rgba(0,0,0,.15);background:rgba(255,255,255,.85);color:#14152a;font-size:24px;line-height:1;cursor:pointer}
.mxv-arr.prev{left:8px} .mxv-arr.next{right:8px}
.mxv-views,.mxv-zoom{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}
.mxv-views button,.mxv-zoom button{min-height:44px;min-width:44px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:none;color:var(--ink);font:inherit;cursor:pointer}
.mxv-views button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.mxv-zoom input{flex:1;min-width:80px;accent-color:var(--accent)}
.mxv-status,.mxv-note{font-size:12.5px;color:var(--ink-2);margin:8px 0 0}
.mxv-right{display:flex;flex-direction:column;gap:10px} .mxv-desc{margin:0;color:var(--ink-2);font-size:14px;line-height:1.5}
.mxv-l{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px}
.mxv .pchips button{min-height:44px;min-width:44px;padding:0 12px;font-size:14px}
.mxv-sum{margin:4px 0 0;font-size:14px;min-height:20px} .mxv-right .linkbtn{align-self:flex-start;min-height:44px}
@media (max-width:720px){.mxv{padding:0;align-items:stretch}.mxv-box{border-radius:0;max-height:100vh;height:100%;width:100%;padding:12px 16px 20px}.mxv-grid{grid-template-columns:minmax(0,1fr);gap:14px}}
@media (prefers-reduced-motion:reduce){.mxv-img{transition:none}}
/* SR13-B (#244): the 360° spin — drag cue, loading state, card badge */
.mx360{position:absolute;right:8px;top:8px;z-index:2;font:700 11px var(--f-disp);letter-spacing:.06em;background:#000051;color:#fff;border-radius:999px;padding:3px 9px}
.mxv-stage.spin{touch-action:pan-y}.mxv-stage.spin:active{cursor:grabbing}
.mxv-cue{position:absolute;left:50%;top:10px;transform:translateX(-50%);z-index:2;font:600 12px var(--f-disp);letter-spacing:.06em;background:rgba(0,0,81,.82);color:#fff;border-radius:999px;padding:5px 12px;white-space:nowrap;pointer-events:none}
.mxv-load{position:absolute;left:50%;bottom:44px;transform:translateX(-50%);z-index:2;font-size:12.5px;background:rgba(255,255,255,.9);color:#14152a;border-radius:8px;padding:6px 10px;white-space:nowrap}

/* ---------- Estimating analytics: insight cards + "Is the system getting smarter?" (app-est.js, lib/estinsights.js) ---------- */
.ei-deck{margin:14px 0 24px}
.ei-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ei-top h3{margin:0;font-family:var(--f-disp);font-weight:600;font-size:15px;letter-spacing:var(--track-wide);text-transform:uppercase}.ei-top .grow{flex:1}
.ei-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));gap:14px;margin-top:10px;align-items:start}
.ei-card{border:1px solid var(--line);border-left:3px solid var(--warn);background:var(--bg-2);padding:14px 16px;min-width:0;display:flex;flex-direction:column;gap:10px}
.ei-card.ei-crit{border-left-color:var(--crit)}.ei-card.ei-info{border-left-color:var(--accent)}.ei-card.ei-good{border-left-color:var(--good)}
.ei-card header{display:flex;align-items:center;gap:10px;min-height:20px}
.ei-kind{font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.ei-acted{font-size:11.5px;color:var(--good)}
.ei-x{margin-left:auto;background:none;border:0;color:var(--ink-3);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:var(--r)}.ei-x:hover{color:var(--ink);background:var(--hover)}
.ei-card h4{margin:0;font-size:16.5px;line-height:1.3;font-weight:600;color:var(--ink)}
.ei-claim{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.ei-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.ei-nums div{background:var(--bg-inset);padding:8px 10px;border-radius:var(--r);min-width:0}
.ei-nums small{display:block;font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ei-nums b{display:block;font-family:var(--f-num);font-weight:400;font-size:22px;line-height:1.2;margin-top:2px;font-variant-numeric:tabular-nums}
.ei-nums span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px}
.ei-chart{overflow-x:auto;max-width:100%}.ei-chart>.sec-note{margin-top:4px}
.ei-chips{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--ink-2);line-height:1.45}.ei-st{color:var(--accent)}
.ei-actbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ei-grp{display:inline-flex}.ei-grp .ei-b{border-radius:0;margin-left:-1px}.ei-grp .ei-b:first-child{border-radius:var(--r) 0 0 var(--r);margin-left:0}.ei-grp .ei-b:last-child{border-radius:0 var(--r) var(--r) 0}
.ei-b{display:inline-flex;align-items:center;height:28px;padding:0 10px;border:1px solid var(--line-2);background:var(--accent-a);color:var(--ink);font:500 12px var(--f-ui);border-radius:var(--r);cursor:pointer;white-space:nowrap}
.ei-b:hover{border-color:var(--accent)}.ei-b.ghost{background:none}.ei-b.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.ei-b:disabled{opacity:.4;cursor:wait}
.ei-sel{height:28px;max-width:200px;background:var(--bg-3);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r);font:12px var(--f-ui);padding:0 6px}
.ei-in{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--ink-3)}
.ei-in input[type=date],.ei-in input[type=number]{height:28px;background:var(--bg-3);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r);font:12px var(--f-ui);padding:0 6px;max-width:140px}
.ei-ev{overflow-x:auto;-webkit-overflow-scrolling:touch;border-top:1px solid var(--line);max-width:100%}
.ei-tbl th,.ei-tbl td{white-space:nowrap}.ei-tbl td b{font-weight:500}
.ei-tbl tr.ei-actrow>td{border-top:0;padding-top:0;padding-bottom:10px;white-space:normal}.ei-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;position:sticky;left:0;max-width:calc(100vw - 72px)}
.ei-tbl tr:has(+ .ei-actrow)>td{border-bottom:0}.ei-done td{opacity:.55}.ei-actrow.ei-done td{opacity:1}.ei-ok{color:var(--good);font-size:12px}
.ei-tag{display:inline-block;font-size:10.5px;padding:1px 6px;border-radius:8px;background:var(--data-a);color:var(--data);font-weight:500;vertical-align:1px}
.ei-sub>td{background:var(--bg-inset);white-space:normal}.ei-sub .tbl td{white-space:nowrap}
.ei-more{background:none;border:0;color:var(--accent);cursor:pointer;font:500 12.5px var(--f-ui);padding:2px 0;align-self:flex-start}
.ei-defs{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-3)}.ei-defs label{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.ei-how{font-size:12px;color:var(--ink-3);line-height:1.5}.ei-how summary{cursor:pointer;width:max-content;max-width:100%}
.ei-drill{border:1px solid var(--line);padding:10px;background:var(--bg-inset);min-width:0}
.ei-asks{border:1px solid var(--accent);background:var(--accent-a);padding:12px 14px;margin:10px 0}.ei-asks h4{margin:0 0 6px;font-size:14px}
.ei-ask{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--line)}.ei-ask span{flex:1;min-width:200px}.ei-ask small{display:block;color:var(--ink-3);font-size:12px}
.ei-grades{list-style:none;margin:0 0 8px;padding:0}.ei-grades li{display:flex;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.ei-grades li i{width:18px;flex:none;font-style:normal;text-align:center;color:var(--ink-3)}
.ei-grades i.ok{color:var(--good)}.ei-grades i.bad{color:var(--crit)}.ei-grades small{display:block;color:var(--ink-3);font-size:12px}
.ei-gap{display:inline-block;width:80px;height:6px;background:var(--track);border-radius:3px;overflow:hidden;vertical-align:middle}.ei-gap i{display:block;height:100%;background:var(--good)}.ei-gap i.bad{background:var(--crit)}
.ei-wait{margin:10px 0}
@media (max-width:760px){.ei-grid{grid-template-columns:1fr}.ei-card{padding:12px}.ei-top .ei-sel{max-width:100%}.ei-nums{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- RECON: find any building, company, person, contact or job ---------- */
.rc{max-width:980px;margin:0 auto}
.rc-hero{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin:6px 0 14px}
.rc-mark{font-family:var(--f-ui);font-weight:700;font-size:40px;line-height:1;letter-spacing:-.01em;color:var(--ink)} /* #396: no stencil */
.rc-tagline{color:var(--ink-3);font-size:14px}
.rc-sten{font:600 15px/1.25 var(--f-ui);letter-spacing:-.01em;color:var(--ink);margin:0 0 10px}
.rc-sten span{color:var(--ink-3);font-family:var(--f-disp);letter-spacing:.06em;margin-left:6px}
.rc-kinds{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.rc-kinds button{height:30px;padding:0 12px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink-2);border-radius:var(--r);font-family:var(--f-disp);font-size:13px;letter-spacing:.06em;cursor:pointer}
.rc-kinds button.on{background:var(--accent);color:var(--accent-ink,#0b0b0c);border-color:var(--accent)}
.rc-box{position:relative;margin-bottom:18px}
.rc-box input{width:100%;box-sizing:border-box;height:52px;padding:0 16px;font-size:18px;background:var(--bg-2);color:var(--ink);border:1px solid var(--line-2,var(--line));border-radius:var(--r)}
.rc-box input:focus{outline:2px solid var(--accent);outline-offset:1px}
.rc-drop{position:absolute;left:0;right:0;top:56px;z-index:30;background:var(--bg-2);border:1px solid var(--line-2,var(--line));border-radius:var(--r);box-shadow:0 18px 40px -16px rgba(0,0,0,.55);max-height:60vh;overflow:auto}
.rc-hit{display:grid;grid-template-columns:96px 1fr;gap:2px 10px;width:100%;text-align:left;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);cursor:pointer}
.rc-hit.on,.rc-hit:hover{background:var(--bg-3)}
.rc-hit .rc-tag{grid-row:span 2;align-self:center}
.rc-ht{font-weight:600}.rc-hs{color:var(--ink-3);font-size:12.5px}
.rc-none{padding:14px;color:var(--ink-3)}
.rc-tag{display:inline-block;font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:.02em;color:var(--accent);background:var(--accent-a);border-radius:999px;padding:2px 9px;text-align:center}
.rc-tag.big{font-size:13px;margin-bottom:6px}
.rc-file{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.rc-fhead{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.rc-title{margin:6px 0 2px;font-size:26px;font-weight:700;line-height:1.2;color:var(--ink)}
.rc-sub{color:var(--ink-3)}
.rc-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
.rc-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.rc-link{display:flex;flex-direction:column;align-items:flex-start;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-3);color:var(--ink);cursor:pointer;font-weight:600}
.rc-link small{font-weight:400;color:var(--ink-3);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.rc-facts dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 18px;margin:0 0 18px}
.rc-facts dt{color:var(--ink-3);font-size:12px}.rc-facts dd{margin:2px 0 0;font-weight:600;word-break:break-word}
.rc-rel{margin:0 0 18px}
.rc-row{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:10px 12px;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);cursor:pointer}
.rc-row:hover{background:var(--bg-3)}.rc-row span{color:var(--ink-3);font-size:12.5px;text-align:right}
.rc-hint kbd{font-family:"Saira Stencil One",monospace;border:1px solid var(--line);border-radius:3px;padding:0 5px}
.rc-foot{margin-top:18px;text-align:right}
@media (max-width:640px){.rc-mark{font-size:34px}.rc-hit{grid-template-columns:1fr}.rc-hit .rc-tag{grid-row:auto;justify-self:start}.rc-row{flex-direction:column;gap:2px}.rc-row span{text-align:left}.rc-file{padding:16px}}

/* ---------- QC Command / Risk Command (opsroom.js): calm war rooms — one number per panel, five rows at most ---------- */
.orpage{background:var(--bg)}
.or{display:flex;flex-direction:column;gap:18px;min-height:calc(100vh - 140px);padding:20px 22px 14px;color:var(--ink);font-family:var(--f-ui)}
.orpage .or{min-height:100vh;padding:26px 32px 16px}
.or-in{margin:-4px -4px 0}
.or-top{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--line)}
.or-top>div:first-child{display:flex;flex-direction:column;gap:2px;margin-right:auto}
.or-t{font-family:"Black Ops One",var(--f-disp);font-weight:400;font-size:30px;letter-spacing:.08em;line-height:1}
.or-top>div:first-child span{font-size:12.5px;color:var(--ink-3);letter-spacing:.04em}
.or-st{font-family:"Saira Stencil One",var(--f-disp);font-size:15px;letter-spacing:.2em;padding:6px 14px;border-radius:999px;border:1px solid currentColor}
.or-st.ok{color:var(--good)}.or-st.warn{color:var(--warn)}.or-st.bad{color:var(--crit)}
.or-clk{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.or-clk b{font-family:var(--f-num);font-size:20px;font-weight:600}.or-clk span{font-size:11.5px;color:var(--ink-3)}
.or-top nav{display:flex;gap:6px;align-items:center}
.or-top nav a,.or-top nav button{font:500 12.5px var(--f-ui);color:var(--ink-2);background:transparent;border:1px solid var(--line-2);border-radius:999px;padding:6px 12px;cursor:pointer;text-decoration:none}
.or-top nav a:hover,.or-top nav button:hover{color:var(--ink);border-color:var(--line-3)}
.or-brief{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;counter-reset:b;max-width:980px}
.or-brief li{counter-increment:b;display:flex;gap:12px;align-items:baseline;font-size:15.5px;line-height:1.45;color:var(--ink)}
.or-brief li::before{content:counter(b);flex:0 0 22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;font:600 11.5px var(--f-num);color:var(--ink-2);border:1px solid var(--line-2)}
.or-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-content:start}
@media (max-width:1100px){.or-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
.or-p{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:18px 20px 16px;display:flex;flex-direction:column;gap:12px;min-width:0;border-left-width:3px;border-left-color:transparent}
.or-p[data-go]{cursor:pointer}.or-p[data-go]:hover{border-color:var(--line-2)}
.or-p.warn{border-left-color:var(--warn)}.or-p.bad{border-left-color:var(--crit)}
.or-p h3{margin:0;font:600 11.5px var(--f-ui);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3)}
.or-big{display:flex;flex-direction:column;gap:2px}
.or-big b{font:600 46px/1 var(--f-num);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.or-big span{font-size:13.5px;color:var(--ink-2)}
.or-big em{font-style:normal;font-size:12px;color:var(--ink-3)}
.or-big em .ok,.or-l i.ok{color:var(--good)}.or-big em .bad,.or-l i.bad,.or-l .bad{color:var(--crit)}.or-l i.warn{color:var(--warn)}
.or-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.or-l li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:7px 8px;margin:0 -8px;border-radius:8px;font-size:13.5px}
.or-l li[data-job]{cursor:pointer}.or-l li[data-job]:hover{background:var(--hover)}
.or-l li>span{display:flex;flex-direction:column;min-width:0}.or-l li>span b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.or-l li small{font-size:11.5px;color:var(--ink-3)}
.or-l li>i{font-style:normal;font:600 13.5px var(--f-num);white-space:nowrap;color:var(--ink-2)}
.or-ck li{padding:5px 8px}
.or-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.or-two>div>small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.or-bars{display:flex;gap:6px;align-items:flex-end;height:64px}
.or-bars>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;height:100%;justify-content:flex-end}
.or-bars i{display:block;width:100%;max-width:26px;border-radius:4px 4px 0 0;background:rgba(184,211,255,.28);border-top:2px solid var(--accent)}
.or-bars small{font-size:10px;color:var(--ink-3);white-space:nowrap}
.or-q{margin:0;font-size:12.5px;color:var(--ink-3)}.or-q b.warn{color:var(--warn)}
.or-lk a{color:var(--accent);cursor:pointer}
.or-rep{font:500 11.5px var(--f-ui);color:var(--accent);text-decoration:none;margin-left:6px}
.or-btn{align-self:flex-start;font:500 12.5px var(--f-ui);color:var(--accent);background:var(--accent-a);border:0;border-radius:999px;padding:7px 14px;cursor:pointer}
.or-off{padding:60px 0;text-align:center;color:var(--ink-3);font-size:15px}
.or-ft{margin-top:auto;font-size:11.5px;color:var(--ink-3);text-align:right}
.or-stale{margin:0 0 10px;padding:8px 12px;border-radius:8px;border:1px solid #d9a400;background:rgba(217,164,0,.12);font-size:13px}
@media (max-width:640px){.or,.orpage .or{padding:14px 16px}.or-t{font-size:22px}.or-g{grid-template-columns:1fr}.or-big b{font-size:38px}.or-clk{display:none}.or-top nav{width:100%;flex-wrap:wrap}}

/* ---------- Link Desk ---------- */
.ld{max-width:1100px;display:flex;flex-direction:column;gap:22px;padding-bottom:30px}
.ld-top{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-end;justify-content:space-between}
.ld-top h1{font-family:"Black Ops One",var(--f-disp);font-weight:400;letter-spacing:.06em;font-size:30px;margin:0 0 6px}
.ld-top p{margin:0;max-width:620px;color:var(--ink-2);font-size:14px;line-height:1.5}
.ld-k{display:flex;gap:22px;flex-wrap:wrap}.ld-k>div{display:flex;flex-direction:column;max-width:170px}.ld-k b{font:600 28px var(--f-num)}.ld-k span{font-size:12px;color:var(--ink-3);line-height:1.3}
.ld-s h2{font:600 16px var(--f-ui);margin:0 0 2px;display:flex;align-items:center;gap:8px}.ld-s h2 span{font:600 12px var(--f-num);color:var(--ink-2);background:var(--bg-3);border-radius:999px;padding:2px 9px}
.ld-n{margin:0 0 10px;font-size:13px;color:var(--ink-3)}
.ld-ok{margin:0;color:var(--good);font-size:13.5px}
.ld-i{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px}
.ld-h{font-size:13.5px;color:var(--ink-2)}.ld-h b{color:var(--ink)}.ld-j{cursor:pointer}
.ld-said{font-size:13.5px}.ld-said i{color:var(--ink-3)}
.ld-m,.ld-alt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px}.ld-m small{color:var(--ink-3)}.ld-alt{font-size:13px;color:var(--ink-2)}
.ld-c{font:600 11px var(--f-ui);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 9px}
.ld-c.high{color:var(--good);background:var(--good-a)}.ld-c.medium{color:var(--warn);background:var(--warn-a)}.ld-c.low{color:var(--ink-2);background:var(--bg-3)}.ld-c.bad{color:var(--crit);background:var(--crit-a)}
.ld-why{font:500 12px var(--f-ui);color:var(--ink-3);background:none;border:0;cursor:pointer;text-decoration:underline dotted}
.ld-r{flex-basis:100%;margin:2px 0 0;padding-left:18px;font-size:12.5px;color:var(--ink-2)}
.ld-go{margin-left:auto;font:600 12.5px var(--f-ui);color:var(--accent-ink);background:var(--accent);border:0;border-radius:999px;padding:6px 14px;cursor:pointer}.ld-go:disabled{opacity:.6;cursor:default}
.ld-rec{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--ink-2);padding:6px 0;border-bottom:1px solid var(--line)}.ld-rec i{color:var(--ink-3)}.ld-rec button{font:500 12px var(--f-ui);background:none;border:1px solid var(--line-2);color:var(--ink-2);border-radius:999px;padding:3px 10px;cursor:pointer}
.or-off.light{padding:40px 0}

/* ---------- War Room: Owners' brief (brief.js) ---------- */
.wr-full{grid-column:1/-1}
.br-head{margin:0 0 12px;font-size:15.5px;line-height:1.45;color:#fff}
.br-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.br-c{display:flex;flex-direction:column;gap:6px;background:rgba(255,255,255,.03);border:1px solid rgba(120,150,255,.14);border-radius:10px;padding:12px 14px}
.br-c header{display:flex;align-items:baseline;gap:8px}.br-c header b{font-family:"Black Ops One",var(--f-disp);font-weight:400;letter-spacing:.08em;font-size:17px}.br-c header span{color:#9aa3c7;font-size:12.5px}
.br-v{margin-left:auto;font-style:normal;font-family:"Saira Stencil One",var(--f-disp);font-size:12px;letter-spacing:.16em;padding:2px 10px;border-radius:999px;border:1px solid currentColor}
.br-v.ok{color:#63c393}.br-v.none{color:#8a8fb0}.br-v.warn{color:#e2aa52}.br-v.bad{color:#f0766b}
.br-c small{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8a8fb0;margin-top:4px}
.br-c ul{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.4;color:#dde1f5}
.br-a li::marker{color:#f0766b}.br-o li::marker{color:#63c393}.br-b li{color:#aeb2cc}
.br-p{list-style:none;padding-left:0!important}.br-p li{display:flex;flex-direction:column}.br-p li b{font-weight:600}.br-p li em{font-style:normal;font-size:11.5px;color:#9aa3c7}
.br-p li.up b::before{content:"▲ ";color:#63c393;font-size:10px}.br-p li.down b::before{content:"▼ ";color:#f0766b;font-size:10px}
@media (max-width:1000px){.br-cols{grid-template-columns:1fr}}

/* ---------- MyConnects desks, calmer (Oct 6): 4 numbers, 8 actions, the model's workings folded into "How this page learns" ---------- */
.mycalm-links{display:flex;gap:8px;margin:-4px 0 10px}.mycalm-links a{font:500 12.5px var(--f-ui);color:var(--accent);background:var(--accent-a);border-radius:999px;padding:5px 12px;cursor:pointer}
.mymore{margin:6px 0 10px}.mymore>summary,.mysec-d>summary{cursor:pointer;font:500 12.5px var(--f-ui);color:var(--ink-3);list-style:none;padding:6px 0}
.mymore>summary::before,.mysec-d>summary::before{content:"+ ";color:var(--accent)}.mymore[open]>summary::before,.mysec-d[open]>summary::before{content:"− "}
.mysec-d{border-top:1px solid var(--line);margin-top:10px;padding-top:4px}.mysec-d>summary{font-size:14px;color:var(--ink-2);font-weight:600}
.mymorebtn{margin-top:8px;font:500 12.5px var(--f-ui);color:var(--accent);background:none;border:1px solid var(--line-2);border-radius:999px;padding:6px 14px;cursor:pointer}
.myhowg{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:10px 0}
.myhow .myloop{margin:10px 0}

/* ---------- Morning Dispatch (public/dispatch-ui.js): the once-a-day card on top of Home and MyConnects ---------- */
.dp{--dp-gold:var(--celebrate);--dp-gold-ink:var(--gold);position:relative;margin:0 0 22px;padding:22px 26px 16px;border:1px solid var(--line-2);border-radius:14px;overflow:hidden;
  background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--gold) 7%,transparent),transparent 46%),linear-gradient(180deg,var(--bg-3),var(--bg-2));box-shadow:0 18px 40px -28px rgba(0,0,0,.7);animation:dp-in 360ms var(--ease) both}
.dp::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--dp-gold),color-mix(in srgb,var(--gold) 25%,transparent) 60%,transparent)}
:root[data-theme="light"] .dp{--dp-gold-ink:var(--gold);background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--gold) 14%,transparent),transparent 46%),var(--bg-2);box-shadow:0 14px 34px -26px rgba(1,1,96,.35)}
@keyframes dp-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.dp{animation:none}}
.dp-top{display:flex;align-items:center;gap:12px;min-height:28px}.dp-date{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dp-tag{font:400 13px "Black Ops One",var(--f-disp);letter-spacing:.26em;color:var(--dp-gold);padding:3px 9px 2px;border:1px solid color-mix(in srgb,var(--gold) 45%,transparent);border-radius:4px;line-height:1.2}
:root[data-theme="light"] .dp-tag{color:#010160;background:var(--dp-gold);border-color:var(--dp-gold)}
.dp-date{font:600 12px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.dp-streak{font-size:11.5px;color:var(--ink-3);padding-left:12px;border-left:1px solid var(--line-2)}
.dp-top .grow{flex:1}
.dp-x{height:28px;padding:0 12px;border:1px solid var(--line-2);border-radius:999px;background:none;color:var(--ink-2);font-size:12px}
.dp-x:hover{border-color:var(--ink-3);color:var(--ink)}
.dp-hi{display:block;margin:14px 0 6px;font:600 32px/1.1 var(--f-disp);letter-spacing:.01em;text-transform:none;color:var(--ink);outline:none}.dp-hi::before,.dp-hi::after{content:none!important;display:none!important}
.dp-head{margin:0;max-width:880px;font-size:15.5px;line-height:1.5;color:var(--ink-2)}
.dp-dim,.dp-wait{color:var(--ink-3)}.dp-wait{margin:14px 0 6px}
.dp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.dp-c{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg-inset)}
.dp-c i{width:7px;height:7px;border-radius:50%;background:var(--ink-3)}.dp-c b{font:600 11px var(--f-disp);letter-spacing:.12em}
.dp-c.bad i{background:var(--crit)}.dp-c.bad b{color:var(--crit)}.dp-c.warn i{background:var(--warn)}.dp-c.warn b{color:var(--warn)}.dp-c.ok i{background:var(--good)}.dp-c.ok b{color:var(--good)}
.dp-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:28px;margin-top:20px}
.dp-side{padding-left:26px;border-left:1px solid var(--line)}
.dp-h4{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.dp-h4 span{font:600 12px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--dp-gold-ink)}
:root:not([data-theme="light"]) .dp-h4 span{color:var(--dp-gold)}
.dp-h4 small{font-size:11.5px;color:var(--ink-3)}
.dp-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.dp-list>li,.dp-slept>li{min-width:0}
.dp-it{display:flex;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg-inset);transition:border-color var(--t) var(--ease)}
.dp-it:hover{border-color:var(--line-2)}
.dp-n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:600 14px var(--f-disp);color:#010160;background:var(--dp-gold)}
.dp-b{min-width:0;flex:1}.dp-b>b{display:block;font-size:14.5px;line-height:1.35;color:var(--ink)}
.dp-why{display:block;margin-top:3px;font-size:12.5px;line-height:1.45;color:var(--ink-3)}
.dp-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.dp-go{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border:1px solid var(--accent);border-radius:999px;background:var(--accent-a);color:var(--accent);font-size:12.5px;font-weight:500;text-decoration:none}
.dp-go:hover{background:var(--accent);color:var(--accent-ink);text-decoration:none}.dp-go.sm{height:26px;font-size:12px}
.dp-ghost{height:28px;padding:0 12px;border:1px solid var(--line-2);border-radius:999px;background:none;color:var(--ink-2);font-size:12.5px}.dp-ghost:hover{border-color:var(--ink-3);color:var(--ink)}
.dp-fb{display:inline-flex;gap:4px;margin-left:auto}
.dp-v{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid var(--line);border-radius:999px;background:none;color:var(--ink-3);font-size:11.5px;line-height:1}
.dp-v span{font-size:11px}.dp-v:hover{border-color:var(--line-3);color:var(--ink)}
.dp-v.on{border-color:var(--good);background:var(--good-a);color:var(--good)}.dp-v.no.on{border-color:var(--crit);background:var(--crit-a);color:var(--crit)}
.dp-slept{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.dp-s{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.dp-s:last-child{border-bottom:0}
.dp-sl{display:flex;align-items:baseline;gap:12px;flex:1;min-width:0;padding:2px 0;border:0;background:none;text-align:left;color:var(--ink)}
.dp-sl b{flex:none;min-width:30px;text-align:right;font:600 22px/1 var(--f-num);color:var(--ink)}
.dp-sl span{min-width:0;font-size:13.5px;color:var(--ink)}.dp-sl em{display:block;font-style:normal;font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dp-sl:hover span{color:var(--accent)}
.dp-s .dp-fb .dp-v span{display:none}
.dp-ship{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.dp-ship ul{margin:0;padding:0 0 0 16px;columns:1;font-size:12.5px;line-height:1.55;color:var(--ink-2)}.dp-ship li::marker{color:var(--dp-gold)}
.dp-more{margin-top:4px}.dp-more>summary{cursor:pointer;font-size:12px;color:var(--accent);list-style:none;padding:2px 0}.dp-more>summary::-webkit-details-marker{display:none}.dp-more>summary::before{content:"+ "}.dp-more[open]>summary::before{content:"− "}
.dp-q{margin-top:18px;padding:14px 16px;border:1px dashed color-mix(in srgb,var(--gold) 40%,transparent);border-radius:10px;background:color-mix(in srgb,var(--gold) 4%,transparent)}
.dp-q p{margin:0 0 4px;font-size:13.5px;color:var(--ink-2)}.dp-q p b{color:var(--ink)}
.dp-calm{margin:4px 0;padding:10px 0;font-size:13px;color:var(--ink-3);list-style:none}
.dp-note{margin:8px 0 0;font-size:11.5px;color:var(--ink-3)}
.dp-foot{margin:16px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-3)}
.dp-skel{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg-inset)}
.dp-skel i{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--track),var(--line-2),var(--track));background-size:200% 100%;animation:dp-sh 1.4s linear infinite}.dp-skel i:last-child{width:62%}
@keyframes dp-sh{to{background-position:-200% 0}}
.dpbtn{border-color:color-mix(in srgb,var(--gold) 45%,transparent)}.dpbtn:hover{border-color:var(--gold)}
/* K4 (Kyle 10/19): the dispatch must look unlike the page under it — a warm black "briefing" panel in a gold frame with a gold spine,
   not another navy card. Light theme: cream paper in the same frame. */
.dp{background:radial-gradient(140% 120% at 100% 0%,color-mix(in srgb,var(--gold) 13%,transparent),transparent 52%),linear-gradient(180deg,#17171a 0%,#0c0c0f 100%);border-color:color-mix(in srgb,var(--gold) 42%,transparent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 6%,transparent),0 26px 54px -30px rgba(0,0,0,.95);padding-left:32px}
.dp::before{inset:0 auto 0 0;width:6px;height:auto;background:linear-gradient(180deg,var(--dp-gold),color-mix(in srgb,var(--gold) 55%,transparent) 55%,color-mix(in srgb,var(--gold) 20%,transparent))}
.dp::after{content:"";position:absolute;inset:0 0 auto 6px;height:1px;background:linear-gradient(90deg,color-mix(in srgb,var(--gold) 50%,transparent),transparent 70%);pointer-events:none}
.dp .dp-it{background:rgba(255,255,255,.035);border-color:color-mix(in srgb,var(--gold) 16%,transparent)}.dp .dp-it:hover{border-color:color-mix(in srgb,var(--gold) 38%,transparent)}
.dp .dp-side{border-left-color:color-mix(in srgb,var(--gold) 18%,transparent)}.dp .dp-ship,.dp .dp-foot{border-top-color:color-mix(in srgb,var(--gold) 14%,transparent)}
.dp .dp-c{background:rgba(255,255,255,.04);border-color:color-mix(in srgb,var(--gold) 16%,transparent)}
.dp .dp-skel{background:rgba(255,255,255,.03);border-color:color-mix(in srgb,var(--gold) 12%,transparent)}
:root[data-theme="light"] .dp{background:radial-gradient(140% 120% at 100% 0%,color-mix(in srgb,var(--gold) 22%,transparent),transparent 52%),linear-gradient(180deg,var(--gold-bg),var(--gold-bg));border-color:color-mix(in srgb,var(--gold) 50%,transparent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 12%,transparent),0 14px 34px -26px rgba(1,1,96,.35)}
:root[data-theme="light"] .dp .dp-it,:root[data-theme="light"] .dp .dp-c{background:rgba(255,255,255,.75);border-color:color-mix(in srgb,var(--gold) 25%,transparent)}
@media (max-width:560px){.dp{padding-left:22px}}
@media (max-width:860px){.dp-grid{grid-template-columns:minmax(0,1fr);gap:20px}.dp-side{padding-left:0;border-left:0;padding-top:16px;border-top:1px solid var(--line)}}
@media (max-width:560px){.dp{padding:18px 16px 12px;border-radius:12px;margin-bottom:16px}.dp-hi{font-size:27px}.dp-tag{font-size:12px;letter-spacing:.2em}.dp-date{font-size:11px;letter-spacing:.1em}.dp-head{font-size:14.5px}.dp-it{padding:11px 12px;gap:11px}.dp-fb{margin-left:0}.dp-v span{display:none}.dp-streak{display:none}}

/* OpenStreetMap tiles on dark screens: the standard (light) tiles, inverted and calmed to sit on navy */
.osm-dark{filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(.9) saturate(.45)}
/* Oct 6 Project fields: PIN, building status, role notes (job page Overview, Meeting minutes) */
.jn-r>span:first-child{display:flex;align-items:center;gap:6px}.jn-v{white-space:pre-line;text-align:right}.jn-ed{padding:0 6px;font-size:11px}
.mm-r.mm-prer>b{white-space:pre-line}.mm-ed{background:none;border:0;padding:0 0 0 6px;color:var(--accent,inherit);font-size:11px;cursor:pointer;text-decoration:underline}
@media print{.mm-ed,.jn-ed{display:none!important}}
/* Plan the day: yesterday · today · tomorrow strip above the board, and the duplicate-day stop */
.sk-near{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}
.sk-near section{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-2);padding:10px 12px;min-width:0}.sk-near section.today{border-color:var(--accent)}
.sk-near h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px}.sk-near h4 small{color:var(--ink-3);font-weight:400}.sk-near h4 .linkbtn{margin-left:auto}
.sk-trips{border-top:1px dashed var(--line);margin-top:6px;padding-top:6px;font-size:12px}.sk-trips>b{display:block;font-weight:500;color:var(--ink-3);margin:0 0 4px}
.sk-hard{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
@media (max-width:700px){.sk-near{grid-template-columns:1fr}}

/* ── Grouped navigation (Kyle 10/6: fewer tabs, drop-downs, nothing removed) ── */
#tabs .ingrp{display:none!important}
#tabs .tgrp i{font-style:normal;font-size:9px;margin-left:6px;opacity:.6;display:inline-block;transition:transform 160ms var(--ease)}
#tabs .tgrp[aria-expanded="true"]{color:var(--ink)}
#tabs .tgrp[aria-expanded="true"] i{transform:rotate(180deg);opacity:1}
#tabs .tfind{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2)}
#tabs .tfind svg{width:13px;height:13px}
#tabs .tfind::before{content:"";position:absolute;right:-1px;top:12px;bottom:12px;width:1px;background:var(--line-2)}
.tmenu{position:fixed;z-index:70;width:320px;max-height:min(70vh,560px);overflow:auto;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r);padding:6px;
  box-shadow:0 18px 40px rgba(0,0,0,.35);animation:tmenuIn 140ms var(--ease)}
@keyframes tmenuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.tmenu h6{margin:0;padding:8px 10px 6px;font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.tmenu button{display:block;width:100%;text-align:left;padding:8px 10px;background:none;border:0;border-left:2px solid transparent;color:var(--ink);font:inherit;cursor:pointer;border-radius:var(--r)}
.tmenu button b{display:block;font-weight:500;font-size:13.5px}
.tmenu button small{display:block;margin-top:2px;color:var(--ink-3);font-size:11.5px;line-height:1.35}
.tmenu button:hover,.tmenu button:focus-visible{background:var(--hover);outline:none}
.tmenu button.on{border-left-color:var(--accent);background:var(--hover)}
@media (max-width:640px){.tmenu{width:calc(100vw - 16px);left:8px!important}}

/* ── Resources page + the short footer ── */
.res-sec{margin:0 0 22px}
.res-h{display:flex;align-items:center;gap:9px;margin:0 0 10px;border-bottom:1px solid var(--line);padding-bottom:7px;color:var(--ink-2)}
.res-h svg{width:15px;height:15px}
.res-h h3{margin:0;font:600 11px/1.2 var(--f-disp,inherit);letter-spacing:.18em;text-transform:uppercase}
.res-h .count{color:var(--ink-3);font-size:11px}
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.res-l{display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none;
  transition:border-color var(--t) var(--ease),transform var(--t) var(--ease)}
.res-l:hover{border-color:var(--line-2);transform:translateY(-1px)}
.res-l b{font-weight:500;font-size:14px}
.res-l small{color:var(--ink-3);font-size:11.5px}
.res .tbar input[type=search]{max-width:280px}
.fres h5{margin:0 0 12px;font-family:var(--f-disp);font-weight:600;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-2)}
.fres p{margin:0 0 12px;color:var(--ink-3);font-size:13px;line-height:1.55;max-width:42ch}
.fmain .fcols{grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr))}
@media (max-width:640px){.fmain .fcols{grid-template-columns:1fr}}

/* ── Meeting Desk (Kyle 10/6): the weekly cycle as numbered steps ── */
.md-head select{max-width:260px}
.md-steps{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0 18px;padding:8px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.md-steps button{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid transparent;border-radius:999px;padding:6px 12px 6px 6px;color:var(--ink-3);font:inherit;font-size:13px;cursor:pointer}
.md-steps button i{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line-2);font-style:normal;font-size:11px;font-weight:600}
.md-steps button:hover{color:var(--ink)}
.md-steps button.on{color:var(--ink);background:var(--hover);border-color:var(--line-2)}
.md-steps button.on i{background:var(--accent);border-color:var(--accent);color:#fff}
.md-steps button.ok i{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:var(--accent);color:var(--ink)}
.md-ph{font:600 10.5px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);padding:0 6px 0 12px;border-left:1px solid var(--line)}
.md-ph:first-child{border-left:0;padding-left:6px}
.md-panel,.md-card{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:18px 20px;margin:0 0 14px}
.md-panel h3,.md-card h3{margin:0 0 6px;font-size:16px;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.md-panel p{margin:0 0 14px;color:var(--ink-3);max-width:80ch;line-height:1.5}
.md-card h3 i{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-style:normal;font-size:12px}
.md-card h3 small,.md-sec h3 small{font-weight:400;font-size:12px;color:var(--ink-3)}
.md-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1.5px dashed var(--line-2);border-radius:var(--r);padding:30px 16px;cursor:pointer;text-align:center;transition:border-color var(--t),background var(--t)}
.md-drop:hover,.md-drop.over{border-color:var(--accent);background:var(--hover)}
.md-drop input{display:none}.md-drop b{font-size:15px}.md-drop span{color:var(--ink-3);font-size:12.5px}
.md-files{display:flex;flex-direction:column;gap:6px;margin:14px 0}
.md-file{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r)}
.md-fi{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--hover);font:700 10px var(--f-disp);letter-spacing:.08em;color:var(--ink-2)}
.md-fi.pages{background:color-mix(in srgb,#e5484d 18%,transparent)}.md-fi.image{background:color-mix(in srgb,var(--accent) 20%,transparent)}
.md-fn{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.md-fn a{color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-fn small{color:var(--ink-3);font-size:12px}
.md-warn{color:#e5484d;font-size:12.5px;display:block;margin:4px 0}
.md-busy{margin:10px 0;font-size:13px;color:var(--ink-2)}
.md-paste{margin:8px 0 0}.md-paste summary{cursor:pointer;color:var(--ink-2);font-size:13px}.md-paste textarea{width:100%;margin:8px 0}.md-paste select{margin-top:8px}
.md-next,.md-submit{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}.md-next .grow,.md-submit .grow{flex:1}
.md-submit{position:sticky;bottom:0;z-index:5;padding:12px 16px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2);box-shadow:0 -8px 24px rgba(0,0,0,.25);font-size:13px;color:var(--ink-2)}
.md-prog{margin-top:14px}.md-bar{height:8px;border-radius:99px;background:var(--hover);overflow:hidden;margin-bottom:6px}.md-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--data));transition:width .6s var(--ease)}
.md-sum{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.md-sum>div{flex:1;min-width:110px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.md-sum b{display:block;font:600 24px var(--f-num)}.md-sum span{font-size:12px;color:var(--ink-3)}.md-sum.sm b{font-size:18px}
.md-sec{margin:0 0 18px}.md-sec h3{font-size:15px;margin:0 0 10px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.md-sec h4{margin:14px 0 6px;font-size:13px}
.md-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.md-two textarea{width:100%}
.md-job{border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:var(--r);padding:10px 14px;margin:0 0 8px;background:var(--card);opacity:.62;transition:opacity var(--t)}
.md-job.on{opacity:1;border-left-color:var(--accent)}.md-job.c-unsure{border-left-color:#f5a623}
.md-jh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.md-jh span:not(.pill):not(.md-conf){color:var(--ink-2)}
.md-keep{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--ink-3)}
.md-conf{margin-left:auto;font-size:11.5px;color:var(--ink-3)}.c-unsure .md-conf{color:#f5a623;font-weight:600}
.md-jb{display:grid;grid-template-columns:260px 1fr;gap:14px;margin-top:8px}
.md-pcts{display:flex;flex-direction:column;gap:6px}
.md-pct{display:grid;grid-template-columns:84px 38px 14px 64px 12px;align-items:center;gap:4px;font-size:13px}.md-pct span{color:var(--ink-3)}.md-pct em{font-style:normal;color:var(--ink-3);text-align:right}.md-pct i{font-style:normal;color:var(--ink-3)}
.md-pct input{width:64px;text-align:right}
.md-txt{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.md-txt label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--ink-3)}.md-txt textarea{width:100%;font-size:13px}
.md-ev{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.md-ev span{font-size:11.5px;color:var(--ink-3);background:var(--hover);border-radius:6px;padding:3px 8px;max-width:100%}.md-ev b{color:var(--ink-2);font-weight:600;margin-right:4px}
.md-q{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border:1px solid #f5a623;border-radius:var(--r);margin:0 0 8px;font-size:13.5px}.md-q.done{border-color:var(--line);opacity:.75}
.md-qa{display:flex;gap:6px;flex-wrap:wrap}.md-qa button{border:1px solid var(--line-2);background:none;color:var(--ink);border-radius:999px;padding:4px 12px;cursor:pointer;font:inherit;font-size:12.5px}.md-qa button.on{background:var(--accent);border-color:var(--accent);color:#fff}.md-qa input{flex:1;min-width:160px}
.md-acts input{width:100%;min-width:0}.md-acts input.w{min-width:240px}.md-acts tr.off{opacity:.45}
.md-close{display:block;font-size:13px;padding:4px 0}.md-close small{color:var(--ink-3)}
.md-person{margin:12px 0}.md-person h4{margin:0 0 6px}.md-person h4 small{font-weight:400;color:var(--ink-3)}
.md-act{display:grid;grid-template-columns:48px 1fr auto auto auto;gap:10px;align-items:center;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r);margin:0 0 4px;font-size:13px}
.md-act em{font-style:normal;color:var(--ink-3);font-size:12px}.md-act i{font-style:normal;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.md-act.pr-High{border-left:3px solid #e5484d}.md-act.done{opacity:.6;grid-template-columns:48px 1fr auto auto}
.md-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px}
.md-photos button{position:relative;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--hover);aspect-ratio:4/3}
.md-photos img{width:100%;height:100%;object-fit:cover;display:block}.md-photos span{position:absolute;left:0;right:0;bottom:0;padding:3px 6px;font-size:11px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.7));text-align:left}
.md-photos button.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.md-cov{display:flex;gap:14px;align-items:center;margin:8px 0}.md-cov img{width:200px;height:130px;object-fit:cover;border-radius:8px}.md-cov div{display:flex;flex-direction:column;gap:4px;flex:1}.md-cov input{width:100%}
.md-quote{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);margin:0 0 6px;cursor:pointer;font-size:14px}.md-quote.on{border-color:var(--accent);background:var(--hover)}
.md-own{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}.md-own input{min-width:140px}.md-own input.w,.md-own .w{flex:1;min-width:240px}
.md-tog{margin-left:auto;font-size:12.5px;font-weight:400;display:inline-flex;gap:6px;align-items:center}
.md-line{display:block;width:100%;margin:0 0 6px}
.md-cj{display:grid;grid-template-columns:64px 1fr auto;gap:10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}.md-cj em{font-style:normal;color:var(--ink-3);font-size:12px}
.md-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.md-email{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 16px;background:var(--card);font-size:13px}.md-email div{margin-top:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:900px){.md-jb{grid-template-columns:1fr}.md-txt{grid-template-columns:1fr}.md-two{grid-template-columns:1fr}.md-act{grid-template-columns:44px 1fr;}.md-act em,.md-act i{grid-column:2}}

/* ── The printed packet: paper pages on screen, real pages in print (styled after the 09/25 and 10/02 minutes) ── */
.pk{--pk-navy:#0b1650;--pk-ink:#1b2233;--pk-mute:#5b6478;--pk-line:#d7dce6;display:flex;flex-direction:column;align-items:center;gap:22px;padding:6px 0 40px;color:var(--pk-ink);font-family:Lato,"Segoe UI",system-ui,sans-serif}
.pk-page{position:relative;width:min(100%,8.5in);min-height:11in;background:#fff;color:var(--pk-ink);padding:.5in .55in .7in;box-shadow:0 10px 40px rgba(0,0,0,.35);border-radius:3px;font-size:12.5px;line-height:1.45}
.pk-page h2,.pk-page h3,.pk-page h4{color:var(--pk-navy)}
.pk-run{display:flex;justify-content:space-between;gap:12px;font-size:9.5px;color:var(--pk-mute);border-bottom:1px solid var(--pk-line);padding-bottom:6px;margin-bottom:14px}.pk-run b{color:var(--pk-navy);letter-spacing:.04em}
.pk-foot{position:absolute;left:.55in;right:.55in;bottom:.35in;display:flex;justify-content:space-between;font-size:9px;color:var(--pk-mute)}.pk-foot b{color:var(--pk-navy);font-size:12px}
.pk-cover{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:.9in .5in .6in;color:#fff;background:#0b1650 center/cover no-repeat;text-align:center}
.pk-logo{width:3.2in;margin-top:.6in;filter:drop-shadow(0 4px 14px rgba(0,0,0,.4))}
.pk-cover h1{margin:.25in 0 .12in;font:900 64px/1 Lato,"Segoe UI",sans-serif;letter-spacing:.02em;color:#fff;text-shadow:0 4px 18px rgba(0,0,0,.45)}
.pk-wk{background:rgba(255,255,255,.95);color:#0b1650;font-weight:800;letter-spacing:.14em;padding:10px 22px;font-size:15px}
.pk-cbot{margin-top:auto;display:flex;flex-direction:column;gap:6px}.pk-cbot b{font-size:17px;letter-spacing:.32em;font-weight:400}.pk-cbot span{font-size:13px;opacity:.9}.pk-cbot small{font-size:10px;opacity:.75;margin-top:14px}
.pk-h1{font:800 24px/1.2 Lato,"Segoe UI",sans-serif;margin:0 0 10px}
.pk-sub{color:var(--pk-mute);margin:-4px 0 12px}
.pk-sec{margin:14px 0}.pk-sec h2{font-size:15px;font-weight:800;margin:0 0 6px;padding-left:9px;border-left:4px solid var(--pk-navy)}
.pk-sec ul,.pk-sec ol{margin:0;padding-left:20px}.pk-sec li{margin:3px 0}
.pk-none{color:var(--pk-mute);font-style:italic;margin:0}
.pk-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;margin:8px 0 12px}
.pk-tiles>div{background:#0b1650;color:#fff;padding:9px 11px;border-radius:2px}.pk-tiles span{display:block;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.8}.pk-tiles b{display:block;font-size:22px;font-weight:800;margin-top:2px}
.pk-tiles.sm>div{background:#eef4ee;color:var(--pk-ink);border-top:3px solid #2e7d4f}.pk-tiles.sm b{font-size:17px;color:#1d5c36}
.pk-quote{margin:14px 0;padding:14px 18px;border-left:5px solid var(--gold);background:#fff9e3;font:italic 600 16px/1.4 Lato,"Segoe UI",sans-serif;color:var(--pk-navy)}.pk-quote cite{display:block;font:400 12px Lato,sans-serif;margin-top:6px;color:var(--pk-mute)}
.pk-note{padding:10px 14px;background:#f2f4f9;border-radius:2px}
.pk-t{width:100%;border-collapse:collapse;font-size:11.5px;margin:6px 0}.pk-t th{background:#0b1650;color:#fff;text-align:left;padding:5px 7px;font-weight:700}.pk-t td{padding:5px 7px;border-bottom:1px solid var(--pk-line);vertical-align:top}
.pk-t tbody th{background:#f2f4f9;color:var(--pk-navy);width:26%}
.pk-chip{display:inline-block;background:#eef1f8;border-radius:3px;padding:1px 6px;margin:0 6px 2px 0;font-size:11px}
.pk-red{color:#b3261e}
.pk-person h3{font-size:13.5px;margin:12px 0 2px}.pk-person h3 small{font-weight:400;color:var(--pk-mute)}
.pk-id{white-space:nowrap;font-weight:700;color:var(--pk-navy)}.pk-new,.pk-upd{font-style:normal;font-size:8.5px;padding:1px 4px;border-radius:2px;color:#fff;background:#2e7d4f}.pk-upd{background:#b26a00}
.pr-High{color:#b3261e;font-weight:700}.pr-Medium{color:#b26a00}.pr-Low{color:var(--pk-mute)}
.pk-closed{font-size:11px;color:#2e7d4f;margin-top:10px}
.pk-idx{columns:2;column-gap:24px}.pk-idx a{display:flex;gap:6px;align-items:baseline;break-inside:avoid;padding:3px 0;border-bottom:1px dotted var(--pk-line);color:var(--pk-ink);text-decoration:none;font-size:11.5px}.pk-idx a span{margin-left:auto;color:var(--pk-mute);font-size:10px}
.pk-jt{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0b1650;color:#fff;padding:10px 14px;margin:0 0 8px}.pk-jt h2{margin:0;color:#fff;font:800 22px Lato,sans-serif}.pk-jt h2 span{font-weight:400;font-size:17px}.pk-jt em{font-style:normal;font-size:10px;letter-spacing:.18em;font-weight:700}
.pk-line{margin:2px 0;font-size:11.5px;color:#333}
.pk-dec{background:#fdecea;border-left:4px solid #b3261e;padding:7px 10px;margin:8px 0;font-size:11.5px}
.pk-mm{font-size:14px;margin:12px 0 6px}
.pk-upd{border:1px solid var(--pk-line);margin:0 0 8px}.pk-uh{background:#0b1650;color:#fff;font-size:9px;letter-spacing:.12em;font-weight:700;padding:4px 8px}.pk-upd ul{margin:6px 0;padding-left:24px}
.pk-notes h4,.pk-oa,.pk-aar h4{font-size:12.5px;margin:10px 0 4px}.pk-notes ul{margin:0;padding-left:18px;font-size:11.5px}
.pk-write{height:44px}
.pk-box{margin-top:14px;border:1px dashed #9aa3b5;min-height:1.4in;padding:6px 8px}.pk-box span{font-size:8.5px;letter-spacing:.14em;color:var(--pk-mute)}
.pk-band{display:flex;align-items:center;gap:20px;background:#0b1650;color:#fff;padding:16px 20px;margin:-.1in 0 16px}.pk-band img{height:44px}.pk-band h1{margin:0;font:800 22px Lato,sans-serif;color:#fff}.pk-band span{font-size:12px;opacity:.85}
.pk .md-chg,.pk .md-cj{color:var(--pk-ink)}.pk .md-sum>div{background:#f2f4f9;border-color:var(--pk-line)}.pk .md-cj{border-color:var(--pk-line)}.pk .sec-note,.pk .md-cj em{color:var(--pk-mute)}
@media print{
  @page{size:letter;margin:0}
  body:has(.pk) header.top,body:has(.pk) #filters,body:has(.pk) .md-head,body:has(.pk) .md-steps,body:has(.pk) .md-tools,body:has(.pk) .md-email,body:has(.pk) #appFooter,body:has(.pk) .an-root{display:none!important}
  body:has(.pk),body:has(.pk) main{background:#fff!important;padding:0!important;margin:0!important}
  .pk{gap:0;padding:0}.pk-page{box-shadow:none;border-radius:0;width:8.5in;min-height:11in;break-after:page;page-break-after:always}
  .pk-cover{-webkit-print-color-adjust:exact;print-color-adjust:exact}.pk *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* packet: the app's display headings (uppercase, tracked, accent bar) stay out of the paper pages */
.pk-page h2,.pk-page h3,.pk-page h4,.pk-page p,.pk-page li,.pk-page td{text-transform:none;letter-spacing:normal}
.pk-page h2::before,.pk-page h2::after,.pk-page h3::before{display:none!important}
.pk-page h2{display:block;font-family:Lato,"Segoe UI",system-ui,sans-serif}
.pk-sec h2{margin:0 0 6px!important;padding:0 0 0 9px!important;border-left:4px solid var(--pk-navy)}
.pk-h1{margin:0 0 10px!important}
.pk-jt h2{margin:0!important}
.pk-flow{min-height:11in;padding-bottom:.9in}
@media print{.pk-flow{min-height:auto}.pk-flow .pk-foot{position:static;margin-top:20px}.pk-person{break-inside:avoid}}

/* ── Transport Desk (Kyle 10/6): cranes, semis, flatbeds, deliveries ── */
.tr .md-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 16px}.tr .md-head .grow,.tr-gap .grow{flex:1}
.tr-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tr-grid label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--ink-3)}
.tr-grid label.wide{grid-column:1/-1}.tr-grid textarea,.tr-grid input,.tr-grid select{width:100%}
@media (max-width:720px){.tr-grid{grid-template-columns:1fr 1fr}}
.tr-gap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;margin:0 0 6px;border:1px solid color-mix(in srgb,var(--crit) 40%,var(--line));border-left:3px solid var(--crit);border-radius:var(--r);background:var(--card);font-size:13.5px}
.tr-gap span{color:var(--ink-2)}
.tr-tabs{display:inline-flex;gap:2px;margin-left:8px}.tr-tabs button{background:none;border:1px solid var(--line);border-radius:999px;padding:3px 10px;font:inherit;font-size:12px;color:var(--ink-3);cursor:pointer}
.tr-tabs button.on{color:var(--ink);border-color:var(--line-2);background:var(--hover)}
.tr-day{margin:16px 0 6px;font:600 11px var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}.tr-day small{color:var(--ink-3);margin-left:6px}
.tr-trip{display:flex;gap:12px;padding:12px 14px;margin:0 0 8px;border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:var(--r);background:var(--card)}
.tr-trip.stop{border-left-color:var(--crit)}.tr-trip.watch{border-left-color:var(--warn)}.tr-trip.done{opacity:.62}
.tr-k{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:8px;background:var(--hover);font:700 12px var(--f-disp);letter-spacing:.08em;color:var(--ink-2)}
.tr-b{flex:1;min-width:0}.tr-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px}.tr-h span:not(.pill){color:var(--ink-2)}.tr-h a{color:var(--ink)}
.tr-w{margin:4px 0;font-size:13.5px}.tr-m{font-size:12.5px;color:var(--ink-3)}.tr-m b{color:var(--ink-2);font-weight:500}
.tr-prs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tr-pr{font-size:12px;padding:3px 8px;border-radius:6px}
.tr-pr.stop{background:var(--critbg,rgba(229,72,77,.14));color:var(--crit)}.tr-pr.watch{background:var(--warnbg,rgba(245,166,35,.14));color:var(--warn)}
.tr-as{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}.tr-as select{max-width:220px}
.tr-stop{margin-top:8px;padding:8px 12px;border:1px solid var(--crit);border-radius:var(--r);font-size:13px}.tr-ov{display:flex;gap:6px;margin-top:6px}.tr-ov input{flex:1}
.tr-notes summary{cursor:pointer;font-size:12px;color:var(--ink-3);margin-top:6px}.tr-notes pre{white-space:pre-wrap;font:inherit;font-size:12.5px;margin:6px 0 0;color:var(--ink-2)}
.tr-cmp{font-size:13px;padding:6px 0;border-bottom:1px solid var(--line)}.tr-cmp.over{color:var(--crit)}
@media (max-width:860px){.tr .md-two{grid-template-columns:1fr}}

/* ── Claims Desk (Kyle 10/6) ── */
.cl-ov{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:10px 0;background:var(--hover)}
.cl-ovh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cl-ovh .grow{flex:1}.cl-ov p{margin:8px 0;line-height:1.5}.cl-ov h4{margin:8px 0 4px;font-size:12px}
.cl-li{font-size:13px;margin:3px 0;color:var(--ink-2)}
.cl-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:10px 0}.cl-facts div{display:flex;flex-direction:column;font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r)}.cl-facts span{font-size:11px;color:var(--ink-3)}
.cl-up{border-left:2px solid var(--line-2);padding:6px 0 8px 12px;margin:0 0 8px;font-size:13.5px}.cl-up.undone{opacity:.55}
.cl-uh{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cl-uh .grow{flex:1}
.cl-money{margin:6px 0;font-size:13px;padding:6px 10px;border-radius:var(--r);background:var(--hover)}.cl-money.prop{border:1px solid var(--warn)}
.cl-port p{margin:6px 0 8px;line-height:1.5}.cl-rev select{max-width:280px}

/* ── My Day (Kyle 10/6): the working day at the top of MyConnects ── */
.dy{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:16px 18px;margin:0 0 22px}
.dy-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dy-h h2{margin:0}
.dy-launch{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;margin:12px 0}
.dy-launch button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--hover);border:1px solid var(--line);border-radius:var(--r);padding:9px 12px;color:var(--ink);font:inherit;cursor:pointer}
.dy-launch button:hover{border-color:var(--line-2)}.dy-launch b{font-size:13.5px;font-weight:600}.dy-launch span{font-size:11.5px;color:var(--ink-3)}
.dy-main h3{margin:6px 0 4px;font-size:15px}.dy-main h4,.dy-q h4{margin:14px 0 6px;font-size:13px}
.dy-it{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);margin:0 0 6px;font-size:13.5px}
.dy-it.pick{cursor:pointer}.dy-it.pick.on{border-color:var(--accent)}.dy-it.done .dy-b a{text-decoration:line-through;color:var(--ink-3)}.dy-it.dropped{opacity:.45}
.dy-it input[type=checkbox]{width:18px;height:18px;flex:none}.dy-b{flex:1;min-width:0}.dy-b a{color:var(--ink)}
.dy-src{font:600 10px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.dy-prog{margin:6px 0 10px;font-size:13px}.dy-main textarea{width:100%;margin-top:8px}
.dy-recap pre{white-space:pre-wrap;font:inherit;font-size:13px;background:var(--hover);padding:10px 12px;border-radius:var(--r)}
.dy-q{margin-top:14px;border-top:1px solid var(--line);padding-top:6px}.dy-qi{padding:8px 0;border-bottom:1px solid var(--line)}
.dy-team{margin-top:12px}.dy-team summary{cursor:pointer;font-size:13px;color:var(--ink-2)}
.dy-crews{margin:10px 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r)}.dy-crews h3{margin:0 0 8px;font-size:15px}
.dy-cg{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.dy-cc{border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:var(--r);padding:8px 10px;font-size:13px;display:flex;flex-direction:column;gap:3px}
.dy-cc.none{border-left-color:var(--warn)}.dy-cc.submitted{border-left-color:var(--accent)}.dy-cc.reviewed{border-left-color:var(--good)}
.dy-cch{display:flex;justify-content:space-between;align-items:center;gap:6px}
.dy-nudge{margin-top:8px;font-size:13px;color:var(--ink-2)}
/* Marketing Hub overview + warranty capture (Kyle 10/6) */
.mh-cov{display:grid;grid-template-columns:260px 1fr;gap:18px;margin:0 0 18px}
.mh-big{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px}.mh-big .v{font-size:44px;font-weight:700;line-height:1}.mh-big .l{margin:6px 0}.mh-big small{color:var(--ink-3)}
.mh-segs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.mh-seg{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px}.mh-seg small{display:block;color:var(--ink-3);font-size:12px}
.mh-sh{display:flex;justify-content:space-between;margin-bottom:6px}.mh-bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin:4px 0}.mh-bar i{display:block;height:100%;background:var(--accent)}
.mh-seg details{margin-top:6px;font-size:12.5px}.mh-seg ul{margin:4px 0 0;padding-left:16px}
.mh-row{display:grid;grid-template-columns:1fr 1.4fr;gap:18px}.mh-wcs{padding:8px 0;border-top:1px solid var(--line)}.mh-wcs small{display:block;color:var(--ink-3)}
.wc-sum{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 8px}.wc-sum b{font-size:20px;margin-right:4px}
.wc-f{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0}.wc-f input{min-width:260px}
.wc-t td{vertical-align:top}.wc-sc{width:56px}.wc-score{display:inline-block;min-width:36px;text-align:center;padding:4px 0;border-radius:6px;background:var(--line);font-weight:700}
.wc-score.hot{background:var(--crit, #c0392b);color:#fff}.wc-score.warm{background:var(--warn, #e6a23c);color:#fff}
.wc-why{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.wc-why span{font-size:11.5px;padding:1px 6px;border:1px solid var(--line-2);border-radius:10px;color:var(--ink-2)}
.wc-p{font-size:12.5px;margin-top:3px}.wc-p small{display:block;color:var(--ink-3)}.wc-t select{max-width:200px;margin-bottom:6px;display:block}
@media (max-width:760px){.mh-cov,.mh-row{grid-template-columns:1fr}.wc-f input{min-width:0;width:100%}}
@media (max-width:760px){.wc-t thead{display:none}.wc-t,.wc-t tbody,.wc-t tr,.wc-t td{display:block;width:100%}.wc-t tr{border-bottom:1px solid var(--line);padding:10px 0}.wc-t td{padding:3px 0;border:0}.wc-sc{width:auto}.wc-f select,.wc-f label{width:100%}}
a.go{color:inherit;text-decoration:underline dotted;text-underline-offset:3px}a.go:hover{color:var(--accent);text-decoration-style:solid}
.rc-kinds select.rc-more{height:30px;border:1px solid var(--line-2);border-radius:4px;background:transparent;color:var(--ink-2);font:inherit;font-size:12.5px;padding:0 8px}.rc-kinds select.rc-more.on{border-color:var(--ink);color:var(--ink)}
/* Manufacturer & Distributor War Room (Kyle 10/6) */
.wr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.wr-card{text-align:left;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:14px;color:inherit;font:inherit;cursor:pointer}.wr-card.d{border-left-color:var(--ink-3)}.wr-card:hover{border-color:var(--accent)}
.wr-ch{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.wr-nums{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--ink-2)}.wr-nums .warn b{color:var(--warn,#e6a23c)}
.wr-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin:14px 0}
.wr-list{list-style:none;margin:4px 0 10px;padding:0}.wr-list li{padding:5px 0;border-top:1px solid var(--line)}.wr-list li small{display:block;color:var(--ink-3);font-size:12px}
.wr-intel{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:12px 14px;margin:10px 0}.wr-intel.settled{border-left-color:var(--ok,#3a9);opacity:.85}.wr-intel.gap{border-left-color:var(--crit,#c0392b)}.wr-intel.watch{border-left-color:var(--ink-3)}
.wr-ih{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.wr-ih select{margin-left:auto}
.wr-flag{margin:8px 0;padding:8px 10px;border:1px dashed var(--warn,#e6a23c);border-radius:6px;font-weight:600}.wr-flag small{display:block;font-weight:400;color:var(--ink-3);font-size:11.5px;margin-bottom:2px}
.wr-done{display:flex;gap:8px;align-items:center;margin-top:6px;font-size:13px}.wr-done input{flex:1;min-width:0}
.wr-ex{white-space:pre-wrap;font-size:12px;color:var(--ink-2);background:transparent;border:0;padding:0;margin:6px 0}
.wr-lead{padding:6px 0;border-top:1px solid var(--line)}
@media (max-width:760px){.wr-cols{grid-template-columns:1fr}.wr-ih select{margin-left:0}}
.fx-amb{padding:8px 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.fx-amb b{margin-right:8px}
/* PL-1 bid calendar */
.bcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:12px 0 18px}
.bcal-h{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;padding:4px 8px}
.bcal-d{min-height:150px;border:1px solid var(--line);border-radius:8px;padding:6px;background:var(--card);overflow:hidden;display:flex;flex-direction:column;gap:5px;transition:box-shadow .15s,border-color .15s}
.bcal-d.has{border-color:var(--line-3, var(--line))}
.bcal-d:hover{box-shadow:0 2px 10px rgba(0,0,0,.08)}
.bcal-d.wkend{background:color-mix(in srgb,var(--card) 88%,var(--line))}
.bcal-d.off{background:transparent;border-color:transparent;box-shadow:none}
.bcal-d.today{border-color:var(--accent,#1d4fc4);box-shadow:0 0 0 2px var(--accent,#1d4fc4) inset}
.bcal-dh{display:flex;align-items:center;justify-content:space-between}
.bcal-d .n{font-size:13px;font-weight:700;color:var(--muted)}
.bcal-d.today .n{color:var(--accent,#1d4fc4)}.bcal-d.late .n{color:var(--crit,#a8261d)}
.bcal-c{font-size:10.5px;font-weight:700;min-width:18px;text-align:center;padding:1px 6px;border-radius:10px;background:var(--accent-a,#e6edff);color:var(--accent,#1d4fc4)}
.bcal-b{display:flex;flex-direction:column;gap:1px;padding:6px 8px;border-radius:6px;text-decoration:none;color:var(--ink,inherit);background:var(--warn-a,#fff4e0);border-left:3px solid var(--warn,#c77700);transition:transform .12s,box-shadow .12s}
.bcal-b.bidding{background:var(--accent-a,#e6edff);border-left-color:var(--accent,#1d4fc4)}
.bcal-b:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.15)}
.bcal-d.late .bcal-b{border-left-color:var(--crit,#a8261d)}
.bcal-t{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:10.5px;color:var(--muted);min-height:14px}
.bcal-t b{font-weight:700;color:var(--ink-2,inherit)}
.bcal-b .est{font-size:10px;font-weight:700;padding:1px 5px;border-radius:9px;background:var(--card);color:var(--ink-2,inherit);margin-left:auto}
.bcal-nm{font-size:12.5px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bcal-sub{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bcal-tip{position:fixed;z-index:80;width:280px;max-width:calc(100vw - 16px);background:var(--card,#fff);color:var(--ink,inherit);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.22);padding:10px 12px;font-size:12.5px;pointer-events:none}
.bcal-tip .bt-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.bcal-tip .bt-n{font-weight:700;font-size:14px;line-height:1.25;margin-bottom:4px}
.bcal-tip .bt-due{font-weight:600;margin-bottom:6px}.bcal-tip .bt-due.late{color:var(--crit,#a8261d)}.bcal-tip .bt-due.soon{color:var(--warn,#c77700)}
.bcal-tip .bt-g div{display:flex;gap:8px;padding:2px 0;border-top:1px solid var(--line)}
.bcal-tip .bt-g span{color:var(--muted);min-width:72px}.bcal-tip .bt-g b{font-weight:500}
@media (max-width:700px){.bcal{gap:2px}.bcal-d{min-height:70px;padding:2px;border-radius:4px}.bcal-b{padding:3px 4px}.bcal-nm{font-size:10.5px;-webkit-line-clamp:1}.bcal-sub,.bcal-t{display:none}.bcal-tip{display:none}}
/* role guide on My day */
.dy-guide{margin:10px 0;border:1px solid var(--line);border-radius:4px;padding:8px 12px;background:var(--card)}
.dy-guide summary{cursor:pointer;font-weight:600}.dy-guide ol,.dy-guide ul{margin:8px 0 4px 18px;padding:0}.dy-guide li{margin:4px 0;line-height:1.4}.dy-guide h4{margin:10px 0 4px}
/* drag to reschedule (public/dragplan.js) */
.ev[draggable=true],.fc-bar[draggable=true]{cursor:grab}
.drg-on .ev,.drg-on .fc-bar{cursor:grabbing}
.drg-src{opacity:.45}
.board td.drg-over{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-a)}
.fc-track.drg-over{background:var(--accent-a)}
.drg-mark{position:absolute;top:2px;bottom:2px;border-left:2px solid var(--accent);padding-left:4px;font-size:10.5px;color:var(--ink);pointer-events:none;white-space:nowrap;z-index:5}
.ev.hl{box-shadow:inset 0 0 0 2px var(--accent)}
.dacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.drg-opt{display:block;margin:4px 0;font-size:13px}
.drg-toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:60;display:flex;gap:10px;align-items:center;background:var(--panel,#fff);color:var(--ink);border:1px solid var(--line-3);box-shadow:0 6px 24px rgba(0,0,0,.25);padding:8px 12px;max-width:calc(100vw - 32px);font-size:13px}
.drg-toast .x{background:none;border:0;color:var(--ink-3);font-size:18px;cursor:pointer}
/* quick add from the bid form (public/quickadd-ui.js) */
.pk-res .pk-new{display:block;width:100%;text-align:left;border-top:1px dashed var(--line-3);color:var(--accent);font-weight:600}
.qa-warn{font-weight:600;color:var(--warn);margin-bottom:4px}
.qa-ms{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.qa-m{border:1px solid var(--line-3);background:var(--accent-a);padding:4px 8px;cursor:pointer;color:var(--ink);text-align:left}
.qa-m small{display:block;color:var(--ink-3);font-size:10.5px}
.qa-r{font-size:12px;display:flex;gap:6px;align-items:flex-start}
/* talk to fill (public/bidtalk-ui.js) — small, bottom right */
.talk{position:fixed;right:16px;bottom:16px;z-index:70;width:340px;max-width:calc(100vw - 32px);max-height:62vh;display:flex;flex-direction:column;background:var(--panel,#fff);color:var(--ink);border:1px solid var(--line-3);box-shadow:0 8px 28px rgba(0,0,0,.28);font-size:13px}
.talk-h{display:flex;gap:8px;align-items:baseline;padding:8px 10px;border-bottom:1px solid var(--line-3)}
.talk-h .x{margin-left:auto;background:none;border:0;font-size:18px;color:var(--ink-3);cursor:pointer}
.talk-log{flex:1;overflow:auto;padding:8px 10px;display:flex;flex-direction:column;gap:6px;min-height:80px}
.talk-m{padding:6px 8px;max-width:88%;line-height:1.35}
.talk-m.u{align-self:flex-end;background:var(--accent-a)}
.talk-m.a{align-self:flex-start;background:var(--line-1,rgba(127,127,127,.12))}
.talk-m.err{color:var(--bad,#b00020)}
.talk-p{border-top:1px solid var(--line-3);padding:8px 10px;max-height:30vh;overflow:auto}
.talk-p label{display:block;margin:3px 0}
.talk-ph{font-weight:600;margin-bottom:4px}
.talk-in{border-top:1px solid var(--line-3);padding:8px 10px}
.talk-in textarea{width:100%;box-sizing:border-box;resize:vertical}
.talk-b{display:flex;gap:6px;justify-content:flex-end;margin-top:6px}
.talk-mic.on{background:var(--warn-a);border-color:var(--warn)}
.bm-in .talk-btn{float:right;margin-top:-4px}
/* the useful footer (public/footer-ui.js) */
.afoot .fin.fx{display:flex;flex-direction:column;gap:22px}
.fx-band h5{margin:0 0 10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.fx-sites{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.fx-site{position:relative;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}
.fx-site svg,.fx-tool svg{width:18px;height:18px;flex:none;color:var(--accent,#1d4fc4)}
.fx-site b{font-size:13px;font-weight:600}.fx-site i{margin-left:auto;font-style:normal;color:var(--muted);font-size:11px}
.fx-site:hover,.fx-site:focus-visible{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.14);border-color:var(--accent,#1d4fc4)}
.fx-pop{position:absolute;left:0;bottom:calc(100% + 8px);width:250px;padding:10px 12px;border-radius:10px;background:var(--ink,#111);color:var(--bg,#fff);font-size:12px;line-height:1.4;box-shadow:0 10px 26px rgba(0,0,0,.25);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .15s,transform .15s;z-index:20}
.fx-pop b{display:block;font-size:13px;margin-bottom:3px}.fx-pop em{display:block;margin-top:6px;opacity:.65;font-style:normal;font-size:11px}
.fx-site:hover .fx-pop,.fx-site:focus-visible .fx-pop{opacity:1;transform:none}
.fx-live{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.fx-tile{display:flex;flex-direction:column;gap:2px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);cursor:pointer;transition:transform .15s,box-shadow .15s}
.fx-tile:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.12)}
.fx-tile small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.fx-tile b{font-size:22px;line-height:1.1;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-tile span{font-size:12px;color:var(--ink-2,inherit)}
.fx-tile.wx.ok{border-left:4px solid var(--ok,#2e7d32)}.fx-tile.wx.warn{border-left:4px solid var(--warn,#c77700)}
.fx-tile.sold{background:linear-gradient(135deg,var(--accent-a,#e6edff),var(--card));border-left:4px solid var(--accent,#1d4fc4)}.fx-tile.sold b{font-size:16px;white-space:normal}
.fx-tile.ghost{cursor:default;color:var(--muted)}
.fx-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.fx-tool{display:grid;grid-template-columns:20px 1fr;column-gap:10px;row-gap:2px;align-items:start;text-align:left;padding:10px 12px;border:1px dashed var(--line-3,var(--line));border-radius:10px;background:transparent;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s}
.fx-tool svg{grid-row:span 2;margin-top:2px}.fx-tool b{font-size:13px}.fx-tool span{font-size:11.5px;color:var(--muted);line-height:1.35}
.fx-tool:hover,.fx-tool:focus-visible{background:var(--accent-a,#e6edff);border-style:solid;border-color:var(--accent,#1d4fc4)}
.fx-row{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-start}.fx-row .fres{max-width:460px}
.fx-out{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:12px 0}
.fx-out div{padding:8px 10px;border:1px solid var(--line);border-radius:8px}.fx-out small{display:block;color:var(--muted);font-size:11px}.fx-out b{font-size:20px}
.fx-err{color:var(--crit,#b42318);font-size:13px;padding:6px 0}.fx-out .fx-err{border:0;grid-column:1/-1}
@media (max-width:640px){.fx-sites,.fx-live,.fx-tools{grid-template-columns:1fr 1fr}.fx-pop{display:none}.fx-tile b{font-size:18px}}
/* Supply & Rebates (public/supply-ui.js) */
.sx{display:flex;flex-direction:column;gap:18px}
.sx-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:22px 24px;border-radius:14px;background:linear-gradient(120deg,#1d4fc4,#0b1f4d);color:#fff}
.sx-hero h1{margin:0;font-size:28px;letter-spacing:-.01em}.sx-hero p{margin:4px 0 0;opacity:.85}
.sx-hero .linkbtn{background:#fff;color:#0b1f4d;border-color:#fff}
.sx-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.sx-kpi{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.sx-kpi small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.sx-kpi b{font-size:24px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sx-kpi span{font-size:12px;color:var(--muted)}
.sx-kpi.ok{border-left:4px solid var(--ok,#2e7d32)}.sx-kpi.warn{border-left:4px solid var(--warn,#c77700)}
.sx-card{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.sx-card h3,.sx-ai h3,.sx-h{margin:0 0 12px;font-size:15px}.sx-card h3 small,.sx-h small{font-weight:400;color:var(--muted);font-size:12px;margin-left:6px}
.sx-two{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}
.sx-bars{display:flex;flex-direction:column;gap:8px}
.sx-bar{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:12px;align-items:center}
.sx-bl b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sx-bl small{font-size:11px;color:var(--muted)}
.sx-bt{position:relative;height:14px;border-radius:7px;background:var(--line-1,rgba(127,127,127,.12));overflow:hidden}
.sx-bt i{position:absolute;left:0;top:0;bottom:0;border-radius:7px;background:linear-gradient(90deg,var(--accent,#1d4fc4),#4f8cff)}.sx-bt i.g{background:rgba(127,127,127,.28)}
.sx-trend{width:100%;height:auto}.sx-trend rect{fill:var(--accent,#1d4fc4);opacity:.85}.sx-trend rect:hover{opacity:1}.sx-trend text{font-size:10px;fill:var(--muted)}
.sx-mx{display:grid;gap:3px;font-size:11.5px;overflow-x:auto}
.sx-mx .h{font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px}.sx-mx .r{font-weight:600;padding:6px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sx-mx .c{border-radius:6px;padding:6px 4px;text-align:center;background:rgba(29,79,196,var(--a));color:var(--ink)}
.sx-progs{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}
.sx-prog{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.sx-prog.reach{box-shadow:0 0 0 2px var(--ok,#2e7d32) inset}
.sx-prog header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.sx-prog h4{margin:2px 0 0;font-size:16px}.sx-prog header small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.sx-track{position:relative;height:22px;border-radius:11px;background:var(--line-1,rgba(127,127,127,.12));margin:14px 0 6px}
.sx-track i{position:absolute;left:0;top:0;bottom:0;border-radius:11px}.sx-track i.now{background:linear-gradient(90deg,#2e7d32,#5cb85c)}.sx-track i.proj{background:repeating-linear-gradient(45deg,rgba(46,125,50,.25) 0 6px,rgba(46,125,50,.1) 6px 12px)}
.sx-track s{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--ink);text-decoration:none}.sx-track s em{position:absolute;top:-16px;left:-14px;font-size:10px;font-style:normal;font-weight:700;white-space:nowrap}
.sx-pg{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.sx-pg .sx-kpi{padding:8px 10px}.sx-pg .sx-kpi b{font-size:16px}
.sx-what{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px}.sx-what input{flex:1;min-width:140px}
.sx-ai{padding:16px 18px;border-radius:14px;border:1px solid var(--accent,#1d4fc4);background:linear-gradient(180deg,var(--accent-a,#e6edff),var(--card))}
.sx-head{font-size:15px;font-weight:600;margin:0 0 10px}
.sx-ideas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:8px}
.sx-idea{padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line)}.sx-idea h5{margin:6px 0 4px;font-size:14px}.sx-idea p{margin:4px 0;font-size:12.5px}.sx-idea small{color:var(--muted)}
.sx-idea .v{float:right;color:var(--ok,#2e7d32)}.sx-idea.u-now{border-left:4px solid var(--crit,#a8261d)}.sx-idea.u-this-quarter{border-left:4px solid var(--warn,#c77700)}
@media (max-width:900px){.sx-two{grid-template-columns:1fr}.sx-progs{grid-template-columns:1fr}.sx-pg{grid-template-columns:1fr 1fr}.sx-bar{grid-template-columns:1fr}}
/* percent complete on the job (Kyle 10/7) */
.jpct{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 20px;align-items:center;margin:10px 0 4px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.jpct-h{grid-column:1/-1;display:flex;gap:10px;align-items:baseline}
.jpct-r{display:grid;grid-template-columns:90px 1fr 46px;gap:10px;align-items:center;font-size:13px}.jpct-r b{text-align:right}
.jpct-r input[type=range]{width:100%;accent-color:var(--accent,#1d4fc4)}.jpct-r input.unset{opacity:.45}
.jpct-bar{display:block;height:10px;border-radius:5px;background:var(--line-1,rgba(127,127,127,.15));overflow:hidden}.jpct-bar i{display:block;height:100%;background:linear-gradient(90deg,#2e7d32,#5cb85c)}
.jpct #jpctSave{grid-column:1/-1;justify-self:start}
/* sold bid → job (Kyle 10/7) */
.bsold{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;margin:12px 0;padding:12px 16px;border-radius:12px;background:linear-gradient(120deg,rgba(46,125,50,.16),var(--card));border:1px solid rgba(46,125,50,.5)}
.bs-l{display:flex;gap:12px;align-items:center}.bs-tag{font-weight:800;letter-spacing:.12em;font-size:11px;padding:4px 8px;border-radius:6px;background:#2e7d32;color:#fff}
.bs-r{display:flex;gap:6px;flex-wrap:wrap}
.bcard .bjob{display:block;width:100%;margin-top:6px;padding:5px 8px;border:1px solid rgba(46,125,50,.5);border-radius:6px;background:rgba(46,125,50,.12);color:var(--ink);font-size:11.5px;font-weight:600;text-align:left;cursor:pointer}
.bcard .bjob:hover{background:rgba(46,125,50,.25)}
.talk-tools{padding:6px 10px;border-top:1px solid var(--line-3);display:flex;flex-direction:column;gap:5px}
.tt-row{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.tt-l{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);min-width:52px}
.tt-b{font-size:11.5px;padding:3px 8px;border-radius:12px;border:1px solid var(--accent,#1d4fc4);background:var(--accent-a,#e6edff);color:var(--ink);cursor:pointer}
.tt-b.ghost{background:transparent;border-style:dashed;border-color:var(--line-3)}
.talk-m.facts{max-width:100%;font-size:12px}.talk-m.facts div{padding:3px 0;border-top:1px solid var(--line)}.talk-m.facts span{font-weight:600}.talk-m.facts q{display:block;color:var(--muted);font-style:italic}
.talk{max-height:72vh}
/* footer, take two (Kyle 10/7): a slim bar + my next / my jobs / my shortcuts */
.afoot .fin.fm{display:flex;flex-direction:column;gap:18px;padding-top:0}
.fb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 calc(-1 * var(--gut,24px));padding:10px var(--gut,24px);background:#0b1f4d;color:#fff;border-bottom:3px solid #f2b705}
.fb-mark{font-weight:800;letter-spacing:.22em;font-size:13px}
.fb-btn,.fb-ic,.fb-wx{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:8px;padding:5px 10px;font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.fb-btn:hover,.fb-ic:hover,.fb-wx:hover,.fb-app:hover{background:rgba(255,255,255,.18)}
.fb-ic{padding:5px 7px}.fb-ic svg,.fb-wx svg,.fb-app svg{width:16px;height:16px;color:#fff}
.fb-wx.warn{border-color:#f2b705}.fb-wx.ok{border-color:rgba(92,184,92,.7)}
.fb-sites{position:relative}.fb-menu{position:absolute;left:0;bottom:calc(100% + 8px);min-width:300px;padding:6px;border-radius:12px;background:var(--card,#fff);color:var(--ink);box-shadow:0 14px 34px rgba(0,0,0,.3);display:none;z-index:30}
.fb-sites:hover .fb-menu,.fb-sites:focus-within .fb-menu{display:block}
.fb-menu a{display:block;padding:8px 10px;border-radius:8px;color:var(--ink);text-decoration:none}.fb-menu a:hover{background:var(--accent-a,#e6edff)}.fb-menu b{display:block;font-size:13px}.fb-menu small{color:var(--muted);font-size:11.5px}
.fb-apps{display:inline-flex;gap:4px}.fb-app{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:8px;color:#fff;text-decoration:none;font-size:12.5px}
.fb-tools{display:inline-flex;gap:4px}
.fm-cols{display:grid;grid-template-columns:1.2fr 1.2fr 1fr;gap:22px}
.fm-cols h5{margin:0 0 8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.fm-list{display:flex;flex-direction:column;gap:4px}
.fm-it{display:flex;gap:8px;align-items:flex-start;text-align:left;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);cursor:pointer;font-size:13px}
.fm-it:hover{border-color:var(--accent,#1d4fc4)}.fm-it i{font-style:normal;color:var(--accent,#1d4fc4)}.fm-it small{display:block;color:var(--muted);font-size:11.5px}
.fm-sc-row{display:flex;flex-wrap:wrap;gap:6px}
.fm-sc{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden}
.fm-sc button{background:none;border:0;color:var(--ink);padding:5px 10px;cursor:pointer;font-size:12.5px}.fm-sc .x{padding:5px 8px 5px 2px;color:var(--muted)}
.fm-pin{border:1px dashed var(--accent,#1d4fc4);background:transparent;color:var(--accent,#1d4fc4);border-radius:16px;padding:5px 10px;font-size:12.5px;cursor:pointer}
.fm-more{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}
.fm-bucks{border:0;border-radius:16px;padding:5px 12px;background:linear-gradient(90deg,#f2b705,#ffd95a);color:#0b1f4d;font-weight:700;cursor:pointer;font-size:12.5px}
@media (max-width:820px){.fm-cols{grid-template-columns:1fr}.fb-app span{display:none}.fb-menu{left:auto;right:0}}
/* everything connected on the job (Kyle 10/7) */
.jconn{display:flex;flex-wrap:wrap;gap:8px 18px;margin:10px 0 4px;padding:10px 14px;border:1px dashed var(--line-3,var(--line));border-radius:12px}
.cn-g{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.cn-l{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.cn-i{font-size:12px;padding:3px 9px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn-i:hover{border-color:var(--accent,#1d4fc4)}.cn-i.n b{color:var(--accent,#1d4fc4)}

/* ---- Welcome to Connects: the new-user tour (public/welcome-ui.js, Kyle 10/7) ---- */
body.wlc-open{overflow:hidden}
.wlc{position:fixed;inset:0;z-index:9000;display:flex;flex-direction:column;background:radial-gradient(1200px 700px at 85% -10%,#1a2a9a 0%,rgba(1,1,96,0) 60%),linear-gradient(160deg,#010160 0%,#03042c 70%);color:#fff;animation:wlcIn .35s ease-out}
.wlc-glow{position:absolute;inset:auto -10% -40% -10%;height:60%;background:radial-gradient(closest-side,color-mix(in srgb,var(--gold) 13%,transparent),transparent);pointer-events:none}
.wlc-top{display:flex;align-items:center;gap:14px;padding:18px 28px;position:relative}.wlc-top img{height:30px}.wlc-top>span:not(.grow):not(.wlc-count){font:600 15px var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.wlc .grow{flex:1}.wlc-count{font-size:13px;color:rgba(255,255,255,.65)}
.wlc-x{background:none;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:50%;width:34px;height:34px;cursor:pointer;font-size:14px}.wlc-x:hover{background:rgba(255,255,255,.1)}
.wlc-bar{height:3px;background:rgba(255,255,255,.1);margin:0 28px;border-radius:2px;overflow:hidden}.wlc-bar i{display:block;height:100%;background:var(--gold);transition:width .35s ease}
.wlc-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 28px;overflow:auto;position:relative}
.wlc-slide{width:min(980px,100%);animation:wlcSlide .4s cubic-bezier(.2,.8,.2,1)}.wlc-slide.back{animation-name:wlcSlideB}
.wlc h1{font:700 clamp(32px,5.4vw,60px)/1.05 var(--f-disp);margin:18px 0 16px;letter-spacing:-.01em}
.wlc h2{font:700 clamp(26px,3.6vw,42px)/1.1 var(--f-disp);margin:6px 0 14px}
.wlc-lead{font-size:clamp(16px,1.6vw,20px);line-height:1.5;color:rgba(255,255,255,.85);max-width:760px;margin:0 0 18px}
.wlc-sub{color:var(--gold);font-size:14px;letter-spacing:.04em}
.wlc-hero{text-align:center}.wlc-hero .wlc-lead{margin:0 auto 22px}.wlc-r{height:84px;animation:wlcPulse 2.6s ease-in-out infinite}
.wlc-flow{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px;counter-reset:none}
.wlc-flow li{display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.05);opacity:0;animation:wlcUp .4s ease-out forwards;animation-delay:calc(var(--n)*90ms + 150ms)}
.wlc-flow li b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gold);color:#010160;font-size:13px}
.wlc-flow li:not(:last-child)::after{content:'→';margin-left:6px;color:rgba(255,255,255,.4)}
.wlc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:8px}
.wlc-tile{padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);opacity:0;animation:wlcUp .35s ease-out forwards;animation-delay:calc(var(--n)*50ms + 100ms)}
.wlc-tile i{font-style:normal;font-size:22px;color:var(--gold);display:block;margin-bottom:6px}.wlc-tile b{display:block;font-size:15px}.wlc-tile span{font-size:12px;color:rgba(255,255,255,.6)}
.wlc-feat{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center}
.wlc-big{width:150px;height:150px;border-radius:36px;display:grid;place-items:center;font-size:70px;color:#010160;background:linear-gradient(145deg,var(--gold),#ffb800);box-shadow:0 20px 60px color-mix(in srgb,var(--gold) 25%,transparent);animation:wlcPop .5s cubic-bezier(.2,1.4,.4,1)}
.wlc-where{display:inline-block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);border-radius:999px;padding:3px 10px}
.wlc-try{background:rgba(255,255,255,.07);border-left:3px solid var(--gold);padding:10px 14px;border-radius:0 10px 10px 0;max-width:700px;color:rgba(255,255,255,.9)}
.wlc-rules{display:grid;gap:10px}.wlc-rules div{display:grid;grid-template-columns:220px 1fr;gap:16px;padding:14px 18px;border-radius:12px;background:rgba(255,255,255,.05);opacity:0;animation:wlcUp .35s ease-out forwards;animation-delay:calc(var(--n)*80ms + 100ms)}
.wlc-rules b{color:var(--gold)}.wlc-rules span{color:rgba(255,255,255,.85)}
.wlc-next{counter-reset:s;list-style:none;padding:0;display:grid;gap:12px;max-width:780px}.wlc-next li{counter-increment:s;display:flex;gap:14px;align-items:flex-start;font-size:18px;line-height:1.45;opacity:0;animation:wlcUp .35s ease-out forwards;animation-delay:calc(var(--n)*110ms + 100ms)}
.wlc-next li::before{content:counter(s);flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--gold);color:#010160;font-weight:700}
.wlc-nav{display:flex;align-items:center;gap:12px;padding:18px 28px 26px}
.wlc-btn{font:600 15px var(--f-body,inherit);padding:12px 26px;border-radius:999px;border:0;background:#fff;color:#010160;cursor:pointer}.wlc-btn.sec{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3)}.wlc-btn:disabled{opacity:.3;cursor:default}
.wlc-btn.go{background:var(--gold);color:#010160;padding:14px 34px;font-size:17px;box-shadow:0 10px 30px color-mix(in srgb,var(--gold) 35%,transparent)}
.wlc-btn:focus-visible,.wlc-x:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@keyframes wlcIn{from{opacity:0}to{opacity:1}}@keyframes wlcSlide{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}@keyframes wlcSlideB{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}
@keyframes wlcUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes wlcPop{from{transform:scale(.6) rotate(-8deg);opacity:0}to{transform:none;opacity:1}}@keyframes wlcPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@media (max-width:700px){.wlc-feat{grid-template-columns:1fr;gap:18px}.wlc-big{width:96px;height:96px;font-size:44px;border-radius:24px}.wlc-rules div{grid-template-columns:1fr;gap:4px}.wlc-top,.wlc-nav{padding-left:16px;padding-right:16px}.wlc-bar{margin:0 16px}.wlc-stage{padding:16px}}
@media (prefers-reduced-motion:reduce){.wlc,.wlc *{animation:none!important;opacity:1!important;transition:none!important}}
.wlc h2{display:block;text-transform:none;letter-spacing:-.01em;color:#fff;font-weight:700;font-size:clamp(26px,3.6vw,42px);line-height:1.1;margin:6px 0 14px;padding:0;border:0}.wlc h2::before,.wlc h2::after{content:none;display:none}
/* Bid calendar, Philip 10/7 (PL-12/13/14): weekdays only; past and decided bids greyed with a tag; weekend-dated bids badged */
.bcal.bcal5{grid-template-columns:repeat(5,minmax(0,1fr))}
.bcal-load{padding:40px;text-align:center;color:var(--muted)}
.bcal-b.past{opacity:.55;filter:grayscale(.6);border-left-color:var(--line-2, var(--line))}
.bcal-b.past:hover{opacity:.9;filter:none}
.bcal-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:0 5px;border-radius:4px;margin-left:4px;background:var(--bg-inset);color:var(--muted)}
.bcal-tag.t-won{background:color-mix(in srgb,#1f9d55 22%,transparent);color:#1f9d55}
.bcal-tag.t-lost{background:color-mix(in srgb,#c0392b 20%,transparent);color:#c0392b}
.bcal-tag.t-pending{background:color-mix(in srgb,#d68910 22%,transparent);color:#b9770e}
.bcal-wk{display:inline-block;font-size:10px;padding:0 5px;border-radius:4px;margin-left:4px;border:1px dashed var(--line-2, var(--line));color:var(--muted)}

/* ---------- Owner Questions (public/ownerq-ui.js) ---------- */
.oq{display:flex;flex-direction:column;gap:12px}
.oq-stats{display:flex;flex-wrap:wrap;gap:8px}
.oq-stats span{background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:4px 12px;color:var(--ink-2);font-size:13px}
.oq-stats b{color:var(--ink);font-family:var(--f-num);font-size:15px;margin-right:2px}
.oq-stats .warn{border-color:var(--warn);color:var(--warn)} .oq-stats .late{border-color:var(--crit);color:var(--crit)}
.oq-tabs{display:flex;gap:6px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:6px}
.oq-tab{background:none;border:0;color:var(--ink-2);padding:6px 12px;border-radius:var(--r);cursor:pointer;font:inherit;font-weight:600}
.oq-tab.on{background:var(--accent-a);color:var(--accent)} .oq-sp{flex:1}
.oq-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.oq-chip{background:var(--bg-2);border:1px solid var(--line-2);color:var(--ink-2);border-radius:999px;padding:3px 12px;cursor:pointer;font:inherit;font-size:13px}
.oq-chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.oq-done{color:var(--ink-3);font-size:13px;margin-left:8px;display:flex;gap:6px;align-items:center}
.oq-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.6fr);gap:14px;align-items:start}
@media (max-width:900px){.oq-grid{grid-template-columns:1fr}}
.oq-list{display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 260px);overflow:auto;padding-right:2px}
@media (max-width:900px){.oq-list{max-height:none}}
.oq-card{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:9px 11px;cursor:pointer;color:var(--ink);font:inherit;transition:border-color var(--t) var(--ease),background var(--t) var(--ease)}
.oq-card:hover{background:var(--bg-3)} .oq-card.on{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)} .oq-card.done{opacity:.62}
.oq-top{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink-3)} .oq-top b{color:var(--ink-2)}
.oq-pri{width:8px;height:8px;border-radius:50%;background:var(--ink-3)} .oq-pri.p-High{background:var(--crit)} .oq-pri.p-Low{background:var(--line-3)}
.oq-for{color:var(--accent)} .oq-due{margin-left:auto} .oq-due.late{color:var(--crit)}
.oq-q{font-size:14px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.oq-detail{background:var(--bg-2);border:1px solid var(--line-2);border-radius:calc(var(--r) + 4px);padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.oq-detail.empty{color:var(--ink-3)}
.oq-meta{font-size:12px;color:var(--ink-3)} .oq-meta .hi{color:var(--crit)}
.oq-h{margin:0;font-size:19px;line-height:1.3;font-weight:600}
.oq-why,.oq-rec{margin:0;font-size:14px;color:var(--ink-2);line-height:1.45}
.oq-why span,.oq-rec span,.oq-answer .lbl,.oq-rel .lbl,.oq-add .lbl{display:block;font-size:11px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3);margin-bottom:2px}
.oq-rec{border-left:3px solid var(--good);padding-left:10px;color:var(--ink)}
.oq-opts{display:flex;flex-wrap:wrap;gap:8px}
.oq-opt{background:var(--bg-3);border:1px solid var(--line-2);color:var(--ink);border-radius:var(--r);padding:9px 14px;cursor:pointer;font:inherit;font-weight:600}
.oq-opt.rec{border-color:var(--good)}.oq-rtag{font-style:normal;font:600 9.5px var(--f-disp);letter-spacing:.1em;text-transform:uppercase;color:var(--good);border:1px solid var(--good);padding:1px 5px;margin-left:8px;vertical-align:1px}
.oq-opt:hover{border-color:var(--accent)} .oq-opt.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.oq-detail textarea,.oq-add textarea,.oq-add input{width:100%;box-sizing:border-box;background:var(--bg-inset);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r);padding:8px 10px;font:inherit}
.oq-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.oq-answer{background:var(--good-a);border:1px solid var(--good);border-radius:var(--r);padding:10px 12px}
.oq-answer .txt{font-size:15px}
.oq-maphead{font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3);margin-top:4px}
.oq-map,.oq-web{width:100%;height:auto;display:block}
.oq-map text,.oq-web text{fill:var(--ink);font-family:var(--f-ui);font-size:12px} .oq-map text.sub,.oq-web .sub{fill:var(--ink-3);font-size:10px}
.oq-e{fill:none;stroke:var(--line-3);stroke-width:1.6;stroke-dasharray:.02 .02}
.oq-map.done .oq-e{stroke-dasharray:none}
.oq-e.k-module{stroke:var(--accent)} .oq-e.k-rule{stroke:var(--warn)} .oq-e.k-data{stroke:var(--metal)} .oq-e.k-decision{stroke:var(--data)} .oq-e.rel{stroke:var(--line-3);stroke-width:1} .oq-e.agent{stroke:var(--good)}
.oq-map:not(.done) .oq-e:not(.base):not(.agent){opacity:.55}
.oq-n circle,.oq-n rect{fill:var(--bg-3);stroke:var(--line-3);stroke-width:1.2}
.oq-n.q circle{fill:var(--brand);stroke:var(--accent)} .oq-n.hub circle{fill:var(--bg-inset);stroke:var(--accent);stroke-width:2;stroke-dasharray:4 3}
.oq-map.done .oq-n.hub circle{fill:var(--good-a);stroke:var(--good);stroke-dasharray:none}
.oq-n.ag rect{stroke:var(--good)} .oq-n.k-module rect{stroke:var(--accent)} .oq-n.k-rule rect{stroke:var(--warn)} .oq-n.k-data rect{stroke:var(--metal)} .oq-n.k-decision rect{stroke:var(--data)}
.oq-n.rq{cursor:pointer} .oq-n.rq circle{fill:var(--bg-inset)} .oq-n.rq:hover circle{stroke:var(--accent)} .oq-n.rq text{font-size:9px}
/* the moment an answer lands: the lines draw out from the answer to everything it touches */
.oq-map.lit .oq-e{stroke-dasharray:1 1;stroke-dashoffset:1;animation:oq-draw .7s var(--ease) forwards;animation-delay:var(--d,0s)}
.oq-map.lit .oq-n:not(.q):not(.hub):not(.ag){opacity:0;transform-box:fill-box;transform-origin:center;animation:oq-pop .45s var(--ease) forwards;animation-delay:calc(var(--d,0s) + .35s)}
.oq-map.lit .oq-n.hub circle{animation:oq-pulse 1.2s var(--ease) 1}
@keyframes oq-draw{to{stroke-dashoffset:0}} @keyframes oq-pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
@keyframes oq-pulse{0%{stroke-width:2}40%{stroke-width:9;stroke:var(--good)}100%{stroke-width:2}}
@media (prefers-reduced-motion:reduce){.oq-map.lit .oq-e,.oq-map.lit .oq-n,.oq-map.lit .oq-n.hub circle{animation:none;opacity:1;stroke-dashoffset:0}}
.oq-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-3)}
.oq-legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:2px solid var(--line-3)}
.oq-legend .k-module::before{border-color:var(--accent)} .oq-legend .k-rule::before{border-color:var(--warn)} .oq-legend .k-data::before{border-color:var(--metal)} .oq-legend .k-decision::before{border-color:var(--data)}
.oq-legend .k-rq::before{border-radius:50%} .oq-legend .k-ans::before{background:var(--good);border-color:var(--good);border-radius:50%} .oq-legend .k-open::before{border-color:var(--accent);border-radius:50%}
.oq-rel{display:flex;flex-direction:column;gap:4px}
.oq-relq{text-align:left;background:none;border:1px solid var(--line);border-radius:var(--r);padding:6px 9px;color:var(--ink-2);cursor:pointer;font:inherit;font-size:13px}
.oq-relq:hover{border-color:var(--accent);color:var(--ink)} .oq-relq b{color:var(--ink)}
.oq-add{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:8px}
.oq-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:13px;color:var(--ink-2)}
.oq-webwrap{background:var(--bg-inset);border:1px solid var(--line);border-radius:calc(var(--r) + 4px);padding:8px;overflow:hidden}
.w-e{stroke:var(--accent);stroke-width:.8;opacity:.28;stroke-dasharray:3 3} .w-e.answered{stroke:var(--good);opacity:.5;stroke-dasharray:none}
.oq-web.hl .w-e{opacity:.06} .oq-web.hl .w-e.on{opacity:.95;stroke-width:1.6}
.w-n circle{fill:var(--bg-3);stroke:var(--accent);stroke-width:1.5} .w-n.k-rule circle{stroke:var(--warn)} .w-n.k-data circle{stroke:var(--metal)} .w-n.k-decision circle{stroke:var(--data)}
.w-n circle.fill{fill:var(--good);stroke:none;opacity:.75} .w-n{cursor:default} .oq-web.hl .w-n:not(.on){opacity:.35}
.w-q{fill:var(--bg-2);stroke:var(--accent);stroke-width:1.4;cursor:pointer} .w-q.answered{fill:var(--good);stroke:var(--good)}
.oq-web.hl .w-q:not(.on){opacity:.25} .w-q.on{stroke-width:2.6}

/* ---------- Contract watch (public/contracts-ui.js, Meeting minutes) — Kyle 10/7: make it dramatic ---------- */
.cw-banner{border-radius:calc(var(--r) + 2px);padding:14px 16px;margin:12px 0;display:flex;flex-direction:column;gap:10px}
.cw-banner.red{background:linear-gradient(90deg,rgba(240,118,107,.28),rgba(240,118,107,.12));border:2px solid var(--crit);box-shadow:0 0 0 4px rgba(240,118,107,.12);animation:cw-pulse 2.4s ease-in-out infinite}
.cw-banner.amber{background:var(--warn-a);border:1px solid var(--warn)}
@keyframes cw-pulse{0%,100%{box-shadow:0 0 0 3px rgba(240,118,107,.10)}50%{box-shadow:0 0 0 8px rgba(240,118,107,.22)}}
@media (prefers-reduced-motion:reduce){.cw-banner.red{animation:none}}
.cw-bh{display:flex;gap:12px;align-items:flex-start}
.cw-ico{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--crit);color:#fff;font-weight:800;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-family:var(--f-disp)}
.cw-banner.amber .cw-ico{background:var(--warn);color:var(--accent-ink)}
.cw-bt{font-family:var(--f-disp);font-size:22px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);font-weight:700;line-height:1.15}
.cw-bs{color:var(--ink-2);font-size:14px;margin-top:2px}
.cw-act{display:flex;gap:8px;flex-wrap:wrap}
.cw-ok{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--ink-2);font-size:13px;margin:8px 0}
.cw-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--ink-3);margin-right:6px;vertical-align:-1px}
.cw-dot.red{background:var(--crit)} .cw-dot.amber,.cw-dot.watch{background:var(--warn)} .cw-dot.ok{background:var(--good)}
.cw-rev{width:100%;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:8px}
.cw-sum{font-size:14px;color:var(--ink)}
.cw-t{width:100%;border-collapse:collapse;font-size:13px} .cw-t td{border-top:1px solid var(--line);padding:7px 6px;vertical-align:top} .cw-lv{white-space:nowrap;color:var(--ink-2);width:70px}
.cw-t tr.lv-red td:first-child{color:var(--crit);font-weight:700} .cw-t tr.lv-watch td:first-child{color:var(--warn)} .cw-t tr.lv-ok{opacity:.75}
.cw-q{color:var(--ink-2);font-style:italic;margin-top:2px}
.cw-note{border-radius:var(--r);padding:6px 10px;font-size:13px} .cw-note.bad{background:var(--crit-a);border:1px solid var(--crit)} .cw-note.good{background:var(--good-a);border:1px solid var(--good)}
.cw-confirm{display:flex;flex-direction:column;gap:6px;width:100%} .cw-confirm textarea{width:100%;box-sizing:border-box;background:var(--bg-inset);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r);padding:8px;font:inherit}
.cw{display:flex;flex-direction:column;gap:12px}
.cw-stats{display:flex;flex-wrap:wrap;gap:8px} .cw-stats span{background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:4px 12px;color:var(--ink-2);font-size:13px} .cw-stats b{color:var(--ink);font-family:var(--f-num);font-size:15px;margin-right:2px}
.cw-stats span.red{border-color:var(--crit);color:var(--crit);background:var(--crit-a)}
.cw-sec{background:var(--bg-2);border:1px solid var(--line);border-radius:calc(var(--r) + 2px);padding:12px 14px} .cw-sec h3{margin:0 0 8px;font-size:15px} .cw-sec summary{cursor:pointer;color:var(--ink-2)}
.cw-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:7px 4px;border-top:1px solid var(--line);font-size:14px} .cw-row a{color:var(--ink);text-decoration:none} .cw-rt{color:var(--ink-2)}
.cw-row.lv-red .cw-rt{color:var(--crit);font-weight:700}
.cw-qi{border-top:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:8px} .cw-qh a{color:var(--ink);text-decoration:none}
.cw-pill{display:inline-block;border-radius:999px;padding:1px 9px;font-size:12px;border:1px solid var(--line-2);color:var(--ink-2)} .cw-pill.red{border-color:var(--crit);color:var(--crit)}
.mm-job.mm-red{border:2px solid var(--crit) !important;box-shadow:0 0 0 4px rgba(240,118,107,.14)}
.mm-nocontract{display:flex;gap:10px;align-items:center;background:var(--crit);color:#fff;font-family:var(--f-disp);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:18px;padding:8px 12px;border-radius:var(--r);margin:6px 0}
.mm-nocontract .cw-ico{background:#fff;color:var(--crit);width:26px;height:26px;font-size:16px}
.mm-ncp{color:var(--crit);font-weight:700}

/* ---------- Bid Brain (public/bidbrain-ui.js) ---------- */
.bb{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.bb-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap} .bb-top>div{flex:1;min-width:240px;display:flex;flex-direction:column;gap:2px} .bb-top b{font-family:var(--f-disp);font-size:20px;letter-spacing:.04em;text-transform:uppercase}
.bb-sum{border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;border:1px solid var(--line-2)} .bb-sum.bad{background:var(--crit-a);border-color:var(--crit);color:var(--crit)} .bb-sum.warn{background:var(--warn-a);border-color:var(--warn);color:var(--warn)} .bb-sum.good{background:var(--good-a);border-color:var(--good);color:var(--good)}
.bb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;align-items:start}
.bb-card{background:var(--bg-2);border:1px solid var(--line);border-radius:calc(var(--r) + 2px);padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-width:0}
.bb-card.bad{border-color:var(--crit)} .bb-card.warn{border-color:var(--warn)} .bb-card.good{border-color:var(--good)}
.bb-h{display:flex;flex-direction:column;gap:1px} .bb-h h3{margin:0;font-size:15px}
.bb-big{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap} .bb-big b{font-family:var(--f-num);font-size:28px;color:var(--ink)} .bb-big span{font-family:var(--f-num);font-size:22px;color:var(--ink-3);text-decoration:line-through} .bb-big i{color:var(--ink-3);font-style:normal} .bb-big small{flex-basis:100%;color:var(--ink-2);font-size:13px}
.bb-parts{display:flex;flex-wrap:wrap;gap:6px} .bb-parts span{font-size:12px;border:1px solid var(--line-2);border-radius:999px;padding:2px 9px;color:var(--ink-2)} .bb-parts span.up{border-color:var(--warn);color:var(--warn)} .bb-parts span.down{border-color:var(--good);color:var(--good)} .bb-parts small{color:var(--ink-3)}
.bb-gauge{position:relative;width:150px;height:96px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end} .bb-gauge svg{position:absolute;top:0;left:15px;width:120px;height:70px}
.bb-g0{fill:none;stroke:var(--track);stroke-width:12;stroke-linecap:round} .bb-g1{fill:none;stroke:var(--accent);stroke-width:12;stroke-linecap:round;stroke-dasharray:calc(var(--p)) 100}
.bb-gauge b{font-family:var(--f-num);font-size:26px;line-height:1} .bb-gauge span{font-size:12px;color:var(--ink-3)}
.bb-why{display:flex;flex-direction:column;gap:4px;font-size:13px} .bb-why .up{color:var(--good)} .bb-why .down{color:var(--warn)}
.bb-thirds{display:grid;grid-template-columns:repeat(3,1fr);gap:6px} .bb-thirds>div{border:1px solid var(--line);border-radius:var(--r);padding:6px;display:flex;flex-direction:column;align-items:center;gap:1px;font-size:12px;color:var(--ink-3);text-align:center} .bb-thirds>div.me{border-color:var(--accent);background:var(--accent-a)} .bb-thirds b{font-family:var(--f-num);font-size:18px;color:var(--ink)}
.bb-ghosts{display:flex;flex-direction:column;gap:6px} .bb-ghost{display:flex;gap:10px;align-items:center;padding:6px;border-radius:var(--r)} .bb-ghost.top{background:var(--crit-a);border:1px solid var(--crit)}
.bb-gi{width:32px;height:32px;border-radius:50%;background:var(--bg-3);border:1px dashed var(--ink-3);display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-disp);font-weight:700;color:var(--ink-2)} .bb-ghost.top .bb-gi{border-color:var(--crit);color:var(--crit)}
.bb-win{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:8px} .bb-win span{font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:var(--track-wide)} .bb-win b{font-family:var(--f-num);font-size:22px} .bb-win small{color:var(--ink-2)}
.bb-pf{display:flex;flex-direction:column;gap:6px} .bb-pfi{display:flex;gap:8px;font-size:13px;line-height:1.4} .bb-pfi.red b{color:var(--crit)} .bb-pfi.amber b{color:var(--warn)}
.bb-dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;margin-top:4px;background:var(--good)} .bb-dot.red{background:var(--crit)} .bb-dot.amber{background:var(--warn)}
.bb-note{font-size:13px;border-radius:var(--r);padding:6px 9px} .bb-note.warn{background:var(--warn-a);border:1px solid var(--warn)}
.bb-range{display:flex;flex-direction:column;gap:1px;border-left:3px solid var(--accent);padding-left:10px} .bb-range span{font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:var(--track-wide)} .bb-range b{font-family:var(--f-num);font-size:20px} .bb-range small{color:var(--ink-2)}

/* ---------- Crew web on the people profile (public/people-ui.js connHtml) ---------- */
.cwgrid{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:12px;align-items:start} @media (max-width:700px){.cwgrid{grid-template-columns:1fr}}
.cwb{width:100%;height:auto} .cwb line{stroke:var(--accent);opacity:.45} .cwb line.side{stroke:var(--ink-3);opacity:.35;stroke-dasharray:3 3}
.cwn circle{fill:var(--bg-3);stroke:var(--accent);stroke-width:1.5} .cwn.me circle{fill:var(--brand);stroke:var(--accent);stroke-width:2.5} .cwn.foreman circle{stroke:var(--warn)} .cwn.job circle{stroke:var(--metal);fill:var(--bg-inset)}
.cwn text{fill:var(--ink-2);font-size:10px;font-family:var(--f-ui)} .cwn.me text{fill:var(--ink);font-weight:700;font-size:12px} .cwn.mate,.cwn.foreman{cursor:pointer} .cwn.mate:hover circle,.cwn.foreman:hover circle{fill:var(--accent-a)}
.cwh{font-size:11px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3);margin:8px 0 4px} .cwh:first-child{margin-top:0}
.cwrow{display:flex;justify-content:space-between;gap:8px;padding:3px 0;color:var(--ink);text-decoration:none;font-size:13px;border-bottom:1px solid var(--line)} .cwrow span{color:var(--ink-3)} .cwrow:hover b{color:var(--accent)}
.cwsys{display:flex;flex-wrap:wrap;gap:6px} .cwsys span{font-size:12px;border:1px solid var(--line-2);border-radius:999px;padding:2px 8px;color:var(--ink-2)}
.cwcrew{margin-bottom:8px} .cwcf{display:flex;justify-content:space-between;cursor:pointer;margin-bottom:6px} .cwcf:hover b{color:var(--accent)}
.cwchips{display:flex;flex-wrap:wrap;gap:6px} .cwchips a{font-size:12px;border:1px solid var(--line-2);border-radius:999px;padding:2px 9px;color:var(--ink);text-decoration:none} .cwchips a:hover{border-color:var(--accent)} .cwchips small{color:var(--ink-3)}
/* Ready to start (lib/readywatch.js) */
.rw-job{border:1px solid var(--line,#ddd);border-left:4px solid var(--line,#ddd);border-radius:8px;padding:10px 12px;margin:8px 0;background:var(--card,#fff)}
.rw-job.lv-red{border-left-color:#d32f2f}.rw-job.lv-amber{border-left-color:#f0a020}.rw-job.lv-ok{border-left-color:#2e7d32}
.rw-h{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}.rw-when{color:var(--muted,#666);font-size:.9em}.rw-t{flex-basis:100%;font-size:.92em}
.rw-caps{display:flex;gap:8px;overflow-x:auto;margin-top:8px;padding-bottom:4px}
.rw-cap{flex:0 0 auto;width:160px;text-decoration:none;color:inherit;font-size:.8em}.rw-cap img{width:160px;height:120px;object-fit:cover;border-radius:6px;display:block;background:#eee}
@media (max-width:600px){.rw-cap,.rw-cap img{width:130px}.rw-cap img{height:98px}}

/* MyConnects (Kyle 10/8): the panel is a <section class="dy">; an older .dy rule (a right-aligned date) was pushing the whole day to the right */
section.dy{margin-left:0;text-align:left;font-family:var(--f-ui);font-weight:400;font-size:inherit;line-height:1.4}
.dy-lanes{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dy-lanes h4{margin:6px 0}
@media (max-width:700px){.dy-lanes{grid-template-columns:1fr}}
.dy-it.note{border-color:var(--accent)}
.dy-ho{display:flex;gap:8px;align-items:center;padding:4px 0 8px 32px;font-size:13px}
.dy-note{margin-top:12px}.dy-note .tr-ov{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dy-note input{flex:1;min-width:200px}

/* Work mode (Kyle 10/8): one task at a time, full screen */
.wm{position:fixed;inset:0;z-index:9000;background:var(--bg,#0b1030);display:flex;flex-direction:column;align-items:center;gap:18px;padding:18px 16px;overflow:auto;text-align:left}
.wm-top{width:min(1000px,100%);display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:var(--ink-2)}.wm-top .md-bar{flex:1;min-width:120px}
.wm-clock{font-family:var(--f-num);font-size:20px;color:var(--ink)}
.wm-card{width:min(1000px,100%);background:var(--bg-2);border:1px solid var(--line-2);border-radius:14px;padding:32px 28px;display:flex;flex-direction:column;gap:14px;margin-top:6vh}
.wm-card h2{font-size:clamp(22px,3.2vw,38px);line-height:1.2;margin:0}.wm-sub{font-size:17px;color:var(--ink-2);margin:0}
.wm-src{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.wm-acts{display:flex;gap:10px;flex-wrap:wrap}.wm-acts .linkbtn{font-size:16px;padding:12px 18px}.wm-done{background:var(--good,#2e7d32)!important;border-color:var(--good,#2e7d32)!important}
.wm-acts kbd,.wm-nav kbd{font-size:11px;opacity:.7;margin-left:6px;border:1px solid currentColor;border-radius:4px;padding:0 4px}
.wm-nav{display:flex;justify-content:space-between;margin-top:8px}
.wm-next{width:min(1000px,100%);display:flex;gap:8px;flex-wrap:wrap;color:var(--ink-3);font-size:13px}.wm-next span{border:1px solid var(--line);border-radius:999px;padding:3px 10px}
.wm-clear{align-items:center;text-align:center}
.wm-pill{position:fixed;right:18px;bottom:18px;z-index:8000;background:var(--accent,#3b82f6);color:var(--accent-ink,#fff);border:0;border-radius:999px;padding:12px 18px;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.35)}
.wm-btn{font-weight:700}
@media (max-width:600px){.wm-card{padding:20px 16px;margin-top:2vh}.wm-acts .linkbtn{flex:1 1 45%}}

/* Show & Tell — the all-seeing eye (Kyle 10/8) */
.stbtn svg{width:20px;height:20px}.stbtn .st-rays{opacity:.55}
.stbtn.rec{color:#34d399;border-color:#34d399;animation:st-cam 2.4s ease-in-out infinite}.stbtn.rec .st-pupil{animation:st-led 2.4s steps(1,end) infinite}   /* recording: a slow green blink, like a security camera (Kyle 10/8) */
@keyframes st-cam{0%,100%{box-shadow:0 0 0 0 rgba(52,211,153,.0)}50%{box-shadow:0 0 14px 3px rgba(52,211,153,.55)}}
@keyframes st-led{0%{opacity:1}60%{opacity:.15}100%{opacity:1}}
@media (prefers-reduced-motion:reduce){.stbtn.rec,.stbtn.rec .st-pupil{animation:none}}
@keyframes st-glow{0%,100%{opacity:.35}50%{opacity:1}}
.st-panel{position:fixed;top:64px;right:16px;z-index:9100;width:min(440px,calc(100vw - 32px));background:var(--bg-2);border:1px solid var(--line-2);border-radius:12px;padding:14px 16px;box-shadow:0 12px 40px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:10px;text-align:left}
.st-ph{display:flex;align-items:center;gap:8px}.st-ph svg{width:22px;height:22px;color:var(--accent)}.st-ph b{flex:1;font-size:16px}
.st-panel p{margin:0;font-size:14px;color:var(--ink-2)}.st-panel input{width:100%;box-sizing:border-box;margin-top:4px}.st-panel label{font-size:13px;color:var(--ink-2)}
.st-acts{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.st-bar{position:fixed;top:10px;left:50%;transform:translateX(-50%);z-index:9200;display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--bg-2);border:1px solid #ff4d4d;border-radius:999px;padding:6px 10px 6px 14px;box-shadow:0 8px 28px rgba(0,0,0,.45);max-width:calc(100vw - 24px)}
.st-bar input{width:min(320px,40vw)}.st-bar #stClock{font-family:var(--f-num)}.st-bar.flash{box-shadow:0 0 0 4px rgba(255,77,77,.5)}
.st-dot{width:10px;height:10px;border-radius:50%;background:#34d399;box-shadow:0 0 8px #34d399;animation:st-led 2.4s steps(1,end) infinite}

/* top bar fits the window (fitTop in app.js, Kyle 10/8): c1 drops the time and long labels, c2 shrinks the search box,
   c3 folds Dispatch / Field / Refresh / Theme into the account menu. The account menu and the bell always stay on screen. */
.top .sync{min-width:0;flex-shrink:0}.top .bar>.brand{flex-shrink:0}
.top.c1 #pulled,.top.c1 .fieldlink .fl-long,.top.c1 .chatbtn .cl{display:none}
.top.c2 .askbtn{max-width:220px;margin:0 8px}.top.c2 .askbtn kbd{display:none}.top.c2 .brand .sub{display:none}
.top.c3 #dpBtn,.top.c3 .fieldlink,.top.c3 #refresh,.top.c3 #themeBtn{display:none}.top.c3 .askbtn{max-width:44px;flex:none}.top.c3 .askph{display:none}
.umx{display:none}.top.c3 .umx[data-has="1"]{display:block}
.top.c4 .intelbtn{font-size:0;padding:0 9px;gap:0}.top.c4 .intelbtn::before{content:'IQ';font-size:11.5px;letter-spacing:.12em}.top.c4 .bar{gap:8px}.top.c4 .sync{gap:6px}
/* permit intelligence */
.pm-flag{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.pm-flag .pill{white-space:normal}
tr.pm-us td{background:var(--accent-a)}
.intelmenu .im-st{font-style:normal;font:600 9.5px var(--f-disp);letter-spacing:.12em;text-transform:uppercase;padding:2px 6px;margin-left:6px;border:1px solid var(--line-2);color:var(--ink-3);vertical-align:2px;white-space:nowrap}
.intelmenu .im-st.building,.intelmenu .im-st.new{color:var(--good);border-color:var(--good)}.intelmenu .im-st.waiting{color:var(--warn);border-color:var(--warn)}.intelmenu .im-st.review{color:var(--data,#8ab4ff);border-color:var(--data,#8ab4ff)}
.intelmenu h5 em{font-style:normal;color:var(--good);letter-spacing:.08em;margin-left:6px}
.intelmenu .im-rm{cursor:default}.intelmenu .im-rm span{color:var(--ink-3)}
/* Apply intelligence on "Being built next" (Kyle 10/12) */
.intelmenu .aix{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.intelmenu .aix-b{font:600 10px var(--f-disp);letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border:1px solid var(--data,#8ab4ff);color:var(--data,#8ab4ff);background:transparent;cursor:pointer}
.intelmenu .aix-b:hover{background:rgba(138,180,255,.12)}
.intelmenu .aix-c{font-style:normal;font-size:11px;padding:2px 7px;border:1px solid var(--line-2);color:var(--ink-3)}
.intelmenu .aix-c.taken,.intelmenu .aix-c.open{color:var(--warn);border-color:var(--warn)}.intelmenu .aix-c.done{color:var(--good);border-color:var(--good)}.intelmenu .aix-c.failed{color:var(--bad,#f0766b);border-color:var(--bad,#f0766b)}
.intelmenu .aix-p{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
.intelmenu .aix-m{text-align:left;padding:8px;border:1px solid var(--line-2);background:transparent;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.intelmenu .aix-m:hover:not([disabled]){border-color:var(--data,#8ab4ff)}.intelmenu .aix-m[disabled]{opacity:.5;cursor:default}
.intelmenu .aix-m b{font-size:12.5px}.intelmenu .aix-m span{font-size:11px;color:var(--ink-3)}
.intelmenu .aix-n{grid-column:1/-1;width:100%;box-sizing:border-box;font:inherit;font-size:12px;padding:6px;background:transparent;color:inherit;border:1px solid var(--line-2);resize:vertical}
.intelmenu .aix-r{grid-column:1/-1;font-size:12px;color:var(--ink-2);margin-top:6px}
@media (max-width:560px){.intelmenu .aix-p{grid-template-columns:1fr}}

/* Show & Tell v2: intro, checks, My Show & Tell */
#stBar.st-bar{border-color:#34d399}#stBar.st-bar.flash{box-shadow:0 0 0 4px rgba(52,211,153,.5)}
.st-intro h4{margin:12px 0 6px}.st-intro p{line-height:1.5}.st-row{flex-direction:row!important;gap:8px;margin-top:12px}
.st-steps{display:flex;gap:6px;margin-top:10px}.st-steps span{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font-size:11px;color:var(--ink-3)}
.st-steps span.on{border-color:#34d399;color:#34d399}.st-steps span.done{background:#34d399;border-color:#34d399;color:#04121c}
.st-q{border:1px solid var(--line);border-radius:8px;margin:8px 0;padding:8px 10px}.st-q legend{font-size:13px;font-weight:600;padding:0 4px}.st-q label{display:flex;gap:8px;align-items:flex-start;padding:3px 0;font-size:13px}
.st-log-wrap{position:fixed;inset:0;z-index:9150;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:flex-start;padding:5vh 16px;overflow:auto}
.st-log{width:min(860px,100%);background:var(--bg-2);border:1px solid var(--line-2);border-radius:12px;padding:16px 18px;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.st-sess{margin-top:14px}.st-sess h4{margin:0 0 8px}.st-mk{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.st-mk.removed{opacity:.55}
.st-mk img,.st-noimg{width:160px;height:96px;object-fit:cover;border-radius:6px;border:1px solid var(--line);flex:none;display:grid;place-items:center;font-size:11px;color:var(--ink-3)}
.st-mkb{flex:1;display:flex;flex-direction:column;gap:6px}.st-mkb textarea{width:100%;box-sizing:border-box}.st-mkh{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:600px){.st-mk{flex-direction:column}.st-mk img,.st-noimg{width:100%;height:auto}}
.st-panel .st-q label{justify-content:flex-start;text-align:left}.st-panel .st-q input[type=radio]{width:auto;flex:none;margin:3px 0 0}
.an-film-ctl{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;gap:8px}.an-film-ctl .an-skip{position:static}
.an-film .an-snd[aria-pressed="true"]{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 55%,transparent)}

/* ---------- bid pipeline: estimator picker + who's bidding what (Kyle 10/9) ---------- */
.bb-est .bb-more{height:30px;border-radius:999px;padding:0 10px;font-size:12px;background:var(--bg-2);color:var(--ink-2);border:1px solid var(--line-2)}
.bb-est .bb-more.on{border-color:var(--accent);color:var(--ink)}
.bb-who{border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:10px 12px;margin:0 0 14px}
.bb-who>header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.bb-who>header h3{margin:0;font-size:14px}.bb-who>header button{margin-left:auto}
.bb-who.shut{padding:6px 12px}
.bb-who-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:10px}
.bb-who-c{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--bg-inset);display:flex;flex-direction:column;gap:4px;min-width:0}
.bb-who-c header{display:flex;flex-direction:column;gap:1px}.bb-who-c header a{color:var(--ink);text-decoration:none}.bb-who-c header span{font-size:12px;color:var(--ink-3)}
.bb-who-c em{font-style:normal}.bb-who-c em.soon,.bb-whoone .soon{color:var(--warn)}.bb-who-c em.late,.bb-whoone .late{color:var(--crit)}
.bb-who-b{display:flex;flex-direction:column;text-decoration:none;color:var(--ink-2);padding:4px 6px;border-radius:6px;min-width:0}
.bb-who-b:hover{background:var(--hover);color:var(--ink)}.bb-who-b span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.bb-who-b small{font-size:11px;color:var(--ink-3)}
.bb-who-more{font-size:12px;color:var(--accent);text-decoration:none;padding:2px 6px}
.bb-whoone{display:flex;gap:14px;flex-wrap:wrap;align-items:baseline;padding:8px 12px;margin:0 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-2);font-size:13px;color:var(--ink-2)}
.bb-whoone b{color:var(--ink);font-size:14px}.bb-whoone .warn{color:var(--warn)}
.pc-pos{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--line-2);white-space:nowrap}
.pc-pos.hi{color:var(--crit);border-color:var(--crit);background:var(--crit-a)}.pc-pos.lo{color:var(--warn);border-color:var(--warn);background:var(--warn-a)}.pc-pos.ok{color:var(--ink-3)}
/* footer, take three (Kyle 10/9): a utility strip — one bar, one thin line, the legal line. No second dashboard. */
.afoot .fin.fm.fm3{gap:0;padding-bottom:14px}
.fm3 .fb{border-bottom-width:2px;padding-top:8px;padding-bottom:8px}
.fm-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:10px 0;border-bottom:1px solid var(--line)}
.fm-line .grow{flex:1}.fm-lab{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.fm3 .fm-sc{border-radius:999px}.fm3 .fm-sc button{padding:3px 9px;font-size:12px}.fm3 .fm-pin{padding:3px 9px;font-size:12px}
.fm3 .fm-bucks{padding:3px 10px;font-size:12px}
.fm3 .fbot{padding-top:10px;border-top:0}
@media (max-width:640px){.fm3 .fb-apps{display:none}.fm-line .grow{display:none}}

/* ---------- MyConnects: your layout (Kyle 10/9) ---------- */
.dkb-grid .dkw-main.dkb-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.dkb-grid .dkw-main.dkb-col>.dkb{grid-column:1/-1}.dkb-grid .dkw-main.dkb-col>.dkb.half{grid-column:auto}
.dkb-grid .dkw-main.dkb-col>.dkb-drop{grid-column:1/-1}
.dkb{position:relative;min-width:0}
.dkb>.dkw-p{margin:0}
.dkb-t{position:absolute;top:-11px;right:12px;z-index:3;display:none;gap:2px;align-items:center;padding:2px;border-radius:8px;background:var(--bg-3);border:1px solid var(--line-2);box-shadow:0 4px 14px rgba(0,0,0,.25)}
.dkb:hover>.dkb-t,.dkb:focus-within>.dkb-t,.dkb-edit .dkb>.dkb-t{display:flex}
.dkb-t .dkw-x{padding:2px 7px;font-size:12px;min-height:0;line-height:1.4}.dkb-t .dkw-x.on{color:var(--crit);border-color:var(--crit)}
.dkb-h{cursor:grab;background:none;border:0;color:var(--ink-3);font-size:15px;padding:0 6px;line-height:1}.dkb-h:active{cursor:grabbing}
.dkb.shut .dkw-b{display:none}.dkb.shut>.dkw-p{opacity:.8}
.dkb.liked>.dkw-p{box-shadow:inset 3px 0 0 var(--accent)}
.dkb.dragging{opacity:.45}
.dkb.drop-b{box-shadow:0 -3px 0 var(--accent)}.dkb.drop-a{box-shadow:0 3px 0 var(--accent)}
.dkb-drop{min-height:8px;border-radius:10px}.dkb-dragging .dkb-drop{min-height:44px;border:1px dashed var(--line-3)}.dkb-drop.on{border-color:var(--accent);background:var(--accent-a)}
.dkb-edit .dkb{outline:1px dashed var(--line-2);outline-offset:3px;border-radius:12px}
.dkb-cz{border:1px solid var(--accent);border-radius:12px;background:var(--bg-2);padding:12px 14px;margin:0 0 14px}
.dkb-cz>header{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.dkb-cz>header h3{margin:0;font-size:15px}.dkb-cz>header .dkw-mut{flex:1 1 320px}
.dkb-cz2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:10px}
.dkb-cz ol{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.dkb-cz li{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg-inset);font-size:13px}
.dkb-cz li .grow{flex:1}.dkb-cz li .dkw-x{padding:1px 7px;font-size:11.5px}
.dkb-list{display:flex;flex-direction:column;gap:4px}
/* MC15 slice 2: your own blocks and the block composer (public/desk-ui.js composer); controls are 44px tap targets */
.dkb-own-cz{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.dkb-own-cz .dkw-x{min-height:44px;padding:6px 12px}
.mbz{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--bg-inset);display:flex;flex-direction:column;gap:10px}.mbz h4{margin:0;font-size:14px}
.mbz-g{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end}.mbz-g>b{flex:1 0 100%;font-size:12.5px}.mbz-g>p{flex:1 0 100%;margin:0}
.mbz-f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-2)}.mbz select,.mbz input[type=time],.mbz input:not([type]){min-height:44px;min-width:120px;font:inherit;font-size:14px;padding:4px 8px}
.mbz fieldset{border:1px solid var(--line);border-radius:8px;padding:4px 8px;display:flex;flex-wrap:wrap;gap:0 10px;max-height:240px;overflow:auto}.mbz fieldset label{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:13px}
.mbz input[type=checkbox]{width:20px;height:20px}.mbz-step{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;flex:1 0 100%}.mbz .dkw-x{min-height:44px;padding:6px 14px}
.mbz-a{display:flex;flex-wrap:wrap;gap:8px}.mbz-msg{margin:0;color:var(--bad,#b42318);font-weight:600}.mbz-prev{border-top:1px dashed var(--line);padding-top:8px}
.dkb-it.off{cursor:default;opacity:.85}.dkw-empty.unk{color:var(--warn,#b54708)}

.dkb-it{display:flex;gap:8px;align-items:flex-start;text-align:left;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg-inset);color:var(--ink);cursor:pointer;font:inherit;font-size:13px}
.dkb-it:hover{border-color:var(--accent)}.dkb-it i{font-style:normal;color:var(--accent)}.dkb-it small{display:block;color:var(--ink-3);font-size:11.5px}
@media (max-width:1200px){.dkb-grid.dkw-grid{display:flex;flex-direction:column}.dkb-grid .dkw-main.dkb-col,.dkb-grid .dkw-side.dkb-col{display:flex;flex-direction:column;gap:14px}.dkb-cz2{grid-template-columns:1fr}}
@media (hover:none){.dkb>.dkb-t{display:none}.dkb-edit .dkb>.dkb-t{display:flex;position:static;margin-bottom:6px;flex-wrap:wrap}}
.bb-est{flex-wrap:wrap}.bb-est .bb-more{flex:0 0 auto;width:auto;max-width:220px}
.dkb-edit .dkb>.dkb-t{position:static;display:flex;justify-content:flex-end;flex-wrap:wrap;margin:0 0 6px auto;width:max-content;max-width:100%;box-shadow:none}
/* what's blocking this job (being built next) */
.jblock{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:10px 0 4px;padding:10px 14px;border:1px solid var(--line-2);border-left:4px solid var(--warn);border-radius:10px;background:var(--bg-2);font-size:13px;color:var(--ink-2)}
.jblock.s-crit{border-left-color:var(--crit);background:var(--crit-a)}.jblock.s-info{border-left-color:var(--accent)}
.jblock .jb-k{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.jblock>b{color:var(--ink);font-size:14px}
.jblock .linkbtn{margin-left:auto}
.fl-next .bl-crit{color:var(--crit)}.fl-next .bl-warn{color:var(--warn)}
.dkw-blocker{margin:6px 0 2px;padding:5px 8px;border-left:3px solid var(--warn);background:var(--warn-a);border-radius:6px;font-size:12.5px;color:var(--ink)}
.dkw-blocker.s-crit{border-left-color:var(--crit);background:var(--crit-a)}.dkw-blocker.s-info{border-left-color:var(--accent);background:var(--accent-a)}
.dkw-blocker small{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-right:4px}
.jpct-sug{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:10px;padding:9px 12px;border:1px dashed var(--accent);border-radius:10px;background:var(--accent-a);font-size:13px}
.jpct-sug>div{flex:1 1 320px}.jpct-sug small{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.jpct-sug.low{border-color:var(--warn);background:var(--warn-a)}
/* #3 no false "Saved": a card waiting on the server, and a save that did not stick */
.saving{opacity:.55;pointer-events:none;position:relative}.saving::after{content:"saving…";position:absolute;right:10px;top:8px;font-size:11px;color:var(--ink-3)}
.save-err{margin:0 0 6px;padding:5px 8px;border-radius:6px;background:var(--crit-a);color:var(--crit);font-size:12px}
/* estimate import from EDGE (#11) */
.edge-drop{margin:0 0 12px;padding:12px 14px;border:1.5px dashed var(--line-3);border-radius:10px;background:var(--bg-inset);display:flex;flex-direction:column;gap:6px}
.edge-drop.on{border-color:var(--accent);background:var(--accent-a)}.edge-drop>b{font-size:13px}
.edge-f{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:4px}.edge-f span{display:flex;flex-direction:column}.edge-f small{font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}
.bestf input.filled{border-color:var(--accent);background:var(--accent-a)}
.bscore{font-size:10.5px;font-weight:600;letter-spacing:.04em;padding:1px 6px;border-radius:999px;border:1px solid var(--line-2);margin-left:6px;white-space:nowrap}
.bscore.ok{color:var(--good,#4caf50);border-color:currentColor}.bscore.bad{color:var(--crit);border-color:currentColor}.bscore.mid{color:var(--warn);border-color:currentColor}
.cut-teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.cut-t{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg-2);display:flex;flex-direction:column;gap:6px}
.cut-t.ready{border-color:var(--good)}.cut-t header{display:flex;justify-content:space-between;align-items:center}.cut-i{display:flex;gap:6px;align-items:flex-start;font-size:13px}
.lg-ms{display:block;margin-top:10px;padding:9px 12px;border:1px solid var(--line-2);border-radius:8px;text-align:center;color:var(--ink);text-decoration:none;font-size:13px}.lg-ms:hover{border-color:var(--accent)}

.tbl-export{float:right;margin:0 0 4px 8px;font-size:11px;padding:2px 8px;opacity:.75}.tbl-export:hover{opacity:1}
@media print{.tbl-export{display:none}}
.imp-in{max-width:980px;width:min(980px,96vw);max-height:90vh;overflow:auto}
.imp-drop{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;border:2px dashed var(--line-2);border-radius:12px;padding:28px 16px;margin:10px 0}.imp-drop.on{border-color:var(--accent,#4ea1ff);background:var(--bg-2)}
.imp-tally{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.imp-chip{border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:var(--bg-2);color:var(--ink);cursor:pointer;font-size:12px}.imp-chip.on{border-color:var(--ink)}.imp-chip.ok b{color:var(--good,#4caf50)}.imp-chip.warn b{color:var(--warn)}.imp-chip.bad b{color:var(--crit)}
.imp-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 12px;margin:8px 0}.imp-cols label{display:flex;flex-direction:column;font-size:12px;gap:2px}.imp-cols label span{color:var(--ink-2,#999)}
.imp-rows{max-height:46vh;overflow:auto}.imp-force{display:flex;gap:6px;align-items:center;margin-top:4px}
.imp-rows td{white-space:normal}
/* Duplicates desk (public/dupes-ui.js) */
.dx-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:4px 0 12px}.dx-top b{display:block;font-size:16px}.dx-top span{color:var(--muted);font-size:13px}
.dx-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}.dx-tabs button{border:1px solid var(--line);background:transparent;border-radius:6px;padding:6px 12px;cursor:pointer;color:inherit}
.dx-tabs button.on{border-color:currentColor;font-weight:600}.dx-tabs b{margin-left:4px}
.dx-list{display:flex;flex-direction:column;gap:6px}.dx-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.dx-pair{flex:1;min-width:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.dx-pair>div{overflow-wrap:anywhere}.dx-pair small{grid-column:1/-1;color:var(--muted)}
.dx-acts{display:flex;gap:6px;flex:none}.dx-h{margin:20px 0 6px}.dx-rules{margin-top:16px;font-size:13px;color:var(--muted)}
.dx-merge{margin:-2px 0 4px;padding:12px;border:1px dashed var(--line);border-radius:8px;display:flex;flex-direction:column;gap:8px;font-size:14px}.dx-keep{display:flex;gap:6px;align-items:center}.dx-pv{display:flex;flex-direction:column;gap:4px;line-height:1.4}.dx-merge .dx-acts{flex-wrap:wrap}
@media (max-width:640px){.dx-row{flex-wrap:wrap}.dx-pair{grid-template-columns:1fr;flex:1 1 100%;order:2}.dx-acts{margin-left:auto}.dx-top{flex-direction:column}}
.lg-pk{display:block;width:100%;margin-top:10px;padding:10px 12px;font-size:14px}
.trail{margin:6px 0 0;padding-left:20px}.trail li{margin:0 0 8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.au-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}.au-bar input,.au-bar select{min-height:36px}
.au-day{margin:18px 0 6px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.au-row{display:grid;grid-template-columns:72px 92px 1fr auto;gap:10px;align-items:start;padding:8px 0;border-bottom:1px solid var(--line)}
.au-row.bad{background:var(--critbg)}.au-t{font-variant-numeric:tabular-nums;color:var(--muted)}.au-ch{margin:4px 0 10px 174px;width:auto}
@media (max-width:700px){.au-row{grid-template-columns:76px 1fr}.au-t{white-space:nowrap}.au-row>div:nth-child(3){grid-column:1/-1}.au-ch{margin-left:0}}

/* Grow at RAMCON (grow-ui.js) */
.gr-dots{display:inline-flex;gap:3px;vertical-align:middle}.gr-dots i{width:9px;height:14px;border-radius:3px;background:var(--line)}.gr-dots i.on{background:#0b7a3b}
.gr-ask{padding:12px 0;border-bottom:1px solid var(--line)}.gr-ask:last-child{border-bottom:0}
.gr-ans{margin:8px 0 0;padding:8px 12px;border-left:3px solid #0b7a3b;background:rgba(11,122,59,.06);white-space:pre-wrap}
.gr-form{display:grid;gap:6px;margin-top:8px;max-width:760px}.gr-form textarea{width:100%;font:inherit}.gr-form .btn{justify-self:start}
.gr-cat{margin:6px 0;padding:6px 0;border-bottom:1px solid var(--line)}.gr-cat summary{cursor:pointer;padding:6px 0}
/* Data dump (datadump-ui.js) */
.dd-in{display:grid;gap:8px;max-width:980px;margin-bottom:14px}.dd-in textarea{width:100%;font:inherit;min-height:160px}
.dd-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dd-row input[type=text]{flex:1;min-width:240px}.dd-row .btn{margin:0;width:auto}
.dd-file{cursor:pointer}.dd-prop{max-width:980px}.dd-job{padding:10px 0;border-top:1px solid var(--line)}
.dd-item{display:flex;gap:10px;align-items:flex-start;padding:6px 0;text-transform:none;letter-spacing:normal;font-weight:400;font-size:14px}.dd-item input{margin-top:3px}
.dd-item small{display:block;color:var(--ink-3);margin-top:2px}.dd-done{opacity:.6}
.dd-hist{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}.dd-hist:hover{background:var(--hover)}
/* Sold analysis (soldbrief-ui.js) */
.sb-chip{display:inline-block;min-width:58px;text-align:center;padding:2px 8px;border-radius:10px;font:700 11px var(--f-disp);letter-spacing:.08em;text-transform:uppercase}
.sb-green{background:var(--good-a);color:var(--good)}.sb-yellow{background:var(--warn-a);color:var(--warn)}.sb-red{background:var(--crit-a);color:var(--crit)}.sb-none{background:var(--hover);color:var(--ink-2)}
.sb-head{padding:14px 16px;border-radius:12px;border-left:6px solid var(--line-2);background:var(--surface);margin-bottom:8px}.sb-head.sb-green{border-left-color:var(--good)}.sb-head.sb-yellow{border-left-color:var(--warn)}.sb-head.sb-red{border-left-color:var(--crit)}
.sb-head b{font-size:17px}.sb-hl{font:700 20px/1.2 var(--f-disp);margin:6px 0}.sb-detail{max-width:1100px;margin-bottom:18px}
.sb-row{display:flex;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);cursor:pointer}.sb-row:hover{background:var(--hover)}.sb-row small{display:block;color:var(--ink-3)}
/* Weekly files + Controller (weekfiles-ui.js) */
.wf-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 12px}.wf-bar input{flex:1;min-width:220px}.wf-up{margin:0;width:auto;cursor:pointer;min-height:36px;padding:0 14px}
.wf-kind{padding:10px 0;border-top:1px solid var(--line)}.wf-kh{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.wf-kh .wf-up{margin-left:auto}
.wf-file{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;padding:5px 0 0 14px}.wf-none{padding:4px 0 0 14px}
.wf-mail{margin-top:16px;max-width:820px}.wf-mail label{display:block;margin-top:10px}.wf-mail input,.wf-mail textarea{width:100%;font:inherit}
/* The Build Room (agentboard-ui.js) — a dark mission-control band on top in both themes; the rest follows the theme */
.br{--br-ink:#f4f5ff;--br-ink2:rgba(232,236,255,.72);display:flex;flex-direction:column;gap:16px}
.br-hero{position:relative;overflow:hidden;border-radius:14px;padding:26px 26px 20px;color:var(--br-ink)}
.br-hero{background:radial-gradient(1200px 400px at 85% -20%,rgba(120,140,255,.35),transparent 60%),radial-gradient(700px 300px at 0% 120%,rgba(224,138,99,.28),transparent 60%),linear-gradient(135deg,#050733,#0d1170 55%,#170a3e)}
.br-hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.55) 1px,transparent 1px);background-size:38px 38px;opacity:.08;pointer-events:none}
.br-hero h2{font-family:var(--f-disp);font-size:clamp(28px,4vw,42px);letter-spacing:.01em;margin:4px 0 6px;color:var(--br-ink)}
.br-hero p{margin:0;color:var(--br-ink2);max-width:640px}.br-kick{font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:#b8c6ff}
.br-off{color:#ffd28a}.br-crew{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:20px}
.br-mem{position:relative;display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(6px)}
.br-mem b{display:block;color:var(--br-ink)}.br-mem small{display:block;color:var(--br-ink2);font-size:12px}.br-mem-s{margin-top:2px}
.br-wait{position:absolute;top:8px;right:10px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#f0766b;color:#fff;font:600 12px/22px var(--f-num);text-align:center}
.br-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#63e3a0;margin-right:5px;box-shadow:0 0 8px #63e3a0}
.br-av{--s:38px;position:relative;flex:none;display:inline-grid;place-items:center;width:var(--s);height:var(--s);border-radius:50%;font:700 calc(var(--s)*.36) var(--f-disp);color:#0b0b14;background:var(--c);box-shadow:0 0 0 2px rgba(255,255,255,.18),0 0 18px -4px var(--c)}
.br-av.human{background:transparent;color:var(--c);border:2px solid var(--c);box-shadow:none}.br-main .br-av.human,.br-hist .br-av.human{color:var(--ink);border-color:var(--ink-2)}
.br-av.live::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--c);animation:brPulse 2.2s var(--ease) infinite}
@keyframes brPulse{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.35);opacity:0}}
@media (prefers-reduced-motion:reduce){.br-av.live::after{animation:none;opacity:.6}}
.br-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.br-kpi{padding:14px 16px;border-radius:12px;background:var(--bg-2);border:1px solid var(--line)}.br-kpi b{display:block;font:600 30px/1.1 var(--f-num);color:var(--ink)}
.br-kpi span{color:var(--ink-2);font-size:13px}.br-kpi.hot{border-color:var(--crit);background:var(--crit-a)}.br-kpi.hot b{color:var(--crit)}
.br-two{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:12px}.br-card{padding:14px 16px;border-radius:12px;background:var(--bg-2);border:1px solid var(--line);min-width:0}
.br-card h3{margin:0 0 10px;font-size:13px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-2)}
.br-heatsvg,.br-relsvg{width:100%;height:auto;display:block}.br-relsvg{max-height:110px}.br-svgl{font:11px var(--f-ui);fill:var(--ink-2)}.br-svgn{font:700 13px var(--f-num);fill:var(--ink)}
.br-legend{display:flex;gap:16px;font-size:12px;color:var(--ink-2);margin-top:6px}.br-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-sizing:border-box}
.br-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line)}.br-tab{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;color:var(--ink-2);font:600 14px var(--f-ui);cursor:pointer}
.br-tab.on{color:var(--ink);border-bottom-color:var(--accent)}.br-tab span{margin-left:7px;padding:1px 7px;border-radius:9px;background:var(--accent-a);color:var(--accent);font-size:12px}
.br-main{display:grid;grid-template-columns:minmax(260px,2fr) minmax(0,3fr);gap:12px;align-items:start}
.br-list,.br-thread{border-radius:12px;background:var(--bg-2);border:1px solid var(--line);min-width:0}.br-list{max-height:78vh;overflow:auto}
.br-listh{position:sticky;top:0;z-index:1;display:flex;gap:6px;align-items:center;padding:10px;background:var(--bg-2);border-bottom:1px solid var(--line)}.br-listh .btn{margin-left:auto}
.br-f{background:none;border:1px solid var(--line-2);border-radius:14px;padding:3px 11px;color:var(--ink-2);cursor:pointer;font-size:13px}.br-f.on{background:var(--accent-a);color:var(--accent);border-color:var(--accent)}
.br-row{display:flex;gap:10px;padding:11px 12px;border-bottom:1px solid var(--line);cursor:pointer}.br-row:hover{background:var(--hover)}.br-row.on{background:var(--accent-a);box-shadow:inset 3px 0 0 var(--accent)}
.br-row-m{min-width:0;flex:1}.br-row-t{display:flex;gap:8px;align-items:center;justify-content:space-between}.br-row-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.br-row small{display:block;color:var(--ink-2);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.br-row-s{color:var(--ink-3)!important}
.br-st{flex:none;padding:1px 8px;border-radius:9px;font-size:11.5px;font-weight:600}.br-st-open{background:var(--warn-a);color:var(--warn)}.br-st-answered{background:var(--data-a);color:var(--data)}.br-st-done{background:var(--good-a);color:var(--good)}
.br-th{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line)}.br-th b{font-size:17px}.br-th small{display:block;margin-top:3px}
.br-th-b{display:flex;gap:6px}.br-posts{display:flex;flex-direction:column;gap:14px;padding:16px;max-height:60vh;overflow:auto}
.br-post{display:flex;gap:10px;align-items:flex-start}.br-post.mine{flex-direction:row-reverse}
.br-bub{max-width:min(680px,88%);padding:10px 13px;border-radius:4px 14px 14px 14px;background:var(--bg-3);border:1px solid var(--line);border-left:3px solid var(--c)}
.br-post.mine .br-bub{border-radius:14px 4px 14px 14px;border-left:1px solid var(--line);border-right:3px solid var(--accent);background:var(--accent-a)}
.br-bh{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:4px}.br-arrow{font-size:12.5px;color:var(--ink-2)}
.br-tx{line-height:1.5;overflow-wrap:anywhere}.br-tx code{padding:1px 5px;border-radius:4px;background:var(--bg-inset);font-size:.92em}.br-li{display:block;padding-left:14px;text-indent:-10px}.br-li::before{content:"• ";color:var(--c)}
.br-comp{padding:12px 16px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.br-comp input,.br-comp textarea{width:100%;font:inherit}
.br-to{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.br-chip{border:1px solid var(--line-2);background:none;color:var(--ink-2);border-radius:14px;padding:3px 10px;font-size:12.5px;cursor:pointer}
.br-chip.on{background:var(--c);border-color:var(--c);color:#0b0b14;font-weight:600}.br-comp-b{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.br-idle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:280px;color:var(--ink-2);text-align:center;padding:24px}.br-empty{padding:16px}
.br-hist{display:flex;flex-direction:column;gap:12px;max-width:920px}.br-day{display:flex;align-items:center;gap:12px;margin-top:8px;color:var(--ink-2);font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase}
.br-day::before,.br-day::after{content:"";flex:1;height:1px;background:var(--line)}
.br-h{display:flex;gap:12px;padding:12px 14px;border-radius:12px;background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--c)}.br-h-m{min-width:0;flex:1}
.br-h-t{font-weight:600;margin:2px 0 6px}.br-more{background:none;border:0;color:var(--accent);cursor:pointer;padding:6px 0 0;font:inherit}
@media (max-width:900px){.br-two,.br-main{grid-template-columns:1fr}.br-hero{padding:20px 16px}.br-list{max-height:none}.br-posts{max-height:none}}
.br .btn.br-go{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}
.br-mem.quiet{opacity:.62}
@media (max-width:600px){.br-crew{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.br-mem{flex:0 0 205px;scroll-snap-align:start}.br-listh{position:static}.br-kpi b{font-size:24px}}
/* The Connects Brain (brain-ui.js) — always a night sky, in both themes */
.bn{display:flex;flex-direction:column;gap:12px}.bn-top{display:flex;gap:16px;justify-content:space-between;align-items:flex-end;flex-wrap:wrap}
.bn-top h3{margin:0;font-family:var(--f-disp);font-size:26px;letter-spacing:.02em}.bn-top p{margin:4px 0 0;color:var(--ink-2);max-width:720px}
.bn-stat{display:flex;gap:14px;flex-wrap:wrap}.bn-stat span{font-size:12.5px;color:var(--ink-2)}.bn-stat b{display:block;font:600 22px/1.1 var(--f-num);color:var(--ink)}
.bn-flows{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.bn-fl{font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-2);margin-right:4px}
.bn-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);cursor:pointer;font:500 13px var(--f-ui)}
.bn-chip small{font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}.bn-chip.on{border-color:#ffd28a;box-shadow:0 0 0 1px #ffd28a,0 0 18px -4px #ffd28a}
.bn-chip.sm{flex-direction:row;align-items:center;gap:6px;padding:4px 10px;font-size:12px;border-radius:14px}.bn-chip.sm i{width:9px;height:9px;border-radius:50%;background:var(--c)}.bn-chip.sm small{text-transform:none;letter-spacing:0}
.bn-chip.sm.on{border-color:var(--c);box-shadow:0 0 0 1px var(--c)}
.bn-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px}
.bn-stage{position:relative;height:min(72vh,760px);min-height:420px;border-radius:14px;overflow:hidden;background:#03041f;border:1px solid rgba(160,175,255,.18);box-shadow:inset 0 0 80px rgba(80,100,255,.12)}
.bn-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.bn-tip{position:absolute;z-index:3;max-width:240px;padding:8px 10px;border-radius:8px;background:rgba(10,14,60,.94);border:1px solid rgba(160,175,255,.3);color:#eef1ff;font-size:12px;pointer-events:none}
.bn-tip b{display:block;font-size:13px}.bn-tip span{display:block;color:#c8d0f5;margin:3px 0}.bn-tip small{color:#ffd28a}
.bn-ctl{position:absolute;top:10px;right:10px;display:flex;gap:6px;z-index:2}.bn-ctl input{width:160px;padding:6px 10px;border-radius:8px;border:1px solid rgba(160,175,255,.3);background:rgba(10,14,60,.85);color:#eef1ff}
.bn-ctl button{min-width:34px;padding:6px 10px;border-radius:8px;border:1px solid rgba(160,175,255,.3);background:rgba(10,14,60,.85);color:#eef1ff;cursor:pointer;font:600 13px var(--f-ui)}
.bn-story{position:absolute;left:12px;bottom:12px;z-index:2;width:min(420px,calc(100% - 24px));padding:12px 14px;border-radius:12px;background:rgba(8,12,56,.92);border:1px solid #ffd28a;color:#eef1ff;box-shadow:0 0 30px -8px #ffd28a}
.bn-sh{display:flex;justify-content:space-between;gap:8px}.bn-sh span{color:#ffd28a;font:600 12px var(--f-num)}
.bn-dots{display:flex;gap:4px;margin:8px 0}.bn-dots i{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.18)}.bn-dots i.past{background:rgba(255,210,138,.55)}.bn-dots i.on{background:#ffd28a}
.bn-step p{margin:6px 0 0;line-height:1.45}.bn-part{display:inline-block;padding:2px 9px;border-radius:10px;background:var(--c);color:#0b0b14;font:700 12px var(--f-ui)}
.bn-sb{display:flex;gap:6px;margin-top:10px}.bn-sb button{padding:5px 12px;border-radius:8px;border:1px solid rgba(255,210,138,.5);background:none;color:#ffd28a;cursor:pointer;font:600 12px var(--f-ui)}
.bn-side{border-radius:14px;background:var(--bg-2);border:1px solid var(--line);padding:14px;max-height:min(72vh,760px);overflow:auto;min-width:0}
.bn-side h4{margin:0 0 4px;display:flex;align-items:center;gap:8px}.bn-side h5{margin:12px 0 6px;font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-2)}
.bn-live{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.bn-live.on{background:#63e3a0;box-shadow:0 0 8px #63e3a0}
.bn-feed{display:flex;flex-direction:column;gap:2px}.bn-feed button,.bn-feed div{display:grid;grid-template-columns:58px 10px 1fr;gap:6px;align-items:baseline;text-align:left;padding:5px 4px;border:0;background:none;color:var(--ink);font-size:12.5px;cursor:pointer;border-radius:6px}
.bn-feed div{grid-template-columns:58px 1fr;cursor:default}.bn-feed button:hover{background:var(--hover)}.bn-feed time{color:var(--ink-3);font:12px var(--f-num)}.bn-feed i{width:8px;height:8px;border-radius:50%}
.bn-feed span{grid-column:3;color:var(--ink-2);font-size:11.5px}.bn-feed div span{grid-column:2}
.bn-ph{display:flex;gap:10px;align-items:center}.bn-ph>i{width:14px;height:14px;border-radius:50%;flex:none}.bn-ph b{display:block;font-size:16px}.bn-ph small{color:var(--ink-2)}
.bn-x{margin-left:auto;background:none;border:0;color:var(--ink-2);font-size:22px;cursor:pointer}
.bn-kv{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}.bn-kv span{padding:8px;border-radius:8px;background:var(--bg-3);font-size:11.5px;color:var(--ink-2)}.bn-kv b{display:block;font:600 16px var(--f-num);color:var(--ink)}
.bn-chips{display:flex;gap:5px;flex-wrap:wrap}.bn-mini{padding:3px 9px;border-radius:10px;border:1px solid var(--c);background:none;color:var(--ink);font-size:12px;cursor:pointer}
.bn-legend{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:900px){.bn-wrap{grid-template-columns:1fr}.bn-stage{height:62vh;min-height:360px}.bn-side{max-height:none}.bn-ctl input{width:110px}}
/* Work tab (workq-ui.js) and bring-your-bot */
.wq{display:flex;flex-direction:column;gap:12px}.wq-ask textarea,.wq-ask input{width:100%;font:inherit}.wq-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}.wq-row input{flex:1;min-width:200px}
.wq-depth{display:inline-flex;border:1px solid var(--line-2);border-radius:10px;overflow:hidden}.wq-depth button{padding:6px 14px;border:0;background:none;color:var(--ink-2);cursor:pointer;font:600 13px var(--f-ui)}
.wq-depth button.on{background:var(--accent);color:var(--accent-ink)}.wq-row .br-go{margin-left:auto}
.wq-stats{display:flex;gap:10px;flex-wrap:wrap}.wq-stats span{padding:10px 14px;border-radius:10px;background:var(--bg-2);border:1px solid var(--line);color:var(--ink-2);font-size:12.5px}.wq-stats b{display:block;font:600 22px var(--f-num);color:var(--ink)}
.wq-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.6fr);gap:10px;align-items:start}
.wq-col{border-radius:12px;background:var(--bg-inset);padding:8px;min-height:120px;display:flex;flex-direction:column;gap:6px}.wq-col h4{margin:2px 4px 4px;font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-2)}
.wq-col h4 span{margin-left:6px;color:var(--ink)}
.wq-card{display:flex;flex-direction:column;gap:3px;text-align:left;padding:10px;border-radius:10px;border:1px solid var(--line);border-left:3px solid var(--c);background:var(--bg-2);color:var(--ink);cursor:pointer;font:inherit}
.wq-card.on{box-shadow:0 0 0 1px var(--accent)}.wq-card small{color:var(--ink-2);font-size:11.5px}
.wq-k{display:inline-block;padding:1px 7px;border-radius:8px;font-size:11px;font-weight:600;background:var(--accent-a);color:var(--accent)}.wq-k-research{background:var(--data-a);color:var(--data)}.wq-k-review{background:var(--warn-a);color:var(--warn)}
.wq-k-test{background:var(--good-a);color:var(--good)}.wq-deep{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:8px;font-size:11px;font-weight:600;background:rgba(255,210,138,.15);color:#c9932c}.wq-help{font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;margin-left:4px;border:1px solid var(--gold);color:var(--gold);border-radius:6px}
.wq-run,.wq-working{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--good)}.wq-run i,.wq-working i{width:8px;height:8px;border-radius:50%;background:var(--good);animation:brPulse 1.4s infinite}
.wq-detail{border-radius:12px;background:var(--bg-2);border:1px solid var(--line);padding:14px;min-width:0}.wq-idle{color:var(--ink-2);min-height:160px;display:grid;place-items:center;text-align:center}
.wq-dh{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap}.wq-dh small{display:block;margin-top:3px}.wq-act{display:flex;gap:6px;flex-wrap:wrap}
.wq-detail h5{margin:14px 0 6px;font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-2)}.wq-result{padding:10px 12px;border-radius:8px;background:var(--bg-3)}
.wq-files{display:grid;grid-template-columns:1fr auto;gap:4px 10px}.wq-files small{color:var(--ink-3)}.wq-attach{margin-top:8px;width:auto}
.br-add{cursor:pointer;text-align:left;border-style:dashed!important;font:inherit}.br-plus{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:2px dashed rgba(255,255,255,.5);color:#fff;font-size:24px;flex:none}
.br-add b,.br-add small{color:var(--br-ink)}.br-bot{box-shadow:inset 0 0 0 1px rgba(255,210,138,.25)}
.br-bots{display:flex;flex-direction:column;gap:12px}.br-botform{display:flex;gap:8px;flex-wrap:wrap}.br-botform input{flex:1;min-width:200px}
.br-key{border-color:#ffd28a}.br-key pre{white-space:pre-wrap;word-break:break-all;padding:10px;border-radius:8px;background:var(--bg-inset);font-size:12px}.br-off-row{opacity:.5}
@media (max-width:1100px){.wq-board{grid-template-columns:repeat(3,minmax(0,1fr))}.wq-detail{grid-column:1/-1}}
@media (max-width:700px){.wq-board{grid-template-columns:1fr}}
.br-tabs{flex-wrap:wrap;row-gap:2px}@media (max-width:600px){.br-tab{padding:8px 10px;font-size:13px}}
/* Build Room ▸ Team (Kyle 10/12) */
.tm{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.tm-sum{display:flex;gap:10px;flex-wrap:wrap}
.tm-sum span{display:flex;flex-direction:column;padding:10px 14px;border:1px solid var(--line);border-radius:12px;min-width:110px;font-size:12px;color:var(--ink-2)}
.tm-sum b{font-size:22px;color:var(--ink)}
.tm-sum .ok b{color:#3fc58a}.tm-sum .star b{color:#ffd28a}.tm-sum .hold b{color:#9aa0b4}.tm-sum .bad b{color:#ef6f62}
.tm-g{margin:10px 0 0;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.tm-g span{margin-left:6px;opacity:.7}
.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.tm-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--line);border-left:4px solid var(--c);border-radius:14px;background:var(--bg-2)}
.tm-card header{display:flex;align-items:center;gap:10px}
.tm-card header div{flex:1;min-width:0}
.tm-card header b{display:block;font-size:16px}
.tm-card header small{color:var(--ink-2);font-size:12px}
.tm-av{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--c);color:#111;font-weight:700}
.tm-st{padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}
.tm-st-ok{background:rgba(63,197,138,.16);color:#3fc58a}.tm-st-warn{background:color-mix(in srgb,var(--gold) 16%,transparent);color:var(--gold)}
.tm-st-hold{background:rgba(154,160,180,.18);color:#9aa0b4}.tm-st-star{background:rgba(255,210,138,.2);color:#ffd28a}
.tm-st-bad{background:rgba(239,111,98,.18);color:#ef6f62}
.tm-role{margin:0;font-weight:600}
.tm-why{margin:0;font-size:13px;color:var(--ink-2)}
.tm-doing{margin:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.tm-doing small{color:var(--ink-2);text-transform:uppercase;font-size:10px;letter-spacing:.06em;margin-right:4px}
.tm-jobs{margin:2px 0;padding-left:18px;font-size:13px}
.tm-nums{display:flex;gap:8px;flex-wrap:wrap}
.tm-nums span{display:flex;flex-direction:column;font-size:11px;color:var(--ink-2);min-width:64px}
.tm-nums b{font-size:16px;color:var(--ink)}
.tm-smart{font-size:12px;padding:6px 8px;border-radius:8px;background:rgba(255,210,138,.08)}
.tm-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:auto}
.tm-card footer small{color:var(--ink-2);font-size:12px}
.tm-ctl{display:flex;gap:6px;flex-wrap:wrap}.tm-rm{color:#ef6f62}
.tm-edit{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding-top:6px;border-top:1px dashed var(--line)}
.tm-edit input{flex:1;min-width:160px}
.tm-off summary{cursor:pointer;color:var(--ink-2)}
.tm-offrow{padding:8px 0;border-bottom:1px solid var(--line)}.tm-offrow p{margin:4px 0;font-size:13px;color:var(--ink-2)}
/* Admin ▸ Overview (Kyle 10/12) */
.ah-g{margin:18px 0 8px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.ah-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.ah-tile{position:relative;display:flex;flex-direction:column;gap:8px;text-align:left;padding:14px 14px 12px 30px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);color:var(--ink);font:inherit}
.ah-main{display:flex;flex-direction:column;gap:6px;text-align:left;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.ah-main[disabled]{cursor:default}
.ah-warn{border-color:color-mix(in srgb,var(--gold) 45%,transparent)}.ah-bad{border-color:rgba(239,111,98,.6)}
.ah-snoozed .ah-light{background:#9aa0b4;box-shadow:0 0 0 3px rgba(154,160,180,.25)}
/* the way back to green (Kyle 10/12) */
.ah-fix{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px dashed var(--line)}
.ah-fix-h{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.ah-r{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px}
.ah-r>span{flex:1 1 100%}.ah-r.bad>span{color:#ef6f62}.ah-r.warn>span{color:var(--gold)}.ah-r.slept>span{color:var(--ink-2);text-decoration:line-through}
.ah-r i{flex:1 1 100%;font-style:normal;font-size:11.5px;color:var(--ink-2)}
.ah-go{padding:4px 9px;border:1px solid #3fc58a;border-radius:8px;background:rgba(63,197,138,.1);color:#3fc58a;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.ah-sz{padding:4px 9px;border:1px solid var(--line-2);border-radius:8px;background:none;color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer}
.ah-crit{font-style:normal;font-size:11px;color:var(--ink-2)}
.ah-szf{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 100%}.ah-szf input{flex:1;min-width:120px;font:inherit;font-size:12px}.ah-szf em{flex:1 1 100%;color:#ef6f62;font-style:normal;font-size:12px}
.ah-tile:hover{border-color:var(--line-2)}.ah-warn:hover{border-color:var(--gold)}.ah-bad:hover{border-color:#ef6f62}
.ah-tile b{font-size:15px}
.ah-tile small{color:var(--ink-2);font-size:12px}
.ah-light{position:absolute;left:12px;top:18px;width:9px;height:9px;border-radius:50%;background:#9aa0b4}
.ah-ok .ah-light{background:#3fc58a}.ah-warn .ah-light{background:var(--gold)}.ah-bad .ah-light{background:#ef6f62;box-shadow:0 0 0 4px rgba(239,111,98,.18)}
.ah-load .ah-light{animation:ahp 1s infinite alternate}@keyframes ahp{to{opacity:.3}}
.ah-nums{display:flex;gap:12px;flex-wrap:wrap}
.ah-nums span{display:flex;flex-direction:column;font-size:11px;color:var(--ink-2)}
.ah-nums i{font-style:normal;font-size:18px;font-weight:700;color:var(--ink)}
@media (prefers-reduced-motion:reduce){.ah-load .ah-light{animation:none}}
/* Admin ▸ Company ▸ Decisions (Kyle 10/12) */
.dc{display:flex;flex-direction:column;gap:12px}
.dc-sum{display:flex;gap:10px;flex-wrap:wrap}
.dc-sum span{display:flex;flex-direction:column;padding:10px 14px;border:1px solid var(--line);border-radius:12px;min-width:100px;font-size:12px;color:var(--ink-2)}
.dc-sum b{font-size:22px;color:var(--ink)}.dc-sum .warn b{color:var(--gold)}
.dc-board{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:14px;align-items:start}
@media (max-width:900px){.dc-board{grid-template-columns:1fr}}
.dc-list{display:flex;flex-direction:column;gap:8px}.dc-list h4{margin:6px 0 0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.dc-card{display:flex;flex-direction:column;gap:4px;text-align:left;padding:12px;border:1px solid var(--line);border-left:4px solid #9aa0b4;border-radius:12px;background:var(--bg-2);color:var(--ink);font:inherit;cursor:pointer}
.dc-card.on{box-shadow:0 0 0 1px var(--accent)}.dc-card small{color:var(--ink-2)}.dc-card em{color:var(--gold);font-style:normal;font-weight:600}
.dc-open{border-left-color:#5b93f5}.dc-tie{border-left-color:var(--gold)}.dc-passed{border-left-color:#3fc58a}.dc-declined,.dc-withdrawn{border-left-color:#ef6f62;opacity:.8}
.dc-st{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.dc-dots{display:flex;gap:4px}.dc-dots i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-style:normal;font-size:10px;font-weight:700;border:1px dashed var(--line-2);color:var(--ink-2)}
.dc-dots i.on{background:#3fc58a;border:0;color:#08121a}
.dc-detail{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--bg-2)}
.dc-dh h3{margin:2px 0}.dc-why{margin:0;font-size:15px}.dc-ana{font-size:14px;line-height:1.5}.dc-num{display:block;margin:2px 0}
.dc-vote{display:flex;flex-direction:column;gap:12px;padding-top:10px;border-top:1px solid var(--line)}
.dc-q label{display:block;font-size:13px;margin-bottom:4px}.dc-main{padding:10px;border-radius:10px;background:var(--bg-inset)}
.dc-sl input[type=range]{width:100%;height:10px;border-radius:999px;-webkit-appearance:none;appearance:none;background:linear-gradient(90deg,#ef6f62,#9aa0b4 50%,#3fc58a)}
.dc-sl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:hsl(calc(var(--v,.5)*130) 70% 55%);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.dc-sl input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:hsl(calc(var(--v,.5)*130) 70% 55%);border:2px solid #fff}
.dc-ends{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--ink-2);margin-top:4px}.dc-ends b{color:var(--ink);text-align:center}
.dc-act{display:flex;gap:8px;flex-wrap:wrap}
.dc-rev td,.dc-rev th{font-size:13px}.dc-c{background:hsla(calc(var(--v)*130),70%,50%,.18)}
.dc-fable{padding:10px;border-radius:10px;border:1px solid #ffd28a}
.dc-form{display:flex;flex-direction:column;gap:8px}.dc-qrow{display:grid;grid-template-columns:2fr 1fr 1fr;gap:6px}
@media (max-width:600px){.dc-qrow{grid-template-columns:1fr}}

/* the build light (Kyle 10/12) */
.bl-chip{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:3px 10px;border:1px solid var(--line-2);border-radius:999px;background:none;color:inherit;font:600 11px var(--f-disp);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;vertical-align:1px}
.bl-chip i{width:9px;height:9px;border-radius:50%;background:#9aa0b4}.bl-green i{background:#3fc58a}.bl-yellow i,.bl-unknown i{background:var(--gold)}.bl-red i{background:#ef6f62;box-shadow:0 0 0 3px rgba(239,111,98,.25)}
.bl-chip.bl-red{border-color:#ef6f62;color:#ef6f62}.bl-chip.bl-yellow,.bl-chip.bl-unknown{border-color:var(--gold)}
.bl-panel{display:flex;flex-direction:column;gap:8px;margin:10px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
.bl-panel.bl-red{border-color:#ef6f62}.bl-panel.bl-yellow,.bl-panel.bl-unknown{border-color:color-mix(in srgb,var(--gold) 60%,transparent)}
.bl-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.bl-foot small{color:var(--ink-2)}.ah-sz.bl-red{border-color:#ef6f62;color:#ef6f62}
.wq-acc{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0;padding:8px 10px;border:1px dashed var(--line-2);border-radius:10px;font-size:13px;color:var(--ink-2)}

/* Build Room ▸ Operator IQ (Kyle 10/12) */
.oiq{display:flex;flex-direction:column;gap:12px}
.oiq-head{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:flex-start}.oiq-head h3{margin:0}
.oiq-cov{display:flex;flex-direction:column;min-width:180px;font-size:12px;color:var(--ink-2)}.oiq-cov b{font-size:24px;color:var(--ink)}
.oiq-cov i{display:block;height:6px;margin-top:6px;border-radius:3px;background:linear-gradient(90deg,#3fc58a var(--p),var(--line) var(--p))}
.oiq-key{display:flex;flex-wrap:wrap;gap:6px}
.oiq-r{font-size:11px;padding:2px 7px;border-radius:8px;border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap}
.oiq-L0{border-color:#9aa0b4}.oiq-L1{border-color:#73c7da;color:#73c7da}.oiq-L2{border-color:#3fc58a;color:#3fc58a}.oiq-L3,.oiq-L4,.oiq-L5{border-color:#b6a9f4;color:#b6a9f4}.oiq-unknown{border-style:dashed}
.oiq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.oiq-s{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--bg-2);display:flex;flex-direction:column;gap:8px}.oiq-s h4{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.oiq-t{display:flex;flex-direction:column;gap:4px;padding-top:6px;border-top:1px dashed var(--line)}.oiq-th{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.oiq-th b{font-size:13px}.oiq-th small{color:var(--ink-2);font-size:11px}
.oiq-ev{font-size:11.5px;color:var(--ink-2)}.oiq-gap{font-size:11.5px;color:var(--gold)}.oiq-msg{font-size:11.5px;color:var(--ink-2)}

/* Owner Questions ▸ Founder Series (preview) (Kyle 10/12) */
.fnd{display:flex;flex-direction:column;gap:12px}.fnd h4{margin:4px 0 0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.fnd-hero{padding:16px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 12%,transparent),transparent)}.fnd-hero h3{margin:0 0 4px;font-size:22px}
.fnd-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.fnd-c{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
.fnd-h{display:flex;flex-direction:column;font-size:13.5px}.fnd-h small{color:var(--ink-2);font-size:11px}
.fnd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.fnd-p{margin:0;display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg-2)}
.fnd-p img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.fnd-p figcaption{padding:0 8px;font-size:12px;color:var(--ink-2)}.fnd-p .ah-sz{margin:0 8px 8px}

/* the ask line (3.81) */
.al-line{display:grid;grid-template-columns:minmax(120px,190px) 1fr auto;gap:8px;align-items:center;margin:10px 0 4px}
.al-to,.al-in{font:14px var(--f-ui);padding:9px 10px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg-2,transparent);color:var(--ink);min-width:0}
.al-go{font:600 14px var(--f-ui);padding:9px 16px;border-radius:8px;border:0;background:var(--accent,#e08a63);color:#fff;cursor:pointer}.al-go[disabled]{opacity:.6}
.al-hint{grid-column:1/-1;font-size:12px;color:var(--ink-2)}.al-hint.al-warn{color:#d9a13b}
.al-msg{grid-column:1/-1;font-size:13px}.al-msg.ok{color:#3fc58a}.al-msg.bad{color:#e2574c}
.al-ks{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}.al-k{display:flex;flex-direction:column;min-width:96px;font-size:12px;color:var(--ink-2)}.al-k b{font-size:20px;color:var(--ink)}
.al-row{border-top:1px solid var(--line);padding:10px 0}.al-q{font-size:12px;color:var(--ink-2)}.al-qt{margin:4px 0;font-weight:600;overflow-wrap:anywhere}
.al-st{display:inline-block;margin-left:6px;font-size:11px;padding:1px 7px;border-radius:8px;border:1px solid var(--line-2)}
.al-answered{border-color:#3fc58a;color:#3fc58a}.al-unavailable,.al-queued{border-color:#d9a13b;color:#d9a13b}.al-failed,.al-gone{border-color:#e2574c;color:#e2574c}
.al-ans{margin:6px 0 0 10px;padding-left:10px;border-left:2px solid var(--line-2)}.al-src{font-size:12px;color:var(--ink-2);margin-bottom:4px}
.al-links{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;margin-top:4px}.al-links a{overflow-wrap:anywhere}
.al-rate{display:flex;gap:6px;margin-top:6px}.al-rate button{font-size:12px;padding:3px 9px;border-radius:12px;border:1px solid var(--line-2);background:none;color:var(--ink);cursor:pointer}.al-rate button.on{border-color:var(--ink)}
@media (max-width:600px){.al-line{grid-template-columns:1fr auto}.al-to{grid-column:1/-1}}

/* ready to publish (3.82) */
.rpub{border:1px solid var(--line-2);border-radius:12px;padding:14px;margin:0 0 14px;background:var(--card,transparent)}
.rpub-h{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:flex-start}.rpub-h h3{margin:2px 0 4px}.rpub-h small,.rpub-a small{color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;font-size:11px}
.rpub-h p{margin:0;font-size:13px;color:var(--ink-2)}.rpub-b{display:flex;gap:8px;flex-wrap:wrap}
.rpub-msg{margin-top:8px;font-size:13px}.rpub-msg.ok{color:#3fc58a}.rpub-msg.bad{color:#e2574c}
.rpub-l{display:grid;gap:12px;margin-top:12px}.rpub-a{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:start}
.rpub-a img{width:120px;height:90px;object-fit:cover;border-radius:8px}.rpub-a h4{margin:2px 0 4px}.rpub-a p{margin:0 0 6px;font-size:13px;overflow-wrap:anywhere}
.rpub-cap,.rpub-src{font-size:11px;color:var(--ink-2)}
@media (max-width:600px){.rpub-a{grid-template-columns:1fr}.rpub-a img{width:100%;height:auto;aspect-ratio:16/9}}

/* RAMCON at 25: the roof atlas (3.82) */
.atlas-open,.atlas-open body{overflow:hidden}
.atlas{position:fixed;inset:0;z-index:9000;background:#02030f;color:#f4f1ea;font-family:var(--f-ui);overflow:hidden}
.atlas .at-map{position:absolute;inset:0;background:#02030f}
.atlas .leaflet-container{background:#02030f}
.atlas-tiles{filter:invert(1) hue-rotate(195deg) brightness(.42) contrast(1.15) saturate(.35)}
.atlas .at-cv{position:absolute;inset:0;pointer-events:none;z-index:500}
.atlas .leaflet-control-attribution{background:rgba(2,3,15,.6);color:#8a8fb0;font-size:10px}.atlas .leaflet-control-attribution a{color:#aeb2cc}
.at-top{position:absolute;top:0;left:0;right:0;z-index:600;display:flex;gap:18px;justify-content:space-between;align-items:flex-start;padding:22px 26px;
  background:linear-gradient(180deg,rgba(2,3,15,.88),rgba(2,3,15,0));pointer-events:none}
.at-top>*{pointer-events:auto}
.at-brand small{letter-spacing:.32em;text-transform:uppercase;font-size:11px;color:var(--gold)}
.at-year{text-transform:none;font:800 clamp(56px,11vw,132px)/.95 var(--f-ui);letter-spacing:-.03em;color:#fff;text-shadow:0 0 38px rgba(255,170,64,.55);font-variant-numeric:tabular-nums}
.at-cap{margin-top:8px;max-width:620px;font-size:15px;color:#e6e1d6;min-height:22px}.at-cap b{color:var(--gold)}
.at-ks{display:flex;gap:26px;margin-left:auto;text-align:right}
.at-k b{display:block;font:700 clamp(22px,3vw,36px)/1.05 var(--f-ui);font-variant-numeric:tabular-nums;color:#fff}
.at-k span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#aeb2cc}.at-k i{display:block;font-style:normal;font-size:12px;color:var(--gold);margin-top:2px}
.at-x{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;width:40px;height:40px;border-radius:50%;font-size:24px;line-height:1;cursor:pointer}
.at-bar{position:absolute;left:0;right:0;bottom:0;z-index:600;display:flex;align-items:flex-end;gap:12px;padding:16px 22px 22px;background:linear-gradient(0deg,rgba(2,3,15,.9),rgba(2,3,15,0))}
.at-pp,.at-sp{flex:none;width:48px;height:48px;border-radius:50%;border:0;background:var(--gold);color:#1b1206;font:700 16px var(--f-ui);cursor:pointer}
.at-sp{background:rgba(255,255,255,.1);color:#fff;font-size:13px}
.at-yrs{flex:1;display:flex;align-items:flex-end;gap:3px;min-width:0;overflow-x:auto;scrollbar-width:none}
.at-yr{flex:1;min-width:18px;background:none;border:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;color:#8a8fb0}
.at-yr i{display:block;width:100%;max-width:26px;border-radius:3px 3px 0 0;background:color-mix(in srgb,var(--gold) 22%,transparent)}
.at-yr.done i{background:color-mix(in srgb,var(--gold) 65%,transparent)}.at-yr.on i{background:var(--gold);box-shadow:0 0 14px color-mix(in srgb,var(--gold) 80%,transparent)}
.at-yr span{font-size:10px;font-variant-numeric:tabular-nums}.at-yr.on span{color:#fff;font-weight:700}
.at-tip{position:fixed;z-index:700;background:rgba(10,12,40,.94);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);border-radius:10px;padding:8px 12px;max-width:250px;pointer-events:none}
.at-tip b{display:block;font-size:13px}.at-tip span{font-size:12px;color:#aeb2cc}
.at-fin{position:absolute;inset:0;z-index:650;display:grid;place-items:center;background:radial-gradient(ellipse at center,rgba(2,3,15,.55),rgba(2,3,15,.9));animation:atfade 1.6s ease both}
.at-fin[hidden]{display:none}
.at-fin-c{max-width:640px;padding:28px;text-align:center}
.at-fin-c small{letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-size:12px}
.at-fin-c h2{text-transform:none;letter-spacing:-.02em;font:800 clamp(54px,10vw,110px)/1 var(--f-ui);margin:10px 0 14px;color:#fff;text-shadow:0 0 40px rgba(255,170,64,.5)}
.at-fin-c p{color:#e6e1d6;font-size:16px;margin:8px 0}.at-big{font-size:clamp(16px,2.4vw,22px)!important;color:#fff!important}
.at-live{color:#63d696;font-size:1.2em}.at-fine{font-size:13px!important;color:#aeb2cc!important}
.at-found{margin-top:22px!important;font-size:17px!important;line-height:1.5}
.at-fin-b{display:flex;gap:10px;justify-content:center;margin-top:22px;flex-wrap:wrap}
.at-fin-b button{border:0;border-radius:24px;padding:11px 20px;font:700 14px var(--f-ui);background:var(--gold);color:#1b1206;cursor:pointer}.at-fin-b button.sec{background:rgba(255,255,255,.12);color:#fff}
.atlas.lobby .at-x,.atlas.lobby .at-sp{opacity:.25}
.atlas.quiet .at-bar,.atlas.quiet .at-x{opacity:0;transition:opacity .8s}
@keyframes atfade{from{opacity:0}to{opacity:1}}
@media (max-width:700px){.at-top{flex-wrap:wrap;padding:14px 16px}.at-ks{width:100%;margin:0;justify-content:space-between;text-align:left;gap:10px;order:3}.at-x{position:absolute;top:14px;right:14px}
  .at-cap{font-size:13px}.at-bar{padding:10px 12px 16px;gap:8px}.at-yr{min-width:14px}.at-yr span{font-size:9px}}
@media (prefers-reduced-motion:reduce){.at-fin{animation:none}}
.at-ban{display:flex;align-items:center;gap:14px;width:100%;margin:0 0 14px;padding:12px 16px;border-radius:14px;border:1px solid color-mix(in srgb,var(--gold) 45%,transparent);cursor:pointer;text-align:left;
  background:radial-gradient(circle at 12% 50%,color-mix(in srgb,var(--gold) 25%,transparent),transparent 55%),linear-gradient(90deg,#06072a,#0b1650);color:#fff;font-family:var(--f-ui)}
.at-ban-25{font:800 34px/1 var(--f-ui);color:var(--gold);text-shadow:0 0 18px rgba(255,170,64,.7)}
.at-ban b{display:block;font-size:16px}.at-ban small{display:block;color:#cdd0e6;font-size:13px}.at-ban-go{margin-left:auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#1b1206;font-size:14px}

/* Daily Squares (3.82) */
.sq{border:1px solid color-mix(in srgb,var(--gold) 35%,transparent);border-radius:14px;padding:14px 16px;margin:0 0 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 10%,transparent),transparent 60%),var(--bg-2)}
.sq-h{display:flex;align-items:center;gap:8px}.sq-h small{margin-left:auto;color:var(--ink-2);font-size:12px}
.sq-logo{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--gold);color:#1b1206;font-size:15px}
.sq-q{margin:10px 0;font-size:16px;font-weight:600;color:var(--ink)}
.sq-os{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sq-o{padding:10px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink);font:600 14px var(--f-ui);cursor:pointer;text-align:left}
.sq-o:hover:not([disabled]){border-color:var(--gold)}.sq-o[disabled]{cursor:default}
.sq-o.right{border-color:#3fc58a;background:rgba(63,197,138,.15)}.sq-o.wrong{border-color:#e2574c;background:rgba(226,87,76,.12)}.sq-o.off{opacity:.55}
.sq-res{margin-top:10px;font-size:14px;color:var(--ink)}.sq-res.ok b{color:#3fc58a}.sq-res.no b{color:var(--gold)}
.sq-res small,.sq-hint{display:block;margin-top:6px;color:var(--ink-2);font-size:12px}.sq-err{color:#e2574c;font-size:12px;margin-top:6px}
@media (max-width:480px){.sq-os{grid-template-columns:1fr}}

/* Decisions & Research (3.83) */
.dr-top{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-start}.dr-top h3{margin:0}
.dr-n{display:flex;gap:10px;font-size:13px;color:var(--ink-2)}.dr-nred{color:#e2574c;font-weight:700}
.dr-msg{margin:8px 0;font-size:13px}.dr-msg.ok{color:#3fc58a}.dr-msg.bad{color:#e2574c}
.dr-c{border:1px solid var(--line-2);border-left:4px solid var(--line-2);border-radius:10px;margin:10px 0;background:var(--bg-2)}
.dr-c.dr-s-red{border-left-color:#e2574c}.dr-c.dr-s-amber{border-left-color:#e2aa52}.dr-c.dr-s-info{border-left-color:#73c7da}.dr-c.dr-sn{opacity:.75}
.dr-hd{display:flex;gap:10px;align-items:flex-start;width:100%;padding:12px;background:none;border:0;color:var(--ink);text-align:left;cursor:pointer;font-family:var(--f-ui)}
.dr-sev{font-size:16px;line-height:1.3}.dr-s-red .dr-sev{color:#e2574c}.dr-s-amber .dr-sev{color:#e2aa52}
.dr-t small{display:block;font-size:11px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}.dr-t b{font-size:15px}
.dr-b{padding:0 14px 14px 38px;font-size:14px;color:var(--ink);font-weight:400}.dr-b h5{margin:12px 0 4px;font-size:12px;text-transform:uppercase;color:var(--ink-2)}.dr-b ul{margin:0;padding-left:18px}
.dr-meta{font-size:12px;color:var(--ink-2)}.dr-w{white-space:pre-wrap;max-height:320px;overflow:auto;border-left:2px solid var(--line-2);padding-left:10px}
.dr-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.dr-hist{margin-top:8px;font-size:12px;color:var(--ink-2)}
.dr-f{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:10px;padding:10px;border:1px dashed var(--line-2);border-radius:8px}
.dr-f label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-2);min-width:160px;flex:1}.dr-f details{flex-basis:100%}
.dr-f input,.dr-f select,.dr-f textarea{font:14px var(--f-ui);padding:7px 8px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink)}
@media (max-width:600px){.dr-b{padding-left:14px}}
.sq-otd{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line-2);font-size:13px;color:var(--ink-2);display:flex;flex-direction:column;gap:3px}.sq-otd b{color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.at-mode{display:flex;gap:6px;margin-top:10px}.at-mode button{border:1px solid color-mix(in srgb,var(--gold) 45%,transparent);background:rgba(2,3,15,.5);color:#f4f1ea;border-radius:16px;padding:5px 12px;font:600 12px var(--f-ui);cursor:pointer}.at-mode button.on{background:var(--gold);color:#1b1206}

/* owner directives (3.84) */
.od-f{display:flex;flex-direction:column;gap:8px;margin:10px 0 14px;padding:12px;border:1px dashed var(--line-2);border-radius:10px}
.od-f label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-2)}
.od-f textarea,.od-f input,.od-f select{font:14px var(--f-ui);padding:7px 8px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink)}
.od-areas{display:flex;flex-wrap:wrap;gap:6px}.od-ar{border:1px solid var(--line-2);background:none;color:var(--ink);border-radius:14px;padding:4px 10px;font:600 12px var(--f-ui);cursor:pointer}.od-ar.on{background:var(--ink);color:var(--bg)}
.od-r{border-top:1px solid var(--line);padding:10px 0}.od-r p{margin:4px 0;font-size:15px;color:var(--ink)}.od-r small{color:var(--ink-2);font-size:12px}
.od-h{font-size:12px;color:var(--ink-2)}.od-st{margin-left:6px;font-size:11px;padding:1px 7px;border-radius:8px;border:1px solid var(--line-2)}
.od-active .od-st{border-color:#3fc58a;color:#3fc58a}.od-conflict .od-st,.od-held .od-st{border-color:#e2574c;color:#e2574c}.od-expired,.od-withdrawn,.od-superseded{opacity:.6}
.od-a{display:flex;gap:6px;margin-top:6px}.od-alert{color:#e2574c;font-weight:700;margin:6px 0}.od-msg{font-size:13px;margin:6px 0}.od-msg.ok{color:#3fc58a}.od-msg.bad{color:#e2574c}

/* Milestones (3.84) */
.ms{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;margin:0 0 14px}
.ms-hit{flex:1 1 260px;padding:12px 14px;border-radius:12px;border:1px solid var(--gold);background:radial-gradient(circle at 10% 20%,color-mix(in srgb,var(--gold) 28%,transparent),transparent 60%),var(--bg-2)}
.ms-hit b{display:block;font-size:17px;color:var(--gold)}.ms-hit span{display:block;font-size:14px;color:var(--ink)}.ms-hit small{color:var(--ink-2);font-size:12px}
.ms-next{flex:1 1 220px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:8px 12px;border-radius:12px;border:1px dashed var(--line-2);font-size:13px;color:var(--ink-2)}
.ms-next b{color:var(--ink)}.ms-next i{font-style:normal;color:var(--gold)}

/* Roof of the day (3.84) */
.rday{display:flex;gap:12px;align-items:center;margin:0 0 14px;padding:8px;border:1px solid var(--line-2);border-radius:14px;background:var(--bg-2)}
.rday-img{flex:none;padding:0;border:0;background:none;cursor:zoom-in;border-radius:10px;overflow:hidden;width:120px;height:80px}
.rday-img img{width:100%;height:100%;object-fit:cover;display:block}
.rday-t small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.rday-t b{font-size:15px;color:var(--ink)}
.rday.rday-big{flex-direction:column;align-items:stretch}.rday.rday-big .rday-img{width:100%;height:auto;cursor:zoom-out}.rday.rday-big .rday-img img{height:auto;max-height:70vh;object-fit:contain}

/* Operator IQ weights (3.85) */
.oiq-w{margin:12px 0;padding:12px;border:1px solid var(--line-2);border-radius:10px}.oiq-w h4{margin:0 0 6px}
.oiq-wk{display:flex;flex-wrap:wrap;gap:16px;margin:8px 0}.oiq-wk div{display:flex;flex-direction:column;min-width:140px;font-size:12px;color:var(--ink-2)}.oiq-wk b{font-size:22px;color:var(--ink)}
.oiq-gates{margin:6px 0;padding-left:18px;font-size:13px}.oiq-gates .ok{color:#3fc58a}.oiq-gates .no{color:#e2574c}
.oiq-wf{margin-top:10px}.oiq-ws{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.oiq-ws label{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:13px}.oiq-ws input{width:64px;font:14px var(--f-ui);padding:4px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink)}
.oiq-c{display:block;font-size:13px;padding:2px 0}.oiq-ok{color:#3fc58a}.oiq-no{color:#e2574c}

/* Show a teammate (3.86) */
.sh-l{display:flex;flex-direction:column;gap:3px;margin:8px 0;font-size:12px;color:var(--ink-2)}
.sh-l select,.sh-l input{font:14px var(--f-ui);padding:7px 8px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink)}
.sh-i{margin:4px 0;padding-left:18px;font-size:13px}

/* Lobby TV (3.87) */
/* BI-DISPLAY (Codex 10/13): the Lobby TV root has its own class — a bare .lb also matched Bid Intelligence card bodies and My stats bar labels and made them fullscreen */
.lobbytv{position:fixed;inset:0;z-index:9100;background:#02030f;color:#f4f1ea;font-family:var(--f-ui);overflow:hidden}
.lb-scene{position:absolute;inset:0;display:grid;place-items:center;animation:atfade 1.2s ease both}
.lb-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:lbzoom 15s ease-out both}
@keyframes lbzoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.lb-cap{position:absolute;left:0;right:0;bottom:0;padding:40px 48px;background:linear-gradient(0deg,rgba(2,3,15,.85),transparent)}
.lb-cap small,.lb-facts small{display:block;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-size:clamp(12px,1.4vw,18px)}
.lb-cap b{font-size:clamp(24px,3.6vw,48px)}
.lb-facts{text-align:center;padding:32px}.lb-facts h1{font:800 clamp(56px,11vw,150px)/1 var(--f-ui);margin:12px 0 18px;color:#fff;text-shadow:0 0 40px rgba(255,170,64,.5)}
.lb-facts p{font-size:clamp(18px,2.6vw,34px);margin:10px 0;color:#e6e1d6}.lb-facts b{color:#fff}.lb-live b{color:#63d696}
.lb-x{position:absolute;top:16px;right:16px;z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;font-size:22px;opacity:.25;cursor:pointer}
.lb-x:hover{opacity:1}
/* Chill mode (public/chill-ui.js): a quiet full screen; less motion = no zoom, a still ring */
.chl{position:fixed;inset:0;z-index:9150;background:#0b1118;color:#f3efe6;font-family:var(--f-ui);overflow:hidden}
.chl-bg,.chl-img,.chl-shade{position:absolute;inset:0;width:100%;height:100%}
.chl-img{object-fit:cover;opacity:0;transition:opacity 2.5s ease}
.chl-img.chl-on{opacity:1;animation:chldrift 28s ease-in-out infinite alternate}
.chl-shade{background:radial-gradient(ellipse at center,rgba(8,12,18,.15),rgba(8,12,18,.7)),linear-gradient(0deg,rgba(8,12,18,.85),transparent 55%)}
.chl-x{position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.3);color:inherit;font-size:24px;cursor:pointer;z-index:2}
.chl-x:focus-visible{outline:2px solid #fff;outline-offset:3px}
.chl-mid{position:absolute;left:0;right:0;top:12%;display:grid;justify-items:center;gap:18px;text-align:center;z-index:1}
.chl-time{font-size:clamp(48px,11vw,120px);font-weight:200;letter-spacing:.02em;text-shadow:0 2px 24px rgba(0,0,0,.5)}
.chl-ring{width:110px;height:110px;border-radius:50%;border:2px solid rgba(255,255,255,.55);display:grid;place-items:center}
.chl-ring span{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.22);transition:transform 4s ease-in-out}
.chl-ring[data-phase="0"] span,.chl-ring[data-phase="1"] span{transform:scale(2.4)}
.chl-ring[data-phase="2"] span{transform:scale(1);transition-duration:6s}
.chl-still span,.chl-calm .chl-ring span{transition:none;transform:scale(1.6)!important}
.chl-calm .chl-img.chl-on{animation:none}
.chl-say{font-size:20px;opacity:.9;min-height:1.4em}
.chl-low{position:absolute;left:0;right:0;bottom:0;padding:24px clamp(16px,5vw,56px) 20px;z-index:1}
.chl-good{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chl-good li{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 14px;font-size:14px}
.chl-wx{margin:0 0 8px;display:flex;flex-wrap:wrap;gap:4px 18px;font-size:14px}
.chl-wx small{flex-basis:100%;opacity:.7;font-size:12px}
.chl-cap{margin:0;font-size:13px;opacity:.8}
.chl-note{margin:6px 0 0;font-size:12px;opacity:.6}
html.chill-open{overflow:hidden}
@keyframes chldrift{from{transform:scale(1)}to{transform:scale(1.08) translate(-1%,-1%)}}
@media (max-width:600px){.chl-mid{top:9%}.chl-ring{width:84px;height:84px}.chl-ring span{width:30px;height:30px}.chl-note{display:none}}
@media (prefers-reduced-motion:reduce){.chl-img{transition:none}.chl-img.chl-on{animation:none}.chl-ring span{transition:none;transform:scale(1.6)!important}}

/* small popups: Show a teammate (and later My notifications, NP12) */
.pu-wrap{position:fixed;inset:0;z-index:8000;display:grid;place-items:center;background:rgba(0,0,0,.55);padding:16px}
.pu{width:min(560px,100%);max-height:90vh;overflow:auto;background:var(--bg-2);color:var(--ink);border:1px solid var(--line-2);border-radius:14px;padding:16px 18px}
.pu-h{display:flex;justify-content:space-between;align-items:center}.pu-h h3{margin:0}.pu-x{background:none;border:0;color:var(--ink);font-size:24px;cursor:pointer}
.pu h4{margin:14px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.pu-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}.pu-row b{min-width:120px}.pu-row span{flex:1;font-size:13px;color:var(--ink-2)}
.pu-k{display:flex;gap:8px;align-items:center;font-size:14px;padding:3px 0}.pu-q{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.pu-q input[type=time]{font:14px var(--f-ui);padding:5px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink)}
.pu-note{font-size:13px;color:var(--ink-2)}.pu-ok{color:#3fc58a}.pu-bad{color:#e2574c}
/* Roof calculators (public/roofcalc-ui.js) */
.rc h3{margin:18px 0 6px}.rc-f{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px}
.rc-f small.sec-note{display:block;font-weight:400;margin-top:2px}
.rc-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:12px 0 6px}
.rc-kv div{padding:8px 10px;border:1px solid var(--line);border-radius:8px}.rc-kv span{display:block;color:var(--muted);font-size:11px}.rc-kv b{font-size:18px}.rc-kv b.bad{color:var(--bad,#b42318)}
.rc-how{font-size:12px;color:var(--muted);margin:4px 0 0;word-break:break-word}
.rc-layer{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0}.rc-layer input{width:110px}
/* Operations (OPS13) */
.pst{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}
.pst.sched{background:#dbe8ff;color:#123c8c}.pst.ready{background:#d7f5df;color:#11602a}.pst.risk{background:#fff1cc;color:#7a5300}.pst.block{background:#ffe0dc;color:#8f1d12}
.pst.rain,.pst.cancel,.pst.done{background:#ececf1;color:#4a4f63}.pst.unk{background:transparent;border:1px dashed var(--line);color:var(--muted)}
.ops-next{margin:8px 0;padding:8px 10px;border-left:3px solid var(--accent,#010160);background:rgba(1,1,96,.04);font-size:13px}.ops-next small{display:block;color:var(--muted);font-size:11px}
.ops-wins{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-bottom:12px}.ops-wins .win{border:1px solid var(--line);border-left:4px solid #1f9d55;border-radius:8px;padding:10px;cursor:pointer}
.ops-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:10px 0}.op-ph{height:110px;border-radius:8px;background-size:cover;background-position:center;position:relative;cursor:pointer}
.op-ph span{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;font-size:11px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65));border-radius:0 0 8px 8px}
.ops-scope{margin:14px 0 4px}.lnk{text-decoration:underline;cursor:pointer}
/* OPS13-04 superintendents (public/supers-ui.js) */
.sv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-bottom:16px}
.sv-card{border:1px solid var(--line);border-left:4px solid #2b6cb0;border-radius:8px;padding:10px;min-width:0}.sv-card.idle{border-left-color:var(--line)}.sv-un{border-left-color:#c05621;margin-bottom:10px}
.sv-h{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.sv-m{font-size:13px;margin:4px 0}.sv-warn{color:var(--warn);font-size:13px;margin:4px 0}
.sv-card h4{margin:8px 0 4px;font-size:13px}.sv-card ul{margin:0;padding-left:18px;font-size:13px}.sv-card li{margin:3px 0;overflow-wrap:anywhere}.sv-stop{color:var(--neg,#c53030)}
.jf{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}.jf select{max-width:100%}
.jnow-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px 14px;margin-bottom:8px}.jnow-g>div{min-width:0;overflow-wrap:anywhere}.jnow-l{margin:4px 0;overflow-wrap:anywhere}
/* Bring your bot: chat-app desk (lib/botrelay.js) */
.br-how{display:flex;flex-direction:column;gap:6px;margin:8px 0}.br-how label{display:flex;gap:8px;align-items:flex-start;line-height:1.4;cursor:pointer}.br-how input{margin-top:3px}
.br-steps{margin:6px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:12px}.br-steps li{line-height:1.45}
.br-brief{max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12px;margin:6px 0}
.br-desk textarea{width:100%;box-sizing:border-box;margin:6px 0;font-family:ui-monospace,monospace;font-size:12px}
.br-relay-out p{margin:4px 0}
.br-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.br-tool{border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px}.br-tool p{margin:0;font-size:13px;flex:1}.br-tool small{opacity:.75}
/* HR desk (public/hrdesk-ui.js) */
.hr-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:10px 0 14px}
.hr-t{border:1px solid var(--line);border-radius:10px;padding:10px 12px;border-top:4px solid var(--line);min-width:0}.hr-t.good{border-top-color:#1f9d55}.hr-t.warn{border-top-color:#d69e2e}.hr-t.bad{border-top-color:#e53e3e}
.hr-t .l{font-size:12px;opacity:.8}.hr-t .v{font-size:26px;font-weight:700;line-height:1.2}.hr-t .s{font-size:12px;opacity:.8;overflow-wrap:anywhere}
.hr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:12px}
.hr-card{border:1px solid var(--line);border-radius:10px;padding:12px 14px;min-width:0}.hr-card h3{margin:0 0 8px;font-size:15px}.hr-card h4{margin:10px 0 4px;font-size:13px}.hr-now{margin-top:4px}
.hr-list{margin:0;padding-left:18px}.hr-list li{margin:4px 0;overflow-wrap:anywhere}
.hr-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.hr-chip{border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12px}
.hr-path{display:flex;gap:3px;margin:4px 0 6px;min-height:46px}.hr-step{min-width:64px;border-radius:6px;padding:4px 6px;display:flex;flex-direction:column;font-size:11px;background:rgba(127,127,127,.15)}.hr-step b{font-size:16px}
.hr-step.s0{background:rgba(214,158,46,.25)}.hr-step.s1{background:rgba(229,62,62,.22)}.hr-step.s2{background:rgba(49,130,206,.25)}.hr-step.s3{background:rgba(31,157,85,.25)}
.hr-bars{position:relative;display:flex;align-items:flex-end;gap:6px;height:120px;margin:10px 0 22px;padding-top:14px}
.hr-bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;font-size:10px}.hr-bar i{display:block;width:100%;background:#3182ce;border-radius:4px 4px 0 0;min-height:2px}.hr-bar i.over{background:#e53e3e}
.hr-bar span{position:absolute;bottom:-16px;white-space:nowrap}.hr-bar b{position:absolute;top:-2px}
.hr-line{position:absolute;left:0;right:0;border-top:2px dashed #1f9d55}.hr-line span{position:absolute;right:0;top:-16px;font-size:11px;color:#1f9d55}
.hr-gform{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.hr-gform input{min-width:0;flex:1 1 120px}
/* Recruiting (REC14-1, public/recruiting-ui.js): calm rows that stack on a phone */
.rec{margin-top:12px}.rec-t{text-align:left;font:inherit;color:inherit;background:none;cursor:pointer}.rec-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.rec-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.rec-filters input,.rec-filters select{min-width:0;flex:1 1 140px}
.rec-list{list-style:none;margin:0;padding:0}.rec-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr 2fr;gap:2px 12px;padding:8px 0;border-top:1px solid var(--line)}
.rec-who{font:inherit;font-weight:700;background:none;border:0;padding:0;color:inherit;text-align:left;cursor:pointer;text-decoration:underline;min-height:32px}
.rec-role,.rec-st{font-size:13px}.rec-next{grid-column:2/4;font-size:13px}.rec-pills{grid-column:1/4}
.rec-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin:8px 0}.rec-form label{display:flex;flex-direction:column;font-size:12px;flex:1 1 160px;min-width:0}
.rec-form .rec-wide{flex-basis:100%}.rec-checks{flex-basis:100%;border:1px solid var(--line);border-radius:8px}.rec-checks label{display:inline-flex;flex-direction:row;gap:4px;margin:4px 10px 4px 0;font-size:13px}
.rec-head h4{margin:4px 0;font-size:17px}.rec-app{margin-top:10px}
@media (max-width:640px){.rec-row{grid-template-columns:1fr}.rec-next,.rec-pills{grid-column:1}}
/* Team controls (Kyle 10/13): a small Remove, a Nudge */
.tm-ctl{align-items:center}.tm-ctl .tm-rm{background:none;border:0;padding:2px 4px;font-size:11px;opacity:.7;text-decoration:underline;cursor:pointer;color:#ef6f62}.tm-ctl .tm-rm:hover{opacity:1}
.tm-nudge{background:linear-gradient(135deg,var(--c,#7f9cf5),#f6ad55);color:#0b0b1a;border:0;font-weight:600}
.banner.ok{border-color:#1f9d55}
.banner.labrisk-red{border-color:color-mix(in srgb,var(--bad,#f0766b) 60%,transparent);border-left-color:var(--bad,#f0766b)} /* #280 fallback labor rate */
/* Build Room crew wall: the hover card (what each one is on) */
.br-mem .br-pop{display:none}#brFloat{position:fixed;z-index:400;pointer-events:auto;width:290px;max-width:80vw;padding:10px 12px;border-radius:12px;background:#11163a;border:1px solid var(--c,#7f9cf5);box-shadow:0 12px 30px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.04),0 0 24px -6px var(--c,#7f9cf5);font-size:12.5px;line-height:1.4;color:#e8eaf6;text-align:left}
#brFloat[hidden]{display:none}
#brFloat small{display:block;text-transform:uppercase;letter-spacing:.06em;font-size:10px;opacity:.65;margin-top:6px}#brFloat ul{margin:2px 0 0;padding-left:16px}#brFloat li{margin:2px 0}#brFloat a{color:inherit}
#brFloat p{margin:0 0 4px}.br-pop-role{font-weight:600;color:var(--c,#cfd6ff)}
/* Team cards feel like a team (Kyle 10/13): a glow in each member's color, what they're on, lately */
.tm-card{box-shadow:0 0 0 1px rgba(255,255,255,.02),0 10px 30px -18px var(--c);transition:transform .15s ease,box-shadow .15s ease}.tm-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px -14px var(--c)}
.tm-card .tm-av{box-shadow:0 0 0 3px rgba(255,255,255,.06),0 0 18px -2px var(--c)}
.tm-lately{display:flex;flex-direction:column;gap:6px;font-size:12.5px;border-top:1px dashed var(--line);padding-top:6px}.tm-lately small{display:block;text-transform:uppercase;letter-spacing:.06em;font-size:10px;opacity:.65}
.tm-lately a,.tm-lately span{display:block;color:inherit;overflow-wrap:anywhere;margin:1px 0}
/* Build pulse (lib/buildpulse.js) */
.bp{margin:14px 0;padding:16px 18px;border-radius:14px;background:linear-gradient(135deg,rgba(127,156,245,.14),rgba(246,173,85,.10));border:1px solid rgba(255,255,255,.1)}
.bp-title{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.bp-title h3{margin:0;font-size:15px;letter-spacing:.04em;text-transform:uppercase}
.bp-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:10px 0}
.bp-t{padding:10px 12px;border-radius:10px;background:rgba(0,0,0,.18);display:flex;flex-direction:column;gap:2px;min-width:0}.bp-t b{font-size:28px;line-height:1.1}.bp-t span{font-size:12px;opacity:.85}
.bp-t em{font-style:normal;font-size:11px;opacity:.75}.bp-t em.up{color:#48bb78;opacity:1}.bp-t em.down{color:#f6ad55;opacity:1}
.bp-read{padding:12px 14px;border-radius:10px;background:rgba(0,0,0,.22);border-left:3px solid #b794f4}.bp-h{display:flex;flex-direction:column;gap:4px}.bp-h b{font-size:17px}
.bp-ai{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#d6bcfa}
.bp-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:8px}.bp-cols h4{margin:4px 0;font-size:12px;opacity:.8}.bp-cols ul{margin:0;padding-left:18px;font-size:13px}.bp-cols li{margin:3px 0;overflow-wrap:anywhere}.bp-cols a{color:#d6bcfa}
/* Project assignments: the go / no-go board (Kyle 10/13: "like a military checklist") */
.ho-card{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:12px}.ho-card header{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin-bottom:8px}
.ho-two{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,1.3fr);gap:14px}@media (max-width:800px){.ho-two{grid-template-columns:1fr}}
.ho-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.ho-form label{display:flex;flex-direction:column;font-size:12px;gap:2px}
.mc{background:#0b1020;border:1px solid #2d3748;border-radius:8px;padding:10px 12px;font-family:'Bebas Neue','Oswald',ui-monospace,monospace;color:#e2e8f0}
.mc-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-bottom:1px dashed #4a5568;padding-bottom:6px;margin-bottom:6px}.mc-t{letter-spacing:.12em;text-transform:uppercase;font-size:13px}
.mc-stamp{display:inline-block;padding:2px 10px;border:2px solid currentColor;border-radius:4px;letter-spacing:.14em;font-weight:700;transform:rotate(-3deg);font-size:15px}.mc-stamp.go{color:#48bb78}.mc-stamp.nogo{color:#f56565}
.mc-list{list-style:none;margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.mc-list li{display:grid;grid-template-columns:16px 1fr auto 52px;gap:8px;align-items:baseline;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.mc-list li b{letter-spacing:.08em;text-align:right}.mc-list li.go b,.mc-list li.go .mc-box{color:#48bb78}.mc-list li.nogo b,.mc-list li.nogo .mc-box{color:#f56565}.mc-have{opacity:.7;font-size:11px;text-align:right;overflow-wrap:anywhere}
.mc-owe{margin:8px 0 0;font-family:inherit;font-size:12px;color:#f6ad55;letter-spacing:.04em}
.ho-c{display:flex;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line)}.ho-c.service,.ho-c.you{opacity:.8}.ho-score{min-width:28px;text-align:right}.ho-set{margin:6px 0}
.ho-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px;padding:10px 12px;border-radius:10px;border:1px solid #f6ad55;background:rgba(246,173,85,.08)}.ho-strip-t{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.ho-strip-b{background:none;border:1px solid var(--line);border-radius:999px;padding:4px 12px;color:inherit;cursor:pointer}.ho-strip-b b{color:#f6ad55}
/* APM desk (Kyle 10/19, public/apmdesk-ui.js): paperwork / inspections / warranty / closeout on the jobs you run */
.apmd{margin:0 0 12px;padding:10px 12px;border-radius:10px;border:1px solid var(--line)}.apmd-h{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.apmd-t{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.apmd-m{font-size:12px;opacity:.85}.apmd-bad{color:#e53e3e}.apmd-l{list-style:none;margin:8px 0;padding:0;display:grid;gap:8px}.apmd-l li{min-width:0}
.apmd-j{background:none;border:0;padding:0;color:inherit;cursor:pointer;text-align:left;font:inherit;min-height:28px}.apmd-j:hover{text-decoration:underline}
.apmd-cs{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.apmd-c{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line)}
.apmd-done{border-color:#38a169}.apmd-open{border-color:#f6ad55}.apmd-unknown{border-style:dashed;opacity:.8}.apmd-s{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ho-load{display:inline-flex;gap:2px;align-items:flex-end;height:18px}.ho-load i{width:5px;height:100%;border-radius:2px;background:rgba(127,127,127,.25)}.ho-load i.on{background:#4299e1}.ho-load i.full{background:#f56565}
.ph-month{margin:10px 0 4px;font-size:13px}.ph-month small{opacity:.6;margin-left:4px}
.ins-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.ins{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.ins-2{border-left:4px solid #e53e3e}.ins-1{border-left:4px solid #d69e2e}.ins-0{border-left:4px solid #1f9d55}.ins-next{font-size:12px;margin-top:2px}
.sv-p{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin:4px 0}.sv-p div{background:rgba(127,127,127,.08);border-radius:6px;padding:6px}.sv-p b{display:block;font-size:16px}.sv-p span{font-size:11px;opacity:.8}
.ld-find{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.ld-find input{flex:1;min-width:200px}.ld-ai{margin-top:6px;padding:6px 8px;border-left:3px solid #b794f4;background:rgba(183,148,244,.08);border-radius:6px}
/* the jazz button (public/jazz.js): a small speaker; three bars dance while it plays */
.jz{display:inline-flex;align-items:flex-end;gap:1px;height:22px;padding:2px 6px;margin-left:6px;border:1px solid var(--line);border-radius:999px;background:none;color:inherit;opacity:.7;cursor:pointer}.jz:hover,.jz.on{opacity:1}.jz svg{align-self:center}
.jz .jz-w{opacity:.35}.jz.on .jz-w{opacity:1}.jz i{display:none;width:2px;background:#f6c453;border-radius:1px;height:4px}.jz.on i{display:block;animation:jzb .9s ease-in-out infinite}.jz.on i:nth-child(3){animation-delay:.2s}.jz.on i:nth-child(4){animation-delay:.45s}
@keyframes jzb{0%,100%{height:3px}50%{height:11px}}@media (pointer:coarse){.ft-bar .jz{min-height:36px;min-width:40px;align-items:center}}@media (prefers-reduced-motion:reduce){.jz.on i{animation:none;height:7px}}
/* Whew (public/whew-ui.js): Adam's welcome back */
.wh{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;background:rgba(5,8,30,.55);animation:whIn .35s ease-out}.wh.out{opacity:0;transition:opacity .35s}
.wh-card{position:relative;max-width:420px;margin:16px;padding:22px 24px 18px;border-radius:18px;background:#10173d;border:1px solid rgba(246,196,83,.6);box-shadow:0 20px 60px rgba(0,0,0,.5);text-align:center;color:#eef0ff}
.wh-hat{width:120px;height:112px;display:block;margin:0 auto;animation:whSigh 2.2s ease-in-out 2}.wh-mouth{transform-origin:80px 124px;animation:whBlow 2.2s ease-in-out 2}
.wh-puffs{position:absolute;left:50%;top:118px;width:0;height:0}.wh-puffs i{position:absolute;width:18px;height:18px;border-radius:50%;background:rgba(220,230,255,.75);opacity:0;animation:whPuff 2.2s ease-out 2}
.wh-puffs i:nth-child(2){animation-delay:.15s;width:24px;height:24px}.wh-puffs i:nth-child(3){animation-delay:.3s;width:14px;height:14px}.wh-puffs i:nth-child(4){animation-delay:.45s;width:28px;height:28px}
.wh-big{font-size:34px;font-weight:800;letter-spacing:.04em;margin-top:6px;color:#f6c453;animation:whRise .6s ease-out .6s both}.wh-line{font-size:18px;font-weight:700;margin-top:4px;animation:whRise .6s ease-out 1.1s both}
.wh-small{font-size:13px;opacity:.8;margin-top:8px;animation:whRise .6s ease-out 1.6s both}.wh-go{margin-top:14px;padding:8px 16px;border-radius:999px;border:0;background:#f6c453;color:#10173d;font-weight:700;cursor:pointer}
@keyframes whIn{from{opacity:0}to{opacity:1}}@keyframes whSigh{0%,100%{transform:translateY(0) scale(1)}35%{transform:translateY(-6px) scale(1.05)}70%{transform:translateY(4px) scale(.96)}}
@keyframes whBlow{0%,30%{transform:scale(1)}55%{transform:scale(1.6,1.2)}100%{transform:scale(1)}}@keyframes whPuff{0%{opacity:0;transform:translate(0,0) scale(.4)}20%{opacity:.9}100%{opacity:0;transform:translate(70px,-30px) scale(1.6)}}
@keyframes whRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.wh.still *{animation:none!important}
/* ---------- account menu (public/acct-ui.js, Kyle 10/13: "refined and more interactive … cool, especially for desktop") ---------- */
.umenu.ac{width:min(360px,calc(100vw - 16px));padding:0;overflow:hidden auto;max-height:calc(100vh - 76px);border-radius:12px;transform-origin:top right;
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,var(--bg-2)) 0,var(--bg-2) 120px);box-shadow:0 24px 60px rgba(0,0,0,.45),0 0 0 1px var(--line-2)}
.umenu.ac.ac-in{animation:acIn .22s var(--ease) both}
@keyframes acIn{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}
.ac .gone{display:none!important}
.ac-hd{display:flex;gap:12px;align-items:flex-start;padding:16px 16px 12px}
.ac-av{flex:none;width:46px;height:46px;border-radius:50%;padding:2px;background:conic-gradient(from 210deg,var(--accent),var(--data),var(--metal),var(--accent));display:grid}
.ac-av>span{border-radius:50%;background:var(--bg-2);display:grid;place-items:center;font-family:var(--f-disp);font-weight:600;font-size:17px;letter-spacing:.06em;color:var(--ink)}
.ac-hd:hover .ac-av{animation:acSpin 3s linear infinite}
@keyframes acSpin{to{filter:hue-rotate(360deg)}}
.ac-who{min-width:0;display:flex;flex-direction:column;gap:2px}
.ac-who b{font-size:15px}.ac-who>span{color:var(--ink-3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-roles{margin-top:4px;align-self:flex-start;background:none;border:0;padding:2px 0;color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer;text-align:left}
.ac-roles:hover{color:var(--ink)}.ac-more{display:inline-block;margin-left:4px;padding:0 6px;border-radius:9px;background:var(--accent-a);color:var(--accent);font-size:11px}
.ac-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.ac-pv{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:6px 6px 6px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg-inset);font-size:12px;color:var(--ink-3)}
.ac-pv .umsel{flex:1;width:auto;margin:0;height:28px;font-size:12px}
.ac-ic{display:inline-grid;place-items:center;flex:none}.ac-ic svg,.ac-q svg,.ac-out svg{width:18px;height:18px}
.ac-pv .ac-ic svg{width:15px;height:15px}
.ac-quick{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 8px}
.ac-quick .ac-q{display:none}.top.c3 .ac .ac-q[data-has="1"]{display:inline-flex}
/* BACK-NAV (Kyle 10/26): the ← Back button leads the top bar once there is a screen to go back to */
.backbtn{display:inline-flex;align-items:center;gap:4px;flex:none;padding:0 10px 0 6px}.backbtn svg{width:16px;height:16px}.backbtn[hidden]{display:none}
.top.c3 .backbtn .bl{display:none}.top.c3 .backbtn{padding:0 8px}
/* phone-narrow bar (Kyle 10/26, iPhone): fold Show & Tell, Learn and IQ (c5), then chat and a smaller logo (c6), so the account button always shows */
.top.c5 #stBtn,.top.c5 #learnBtn,.top.c5 .intelbtn,.top.c6 #chatBtn{display:none!important}
.top.c6 .brand .mark img{height:22px}
.top:not(.c5) .ac .ac-q.umx5,.top:not(.c6) .ac .ac-q.umx6{display:none!important}
.ac-q{align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:15px;border:1px solid var(--line-2);background:none;color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer}
.ac-q svg{width:14px;height:14px}.ac-q:hover,.ac-q:focus-visible{color:var(--ink);border-color:var(--accent);outline:none}
.ac-find{display:flex;align-items:center;gap:8px;margin:0 12px 6px;padding:0 10px;height:36px;border-radius:9px;border:1px solid var(--line-2);background:var(--bg-inset);color:var(--ink-3)}
.ac-find:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-a)}
.ac-find .ac-ic svg{width:15px;height:15px}
.ac-find input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--ink);font:inherit;font-size:13px}
.ac-find input::-webkit-search-cancel-button{display:none}
.ac-find kbd{font:10px/1 var(--f-ui);padding:3px 5px;border-radius:4px;border:1px solid var(--line-2);color:var(--ink-3)}
.ac-body{display:grid;gap:4px;padding:4px 8px 8px}
.ac-g h4{margin:8px 8px 4px;font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3)}
.ac-list{display:grid;gap:1px}
.ac-it{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;
  animation:acRow .28s var(--ease) both;animation-delay:calc(var(--i,0) * 18ms)}
@keyframes acRow{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.ac-it .ac-ic{width:32px;height:32px;border-radius:8px;background:var(--hover);color:var(--ink-2);transition:transform var(--t) var(--ease),color var(--t),background var(--t)}
.ac-tx{display:flex;flex-direction:column;min-width:0}.ac-tx b{font-weight:500;font-size:13px}.ac-tx small{color:color-mix(in srgb,var(--ink-3) 55%,var(--ink-2));font-size:11.5px}
.ac-it:hover,.ac-it:focus-visible{background:var(--hover);outline:none}
.ac-it:hover .ac-ic,.ac-it:focus-visible .ac-ic{color:var(--accent);background:var(--accent-a);transform:scale(1.08) rotate(-4deg)}
.ac-it:focus-visible{box-shadow:inset 0 0 0 1px var(--accent)}
.ac-new{margin-left:6px;padding:1px 6px;border-radius:8px;background:var(--good-a);color:var(--good);font:600 9.5px/1.4 var(--f-ui);font-style:normal;letter-spacing:.06em;text-transform:uppercase;vertical-align:1px}
.ac-dot{position:absolute;left:34px;top:8px;width:8px;height:8px;border-radius:50%;background:var(--crit);box-shadow:0 0 0 2px var(--bg-2);animation:acPulse 2s ease-in-out infinite}
@keyframes acPulse{50%{box-shadow:0 0 0 2px var(--bg-2),0 0 0 6px var(--crit-a)}}
/* Play: tiles with their own color and a light that follows the pointer */
.ac-tile{--hc:var(--accent);--ha:var(--accent-a);flex-direction:column;justify-content:center;gap:6px;padding:10px 4px 8px;border:1px solid var(--line);text-align:center;overflow:hidden;
  background:radial-gradient(90px circle at var(--mx,50%) var(--my,0%),var(--ha),transparent 70%)}
.ac-tile[data-hue="good"]{--hc:var(--good);--ha:var(--good-a)}.ac-tile[data-hue="metal"]{--hc:var(--metal);--ha:var(--metal-a)}
.ac-tile[data-hue="warn"]{--hc:var(--warn);--ha:var(--warn-a)}.ac-tile[data-hue="data"]{--hc:var(--data);--ha:var(--data-a)}
.ac-tile .ac-ic{width:36px;height:36px;border-radius:50%;color:var(--hc);background:var(--ha)}
.ac-tile .ac-ic svg{width:19px;height:19px}
.ac-tile .ac-tx{align-items:center}.ac-tile .ac-tx b{font-size:11.5px;line-height:1.2}.ac-tile .ac-tx small{display:none}
.ac-tile .ac-new{position:absolute;top:5px;right:5px;margin:0;padding:0 4px;font-size:8.5px}
.ac-tile:hover,.ac-tile:focus-visible{border-color:var(--hc);background:radial-gradient(110px circle at var(--mx,50%) var(--my,0%),var(--ha),transparent 75%),var(--hover)}
.ac-tile:hover .ac-ic,.ac-tile:focus-visible .ac-ic{color:var(--hc);background:var(--ha);transform:translateY(-2px) scale(1.12)}
.ac-tile:active{transform:scale(.97)}
.ac-tile.on{border-color:var(--hc);box-shadow:inset 0 0 0 1px var(--hc),0 0 18px var(--ha)}
.ac-tile.on .ac-ic{animation:acBop .9s ease-in-out infinite}
@keyframes acBop{50%{transform:translateY(-2px) rotate(6deg)}}
.ac-ft{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:8px 12px 10px;border-top:1px solid var(--line)}
.ac-tip{color:var(--ink-3);font-size:11px;display:none}
.ac-out{display:inline-flex;align-items:center;gap:7px;margin-left:auto;height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line-2);background:none;color:var(--ink-2);font:inherit;font-size:12.5px;cursor:pointer}
.ac-out svg{width:15px;height:15px}.ac-out:hover,.ac-out:focus-visible{color:var(--crit);border-color:var(--crit);outline:none}
.ac-none{margin:8px;color:var(--ink-3);font-size:12.5px;text-align:center}
.ac.ac-searching .ac-g h4{display:none}
/* desktop: wider, groups side by side, the Play tiles get room */
@media (min-width:900px) and (hover:hover){
  .umenu.ac{width:560px}
  .ac-tip{display:inline}
  .ac-body{grid-template-columns:1fr 1fr;column-gap:10px;align-items:start}
  .ac-g-account,.ac-g-you,.ac-g-share{grid-column:1}.ac-g-tiles{grid-column:2;grid-row:1 / span 3}
  .ac-g-tiles .ac-list{grid-template-columns:1fr 1fr;gap:8px}
  .ac-sq{min-height:104px;padding:14px 10px 10px}.ac-sq .ac-ic{width:40px;height:40px}.ac-sq .ac-ic svg{width:21px;height:21px}
  .ac-sq .ac-tx b{font-size:12px}.ac-sq .ac-tx small{font-size:11px}
  .ac.ac-searching .ac-body{grid-template-columns:1fr}.ac.ac-searching .ac-g-tiles{grid-column:auto;grid-row:auto}
}
@media (prefers-reduced-motion:reduce){.umenu.ac.ac-in,.ac-it,.ac-dot,.ac-tile.on .ac-ic,.ac-hd:hover .ac-av{animation:none}.ac-it .ac-ic{transition:none}}
.ac .ac-find input{border:0!important;box-shadow:none!important;background:none!important;padding:0!important;height:auto!important;border-radius:0}
.ac-tile[data-hue="crit"]{--hc:var(--crit);--ha:var(--crit-a)}
.ac-tile.ac-wide{grid-column:1 / -1;flex-direction:row;justify-content:center;gap:10px;padding:8px}
.ac-tile.ac-wide .ac-tx{align-items:flex-start;text-align:left}.ac-tile.ac-wide .ac-ic{width:30px;height:30px}
.ac-tile.ac-wide:hover .ac-ic{transform:rotate(180deg) scale(1.1)}
.ac-tile.ac-wide .ac-ic{transition:transform .45s var(--ease),color var(--t),background var(--t)}
@media (min-width:900px) and (hover:hover){.ac-tile.ac-wide{padding:12px}.ac-tile.ac-wide .ac-ic{width:36px;height:36px}}
/* the welcome tour's clips (public/welcome-ui.js film, lib/tourclips.js) */
.wlc-film{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.wlc-film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .7s ease,transform 9s linear}
.wlc-film video.on{opacity:1;transform:scale(1)}
.wlc-film i{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(1,1,50,.62),rgba(1,1,40,.82)),linear-gradient(0deg,rgba(1,1,40,.7) 0%,transparent 30%)}
.wlc.has-film .wlc-film i{opacity:1}
.wlc.has-film .wlc-glow{opacity:.4}
.wlc.has-film .wlc-hero{text-shadow:0 2px 24px rgba(0,0,0,.6)}
.wlc.has-film .wlc-tile,.wlc.has-film .wlc-flow li,.wlc.has-film .wlc-rules>div{backdrop-filter:blur(6px);background:rgba(3,4,44,.45)}
.wlc-cap{position:absolute;right:28px;bottom:78px;display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:rgba(255,255,255,.75);pointer-events:none;z-index:1}
.wlc-cap small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.wlc>header,.wlc>.wlc-bar,.wlc>main,.wlc>footer{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.wlc-film{display:none}}
/* the build light's hover card (Kyle 10/13: "This should always have a hover and action steps") */
.bl-wrap{position:relative;display:inline-block;vertical-align:1px}
.bl-wrap .bl-chip{vertical-align:0}
.bl-hov{position:absolute;left:10px;top:calc(100% + 8px);z-index:70;width:min(420px,calc(100vw - 32px));display:none;flex-direction:column;gap:8px;padding:12px 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg-2);box-shadow:0 18px 44px rgba(0,0,0,.45);color:var(--ink);font:400 13px/1.45 var(--f-ui);letter-spacing:0;text-transform:none;text-align:left;white-space:normal}
.bl-wrap:hover .bl-hov,.bl-wrap:focus-within .bl-hov{display:flex}
.bl-wrap:hover .bl-hov{animation:acIn .16s var(--ease) both}
.bl-hov::before{content:'';position:absolute;left:0;right:0;top:-10px;height:10px}
.bl-hov-h{font-weight:600;font-size:13.5px}
.bl-hov-r{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:8px;background:var(--hover);border-left:3px solid var(--warn)}
.bl-hov-r.bad{border-left-color:var(--crit)}
.bl-hov small{color:var(--ink-3);font-size:11.5px}
.bl-who{font-size:11.5px;font-weight:600;color:var(--ink-2)}.bl-who.you{color:var(--crit)}
.bl-steps{margin:2px 0 0;padding-left:18px;color:var(--ink-2);font-size:12.5px;display:flex;flex-direction:column;gap:2px}
.bl-guide{flex-basis:100%;display:flex;flex-direction:column;gap:2px;margin-top:4px}
@media (hover:none){.bl-wrap:hover .bl-hov{display:none}}
@media (prefers-reduced-motion:reduce){.bl-wrap:hover .bl-hov{animation:none}}
.br-hero:has(.bl-wrap:hover),.br-hero:has(.bl-wrap:focus-within){overflow:visible;z-index:5}
.br-hero::after{border-radius:inherit}
/* "This bugged me" (public/errwatch.js) */
.ew-btn{background:none;border:1px solid var(--line-2);border-radius:12px;color:var(--ink-2);font:inherit;font-size:11.5px;padding:2px 9px;cursor:pointer;margin-left:8px}
.ew-btn:hover,.ew-btn:focus-visible{color:var(--ink);border-color:var(--accent);outline:none}
#ewDlg textarea{width:100%;box-sizing:border-box;margin:6px 0;padding:8px 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-inset);color:var(--ink);font:inherit;font-size:13px}
/* the Build Room's "Needs you" strip (Kyle 10/13: one place for everything waiting on the owners) */
.br-ny{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg-2)}
.br-ny.on{border-color:var(--warn);background:linear-gradient(90deg,var(--warn-a),var(--bg-2) 60%)}
.br-ny-h{font-family:var(--f-disp);font-size:13px;letter-spacing:var(--track-wide);text-transform:uppercase;margin-right:6px}
.br-ny-i{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:16px;border:1px solid var(--line-2);background:var(--bg-inset);color:var(--ink);font:inherit;font-size:12.5px;cursor:pointer}
.br-ny-i span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--warn);color:#1b1206;font-weight:700;font-size:11.5px}
.br-ny-i:hover,.br-ny-i:focus-visible{border-color:var(--accent);outline:none}
/* #225 Needs you: press it, the list opens under it with each item's action */
button.br-ny-t{background:none;border:0;color:var(--ink);cursor:pointer;padding:6px 4px;border-radius:8px;min-height:36px}button.br-ny-t:hover,button.br-ny-t:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.br-ny-t i{font-style:normal;margin-left:4px}.br-ny-i.on{border-color:var(--accent);background:var(--accent-a,var(--bg-2))}.br-ny-i{min-height:32px}
.br-ny-bad{color:var(--warn)}.br-ny.open{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:0}
.ny-panel{margin:0 0 12px;padding:12px 14px;border:1px solid var(--warn);border-top:0;border-radius:0 0 12px 12px;background:var(--bg-2);outline:none}
.ny-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.ny-g h4{margin:12px 0 6px;font-size:13px;letter-spacing:var(--track-wide);text-transform:uppercase}.ny-g h4 span{color:var(--warn)}
.ny-c{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0;background:var(--bg-inset)}
.ny-ch{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}.ny-ch small{color:var(--ink-3)}
.ny-last,.ny-why{margin:6px 0;font-size:13.5px;color:var(--ink-2);overflow-wrap:anywhere}.ny-conv{margin:6px 0;max-height:320px;overflow:auto;border-left:2px solid var(--line-2);padding-left:10px}
.ny-p{margin:6px 0;font-size:13.5px;overflow-wrap:anywhere}.ny-p small{color:var(--ink-3)}
.ny-lb{display:block;margin:8px 0 3px;font-size:12.5px;color:var(--ink-3)}.ny-c textarea{width:100%;box-sizing:border-box}
.ny-a{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.ny-a .btn{min-height:36px}
.ny-opts{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.ny-opt{border:1px solid var(--line-2);border-radius:16px;padding:6px 12px;background:var(--bg-2);color:var(--ink);cursor:pointer;font:inherit;font-size:13px;min-height:34px}
.ny-opt.on{border-color:var(--accent);background:var(--accent-a,var(--bg-2))}.ny-opt em{font-style:normal;font-size:11px;color:var(--good)}
.ny-msg{margin:6px 0 0;font-size:13px;color:var(--good)}.ny-msg.bad{color:var(--warn)}.ny-steps{margin:6px 0;padding-left:20px;font-size:13px}
.ny-done{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:-4px 0 10px;font-size:13px;color:var(--good)}
/* client intelligence (public/clientintel-ui.js, Kyle 10/13) */
.ci{display:flex;flex-direction:column;gap:12px;margin:4px 0 18px}
.ci h3{margin:0;font-family:var(--f-disp);font-size:17px;letter-spacing:.03em;text-transform:uppercase}.ci h3 .sec-note{text-transform:none;letter-spacing:0;font-family:var(--f-ui);font-size:12.5px;margin-left:6px}
.ci-focus{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:8px}
.ci-sig{border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:10px;background:var(--bg-2);padding:8px 10px}
.ci-sig.big{padding:12px 14px}
.ci-sig.ci-s{border-left-color:var(--crit)}.ci-sig.ci-m{border-left-color:var(--good)}.ci-sig.ci-w{border-left-color:var(--warn)}
.ci-h{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;padding:0}
.ci-h b{font-size:13.5px;flex:1}.ci-own{font-size:11px;color:var(--ink-3);white-space:nowrap}
.ci-tr{font:600 10px/1 var(--f-ui);letter-spacing:.06em;text-transform:uppercase;padding:3px 6px;border-radius:8px;white-space:nowrap}
.ci-tr.ci-s{background:var(--crit-a);color:var(--crit)}.ci-tr.ci-m{background:var(--good-a);color:var(--good)}.ci-tr.ci-w{background:var(--warn-a);color:var(--warn)}.ci-tr.ci-st{background:var(--hover);color:var(--ink-3)}
.ci-d{margin:5px 0 0;font-size:12.5px;color:var(--ink-2)}.ci-low{color:var(--ink-3)}
.ci-steps{margin:6px 0 0;padding-left:18px;font-size:12.5px;display:flex;flex-direction:column;gap:2px}
.ci-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ci-spark{width:90px;height:22px;color:var(--accent);flex:none}
.ci-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ci-bar .segs{margin:0}
.ci-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.ci-g{display:flex;flex-direction:column;gap:6px}.ci-g h4{margin:4px 0;font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3)}
.ci-form,.ci-plan{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--accent);border-radius:10px;background:var(--accent-a)}
.ci-plan{display:block}.ci-plan ol{margin:6px 0;padding-left:18px}
.ci-form input{height:32px;padding:0 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-inset);color:var(--ink);font:inherit;font-size:13px}.ci-form #ciText{flex:1;min-width:220px}
.ci-notes{display:flex;flex-direction:column;gap:4px}.ci-notes h4{margin:0 0 4px;font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3)}
.ci-n{display:flex;align-items:center;gap:8px;font-size:12.5px}.ci-n small{color:var(--ink-3)}.ci-n.done b{text-decoration:line-through;color:var(--ink-3)}.ci-n.late b{color:var(--crit)}
.ci-mail{width:100%;box-sizing:border-box;font:inherit;font-size:13px;padding:10px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-inset);color:var(--ink)}
.ci-board{margin:10px 0 16px}.ci-board h3{margin:0 0 8px}
.ci-bgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.ci-bcol{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg-2)}.ci-bcol h4{margin:0 0 2px;font-size:12px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3)}
.ci-brow{display:grid;grid-template-columns:1fr auto;gap:2px 8px;text-align:left;padding:7px 8px;border-radius:8px;border:1px solid transparent;background:var(--hover);color:var(--ink);font:inherit;cursor:pointer}
.ci-brow:hover,.ci-brow:focus-visible{border-color:var(--accent);outline:none}.ci-brow small,.ci-brow em{grid-column:1/-1;font-size:11.5px;color:var(--ink-2);font-style:normal}.ci-brow em{color:var(--accent)}
.ci-chg{font:700 11px var(--f-ui);padding:1px 6px;border-radius:8px}.ci-chg.neg{background:var(--crit-a);color:var(--crit)}.ci-chg.pos{background:var(--good-a);color:var(--good)}
/* ---------- seasons and birthdays (public/seasons-ui.js, Kyle 10/13). Alert / warning / good colors never change. ---------- */
.ss-layer{position:fixed;inset:0;pointer-events:none;z-index:6500;overflow:hidden}
body.ss-paused .ss-layer *{animation-play-state:paused!important}
.ss-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:7100;max-width:min(620px,calc(100vw - 32px));padding:12px 40px 12px 14px;border-radius:12px;background:var(--bg-2);color:var(--ink);border:1px solid var(--season,var(--accent));font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.ss-toast .linkbtn{margin-left:6px}.ss-x{position:absolute;right:8px;top:8px;background:none;border:0;color:var(--ink-3);font-size:16px;cursor:pointer}
.ss-ribbon{position:sticky;top:var(--hdr-h,93px);z-index:9;text-align:center;padding:6px 12px;font-size:13px;letter-spacing:.02em;color:var(--ink);background:linear-gradient(90deg,transparent,var(--bg-3),transparent);border-bottom:1px solid var(--line)}
.ss-h4{margin:14px 0 2px;font-size:13px}
.ss-cake{display:inline-flex;align-items:center;gap:2px;font-size:20px;margin-right:4px;animation:ssBob 1.6s ease-in-out infinite}
.ss-cake small{font:700 11px var(--f-ui);padding:0 5px;border-radius:8px;background:var(--warn);color:#1b1206}
@keyframes ssBob{50%{transform:translateY(-3px) rotate(-6deg)}}
.ss-conf{position:absolute;top:-12px;width:8px;height:12px;border-radius:2px;animation:ssFall 4.6s linear forwards}
@keyframes ssFall{to{transform:translateY(110vh) rotate(720deg)}}
/* #442 (Kyle, Oct 27: "less yellows"): a season decorates — the header, its art and its notice — but never recolors the
   buttons, links and tabs: those stay RAMCON's own accent. The season's colour is --season, used only by the decoration. */
/* Haunted: dusk purple and pumpkin orange, drifting fog, a cobweb, a bat now and then */
body.ss-haunted{--season:#ff9a3c;--season-a:rgba(255,154,60,.14);--brand:#1a0b2e}
body.ss-haunted header.top{background:linear-gradient(90deg,#14061f,#2a0d3d 60%,#3d1405)!important}
.ss-fog{position:absolute;left:-20%;right:-20%;bottom:-10%;height:45%;background:radial-gradient(60% 50% at 30% 80%,rgba(190,170,255,.10),transparent 70%),radial-gradient(50% 40% at 75% 90%,rgba(190,170,255,.08),transparent 70%);animation:ssFog 26s ease-in-out infinite alternate}
@keyframes ssFog{to{transform:translateX(12%)}}
.ss-web{position:absolute;right:0;top:calc(var(--ss-top,var(--hdr-h,93px)) - 4px);width:120px;height:120px;opacity:.28;background:repeating-radial-gradient(circle at 100% 0,transparent 0 14px,rgba(255,255,255,.55) 15px 16px),repeating-conic-gradient(from 180deg at 100% 0,transparent 0 9deg,rgba(255,255,255,.5) 9deg 10deg);
  -webkit-mask:radial-gradient(circle at 100% 0,#000 0 115px,transparent 116px);mask:radial-gradient(circle at 100% 0,#000 0 115px,transparent 116px)}
.ss-bat{position:absolute;top:22%;left:-60px;width:34px;height:14px;background:#0b0610;clip-path:polygon(0 30%,20% 0,35% 35%,50% 10%,65% 35%,80% 0,100% 30%,75% 60%,60% 100%,50% 70%,40% 100%,25% 60%);animation:ssBat 18s linear infinite}
.ss-bat:nth-child(4){top:38%;animation-delay:-9s;animation-duration:23s;transform:scale(.7)}
@keyframes ssBat{0%{left:-60px;transform:translateY(0)}25%{transform:translateY(-30px)}50%{transform:translateY(10px)}75%{transform:translateY(-20px)}100%{left:110vw;transform:translateY(0)}}
/* Christmas: warm red, green and gold; lights along the header; gentle snow */
body.ss-christmas{--season:#ffd27a;--season-a:rgba(255,210,122,.14);--brand:#0e2a1c}
body.ss-christmas header.top{background:linear-gradient(90deg,#3a0a0e,#0f3a24 55%,#3a0a0e)!important}
.ss-lights{position:absolute;left:0;right:0;top:calc(var(--ss-top,var(--hdr-h,93px)) - 6px);height:12px;background:radial-gradient(circle,#ff5a5a 0 3px,transparent 4px) 0 0/48px 12px,radial-gradient(circle,#ffd27a 0 3px,transparent 4px) 16px 0/48px 12px,radial-gradient(circle,#63c393 0 3px,transparent 4px) 32px 0/48px 12px;
  animation:ssTwinkle 1.8s steps(2) infinite}
@keyframes ssTwinkle{50%{opacity:.55}}
.ss-snow{position:absolute;top:-10px;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.85);animation:ssSnow 10s linear infinite}
@keyframes ssSnow{to{transform:translate(30px,110vh)}}
/* Thanksgiving: autumn */
body.ss-thanks{--season:#e8a24a;--season-a:rgba(232,162,74,.14)}
body.ss-thanks header.top{background:linear-gradient(90deg,#2b1406,#4a250b 60%,#2b1406)!important}
.ss-leaf{position:absolute;top:-20px;width:14px;height:14px;border-radius:0 70% 0 70%;background:#d9792b;animation:ssLeaf 14s linear infinite}
.ss-leaf:nth-child(odd){background:#b5501f}
@keyframes ssLeaf{50%{transform:translate(40px,55vh) rotate(180deg)}100%{transform:translate(-20px,110vh) rotate(360deg)}}
/* St. Patrick's */
body.ss-stpat{--season:#6fdc8c;--season-a:rgba(111,220,140,.14)}
body.ss-stpat header.top{background:linear-gradient(90deg,#062a14,#0b4a24 60%,#062a14)!important}
.ss-clover{position:absolute;top:-20px;width:16px;height:16px;background:radial-gradient(circle at 30% 30%,#3fbf6a 0 5px,transparent 6px),radial-gradient(circle at 70% 30%,#3fbf6a 0 5px,transparent 6px),radial-gradient(circle at 50% 65%,#3fbf6a 0 5px,transparent 6px);
  animation:ssLeaf 16s linear infinite}
/* New Year: gold sparkles */
body.ss-newyear{--season:#f3d27a;--season-a:rgba(243,210,122,.14)}
body.ss-newyear header.top{background:linear-gradient(90deg,#0b0b0b,#2a2208 60%,#0b0b0b)!important}
.ss-spark{position:absolute;width:4px;height:4px;border-radius:50%;background:#f3d27a;box-shadow:0 0 8px 2px rgba(243,210,122,.7);animation:ssSpark 2.6s ease-in-out infinite}
@keyframes ssSpark{0%,100%{opacity:0;transform:scale(.4)}50%{opacity:1;transform:scale(1.2)}}
/* Easter: pastels and a few eggs along the bottom */
body.ss-easter{--season:#c9b6ff;--season-a:rgba(201,182,255,.15)}
body.ss-easter header.top{background:linear-gradient(90deg,#2a2347,#3b2f5c 50%,#2a3b47)!important}
.ss-egg{position:absolute;bottom:-4px;width:22px;height:28px;border-radius:50% 50% 46% 46%/60% 60% 40% 40%;background:repeating-linear-gradient(0deg,#f7c6d9 0 6px,#fff3b0 6px 12px);animation:ssEgg 3.4s ease-in-out infinite}
.ss-egg.e1{background:repeating-linear-gradient(0deg,#bfe6ff 0 6px,#d7f5d0 6px 12px);animation-delay:-1.1s}.ss-egg.e2{background:repeating-linear-gradient(0deg,#e6d4ff 0 6px,#ffe0c2 6px 12px);animation-delay:-2.2s}
@keyframes ssEgg{50%{transform:translateY(-6px) rotate(6deg)}}
/* America: red, white and blue */
body.ss-america{--season:#8fb6ff;--season-a:rgba(143,182,255,.15)}
body.ss-america header.top{background:linear-gradient(90deg,#0a1a4a,#0a1a4a 35%,#5a0c14)!important}
.ss-flag{display:none}
.ss-art{position:fixed;left:14px;bottom:14px;width:min(150px,22vw);height:auto;opacity:.92;border-radius:12px;pointer-events:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))}
body.ss-america header.top{border-bottom:4px solid transparent;border-image:repeating-linear-gradient(90deg,#c8102e 0 40px,#fff 40px 80px,#0a3161 80px 120px) 4}
@media (prefers-reduced-motion:reduce){.ss-layer{display:none}.ss-cake{animation:none}}
/* announcements for some roles (lib/home.js audience; Kyle 10/13) */
.hc-aud{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-inset)}
.hc-aud .hc-kinds{margin:6px 0 8px}
.hc-aud label{display:inline-flex;align-items:center;gap:6px;margin-right:14px}
.ann-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 8px;font-size:12.5px;color:var(--ink-3)}
.ann-for{padding:2px 8px;border-radius:999px;background:var(--accent-a);color:var(--accent);font-size:11.5px;letter-spacing:.02em}
.ann-ok{color:var(--good)}
.ann-strip{position:sticky;top:var(--hdr-h,93px);z-index:9;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 16px;background:var(--bg-2);border-bottom:1px solid var(--accent);font-size:13.5px}
.ann-strip small{color:var(--ink-3)}
.ann-strip .grow{flex:1}
/* FU13: the running version and install date in the footer's legal line */
.fver{display:inline-block;color:var(--ink-3)}
.fver summary{cursor:pointer;list-style:none}
.fver summary::-webkit-details-marker{display:none}
.fver summary:hover{color:var(--ink)}
.fver[open] span{display:block;margin-top:4px;font-size:11.5px}
/* build notices for everyone (public/buildnotice-ui.js) */
.bnote-box{position:fixed;left:16px;bottom:16px;z-index:7000;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px))}
.bnote{position:relative;padding:10px 34px 10px 12px;border-radius:10px;background:var(--bg-2);color:var(--ink);border:1px solid var(--line-2);font-size:13px;line-height:1.45;box-shadow:0 8px 22px rgba(0,0,0,.25)}
.bnote-live{border-color:var(--good)}.bnote-build{border-color:var(--accent)}
.bnote .linkbtn{margin-left:6px}
.bnote-x{position:absolute;right:6px;top:6px;background:none;border:0;color:var(--ink-3);font-size:16px;cursor:pointer}
/* supplier program guides on a bid (lib/supplierguides.js) */
.spg{margin:0 0 14px;padding:12px 14px;border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:10px;background:var(--bg-2)}
.spg-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.spg-tag{padding:2px 8px;border-radius:999px;font-size:11.5px;background:var(--bg-inset);color:var(--ink-2)}.spg-tag.on{background:var(--accent-a);color:var(--accent)}
.spg-b{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 18px;margin-top:8px;font-size:13px}
.spg-b h4{margin:6px 0 2px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.spg-b ul{margin:0;padding-left:18px}.spg-b li{margin:2px 0}
.spg-calc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:10px 0 6px;font-size:13px}.spg-calc input{width:120px}
.spg-calc.spg-flat{display:block}
/* ---------- Meeting Reports (public/meetreports-ui.js) ---------- */
.md-rep{font-weight:700;border:1px solid var(--accent);background:var(--accent-a);color:var(--ink);border-radius:8px;padding:6px 12px;margin-right:10px;cursor:pointer}
.md-rep.on{background:var(--accent);color:#fff}
.mr-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 12px}.mr-top h3{margin:0;flex:1 1 auto}
.mr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.mr-card{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--card);display:flex;flex-direction:column;gap:6px}
.mr-card.off{opacity:.78}.mr-card .linkbtn{align-self:flex-start;margin-top:auto}
.mr-ch{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mr-pill{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:99px;border:1px solid var(--line)}
.mr-ready{background:#e3f4e8;color:#14532d;border-color:#9fd3b0}.mr-partial{background:#fff3d6;color:#7a4b00;border-color:#f0c96b}
.mr-off{background:var(--bg-2,#eee);color:var(--ink-2)}
.mr-bar{height:6px;border-radius:4px;background:var(--line);overflow:hidden}.mr-bar i{display:block;height:100%;background:var(--accent)}
.mr-src{list-style:none;margin:0;padding:0;font-size:13px}.mr-src li{padding:2px 0}.mr-src li small{color:var(--ink-2)}
.mr-src li.no{color:var(--ink-2)}.mr-conn{columns:2 260px;margin:6px 0 10px}
.mr-sources{margin-top:18px;border-top:1px solid var(--line);padding-top:10px}.mr-sources h4{margin:10px 0 4px}
.mr-t{width:100%;border-collapse:collapse;font-size:13px;margin:6px 0 12px}
.mr-t th,.mr-t td{border-bottom:1px solid var(--line);padding:5px 6px;text-align:left;vertical-align:top}
.mr-t th{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2)}
.mr-t td small{color:var(--ink-2)}.mr-t tr.mr-none td,.mr-t tr.mr-stale td{color:#7a4b00}.mr-t tr.mr-below td{color:#9b1c1c}
.mr-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 12px}
/* the report itself (Kyle 10/14: professional, not app-like): white page, navy rules and type, small-caps section labels,
   figures right-aligned in tabular numerals, status as a colored dot with its word */
.mr-doc{--rn:#000051;--rm:#5b6070;--rl:#d6d9e1;--rz:#f4f5f8;background:#fff;color:#1c1f2a;border:1px solid var(--rl);padding:28px 34px 22px;max-width:1000px}
.mr-doc{font-family:Carlito,Calibri,'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.38;font-variant-numeric:tabular-nums}
.mr-doc h1,.mr-doc h2,.mr-doc h3{font-family:Poppins,'Segoe UI',Arial,sans-serif;color:var(--rn);letter-spacing:-.005em}
.mr-rh{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:18px;border-top:6px solid var(--rn);padding:14px 0 10px;margin:-28px 0 4px;border-bottom:1px solid var(--rn)}
.mr-rh img{height:30px;width:auto;display:block;margin-bottom:3px}.mr-rh h1{margin:0;font-size:23px;font-weight:600;line-height:1.15}
.mr-rh small{display:block;font:600 10.5px Poppins,'Segoe UI',Arial,sans-serif;letter-spacing:.16em;color:var(--rm);text-transform:uppercase}
.mr-rh .mr-rs{font-size:13px;color:var(--rm);margin-top:2px}.mr-rmeta{text-align:right;font-size:12px;color:var(--rm);line-height:1.4}
.mr-rmeta b{color:var(--rn);font-size:13px}
.mr-k{font:600 11px Poppins,'Segoe UI',Arial,sans-serif!important;letter-spacing:.14em;text-transform:uppercase;color:var(--rn);margin:18px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--rl)}
.mr-sum p{margin:3px 0;font-size:15px}.mr-sum p:first-child{font-size:16px;color:var(--rn)}
.mr-an{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.mr-an ol{margin:0;padding-left:20px}.mr-an li{margin:0 0 6px}
.mr-an li b{color:var(--rn)}.mr-an .mr-own{color:var(--rm);font-size:12px;white-space:nowrap}
.mr-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:12px 0 4px;border-top:1px solid var(--rl);border-bottom:1px solid var(--rl)}
.mr-kpi div{padding:9px 12px;border-left:1px solid var(--rl)}.mr-kpi div:first-child{border-left:0;padding-left:0}
.mr-kpi b{display:block;font:600 22px Poppins,'Segoe UI',Arial,sans-serif;color:var(--rn);line-height:1.1}
.mr-kpi span{display:block;font-size:11.5px;color:var(--rm);text-transform:uppercase;letter-spacing:.06em}.mr-kpi small{font-size:11.5px;color:var(--rm)}
.mr-doc .mr-t{font-size:13px;margin:4px 0 10px}.mr-doc .mr-t th{background:var(--rz);color:var(--rn);font:600 11px Poppins,'Segoe UI',Arial,sans-serif;padding:6px 8px;border-bottom:1px solid var(--rn);text-transform:none;letter-spacing:.02em}
.mr-doc .mr-t td{border-bottom:1px solid var(--rl);padding:5px 8px}.mr-doc .mr-t td.n,.mr-doc .mr-t th.n{text-align:right}
.mr-st{white-space:nowrap;font-size:12px}.mr-st::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:#9aa0ac;vertical-align:1px}
.mr-st.g::before{background:#1e7a3c}.mr-st.a::before{background:#c27c00}.mr-st.r::before{background:#b3261e}
.mr-doc .pr-High{color:#b3261e;font-weight:700}.mr-doc .pr-Low{color:var(--rm)}
.mr-gap{border-left:3px solid #9aa0ac;padding:4px 10px;margin:8px 0 6px;font-size:12px;color:var(--rm)}
.mr-pp h3{margin:16px 0 4px;font-size:15px;font-weight:600;border-bottom:1px solid var(--rn);padding-bottom:3px}.mr-pp h3 small{color:var(--rm);font-weight:400;font-family:Carlito,Calibri,sans-serif}
.mr-doc ul.mr-l{margin:0 0 8px;padding-left:18px}.mr-lead{font-size:15.5px;color:var(--rn)}
.mr-filter{display:flex;gap:10px;align-items:center;margin:8px 0}.mr-filter input{flex:0 1 320px}
.mr-done{cursor:pointer;width:15px;height:15px}.mr-t tr.mr-closed td{opacity:.5;text-decoration:line-through}
.md-rep tr.mr-dim td { opacity: 0.62; }
.mr-pkg { border: 1px solid var(--line, #d5d9e2); border-top: 4px solid var(--accent); border-radius: 6px; padding: 12px 16px; margin: 10px 0 14px; background: var(--card); }
.mr-pkg-h { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; } .mr-pkg h3 { margin: 0; }
.mr-big { font-size: 15px; padding: 10px 18px; } .mr-epl { margin: 8px 0; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; } .mr-res { white-space: pre-wrap; font-size: 12px; max-height: 220px; overflow: auto; } .mr-step { margin: 8px 0; }
.mr-pfs { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; margin-top: 8px; }
.mr-pf { display: block; border: 1px solid var(--line, #d5d9e2); border-left: 4px solid var(--accent); border-radius: 4px; padding: 8px 10px; text-decoration: none; color: inherit; }
.mr-pf small { display: block; font-size: 11px; opacity: 0.7; word-break: break-all; } .mr-warn { margin-top: 8px; font-size: 13px; }
.mr-sched { border: 1px solid var(--line, #d5d9e2); border-left: 4px solid var(--accent); border-radius: 6px; padding: 10px 14px; margin: 10px 0; }
.mr-sched h5 { margin: 10px 0 4px; font-size: 13px; }
.mr-foot{margin-top:20px;border-top:1px solid var(--rn);padding-top:6px;font-size:11px;color:var(--rm);display:flex;justify-content:space-between}
@media print{
  .mr-tools,.md-steps,.md-head,#ws,#tabs{display:none!important}
  .mr-doc{border:0;padding:0;max-width:none;font-size:10.5pt}.mr-rh{margin:0 0 6px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.mr-an{break-inside:avoid}
  .mr-pp{break-inside:auto}.mr-pp h3,.mr-exec{break-after:avoid}.mr-t tr{break-inside:avoid}.mr-t thead{display:table-header-group}
  @page{size:letter;margin:.6in .55in .6in .7in}
}

/* ---------- the one front door (public/intake-ui.js) and the minutes page's cover and tone ---------- */
.ik-dock{position:fixed;left:0;right:0;bottom:0;z-index:9000;background:var(--bg-2);border-top:2px solid var(--accent);box-shadow:0 -12px 40px rgba(0,0,0,.45);padding:12px 20px 14px}
.ik-in{max-width:1180px;margin:0 auto}.ik-h{display:block;font-family:var(--f-disp);letter-spacing:var(--track-wide);text-transform:uppercase;font-size:13px;color:var(--accent);margin-bottom:8px}
.ik-ts{display:flex;gap:10px;flex-wrap:wrap}.ik-ts>.ik-t{flex:1 1 150px}.ik-ts>.ik-big{flex:2 1 260px}
.ik-t{border:1px dashed var(--line-3);border-radius:8px;padding:14px 12px;background:var(--bg-3);transition:all var(--t) var(--ease)}
.ik-t b{display:block;font-size:14px}.ik-t small{color:var(--ink-2);font-size:12px}
.ik-t.ik-big{border-color:var(--accent);background:var(--accent-a)}.ik-t.on{border-style:solid;border-color:var(--accent);background:var(--accent-a);transform:translateY(-2px)}
.ik-note{display:block;margin-top:8px;color:var(--ink-3)}
.ik-panel{position:fixed;right:18px;bottom:18px;z-index:9001;width:min(520px,calc(100vw - 36px));max-height:60vh;overflow:auto;background:var(--bg-2);border:1px solid var(--line-2);border-top:3px solid var(--accent);border-radius:8px;box-shadow:var(--shadow);padding:10px 14px}
.ik-ph{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.ik-res{list-style:none;margin:0 0 6px;padding:0}.ik-res li{padding:6px 0;border-top:1px solid var(--line);font-size:13px}.ik-res small{display:block;color:var(--ink-2)}
.ik-res .ik-ok b{color:var(--good)}.ik-res .ik-same b{color:var(--ink-2)}.ik-res .ik-bad b{color:var(--crit)}
.ik-k{display:inline-block;font-size:11px;padding:1px 6px;border-radius:9px;background:var(--accent-a);color:var(--accent);margin-left:4px}
.ik-page{max-width:1180px}
.ik-drop{display:block;border:2px dashed var(--line-3);border-radius:10px;padding:22px 18px;margin:10px 0;cursor:pointer;background:var(--bg-2)}
.ik-drop b{display:block;font-size:16px;margin-bottom:4px}.ik-drop span{color:var(--ink-2);font-size:13px}.ik-drop.on{border-color:var(--accent);background:var(--accent-a)}
.ik-txt{display:flex;gap:10px;align-items:flex-start;margin:6px 0 12px}.ik-txt textarea{flex:1;font:inherit;min-height:56px}
.ik-f{display:flex;gap:8px;align-items:center;margin:8px 0}.ik-t2 td{vertical-align:top}.ik-t2 small{color:var(--ink-2)}.ik-n{color:var(--warn)!important}
body.ik-dragging .su-wrap{z-index:9100}
.wf-kind.on,.dd-in.on{outline:2px dashed var(--accent);outline-offset:4px;border-radius:6px}
.mr-ct{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:14px;margin:12px 0;align-items:start}
.mr-cover{position:relative;display:block;aspect-ratio:8.5/11;max-height:300px;border:2px dashed var(--line-3);border-radius:8px;overflow:hidden;cursor:pointer;background:linear-gradient(160deg,#000051,#1b2a6b)}
.mr-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.mr-cover.has{border-style:solid;border-color:var(--accent)}
.mr-cover.on{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-a)}
.mr-cl{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;background:linear-gradient(to top,rgba(0,0,40,.92),rgba(0,0,40,0));color:#fff;font-size:12px}
.mr-cl b{display:block;font-size:14px;margin-bottom:2px}
.mr-cs p{margin:0 0 8px}.mr-cs select{max-width:100%}.mr-note{width:100%;font:inherit}
@media (max-width:720px){.mr-ct{grid-template-columns:1fr}.ik-ts{grid-template-columns:1fr 1fr}}
/* ---------- the live meeting (public/meetlive-ui.js): full screen for the room — iPad → 85-inch TV ---------- */
.mr-acts{display:flex;gap:10px;flex-wrap:wrap}.mr-live{font-size:15px;padding:10px 18px;background:linear-gradient(135deg,#b8d3ff,#7fa8ff)!important;color:#03042c!important;border:0!important}
/* the opening of the meeting (public/meetintro.js, Kyle 10/14) */
.mi{position:absolute;inset:0;z-index:200;background:#020322;transition:opacity .6s}.mi canvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.mi.mi-reveal{background:transparent;pointer-events:none}.mi.mi-out{opacity:0}
.mi-still{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:.4em;color:#eef0ff;font:600 2vw Inter,system-ui,sans-serif}
.mi-still b{font:700 9vw "Barlow Condensed","Arial Narrow",sans-serif;color:var(--gold);letter-spacing:.08em}
.ml-stage.ml-burst{animation:mlBurst 1.3s cubic-bezier(.16,1,.3,1) both}
@keyframes mlBurst{0%{transform:scale(1.35);filter:blur(14px) brightness(2.2);opacity:0}35%{opacity:1}100%{transform:none;filter:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.ml-stage.ml-burst{animation:none}}
.dy-acts{margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:8px}.dy-acts h4{margin:0 0 6px}
.dy-act{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--line)}.dy-act .dy-b{flex:1;min-width:0}
.dy-act.late b{color:var(--warn)}.dy-actb{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:560px){.dy-act{flex-direction:column;gap:4px}.dy-actb{align-self:flex-end}}
.mr-prep{margin:8px 0;padding:10px 14px;border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:6px}.mr-prep.ready{border-left-color:var(--ok,#2e9d5b)}
.mr-prep h4{margin:0 0 6px}.mr-prep ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.mr-prep li{display:flex;gap:8px;align-items:baseline}
.mr-prep li b{width:1.2em;text-align:center}.mr-prep li.ok b{color:var(--ok,#2e9d5b)}.mr-prep li.no b{color:var(--warn)}.mr-prep li span{flex:1}
.mr-prep li small{display:block;color:var(--muted);font-size:12px}
.mr-fresh{margin:8px 0;padding:8px 12px;border-left:3px solid var(--warn);background:var(--warn-a);border-radius:4px;font-size:13px}
body.ml-on{overflow:hidden}
.ml{--cg:#63c393;--cw:#e2aa52;--cr:#f0766b;--cn:#b8d3ff;--ink:#eef0ff;--ink2:#aeb6dd;position:fixed;inset:0;z-index:10050;background:#020322;color:var(--ink);overflow:hidden;overflow:clip;
  font-family:"Inter",system-ui,sans-serif;font-size:clamp(14px,calc(.75vw + .65vh),34px);line-height:1.35;-webkit-user-select:none;user-select:none;touch-action:manipulation}
.ml button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ml-bg{position:absolute;inset:-20%;background:radial-gradient(40% 35% at 20% 30%,rgba(127,168,255,.20),transparent 70%),radial-gradient(35% 30% at 80% 70%,rgba(182,169,244,.16),transparent 70%),radial-gradient(30% 25% at 60% 15%,rgba(226,170,82,.09),transparent 70%),#020322;animation:mlAur 38s ease-in-out infinite alternate}
@keyframes mlAur{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(3%,-2%) rotate(3deg)}100%{transform:translate(-3%,2%) rotate(-2deg)}}
.ml-top{position:absolute;left:0;right:0;top:0;height:3.1em;display:flex;align-items:center;justify-content:space-between;padding:0 1.4em;z-index:5;background:linear-gradient(to bottom,rgba(2,3,34,.85),rgba(2,3,34,0))}
.ml-brand{display:flex;align-items:baseline;gap:.8em}.ml-brand b{font-family:"Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.18em;font-size:1.05em}.ml-brand small{color:var(--ink2)}
.ml-logo{display:inline-block;width:5.2em;height:1.4em;background:url(brand/ramcon-logo-white.png) left center/contain no-repeat;align-self:center}
.ml-tools{display:flex;gap:.5em}.ml-tools button{background:rgba(184,211,255,.10);border:1px solid rgba(184,211,255,.25);border-radius:999px;padding:.35em .9em;min-height:2.2em}
.ml-tools button:active,.ml-btn:active,.ml-tile:active,.ml-bar:active,.ml-ccard:active,.ml-scard:active{transform:scale(.97)}
.ml-stage{position:absolute;top:3.3em;bottom:4.4em;left:4.6em;right:4.6em;z-index:2}
.ml-enter .ml-s>*{animation:mlIn .7s cubic-bezier(.2,.7,.2,1) both}.ml-enter .ml-s>*:nth-child(2){animation-delay:.08s}.ml-enter .ml-s>*:nth-child(3){animation-delay:.16s}
@keyframes mlIn{from{opacity:0;transform:translateY(1.2em)}to{opacity:1;transform:none}}
.ml-s{height:100%;display:flex;flex-direction:column;gap:1em;overflow:auto;scrollbar-width:none}.ml-s::-webkit-scrollbar{display:none}
.ml h2{font-family:"Barlow Condensed","Arial Narrow",sans-serif;font-weight:600;font-size:2.3em;letter-spacing:.02em;margin:0;line-height:1.05}.ml h2 span{font-family:"Inter",sans-serif;font-weight:400;font-size:.42em;color:var(--ink2);margin-left:.6em;letter-spacing:0}
.ml-eyebrow{font-size:.85em;letter-spacing:.2em;text-transform:uppercase;color:var(--cn)}
.ml-ai{font-style:normal;font-family:"Inter",sans-serif;font-size:.36em;vertical-align:middle;padding:.25em .7em;border-radius:999px;background:rgba(182,169,244,.18);color:#d9d0ff;letter-spacing:.05em;margin-left:.6em}
.ml-prev,.ml-next{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:2.8em;height:2.8em;border-radius:50%;border:1px solid rgba(184,211,255,.3);background:rgba(2,3,34,.55);font-size:1.6em!important;line-height:1}
.ml-prev{left:.5em}.ml-next{right:.5em}.ml-prev:disabled,.ml-next:disabled{opacity:.15}
.ml-rail{position:absolute;left:0;right:0;bottom:1.2em;display:flex;justify-content:center;gap:.4em;z-index:4;padding:0 1em;overflow-x:auto;scrollbar-width:none}
.ml-rail button{border:0;background:rgba(255,255,255,.06);border-radius:999px;padding:.45em 1em;color:var(--ink2);white-space:nowrap;min-height:2.2em}.ml-rail button.on{background:var(--cn);color:#03042c;font-weight:600}
.ml-asof{position:absolute;right:1.4em;bottom:.2em;font-size:.62em;color:var(--ink2);z-index:4}.ml-live{display:inline-block;width:.6em;height:.6em;border-radius:50%;background:var(--cg);margin-right:.5em;animation:mlPulse 2s infinite}
@keyframes mlPulse{50%{opacity:.25}}
/* cover */
.ml-stage[data-k=cover]{inset:0}
.ml-cover{position:relative;height:100%;overflow:hidden}.ml-kb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:mlKB 40s ease-in-out infinite alternate}
.ml-nophoto{background:linear-gradient(150deg,#000051,#1b2a6b 60%,#3b2f7a)}
@keyframes mlKB{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.16) translate(-2%,-1.5%)}}
.ml-cshade{position:absolute;inset:0;background:linear-gradient(to top,rgba(2,3,34,.95) 8%,rgba(2,3,34,.35) 55%,rgba(2,3,34,.2))}
.ml-ctext{position:absolute;left:6%;right:8%;bottom:14%}.ml-ctext h1{font-family:"Barlow Condensed","Arial Narrow",sans-serif;font-size:6.2em;line-height:.95;margin:.15em 0 .2em;letter-spacing:.01em;text-transform:uppercase}
.ml-headline{font-size:1.7em;max-width:30em;margin:0 0 .8em;color:#fff}.ml-hint{color:var(--ink2);font-size:.9em;margin-top:1em;animation:mlPulse 3s infinite}
.ml-potw{border:0;border-left:.25em solid #e2aa52;background:rgba(2,3,34,.55);padding:.5em 1em;text-align:left;font-size:1em!important}.ml-potw b{display:block;font-size:1.5em}
/* the week */
.ml-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:.8em}
.ml-tile,.ml-ccard,.ml-scard,.ml-owner,.ml-gtile,.ml-card{background:rgba(255,255,255,.045);border:1px solid rgba(184,211,255,.16);border-top:.25em solid var(--cn);border-radius:.6em;text-align:left;padding:.9em 1em;transition:transform .15s,background .15s}
.ml-tile small{display:block;font-size:.72em;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.ml-tile .ml-count{display:block;font-family:"Barlow Condensed","Arial Narrow",sans-serif;font-size:3.6em;line-height:1.05;margin:.1em 0}
.ml-tile span{display:block;font-size:.85em;color:var(--ink2)}.ml-more{display:block;font-style:normal;font-size:.68em;color:var(--cn);margin-top:.5em;opacity:.8}
.ml-e-g{border-top-color:var(--cg)}.ml-e-w{border-top-color:var(--cw)}.ml-e-r{border-top-color:var(--cr)}.ml-e-n{border-top-color:var(--cn)}
.ml-e-g .ml-count{color:var(--cg)}.ml-e-w .ml-count{color:var(--cw)}.ml-e-r .ml-count{color:var(--cr)}
.ml-t-g{color:var(--cg)!important}.ml-t-w{color:var(--cw)!important}.ml-t-r{color:var(--cr)!important}
.ml-read{list-style:none;margin:.4em 0 0;padding:0;display:grid;gap:.55em;font-size:1.22em}
.ml-read li{padding-left:1.1em;position:relative;animation:mlIn .6s both;animation-delay:calc(.35s + var(--d) * .18s)}.ml-read li::before{content:"";position:absolute;left:0;top:.5em;width:.45em;height:.45em;border-radius:50%;background:var(--cn)}
/* project of the week */
.ml-potwS{flex-direction:row;gap:2em}.ml-potwimg{position:relative;flex:1.15;border-radius:.8em;overflow:hidden;cursor:zoom-in;min-height:60%}
.ml-potwtx{flex:1;display:flex;flex-direction:column;gap:.5em;overflow:auto}.ml-potwtx h2{font-size:3em}.ml-sub{color:var(--ink2)}
.ml-potwtx p{font-size:1.1em;margin:0;animation:mlIn .6s both;animation-delay:calc(.3s + var(--d) * .2s)}
.ml-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:.5em}.ml-mini div{background:rgba(255,255,255,.05);border-radius:.4em;padding:.5em .7em}.ml-mini small{display:block;font-size:.7em;color:var(--ink2);text-transform:uppercase;letter-spacing:.08em}.ml-mini b{font-family:"Barlow Condensed",sans-serif;font-size:1.6em;white-space:nowrap}.ml-mini b small{font-size:.55em;color:var(--ink2);margin-left:.2em}
.ml-team{display:flex;flex-wrap:wrap;gap:.4em}.ml-team span{background:rgba(184,211,255,.1);border-radius:999px;padding:.2em .8em;font-size:.85em}
.ml-btn{border:1px solid rgba(184,211,255,.35);background:rgba(184,211,255,.12);border-radius:999px;padding:.5em 1.2em;min-height:2.3em;align-self:flex-start}.ml-btn.ml-sm{padding:.2em .8em;min-height:1.8em;font-size:.8em;margin-left:.6em}.ml-big{font-size:1.1em}
/* starts */
.ml-tl{display:flex;gap:.6em;flex:1;overflow-x:auto;scrollbar-width:none}.ml-day{flex:1 0 8.5em;display:flex;flex-direction:column;gap:.5em;background:rgba(255,255,255,.025);border-radius:.6em;padding:.5em}
.ml-today{outline:2px solid var(--cn)}.ml-dh small{display:block;color:var(--ink2);font-size:.75em;text-transform:uppercase;letter-spacing:.1em}.ml-dh b{font-family:"Barlow Condensed",sans-serif;font-size:1.7em}
.ml-scard{padding:.55em .7em}.ml-scard b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:1.35em}.ml-scard span{display:block;font-size:.9em}.ml-scard small{display:block;font-size:.72em;color:var(--ink2)}
.ml-past{display:flex;gap:.6em;align-items:stretch;flex-wrap:wrap}.ml-past>b{width:100%;color:var(--cr);font-size:.9em;letter-spacing:.08em;text-transform:uppercase}.ml-past .ml-scard{flex:0 1 14em}
/* GP bars */
.ml-bars{display:grid;gap:.45em;overflow:auto;scrollbar-width:none}
.ml-bar{display:grid;grid-template-columns:minmax(12em,28%) 1fr 8.5em;gap:1em;align-items:center;background:rgba(255,255,255,.035);border:0;border-left:.3em solid var(--cn);border-radius:.4em;padding:.45em .8em;text-align:left;animation:mlIn .5s both;animation-delay:calc(var(--d) * .05s)}
.ml-bar.ml-e-g{border-left-color:var(--cg)}.ml-bar.ml-e-w{border-left-color:var(--cw)}.ml-bar.ml-e-r{border-left-color:var(--cr)}
.ml-bn small{display:block;color:var(--ink2);font-size:.75em}.ml-bv{text-align:right}.ml-bv b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:1.6em}.ml-bv small{color:var(--ink2);font-size:.75em}
.ml-track{position:relative;height:1em;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;display:block}
.ml-track .ml-now{position:absolute;left:0;top:0;bottom:0;width:var(--w);border-radius:999px;background:linear-gradient(90deg,rgba(184,211,255,.5),var(--cn));animation:mlGrow 1.1s cubic-bezier(.2,.7,.2,1) both}
.ml-e-g .ml-now,.ml-now.ml-g{background:linear-gradient(90deg,rgba(99,195,147,.4),var(--cg))}.ml-e-w .ml-now,.ml-now.ml-w{background:linear-gradient(90deg,rgba(226,170,82,.4),var(--cw))}.ml-e-r .ml-now,.ml-now.ml-r{background:linear-gradient(90deg,rgba(240,118,107,.4),var(--cr))}
.ml-track .ml-sold{position:absolute;top:-.2em;bottom:-.2em;left:0;border-right:.18em solid #fff;opacity:.85;z-index:2;background:transparent}
@keyframes mlGrow{from{width:0}}
.ml-note{color:var(--ink2);font-size:.8em;margin:.3em 0}.ml-tiny{color:var(--ink2);font-size:.65em;margin:.2em 0}
/* closeout, finished, sold */
.ml-cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15em,1fr));gap:.7em;overflow:auto;scrollbar-width:none}
.ml-ccard{display:flex;flex-direction:column;gap:.45em;animation:mlIn .5s both;animation-delay:calc(var(--d) * .05s)}.ml-ccard p{margin:0;font-size:.8em;color:var(--ink2)}
.ml-since b{font-family:"Barlow Condensed",sans-serif;font-size:2.4em;line-height:1}.ml-since small{color:var(--ink2);font-size:.75em;margin-left:.4em}
.ml-pills{display:flex;flex-wrap:wrap;gap:.3em}.ml-pill{font-style:normal;font-size:.72em;padding:.15em .6em;border-radius:999px;border:1px solid}.ml-pill.ok{color:var(--cg);border-color:rgba(99,195,147,.5)}.ml-pill.no{color:var(--cw);border-color:rgba(226,170,82,.5)}
.ml-big2{font-family:"Barlow Condensed",sans-serif;font-size:2.4em;line-height:1.05}.ml-big2 small{display:block;font-family:"Inter",sans-serif;font-size:.32em;color:var(--ink2)}
/* decide */
.ml-decide{flex-direction:row;gap:2em}.ml-decide>div{flex:1;display:flex;flex-direction:column;gap:.7em;overflow:auto}
.ml-dec{margin:0;padding-left:1.3em;display:grid;gap:.6em;font-size:1.05em}.ml-dec li{animation:mlIn .5s both;animation-delay:calc(var(--d) * .12s)}.ml-dec em{display:block;font-style:normal;color:var(--cw);font-size:.85em}
.ml-owners{display:grid;grid-template-columns:repeat(auto-fill,minmax(11em,1fr));gap:.5em}.ml-owner b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:2em;line-height:1}.ml-owner span{display:block}.ml-owner small{color:var(--ink2);font-size:.72em}
.ml-jchip{border:1px solid rgba(184,211,255,.35);background:rgba(184,211,255,.1);border-radius:999px;padding:.1em .7em;margin:0 .4em .2em 0;font-size:.85em!important}
.ml-jchip.ml-g{border-color:var(--cg)}.ml-jchip.ml-w{border-color:var(--cw)}.ml-jchip.ml-r{border-color:var(--cr)}
/* wins */
.ml-wgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1em}.ml-win{background:linear-gradient(135deg,rgba(99,195,147,.16),rgba(184,211,255,.06));border-radius:.8em;padding:1.2em;font-size:1.25em;animation:mlPop .7s both;animation-delay:calc(var(--d) * .2s)}
.ml-win p{margin:.3em 0 0}@keyframes mlPop{from{opacity:0;transform:scale(.85)}60%{transform:scale(1.03)}to{opacity:1;transform:none}}
/* layers */
.ml-stage:has(~ .ml-layer),.ml-stage:has(~ .ml-lb){filter:blur(6px) brightness(.45);transition:filter .3s}
.ml h2::before{content:none!important}
.ml-starts{display:grid;grid-template-columns:repeat(auto-fill,minmax(19em,1fr));gap:.9em;overflow:auto;scrollbar-width:none}
.ml-start{display:grid;grid-template-columns:7.5em 1fr;text-align:left;padding:0;border:1px solid rgba(184,211,255,.16);border-radius:.7em;overflow:hidden;background:rgba(255,255,255,.045);animation:mlIn .5s both;animation-delay:calc(var(--d) * .08s)}
.ml-sdate{background:linear-gradient(160deg,#1b2a6b,#000051);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.8em .4em;border-right:.3em solid var(--cn)}
.ml-start.ml-e-g .ml-sdate{border-right-color:var(--cg)}.ml-start.ml-e-w .ml-sdate{border-right-color:var(--cw)}.ml-start.ml-e-r .ml-sdate{border-right-color:var(--cr)}
.ml-sdate small{letter-spacing:.14em;font-size:.75em;color:var(--ink2)}.ml-sdate b{font-family:"Barlow Condensed",sans-serif;font-size:3em;line-height:1}.ml-sdate span{font-size:.75em;color:var(--ink2)}.ml-pastd small{color:var(--cr)}
.ml-sbody{padding:.8em 1em;display:flex;flex-direction:column;gap:.3em}.ml-sbody>b{font-size:1.15em}.ml-sbody small{color:var(--ink2);font-size:.8em}.ml-gap{color:var(--cw)!important}
.ml-rdots{display:flex;align-items:center;gap:.25em;margin:.2em 0}.ml-rdots i{width:.9em;height:.9em;border-radius:50%;background:rgba(255,255,255,.15)}.ml-rdots i.ok{background:var(--cg)}.ml-rdots i.no{background:var(--cw)}.ml-rdots em{font-style:normal;font-size:.8em;margin-left:.4em}
.ml-layer{position:absolute;inset:3.4em 2.4em 1.2em;z-index:20;background:#070a3a;border:1px solid rgba(184,211,255,.25);border-radius:.9em;box-shadow:0 2em 6em rgba(0,0,0,.6);display:flex;flex-direction:column;animation:mlUp .35s cubic-bezier(.2,.7,.2,1) both;overflow:hidden}
@keyframes mlUp{from{opacity:0;transform:translateY(2em) scale(.98)}to{opacity:1;transform:none}}
.ml-lh,.ml-jh{display:flex;justify-content:space-between;align-items:flex-start;gap:1em;padding:1em 1.4em .6em}
.ml-x{border:0;background:rgba(255,255,255,.08);width:2.3em;height:2.3em;border-radius:50%;flex:none}
.ml-lbody,.ml-jbody{flex:1;overflow:auto;padding:0 1.4em 1.4em;-webkit-overflow-scrolling:touch;-webkit-user-select:text;user-select:text}
.ml-lrow{display:grid;grid-template-columns:5em 1fr auto;gap:1em;width:100%;text-align:left;border:0;border-bottom:1px solid rgba(255,255,255,.07);background:none;padding:.65em .2em;align-items:center}.ml-lrow em{font-style:normal}
.ml-arow{display:grid;grid-template-columns:2.2em 3.5em auto 1fr auto;gap:.6em;align-items:center;padding:.5em 0;border-bottom:1px solid rgba(255,255,255,.07)}.ml-arow em{font-style:normal;color:var(--ink2);font-size:.85em;text-align:right}.ml-late em{color:var(--cw)}
.ml-tick input{position:absolute;opacity:0}.ml-tick i{display:block;width:1.6em;height:1.6em;border:2px solid rgba(184,211,255,.5);border-radius:.35em}.ml-tick input:checked+i{background:var(--cg);border-color:var(--cg)}
.ml-jh h2{font-size:2.4em}.ml-jnav{display:flex;gap:.5em;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.ml-photos{display:grid;grid-template-columns:1.4fr 1fr;gap:.6em;margin-bottom:1em;height:30vh}
.ml-ph1{position:relative;border:0;padding:0;border-radius:.6em;overflow:hidden;background:#000}.ml-ph1 img{width:100%;height:100%;object-fit:cover}.ml-ph1 small{position:absolute;left:.6em;bottom:.5em;background:rgba(0,0,0,.6);padding:.1em .5em;border-radius:.3em;font-size:.75em}
.ml-thumbs{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:.4em}.ml-thumbs button{border:0;padding:0;border-radius:.4em;overflow:hidden;background:#000}.ml-thumbs img{width:100%;height:100%;object-fit:cover}
.ml-moreph{background:rgba(184,211,255,.15)!important;font-size:1.3em!important}.ml-noph{grid-column:1/-1;display:flex;align-items:center;justify-content:center;border:1px dashed rgba(184,211,255,.3);border-radius:.6em;color:var(--ink2)}
.ml-jgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8em}.ml-wide{grid-column:span 2}
.ml-card h4{margin:0 0 .5em;font-size:.8em;letter-spacing:.14em;text-transform:uppercase;color:var(--cn);display:flex;align-items:center;gap:.6em}.ml-card h4 em{font-style:normal;letter-spacing:0;text-transform:none;font-size:1.2em}
.ml-card ul{margin:0;padding-left:1.1em;display:grid;gap:.3em}.ml-card ul em{font-style:normal;color:var(--cw);font-size:.85em}
.ml-good{border-top-color:var(--cg)}.ml-bad{border-top-color:var(--cr)}
.ml-gps{display:grid;grid-template-columns:repeat(auto-fit,minmax(6em,1fr));gap:.5em}.ml-gpk{border-top:.2em solid var(--cn);background:rgba(255,255,255,.04);border-radius:.4em;padding:.4em .6em}.ml-gpk small{display:block;font-size:.7em;color:var(--ink2)}.ml-gpk b{font-family:"Barlow Condensed",sans-serif;font-size:2em}
.ml-gpk.ml-e-g b{color:var(--cg)}.ml-gpk.ml-e-w b{color:var(--cw)}.ml-gpk.ml-e-r b{color:var(--cr)}
.ml-hb{display:grid;grid-template-columns:6.5em 1fr;gap:.2em .6em;align-items:center;margin-bottom:.5em}.ml-hb em{grid-column:2;font-style:normal;font-size:.75em;color:var(--ink2)}
.ml-ready{display:grid;grid-template-columns:repeat(auto-fill,minmax(14em,1fr));gap:.5em}.ml-ready div{border-radius:.4em;padding:.5em .7em;background:rgba(255,255,255,.04)}.ml-ready .ok b{color:var(--cg)}.ml-ready .no b{color:var(--cw)}.ml-ready small{display:block;color:var(--ink2);font-size:.75em}.ml-ready em{font-style:normal;font-size:.75em;color:var(--cn)}
.ml-readp{font-size:1.05em;margin:0 0 .5em}
.ml form{display:flex;gap:.6em;margin:.4em 0}.ml form input,.ml form textarea,.ml form select{font:inherit;color:var(--ink);background:rgba(255,255,255,.07);border:1px solid rgba(184,211,255,.3);border-radius:.5em;padding:.6em .8em;flex:1;-webkit-user-select:text;user-select:text}
.ml-askl form{margin:0 1.4em .6em}.ml-sugg{display:flex;flex-wrap:wrap;gap:.4em;margin:0 1.4em .8em}.ml-chip{border:1px solid rgba(184,211,255,.3);background:none;border-radius:999px;padding:.35em .9em;font-size:.85em!important}
.ml-ans{border-left:.25em solid #b6a9f4;background:rgba(182,169,244,.08);border-radius:.4em;padding:.7em 1em;margin:.6em 0;animation:mlIn .4s both}.ml-ans p{font-size:1.15em;margin:.3em 0}.ml-q{color:var(--ink2);font-style:italic}
.ml-think{display:flex;gap:.3em;padding:.5em 0}.ml-think i{width:.6em;height:.6em;border-radius:50%;background:#b6a9f4;animation:mlPulse 1s infinite}.ml-think i:nth-child(2){animation-delay:.2s}.ml-think i:nth-child(3){animation-delay:.4s}
.ml-form{flex-direction:column;margin:0 1.4em 1.4em!important;max-width:40em}.ml-form label{display:flex;flex-direction:column;gap:.3em;color:var(--ink2);font-size:.85em}
.ml-grid h3{font-size:.85em;letter-spacing:.14em;text-transform:uppercase;color:var(--cn);margin:1em 0 .5em}.ml-gj{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5em,1fr));gap:.4em}
.ml-gtile{padding:.45em .6em;border-top-width:.2em}.ml-gtile b{display:block}.ml-gtile span{display:block;font-size:.75em;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ml-lb{position:absolute;inset:0;z-index:40;background:rgba(0,0,0,.96);display:flex;align-items:center;justify-content:center}.ml-lb img{max-width:96%;max-height:92%;object-fit:contain;animation:mlUp .3s both}
.ml-lb .ml-x{position:absolute;top:1em;right:1em}.ml-lbp,.ml-lbn{position:absolute;top:50%;transform:translateY(-50%);width:2.6em;height:2.6em;border-radius:50%;border:0;background:rgba(255,255,255,.12);font-size:2em!important}.ml-lbp{left:.6em}.ml-lbn{right:.6em}
.ml-lbc{position:absolute;bottom:1em;left:0;right:0;text-align:center;color:var(--ink2)}
.ml-load{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6em;font-size:1.3em}.ml-load .ml-logo{width:12em;height:3em;animation:mlPulse 2s infinite}.ml-load span{color:var(--ink2);font-size:.8em}
.ml-toast{position:absolute;left:50%;bottom:5em;transform:translateX(-50%);z-index:60;background:var(--cn);color:#03042c;padding:.6em 1.2em;border-radius:999px;font-weight:600;animation:mlUp .3s both}
@media (max-aspect-ratio:3/2){.ml{font-size:clamp(13px,calc(.9vw + .55vh),30px)}.ml-tiles{grid-template-columns:repeat(6,1fr)}.ml-tiles>*{grid-column:span 2}.ml-tiles>*:nth-child(4){grid-column:2/span 2}.ml-prev,.ml-next{font-size:1.15em!important}.ml-jgrid{grid-template-columns:repeat(2,1fr)}.ml-photos{height:24vh}.ml-ctext h1{font-size:4.6em}.ml-stage{left:4em;right:4em}}
@media (max-width:760px){.ml-tiles,.ml-jgrid{grid-template-columns:1fr}.ml-wide{grid-column:auto}.ml-potwS,.ml-decide{flex-direction:column}.ml-bar{grid-template-columns:1fr 6em}.ml-bar .ml-track{grid-column:1/-1}}
/* Job by job (public/meetlive-ui.js walkPage) */
.ml-stage[data-k=walk]{left:4.2em;right:4.2em;top:3.2em}
.ml-walk{gap:.7em;overflow-y:auto;scrollbar-width:thin;padding-right:.3em}.ml-walk>*{flex:0 0 auto}.ml-wgrid>*,.ml-wbottom>*{min-width:0}
.ml-wh{display:flex;justify-content:space-between;align-items:flex-start;gap:1em}.ml-wh h2{font-size:2.6em}.ml-wh h2 span{font-family:"Barlow Condensed","Arial Narrow",sans-serif;font-size:1em;color:var(--ink);margin-left:.2em;letter-spacing:.02em}
.ml-wtools{display:flex;gap:.5em;flex-wrap:wrap;justify-content:flex-end}.ml-date{background:var(--cn)!important;color:#03042c;font-weight:600}
.ml-talk{display:flex;gap:.45em;flex-wrap:wrap}.ml-tp{border-radius:999px;padding:.3em .9em;font-size:.88em;border:1px solid;animation:mlIn .4s both}
.ml-tp-bad{color:#ffd5d0;border-color:var(--cr);background:rgba(240,118,107,.14)}.ml-tp-warn{color:#ffe7c2;border-color:var(--cw);background:rgba(226,170,82,.12)}.ml-tp-ok{color:#d5f5e3;border-color:var(--cg);background:rgba(99,195,147,.12)}
.ml-wgrid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:.8em;align-items:start}.ml-wmedia{height:62vh}
.ml-wmedia{display:flex;flex-direction:column;gap:.4em;min-height:0}
.ml-mtabs{display:flex;gap:.3em}.ml-mtabs button{border:0;background:rgba(255,255,255,.07);border-radius:999px;padding:.25em .9em}.ml-mtabs button.on{background:var(--cn);color:#03042c}
.ml-mbig{position:relative;flex:1;min-height:30vh;border:0;padding:0;border-radius:.6em;overflow:hidden;background:#000;cursor:zoom-in}.ml-mbig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:mlKB 30s ease-in-out infinite alternate}
.ml-mplan{background:#fff}.ml-mplan img{object-fit:contain;animation:none}
.ml-mpdf{display:flex;flex-direction:column;cursor:default;background:#fff}.ml-mpdf iframe{flex:1;width:100%;border:0}
.ml-mpdf .ml-btn{position:absolute;right:.6em;bottom:.6em}.ml-pdft{display:grid;place-items:center;width:100%;height:100%;font-weight:700;background:#fff;color:#333}.ml-lbpdf{width:94vw;height:88vh;border:0;background:#fff;border-radius:.4em}
.ml-mbig small{position:absolute;left:.6em;bottom:.5em;background:rgba(0,0,0,.6);padding:.15em .6em;border-radius:.3em;font-size:.75em}
.ml-mstrip{display:flex;gap:.35em;overflow-x:auto;scrollbar-width:none}.ml-mstrip button{flex:0 0 5.2em;height:3.6em;border:2px solid transparent;border-radius:.35em;padding:0;overflow:hidden;background:#000}.ml-mstrip button.on{border-color:var(--cn)}.ml-mstrip img{width:100%;height:100%;object-fit:cover}
.ml-wnums,.ml-wtalk{display:flex;flex-direction:column;gap:.7em;min-width:0}
.ml-burn{width:100%;height:9em;display:block}.ml-bpath{fill:none;stroke:var(--cn);stroke-width:2.5}.ml-bdot{fill:#fff}.ml-bline{stroke:var(--cw);stroke-width:1.5;stroke-dasharray:6 5}.ml-blab{fill:var(--ink2);font-size:13px}
.ml-wtalk ul{margin:0 0 .4em;padding-left:1.1em;display:grid;gap:.3em;font-size:.95em}.ml-live-n{color:#d9e6ff}.ml-live-n b{color:var(--cn)}
.ml-dec2{display:flex;flex-wrap:wrap;gap:.35em}
.ml-wbottom{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:.8em}.ml-wide2{grid-column:1/-1}
.ml-co{display:grid;grid-template-columns:auto 1fr auto auto;gap:.6em;align-items:baseline;padding:.35em 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:.9em}.ml-co b{white-space:nowrap}.ml-co em{font-style:normal;color:var(--ink2);white-space:nowrap}.ml-co i{font-style:normal;font-size:.8em;padding:.1em .6em;border-radius:999px;background:rgba(255,255,255,.08);white-space:nowrap}
.ml-co-billed i{background:rgba(99,195,147,.2);color:#d5f5e3}.ml-co-sage i{background:rgba(226,170,82,.2);color:#ffe7c2}.ml-co-approved i{background:rgba(240,118,107,.2);color:#ffd5d0}.ml-co-dead{opacity:.5}
.ml-costeps{display:flex;align-items:center;gap:.4em;margin:.2em 0 .5em}.ml-costeps>i{color:var(--ink2);font-style:normal}.ml-cs{flex:1;background:rgba(255,255,255,.05);border-radius:.4em;padding:.35em .6em;border-top:.2em solid var(--cn)}
.ml-cs small{display:block;font-size:.7em;color:var(--ink2);text-transform:uppercase;letter-spacing:.08em}.ml-cs b{font-family:"Barlow Condensed",sans-serif;font-size:1.5em}
.ml-cs.ml-co-approved{border-top-color:var(--cr)}.ml-cs.ml-co-sage{border-top-color:var(--cw)}.ml-cs.ml-co-billed{border-top-color:var(--cg)}
.ml-said{margin-top:.5em}.ml-said small{color:var(--ink2);font-size:.75em;text-transform:uppercase;letter-spacing:.08em}.ml-said p{margin:.3em 0;font-size:.88em}.ml-said em{font-style:normal;color:var(--ink2);font-size:.85em}
.ml-docs{display:grid;gap:.25em}.ml-doc{display:grid;grid-template-columns:auto 1fr auto;gap:.6em;padding:.35em .2em;border-bottom:1px solid rgba(255,255,255,.07);color:inherit;text-decoration:none;font-size:.9em}.ml-doc b{color:var(--cn);font-weight:600;white-space:nowrap}.ml-doc em{font-style:normal;color:var(--ink2)}
a.ml-doc:active{background:rgba(184,211,255,.1)}
@media (max-aspect-ratio:3/2){.ml-wgrid{grid-template-columns:1fr 1fr;min-height:0}.ml-wmedia{grid-column:1/-1;height:34vh}.ml-wbottom{grid-template-columns:1fr 1fr}}

/* #139 the account menu's five tiles (4 squares + 1 rectangle), the fun chips, the admin strip (Kyle 10/14) */
.ac-sq{--hc:var(--accent);--ha:var(--accent-a);flex-direction:column;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 8px 8px;
  border:1px solid var(--line);overflow:hidden;background:radial-gradient(110px circle at var(--mx,0%) var(--my,0%),var(--ha),transparent 70%)}
.ac-sq[data-hue="good"]{--hc:var(--good);--ha:var(--good-a)}.ac-sq[data-hue="metal"]{--hc:var(--metal);--ha:var(--metal-a)}
.ac-sq[data-hue="warn"]{--hc:var(--warn);--ha:var(--warn-a)}.ac-sq[data-hue="data"]{--hc:var(--data);--ha:var(--data-a)}
.ac-sq .ac-ic{width:30px;height:30px;border-radius:50%;color:var(--hc);background:var(--ha)}
.ac-sq .ac-tx b{font-family:var(--f-disp);font-weight:600;font-size:10.5px;letter-spacing:var(--track-wide);text-transform:uppercase}
.ac-sq .ac-tx small{color:var(--ink);font-size:11px;line-height:1.3}
.ac-sq:hover,.ac-sq:focus-visible{border-color:var(--hc);background:radial-gradient(130px circle at var(--mx,0%) var(--my,0%),var(--ha),transparent 75%),var(--hover)}
.ac-sq:hover .ac-ic,.ac-sq:focus-visible .ac-ic{color:var(--hc);background:var(--ha)}
.ac-sq .ac-dot{left:auto;right:8px;top:8px}
.ac-g-tiles .ac-list{grid-template-columns:repeat(4,1fr);gap:6px}
.ac-rect{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:flex-start;min-height:0;gap:12px}
.ac-rect .ac-tx small{font-size:12px}
.ac-fun{padding:2px 10px 8px;border-top:1px solid var(--line)}
.ac-fun .ac-g h4{margin:8px 4px 6px}
.ac-g-play .ac-list{display:flex;flex-wrap:wrap;gap:6px}
.ac-chip{--hc:var(--accent);--ha:var(--accent-a);width:auto;gap:6px;padding:4px 10px 4px 5px;border:1px solid var(--line-2);border-radius:16px;font-size:12px}
.ac-chip[data-hue="good"]{--hc:var(--good);--ha:var(--good-a)}.ac-chip[data-hue="metal"]{--hc:var(--metal);--ha:var(--metal-a)}
.ac-chip[data-hue="warn"]{--hc:var(--warn);--ha:var(--warn-a)}.ac-chip[data-hue="data"]{--hc:var(--data);--ha:var(--data-a)}
.ac-chip[data-hue="crit"]{--hc:var(--crit);--ha:var(--crit-a)}
.ac-chip .ac-ic{width:22px;height:22px;border-radius:50%;color:var(--hc);background:var(--ha)}.ac-chip .ac-ic svg{width:13px;height:13px}
.ac-chip b{font-weight:500}.ac-chip:hover,.ac-chip:focus-visible{border-color:var(--hc)}
.ac-chip:hover .ac-ic,.ac-chip:focus-visible .ac-ic{transform:rotate(-8deg) scale(1.1)}
.ac-chip.on{border-color:var(--hc);box-shadow:0 0 12px var(--ha)}
.ac-admin{margin:0;padding:8px 12px;border:0;border-top:1px solid var(--line);border-radius:0;background:var(--bg-inset)}
.ac-ask{background:none;border:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline}
.ac.ac-searching .ac-fun .ac-g h4{display:none}
/* Today's intelligence (view "brief") — a report, not a feed */
.ti{max-width:780px;margin:0 auto;padding:8px 0 40px}
.ti-mast{border-top:3px solid var(--ink);border-bottom:1px solid var(--line-2);padding:12px 0 10px;margin-bottom:16px}
.ti-k{font-family:var(--f-disp);font-size:11px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--accent)}
.ti-mast h2{margin:4px 0 2px;font-family:var(--f-disp);font-size:26px}
.ti-sub{color:var(--ink-3);font-size:12.5px}
.ti-bl{background:var(--bg-inset);border-left:3px solid var(--accent);border-radius:6px;padding:10px 14px;margin-bottom:18px}
.ti-bl h3{margin:0 0 4px;font-size:11px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-3)}
.ti-bl ol{margin:0;padding-left:18px;display:grid;gap:3px;font-size:14px}
.ti-it{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}
.ti-n{font-family:var(--f-disp);font-size:24px;color:var(--ink-3);line-height:1}
.ti-topic{font-size:10.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--accent)}
.ti-it h4{margin:2px 0 6px;font-size:16px;line-height:1.3}
.ti-it p{margin:0 0 6px;font-size:13.5px;line-height:1.5}
.ti-lab{display:block;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.ti-why{padding-left:10px;border-left:2px solid var(--line-2)}
.ti-src{font-size:12px;color:var(--ink-3)}.ti-src a{color:var(--ink-2)}
.ti-vote{display:flex;gap:6px;margin-top:8px;font-size:12px;color:var(--ink-3)}
.ti-v{height:28px;padding:0 10px;border-radius:14px;border:1px solid var(--line-2);background:none;color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer}
.ti-v:hover{border-color:var(--accent);color:var(--ink)}.ti-v.on{border-color:var(--accent);color:var(--accent)}
.ti-empty{color:var(--ink-2);font-size:14px}
.ti-ft{margin-top:14px;color:var(--ink-3);font-size:11.5px}
/* Resources: nine tiles, 3 x 3 */
.rg{margin:0 0 22px}
.rg-top{display:flex;gap:8px;align-items:center;margin-bottom:10px}
.rg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:980px}
.rg-t{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);color:var(--ink);font:inherit;cursor:pointer;text-align:center}
.rg-t:hover,.rg-t:focus-visible,.rg-t.on{border-color:var(--accent);background:var(--hover);outline:none}
.rg-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--accent-a);color:var(--accent)}.rg-ic svg{width:22px;height:22px}
.rg-t b{font-size:13.5px}.rg-t small{color:var(--ink-3);font-size:11.5px}
.rg-acts{max-width:980px;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-inset)}
.rg-acts h4{width:100%;margin:0 0 2px;font-size:12px;color:var(--ink-3)}
.rg-a{height:32px;padding:0 12px;border-radius:16px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);font:inherit;font-size:12.5px;cursor:pointer}
.rg-a:hover{border-color:var(--accent)}
.rg-a.soon{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);cursor:default;border-style:dashed}
.rg-a.soon em{font-style:normal;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
.res-more{margin:6px 0 10px;font-size:13px;color:var(--ink-3);text-transform:uppercase;letter-spacing:var(--track-wide)}
.mym-pulse{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0}
.mym-pulse>div{padding:12px;border:1px solid var(--line);border-radius:10px;text-align:center}
.mym-pulse b{display:block;font-family:var(--f-disp);font-size:28px}.mym-pulse small{color:var(--ink-3);font-size:11.5px}
@media (max-width:520px){.rg-grid{gap:6px}.rg-t{padding:12px 4px 10px}.rg-t small{display:none}.ac-sq .ac-tx small{font-size:10px}}
@media (min-width:900px) and (hover:hover){.ac-g-tiles .ac-list{grid-template-columns:1fr 1fr;gap:8px}.ac-rect{min-height:64px}}
/* #140 DS14: Daily Squares folded after playing; RAMCON turns 25 as a small rail card */
.sq-min{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px}
.sq-min>span:not(.sq-logo):not(.sq-mr){color:var(--ink-3);font-size:13px}
.sq-mr{font-size:13px;font-weight:600}.sq-mr.ok{color:var(--good)}.sq-mr.no{color:var(--ink-2)}
.sq-min small{color:var(--ink-3);font-size:12px}.sq-min .lnk{margin-left:auto}
.sq-fold{margin-left:auto}
.at-mini{padding:0!important;overflow:hidden}
.at-mini button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid color-mix(in srgb,var(--gold) 35%,transparent);border-radius:12px;cursor:pointer;text-align:left;
  background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 10%,transparent),transparent 70%),var(--bg-2);color:var(--ink);font:inherit}
.at-mini .at-ban-25{font-size:26px}.at-mini b{display:block;font-size:14px}.at-mini small{display:block;color:var(--ink-3);font-size:12px}
.at-mini .at-ban-go{margin-left:auto;width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#1b1206;font-size:12px}
.at-mini button:hover,.at-mini button:focus-visible{border-color:var(--gold);outline:none}
/* #140 AR14: articles in the feed are compact previews */
.post.pa{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px;padding:14px;align-items:start}
.post.pa.pa-nt{grid-template-columns:minmax(0,1fr)}
.pa-th{padding:0;border:0;border-radius:10px;overflow:hidden;cursor:pointer;background:var(--bg-3);aspect-ratio:3/2}
.pa-th img{width:100%;height:100%;object-fit:cover;display:block}
.pa-th:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pa-b{min-width:0}.pa-b header{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.pa .ptitle{margin:4px 0 6px;font-size:17px;line-height:1.3}.pa .ptitle a{color:inherit;text-decoration:none}.pa .ptitle a:hover{text-decoration:underline}
.pa-x{margin:0 0 10px;color:var(--ink-2);font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:640px){.post.pa{grid-template-columns:96px minmax(0,1fr);gap:12px;padding:12px}.pa .ptitle{font-size:15.5px}.pa-x{-webkit-line-clamp:2}}
/* #140 HOME13: RAMCON Today — navy and neutral, real work up front (scoped to .h13; Dispatch keeps its own look) */
.h13-try{margin-top:16px;padding:8px 14px;border-radius:18px;border:1px solid rgba(255,255,255,.5);background:rgba(4,8,40,.55);color:#fff;font:inherit;font-size:13px;cursor:pointer}
.h13-try:hover,.h13-try:focus-visible{background:rgba(4,8,40,.85);outline:none;border-color:#fff}
.home.h13{--h-page:#0B1422;--h-surf:#142235;--h-ink:#F4F7FA;--h-ink2:#B3C0D0;--h-link:#9CCBFA;--h-line:#2A3D52;color:var(--h-ink)}
:root[data-theme="light"] .home.h13{--h-page:#F3F5F7;--h-surf:#FFFFFF;--h-ink:#172435;--h-ink2:#536273;--h-link:#185B96;--h-line:#D8E0E8}
.h13 .hh.h13-top{min-height:0;box-shadow:none;background:none;padding:18px 0 8px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 28px;align-items:end;overflow:visible}
.h13-k{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--h-ink2)}
.h13-hi h1{margin:4px 0 0;font:600 30px/1.15 var(--f-ui);letter-spacing:-.01em;color:var(--h-ink)}
.h13-ways{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.h13-ways button{display:flex;flex-direction:column;align-items:flex-start;min-height:44px;padding:8px 14px;border-radius:10px;border:1px solid var(--h-line);background:var(--h-surf);color:var(--h-ink);font:inherit;cursor:pointer;text-align:left}
.h13-ways b{font-size:14px;font-weight:600}.h13-ways small{font-size:11.5px;color:var(--h-ink2)}
.h13-ways button:hover,.h13-ways button:focus-visible{border-color:var(--h-link);outline:none}
.h13-note{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:10px 0 0;padding:12px 16px;border-radius:10px;border:1px solid var(--h-line);border-left:3px solid var(--h-link);background:var(--h-surf);color:var(--h-ink);text-decoration:none}
.h13-note b{font-size:15px}.h13-note small{color:var(--h-ink2);font-size:12.5px}
.h13-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:20px;margin:18px 0}
.h13-lead{margin:0;border-radius:12px;overflow:hidden;border:1px solid var(--h-line);background:var(--h-surf)}
.h13-ph{aspect-ratio:16/9;background:var(--h-line)}.h13-ph img{width:100%;height:100%;object-fit:cover;display:block}
.h13-lead figcaption{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:12px 16px;font-size:14px;color:var(--h-ink)}
.h13-lead figcaption a{color:var(--h-link);font-weight:600}.h13-lead figcaption .linkbtn{margin-left:auto}
.h13-nophoto{display:grid;place-items:center;min-height:260px;background:linear-gradient(160deg,#142235,#0B1422)}
.h13-mark{text-align:center;color:#F4F7FA}.h13-mark b{display:block;font:700 34px/1 var(--f-disp);letter-spacing:.12em}.h13-mark span{color:#B3C0D0;font-size:13px}
.h13-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.h13-up,.h13-wx{border:1px solid var(--h-line);border-radius:12px;background:var(--h-surf);padding:14px 16px}
.h13-up h2,.h13-h2{margin:0 0 10px;font:600 16px/1.3 var(--f-ui);color:var(--h-ink);letter-spacing:0;text-transform:none}
.h13-cal{display:flex;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--h-line);color:var(--h-ink);text-decoration:none}
.h13-cal:first-of-type{border-top:0}.h13-cal b{font-size:13.5px}.h13-cal small{display:block;color:var(--h-ink2);font-size:12px}
.h13-cd{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:8px;border:1px solid var(--h-line)}.h13-cd b{font-size:16px;line-height:1}.h13-cd small{font-size:10px;text-transform:uppercase}
.h13-up .linkbtn{margin-top:8px}
.h13-wx summary{cursor:pointer;font-size:14px;color:var(--h-ink)}
.h13-wx ul{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;list-style:none;margin:10px 0 0;padding:0}
.h13-wx li{display:flex;flex-direction:column;font-size:12px;color:var(--h-ink2)}.h13-wx li b{font-size:15px;color:var(--h-ink)}.h13-wx li em{font-style:normal}
.h13-def{margin:6px 0 0;color:var(--h-ink2);font-size:12px}
.h13-glance{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 24px}
.h13-f{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--h-line);border-radius:12px;background:var(--h-surf);color:var(--h-ink);font:inherit;text-align:left}
button.h13-f{cursor:pointer}button.h13-f:hover,button.h13-f:focus-visible{border-color:var(--h-link);outline:none}
.h13-f b{font:600 26px/1.1 var(--f-ui)}.h13-f b.h13-na{font-size:16px;color:var(--h-ink2)}.h13-f span{font-size:14px}.h13-f small{color:var(--h-ink2);font-size:11.5px}
.h13 .hrail .rc{background:var(--h-surf);border-color:var(--h-line)}
.h13-chans{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}.h13-chans span{font-size:12.5px;color:var(--h-ink2)}.h13-chans i{font-style:normal;color:var(--h-link);font-weight:600}
.h13-un{font-size:12px;color:var(--h-link)}
.h13-more{margin:8px 0 0;width:100%}
.h13-disc{margin:28px 0 0;padding-top:18px;border-top:1px solid var(--h-line)}
.h13-links{display:flex;flex-wrap:wrap;gap:8px}.h13-links button{min-height:40px;padding:0 14px;border-radius:20px;border:1px solid var(--h-line);background:var(--h-surf);color:var(--h-ink);font:inherit;font-size:13px;cursor:pointer}
.h13-links button:hover,.h13-links button:focus-visible{border-color:var(--h-link);outline:none}
.h13-ft{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin:28px 0 8px;color:var(--h-ink2);font-size:12.5px}
.h13 .hc,.h13 .post,.h13 .wire{background:var(--h-surf);border-color:var(--h-line)}
@media (max-width:900px){.h13 .hh.h13-top{grid-template-columns:1fr}.h13-ways{justify-content:flex-start}.h13-row{grid-template-columns:1fr}.h13-glance{grid-template-columns:1fr}.h13-hi h1{font-size:24px}}
@media (max-width:480px){.h13-ways button{flex:1 1 calc(50% - 8px)}}
.h13 .post.pinned{border-top-color:var(--h-link)}.h13 .pin{color:var(--h-link)}
.h13 .hh.h13-top::after,.h13 .hh.h13-top::before{content:none;display:none}
.h13 .hh.h13-top{margin:0;padding:18px 0 8px;grid-template-rows:auto;color:var(--h-ink)}
@media (max-width:900px){.h13 .hh.h13-top{padding:12px 0 4px;min-height:0}}
.h13 .hh.h13-top{border:0;background:none;isolation:auto}
.mym-h{margin:10px 0 4px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.mym-pulse.mym-r{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.mym-r b{font-size:24px}
.ti-down{padding:12px 14px;border-left:3px solid var(--warn);background:var(--bg-inset);border-radius:6px}.ti-part{margin:0 0 12px;padding:8px 12px;border-left:3px solid var(--warn);background:var(--bg-inset);border-radius:6px;font-size:13px;color:var(--ink-2)}
/* #144 HR desk notes and messages */
.hr-notes textarea{width:100%;box-sizing:border-box;min-height:70px}
.hrn-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 10px}.hrn-bar input{flex:1;min-width:160px}
.hrn-l{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hrn{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-2)}.hrn.done{opacity:.65}
.hrn-h{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.hrn-h span{color:var(--ink-3);font-size:12px}.hrn-h .linkbtn{margin-left:auto}
.hrn p{margin:6px 0 0;white-space:pre-wrap}.hrn-r{padding-left:10px;border-left:2px solid var(--line-2);font-size:13px}.hrn-r small{color:var(--ink-3)}
.hrn-rf{display:flex;gap:6px;margin-top:6px}.hrn-rf input{flex:1}
/* #144 What's new: one spotlight, short rows, Earlier and Under the hood folded */
.wn-body{padding:18px 22px;max-height:64vh;overflow:auto;display:grid;gap:12px}
.wn-spot{display:flex;gap:16px;align-items:center;width:100%;padding:18px;border:1px solid var(--accent);border-radius:14px;background:linear-gradient(135deg,var(--accent-a),transparent 70%),var(--surface);color:var(--ink);text-align:left;cursor:pointer}
.wn-spot i{font-style:normal;font-size:30px;width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:12px;background:var(--accent-a);color:var(--accent)}
.wn-spot small{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.wn-spot b{display:block;font-size:19px;margin:2px 0 4px}
.wn-spot p{margin:0;color:var(--ink-2);font-size:14px;line-height:1.45}.wn-spot em{margin-left:auto;font-style:normal;white-space:nowrap;color:var(--accent);font-weight:600}
.wn-rows{display:grid;gap:6px}
.wn-r{display:flex;gap:12px;align-items:center;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer}
.wn-r:hover,.wn-r:focus-visible,.wn-spot:hover,.wn-spot:focus-visible{border-color:var(--accent);outline:none}
.wn-r i{font-style:normal;width:28px;text-align:center;color:var(--accent)}.wn-r span{min-width:0}.wn-r b{display:block;font-size:14px}.wn-r small{display:block;color:var(--ink-3);font-size:12.5px}
.wn-r .wn-n,.wn-spot .wn-n{display:inline;flex:none;white-space:nowrap;font-size:11.5px;color:var(--ink-3)}
.wn-r em{margin-left:auto;font-style:normal;white-space:nowrap;color:var(--ink-2);font-size:12.5px}
.wn-more summary{cursor:pointer;color:var(--ink-2);font-size:13px;margin:4px 0 8px}
@media (max-width:640px){.wn-spot{flex-wrap:wrap}.wn-spot em{margin-left:0}.wn-r em{display:none}}
/* TAPER13 (#146): the bid's Tapered tab and the bid-log badge */
.tp-badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;background:var(--accent-soft,rgba(80,140,255,.18));color:var(--ink);vertical-align:middle}
.tp-badge.no{background:var(--surface-2,rgba(127,127,127,.15));color:var(--ink-3)}.tp-badge.stale{outline:1px dashed var(--warn,#c80)}
.tp .jsec label{display:block;margin:6px 0;font-size:13px}.tp .jsec input:not([type=radio]),.tp .jsec select,.tp .jsec textarea{width:100%;max-width:420px}
.tp-radios{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0}.tp-r{display:inline-flex!important;gap:6px;align-items:center}
.tp-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 16px}.tp-own{grid-column:1/-1;border-left:3px solid var(--line);padding-left:10px}
.tp-res{margin-top:10px}.tp-kv{display:flex;gap:18px;flex-wrap:wrap;margin:6px 0}.tp-sec{width:100%;max-width:560px;height:auto;color:var(--ink-3);margin:6px 0}
.tp-iss li.tp-blk{color:var(--warn,#c80)}.tp-q li{font-style:italic;color:var(--ink-3)}.tp-t{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}.tp-acts{display:flex;gap:8px;align-items:center;margin-top:6px}
/* #149 My HR: request time off, tell HR, my requests */
.mh-in{width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 40px);overflow:auto}.mh-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.mh-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.mh-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 12px;cursor:pointer}.mh-tabs button.on{border-color:var(--accent);color:var(--accent)}
.mh-form label{display:block;margin:6px 0}.mh-form input,.mh-form select,.mh-form textarea{width:100%}.mh-l{list-style:none;padding:0}.mh-l li{border-bottom:1px solid var(--line);padding:6px 0}.mh-ok{border-color:var(--ok,#2a7)}
/* PHOTO14-C (#152): choosing a job's cover and before/after pairs in the photo viewer */
.phlb-pick{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 8px}.phlb-pick input{width:180px}.phlb-m{color:#ffd28a;font-size:13px}.phlb-err{color:#ff8a8a;font-size:13px}
/* #191 PHOTO14-B: a photo's stage chip, its provenance line in the lightbox, the job photos' filters */
.ph .phst{position:absolute;top:8px;right:8px;z-index:1;padding:2px 7px;border-radius:999px;background:#ffd28a;color:#02031e;font:600 10px var(--f-disp);letter-spacing:.1em;text-transform:uppercase}
.ph .phst.inf{background:rgba(2,3,30,.78);color:#ffd28a;border:1px dashed #ffd28a} /* #253: a stage inferred from the schedule, not recorded */
.phlb-prov{display:block;font-size:12px;opacity:.85}.phlb-pick select{min-height:32px}
.phf{flex-wrap:wrap;gap:8px;align-items:center}.phf label{display:inline-flex;gap:6px;align-items:center;font-size:13px}.phf input[type=date]{min-height:36px}
/* direction item 3 (#153): hover / tap explanations on the report cards' inputs */
.mr-tip summary{cursor:help;list-style:none}.mr-tip summary::-webkit-details-marker{display:none}.mr-tip[open] small{display:block;margin:2px 0 6px 18px;color:var(--ink-3)}.mr-bug{color:var(--danger,#d33)}
/* PHOTO14-D (#155): the printable photo report */
.phrep{position:fixed;inset:0;z-index:9000;overflow:auto;background:#eef0f4;color:#111}.phrep-bar{position:sticky;top:0;display:flex;gap:10px;align-items:center;padding:10px 16px;background:#0b1430;color:#fff}
.phrep-doc{max-width:900px;margin:16px auto;background:#fff;padding:28px;font:14px/1.45 system-ui,sans-serif}.phrep-doc header{display:flex;gap:16px;align-items:center;border-bottom:3px solid #0b1430;padding-bottom:10px;margin-bottom:16px}
.phrep-logo{height:42px;background:#0b1430;padding:6px;border-radius:6px}.phrep-doc h1{font-size:22px;margin:0}.phrep-doc h2{font-size:16px;margin:14px 0 6px}.phrep-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.phrep-doc figure{margin:0 0 14px;break-inside:avoid}.phrep-doc img{width:100%;border-radius:4px}.phrep-doc figcaption{font-size:12.5px;color:#444}.phrep-cap{display:block;min-height:1em;color:#111}.phrep-doc footer{margin-top:18px;font-size:11.5px;color:#666;border-top:1px solid #ccc;padding-top:8px}
.phrep-sel{display:flex;gap:8px;align-items:center;margin:8px 0}
@media print{body.printing-rep>*:not(#phrep):not(#tpPrint){display:none!important}body.printing-rep .phrep{position:static;background:#fff}body.printing-rep .phrep-bar{display:none}body.printing-rep .phrep-doc{margin:0;padding:0;max-width:none}}

.tp-print header{display:flex;justify-content:space-between;border-bottom:3px solid #0b1430;padding-bottom:6px}.tp-stamp{font-weight:700;color:#b00;letter-spacing:.02em}
/* #161 live meeting click-ins: every card opens its list, every row its record; ⚑ flag for analysis */
.ml-click{font:inherit;color:inherit;text-align:left;width:100%;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.07);cursor:pointer;border-radius:.3em}
.ml-click:hover,.ml-click:focus-visible{background:rgba(184,211,255,.08);outline:none}
.ml-cs.ml-click{border-bottom:0;width:auto}
.ml-cs.on{outline:2px solid #b8d3ff}
.ml-drill .ml-lh,.ml-rec .ml-lh{display:flex;align-items:center;gap:.6em}.ml-drill .ml-sp{flex:1}.ml-drill h3{margin:1em 0 .4em;font-size:1em;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}.ml-drill h3 small{font-weight:400}
.ml-dtab{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr))}.ml-dhead,.ml-drow{display:contents}.ml-dhead span{font-size:.75em;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);padding:.3em .4em;border-bottom:1px solid rgba(255,255,255,.15)}
.ml-drow span{padding:.45em .4em;border-bottom:1px solid rgba(255,255,255,.07);overflow-wrap:anywhere}button.ml-drow{font:inherit;color:inherit;background:none;border:0;text-align:left;cursor:pointer}button.ml-drow:hover span{background:rgba(184,211,255,.08)}
.ml-dl{display:grid;grid-template-columns:minmax(10em,auto) 1fr;gap:.35em 1.2em}.ml-dl dt{color:var(--ink2)}.ml-dl dd{margin:0;overflow-wrap:anywhere}.ml-dl a{color:#b8d3ff}
.ml-arow.ml-arow-f{grid-template-columns:2.2em 3.5em 1fr auto auto}.ml-flag{border:1px solid rgba(184,211,255,.3);background:none;color:inherit;border-radius:999px;width:2em;height:2em;cursor:pointer}.ml-flag:hover{background:rgba(226,170,82,.2)}.ml-flagd{color:#ffe7c2;white-space:nowrap}
.ml-flagl{margin-top:1.2em}.ml-flagl h2 span{font-size:.6em;color:var(--ink2)}
/* #161 Resources, rebuilt (Kyle 10/15: "really boring … make it 100% better"): a search-first hero, live "Right now" cards,
   one-tap Most used, your shortcuts, areas that list their tools, and links in scannable rows */
.rx{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:26px;padding-bottom:30px}
.rx-hero{position:relative;overflow:hidden;border-radius:14px;padding:30px 32px;display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:end;
  background:radial-gradient(120% 140% at 0% 0%,rgba(184,211,255,.20),transparent 55%),radial-gradient(90% 120% at 100% 100%,rgba(115,199,218,.16),transparent 60%),var(--bg-2);border:1px solid var(--line-2)}
.rx-k{font:600 11px/1 var(--f-disp);letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.rx-hero h2{margin:8px 0 6px;font:600 clamp(28px,3.4vw,44px)/1.05 var(--f-disp);letter-spacing:.01em;color:var(--ink)}
.rx-hero p{margin:0;color:var(--ink-2);font-size:15px}
.rx-sr{display:flex;flex-direction:column;gap:10px}
.rx-q{width:100%;font-size:16px!important;padding:14px 16px!important;border-radius:10px!important;border:1px solid var(--line-2)!important;background:var(--bg-inset)!important;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.rx-q:focus{border-color:var(--accent)!important;outline:none}
.rx-tools{display:flex;gap:8px;justify-content:flex-end}
.rx-now{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rx-now-c{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:12px;text-align:left;padding:16px;border-radius:12px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);cursor:pointer;transition:transform var(--t) var(--ease),border-color var(--t)}
.rx-now-c:hover{transform:translateY(-2px);border-color:var(--line-2)}
.rx-now-c .rx-ic{grid-row:1/4}.rx-now-c b{font:600 30px/1 var(--f-num)}.rx-now-c span:not(.rx-ic){font-weight:500;font-size:14px;margin-top:4px}.rx-now-c small{color:var(--ink-3);font-size:12px;margin-top:2px}
.rx-warn{border-left:3px solid var(--warn)}.rx-win{border-left:3px solid var(--good)}.rx-ok{border-left:3px solid var(--accent)}
.rx-ic{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--accent-a);color:var(--accent);flex:0 0 auto}.rx-ic svg{width:21px;height:21px}
.rx-sec h3{margin:0 0 12px;font:600 12px/1 var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
.rx-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.rx-q1{display:flex;align-items:center;gap:12px;padding:14px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(180deg,var(--bg-3),var(--bg-2));color:var(--ink);text-align:left;cursor:pointer;text-decoration:none;transition:transform var(--t) var(--ease),border-color var(--t)}
.rx-q1:hover{transform:translateY(-2px);border-color:var(--accent)}.rx-q1 b{font-weight:600;font-size:14.5px}.rx-q1 small{display:none}
.rx-chips{display:flex;flex-wrap:wrap;gap:8px}
.rx-chip{display:inline-flex;gap:8px;align-items:baseline;padding:8px 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);cursor:pointer;text-decoration:none;font-size:13px}
.rx-chip small{color:var(--ink-3);font-size:11px}
.rx-chip:hover{border-color:var(--accent)}
.rx-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.rx-card{border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:16px;display:flex;flex-direction:column;gap:2px}
.rx-card header{display:flex;gap:12px;align-items:center;margin-bottom:8px}.rx-card h4{margin:0;font-size:15px;font-weight:600}.rx-card header small{color:var(--ink-3);font-size:12px}
.rx-a{display:flex;justify-content:space-between;align-items:center;width:100%;padding:9px 10px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer}.rx-a:hover{background:var(--accent-a)}.rx-a i{font-style:normal;color:var(--ink-3)}
.rx-soon{margin:12px 0 0;color:var(--ink-3);font-size:12.5px}.rx-soon b{color:var(--ink-2);font-weight:500}
.rx-links{columns:3 300px;column-gap:22px}.rx-lg{break-inside:avoid;margin-bottom:16px}.rx-lg h4{margin:0 0 4px;font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em;font-weight:600}.rx-lg h4 span{font-weight:400}
.rx-r{display:flex;justify-content:space-between;gap:10px;align-items:baseline;width:100%;padding:8px 10px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer}
.rx-r:hover{background:var(--hover)}
.rx-r b{font-weight:500;font-size:14px}
.rx-r small{color:var(--ink-3);font-size:11.5px;white-space:nowrap}
.rx-list{border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:6px}
@media (max-width:900px){.rx-hero{grid-template-columns:1fr;padding:22px}.rx-now,.rx-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.rx-cards{grid-template-columns:1fr}}
.ml-layer.ml-rec{background:#070a3a;z-index:6}
/* #162 live GeoTab trucks: Fleet ▸ Map and the Project map's Trucks layer */
.fm-wrap{display:grid;grid-template-columns:1fr 300px;gap:12px;height:min(70vh,720px)}.fm-map{border:1px solid var(--line);border-radius:12px;overflow:hidden;min-height:420px}
.fm-list{overflow-y:auto;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:8px}
.fm-r{display:grid;grid-template-columns:10px 1fr;column-gap:8px;width:100%;text-align:left;padding:7px 6px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;cursor:pointer}
.fm-r:hover{background:var(--hover)}.fm-r i{grid-row:1/3;width:10px;height:10px;border-radius:50%;margin-top:5px}.fm-r b{font-weight:500;font-size:13.5px}.fm-r small{color:var(--ink-3);font-size:11.5px}
.mtk{background:none;border:0}.mtk-dot{position:relative;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--c);color:#03042c;box-shadow:0 0 0 2px rgba(3,4,44,.85),0 3px 10px rgba(0,0,0,.45)}
.mtk-dot svg{width:17px;height:17px}.mtk-dir{position:absolute;inset:-7px;pointer-events:none}.mtk-dir::before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);border:6px solid transparent;border-bottom:8px solid var(--c);border-top:0}
.mtk-n{position:absolute;left:34px;top:6px;white-space:nowrap;font:600 11px/1 var(--f-ui);color:#fff;background:rgba(3,4,44,.78);padding:3px 6px;border-radius:4px;pointer-events:none}
.mtk-driving .mtk-dot{animation:mtkp 2s ease-out infinite}@keyframes mtkp{0%{box-shadow:0 0 0 2px rgba(3,4,44,.85),0 0 0 0 rgba(99,195,147,.6)}100%{box-shadow:0 0 0 2px rgba(3,4,44,.85),0 0 0 14px rgba(99,195,147,0)}}
.mtk-key{background:#63c393!important}
@media (max-width:800px){.fm-wrap{grid-template-columns:1fr;height:auto}.fm-map{height:60vh}.fm-list{max-height:40vh}}
/* #163 competitor profiles (Permit intelligence ▸ Who is roofing ▸ a roofer) */
.pm-rof{color:inherit;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}.pm-rof:hover{color:var(--accent)}
.rk-head{display:flex;justify-content:space-between;align-items:flex-end;margin:12px 0}.rk-head h2{margin:2px 0 4px;font-size:30px}.rk-k{font:600 11px/1 var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.rk-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px}
.rk-bars{display:flex;align-items:flex-end;gap:4px;height:120px;padding-top:14px}.rk-bars i{flex:1;height:var(--h);min-height:3px;background:var(--accent);border-radius:3px 3px 0 0;position:relative;opacity:.85}
.rk-bars i b{position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--ink-3);font-weight:500}.rk-bl{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);margin-top:4px}
.rk-t{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}.rk-t b{font-family:var(--f-num)}
.rk-ppl{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}.rk-p{position:relative;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-2)}
.rk-p span{color:var(--ink-2);font-size:13px}.rk-p small{color:var(--ink-3);font-size:12px}.rk-p button{position:absolute;top:6px;right:6px}
.rk-add{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.rk-add input{flex:1;min-width:160px}.rk-add textarea{flex:1;min-width:260px}
.rk-n{padding:8px 0;border-bottom:1px solid var(--line)}.rk-n p{margin:0 0 2px}.rk-n small{color:var(--ink-3)}
@media (max-width:900px){.rk-grid{grid-template-columns:1fr}}
/* #163 Inbox: a drop's job */
.ik-job{display:flex;gap:6px;align-items:center;margin-top:6px}.ik-job input{max-width:220px;font-size:12.5px;padding:4px 8px}
/* #165 drop the bug on it */
.bd-bug{position:fixed;right:18px;bottom:18px;z-index:9000;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--bg-3);box-shadow:0 6px 18px rgba(0,0,0,.4);cursor:grab;font-size:22px;line-height:1;display:grid;place-items:center;touch-action:none;user-select:none}
.bd-bug:hover{transform:scale(1.08)}.bd-bug.bd-drag{cursor:grabbing;transform:scale(1.25);box-shadow:0 10px 30px rgba(0,0,0,.55);right:auto;bottom:auto;transition:none}
.bd-wiggle{animation:bdw .25s ease-in-out 6}@keyframes bdw{0%,100%{transform:rotate(0)}50%{transform:rotate(-14deg)}}
.bd-hl{position:fixed;z-index:8999;pointer-events:none;outline:2px dashed #f0766b;outline-offset:2px;border-radius:4px;background:rgba(240,118,107,.08)}
.bd-pin{position:fixed;z-index:9001;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;border:3px solid #f0766b;display:grid;place-items:center;background:rgba(240,118,107,.15);pointer-events:none;font-size:18px}
.bd-pop{position:fixed;z-index:9002;width:340px;padding:14px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg-2);box-shadow:0 12px 40px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:8px}
.bd-pop textarea{width:100%;resize:vertical}.bd-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.bd-msg{font-size:12px;color:var(--ink-3)}
.bd-lw{max-width:760px}.bd-items{display:flex;flex-direction:column;gap:10px;max-height:65vh;overflow-y:auto}.bd-item{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:10px;border:1px solid var(--line);border-radius:10px}
.bd-item img{width:150px;border-radius:6px;border:1px solid var(--line)}.bd-noimg{width:150px;height:90px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:6px;color:var(--ink-3);font-size:12px}
.bd-ih{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bd-ih small{color:var(--ink-3)}.bd-item p{margin:6px 0 0}.bd-ans{color:var(--good)}
@media print{.bd-bug{display:none}}
/* #166 How RAMCON works */
.fm{max-width:1200px;margin:0 auto}.fm-leg{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0 14px;font-size:12px;color:var(--ink-2)}.fm-leg span{display:inline-flex;gap:6px;align-items:center}.fm-leg i{width:12px;height:12px;border-radius:3px;display:inline-block}
.fm-live{background:var(--good)}.fm-held{background:var(--warn)}.fm-manual{background:#8a8fb0}.fm-planned{background:transparent;border:1.5px dashed var(--accent)}.fm-outside{background:var(--metal)}
.fm-ring{position:relative;width:100%;aspect-ratio:1000/620;min-height:460px;border:1px solid var(--line);border-radius:16px;background:radial-gradient(60% 60% at 50% 50%,rgba(184,211,255,.10),transparent 70%),var(--bg-2)}
.fm-ring svg{position:absolute;inset:0;width:100%;height:100%}.fm-arc{fill:none;stroke:var(--line-2);stroke-width:2.5}.fm-ah{fill:var(--accent);opacity:.7}
.fm-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34%;text-align:center}.fm-core p{color:var(--ink-2);font-size:14px;margin:6px 0 0}
.fm-k{font:600 11px/1 var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.fm-node{position:absolute;transform:translate(-50%,-50%);width:150px;padding:10px 12px 9px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg-3);color:var(--ink);text-align:left;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:2px 8px;align-items:center;box-shadow:0 6px 18px rgba(0,0,0,.35);transition:transform var(--t) var(--ease),border-color var(--t)}
.fm-node:hover{transform:translate(-50%,-50%) scale(1.06);border-color:var(--accent)}.fm-n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--accent-a);color:var(--accent);font-size:11px;font-weight:700}
.fm-node b{font-size:14px}.fm-node em{font-style:normal;font-family:var(--f-num);font-weight:600;color:var(--accent)}.fm-node .fm-bar{grid-column:1/-1}
.fm-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;gap:1px;margin-top:6px;background:var(--track)}.fm-bar i{display:block;min-width:3px}.fm-bar i.fm-planned{border:0;background:repeating-linear-gradient(90deg,var(--accent) 0 3px,transparent 3px 6px);opacity:.6}
.fm-two{aspect-ratio:1200/720;min-height:560px}.fm-lede{margin:0 0 10px;color:var(--ink-2);font-size:14.5px;max-width:820px}
.fm-circle{fill:rgba(184,211,255,.05);stroke:var(--accent);stroke-opacity:.35;stroke-width:2;stroke-dasharray:6 6}.fm-arc-feed{stroke-dasharray:4 5}.fm-arc-join{stroke:var(--accent);stroke-opacity:.6}
.fm-eng{position:absolute;transform:translate(-50%,0);text-align:center;white-space:nowrap}.fm-eng small{display:block;color:var(--ink-3);font-size:11.5px;margin-top:3px}
.fm-join{position:absolute;transform:translate(-50%,-50%);font-size:11.5px;color:var(--accent);white-space:nowrap;opacity:.85}
.fm-two .fm-core{left:71.7%;top:50.7%;width:19%}.fm-two .fm-core p{font-size:13px;margin-top:4px}.fm-circle-why{display:none}.fm-two .fm-node{width:158px}.fm-node-feed{border-style:dashed}.fm-node-feed .fm-n{background:transparent;border:1px dashed var(--accent)}
.fm-node-circle{border-color:rgba(184,211,255,.35)}
.fm-crumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.fm-sh h2{margin:4px 0;font-size:30px}.fm-why{font-size:16px;color:var(--ink);max-width:760px;margin:4px 0 6px}
.fm-steps{list-style:none;padding:0;margin:16px 0;display:flex;flex-direction:column;gap:0}
.fm-step{display:grid;grid-template-columns:40px 1fr;gap:12px;position:relative;padding:0 0 18px;background:none!important;border:0!important}
.fm-step::before{content:"";position:absolute;left:19px;top:34px;bottom:0;width:2px;background:var(--line-2)}.fm-step:last-child::before{display:none}
.fm-sn{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:700;border:2px solid var(--line-2);background:var(--bg-2)}
.fm-step.fm-live .fm-sn{border-color:var(--good);color:var(--good)}.fm-step.fm-held .fm-sn{border-color:var(--warn);color:var(--warn)}.fm-step.fm-planned .fm-sn{border-style:dashed;border-color:var(--accent);color:var(--accent)}.fm-step.fm-outside .fm-sn{border-color:var(--metal);color:var(--metal)}
.fm-sb{padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg-2)}.fm-sb b{font-size:15px}.fm-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);margin-top:4px}
.fm-st{font-weight:600}.fm-hands{margin:6px 0 0;color:var(--accent);font-size:13px}.fm-open{border:1px solid rgba(226,170,82,.4);background:var(--warn-a);border-radius:10px;padding:10px 14px}.fm-open h4{margin:0 0 4px}.fm-next{margin:10px 0}
@media (max-width:800px){.fm-ring{aspect-ratio:auto;min-height:0;display:flex;flex-direction:column;gap:8px;padding:12px}.fm-ring svg{display:none}.fm-core{position:static;transform:none;width:auto;margin-bottom:6px}.fm-node{position:static;transform:none;width:auto}.fm-node:hover{transform:none}.fm-two .fm-node{width:auto}.fm-eng,.fm-join{position:static;transform:none;text-align:left;margin-top:8px}.fm-two .fm-core{display:none}.fm-circle-why{display:block;margin:4px 0;color:var(--ink-2);font-size:13px}}

/* #169 the Wire — Build Room ▸ Everything */
.bw-top{display:flex;gap:12px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}.bw-top h3{margin:0 0 4px}.bw-q{min-width:220px;padding:7px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink)}
.bw-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}.bw-chip{border:1px solid var(--line);background:var(--card,var(--bg-2));color:var(--ink);border-radius:999px;padding:4px 11px;font-size:12.5px;cursor:pointer}.bw-chip span{color:var(--ink-3);margin-left:3px}.bw-chip.on{border-color:var(--accent);background:var(--accent-a);color:var(--accent)}
.bw-who .bw-chip{font-size:12px;padding:3px 9px}
.bw-where{margin:12px 0;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--bg-2)}.bw-where summary{cursor:pointer;font-weight:600}
.bw-tab{width:100%;border-collapse:collapse;margin-top:8px;font-size:12.5px}.bw-tab th,.bw-tab td{padding:4px 6px;border-bottom:1px solid var(--line);text-align:center}.bw-tab th:first-child,.bw-tab td:first-child{text-align:left;white-space:nowrap}.bw-tab td i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.bw-tab td.z{color:var(--ink-3)}.bw-tab td.bw-miss{color:var(--warn)}
.bw-list{margin-top:10px}.bw-day{font:600 11px/1 var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:16px 0 6px}
.bw-it{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:9px 10px;border-left:3px solid var(--c);border-radius:8px;background:var(--bg-2);margin-bottom:6px}
.bw-it.bw-bad{background:rgba(226,92,92,.10)}.bw-it.bw-att{background:var(--warn-a)}.bw-it.bw-ask{background:var(--accent-a)}
.bw-t{font-size:12px;color:var(--ink-3);padding-top:2px}.bw-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bw-k{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-2);border-radius:999px;padding:1px 7px;color:var(--ink-2)}
.bw-k-refused{border-color:#e25c5c;color:#e25c5c}.bw-k-ask{border-color:var(--accent);color:var(--accent)}
.bw-ti{font-weight:600;margin-top:3px}.bw-tx{font-size:13px;color:var(--ink-2);margin-top:3px;word-break:break-word}
@media (max-width:640px){.bw-it{grid-template-columns:1fr}.bw-q{width:100%}.bw-tab{display:block;overflow-x:auto}}
.bw-note{margin:12px 0;padding:12px;border:1px solid var(--accent);border-radius:12px;background:var(--accent-a)}.bw-note-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.bw-bot i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c);margin-right:6px}.bw-note-r{display:flex;gap:8px;margin-top:8px}.bw-note-r textarea{flex:1;min-height:44px;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);font:inherit;resize:vertical}
.bw-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;margin:12px 0}.bw-card{border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:10px 12px}.bw-card h4{margin:0 0 6px}
.bw-net{width:100%;height:auto;display:block}.bw-e{fill:none;opacity:.45}.bw-e.hot{opacity:.95;stroke-dasharray:8 6;animation:bwflow 1.4s linear infinite}.bw-e.file{stroke-dasharray:2 5}
@keyframes bwflow{to{stroke-dashoffset:-28}}
.bw-n{cursor:pointer}.bw-n circle{stroke:var(--bg);stroke-width:2}.bw-n circle.out{fill-opacity:.15!important;stroke:currentColor;stroke-dasharray:3 3}.bw-n text{fill:var(--ink-2);font-size:11px;text-anchor:middle}.bw-n.on circle{stroke:var(--accent);stroke-width:3}
.bw-xfer ul{list-style:none;margin:0;padding:0;max-height:300px;overflow-y:auto}.bw-xfer li{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.bw-xfer li b{display:block;font-size:13px;word-break:break-all}.bw-xfer small{color:var(--ink-3);font-size:11.5px}
.bw-fi{flex:none;width:38px;height:38px;border-radius:8px;display:grid;place-items:center;font-size:10px;font-weight:700;letter-spacing:.06em;background:var(--accent-a);color:var(--accent)}
@media (max-width:820px){.bw-grid{grid-template-columns:1fr}.bw-note-r{flex-direction:column}}
@media (prefers-reduced-motion:reduce){.bw-e.hot{animation:none}}
/* #170 Everything: the conversation opens beside the stream; the daily check-in; conversation cards */
.bw-split.on{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);gap:14px;align-items:start}.bw-pane{position:sticky;top:70px;max-height:calc(100vh - 90px);overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
.bw-pane .br-thread{border:0;min-height:0}.bw-x{float:right;margin:6px 8px 0 0;background:none;border:0;color:var(--ink-2);font-size:22px;cursor:pointer;position:relative;z-index:2}
.bw-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bw-check{margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}.bw-check-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.bw-cis{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;align-items:center}.bw-crew{opacity:.85}
.bw-ci{display:flex;align-items:center;gap:7px;padding:5px 10px 5px 5px;border-radius:999px;border:1px solid var(--line);background:var(--card,var(--bg-3));color:var(--ink);cursor:pointer;font-size:12.5px}
.bw-ci i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:10.5px;font-weight:700;background:var(--c);color:#0b1030}
.bw-ci small{color:var(--ink-3)}.bw-ci-in{border-color:var(--good)}.bw-ci-in small{color:var(--good);font-weight:600}
.bw-ci-active{border-color:var(--warn)}.bw-ci-active small{color:var(--warn)}.bw-ci-quiet i{filter:grayscale(1);opacity:.45}.bw-ci-attention{border-color:#e25c5c}.bw-ci-attention small{color:#e25c5c}
.bw-st{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:1px 7px;border:1px solid var(--line-2);color:var(--ink-2)}.bw-st-open{border-color:var(--warn);color:var(--warn)}.bw-st-done{opacity:.7}
.bw-rec{margin:4px 0 2px;display:flex;flex-direction:column;gap:3px}.bw-rp{font-size:12.5px;color:var(--ink-2);border-left:2px solid var(--c);padding-left:7px}.bw-rp b{color:var(--ink)}
.bw-rep{font-size:11px;color:var(--ink-3);font-weight:400;border:1px dashed var(--line-2);border-radius:999px;padding:0 7px}
@media (max-width:980px){.bw-split.on{grid-template-columns:1fr}.bw-pane{position:static;max-height:none}}
.bw-wl{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}.bw-wl li{display:flex;flex-wrap:wrap;gap:5px;align-items:center;font-size:12.5px}
.bw-wl b{min-width:130px;display:inline-flex;align-items:center;gap:6px}.bw-wl b i{width:9px;height:9px;border-radius:50%;display:inline-block}
.bw-wk{border:1px solid var(--line);border-radius:999px;padding:1px 8px;color:var(--ink-2)}.bw-wk.bw-miss{border-color:var(--warn);color:var(--warn)}
/* #171 the hub: How RAMCON works ▸ the flow · the Blueprint · loops · pipelines · builders · intentions */
.fm-hub{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 14px}.fm-hb{border:1px solid var(--line);background:var(--bg-2);color:var(--ink);border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer}.fm-hb.on{border-color:var(--accent);background:var(--accent-a);color:var(--accent);font-weight:600}
.bp{max-width:1100px}.bp-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}.bp-head h3{margin:0}
.bp-card{border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:12px 16px;margin:10px 0}.bp-card h4{margin:0 0 8px}.bp-card p{margin:6px 0;line-height:1.5}.bp-what p:first-of-type{font-size:16px;color:var(--ink)}
.bp-dl{display:grid;grid-template-columns:200px 1fr;gap:8px 16px;margin:0}.bp-dl dt{font-weight:600}.bp-dl dd{margin:0;color:var(--ink-2)}
.bp-roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.bp-role{border:1px solid var(--line);border-radius:10px;padding:8px 10px}.bp-role small{display:block;color:var(--ink-3);font-size:11.5px}.bp-role p{margin:4px 0;font-size:13px}
.bp-loops{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.bp-loop{border:1px solid var(--line);border-left:4px solid var(--line-2);border-radius:10px;padding:10px 12px;background:var(--bg-2)}
.bp-loop p{margin:6px 0;font-size:13px;color:var(--ink-2)}.bp-loop small{color:var(--ink-3)}.bp-lh{display:flex;justify-content:space-between;gap:8px}.bp-pill{font-size:11px;border-radius:999px;padding:1px 8px;border:1px solid currentColor;white-space:nowrap}
.bp-ok{border-left-color:var(--good)}.bp-ok .bp-pill{color:var(--good)}.bp-part{border-left-color:var(--warn)}.bp-part .bp-pill{color:var(--warn)}.bp-open{border-left-color:#e25c5c}.bp-open .bp-pill{color:#e25c5c}
.bp-pipes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.bp-steps{margin:8px 0;padding-left:20px}.bp-steps li{margin:5px 0}.bp-steps li span{margin-left:8px;font-size:11px;color:var(--ink-3)}
.bp-s-live span{color:var(--good)!important}.bp-s-planned span{color:var(--accent)!important}.bp-s-manual span{color:var(--warn)!important}
.bp-hz{margin:14px 0 6px;font:600 11px/1 var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.bp-ints{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.bp-int{display:grid;grid-template-columns:1fr auto;gap:6px 12px;border:1px solid var(--line);border-left:4px solid var(--good);border-radius:10px;padding:8px 12px;background:var(--bg-2)}.bp-int.bp-open{border-left-color:var(--warn)}.bp-int.bp-split{border-left-color:#e25c5c}
.bp-it p{margin:0}.bp-it small{color:var(--ink-3)}.bp-who{display:flex;gap:8px;align-items:center}.bp-who span{display:inline-flex;gap:3px;align-items:center;font-size:12px;color:var(--ink-2)}
.bp-st{font-style:normal;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;border:1px solid var(--line-2)}.bp-st-agree{color:var(--good);border-color:var(--good)}.bp-st-disagree{color:#e25c5c;border-color:#e25c5c}.bp-st-unsure{color:var(--warn);border-color:var(--warn)}
.bp-acts{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;align-items:center}.bp-sb{border:1px solid var(--line);background:none;color:var(--ink-2);border-radius:999px;padding:2px 10px;font-size:12px;cursor:pointer}.bp-sb.on{border-color:var(--accent);color:var(--accent)}
.bp-form{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.bp-form textarea{flex:1 1 100%;padding:8px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);font:inherit}.bp-form input,.bp-form select{padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink)}
.bp-help{border-color:var(--warn)}
@media (max-width:700px){.bp-dl{grid-template-columns:1fr}.bp-int{grid-template-columns:1fr}}
.bp-sp{flex:1}.bp-int.bp-unsure{border-left-color:var(--warn)}.bp-int.bp-waiting{border-left-color:var(--line-2)}
/* #172 Build with us · requests · your AI */
.bw-hero h3{margin:0 0 4px}.bw-hero p{margin:0 0 10px;color:var(--ink-2);font-size:15px}
.bw-steps{list-style:none;padding:0;margin:10px 0 14px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;counter-reset:s}
.bw-steps li{position:relative;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:10px;display:flex;flex-direction:column;gap:3px}.bw-steps li span{font-size:20px}.bw-steps li small{color:var(--ink-3);font-size:11.5px;line-height:1.35}
.bw-steps li:not(:last-child)::after{content:"→";position:absolute;right:-9px;top:40%;color:var(--accent);font-weight:700;z-index:1}
.bw-ways{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0}.bw-way{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--bg-2);display:flex;flex-direction:column;gap:6px;align-items:flex-start}.bw-way h4{margin:0}.bw-way p{margin:0;font-size:13px;color:var(--ink-2);flex:1}
.bwf-card{border:1px solid var(--accent);border-radius:12px;padding:12px 14px;margin:10px 0;background:var(--accent-a);display:flex;flex-direction:column;gap:8px}.bwf-card h4{margin:0}.bwf-card label{display:flex;flex-direction:column;gap:4px;font-size:13px}
.bwf-card input,.bwf-card textarea,.bwf-card select{padding:7px 9px;border-radius:8px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);font:inherit}.bwf-b{display:flex;gap:8px}
.bw-guide summary{cursor:pointer}.bw-guide ol{margin:8px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.bw-chip{border:1px solid var(--line);background:var(--bg-2);color:var(--ink);border-radius:999px;padding:4px 11px;font-size:12.5px;cursor:pointer}.bw-chip.on{border-color:var(--accent);background:var(--accent-a);color:var(--accent)}
.bwr-l{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:6px}.bwr-i{border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:var(--bg-2)}.bwr-i small{color:var(--ink-3)}.bwr-i p{margin:5px 0 0;font-size:13px;color:var(--ink-2)}
.bwr-s{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:1px 8px;border:1px solid var(--line-2);margin-left:6px}.bwr-build,.bwr-built{border-color:var(--good);color:var(--good)}.bwr-owner{border-color:var(--warn);color:var(--warn)}.bwr-review{border-color:var(--accent);color:var(--accent)}.bwr-notnow{opacity:.7}
.bwr-src{font-size:11px;color:var(--ink-3);margin-left:6px}.bwr-a{color:var(--ink)!important}.bwr-d{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.bw-req{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}.bw-req span{color:var(--ink-2);font-size:13px}
.ai-chip{position:relative;border:1px solid var(--line);background:transparent;color:var(--ink-2);border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer}.ai-chip.on{border-color:var(--accent);color:var(--accent)}
.ai-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:#ffcf3d;box-shadow:0 0 6px #ffcf3d}.ai-ideas{margin:6px 0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
@media (max-width:900px){.bw-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.bw-steps li::after{display:none}.bw-ways{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.bw-ways{grid-template-columns:1fr}}

/* FT15 — the footer: one calm RAMCON band, closed by default; the panel opens BELOW it, in the page (public/footer-ui.js).
   Scoped to #appFooter .ft15; colors from the brand/look tokens (match mode recolors --brand like the header). No yellow rule. */
#appFooter.afoot:has(.ft15){border-top:0;background:transparent;margin-top:48px}
#appFooter .ft15{--ft-band:var(--brand);--ft-ink:#f4f6ff;--ft-ink-2:#c9cff0;--ft-edge:rgba(255,255,255,.16)}
#appFooter .ft-bar{display:flex;align-items:center;gap:14px;min-height:52px;padding:6px var(--gut);background:var(--ft-band);color:var(--ft-ink);border-top:1px solid var(--ft-edge)}
#appFooter .ft-mark{display:flex;align-items:center;gap:8px;font-family:var(--f-disp);letter-spacing:.08em;white-space:nowrap}
#appFooter .ft-mark img{border-radius:5px;display:block}
#appFooter .ft-mark b{font-size:17px;font-weight:700}
#appFooter .ft-mark small{font-size:13px;color:var(--ft-ink-2);letter-spacing:.12em;text-transform:uppercase}
#appFooter .ft-toggle{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;border-radius:18px;font:600 13px var(--f-ui)}
#appFooter .ft-toggle{background:rgba(255,255,255,.08);color:var(--ft-ink);border:1px solid var(--ft-edge);cursor:pointer}
#appFooter .ft-toggle:hover{background:rgba(255,255,255,.14)}
#appFooter .ft-toggle:focus-visible,#appFooter .ft15 a:focus-visible,#appFooter .ft15 button:focus-visible{outline:2px solid #b8d3ff;outline-offset:2px}
#appFooter .ft-chev{display:inline-block;transition:transform .18s ease}
#appFooter .ft15.open .ft-chev{transform:rotate(180deg)}
#appFooter .ft-ver{font-size:12px;color:var(--ft-ink-2)}
#appFooter .ft-ver .fver summary{cursor:pointer;color:var(--ft-ink-2)}
#appFooter .ft-ver .fver span{display:block;font-size:11px}
#appFooter .ft-bar .grow{flex:1}
#appFooter .ft-panel{background:var(--bg-2);color:var(--ink);border-top:3px solid var(--ft-band);padding:18px var(--gut) 14px}
#appFooter .ft-live{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;min-height:30px;align-items:center}
#appFooter .ft-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:16px;font:500 13px var(--f-ui)}
#appFooter .ft-chip{background:var(--bg-3);color:var(--ink);border:1px solid var(--line-2);cursor:pointer}
#appFooter .ft-chip.warn{border-color:var(--warn);color:var(--ink)}
#appFooter .ft-chip svg,#appFooter .ft-it svg{width:18px;height:18px;flex:none;color:var(--accent)}
#appFooter .ft-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 26px}
#appFooter .ft-g h4{margin:0 0 8px;font:700 13px var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
#appFooter .ft-g h4{padding-bottom:6px;border-bottom:1px solid var(--line-2)}
#appFooter .ft-list{display:flex;flex-direction:column;gap:2px}
#appFooter .ft-it{display:flex;gap:10px;align-items:flex-start;width:100%;min-height:40px;padding:7px 8px;border-radius:8px;text-align:left}
#appFooter .ft-it{background:none;border:0;color:var(--ink);text-decoration:none;font:inherit;cursor:pointer}
#appFooter .ft-it:hover{background:var(--hover)}
#appFooter .ft-it b{display:block;font-size:14px;font-weight:600}
#appFooter .ft-it i{font-style:normal;color:var(--ink-3);font-size:12px}
#appFooter .ft-it small{display:block;font-size:12.5px;line-height:1.35;color:var(--ink-2);margin-top:2px}
#appFooter .ft-door b{color:var(--accent)}
#appFooter .fm-sc-row{display:flex;flex-wrap:wrap;gap:6px}
#appFooter .ft-low{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
#appFooter .ft-low .grow{flex:1}
#appFooter .ft-mini{min-height:32px;padding:0 12px;border-radius:6px;background:none;border:1px solid var(--line-2);color:var(--ink);font:500 13px var(--f-ui)}
#appFooter .ft-mini{cursor:pointer}
#appFooter .ft-mini:hover{background:var(--hover)}
#appFooter .ft-note{font-size:13px;color:var(--ink-2)}
#appFooter .ft-legal{margin-top:10px;font-size:12px;color:var(--ink-3)}
#appFooter .ft-legal a{color:var(--ink-2)}
@media (max-width:1100px){#appFooter .ft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  #appFooter .ft-bar{flex-wrap:wrap;padding:8px 16px;gap:8px 10px}
  #appFooter .ft-ver{flex-basis:100%;order:9}
  #appFooter .ft-panel{padding:14px 16px}
  #appFooter .ft-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){#appFooter .ft-chev{transition:none}}
@media print{#appFooter .ft-panel,#appFooter .ft-toggle{display:none!important}}
#appFooter .ft-bar .ai-chip{color:var(--ft-ink-2);border-color:var(--ft-edge);min-height:30px}
#appFooter .ft-bar .ai-chip.on{color:#b8d3ff;border-color:#b8d3ff}
#appFooter .ft-bar .jz{color:var(--ft-ink)}
.bw-sw{display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;margin:10px 0;padding:9px 12px;border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:12px;background:var(--bg-2)}
.bw-swi{font-size:13px;color:var(--ink-2)}.bw-swi b{color:var(--ink)}.bw-swi.on b{color:var(--good)}.bw-swi small{color:var(--ink-3)}
/* MC15 Needs your attention — above the desk layout, never a block */
.dkn{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 12px;padding:10px 14px;border:1px solid var(--line-2);border-left:4px solid var(--crit);border-radius:10px;background:var(--bg-2)}
.dkn-h{font-family:var(--f-disp);letter-spacing:.08em;text-transform:uppercase;font-size:13px;color:var(--ink)}
.dkn-i{font-size:13.5px;color:var(--ink-2)}.dkn-i b{color:var(--ink)}.dkn-i.bd b{color:var(--crit)}.dkn-i.wn b{color:var(--warn)}.dkn-i.ok{color:var(--good)}.dkn-i.unk{color:var(--warn)}
/* My Tools (MT16) */
.dkt-l{list-style:none;margin:0;padding:0}.dkt-r{display:flex;align-items:center;gap:4px;padding:3px 0;border-bottom:1px solid var(--line-2)}.dkt-r .grow{flex:1}.dkt-r.pin .dkt-o b{color:var(--ink)}.dkt-o{text-align:left;min-height:36px}.dkt-unk{color:var(--warn)}
.dkn .dkw-x{margin-left:auto}
/* Build Room ▸ Team medals (lib/honors.js) */
.tm-medals{display:flex;flex-direction:column;gap:8px;margin:8px 0}
.tm-medal{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line-2);border-radius:10px;background:linear-gradient(90deg,rgba(242,210,122,.10),transparent)}
.tm-medal img{flex:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}
.tm-medal b{display:block;color:var(--ink);font-family:var(--f-disp);letter-spacing:.06em;text-transform:uppercase}
.tm-medal small{display:block;color:var(--ink-2);font-size:12.5px;line-height:1.35}.tm-medal em{display:block;font-style:normal;color:var(--ink-3);font-size:11.5px;margin-top:2px}
.tm-mdot{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#d9a93c;color:#010160;font-size:18px}
.tm-give{align-self:flex-start}
/* PI15 owner spotlight (public/permits-ui.js) */
.rk-own{width:100%;background:none;border:0;border-bottom:1px solid var(--line);color:inherit;font:inherit;text-align:left;cursor:pointer;min-height:40px}.rk-own:hover span,.rk-own:focus-visible span{color:var(--accent);text-decoration:underline}
.os-wrap{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.45);display:flex;justify-content:flex-end}
body.os-open{overflow:hidden}
.os-panel{background:var(--bg);width:min(760px,100%);height:100%;display:flex;flex-direction:column;border-left:1px solid var(--line-2);box-shadow:-12px 0 30px rgba(0,0,0,.35)}
.os-top{padding:12px 16px;border-bottom:1px solid var(--line)}.os-top h2{margin:4px 0 0;font-size:24px;overflow-wrap:anywhere}.os-top h2:focus{outline:none}
.os-body{flex:1;overflow:auto;padding:8px 16px 16px}
.os-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 16px;border-top:1px solid var(--line-2);background:var(--bg-2)}.os-bar .linkbtn{min-height:40px}
.os-go a{color:inherit}.os-addc{display:flex;gap:6px;align-items:center;font-size:13px}
.os-prev{padding:10px 16px;border-top:1px solid var(--line-2);background:var(--bg-3)}.os-prev ul{margin:4px 0 6px 18px;padding:0}
.os-route.k-service,.os-route.k-paused,.os-route.k-research{border-left:3px solid var(--warn,#e0a030)}
.os-cands{border:0;padding:0;margin:8px 0}.os-c{display:flex;gap:8px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line);min-height:40px}.os-c small{display:block;color:var(--ink-3)}
.os-fil{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0}.os-p{padding:8px 0;border-bottom:1px solid var(--line)}.os-p ul{margin:4px 0 0 18px;padding:0;font-size:13px}
.os-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}.os-form label{display:flex;flex-direction:column;font-size:12px;color:var(--ink-3);gap:2px}.os-form .w{grid-column:1/-1}
.os-touch{display:grid;grid-template-columns:110px 1fr;gap:6px;margin:4px 0}
/* PI15 #211: the matched company's contacts, buildings, opportunities and bids; a new company's typed website / location */
.os-sub{margin:10px 0 2px;font-size:13px;color:var(--ink-2)}.os-new{flex-basis:100%;margin:2px 0 6px}.os-new summary{cursor:pointer;font-size:12px;color:var(--ink-3)}
.mk-acct .os-form{margin:8px 0}.mk-acct .os-touch input{min-width:0}
@media (max-width:640px){.os-panel{width:100%;border-left:0}.os-form{grid-template-columns:1fr}.os-touch{grid-template-columns:1fr}.os-bar{position:sticky;bottom:0}}
/* the tapered takeoff workspace (#204, public/taperws-ui.js) */
.tw{position:fixed;inset:0;z-index:8500;overflow:auto;background:var(--bg);color:var(--ink)}
.tw-bar{position:sticky;top:0;z-index:2;display:flex;gap:12px;align-items:center;padding:10px 16px;background:var(--bg-2);border-bottom:1px solid var(--line-2)}
.tw-grid{display:grid;grid-template-columns:240px minmax(0,1fr) 320px;gap:14px;padding:12px 16px}
.tw-l,.tw-r{font-size:13px}.tw-l label,.tw-r label{display:block;margin:5px 0}.tw-l input,.tw-r input,.tw-r select,.tw-r textarea{width:100%}
.tw-2{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tw-box{border:1px solid var(--line-2);border-radius:10px;padding:8px 10px;margin:8px 0}
.tw-sh{display:block;width:100%;text-align:left;margin:4px 0;padding:6px 8px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg-2);color:var(--ink);min-height:44px}
.tw-sh.on{outline:2px solid var(--accent)}.tw-sh small{display:block;color:var(--ink-3)}
.tw-cal{font-size:12px;margin:4px 0;padding:4px 8px;border-left:3px solid var(--warn)}.tw-cal.ok{border-color:var(--good)}
.tw-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.tw-tools button{min-width:44px;min-height:36px}
.tw-stage{overflow:auto;max-height:60vh;border:1px solid var(--line-2);border-radius:8px;background:var(--bg-inset)}.tw-stage canvas{display:block;cursor:crosshair}
.tw-strip{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0;padding:8px 10px;border-radius:8px;background:var(--bg-2);border:1px solid var(--line)}.tw-bad{color:var(--warn)}
.tw-res svg{width:100%;max-width:640px;height:auto;color:var(--ink-2)}.tw-res .twb{fill:var(--bg-3)}.tw-res .twf{fill:var(--accent-a)}.tw-res .twt{fill:var(--warn-a)}.tw-res .twc{fill:var(--good-a)}
.tw-scroll{overflow-x:auto}
@media (max-width:900px){.tw-grid{grid-template-columns:1fr}.tw-stage{max-height:50vh}}

/* #208 photos needed before a service job closes (public/photos.js needPanel, app.js svPhotos) */
.phneed.no{border-left:3px solid var(--warn)} .phneed.ok{border-left:3px solid var(--good)} .phneed.unk{border-left:3px solid var(--ink-3)}
.phn-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:4px 0} .phn-row>b{min-width:120px}
.phn-ok{color:var(--good)} .phn-no{color:var(--crit);font-weight:700} .phn-unk{color:var(--ink-2)}
.phn-acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}
/* OPS16 — the superintendent / operations today desk (public/opsday-ui.js) */
.ops-rows{list-style:none;margin:0;padding:0}.ops-rows>li{padding:10px 0;border-bottom:1px solid var(--line)}.ops-rows>li:last-child{border-bottom:0}
.ops-r1{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.ops-r2{margin-top:3px;font-size:12.5px}.ops-r3{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.ops-r3 .dkw-x,.ops-pick .dkw-x,.ops-dr footer .dkw-x{min-height:40px;padding:8px 14px;font-size:13.5px}
.ops-job{color:var(--accent);font-weight:500}.ops-nr{color:var(--warn);font-style:italic}.ops-unk{color:var(--warn)}
.ops-sum{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--ink-2);margin:2px 0 8px}.ops-sum b{color:var(--ink)}.ops-sum .neg b{color:var(--crit)}
.ops-wx{font-size:13px;margin:0 0 8px;padding:6px 10px;border-radius:6px;background:var(--bg-3)}.ops-wx.wet{background:var(--warn-a);color:var(--warn)}.ops-wx.unk{color:var(--warn)}
.ops-pick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line-2)}.ops-pick label{font-size:12.5px;color:var(--ink-3)}
.ops-pick select{min-height:40px;max-width:100%;flex:1 1 200px}
.ops-notes{margin:6px 0 0;padding-left:16px;font-size:12.5px}.ops-notes li{margin:2px 0}.ops-nonote{margin-top:4px}
.ops-nf{margin-top:8px;display:grid;gap:6px}.ops-nf textarea{width:100%;box-sizing:border-box;font:inherit;padding:8px;border-radius:6px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink)}
.ops-nf>div{display:flex;gap:8px}.ops-err{color:var(--crit);font-size:12.5px;margin-top:6px}.ops-said{color:var(--good);font-size:13px;margin:0 0 6px}
.ops-a.over{border-left:3px solid var(--crit);padding-left:8px}.ops-done{margin-top:8px}
.ops-crew{list-style:none;margin:6px 0 0;padding:0;font-size:12.5px;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:2px 12px}.ops-crew span{float:right;font-variant-numeric:tabular-nums}
.ops-sure{margin-top:8px;padding:8px 10px;border-radius:6px;background:var(--warn-a);font-size:13px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ops-notin{font-size:12.5px;margin-top:8px}.ops-close,.ops-closed{margin-top:10px;font-size:13px}.ops-closed{color:var(--good)}
.ops-approve.ops-ev{box-shadow:0 0 0 2px var(--warn-a)}
.ops-dr{position:fixed;top:64px;right:16px;bottom:16px;width:min(440px,calc(100vw - 32px));z-index:60;overflow:auto;background:var(--bg-2);border:1px solid var(--line-2);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.ops-dr header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.ops-dr h4{margin:14px 0 4px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.ops-dr footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.ops-dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}.ops-dl dt{color:var(--ink-3)}.ops-dl dd{margin:0}
.ops-x{min-width:40px;min-height:40px;justify-content:center}
@media (max-width:700px){.ops-dr{top:0;right:0;bottom:0;width:100vw;border-radius:0}}
/* SKD16 the crew-day drawer (public/crewday-ui.js): the job page's schedule row opens a day, not a record dump */
.cdw-h .cdw-job{display:inline-block;margin:0 0 6px;color:var(--accent);font-size:13.5px;text-decoration:none;overflow-wrap:anywhere}.cdw-h .cdw-job:hover{text-decoration:underline}
.cdw-h h3 small{font-size:.6em;color:var(--ink-3);letter-spacing:.04em;text-transform:none;font-weight:500}
.cdw .pill.crit,.cdw-h .pill.crit{background:var(--critbg);color:var(--crit)}
.cdw{overflow-wrap:anywhere}
.cdw-s{padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid var(--line)}
.cdw-s h4{margin:0 0 10px;font-family:var(--f-disp);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.cdw-scope{margin:0 0 10px;font-size:17px;line-height:1.45;white-space:pre-wrap}.cdw-scope.none{font-size:13px;color:var(--ink-3)}
.cdw-mh{font-size:14px;margin:0 0 6px}.cdw-warn{margin:6px 0;padding:6px 10px;border-left:3px solid var(--warn);background:var(--warnbg);font-size:12.5px}
.cdw-l{margin:8px 0;font-size:13px;white-space:pre-wrap}.cdw-l small,.cdw-p small,.cdw-hrs small,.cdw-facts small{display:block;color:var(--ink-3);font-size:11.5px;white-space:normal}
.cdw-pp{display:flex;flex-wrap:wrap;gap:10px 28px;margin:10px 0}.cdw-p{font-size:13.5px}
.cdw-rep{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.cdw-hrs{display:flex;flex-wrap:wrap;gap:10px 28px;margin:8px 0 12px;font-size:13px}.cdw-hrs b{font-size:18px;font-variant-numeric:tabular-nums}
.cdw-crew{display:grid;gap:0;margin:0 0 12px;font-size:13px}.cdw-crew>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}.cdw-crew>div:last-child{border-bottom:0}.cdw-crew b{font-variant-numeric:tabular-nums;white-space:nowrap}.cdw-crew small{color:var(--ink-3)}
.cdw-flags{display:grid;gap:6px;margin:0 0 12px;font-size:13px}
.cdw-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 20px;margin:0 0 12px;font-size:13px;white-space:pre-wrap}
.cdw-ph{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;margin:8px 0}.cdw-ph button{padding:0;border:0;background:none;cursor:pointer;aspect-ratio:1;overflow:hidden;border-radius:2px}.cdw-ph img{width:100%;height:100%;object-fit:cover;display:block}
.cdw-more{font-size:13px}.cdw-addr{font-size:14px;margin:0 0 8px}
.cdw-acts{display:flex;flex-wrap:wrap;gap:8px}.cdw-acts .linkbtn{min-height:40px;display:inline-flex;align-items:center}.cdw-s.cdw-acts{border-bottom:0}
/* UX30: the record drawer in words (public/recdrawer-ui.js) */
.rdw-h .rdw-kind{text-transform:none;letter-spacing:.02em;margin:0 0 4px}.rdw-h h3{overflow-wrap:anywhere}
.rdw-acts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.rdw-acts .linkbtn{min-height:38px;display:inline-flex;align-items:center}
.rdw-g{margin:0 0 18px}.rdw-g h4{margin:0 0 4px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.rdw .kv div{overflow-wrap:anywhere;min-width:0}.rdw-notes .kv{grid-template-columns:1fr}.rdw-notes .kv div:nth-child(even){text-align:left;font-weight:400}
.rdw-notes .kv div:nth-child(odd){padding-bottom:0;border-bottom:0}.rdw-note{white-space:pre-wrap;line-height:1.5}
.rdw-left{margin-top:4px}
@media (max-width:600px){.rdw .kv{grid-template-columns:minmax(0,40%) minmax(0,1fr)}.rdw-notes .kv{grid-template-columns:1fr}}
/* FM13 the Friday meeting card (public/fridaymeet-ui.js) */
.fmc{margin:0 0 18px;padding:16px 20px;border:1px solid var(--line-2);border-left:4px solid var(--line-2);border-radius:12px;background:var(--bg-2)}
.fmc-compact{padding:12px 18px}.fmc-compact .fmc-h{font-size:16px}
.fmc-soon{border-left-color:var(--warn)}.fmc-live{border-left-color:var(--crit);background:linear-gradient(90deg,var(--crit-a),transparent 60%),var(--bg-2)}
.fmc-stale{border-left-color:var(--ink-3)}
.fmc-tag{font-size:11px;letter-spacing:.2em;color:var(--ink-3);font-weight:600}
.fmc-h{margin:4px 0 2px;font-size:19px;line-height:1.3}.fmc-sub{margin:2px 0 8px;color:var(--ink-2);font-size:13.5px}
.fmc-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fmc-acts .linkbtn{min-height:36px}
.fmc-note{font-size:13px;color:var(--ink-2);padding:6px 10px;border:1px dashed var(--line-2);border-radius:8px}
.fmc-edit{margin-top:10px;display:grid;gap:6px}.fmc-edit label{font-size:12px;color:var(--ink-3)}.fmc-edit input{width:100%;min-width:0;min-height:36px}
.fmc-msg{margin:8px 0 0;font-size:13px}
.fmc-move{margin:4px 0 0;padding:8px 10px;border:1px solid var(--line-2);border-radius:8px;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center}.fmc-move legend{font-size:12px;color:var(--ink-3);padding:0 4px}.fmc-move .linkbtn{grid-column:1/-1;justify-self:start}
.fmc-recap{color:var(--ink)}

/* ===================== OI13 the Operations Brief (public/ops-brief.js) ===================== */
.obrief{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0 14px;background:var(--bg-2)}
.obrief h2{margin:0 0 6px}
.ob-head{margin-bottom:8px}.ob-head b{font-size:15px;line-height:1.35}
.ob-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}
.ob-story{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
.ob-story.ins-2{border-left:4px solid var(--crit)}.ob-story.ins-1{border-left:4px solid var(--warn)}.ob-story.ins-0{border-left:4px solid var(--good)}
.ob-top{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ob-q{font-size:11px;padding:1px 6px;border-radius:9px;border:1px solid var(--line-2)}
.ob-stale .ob-q,.ob-q.ob-stale,.ob-q.ob-unknown{border-color:var(--warn);color:var(--warn)}
.ob-acts,.ob-foot{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ob-foot{margin-top:8px}
.ob-acts .linkbtn,.ob-foot .linkbtn{min-height:32px}
div.ob-stale{border-left:3px solid var(--warn);background:var(--warn-a);padding:6px 10px;border-radius:6px;margin-bottom:6px}
.ob-more{display:none}
.ins-flash{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:640px){
  .obrief{padding:8px 10px}
  .ob-list{grid-template-columns:1fr}
  .obrief:not(.open) .ob-story:nth-child(n+2){display:none}
  .ob-more{display:inline-flex}
}

/* BM13: message a bot from its card (public/agentboard-ui.js AGB.dmOpen) — a persistent dialog, a full-height sheet on a phone */
.br-pop-dm{margin:8px 0 0}.br-dm-go{font-size:12.5px;padding:5px 10px}
.br-dm{position:fixed;inset:0;z-index:450;display:flex;align-items:center;justify-content:center;background:rgba(6,8,24,.55)}
.br-dm-box{display:flex;flex-direction:column;gap:8px;width:min(560px,94vw);max-height:86vh;padding:12px 14px;border-radius:14px;
  background:var(--bg,#fff);color:var(--ink,#1b1e2e);border:1px solid var(--line,#d9dce8);box-shadow:0 18px 40px rgba(0,0,0,.35)}
.br-dm-box header{display:flex;gap:10px;align-items:center}.br-dm-box header>div{flex:1;min-width:0}
.br-dm-box header b{display:block}.br-dm-box header small{display:block;color:var(--ink-3,#6b7084);font-size:12px}
.br-dm-box .bw-x{float:none;margin:0}
.br-dm-log{flex:1;min-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:4px 2px}
.br-dm-p{padding:7px 10px;border-radius:10px;background:var(--bg-2,#f1f2f8);max-width:88%;word-wrap:break-word}
.br-dm-p.mine{align-self:flex-end;background:var(--accent-soft,#e5ecff)}.br-dm-p small{color:var(--ink-3,#6b7084);font-size:11px}
.br-dm-st{margin:0;font-size:12.5px;color:var(--ink-2,#3d4256)}
.br-dm-box textarea{width:100%;min-height:72px;resize:vertical;font:inherit;padding:8px;border-radius:8px;border:1px solid var(--line,#d9dce8)}
.br-dm-act{display:flex;gap:8px;flex-wrap:wrap}.br-dm-act .btn{min-height:40px}
.tm-msg{margin-right:6px}
@media (max-width:600px){
  .br-dm{align-items:stretch}
  .br-dm-box{width:100%;max-height:none;height:100dvh;border-radius:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
}
@media print{.br-dm{display:none}}
/* #260 the basics (public/recon-ui.js RC.basics): key details, then every connection both ways; "not recorded" is said, never blank */
.rc-basics{margin:0 0 18px}.rc-nr{color:var(--ink-3);font-style:italic}
.rc-bd{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 18px;margin:0 0 14px}
.rc-bd dt{color:var(--ink-3);font-size:12px}.rc-bd dd{margin:2px 0 0;font-weight:600;word-break:break-word}
.rc-bg{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.rc-bgi{border:1px solid var(--line);border-radius:8px;padding:8px 0 4px;min-width:0}.rc-bgi h4{margin:0 12px 6px;font-size:13px}.rc-bgi h4 span{color:var(--ink-3);font-weight:400}
.rc-bgi>.rc-nr{padding:4px 12px 8px}.jbasics{grid-column:1/-1}
@media (max-width:640px){.rc-bg{grid-template-columns:1fr}}
/* #261 Basics fill (public/basicsfill-ui.js): the admin cards, the missing-basics panel and the job / building badge */
.bf .bf-card{margin:0 0 14px}.bf-run{margin-top:10px}.bf-counts{margin:6px 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bf-chip{border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:12px;color:var(--ink-2)}
.bf-chip.bf-written,.bf-chip.bf-queued,.bf-chip.bf-undone{border-color:var(--good)}.bf-chip.bf-failed,.bf-chip.bf-unknown,.bf-chip.bf-undo-unknown,.bf-chip.bf-undo-failed{border-color:var(--crit);color:var(--crit)}
.bf-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.bf-acts input{min-height:32px}.bf-confirm,.bf-ack{display:inline-flex;gap:6px;align-items:center}
.bf-hold{color:var(--warn);font-weight:600}.bf-probs{border-left:3px solid var(--crit);padding-left:8px;margin:8px 0}.bf-skip{margin:4px 0}
.bf-kpis{display:flex;flex-wrap:wrap;gap:16px;margin:8px 0}.bf-kpis div{display:flex;flex-direction:column}.bf-kpis b{font-family:var(--f-num);font-size:24px}.bf-kpis span{color:var(--ink-3);font-size:12px}
.bf-miss{display:inline-block;border:1px solid var(--warn);border-radius:6px;padding:0 6px;font-size:12px;margin:1px 2px}
.bf-badge{border:1px solid var(--warn);border-radius:8px;padding:6px 10px;margin:0 0 10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
/* #274: the features switched off for 3.300, on Admin ▸ Overview (public/featureoff-ui.js) */
.foff{margin:0 0 18px;padding:14px 18px;border:1px solid var(--line-2);border-left:4px solid var(--line-2);border-radius:12px;background:var(--bg-2)}
.foff ul{margin:8px 0 0;padding:0;list-style:none}.foff li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line-2)}
.foff li .linkbtn{margin-left:auto;min-height:44px}
/* #285: on a phone every button, link button, dropdown and fold-out is at least 40 x 40 px to a thumb (test/phone-a11y.test.js).
   Only the minimum grows, so the look stays; the small round "i" tips and map zoom buttons get a bigger invisible hit area.
   #308 (Marshal's ruling, 3.252): the #285 phone pass is switched off (lib/featureoff.js `phonepass`). Every rule below applies
   only under html.f-phonepass, which public/shared-ui.js featClass() sets only when the sign-in answer's `off` list is there and
   does not name phonepass. The aria-labels, alt text and Spanish lines from #285 are text and stay on. */
@media (max-width:760px){
  :where(html.f-phonepass) button,:where(html.f-phonepass) select,:where(html.f-phonepass) summary,:where(html.f-phonepass) .linkbtn,:where(html.f-phonepass) .hbtn,:where(html.f-phonepass) .fieldlink,:where(html.f-phonepass) #refresh,:where(html.f-phonepass) .askbtn{min-height:40px!important}
  :where(html.f-phonepass) button,:where(html.f-phonepass) .linkbtn,:where(html.f-phonepass) .hbtn,:where(html.f-phonepass) .askbtn{min-width:40px}
  :where(html.f-phonepass) #ws{height:auto;min-height:48px}
  :where(html.f-phonepass) .uav{width:40px}
  :where(html.f-phonepass) .itip{position:relative}:where(html.f-phonepass) .itip::after{content:"";position:absolute;inset:-14px}
  :where(html.f-phonepass) .leaflet-touch .leaflet-bar a.leaflet-control-zoom-in,:where(html.f-phonepass) .leaflet-touch .leaflet-bar a.leaflet-control-zoom-out{width:40px;height:40px;line-height:40px}
  :where(html.f-phonepass) .leaflet-marker-icon::after{content:"";position:absolute;inset:-9px}
  :where(html.f-phonepass) a[data-dk],:where(html.f-phonepass) .cw-row>a,:where(html.f-phonepass) .dkw-rt>a{display:inline-flex;align-items:center;min-height:40px} /* record links on a desk row */
}
/* #285: a form field shows the keyboard's place (the .bm-grid field rule outranked its own :focus, so focus changed nothing) */
:where(html.f-phonepass) .bm-grid input:not([type=checkbox]):not([type=radio]):focus,:where(html.f-phonepass) .bm-grid select:focus,:where(html.f-phonepass) .bm-grid textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-a)}
/* #285: the keyboard's place on a checkbox or radio (input:focus above takes the outline away) */
:where(html.f-phonepass) input[type=checkbox]:focus-visible,:where(html.f-phonepass) input[type=radio]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:760px){:where(html.f-phonepass) a.rx-r{min-height:40px;box-sizing:border-box;display:flex;align-items:center}} /* #290: Resources rows now draw for more roles — keep phone taps ≥40px (#285) */
:where(html.f-phonepass) .itip:focus-visible{outline:2px solid var(--accent);outline-offset:2px} /* keyboard focus must show (phone-a11y #285), the accent border alone can match the header */
:where(html.f-phonepass) .mxv button,:where(html.f-phonepass) .mxv .linkbtn{min-height:44px!important} /* the store viewer keeps its 44px taps (sr13); the #285 phone floor of 40px !important would lower them */

/* K7 (Kyle 10/19): the logo library (public/logos-ui.js) — each file on the background it is made for */
.lg-lede{max-width:760px;margin:0 0 6px;color:var(--ink-2);font-size:14px;line-height:1.55}
.lg-g{margin:20px 0 0}
.lg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.lg-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);overflow:hidden;transition:border-color var(--t) var(--ease),transform var(--t) var(--ease)}
.lg-card:hover{border-color:var(--line-3);transform:translateY(-1px)}
.lg-sw{display:grid;place-items:center;height:150px;padding:22px;border-bottom:1px solid var(--line)}
.lg-sw img{max-width:100%;max-height:100%;object-fit:contain}
.lg-light{background:#f6f6f3;background-image:linear-gradient(45deg,#e9e9e4 25%,transparent 25%,transparent 75%,#e9e9e4 75%),linear-gradient(45deg,#e9e9e4 25%,transparent 25%,transparent 75%,#e9e9e4 75%);background-size:16px 16px;background-position:0 0,8px 8px}
.lg-dark{background:#03042c;background-image:radial-gradient(120% 120% at 50% 0%,#0c0f48,#020322)}
.lg-b{display:flex;flex-direction:column;gap:3px;padding:12px 14px 14px}
.lg-b b{font-size:14.5px;color:var(--ink)}.lg-b span{font-size:13px;color:var(--ink-2)}.lg-b small{font-size:11.5px;color:var(--ink-3)}
.lg-act{display:flex;gap:8px;margin-top:10px}
@media (max-width:560px){.lg-grid{grid-template-columns:1fr}.lg-sw{height:130px}}
/* ---------- K22 bid page top block (Kyle 10/19; public/bidpage-ui.js) ---------- */
.bp-head{display:block;padding:8px 0 18px}
.bp-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.bp-id{font-family:var(--f-disp);font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.bp-id b{color:var(--accent);font-weight:600;letter-spacing:.08em}
.bp-off{font-size:12px;color:var(--ink-3)}
.bp-a{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:20px 28px;padding:18px 20px;background:linear-gradient(180deg,var(--bg-3),var(--bg-2));border:1px solid var(--line-2);border-radius:calc(var(--r) + 4px)}
.bp-main{min-width:0}
.bp-main h1{margin:0 0 4px;font:400 34px/1.12 var(--f-num,var(--f-ui));letter-spacing:.005em;color:var(--ink);overflow-wrap:anywhere}
.bp-meta{color:var(--ink-2);font-size:13px;margin-bottom:10px}
.bp-lbl{font-family:var(--f-disp);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.bp-line{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:baseline;margin:6px 0 12px;font-size:16px}
.bp-f{display:inline-flex;align-items:baseline;gap:10px;min-width:0}
.bp-nr{color:var(--ink-3);font-style:italic;font-weight:400}
.bp-to{position:relative;display:inline-flex;align-items:center;gap:6px;cursor:default;border-bottom:1px dashed var(--line-3);outline:none;min-height:28px}
.bp-to:focus-visible{box-shadow:0 0 0 2px var(--accent);border-radius:3px}
.bp-caret{font-size:11px;color:var(--ink-3)}
.bp-tolist{display:none;position:absolute;left:0;top:100%;z-index:30;min-width:260px;max-width:min(420px,86vw);padding:10px 12px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:0 10px 30px rgba(0,0,0,.45)}
.bp-to:hover .bp-tolist,.bp-to:focus-within .bp-tolist{display:block}
.bp-tolh{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px}
.bp-tolist ul{list-style:none;margin:0;padding:0}
.bp-tolist li{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--line)}
.bp-tolist li:first-child{border-top:0}
.bp-co{display:inline-flex;align-items:center;min-height:36px;color:var(--accent);font-weight:600}
.bp-status{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 0;border-top:1px solid var(--line)}
.bp-sel{min-height:36px;min-width:210px;padding:0 30px 0 12px;background:var(--bg-inset) var(--chev) no-repeat right 12px center;color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r);font:inherit;appearance:none;-webkit-appearance:none}
.bp-sel:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.bp-sel:disabled{opacity:.75;cursor:not-allowed}
.bp-ro{font-size:12px}
.bp-budget{flex-basis:100%;font-size:13px;color:var(--ink-2)}
.bp-roof{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0 0;border-top:1px solid var(--line)}
.bp-rl{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.bp-rp{display:inline-flex;flex-direction:column;padding:4px 10px;background:var(--bg-inset);border:1px solid var(--line);border-radius:var(--r)}
.bp-rp small{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.bp-rp b{font-weight:600;color:var(--ink)}
.bp-dash{color:var(--ink-3)}
.bp-side{display:flex;flex-direction:column;gap:10px;min-width:0}
.bp-edit{display:flex;gap:14px;align-items:flex-start;padding:12px;background:var(--bg-inset);border:1px solid var(--line-2);border-radius:var(--r)}
.bp-ring{flex:none}
.bp-ring circle{fill:none;stroke-width:6}
.bp-ring-t{stroke:var(--track)}
.bp-ring-v{stroke:var(--accent);stroke-linecap:round}
.bp-ring-v.low{stroke:var(--warn)}.bp-ring-v.full{stroke:var(--good)}
.bp-ring text{fill:var(--ink);font:600 13px var(--f-num,var(--f-ui))}
.bp-ed{min-width:0;flex:1}
.bp-edh{display:flex;flex-direction:column;margin-bottom:8px}
.bp-edh b{font-size:16px}
.bp-editbtn{width:100%;min-height:42px;font-size:14px;font-weight:600}
.bp-ico{flex:none}
.bp-ml{margin:10px 0 4px;font-size:12px;color:var(--ink-3)}
.bp-miss{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.bp-fill{min-height:30px;padding:0 10px;background:transparent;color:var(--ink-2);border:1px dashed var(--line-3);border-radius:var(--r);font:inherit;font-size:12px;cursor:pointer}
.bp-fill:hover,.bp-fill:focus-visible{color:var(--ink);border-color:var(--accent);outline:none}
.bp-basis{margin-top:8px;font-size:11px}
.bp-talk{min-height:40px}
.bp-tools{margin-top:16px}
.bp-tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:6px}
.bp-tool{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:56px;padding:10px 14px;background:var(--bg-2);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r);font:inherit;text-align:left;cursor:pointer}
.bp-tool span{font-size:12px;color:var(--ink-3)}
.bp-tool:hover,.bp-tool:focus-visible{border-color:var(--accent);background:var(--bg-3);outline:none}
.bp-place{margin-top:16px}
.bp-placeh{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin-bottom:6px}
.bp-map{height:260px;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--bg-inset)}
.bp-below{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:0 24px;align-items:start}
.bp-below>:only-child{grid-column:1/-1}
.bp-below .bp-tgrid{grid-template-columns:1fr}
@media (max-width:900px){.bp-a{grid-template-columns:1fr}.bp-below{grid-template-columns:1fr}}
@media (max-width:760px){.bp-a{padding:14px}.bp-main h1{font-size:24px}.bp-line{font-size:15px}.bp-sel{width:100%;height:44px}.bp-to{min-height:44px}.bp-co{min-height:44px}.bp-fill{height:44px}.bp-editbtn{height:48px}.bp-talk{height:44px;width:100%}.bp-bld{display:inline-flex;align-items:center;min-height:44px}.bp-map{height:220px}.bp-tolist{position:static;max-width:none;margin-top:6px;flex-basis:100%}.bp-to{flex-wrap:wrap}.jback{display:inline-flex;align-items:center;min-height:44px}}
/* #358 view as a person: the strip across the top, and the picker */
.va-bar{position:sticky;top:0;z-index:60;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 16px;background:var(--warn,#b7791f);color:#fff}.va-bar span{opacity:.9;font-size:.9em}.va-bar button{margin-left:auto;background:#fff;color:#000}
.va-in{width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 40px);overflow:auto}.va-q{width:100%;margin:8px 0}.va-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;max-height:260px;overflow:auto}
.va-p{display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer}.va-p small{color:var(--ink-3)}
.va-t{width:100%;border-collapse:collapse;margin:6px 0}.va-t td,.va-t th{border-bottom:1px solid var(--line);padding:4px 6px;text-align:left;vertical-align:top}.va-ed label{display:block;margin:6px 0}.va-ed input:not([type=checkbox]){width:100%}
/* FT13 (#147): file transfers — the ⇄ button by the bell and its drawer */
.ftbtn{position:relative}.ftbtn .bdot{position:absolute;top:2px;right:2px;min-width:14px;height:14px;border-radius:7px;background:var(--danger,#d33);color:#fff;font-size:9px;line-height:14px;text-align:center;padding:0 3px}
.ft-in{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 40px);overflow:auto}.ft-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ft-tabs{display:flex;gap:6px;margin-bottom:10px}.ft-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 12px;cursor:pointer}.ft-tabs button.on{border-color:var(--accent);color:var(--accent)}
.ft-t{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0}.ft-t.new{border-left:3px solid var(--accent)}.ft-t.focus{outline:2px solid var(--accent)}.ft-t small{display:block;color:var(--ink-3)}.ft-t ul{margin:6px 0;padding-left:18px}
.ft-drop{display:block;border:2px dashed var(--line);border-radius:12px;padding:16px;text-align:center;cursor:pointer}.ft-drop.over{border-color:var(--accent)}.ft-drop input{display:block;margin:0 auto 6px}.ft-drop small{display:block;color:var(--ink-3)}
.ft-files{list-style:none;padding:0;margin:8px 0}.ft-f{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--line)}.ft-f.s-blocked,.ft-f.s-failed{color:var(--danger,#d33)}
.ft-to{margin:10px 0}.ft-to input{width:100%;margin-top:4px}.ft-res{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.ft-p,.ft-chip{border:1px solid var(--line);border-radius:999px;padding:3px 10px;background:var(--surface);color:var(--ink)}
.ft-chip button{border:0;background:none;color:inherit;cursor:pointer;margin-left:4px}.ft-gs{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.ft-g small{color:var(--ink-3)}.ft-all{font-weight:600}
.ft-send label{display:block;margin:6px 0}.ft-send label input:not([type=checkbox]):not([type=file]),.ft-send select{width:100%}.ft-go{margin-top:8px;width:100%}.ft-ok{border-color:var(--ok,#2a7)}
/* super desk coaching (Kyle 10/20, public/desk-ui.js coach) */
.dkc-head{padding:10px 12px;margin-bottom:10px;border-left:3px solid var(--good);background:var(--good-a);border-radius:6px}.dkc-head p{margin:4px 0 0}
.dkc-b h4,.dkc-fh{margin:12px 0 6px;font-size:13px}.dkc-b ul{list-style:none;margin:0;padding:0}.dkc-j{padding:6px 0;border-bottom:1px solid var(--dkw-line,rgba(127,127,127,.2))}
.dkc-j .dkw-mut{display:block;font-size:12px}.dkc-tips{margin:4px 0 0;padding-left:18px;font-size:13px;line-height:1.45}
.dkc-f{padding:6px 0;border-bottom:1px solid var(--dkw-line,rgba(127,127,127,.2))}.dkc-f summary,.dkc-c summary{cursor:pointer;min-height:32px;padding:4px 0}.dkc-f ul{margin:4px 0;padding-left:18px}.dkc-c{margin:4px 0 4px 14px}
/* K11 RECON Find: kind counts, why a row matched, the results page (cards with key facts and one step deeper) */
.rc-groups{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line)}
.rc-groups button{height:28px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-3);color:var(--ink-2);font-size:12.5px;cursor:pointer}
.rc-groups button b{color:var(--ink);margin-left:4px}
.rc-why{display:inline-block;margin-left:6px;font-size:11px;font-weight:400;color:var(--ink-3);border:1px solid var(--line);border-radius:3px;padding:0 5px}
.rc-why.guess{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.rc-allbtn{display:block;width:100%;text-align:left;padding:10px 14px;border:0;background:var(--bg-3);color:var(--accent);font-weight:600;cursor:pointer;min-height:40px}
.rc-allbtn kbd{font-size:11px;color:var(--ink-3);border:1px solid var(--line);border-radius:3px;padding:0 4px;margin-left:4px}
.rc-results .rc-grp{margin:0 0 20px}
.rc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-bottom:8px}
.rc-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;min-width:0}
.rc-ch{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rc-ct{background:none;border:0;padding:4px 0;color:var(--ink);font-weight:700;font-size:15px;text-align:left;cursor:pointer;min-height:32px}
.rc-ct:hover{text-decoration:underline}
.rc-pv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:8px 0}
.rc-pv dt{color:var(--ink-3);font-size:11.5px}.rc-pv dd{margin:1px 0 0;font-weight:600;font-size:13px;word-break:break-word}
.rc-hops{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}
.rc-hop{display:flex;flex-direction:column;align-items:flex-start;max-width:100%;min-height:40px;padding:5px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-3);color:var(--ink);font-size:12.5px;font-weight:600;cursor:pointer;text-align:left;overflow-wrap:anywhere}
.rc-hop small{font-weight:400;color:var(--ink-3);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}
.rc-hop.n{flex-direction:row;align-items:center;gap:5px;font-weight:400}.rc-hop.n b{color:var(--accent)}
.rc-card .rc-acts{margin-top:6px}.rc-deep{margin:0 0 14px}.rc-back{margin-bottom:10px}
@media (max-width:640px){.rc-cards{grid-template-columns:1fr}.rc-pv{grid-template-columns:1fr 1fr}}
/* K8 the work-plan job panel (public/jobday-ui.js): at a glance, each crew, check-ins, deliveries, the rain-chance strip */
.jdw-go{margin:0 0 14px}
.jdw-glance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 18px}
.jdw-glance>div{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--r);padding:8px 10px;min-width:0}
.jdw-glance small{display:block;color:var(--ink-3);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.jdw-glance b{font-size:14px}
.jdw-crew{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;margin:0 0 10px}.jdw-crew.on{border-color:var(--accent)}
.jdw-ch{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px}
.jdw-team{display:flex;flex-wrap:wrap;gap:10px 24px;margin:0 0 12px}
.jdw-cw h5{margin:10px 0 4px;font-size:13px}.jdw-cw h5 span,.jdw-n{color:var(--ink-3);font-weight:400;margin-left:4px}
.jdw-ck{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:4px 12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
.jdw-ck>span:nth-child(3),.jdw-ck>span:nth-child(4){grid-column:1/-1}
.jdw-dl{padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
.jdw-wx{display:flex;align-items:flex-end;gap:3px;height:70px;margin:8px 0}
.jdw-wx>div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
.jdw-wx i{display:block;width:100%;background:color-mix(in srgb,var(--accent) 55%,transparent);border-radius:2px 2px 0 0}.jdw-wx i.watch{background:var(--warn)}.jdw-wx i.wet{background:var(--crit)}
.jdw-wx small{font-size:10px;color:var(--ink-3)}
table.plan tr[data-jd]{cursor:pointer}table.plan tr[data-jd]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media (max-width:640px){.jdw-glance{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* K9 permit coverage overview, area filter, roofer drill-down; K14 locked Intelligence entries (public/permits-ui.js, shared-ui.js) */
.pm-area{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;margin:0 0 12px}.pm-area label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-3);min-width:0}
.pm-area select,.pm-area input{min-height:36px;max-width:100%}.pm-area select{max-width:220px}
.pc-svg{width:100%;height:auto;display:block}.pc-svg .pc-g{stroke:var(--line-2);stroke-width:1}.pc-svg .pc-t{fill:var(--ink-3);font-size:10px}
.pc-svg path{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.pc-l0,.pc-c0{stroke:var(--accent)}.pc-l1,.pc-c1{stroke:var(--good)}.pc-l2,.pc-c2{stroke:var(--warn)}.pc-l3,.pc-c3{stroke:var(--data)}.pc-l4,.pc-c4{stroke:var(--ink-2)}.pc-l5,.pc-c5{stroke:var(--danger,#d33)}
.pc-svg circle{fill:var(--bg)}.pc-svg circle[class^=pc-c]{stroke-width:1.6}
.pc-leg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--ink-2);margin-top:6px}.pc-leg i{display:inline-block;width:12px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.pc-k0{background:var(--accent)}.pc-k1{background:var(--good)}.pc-k2{background:var(--warn)}.pc-k3{background:var(--data)}.pc-k4{background:var(--ink-2)}.pc-k5{background:var(--danger,#d33)}
.pc-num{margin-top:8px;font-size:12.5px}.pc-num summary{cursor:pointer;min-height:32px;color:var(--ink-3)}
.pc-ideas{list-style:none;margin:0;padding:0}.pc-idea{padding:8px 0 8px 12px;border-left:3px solid var(--line-2);margin:0 0 6px;line-height:1.45}.pc-idea.k-gap,.pc-idea.k-down{border-left-color:var(--warn)}.pc-idea.k-growth{border-left-color:var(--good)}
.pc-f{margin:0 0 4px}.pc-tbl td{vertical-align:top}.pc-grid{grid-template-columns:1fr 1fr;margin-bottom:12px}
.rk-bars i.nr{background:repeating-linear-gradient(45deg,transparent 0 3px,var(--line-2) 3px 5px);opacity:.6}
.intelmenu .im-i.im-lock{opacity:.85}.intelmenu .im-i.im-lock .im-st{color:var(--ink-3)}.intelmenu .im-why{display:block;margin-top:4px;color:var(--warn)!important}
@media (max-width:900px){.pc-grid{grid-template-columns:1fr}}
@media (max-width:560px){.pm-area label{flex:1 1 44%}.pm-area select{max-width:none;width:100%}.pm-area input{width:100%}}
/* K10 (Kyle 10/20): SKU Intelligence (public/sku-ui.js) — filters, the side-by-side bars, the price-sheet preview */
.sku-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin:14px 0}
.sku-filters input[type=search]{flex:1 1 260px;min-height:40px}
.sku-f{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--ink-3);min-width:0;max-width:100%}.sku-f select,.sku-f input{min-height:40px;max-width:100%}
.sku-t{display:inline-flex;align-items:center;gap:6px;min-height:40px;font-size:13px;color:var(--ink-2)}
.sku-bar{display:grid;grid-template-columns:minmax(110px,170px) 1fr auto auto;align-items:center;gap:10px;padding:5px 0;font-size:13px}
.sku-bt{height:12px;background:var(--track);border-radius:2px;overflow:hidden}.sku-bt i{display:block;height:100%;background:var(--ink-3)}.sku-bt i.best{background:var(--good)}
.sku-bar small{color:var(--ink-3);white-space:nowrap}
.sku-chip{font-style:normal;font-size:10.5px;padding:1px 6px;border:1px solid var(--line-2);border-radius:999px;color:var(--ink-2)}
.sku-detail h4{margin:16px 0 6px;font-size:13px}
tr.sku-rej td{opacity:.72}
@media (max-width:560px){.sku-bar{grid-template-columns:1fr auto;}.sku-bar .sku-bt{grid-column:1/-1;order:3}.sku-bar small{grid-column:1/-1}}
/* #381 My Day for operations (Kyle 10/21): the crew board, More tools, the one-line action items */
.cb{margin:10px 0 12px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r);background:var(--card)}
.cb-h{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.cb h3{margin:0;font-size:15px}
.cb-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-top:8px}
.cb-row{border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:var(--r);padding:8px 10px;font-size:13px;display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
.cb-row.cb-scheduled{border-left-color:var(--good)}.cb-row.cb-predicted{border-left-color:var(--warn);border-left-style:dashed}
.cb-who{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.cb-pred{font-style:italic}
.cb-needs{margin:2px 0 0;padding:0;list-style:none}.cb-needs li{margin:2px 0}
.cb-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.cb-acts .linkbtn{min-height:36px}
.cb-co{margin-top:10px}.cb-co h4{margin:0 0 6px}.cb-co-r{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.dy-more{margin:0 0 10px}.dy-more summary,.dy-acts summary{cursor:pointer;padding:4px 0}.dy-more summary:focus-visible,.dy-acts summary:focus-visible,.ho-why:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
details.dy-acts:not([open]){padding:6px 12px}.dy-now{font-weight:600}.ho-why{cursor:help;margin-left:4px}
@media (max-width:600px){.cb{padding:10px}.cb-list{grid-template-columns:1fr}.dy-launch{grid-template-columns:repeat(2,minmax(0,1fr))}.dy-act{flex-wrap:wrap}}

/* ---------- #387 RECON, search everything (Kyle 10/21: "it feels temporary") ---------- */
.rc.rc2{max-width:1120px;margin:0 auto;padding:4px 0 24px;border:0;background:none}
.rc2-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:8px 0 18px}
.rc2-ttl{display:flex;align-items:center;gap:18px;min-width:0}
.rc2 .rc-mark{font:700 38px/1 var(--f-ui);letter-spacing:-.03em;padding-right:18px;border-right:1px solid var(--line-2)} /* #396 clean, not stencil */
.rc2-sub{display:flex;flex-direction:column;gap:4px;min-width:0}
.rc2-eyebrow{font:600 13px var(--f-ui);letter-spacing:0;color:var(--accent)}
.rc2 .rc-tagline{font-size:14px;color:var(--ink-3);line-height:1.4}
.rc2-status{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg-2);white-space:nowrap}
.rc2-status i{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 22%,transparent)}
.rc2-bar{display:flex;align-items:center;gap:10px;height:60px;padding:0 14px 0 18px;margin:0 0 12px}
.rc2-bar{background:var(--bg-2);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 14px 34px -22px rgba(0,0,0,.7);transition:border-color var(--t,.15s),box-shadow var(--t,.15s)}
.rc2-bar:focus-within{border-color:color-mix(in srgb,var(--accent) 70%,var(--line-2));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent),0 18px 40px -22px rgba(0,0,0,.75)}
.rc2-mag{width:20px;height:20px;flex:none;fill:none;stroke:var(--ink-3);stroke-width:1.5;stroke-linecap:round}
.rc2-bar:focus-within .rc2-mag{stroke:var(--accent)}
.rc2 .rc2-bar input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:none;color:var(--ink);font:500 18px/1 var(--f-ui);box-shadow:none}
.rc2 .rc2-bar input:focus{outline:0}
.rc2 .rc2-bar input::placeholder{color:var(--ink-3);opacity:.85}
.rc2-bar input::-webkit-search-cancel-button{filter:grayscale(1);opacity:.6;cursor:pointer}
.rc2-kbd{flex:none;font:600 12px/1 var(--f-ui);color:var(--ink-3);border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;padding:4px 8px}
.rc2-bar:focus-within .rc2-kbd{display:none}
.rc2-scope{flex:none;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px}
.rc2-scope{border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink);font:600 12.5px/1 var(--f-ui);cursor:pointer}
.rc2-scope span{color:var(--ink-3);font-size:14px}
.rc2-kinds{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 22px;padding-bottom:2px;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}
.rc2-kinds::-webkit-scrollbar{display:none}
.rc2 .rc2-kinds button,.rc2 .rc2-kinds select{flex:none;height:32px;padding:0 14px;border:1px solid var(--line);background:transparent;color:var(--ink-2);border-radius:999px;font:500 13px/1 var(--f-ui);letter-spacing:0;cursor:pointer;transition:background var(--t,.15s),border-color var(--t,.15s)}
.rc2 .rc2-kinds button:hover,.rc2 .rc2-kinds select:hover{border-color:var(--line-3);color:var(--ink)}
.rc2 .rc2-kinds button.on,.rc2 .rc2-kinds select.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.rc2 .rc2-kinds select{padding-right:28px;width:auto}
/* the results panel */
.rc2 .rc-drop{top:66px;border-radius:14px;border:1px solid var(--line-2);background:var(--bg-2);box-shadow:0 30px 60px -24px rgba(0,0,0,.8);overflow:hidden;z-index:70;max-height:none;display:flex;flex-direction:column}
.rc2 .rc-drop[hidden]{display:none}
.rc2 .rc-groups{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line);margin:0}
.rc2-gl{font:600 11px/1 var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-right:6px}
.rc2 .rc-groups button{height:26px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg-3);color:var(--ink-2);font:500 12px/1 var(--f-ui);cursor:pointer}
.rc2 .rc-groups button b{color:var(--ink);margin-left:4px}
.rc2-split{display:grid;grid-template-columns:minmax(0,1fr) 330px;min-height:0}
.rc2-list{max-height:min(58vh,560px);overflow:auto;padding:6px}
.rc2 .rc-hit{display:grid;grid-template-columns:36px minmax(0,1fr) auto 18px;align-items:center;gap:0 12px;padding:9px 10px;border:0;border-radius:10px;background:none;margin:0 0 2px}
.rc2 .rc-hit.on,.rc2 .rc-hit:hover{background:var(--bg-3)}
.rc2 .rc-hit.on{box-shadow:inset 3px 0 0 var(--accent)}
.rc2-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.rc2 .rc-ht{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc2 .rc-hs{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc2 .rc-hit mark,.rc2 .rc-ht mark{background:none;color:var(--accent);font-weight:700}
.rc2-kind{font:600 10.5px/1 var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.rc2-enter{color:var(--ink-3);opacity:0;font-size:13px}
.rc2 .rc-hit.on .rc2-enter{opacity:1}
.rc2 .rc-hit.top::after{content:none}
.rc2-ico{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:color-mix(in srgb,var(--h,var(--metal)) 16%,transparent);border:1px solid color-mix(in srgb,var(--h,var(--metal)) 30%,transparent);flex:none}
.rc2-ico svg{width:17px;height:17px;fill:none;stroke:var(--h,var(--metal));stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.rc2-ico.lg{width:44px;height:44px;border-radius:11px}.rc2-ico.lg svg{width:22px;height:22px}
.rc2-ico[data-hue=accent]{--h:var(--accent)}.rc2-ico[data-hue=data]{--h:var(--data)}.rc2-ico[data-hue=metal]{--h:var(--metal)}.rc2-ico[data-hue=good]{--h:var(--good)}.rc2-ico[data-hue=warn]{--h:var(--warn)}.rc2-ico[data-hue=crit]{--h:var(--crit)}
.rc2-peek{border-left:1px solid var(--line);padding:16px 16px 14px;background:color-mix(in srgb,var(--bg-3) 45%,transparent);max-height:min(58vh,560px);overflow:auto}
.rc2-ph{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.rc2-pk{font:600 10.5px/1 var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}
.rc2-pt{font-weight:700;font-size:16px;line-height:1.25;color:var(--ink);margin-bottom:3px;word-break:break-word}
.rc2-pv{display:grid;grid-template-columns:1fr;gap:8px;margin:0 0 12px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rc2-pv div{display:flex;justify-content:space-between;gap:10px}.rc2-pv dt{color:var(--ink-3);font-size:12px}.rc2-pv dd{margin:0;font-size:12.5px;font-weight:600;text-align:right;word-break:break-word}
.rc2-pl{font:600 10.5px/1 var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.rc2-pc .rc-hops{display:flex;flex-direction:column;gap:6px;margin:0 0 12px}
.rc2-pc .rc-hop{text-align:left}
.rc2-pa{display:flex;gap:8px;flex-wrap:wrap}
.rc2-keys{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:9px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3);background:color-mix(in srgb,var(--bg-3) 35%,transparent)}
.rc2-keys kbd,.rc2-tips kbd{font:600 10.5px/1 var(--f-ui);border:1px solid var(--line-2);border-bottom-width:2px;border-radius:4px;padding:2px 5px;margin-right:3px;color:var(--ink-2)}
.rc2 .rc-allbtn{margin-left:auto;width:auto;border:0;background:none;color:var(--accent);font:600 12.5px/1 var(--f-ui);padding:4px 0;cursor:pointer}
.rc2 .rc-none{padding:22px 18px;color:var(--ink-3);font-size:14px}
/* nothing typed: Recent, Browse by type, tips */
.rc2-idle{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}
.rc2-card{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:16px 16px 12px}
.rc2-h{font:600 15px/1.2 var(--f-ui);letter-spacing:-.01em;color:var(--ink);margin:0 0 12px}
.rc2-recent .rc-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px;border:0;border-radius:10px;margin:0 0 2px}
.rc2-recent .rc-row b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.rc2-recent .rc-row span:not(.rc2-ico){font:600 10.5px/1 var(--f-disp);letter-spacing:.14em;text-transform:uppercase}
.rc2-empty{color:var(--ink-3);font-size:13.5px;padding:6px 2px 10px}
.rc2-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rc2-tile{display:flex;align-items:center;gap:11px;padding:10px;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:border-color var(--t,.15s),background var(--t,.15s)}
.rc2-tile:hover{border-color:var(--line-3);background:var(--bg-3)}
.rc2-tile span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.rc2-tile b{font-weight:600;font-size:13.5px}.rc2-tile small{color:var(--ink-3);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc2-tips{grid-column:1 / -1}
.rc2-tips ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
.rc2-tips li{color:var(--ink-3);font-size:13px;line-height:1.5}.rc2-tips li b{color:var(--ink-2);font-weight:600}
.rc2-tips code{font:600 12px/1 var(--f-num,var(--f-ui));color:var(--ink);background:var(--bg-3);border:1px solid var(--line);border-radius:4px;padding:2px 5px}
.rc2 .rc-file,.rc2 .rc-results{border-radius:14px}
@media (max-width:1000px){.rc2-split{grid-template-columns:1fr}.rc2-peek{display:none}}
@media (max-width:760px){
  .rc2-hero{margin:4px 0 12px}.rc2 .rc-mark{font-size:30px;padding-right:12px}.rc2 .rc-tagline{display:none}.rc2-status{display:none}
  .rc2-bar{height:54px;padding:0 10px 0 14px;border-radius:12px}.rc2 .rc2-bar input{font-size:16px}.rc2-kbd{display:none}
  .rc2-kinds{margin-bottom:16px}
  .rc2 .rc-drop{top:60px;left:-2px;right:-2px}
  .rc2-idle{grid-template-columns:1fr}.rc2-tips ul{grid-template-columns:1fr}
  .rc2 .rc-hit{grid-template-columns:34px minmax(0,1fr) 0 0}.rc2-kind,.rc2-enter{display:none}
  .rc2-list{max-height:62vh}
  .rc2 .rc-allbtn{margin-left:0;width:100%;text-align:left}
}
/* the header search: never an empty square — "Search" when the bar is tight, the icon alone only when it must */
.top.c3 .askbtn{max-width:128px;flex:none}
.top.c3 .askbtn::after{content:"Search";font-size:13px;color:var(--ink-2)}
.top.c4 .askbtn{max-width:44px}.top.c4 .askbtn::after{content:none}
#tabs .tfind{border:1px solid var(--line-2);border-radius:999px;padding-left:12px;padding-right:14px;margin-right:10px;height:30px;align-self:center}
#tabs .tfind::before{display:none}
#tabs .tfind.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
/* #387 the Ctrl K palette: the same record icons and a way on to RECON */
.ask-row:has(.rc2-ico){align-items:center;padding-top:7px;padding-bottom:7px}
.ask-row .rc2-ico{width:28px;height:28px;border-radius:8px}.ask-row .rc2-ico svg{width:15px;height:15px}
.ask-all{float:right;border:0;background:none;color:var(--accent);font:600 11px/1 var(--f-ui);letter-spacing:0;text-transform:none;cursor:pointer;padding:0}
.ask-panel{border-radius:14px;overflow:hidden}
.rc2 .rc2-bar input:focus-visible{box-shadow:inset 0 -2px 0 var(--accent)} /* the field itself shows the keyboard is on it (the bar glows too) */
/* #388 the field app bar on a phone */
.fieldstrip{display:flex;align-items:stretch;gap:0;margin:8px 12px 0;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:12px;background:color-mix(in srgb,var(--accent) 14%,var(--bg-2));overflow:hidden}
.fieldstrip .fs-go{flex:1;display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 12px;color:var(--ink);text-decoration:none}
.fieldstrip .fs-go>span:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.fieldstrip b{font-size:15px}.fieldstrip small{color:var(--ink-2);font-size:12.5px}
.fieldstrip .fs-ic{font-size:20px}.fieldstrip .fs-ar{font-size:20px;color:var(--accent)}
.fieldstrip .fs-x{flex:none;width:48px;border:0;border-left:1px solid var(--line);background:none;color:var(--ink-2);font-size:22px;cursor:pointer}
/* #389 Service teams */
.st-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.st-head h2{margin:0 0 4px}.st-head .sec-note{max-width:760px}
.st-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.st-k{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.st-k b{font:700 26px/1.1 var(--f-num,var(--f-ui))}.st-k span{font:600 11px/1.2 var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}.st-k small{color:var(--ink-3);font-size:12px}
.st-k.warn b{color:var(--warn)}
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.st-card{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.st-ch{display:flex;justify-content:space-between;align-items:center;gap:8px}.st-ch h3{margin:0;font-size:17px}
.st-seats{display:grid;gap:8px}
.st-seat{display:flex;align-items:center;gap:10px}.st-seat div{display:flex;flex-direction:column}.st-seat small{color:var(--ink-3);font-size:12px}
.st-av{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--accent) 18%,transparent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);font:700 12px/1 var(--f-ui);color:var(--ink)}
.st-seat.open .st-av{background:none;border-style:dashed;color:var(--ink-3)}.st-seat.open b{color:var(--warn)}
.st-ct span{color:var(--ink-3);font-size:13px}.st-ct em{color:var(--warn);font-style:normal}
.st-meter{height:6px;border-radius:3px;background:var(--bg-3);overflow:hidden;margin:6px 0 8px}.st-meter i{display:block;height:100%;background:var(--good)}
.st-chips{display:flex;flex-wrap:wrap;gap:6px}
.st-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:12.5px;background:var(--bg-3)}
.st-chip button{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:14px;min-width:24px;min-height:24px}
.st-note{margin:0;color:var(--ink-2);font-size:13px}
.st-empty{background:var(--bg-2);border:1px dashed var(--line-2);border-radius:14px;padding:22px;text-align:center}
.st-ed label{display:flex;flex-direction:column;gap:4px;margin:0 0 10px}.st-ed label small{color:var(--ink-3)}
@media (max-width:760px){.st-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.st-grid{grid-template-columns:1fr}}
.st-counts{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink-3);padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.st-counts b{color:var(--ink);font-size:14px}
/* #391 the newsroom on Home (Kyle 10/21: catchy headlines, better pictures, less scrolling) */
.newsroom{display:flex;flex-direction:column;gap:16px}
.nr-lead{border-radius:16px;overflow:hidden;background:var(--bg-2);border:1px solid var(--line)}
.nr-lead-a{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);color:var(--ink);text-decoration:none;min-height:260px}
.nr-lead-a:hover h2{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.nr-img{position:relative;overflow:hidden;width:100%;box-sizing:border-box;background:var(--bg-3);aspect-ratio:16/10}
.nr-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease,ease)}
a:hover .nr-img img{transform:scale(1.03)}
.nr-img.lg{aspect-ratio:auto;min-height:260px}
.nr-art{display:grid;place-items:center;background:radial-gradient(120% 100% at 0% 0%,color-mix(in srgb,var(--accent) 40%,transparent),transparent 60%),linear-gradient(135deg,var(--bg-3),var(--bg-2))}
.nr-art span{font-family:"Black Ops One",var(--f-disp);font-size:20px;letter-spacing:.12em;color:color-mix(in srgb,var(--ink) 70%,transparent);text-transform:uppercase;text-align:center;padding:0 12px}
.nr-art.nk-safety{background:radial-gradient(120% 100% at 0% 0%,color-mix(in srgb,var(--warn) 45%,transparent),transparent 60%),linear-gradient(135deg,var(--bg-3),var(--bg-2))}
.nr-art.nk-news{background:radial-gradient(120% 100% at 0% 0%,color-mix(in srgb,var(--data) 45%,transparent),transparent 60%),linear-gradient(135deg,var(--bg-3),var(--bg-2))}
.nr-lead-t{padding:22px 24px;display:flex;flex-direction:column;gap:10px;justify-content:center}
.nr-lead-t h2{margin:0;font-size:28px;line-height:1.15;font-weight:800;letter-spacing:-.01em}
.nr-lead-t p{margin:0;color:var(--ink-2);font-size:15px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nr-go{color:var(--accent);font-weight:600;font-size:13.5px}
.nr-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12px;color:var(--ink-3)}
.nr-k{font:700 10.5px/1 var(--f-disp);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.nr-n{margin-left:auto}
.nr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.nr-card{border-radius:14px;overflow:hidden;background:var(--bg-2);border:1px solid var(--line);transition:border-color var(--t,.15s),transform var(--t,.15s)}
.nr-card:hover{border-color:var(--line-3);transform:translateY(-2px)}
.nr-card a{display:flex;flex-direction:column;height:100%;color:var(--ink);text-decoration:none}
.nr-t{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px}
.nr-t h3{margin:0;font-size:16px;line-height:1.25;font-weight:700;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nr-t p{margin:0;color:var(--ink-3);font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nr-more{align-self:center}
.nr-sec{font:700 11.5px/1 var(--f-disp);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin:4px 0 8px}
.nr-briefs{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:14px 14px 8px}
.nr-brief{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:10px;color:var(--ink);text-decoration:none}
.nr-brief:hover{background:var(--bg-3)}
.nr-brief span{display:flex;flex-direction:column;min-width:0}.nr-brief b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nr-brief small{color:var(--ink-3);font-size:12px}
.nr-reader .nr-back{margin-bottom:12px}
.learnbtn svg{width:16px;height:16px}
@media (max-width:1100px){.nr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.nr-lead-a{grid-template-columns:1fr}.nr-img.lg{min-height:200px}.nr-lead-t h2{font-size:22px}.nr-grid{grid-template-columns:1fr}.nr-card a{flex-direction:row}.nr-card .nr-img{width:38%;flex:none;aspect-ratio:1}.nr-t h3{font-size:15px}.nr-t p{display:none}}
.nr-lead-t h2,.nr-t h3{text-transform:none;font-family:var(--f-ui);display:block;padding:0;border:0;letter-spacing:-.01em}
.nr-lead-t h2::before,.nr-lead-t h2::after,.nr-t h3::before,.nr-t h3::after{content:none!important;display:none!important}
.nr-img.lg.nr-art{min-height:260px;height:100%}
.nr-card .nr-art{aspect-ratio:16/7}
.hrail .squares,.hrail .miles{margin-bottom:12px}
.st-chip.gone{opacity:.7;border-style:dashed}.st-chip.gone small{color:var(--warn)}
/* #391 Kyle 10/21: "use the SpaceX website as inspiration" — full-bleed pictures, the headline set on the picture, few words,
   ghost buttons. Overrides the first newsroom layout above. */
.nr-lead{position:relative;border:0;border-radius:18px;background:#000}
.nr-lead-a{display:block;position:relative;min-height:440px}
.nr-lead .nr-img.lg{position:absolute;inset:0;min-height:0;height:100%;aspect-ratio:auto}
.nr-lead .nr-img.lg::after,.nr-card .nr-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.55) 65%,rgba(0,0,0,.88) 100%);pointer-events:none}
.nr-lead-t{position:absolute;left:0;right:0;bottom:0;padding:34px 36px;gap:12px;max-width:760px}
.nr-lead-t h2{font-size:clamp(26px,3.2vw,40px);line-height:1.05;font-weight:800;text-transform:uppercase;letter-spacing:.01em;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.4)}
.nr-lead-t p{color:rgba(255,255,255,.85);-webkit-line-clamp:2}
.nr-lead .nr-meta,.nr-card .nr-meta{color:rgba(255,255,255,.75)}
.nr-lead .nr-k,.nr-card .nr-k{color:#fff;opacity:.9}
.nr-go{align-self:flex-start;display:inline-block;margin-top:6px;padding:12px 22px;border:2px solid #fff;color:#fff;font:700 12px/1 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;transition:background var(--t,.15s),color var(--t,.15s)}
.nr-lead-a:hover .nr-go{background:#fff;color:#000}
.nr-lead-a:hover h2{text-decoration:none}
.nr-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.nr-card{position:relative;border:0;border-radius:14px;background:#000}
.nr-card:hover{transform:none}
.nr-card a{position:relative;display:block;aspect-ratio:4/5}
.nr-card .nr-img{position:absolute;inset:0;aspect-ratio:auto;height:100%}
.nr-card .nr-art{aspect-ratio:auto}
.nr-card .nr-t{position:absolute;left:0;right:0;bottom:0;padding:16px 16px 18px;gap:8px}
.nr-card .nr-t h3{color:#fff;font-size:18px;line-height:1.15;font-weight:800;text-transform:uppercase;letter-spacing:.01em;-webkit-line-clamp:3}
.nr-card .nr-t p{display:none}
.nr-card .nr-n{display:none}
.nr-card a::after{content:"Read";position:absolute;top:14px;right:14px;padding:7px 12px;border:1.5px solid rgba(255,255,255,.85);color:#fff;font:700 10.5px/1 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;opacity:0;transition:opacity var(--t,.15s)}
.nr-card a:hover::after,.nr-card a:focus-visible::after{opacity:1}
.nr-art span{opacity:.55}
@media (max-width:1100px){.nr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .nr-lead-a{min-height:360px}.nr-lead-t{padding:22px 20px}.nr-lead-t h2{font-size:24px}
  .nr-grid{grid-template-columns:1fr}.nr-card a{flex-direction:column;aspect-ratio:16/11}.nr-card .nr-img{width:auto}
  .nr-card .nr-t p{display:none}
}
.nr-lead .nr-art,.nr-card .nr-art{place-items:start}
.nr-lead .nr-art span,.nr-card .nr-art span{margin:18px 20px;font-size:12px;letter-spacing:.24em;opacity:.45}
/* #393 RECON results page for one type (Kyle 10/21: "make it feel powerful like a CoStar search") */
.rc3{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}
.rc3.nof{grid-template-columns:minmax(0,1fr)}
.rc3-fd{display:none}
.rc3-f{position:sticky;top:calc(var(--hdr-h,120px) + 12px);background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:12px 12px 6px;max-height:calc(100vh - var(--hdr-h,120px) - 40px);overflow:auto}
.rc3-fh{display:flex;justify-content:space-between;align-items:center;margin:0 0 6px}.rc3-fh b{font:700 11.5px/1 var(--f-disp);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.rc3-g{border:0;border-top:1px solid var(--line);margin:0;padding:10px 0 8px}.rc3-g legend{font:600 12px/1 var(--f-ui);color:var(--ink);padding:0 0 6px}
.rc3-o{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 4px;border-radius:7px;font-size:13px;color:var(--ink-2);cursor:pointer}
.rc3-o:hover{background:var(--bg-3)}.rc3-o.on{color:var(--ink)}.rc3-o span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rc3-o b{font:600 11.5px/1 var(--f-num,var(--f-ui));color:var(--ink-3)}
.rc3-o input{width:16px;height:16px;accent-color:var(--accent);margin:0}
.rc3-miss{font-size:11.5px;color:var(--ink-3);padding:4px 4px 0}
.rc3-main{min-width:0}
.rc3-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:10px 14px;background:var(--bg-2);border:1px solid var(--line);border-radius:14px 14px 0 0;border-bottom:0}
.rc3-n{font-size:14px;color:var(--ink-2)}.rc3-n b{font:700 18px/1 var(--f-num,var(--f-ui));color:var(--ink);margin-right:2px}
.rc3-busy{color:var(--accent);font-size:12px}
.rc3-chips{display:flex;flex-wrap:wrap;gap:6px}
.rc3-chip{height:26px;padding:0 10px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink);font:500 12px/1 var(--f-ui);cursor:pointer}
.rc3-chip span{color:var(--ink-3);margin-left:4px}
.rc3-sort{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-3)}.rc3-sort select{height:30px;border-radius:8px}
.rc3-tw{overflow:auto;border:1px solid var(--line);border-radius:0 0 14px 14px;background:var(--bg-2);max-height:calc(100vh - var(--hdr-h,120px) - 180px)}
.rc3-t{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.rc3-t thead th{position:sticky;top:0;z-index:1;background:var(--bg-3);text-align:left;font:600 11px/1 var(--f-disp);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:10px 12px;border-bottom:1px solid var(--line-2);white-space:nowrap}
.rc3-t td{padding:9px 12px;border-bottom:1px solid var(--line);color:var(--ink-2);white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.rc3-t tbody tr{cursor:pointer}.rc3-t tbody tr:hover,.rc3-t tbody tr.on{background:var(--bg-3)}.rc3-t tbody tr.on td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.rc3-name{display:flex;align-items:center;gap:10px;min-width:240px;max-width:380px!important}
.rc3-name .rc2-ico{width:28px;height:28px;border-radius:8px}.rc3-name .rc2-ico svg{width:15px;height:15px}
.rc3-name span{display:flex;flex-direction:column;min-width:0}.rc3-name a{color:var(--ink);font-weight:600;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc3-name small{color:var(--ink-3);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc3-name mark{background:none;color:var(--accent);font-weight:700}
.rc3-more{padding:10px 4px}
@media (max-width:900px){
  .rc3{grid-template-columns:1fr}
  .rc3-fd{display:block;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
  .rc3-fd summary{cursor:pointer;font-weight:600}
  .rc3-fd:not([open]) + .rc3-f{display:none}
  .rc3-f{position:static;max-height:none}
  .rc3-tw{max-height:none}
}
.rc.rc2.rc2-wide{max-width:1480px}
/* #394 RECON map view */
.rc3-views{display:inline-flex;border:1px solid var(--line-2);border-radius:999px;overflow:hidden}
.rc3-views button{height:30px;padding:0 14px;border:0;background:transparent;color:var(--ink-2);font:600 12.5px/1 var(--f-ui);cursor:pointer}
.rc3-views button.on{background:var(--ink);color:var(--bg)}
.rc3-map{height:min(70vh,640px);border:1px solid var(--line);border-radius:0 0 14px 14px;background:var(--bg-3)}
.rc3-pop{display:flex;flex-direction:column;gap:4px;min-width:180px}.rc3-pop small{color:#555}.rc3-pop .linkbtn{margin-top:6px;align-self:flex-start}
/* #395 RECON with the team: notes, tags, follow, fixes, comparables, saved searches */
.rc-why.pick{color:var(--accent);border-color:var(--accent-a)}
.rct,.rct-comps{margin:18px 0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--bg-2)}
.rct-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.rct-head .rc-sten{margin:0 6px 0 0}
.rct-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.rct-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 4px 2px 9px;border-radius:999px;border:1px solid var(--line-2);background:var(--accent-a);color:var(--ink)}
.rct-tag button,.rct-x{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:15px;line-height:1;min-width:28px;min-height:28px}
.rct-tag button:hover,.rct-x:hover{color:var(--ink)}
.rct-tin{flex:1 1 160px;min-width:140px;max-width:240px;font-size:12px;padding:5px 9px;border-radius:999px;border:1px dashed var(--line-2);background:transparent;color:var(--ink)}
.rct-add{display:flex;gap:8px;align-items:flex-start;margin:10px 0}
.rct-add textarea{flex:1;min-height:44px;padding:8px 10px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg-3);color:var(--ink);font:inherit;font-size:13px;resize:vertical}
.rct-notes,.rct-fixes{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.rct-notes li{padding:8px 10px;border-left:2px solid var(--accent-a);background:var(--bg-3);border-radius:0 8px 8px 0}
.rct-nh{display:flex;align-items:center;gap:6px;font-size:12px}.rct-nh small{color:var(--ink-3)}.rct-nh .rct-x{margin-left:auto}
.rct-nt{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}
.rct-fix{font-size:13px;padding:7px 10px;border-radius:8px;background:var(--bg-3);overflow-wrap:anywhere}
.rct-fix small{color:var(--ink-3)}.rct-fix s{color:var(--ink-3)}
.rct-st{display:block;font-size:11.5px;color:var(--ink-2);margin-top:2px}
.rct-fix.accepted .rct-st{color:var(--accent)}.rct-fix.declined .rct-st{color:var(--ink-3)}
.rct-dec{display:inline-flex;gap:6px;margin-top:6px}
.rct-form{display:grid;gap:8px;margin:10px 0;padding:10px;border:1px dashed var(--line-2);border-radius:10px}
.rct-form label{display:grid;gap:3px;font-size:12px;color:var(--ink-2)}
.rct-form input{padding:7px 9px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg-3);color:var(--ink);font:inherit;font-size:13px}
.rct-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rct-cl{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:10px}
.rct-comp{display:grid;gap:2px;text-align:left;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg-3);color:var(--ink);cursor:pointer}
.rct-comp:hover,.rct-comp:focus-visible{border-color:var(--accent)}
.rct-comp span{font-size:12px;color:var(--ink-2)}.rct-comp small{font-size:11px;color:var(--accent)}
.rct-idle{display:contents}
.rct-sv{display:flex;align-items:center;gap:6px}.rct-sv .rc-row{flex:1;min-width:0}
.rct-new{flex:none;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--accent);color:var(--accent-ink)}
.rct-sub{margin:12px 0 4px;font:600 12.5px var(--f-ui);color:var(--ink-2)}
.rct-save{margin-left:auto}
@media (max-width:760px){.rct-add{flex-direction:column}.rct-add button{align-self:flex-end}.rct,.rct-comps{padding:12px}}
/* #396 Recon: fill the blanks, this week in Recon, insights, blank hunt */
.rct-fill{display:flex;gap:14px;align-items:flex-start;margin:14px 0;padding:14px 16px;border-radius:14px;border:1px solid var(--line-2);background:linear-gradient(135deg,var(--accent-a),transparent 70%)}
.rct-fill.full{align-items:center}
.rct-ring{flex:none;width:58px;height:58px}.rct-ring circle{fill:none;stroke-width:3.2}.rct-ring .bg{stroke:var(--line-2)}
.rct-ring .fg{stroke:var(--accent);stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;transition:stroke-dasharray .6s ease}
.rct-ring text{font:700 9px var(--f-disp);fill:var(--ink);text-anchor:middle}
.rct-fb{flex:1;min-width:0;display:grid;gap:8px}
.rct-sg{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:10px;background:var(--bg-2);border:1px solid var(--line)}
.rct-sg small{display:block;color:var(--ink-3);font-size:11.5px;margin-top:2px}.rct-sg small a{color:var(--accent)}
.rct-v{color:var(--accent)}
.rct-bls{display:flex;flex-wrap:wrap;gap:8px}
.rct-bl{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:3px 4px 3px 10px;border-radius:999px;border:1px dashed var(--line-2)}
.rct-ks{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.rct-k{padding:10px 12px;border-radius:12px;background:var(--bg-3)}.rct-k b{display:block;font:700 26px/1.1 var(--f-disp);color:var(--ink)}.rct-k span{font-size:11.5px;color:var(--ink-3)}
.rct-tr{font-size:11px;font-weight:600;margin-left:8px}.rct-tr.up{color:var(--good)}.rct-tr.dn{color:var(--warn)}
.rct-fnd{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rct-fnd .rct-sub{width:100%}
.rct-fn,.rct-ms{font-size:12.5px;padding:3px 10px;border-radius:999px;background:var(--bg-3);border:1px solid var(--line);color:var(--ink)}
.rct-fn.top{border-color:var(--accent);background:var(--accent-a)}.rct-ms{cursor:pointer}.rct-ms:hover{border-color:var(--accent)}
.rct-ins{display:grid;gap:8px}
.rct-in{display:grid;gap:2px;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg-3);color:var(--ink);cursor:pointer;transition:transform .15s ease,border-color .15s ease}
.rct-in:hover,.rct-in:focus-visible{border-color:var(--accent);transform:translateY(-1px)}.rct-in span{font-size:12px;color:var(--accent)}
.rct-hunt p{margin:4px 0 10px}
@media (max-width:760px){.rct-fill{flex-direction:column}.rct-sg{flex-direction:column;align-items:flex-start}}
@media (prefers-reduced-motion:reduce){.rct-ring .fg,.rct-in{transition:none}}
/* #396 Recon reads like a product, not a briefing: plain-case buttons inside Recon */
.rc2 .linkbtn{text-transform:none;letter-spacing:0;font-family:var(--f-ui);font-weight:600}
/* ---- Bid Brain lights up (Kyle 10/23) — public/bidbrain-ui.js igniteHtml. --el: time already elapsed (negative), --rv: ms until the reveal */
@property --bbn{syntax:'<integer>';inherits:false;initial-value:0}
.bb{position:relative}
.bb.bb-igniting{min-height:420px}
.bbx{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:min(60px,6vh);gap:14px;border-radius:14px;cursor:pointer;
  background:radial-gradient(120% 90% at 50% 40%,#0d1a33 0%,#070d1c 70%,#05080f 100%);overflow:hidden;
  animation:bbxOut .7s ease forwards;animation-delay:calc(var(--rv) + 900ms)}
.bbx.think{animation:none}
.bbx::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(158,197,255,.035) 0 1px,transparent 1px 4px);pointer-events:none}
.bbx-art{width:min(520px,92%);aspect-ratio:400/260;filter:drop-shadow(0 0 18px rgba(80,150,255,.35))}
.bbx-art svg{width:100%;height:100%;overflow:visible}
.bbx-halo{opacity:0;transform-origin:200px 128px;animation:bbxHalo 2.4s ease-in-out infinite;animation-delay:calc(var(--el) + 300ms)}
.bbx-shell{fill:rgba(60,120,255,.05);stroke:#5d8fe0;stroke-width:1.2;stroke-dasharray:900;stroke-dashoffset:900;opacity:.8;
  animation:bbxDraw 1.4s cubic-bezier(.6,.1,.3,1) forwards;animation-delay:var(--el)}
.bbx-fissure{fill:none;stroke:#5d8fe0;stroke-width:1;stroke-dasharray:260;stroke-dashoffset:260;opacity:.7;animation:bbxDraw 1.2s ease forwards;animation-delay:calc(var(--el) + 200ms)}
.bbx-e{stroke:#7fb2ff;stroke-width:.9;stroke-linecap:round;opacity:0;stroke-dasharray:calc(var(--len) * 1px);stroke-dashoffset:calc(var(--len) * 1px);
  animation:bbxEdge .55s ease-out forwards;animation-delay:calc(var(--el) + var(--d) + 120ms)}
.bbx-n{fill:#cfe2ff;opacity:0;transform-box:fill-box;transform-origin:center;animation:bbxNode .5s cubic-bezier(.2,1.6,.4,1) forwards;animation-delay:calc(var(--el) + var(--d))}
.bbx-s{fill:#fff;opacity:0;filter:drop-shadow(0 0 4px #9ec5ff);animation:bbxSpark .3s ease forwards;animation-delay:calc(var(--el) + var(--d))}
.bbx.think .bbx-n{animation:bbxNode .5s cubic-bezier(.2,1.6,.4,1) forwards,bbxThink 1.6s ease-in-out infinite;animation-delay:calc(var(--el) + var(--d)),calc(var(--el) + var(--d) + 600ms)}
/* the moment it lights: every node and synapse flares, the brain glows, then the overlay hands over to the cards */
.bbx.ready .bbx-art{animation:bbxFlare 1s ease-out forwards;animation-delay:var(--rv)}
.bbx.ready .bbx-e{animation:bbxEdge .55s ease-out forwards,bbxLit .9s ease-out forwards;animation-delay:calc(var(--el) + var(--d) + 120ms),var(--rv)}
.bbx.ready .bbx-n{animation:bbxNode .5s cubic-bezier(.2,1.6,.4,1) forwards,bbxLitN .9s ease-out forwards;animation-delay:calc(var(--el) + var(--d)),calc(var(--rv) + var(--d) / 6)}
.bbx-words{position:relative;text-align:center;color:#dce9ff;display:flex;flex-direction:column;gap:4px;padding:0 16px}
.bbx-words b{font-size:20px;letter-spacing:.02em;text-shadow:0 0 18px rgba(120,170,255,.8)}
.bbx-words span{font-size:13px;color:#9db6dc}
.bbx-words em{font-style:normal;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}
@supports (counter-reset:x var(--bbn)){
  .bbx.ready .bbx-words em{font-size:0;--bbn:var(--to);counter-reset:bbn var(--bbn);animation:bbxCount 1s ease-out both;animation-delay:calc(var(--rv) - 700ms + var(--i) * 120ms)}
  .bbx.ready .bbx-words em::after{content:counter(bbn);font-size:13px}
}
.bb-igniting>.bb-top,.bb-igniting>.bb-grid,.bb-igniting>.bb-smart{animation:bbIn .6s ease both;animation-delay:calc(var(--rv) + 1000ms)}
.bb-igniting .bb-card{animation:bbIn .55s cubic-bezier(.2,.9,.3,1) both;animation-delay:calc(var(--rv) + 1100ms + var(--i, 0) * 80ms)}
@keyframes bbxDraw{to{stroke-dashoffset:0}}
@keyframes bbxEdge{0%{opacity:0}30%{opacity:.85}100%{opacity:.45;stroke-dashoffset:0}}
@keyframes bbxNode{0%{opacity:0;transform:scale(0)}70%{opacity:1;transform:scale(1.6)}100%{opacity:.9;transform:scale(1)}}
@keyframes bbxSpark{to{opacity:.95}}
@keyframes bbxThink{50%{opacity:.35}}
@keyframes bbxHalo{0%,100%{opacity:.15;transform:scale(.92)}50%{opacity:.45;transform:scale(1.04)}}
@keyframes bbxFlare{0%{filter:drop-shadow(0 0 18px rgba(80,150,255,.35)) brightness(1)}35%{filter:drop-shadow(0 0 42px rgba(150,200,255,.95)) brightness(1.8)}100%{filter:drop-shadow(0 0 26px rgba(120,180,255,.6)) brightness(1.25)}}
@keyframes bbxLit{0%{stroke:#7fb2ff;opacity:.45}40%{stroke:#fff;opacity:1;stroke-width:1.6}100%{stroke:#a9cbff;opacity:.8;stroke-width:1.1}}
@keyframes bbxLitN{0%{fill:#cfe2ff}40%{fill:#fff;filter:drop-shadow(0 0 6px #fff)}100%{fill:#e6f0ff}}
@keyframes bbxCount{from{--bbn:0}}
@keyframes bbxOut{to{opacity:0;visibility:hidden;pointer-events:none}}
@keyframes bbIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* the small brain in the header keeps thinking */
.bb-mind{position:relative;width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:radial-gradient(circle at 50% 45%,var(--accent) 0 18%,transparent 19%),radial-gradient(circle,rgba(110,160,255,.25),transparent 70%);box-shadow:0 0 0 1px var(--line-2) inset}
.bb-mind i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.3;animation:bbMind 2.4s ease-in-out infinite}
.bb-mind i:nth-child(1){left:6px;top:9px}.bb-mind i:nth-child(2){right:6px;top:11px;animation-delay:.8s}.bb-mind i:nth-child(3){left:14px;bottom:5px;animation-delay:1.6s}
@keyframes bbMind{50%{opacity:1;box-shadow:0 0 8px var(--accent)}}
/* Make it smarter. Win more. */
.bb-smart{margin-top:14px;border:1px solid var(--line);border-radius:calc(var(--r) + 4px);padding:14px 16px;background:linear-gradient(135deg,var(--accent-a,rgba(80,140,255,.08)),transparent 60%),var(--bg-2)}
.bb-smart-h{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.bb-smart-h>div:first-child{flex:1;min-width:240px}.bb-smart-h h3{margin:0 0 2px;font-size:17px}
.bb-iq{--p:0;width:92px;height:92px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 auto;
  background:radial-gradient(closest-side,var(--bg-2) 78%,transparent 79% 100%),conic-gradient(var(--accent) calc(var(--p) * 1%),var(--track,rgba(127,127,127,.25)) 0)}
.bb-iq b{font-family:var(--f-num);font-size:22px;line-height:1}.bb-iq span{font-size:11px;color:var(--ink-3);text-align:center;max-width:70px}
.bb-smart-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:12px}
.bb-smart h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.bb-teach{display:flex;flex-direction:column;gap:6px}
.bb-step{display:flex;gap:10px;align-items:flex-start;padding:7px 8px;border-radius:var(--r);border:1px solid var(--line)}
.bb-step>div{flex:1;min-width:0}.bb-step b{font-size:14px}.bb-step .linkbtn{flex:0 0 auto;min-height:32px}
.bb-step.ok{opacity:.8}.bb-step.todo{border-color:var(--accent)}
.bb-tick{width:20px;height:20px;border-radius:50%;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;border:1.5px solid var(--ink-3);margin-top:1px}
.bb-step.ok .bb-tick{background:var(--good);border-color:var(--good);color:#fff}
.bb-learned{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-bottom:12px}
.bb-learned>div{border:1px solid var(--line);border-radius:var(--r);padding:8px;display:flex;flex-direction:column;gap:2px}
.bb-learned b{font-family:var(--f-num);font-size:22px}.bb-learned span{font-size:12px;color:var(--ink-3)}
.bb-tips{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.45}
@media (prefers-reduced-motion:reduce){.bbx{display:none}.bb-igniting>*,.bb-igniting .bb-card,.bb-mind i{animation:none!important}.bb.bb-igniting{min-height:0}}
/* Human Resources section jump (Kyle 10/23) */
.hr-jump{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}
.hr-jb{min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);font-size:13px;cursor:pointer}
.hr-jb:hover,.hr-jb:focus-visible{border-color:var(--accent)}
.hr-card{scroll-margin-top:90px}
.hr-jd td:last-child{white-space:nowrap}
/* Human Resources command module (Kyle 10/23) */
.hr-cmd{margin-bottom:12px}
.hr-bar.cur i{opacity:.55}
.hr-src{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.hr-src>div{display:grid;grid-template-columns:120px 1fr 36px;align-items:center;gap:8px;font-size:13px}
.hr-src i{height:10px;border-radius:5px;background:var(--accent);min-width:4px}.hr-src b{text-align:right;font-family:var(--f-num)}
.hr-targets{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.hr-targets label{display:flex;flex-direction:column;font-size:12px;color:var(--ink-3);gap:3px}.hr-targets input{width:110px}
.hr-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.hr-day{border:1px solid var(--line);border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0;font-size:13px}
.hr-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.hr-day em{font-style:normal;font-weight:800;font-family:var(--f-num);font-size:18px;margin-right:3px}
.hr-day small{display:block;color:var(--ink-3);font-size:11px;overflow-wrap:anywhere}
.hr-act td{vertical-align:top}.hr-act details summary{cursor:pointer;color:var(--accent)}
@media (max-width:700px){.hr-week{grid-template-columns:repeat(4,minmax(0,1fr))}.hr-src>div{grid-template-columns:90px 1fr 30px}}
/* hotel requests waiting for the superintendent's OK (Kyle 10/23) */
.hotok{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.hotok-r{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hotok-r span{flex:1;min-width:220px}
/* HR's plan for a hotel request (Kyle 10/23) */
.htplan{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.htp-n{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.htp-n>div{border:1px solid var(--line);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:2px}.htp-n span{font-size:12px;color:var(--ink-3)}.htp-n b{font-family:var(--f-num);font-size:20px}.htp-n small{font-size:11px;color:var(--ink-3)}
.htp-n>div.over{border-color:var(--crit)}.htp-n>div.over b{color:var(--crit)}
.htp-s{display:flex;flex-direction:column;gap:4px}.htp-s>div{display:flex;flex-wrap:wrap;gap:8px;font-size:13px}.htp-s span{color:var(--ink-3)}
/* SP16-1 service work orders (svcwo2-ui.js) */
.sv2-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}
.sv2-pick{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;padding:10px;margin:0 0 6px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:inherit;font:inherit;cursor:pointer}
.sv2-pick:hover,.sv2-pick:focus-visible{border-color:var(--accent)}
.sv2-roof{padding:6px 0;border-bottom:1px solid var(--line)}.sv2-roof:last-child{border-bottom:0}
.sv2-l{display:block;margin:8px 0;font-weight:600}.sv2-l textarea,.sv2-l input{display:block;width:100%;box-sizing:border-box;margin-top:4px;font:inherit;font-weight:400;padding:8px}
.sv2-need{border-color:var(--warn)}.sv2-dup{border-color:var(--crit)}.sv2-q{margin:6px 0 10px}
.sv2-rep{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px;margin:0 0 10px}.sv2-rep-h{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.sv2-paste{margin:8px 0}.sv2-paste textarea{display:block;width:100%;box-sizing:border-box;margin:6px 0;font:inherit;padding:8px}
/* MISSING-TODAY on the crew board (public/myday-ui.js) */
.cb-miss{margin:8px 0 12px;padding:10px 12px;border:1px solid var(--line-2);border-radius:12px}.cb-miss.due{border-left:4px solid var(--warn)}
.cb-miss.ok{color:var(--ink-3)}.cb-miss h4{margin:0 0 6px}.cb-miss-r{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
/* ---------- 3.300 RAMCON Navy: the navy header band in BOTH themes (drop 2227). In the light theme the header carries the dark
   tokens, so everything inside it reads on navy; the white logo shows. Seasons still win (body.ss-* header.top !important). ---------- */
:root[data-theme="light"] header.top{background:var(--brand);color-scheme:dark;
  --ink:#ffffff;--ink-2:#c3c8f0;--ink-3:#aab2e8;--line:rgba(255,255,255,.14);--line-2:rgba(255,255,255,.24);--line-3:rgba(255,255,255,.4);
  --bg:#010160;--bg-2:rgba(255,255,255,.07);--bg-3:rgba(255,255,255,.12);--bg-inset:rgba(0,0,0,.18);--hover:rgba(255,255,255,.07);--track:rgba(255,255,255,.1);
  --accent:#8c97ff;--accent-a:rgba(140,151,255,.16);--accent-ink:#03042c;color:var(--ink)}
:root[data-theme="light"] header.top .logo-d{display:block!important}:root[data-theme="light"] header.top .logo-l{display:none!important}
header.top{border-bottom:3px solid transparent;border-image:linear-gradient(90deg,#2525a0,#8c97ff 55%,#cccccc) 1}
.umns{display:flex;flex-wrap:wrap;gap:6px}.umns small{color:var(--ink-3);margin-left:4px}
/* #446 the Compass comparison tray: two buildings side by side; on a phone each fact stacks A over B */
.cmp{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
.cmp-top,.cmp-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.cmp-bar{padding:8px 12px;margin:0 0 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg-3);font-size:14px}
.cmp-acts{display:inline-flex;flex-wrap:wrap;gap:6px}
.cmp-heads{display:grid;grid-template-columns:minmax(120px,1fr) 2fr 2fr;gap:10px}
.cmp-heads::before{content:''}
.cmp-h{display:grid;gap:4px;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--bg-3)}
.cmp-h b{font-size:16px}.cmp-un small{color:var(--ink-2)}
.cmp-sw{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.cmp-grid{display:grid;border-top:1px solid var(--line)}
.cmp-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr 2fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.cmp-l{font-weight:600;display:grid;gap:2px}.cmp-l small{font-weight:400;font-size:12px;color:var(--ink-2)}
.cmp-different .cmp-l small{color:var(--accent);font-weight:600}
.cmp-k{display:none;font-size:11px;font-weight:700;color:var(--ink-2);margin-right:6px}
.cmp-by{display:block;font-size:12px;color:var(--ink-2)}
.rct-cw{display:grid;gap:4px}
@media (max-width:640px){
  .cmp-heads,.cmp-row{grid-template-columns:1fr}
  .cmp-heads::before{display:none}
  .cmp-k{display:inline-block}
}
/* #448 contact details confirmed for the exact value */
.rc-cf{display:grid;gap:8px;margin:12px 0}
.cf-row{display:grid;grid-template-columns:minmax(160px,1fr) 2fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.cf-row small{display:block;font-size:12px;color:var(--ink-2)}
.cf-form{grid-column:1/-1;display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg-3)}
.cf-form label{display:grid;gap:4px;font-size:13px}.cf-acts{display:inline-flex;gap:6px}
@media (max-width:640px){.cf-row{grid-template-columns:1fr}}
/* #449 New to this saved view */
button.rct-new{border:0;cursor:pointer;min-height:28px}
.rct-fv{display:grid;gap:8px}.rct-fvh{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rct-fvh .rc2-h span{font-size:12px;color:var(--ink-2);margin-left:6px}.rct-fvl{display:grid;gap:4px}

/* ---------- #463 the sign-in moment (public/login-fx.js) — transform and opacity only; nothing moves with reduced motion ---------- */
.login.lgx{overflow:hidden}
.lgx-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.lgx-bg i{position:absolute;inset:-4%;background:center/cover no-repeat;opacity:0;transition:opacity 1.6s var(--ease);will-change:opacity,transform}
.lgx-bg i.on{opacity:1;animation:lgxDrift 11s linear both}
.lgx-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,4,44,.5),rgba(3,4,44,.93))}
:root[data-theme="light"] .lgx-bg::after{background:linear-gradient(180deg,rgba(244,244,242,.45),rgba(244,244,242,.95))}
@keyframes lgxDrift{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.1) translate3d(-1.5%,-1%,0)}}
.login.lgx .lg-card{z-index:1;overflow:hidden}
.login.lgx .lg-hero-cap{z-index:1}
.lgx-roof{display:block;width:100%;height:auto;margin:-14px 0 14px;overflow:visible}
.lgx-roof path{fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.lgx-line{stroke:var(--accent);stroke-dasharray:1;stroke-dashoffset:1;animation:lgxDraw 1.1s .15s var(--ease) forwards}
.lgx-glow{stroke:#fff;stroke-width:2.4;stroke-dasharray:.08 1;stroke-dashoffset:.08;opacity:0}
@keyframes lgxDraw{to{stroke-dashoffset:0}}
.login.lgx .lg-card>*:not(.lgx-roof){opacity:0;transform:translateY(10px);animation:lgxRise .55s calc(.7s + var(--i,0) * 55ms) var(--ease) forwards}
@keyframes lgxRise{to{opacity:1;transform:none}}
/* a light runs once along the top edge of the card when it has built */
.login.lgx .lg-card::after{content:"";position:absolute;left:0;top:0;height:2px;width:40%;background:linear-gradient(90deg,transparent,var(--accent),transparent);transform:translateX(-110%);animation:lgxSweep 1.4s 1.4s var(--ease) forwards;pointer-events:none}
@keyframes lgxSweep{to{transform:translateX(260%)}}
/* busy: a seam runs along the bottom of the button — it says "working", never a fake percentage */
.lg-go{position:relative;overflow:hidden}
.lg-go.lgx-busy::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:35%;background:currentColor;opacity:.7;animation:lgxSeam 1s linear infinite}
@keyframes lgxSeam{from{transform:translateX(-100%)}to{transform:translateX(290%)}}
.lgx-shake{animation:lgxShake .32s cubic-bezier(.36,.07,.19,.97) both!important}
@keyframes lgxShake{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
/* success: the roof seals (a light runs along it), the card lifts away, a seam opens across the screen */
.lgx-sealed .lgx-glow{opacity:1;animation:lgxSeal .5s var(--ease) forwards}
@keyframes lgxSeal{from{stroke-dashoffset:.08}to{stroke-dashoffset:-1}}
.lgx-sealed .lg-go{background:var(--accent);color:var(--accent-ink,#fff)}
.lgx-open .lg-card{transition:transform .45s var(--ease),opacity .45s var(--ease);transform:translateY(-18px) scale(.97);opacity:0}
.login.lgx::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;z-index:2;background:linear-gradient(90deg,transparent,var(--accent),transparent);transform:scaleX(0);opacity:0}
.lgx-open.login.lgx::after{opacity:1;animation:lgxSeamOpen .5s var(--ease) forwards}
@keyframes lgxSeamOpen{to{transform:scaleX(1)}}
/* welcome after the reload: the greeting over the roofline, then it fades into the app */
.lgx-hello{position:fixed;inset:0;z-index:95;display:grid;place-items:center;background:var(--bg);transition:opacity .45s var(--ease)}
.lgx-hello.out{opacity:0;pointer-events:none}
.lgx-hello-in{width:min(560px,86vw);text-align:center}
.lgx-roof.lgx-big{margin:0 0 22px}
.lgx-roof.lgx-big .lgx-line{animation-duration:.9s;animation-delay:0s}
.lgx-hi{font-family:var(--f-disp);font-weight:600;font-size:clamp(26px,5vw,40px);letter-spacing:.02em;color:var(--ink);opacity:0;transform:translateY(8px);animation:lgxRise .5s .35s var(--ease) forwards}
.lgx-hsub{margin-top:10px;font-family:var(--f-disp);font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-3);opacity:0;animation:lgxRise .5s .55s var(--ease) forwards}
@media (prefers-reduced-motion:reduce){
  .lgx-bg i,.lgx-bg i.on{animation:none;transition:none;transform:none}
  .lgx-line{animation:none;stroke-dashoffset:0}
  .login.lgx .lg-card>*:not(.lgx-roof),.lgx-hi,.lgx-hsub{animation:none;opacity:1;transform:none}
  .login.lgx .lg-card::after,.login.lgx::after,.lg-go.lgx-busy::after{display:none}
}
/* ---------- #475 the superintendent's day: Today | Performance (public/superday-ui.js) ---------- */
.sd-tabs{display:flex;gap:4px;margin:4px 0 10px;border-bottom:1px solid var(--line-2)}
.sd-tabs button{background:none;border:0;border-bottom:3px solid transparent;color:var(--ink-2);font:600 15px var(--f-ui);padding:10px 16px;min-height:44px;cursor:pointer}
.sd-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.sd-line{font:500 17px/1.4 var(--f-ui);color:var(--ink);background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:0 0 12px}
.sd-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:12px;align-items:start}
.sd-main,.sd-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.sd-wins ul{margin:0;padding-left:18px;color:var(--good)}
.sd-wins li{margin:4px 0}
@media (max-width:900px){.sd-grid{grid-template-columns:1fr}}

/* ============================================================================================================================
   #476 MyConnects for the superintendent (public/myconnects-ui.js) — the morning sheet. One daylight canvas in both themes (it is
   a tool, not a report); the map first; hi-vis orange used once per block for the one next thing; condensed type for names and
   times, Inter for what you read. Design note: docs/design/myconnects-super-v2.md */
.myc{--mc-canvas:#E7EBF0;--mc-paper:#FFFFFF;--mc-ink:#141821;--mc-ink-2:#4A5261;--mc-ink-3:#5A6375;--mc-navy:#010160;--mc-navy-2:#1D1F8A;--mc-hivis:#FF6A13;--mc-hivis-ink:#1A0B00;--mc-sky:#CFE3F5;--mc-sky-ink:#0E3B61;--mc-go:#1F7A4D;--mc-line:#D3D9E2;--mc-wet:#1E5FA8;
  background:var(--mc-canvas);color:var(--mc-ink);font-family:var(--f-ui);margin:0;padding:0 0 56px;min-height:100vh;color-scheme:light}
main:has(> .myc){padding:0;max-width:none} /* the sheet is full-bleed: the page's own gutter and width step aside */
main:has(> .myc) > :not(.myc):not(.banner){display:none} /* the My Day panel and the desk strips fold into the sheet (their work is on it); a banner still shows */
.myc *{box-sizing:border-box}
.myc h1,.myc h2,.myc h3,.myc .myc-mark,.myc .myc-job b,.myc .myc-ld,.myc .myc-lc,.myc .myc-ud b,.myc .myc-cd b{font-family:var(--f-disp)}
.myc h2{font-size:22px;font-weight:600;letter-spacing:.01em;margin:0 0 10px;color:var(--mc-navy);text-transform:none;padding:0;border:0;background:none}.myc h2::before,.myc h2::after{content:none}
.myc h2 small{font:400 14px var(--f-ui);color:var(--mc-ink-3);margin-left:8px;text-transform:none;letter-spacing:0}
.myc h3{font-size:22px;font-weight:600;margin:0;line-height:1.1}
.myc p{margin:0}
.myc button{font-family:inherit;cursor:pointer}
/* the bar: navy, straight, no radius — the one piece of RAMCON navy on the sheet */
.myc-top{background:var(--mc-navy);color:#fff;padding:0 0 18px}
.myc-bar{display:flex;align-items:center;gap:14px;padding:10px 24px;min-height:52px;flex-wrap:wrap}
.myc-mark{font-size:24px;font-weight:400;letter-spacing:.02em;color:#fff}.myc-mark b{font-weight:700}
.myc-ret{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:4px;padding:7px 12px;font-size:14px;min-height:40px}
.myc-ret:hover{background:rgba(255,255,255,.1)}
.myc-sp{flex:1}
.myc-sides{display:inline-flex;border:1px solid rgba(255,255,255,.35);border-radius:4px;overflow:hidden}
.myc-sides button{background:transparent;color:#fff;border:0;padding:8px 16px;font:500 15px var(--f-ui);min-height:40px}
.myc-sides button[aria-selected="true"]{background:#fff;color:var(--mc-navy)}
.myc-tools{display:flex;flex-wrap:wrap;gap:6px;padding:0 24px 8px}
.myc-tool{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.28);border-radius:4px;padding:6px 12px;font:500 14px var(--f-ui);min-height:36px;cursor:pointer}
.myc-tool:hover,.myc-tool:focus-visible{background:rgba(255,255,255,.18)}
.myc-scope-pick{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:rgba(255,255,255,.85)}
.myc-scope-pick select{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:4px;padding:7px 10px;font:500 14px var(--f-ui);min-height:40px;max-width:220px}
.myc-scope-pick select option{color:var(--mc-ink)}
.myc-top .myc-lnk{color:#fff;border-color:rgba(255,255,255,.35)}
.myc-asof{font-size:12.5px;color:rgba(255,255,255,.7)}
.myc-map .osm-dark{filter:none} /* the sheet is daylight in both themes */
.myc-hi{padding:6px 24px 0}
.myc-hi h1{font-size:34px;font-weight:600;margin:0;letter-spacing:.005em;color:#fff}
.myc-wins{margin-top:6px;font-size:15px;color:#DCE6F5}
/* sections on the sheet */
.myc-sec{padding:22px 24px 0;max-width:1480px;margin:0 auto}
.myc-maps{padding-top:0;max-width:none}
.myc-map{position:relative;height:46vh;min-height:300px;max-height:560px;background:#DCE3EB;border-bottom:1px solid var(--mc-line)}
.myc-map .leaflet-container{height:100%;width:100%;background:#DCE3EB;font-family:var(--f-ui)}
.myc-map:has(.myc-nomap){height:160px;min-height:0}
.myc-map.myc-load p,.myc-nomap{position:absolute;inset:0;display:grid;place-items:center;color:var(--mc-ink-2);font-size:16px;padding:20px;text-align:center}
.myc-line{max-width:1480px;margin:14px auto 0;padding:0 24px;font:500 20px/1.3 var(--f-ui);color:var(--mc-ink);letter-spacing:-.005em}
.myc-line small{display:block;font:400 14px var(--f-ui);color:var(--mc-ink-3);margin-top:4px}
.myc-src{max-width:1480px;margin:6px auto 0;padding:0 24px;font-size:13px;color:var(--mc-ink-3)}
/* pins: a small navy card on the map; others grey; a hollow one worked here last and has nothing today */
.myc-pinw{background:transparent;border:0}
.myc-pin{position:relative;transform:translate(-50%,-100%);display:inline-flex;flex-direction:column;align-items:flex-start;background:var(--mc-navy);color:#fff;border-radius:4px;padding:4px 8px 5px;min-width:54px;box-shadow:0 2px 0 rgba(0,0,0,.25);font-family:var(--f-ui);white-space:nowrap;cursor:pointer}
.myc-pin::after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;background:inherit;transform:translateX(-50%) rotate(45deg)}
.myc-pin b{font:600 15px/1.1 var(--f-disp);letter-spacing:.02em}
.myc-pin small{display:flex;gap:6px;font-size:11px;color:rgba(255,255,255,.85);line-height:1.2;margin-top:1px}
.myc-pin small i{font-style:normal;color:#BFE3FF}.myc-pin small i.wet{color:#FFD28A;font-weight:600}
.myc-pin.other{background:#5B6475}.myc-pin.pred{background:#fff;color:var(--mc-navy);border:1.5px solid var(--mc-navy)}.myc-pin.pred small,.myc-pin.pred small i{color:var(--mc-navy-2)}
.myc-pin.sel{outline:3px solid var(--mc-hivis);outline-offset:1px}
@media (prefers-reduced-motion:no-preference){.myc-map.ready .myc-pin{animation:myc-drop .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 40ms)}}
@keyframes myc-drop{from{opacity:0;transform:translate(-50%,-130%)}to{opacity:1;transform:translate(-50%,-100%)}}
/* crew cards: white paper, 6 px radius; one orange button each */
.myc-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,340px);gap:14px;overflow-x:auto;padding:2px 2px 10px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.myc-crew{background:var(--mc-paper);border:1px solid var(--mc-line);border-radius:6px;padding:14px 16px 12px;display:flex;flex-direction:column;gap:7px;scroll-snap-align:start;min-width:0;position:relative}
.myc-crew.sel{border-color:var(--mc-navy);box-shadow:0 0 0 2px var(--mc-navy)}
.myc-crew header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.myc-crew header h3{color:var(--mc-navy)}
.myc-n{font-size:13px;color:var(--mc-ink-3)}
.myc-job{font-size:17px;line-height:1.3}.myc-job b{font-size:19px;color:var(--mc-navy)}.myc-job small{font-size:13px;color:var(--mc-ink-3)}
.myc-where,.myc-scope{font-size:14px;color:var(--mc-ink-2);line-height:1.35}
.myc-scope{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.myc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.myc-tag{font-size:13px;line-height:1;padding:6px 9px;border-radius:4px;background:#EEF1F5;color:var(--mc-ink-2);border:1px solid var(--mc-line)}
.myc-tag.ok{background:#E3F3EA;color:var(--mc-go);border-color:#BFE1CC}.myc-tag.ready{background:var(--mc-sky);color:var(--mc-sky-ink);border-color:#A9CBE8}.myc-tag.warn{background:#FFF1E7;color:#8A3B00;border-color:#F7C9AC}.myc-tag.pred{background:#fff;border-style:dashed}
.myc-wx{font-size:13px;line-height:1;padding:6px 9px;border-radius:4px;border:1px solid var(--mc-line);background:#F5F7FA;color:var(--mc-ink-2)}
.myc-wx.watch{background:var(--mc-sky);color:var(--mc-sky-ink);border-color:#A9CBE8}.myc-wx.wet{background:#DCE8F8;color:var(--mc-wet);border-color:#A9C3EA;font-weight:600}.myc-wx.unk{border-style:dashed}
.myc-crew footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.myc-more{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.myc-go{background:var(--mc-hivis);color:var(--mc-hivis-ink);border:0;border-radius:6px;padding:0 16px;min-height:44px;font:600 15px var(--f-ui);letter-spacing:.005em}
.myc-go:hover{filter:brightness(1.05)}.myc-go[disabled]{opacity:.5;cursor:default}.myc-go.sm{min-height:38px;padding:0 12px;font-size:14px}
.myc-lnk{background:transparent;color:var(--mc-navy-2);border:1px solid var(--mc-line);border-radius:6px;padding:0 10px;min-height:36px;font:500 13.5px var(--f-ui);text-decoration:none}
.myc-lnk:hover{border-color:var(--mc-navy-2)}.myc-lnk[disabled]{opacity:.5;cursor:default}
.myc-empty,.myc-unk,.myc-load{font-size:15px;color:var(--mc-ink-2);padding:14px 16px;background:var(--mc-paper);border:1px dashed var(--mc-line);border-radius:6px}
.myc-unk{border-style:solid;border-left:4px solid var(--mc-ink-3)}
.myc-err{font-size:14px;color:#8A1C1C;background:#FBE9E9;border:1px solid #F0C4C4;border-radius:6px;padding:8px 12px}
.myc-err.big{margin:18px 24px;font-size:16px}
.myc-ok{font-size:14px;color:var(--mc-go);background:#E3F3EA;border:1px solid #BFE1CC;border-radius:6px;padding:8px 12px}
.myc-mut{font-size:13.5px;color:var(--mc-ink-3)}
/* the next two weeks: lanes per crew, no radius (it is a calendar, not a card); open days are the quiet invitation */
.myc-lanes{background:var(--mc-paper);border:1px solid var(--mc-line);overflow-x:auto}
.myc-lane{display:grid;grid-template-columns:190px 1fr;border-top:1px solid var(--mc-line);min-width:720px}
.myc-lane.head{border-top:0;background:#F3F5F8}
.myc-ln{padding:10px 14px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--mc-line)}
.myc-ln b{font:600 17px var(--f-disp);color:var(--mc-navy)}.myc-ln small{font-size:12.5px;color:var(--mc-ink-3)}
.myc-lcs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(52px,1fr);gap:3px;padding:6px}
.myc-ld{font-size:14px;font-weight:600;color:var(--mc-ink-2);display:flex;flex-direction:column;align-items:center;padding:4px 0}.myc-ld small{font:400 12px var(--f-ui);color:var(--mc-ink-3)}.myc-ld.today{color:var(--mc-navy)}
.myc-lc{min-height:44px;border:0;border-radius:3px;background:var(--mc-navy);color:#fff;font:600 14px var(--f-disp);letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 4px;overflow:hidden}
.myc-lc i{font:600 11px var(--f-ui);opacity:.8}
.myc-lc.rain{background:var(--mc-wet)}
.myc-lc.open{background:transparent;color:var(--mc-ink-3);border:1px dashed var(--mc-line);font:500 20px var(--f-ui)}
.myc-lc.open:hover{border-color:var(--mc-hivis);color:var(--mc-hivis)}
/* coming up */
.myc-up{list-style:none;margin:0;padding:0;background:var(--mc-paper);border:1px solid var(--mc-line);border-radius:6px}
.myc-up li{display:grid;grid-template-columns:92px 56px 1fr auto;gap:10px;align-items:center;padding:11px 14px;border-top:1px solid var(--mc-line);font-size:15px}
.myc-up li:first-child{border-top:0}
.myc-ud{color:var(--mc-ink-3);font-size:14px}.myc-ud b{font:600 17px var(--f-disp);color:var(--mc-ink)}
.myc-ui{font:600 13px var(--f-disp);letter-spacing:.04em;color:var(--mc-ink-3);text-align:left}.k-transport .myc-ui{color:var(--mc-navy-2)}
.myc-ut b{font-weight:600;color:var(--mc-navy)}
.myc-up .myc-empty,.myc-up .myc-unk{border:0;grid-column:1/-1;display:block}
.myc-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
/* past days to close */
.myc-co{list-style:none;margin:0;padding:0;background:var(--mc-paper);border:1px solid var(--mc-line);border-radius:6px}
.myc-co li{display:grid;grid-template-columns:150px 1fr auto;gap:12px;align-items:center;padding:11px 14px;border-top:1px solid var(--mc-line);font-size:15px}
.myc-co li:first-child{border-top:0}
.myc-cd b{font:600 19px var(--f-disp);color:var(--mc-navy);display:block}.myc-cd small{color:var(--mc-ink-3);font-size:13px}
.myc-ct b{color:var(--mc-sky-ink)}
.myc-sheet{margin-top:12px;background:var(--mc-paper);border:1px solid var(--mc-navy);border-radius:6px;padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}
.myc-sheet header{display:flex;align-items:center;justify-content:space-between}
.myc-x{background:transparent;border:0;font-size:24px;line-height:1;color:var(--mc-ink-3);min-width:44px;min-height:44px}
.myc-cl{list-style:none;margin:0;padding:0}
.myc-cl li{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--mc-line);font-size:15px}
.myc-cl li:first-child{border-top:0}
.myc-cs{color:var(--mc-ink-3);font-size:14px}
.myc-note{display:flex;flex-direction:column;gap:4px;font-size:13.5px;color:var(--mc-ink-2)}
.myc-note input,.myc-note select{font:400 15px var(--f-ui);padding:9px 10px;border:1px solid var(--mc-line);border-radius:6px;background:#fff;color:var(--mc-ink);min-height:44px}
/* Deeper: the desk's own blocks, on the sheet */
.myc-deep{display:flex;flex-direction:column;gap:14px;color-scheme:light}
.myc-deep .dkw-p,.myc-deep .dkw-an,.myc-deep .dkw-ask,.myc-deep .dkw-kpi{--dkw-panel:#fff;--dkw-line:var(--mc-line);--dkw-glow:none;--bg-2:#fff;--bg-3:#F3F5F8;--bg-inset:#F3F5F8;--ink:var(--mc-ink);--ink-2:var(--mc-ink-2);--ink-3:var(--mc-ink-3);--line:var(--mc-line);--line-2:#BFC7D3;--accent:var(--mc-navy-2);--accent-a:rgba(1,1,96,.08);--accent-ink:#fff;color:var(--mc-ink)}
.myc-deep .dkw-kpis{margin-bottom:0}
.myc-deep .dkw-kpi{background:#fff;border:1px solid var(--mc-line);border-radius:6px;color:var(--mc-ink)}
.myc-deep .dkw-kpi small,.myc-deep .dkw-kpi .dkw-mut{color:var(--mc-ink-2)}
.myc-deep .dkw-x{color:var(--mc-navy-2);border-color:#BFC7D3;background:#fff}.myc-deep .dkw-x.pri{background:var(--mc-navy);border-color:var(--mc-navy);color:#fff}
.myc-an{justify-content:flex-start}
/* full view: the Connects chrome folds away; Return brings it back */
html.myc-full header.top,html.myc-full nav#ws,html.myc-full nav#tabs{display:none}
html.myc-full #main{padding-top:0}
/* keyboard */
.myc :focus-visible{outline:3px solid var(--mc-hivis);outline-offset:2px}
/* phone: the same bones, stacked */
@media (max-width:760px){
  .myc-bar{padding:8px 14px;gap:8px}.myc-mark{font-size:20px}.myc-ret{padding:6px 10px;font-size:13px}
  .myc-sides button{padding:8px 12px;font-size:14px}
  .myc-scope-pick{width:100%;order:9}.myc-scope-pick select{flex:1;max-width:none}
  .myc-hi{padding:4px 14px 0}.myc-hi h1{font-size:28px}
  .myc-tools{padding:0 14px 6px}.myc-tool{font-size:13px;padding:5px 10px}
  .myc-sec{padding:18px 14px 0}.myc-line,.myc-src{padding:0 14px}.myc-line{font-size:18px}
  .myc-map{height:42vh;min-height:240px}
  .myc-rail{grid-auto-columns:minmax(272px,86vw);margin:0 -14px;padding:2px 14px 10px}
  .myc-lane{grid-template-columns:120px 1fr;min-width:620px}.myc-ln b{font-size:15px}
  .myc-up li{grid-template-columns:76px 48px 1fr;row-gap:4px}.myc-up li .myc-lnk{grid-column:3;justify-self:start}
  .myc-co li{grid-template-columns:1fr auto;row-gap:4px}.myc-co li .myc-ct{grid-column:1/-1}
}
