/* Woodland almanac: each season (and a few holidays) brings its own warm palette and tree line.
   theme.js sets data-season / data-holiday on <html> from today's date. */
:root{
  --display:"Bitter",Georgia,serif;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:var(--body);
  --r:12px; color-scheme:light;
  --ok:#2f7a4a; --ok-soft:#dcefe2; --warn:#a4620e; --warn-soft:#f8e6c8; --bad:#a83240; --bad-soft:#f7dde0;
}
/* ---- light ---- */
:root,:root[data-season="autumn"]{
  --bg:#f6ece0; --surface:#fffaf3; --sunk:#f0e2d1; --line:#e3cfb8; --ink:#2a1c12; --muted:#7a6352;
  --accent:#a8471c; --accent-ink:#fff; --accent-soft:#f6dcc8;
  --sky1:#fbe3b8; --sky2:#f2b98c; --far:#e3a54e; --mid:#bb5a2b; --near:#5e3b24; --fleck:#d4772c; --glow:#e0a33a}
:root[data-season="winter"]{
  --bg:#edf2ee; --surface:#fcfdfa; --sunk:#e1e9e3; --line:#ccd9d0; --ink:#172521; --muted:#5c6e67;
  --accent:#2b6a4f; --accent-ink:#fff; --accent-soft:#d7eadf;
  --sky1:#eef4f6; --sky2:#cfe0e7; --far:#b2c9c3; --mid:#5f8a7a; --near:#2c4f43; --fleck:#ffffff; --glow:#c99a3a}
:root[data-season="spring"]{
  --bg:#f2f5e7; --surface:#fdfef8; --sunk:#e6ecd4; --line:#d3dcbc; --ink:#1f2b17; --muted:#5f6c52;
  --accent:#4a7f2c; --accent-ink:#fff; --accent-soft:#e0ecca;
  --sky1:#fde8ee; --sky2:#d9eecb; --far:#b9d59c; --mid:#7aa856; --near:#3f6a2a; --fleck:#f0a3b6; --glow:#e58aa0}
:root[data-season="summer"]{
  --bg:#eef3e3; --surface:#fcfdf5; --sunk:#e1e9d1; --line:#cbd9b6; --ink:#17261a; --muted:#56685a;
  --accent:#26693a; --accent-ink:#fff; --accent-soft:#d6ead9;
  --sky1:#fff1c6; --sky2:#cde7d3; --far:#93c189; --mid:#4f8f52; --near:#22512c; --fleck:#f2c94c; --glow:#e0a526}
/* holidays: accent, glow and flecks over the season */
:root[data-holiday="christmas"]{--accent:#b02f3c; --accent-soft:#f7dcdf; --glow:#d9a43a; --fleck:#ffffff}
:root[data-holiday="newyear"]{--accent:#8a5f10; --accent-soft:#f5e7c4; --glow:#e7c45a; --fleck:#e8c35a}
:root[data-holiday="valentine"]{--accent:#b4415f; --accent-soft:#f8dde4; --fleck:#f3a2b6}
:root[data-holiday="stpatrick"]{--accent:#2f8a4a; --accent-soft:#d8efdf; --fleck:#5fbf6e}
:root[data-holiday="easter"]{--accent:#7a5aa8; --accent-soft:#ebe2f6; --sky1:#fbe6f0; --sky2:#e3e6fb; --fleck:#f6c3d4}
:root[data-holiday="arbor"]{--accent:#3d7f2a; --accent-soft:#dcecd2; --fleck:#7cb85a}
:root[data-holiday="thanksgiving"]{--accent:#9a4a18; --accent-soft:#f5dcc6; --glow:#d08a2a; --fleck:#c86a2a}
:root[data-holiday="july4"],:root[data-holiday="memorial"],:root[data-holiday="labor"],:root[data-holiday="veterans"]{--accent:#2f4f8a; --accent-soft:#dde5f4; --glow:#b23a3a; --fleck:#ffffff}
/* ---- dark ---- */
@media (prefers-color-scheme: dark){
  :root{color-scheme:dark; --ok:#6cc58d; --ok-soft:#183324; --warn:#e8ab55; --warn-soft:#3b2b13; --bad:#ec8a8f; --bad-soft:#40191f}
  :root,:root[data-season="autumn"]{
    --bg:#1a130e; --surface:#241a13; --sunk:#150f0a; --line:#3b2b1f; --ink:#f3e6d8; --muted:#b59b85;
    --accent:#f0915a; --accent-ink:#2a1308; --accent-soft:#45281b;
    --sky1:#21150e; --sky2:#7a3c1a; --far:#a3592a; --mid:#6a2f17; --near:#2a150b; --fleck:#f0a050; --glow:#f0b450}
  :root[data-season="winter"]{
    --bg:#0f1715; --surface:#17221f; --sunk:#0c1311; --line:#27362f; --ink:#e6efeb; --muted:#93a6a0;
    --accent:#7cc8a3; --accent-ink:#0b1e16; --accent-soft:#1b3a2d;
    --sky1:#0e1820; --sky2:#29445a; --far:#33524f; --mid:#1e3a34; --near:#0b1915; --fleck:#f4f8fa; --glow:#e7b85a}
  :root[data-season="spring"]{
    --bg:#131a10; --surface:#1b2417; --sunk:#10160d; --line:#2c3a24; --ink:#e8f0de; --muted:#a0b190;
    --accent:#9bd16f; --accent-ink:#142008; --accent-soft:#2a3d1d;
    --sky1:#1c1824; --sky2:#3a4a2c; --far:#4a6b36; --mid:#2c4722; --near:#13220e; --fleck:#f0a5b8; --glow:#f0a5b8}
  :root[data-season="summer"]{
    --bg:#0f1610; --surface:#172118; --sunk:#0b120c; --line:#263526; --ink:#e5efe3; --muted:#97aa96;
    --accent:#79c98b; --accent-ink:#0b1d10; --accent-soft:#1c3a24;
    --sky1:#0f1826; --sky2:#22402f; --far:#2f5636; --mid:#1b3a22; --near:#0a1a0e; --fleck:#f9e27a; --glow:#f4c84a}
  :root[data-holiday="christmas"]{--accent:#f07a85; --accent-ink:#2a0b10; --accent-soft:#45202a}
  :root[data-holiday="newyear"]{--accent:#efc861; --accent-ink:#271c04; --accent-soft:#3e3216}
  :root[data-holiday="valentine"]{--accent:#f08aa5; --accent-ink:#2a0b14; --accent-soft:#45202d}
  :root[data-holiday="stpatrick"]{--accent:#7ad692; --accent-ink:#0b2012; --accent-soft:#1d3b26}
  :root[data-holiday="easter"]{--accent:#c3a5f0; --accent-ink:#1d1230; --accent-soft:#33284a}
  :root[data-holiday="arbor"]{--accent:#9bd16f; --accent-ink:#142008; --accent-soft:#2a3d1d}
  :root[data-holiday="thanksgiving"]{--accent:#f0a060; --accent-ink:#2a1308; --accent-soft:#45281b}
  :root[data-holiday="july4"],:root[data-holiday="memorial"],:root[data-holiday="labor"],:root[data-holiday="veterans"]{--accent:#8fb0f0; --accent-ink:#0b1630; --accent-soft:#1f2c48}
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5}
img{max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 56px}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:1.9rem;font-weight:700;letter-spacing:-.015em} h2{font-size:1.15rem;font-weight:600} h3{font-size:1rem;font-weight:600}
.label{font-size:.82rem;color:var(--muted);font-weight:600}
.muted{color:var(--muted)} .mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.stack{display:flex;flex-direction:column;gap:14px}

.login{min-height:100vh;display:grid;place-items:center;padding:16px}
.login-box{width:min(360px,100%)}

header.top{position:relative;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-start;justify-content:space-between;
  margin-bottom:18px;padding:18px 20px 112px;border-radius:18px;background:linear-gradient(180deg,var(--sky1),var(--sky2));isolation:isolate}
header.top>*:not(.scene){position:relative;z-index:2}
header.top .topright{z-index:30}   /* above sticky tab bars (AI Staff, Gym…), so its menus (backgrounds, bell) open on top */
.scene{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.scene-svg{position:absolute;left:0;right:0;bottom:0;width:100%;height:104px;display:block}
.ridge.far{fill:var(--far)} .ridge.mid{fill:var(--mid)} .ridge.near,.ground{fill:var(--near)}
:root[data-season="winter"] .ground{fill:#ffffff;opacity:.75}
@media (prefers-color-scheme: dark){:root[data-season="winter"] .ground{fill:#c9d6dc;opacity:.25}}
.brandline{display:flex;flex-direction:column;gap:2px;max-width:46ch}
.brandline .label{color:var(--ink);opacity:.75}
.season-tip{margin:4px 0 0;font-size:.92rem;color:var(--ink);opacity:.85}
nav.tabs{display:flex;gap:4px;background:color-mix(in srgb,var(--surface) 70%,transparent);backdrop-filter:blur(6px);padding:4px;border-radius:999px;flex-wrap:wrap}
nav.tabs button{border:0;background:transparent;color:var(--ink);opacity:.8;font:600 .9rem var(--body);padding:8px 14px;border-radius:999px;cursor:pointer;display:flex;gap:6px;align-items:center}
nav.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink);opacity:1;box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 35%,transparent)}
nav.tabs button[aria-selected="true"] .count{background:var(--accent-ink);color:var(--accent)}
/* drifting flecks */
.flecks{position:absolute;inset:0;overflow:hidden}
.fleck{position:absolute;top:-16px;width:10px;height:10px;opacity:.9;animation:cd-fall var(--dur) linear var(--delay) infinite}
.fleck.leaf{background:var(--fleck);border-radius:0 80% 0 80%;width:11px;height:9px}
.fleck.leaf:nth-child(3n){background:var(--glow)}
.fleck.snow{background:var(--fleck);border-radius:50%;width:6px;height:6px;box-shadow:0 0 4px rgb(255 255 255 / .6)}
.fleck.petal{background:var(--fleck);border-radius:60% 0 60% 0;width:9px;height:7px}
.fleck.firefly{width:5px;height:5px;border-radius:50%;background:var(--fleck);box-shadow:0 0 8px 2px var(--fleck);animation:cd-float var(--dur) ease-in-out var(--delay) infinite}
.fleck.spark{width:6px;height:6px;background:var(--fleck);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:cd-twinkle var(--dur) ease-in-out var(--delay) infinite}
.fleck.spark:nth-child(2n){background:var(--glow)}
@keyframes cd-fall{0%{transform:translate(0,0) rotate(0) scale(var(--s));opacity:0}8%{opacity:.9}85%{opacity:.9}100%{transform:translate(var(--drift),300px) rotate(320deg) scale(var(--s));opacity:0}}
@keyframes cd-float{0%,100%{transform:translate(0,0) scale(var(--s));opacity:.15}50%{transform:translate(var(--drift),-24px) scale(var(--s));opacity:1}}
@keyframes cd-twinkle{0%,100%{transform:scale(calc(var(--s)*.4));opacity:.2}50%{transform:scale(var(--s)) rotate(45deg);opacity:1}}
@media (prefers-reduced-motion: reduce){.fleck{animation:none;display:none}}
@media (max-width:640px){header.top{padding:16px 16px 92px} .scene-svg{height:96px} h1{font-size:1.6rem}}
.count{font:600 .74rem var(--body);font-variant-numeric:tabular-nums;background:var(--accent-soft);color:var(--accent);padding:1px 7px;border-radius:999px}
.count.warn{background:var(--warn-soft);color:var(--warn)}

.notice{display:flex;gap:10px;align-items:flex-start;border-radius:var(--r);padding:10px 14px;margin-bottom:12px;font-size:.9rem;background:var(--accent-soft)}
.notice.warn{background:var(--warn-soft)} .notice.bad{background:var(--bad-soft)}
.notice b{font-weight:600}

.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px;align-items:start}
@media (max-width:860px){.grid{grid-template-columns:minmax(0,1fr)}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:14px;min-width:0}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}

.drop{border:1.5px dashed var(--line);border-radius:var(--r);padding:22px 16px;text-align:center;background:var(--sunk);cursor:pointer;display:flex;flex-direction:column;gap:6px;align-items:center}
.drop.over{border-color:var(--accent);background:var(--accent-soft)}
.uploads{display:flex;flex-direction:column;gap:6px}
.up{display:flex;gap:10px;align-items:center;font-size:.85rem}
.up span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.up progress{width:120px;accent-color:var(--accent)}
.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
.tile{position:relative;border:2px solid transparent;border-radius:8px;overflow:hidden;background:var(--sunk);aspect-ratio:1;cursor:pointer;padding:0;max-width:100%}
.tile img{width:100%;height:100%;object-fit:cover;display:block}
.tile[aria-pressed="true"]{border-color:var(--accent)}
.tile .kind{position:absolute;left:6px;bottom:6px;font:600 .66rem var(--mono);background:rgb(0 0 0 / .62);color:#fff;padding:2px 6px;border-radius:4px}
.tile .x{position:absolute;right:4px;top:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgb(0 0 0 / .55);color:#fff;font-size:14px;line-height:24px;cursor:pointer;display:none}
.tile:hover .x,.tile:focus-within .x{display:block}

.selected{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.selected .thumbs{display:flex;gap:6px;flex-wrap:wrap;max-width:270px}
.selected .thumbs img{width:84px;height:84px;object-fit:cover;border-radius:6px;background:var(--sunk)}
.selected .meta{flex:1;min-width:200px;display:flex;flex-direction:column;gap:4px}
fieldset.platforms{border:0;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
fieldset.platforms legend{margin-bottom:6px}
.opt{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer;background:var(--surface);font-weight:500}
.opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.opt input{accent-color:var(--accent)}

label.f{display:flex;flex-direction:column;gap:5px;font-size:.85rem;font-weight:500}
input:not([type]),input[type=text],input[type=password],input[type=email],input[type=tel],input[type=datetime-local],input[type=url],input[type=number],input[type=date],input[type=month],input[type=time],input[type=search],textarea,select{font:inherit;font-size:.92rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:8px 10px;width:100%}
textarea{resize:vertical;line-height:1.45}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,.drop:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
@media (max-width:520px){.two{grid-template-columns:minmax(0,1fr)}}

.btn{font:600 .9rem var(--body);border-radius:8px;padding:9px 16px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.ok{background:var(--ok);color:var(--surface);border-color:var(--ok)}
.btn.danger{background:var(--bad);color:var(--surface);border-color:var(--bad)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}
.btn.small{padding:5px 10px;font-size:.8rem}
.btn:disabled{opacity:.5;cursor:not-allowed}

.status{font:600 .78rem var(--body);font-variant-numeric:tabular-nums;padding:3px 8px;border-radius:999px;white-space:nowrap}
.s-needs_review{background:var(--warn-soft);color:var(--warn)}
.s-approved,.s-posted{background:var(--ok-soft);color:var(--ok)}
.s-scheduled,.s-posting{background:var(--accent-soft);color:var(--accent)}
.s-rejected,.s-failed{background:var(--bad-soft);color:var(--bad)}

.queue{display:flex;flex-direction:column;gap:16px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.chip{font:500 .82rem var(--body);border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:5px 12px;border-radius:999px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}

.proof{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);display:grid;grid-template-columns:300px minmax(0,1fr);overflow:hidden}
@media (max-width:760px){.proof{grid-template-columns:minmax(0,1fr)}}
.proof .left{background:var(--sunk);padding:14px;display:flex;flex-direction:column;gap:10px;border-right:1px solid var(--line)}
@media (max-width:760px){.proof .left{border-right:0;border-bottom:1px solid var(--line)}}
.proof .right{padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.proof .head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}

.mock{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:.82rem}
.mock .who{display:flex;gap:8px;align-items:center;padding:8px 10px}
.mock .av{width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font:700 .7rem var(--body)}
.mock .who small{display:block;color:var(--muted);font-size:.7rem}
.mock .txt{padding:0 10px 8px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:7.5em;overflow:hidden}
.mock img,.mock video{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:var(--sunk)}
.mock .more{padding:6px 10px;color:var(--muted);font-size:.75rem}

.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field .fh{display:flex;justify-content:space-between;align-items:center;gap:8px}
.field .counter{font:400 .72rem var(--mono);color:var(--muted)}
.field .counter.over{color:var(--bad);font-weight:600}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:12px}
.revise{display:flex;gap:8px;flex-wrap:wrap}
.revise input{flex:1;min-width:180px}
.err{color:var(--bad);font-size:.88rem;margin:0}
.result{font-size:.88rem;display:flex;flex-direction:column;gap:4px}
.result a{color:var(--accent)}
.empty{text-align:center;padding:40px 16px;color:var(--muted);border:1.5px dashed var(--line);border-radius:var(--r)}
.empty h3{color:var(--ink);margin-bottom:6px}
.conn{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:0}
.conn dt{color:var(--muted);font-size:.85rem} .conn dd{margin:0;overflow-wrap:anywhere}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--muted)}
.dot.ok{background:var(--ok)} .dot.bad{background:var(--bad)} .dot.warn{background:var(--warn)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.tile-stat{background:var(--sunk);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.tile-stat b{font:700 1.5rem var(--display);font-variant-numeric:tabular-nums}
.tile-stat span{font-size:.8rem;color:var(--muted)}
.tablewrap{overflow-x:auto}
table.stats{width:100%;border-collapse:collapse;font-size:.88rem;font-variant-numeric:tabular-nums}
table.stats th{text-align:left;font-size:.82rem;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line);font-weight:600}
table.stats td{padding:7px 8px;border-bottom:1px solid var(--line)}
table.stats td.n,table.stats th.n{text-align:right}
.poststat{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px}
.poststat img{width:64px;height:64px;object-fit:cover;border-radius:6px;background:var(--sunk)}
.poststat .big{font:700 1.2rem var(--display);text-align:right;font-variant-numeric:tabular-nums}
.poststat .big small{display:block;font:500 .72rem var(--body);color:var(--muted)}
.idea{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:6px}
.ideas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.biolink{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px}
.biolink .r{display:flex;gap:8px;align-items:center;white-space:nowrap}
.topright{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.bellwrap{position:relative}
.bell{position:relative;width:44px;height:44px;border-radius:50%;border:0;background:var(--sunk);color:var(--ink);display:grid;place-items:center;cursor:pointer}
.bell:hover{color:var(--accent)}
.bell-count{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--bad);color:#fff;font:700 .7rem/18px var(--body);text-align:center}
.bellpanel{position:fixed;right:auto;top:52px;z-index:40;width:min(380px,calc(100vw - 24px));max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 32px rgb(0 0 0 / .25);padding:12px;display:flex;flex-direction:column;gap:8px}
@media (max-width:640px){.bellpanel{position:fixed;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));top:calc(84px + env(safe-area-inset-top,0px));width:auto;max-height:calc(100vh - 110px)}}
.belllist{display:flex;flex-direction:column;gap:2px}
.note{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:start;padding:9px 6px;border-radius:8px}
.note.unread{background:var(--sunk)}
.note .dot{margin-top:6px}
.note b{font-weight:600}
.note .meta{font-size:.75rem;color:var(--muted)}
.note .body{font-size:.84rem;color:var(--muted);overflow-wrap:anywhere}
.note .x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem;padding:0 4px}
.note .go{font-size:.8rem;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-align:left}
.rem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:8px;font-weight:500;font-size:.9rem;z-index:20;max-width:calc(100% - 32px)}
.progress{font-size:.88rem;color:var(--muted)}
@media (prefers-reduced-motion: no-preference){.pulse{animation:p 1.4s ease-in-out infinite}@keyframes p{50%{opacity:.45}}}

a.btn{text-decoration:none;display:inline-flex;align-items:center}
.reject-panel{border:1px solid var(--bad);background:var(--bad-soft);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px;margin-top:8px}
.reject-panel .chips{display:flex;flex-wrap:wrap;gap:6px}
.reject-panel .chip[aria-pressed="true"]{background:var(--bad);border-color:var(--bad);color:var(--surface)}
.reject-why{border-left:3px solid var(--bad);padding:6px 10px;background:var(--bad-soft);border-radius:4px;font-size:.9rem}

/* ---- crew upload page (phones) ---- */
.crew-wrap{max-width:560px}
.crew-top{padding-bottom:92px}
.crew .panel{gap:12px}
.btn.big{width:100%;padding:14px 18px;font-size:1.05rem;justify-content:center}
input.code-input{font:700 1.8rem var(--body);letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;padding:12px}
.pick{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:28px 16px;border-radius:16px;
  background:var(--accent);color:var(--accent-ink);cursor:pointer;box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 30%,transparent)}
.pick b{font:700 1.2rem var(--display)} .pick span{opacity:.85;font-size:.92rem}
.pick input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.pick:focus-within{outline:3px solid var(--ink);outline-offset:3px}
.picked{display:flex;flex-direction:column;gap:8px}
.pick-row{display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px}
.pick-row.sent{border-color:var(--ok)} .pick-row.failed{border-color:var(--bad);background:var(--bad-soft)}
.pick-thumb{width:56px;height:56px;border-radius:8px;object-fit:cover;background:var(--sunk);display:grid;place-items:center;font-size:.75rem;color:var(--muted);flex:none}
.pick-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pick-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.pick-info small{color:var(--muted)} .pick-row.sent small{color:var(--ok);font-weight:600} .pick-row.failed small{color:var(--bad)}
.pick-info progress{width:100%;accent-color:var(--accent)}
.x-btn{border:0;background:var(--sunk);color:var(--ink);width:36px;height:36px;border-radius:50%;font-size:20px;cursor:pointer;flex:none}
.done{border-color:var(--ok);background:var(--ok-soft)}
.keepopen{text-align:center;font-size:.9rem}
.small-print{font-size:.82rem;text-align:center}
.linkish{border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer;padding:0}
.crew-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.crew-row .who{flex:1;min-width:140px} .crew-row .who b{display:block}
.crew-code{font:700 1.15rem var(--body);letter-spacing:.12em;font-variant-numeric:tabular-nums}
.crew-row.off{opacity:.55}
.tile .from{position:absolute;right:6px;bottom:6px;font:600 .66rem var(--body);background:var(--accent);color:var(--accent-ink);padding:2px 6px;border-radius:4px;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .lowres{position:absolute;left:6px;top:6px;font:600 .66rem var(--body);background:var(--warn);color:#fff;padding:2px 6px;border-radius:4px}
.whoami{margin:2px 0 0;font-size:.85rem;color:var(--ink);opacity:.85}
.install-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;background:var(--accent-soft);border-radius:var(--r);padding:10px 14px;margin-bottom:12px;font-size:.9rem}
.install-bar span{flex:1;min-width:180px}
.crew-row select{width:auto;min-width:110px}
.watchline{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:.85rem;margin-top:2px}
.watchbar{display:inline-block;width:90px;height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}
.watchbar i{display:block;height:100%;background:var(--accent);border-radius:3px}
/* verse of the day */
.verse{margin:0 0 14px;padding:14px 18px 14px 20px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--glow);border-radius:var(--r);display:grid;gap:4px}
.verse figcaption{font-size:.8rem;font-weight:600;color:var(--muted)}
.verse blockquote{margin:0;font:600 1.02rem/1.55 var(--display);color:var(--ink);text-wrap:pretty;max-width:75ch}
.verse cite{font-style:normal;font-size:.85rem;color:var(--muted)}
/* character tuning */
.tune-panel{flex-basis:100%;display:flex;flex-wrap:wrap;gap:16px;border:1px solid var(--line);background:var(--sunk);border-radius:var(--r);padding:14px;margin-top:6px}
.tune-left{display:flex;flex-direction:column;gap:8px;align-items:center}
.tune-cv{width:216px;height:384px;border-radius:12px;background:#000;box-shadow:0 2px 10px rgb(0 0 0 / .15)}
.tune-src{width:150px;border-radius:6px;cursor:crosshair}
.tune-panel input[type=range]{width:100%;accent-color:var(--accent)}
.swatch{display:inline-block;width:18px;height:18px;border-radius:4px;border:1px solid var(--line);vertical-align:-4px}
/* educational topics */
.edus{display:flex;flex-direction:column;gap:12px}
.edu{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r);padding:12px;background:var(--surface);flex-wrap:wrap}
.edu.picked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.edu.used{opacity:.7}
.edu-card{width:144px;height:180px;object-fit:cover;border-radius:8px;flex:none;background:var(--sunk)}
.edu-src{display:flex;flex-direction:column;gap:2px;font-size:.82rem}
.edu-src a{color:var(--accent);overflow-wrap:anywhere}
.edu select{width:auto;max-width:100%}
@media (max-width:560px){.edu-card{width:108px;height:135px}}
/* trends */
.trends{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.trend{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:var(--r);padding:12px;background:var(--surface)}
.trend-tpl{font-weight:600;background:var(--accent-soft);border-radius:6px;padding:6px 10px;align-self:flex-start}
.trend select{width:auto;max-width:100%;flex:1}
/* ---- crew rewards ---- */
.level-card{gap:10px}
.lvl-top{display:flex;align-items:center;gap:14px}
.lvl-num{width:62px;height:62px;border-radius:16px;background:linear-gradient(145deg,var(--glow),var(--accent));color:var(--accent-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 35%,transparent)}
.lvl-num span{font-size:.7rem;font-weight:700;opacity:1;text-shadow:0 1px 2px rgba(0,0,0,.35)} .lvl-num b{font:700 1.7rem/1 var(--display)}
.lvl-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0} .lvl-name{font:700 1.2rem var(--display)}
.streak{display:flex;align-items:center;gap:4px;background:var(--warn-soft);color:var(--warn);border-radius:999px;padding:6px 10px;font-size:.82rem}
.streak b{font-size:1rem}
.xp{height:12px;border-radius:999px;background:var(--sunk);overflow:hidden}
.xp i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--glow),var(--accent));transition:width .8s ease}
.trophies{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.trophy{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;cursor:pointer;font:600 .74rem var(--body);color:var(--ink);text-align:center;border-radius:10px}
.trophy svg{width:78px;height:78px;transition:transform .2s} .trophy:not(.got) span{color:var(--muted)}
.trophy:hover svg,.trophy:focus-visible svg{transform:scale(1.07)}
.board{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.board li{display:grid;grid-template-columns:34px 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--sunk)}
.board li.me{outline:2px solid var(--accent);background:var(--accent-soft)}
.board .rank{font:700 1rem var(--display);text-align:center;border-radius:50%;width:28px;height:28px;line-height:28px}
.board .r1{background:#f2bf3f;color:#4a3000} .board .r2{background:#c8d2dc;color:#29323c} .board .r3{background:#c9813f;color:#fff}
.board .lvl{font-size:.78rem} .board .pts{font-variant-numeric:tabular-nums}
.how ul{margin:8px 0 0;padding-left:1.1em;display:flex;flex-direction:column;gap:4px;font-size:.9rem} .how summary{cursor:pointer;font-weight:600}
/* unlock pop-up */
.unlock{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,140%);z-index:60;display:flex;align-items:center;gap:14px;
  background:#16130f;color:#fff;border-radius:999px;padding:10px 26px 10px 10px;box-shadow:0 10px 40px rgb(0 0 0 / .45);min-width:min(340px,calc(100% - 32px));transition:transform .45s cubic-bezier(.2,1.3,.4,1)}
.unlock.in{transform:translate(-50%,0)}
.unlock-art{width:64px;height:64px;flex:none;animation:pop .6s cubic-bezier(.2,1.6,.4,1) both .15s} .unlock-art svg{width:100%;height:100%}
.unlock-txt{display:flex;flex-direction:column;line-height:1.2} .unlock-txt small{opacity:.75;font-size:.75rem} .unlock-txt b{font:700 1.1rem var(--display)} .unlock-txt span{color:#ffd166;font-weight:600;font-size:.88rem}
.unlock.tier-gold{box-shadow:0 0 0 2px #f2bf3f,0 10px 40px rgb(0 0 0 / .45)} .unlock.tier-platinum{box-shadow:0 0 0 2px #b8c4ff,0 10px 40px rgb(0 0 0 / .45)} .unlock.tier-legendary{box-shadow:0 0 0 3px #ff9d2e,0 0 40px #ff9d2e88}
@keyframes pop{from{transform:scale(.3) rotate(-25deg);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion: reduce){.unlock{transition:none}.unlock-art{animation:none}.xp i{transition:none}}
.sheet{position:fixed;inset:0;background:rgb(0 0 0 / .55);z-index:45;display:grid;place-items:center;padding:16px}
.sheet-card{background:var(--surface);border-radius:18px;padding:22px;max-width:340px;width:100%;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}
.sheet-art svg{width:160px;height:160px}
/* trophy button + panel (Content Desk) */
.trophy-btn{position:relative;display:flex;align-items:center;gap:6px;height:44px;padding:0 14px;border-radius:999px;border:0;cursor:pointer;
  background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--ink);font:700 .85rem var(--body)}
.trophy-btn svg{color:var(--glow);filter:drop-shadow(0 1px 0 rgb(0 0 0 / .25))}
.trophy-btn .bell-count{position:absolute;top:-4px;right:-4px}
.trophy-modal{background:var(--bg);border-radius:18px;padding:16px;width:min(760px,100%);max-height:calc(100vh - 32px);overflow:auto;display:flex;flex-direction:column;gap:12px}

/* ---------- side quest: Deadwood Dash ---------- */
.quest-card{display:flex;gap:14px;align-items:center;overflow:hidden}
.quest-art{width:120px;height:120px;border-radius:14px;flex:none;box-shadow:0 2px 10px rgb(0 0 0 / .18)}
.quest-txt{display:flex;flex-direction:column;gap:4px;min-width:0;align-items:flex-start}
.quest-txt h2{margin:0}.quest-txt p{margin:0}
.quest-meta{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:.9rem;margin:2px 0 6px}
.quest-badges,.g-badges{display:flex;gap:4px}
.mini-badge{width:38px;height:38px;padding:0;border:0;background:none;cursor:pointer;border-radius:50%}
.mini-badge svg{width:100%;height:100%;display:block}
.g-badges .mini-badge{width:54px;height:54px}
@media (max-width:420px){.quest-art{width:92px;height:92px}}
html.gaming,html.gaming body{overflow:hidden}
.game-ov{position:fixed;inset:0;z-index:55;background:#1d1510;display:flex;flex-direction:column;align-items:center;color:#fff}
.game-bar{width:min(100%,460px);display:flex;gap:10px;align-items:center;padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px}
.game-bar b{font-family:Bitter,Georgia,serif;font-size:1.1rem;flex:1}
.g-best{opacity:.85;font-size:.95rem}
.g-icon{background:rgb(255 255 255 / .12);color:#fff;border:0;border-radius:10px;min-width:40px;height:40px;display:grid;place-items:center;font-size:1.1rem;cursor:pointer}
.g-icon:focus-visible{outline:2px solid #ffd166;outline-offset:2px}
.game-stage{position:relative;flex:1;width:min(100%,460px);min-height:0;margin-bottom:env(safe-area-inset-bottom,0px)}
.game-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.g-msg{position:absolute;left:14px;right:14px;top:22%;display:none;pointer-events:none}
.g-msg.ready{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:rgb(29 21 16 / .72);border-radius:16px;padding:16px;color:#fff}
.g-msg.ready b{font-family:Bitter,Georgia,serif;font-size:1.35rem}
.g-keys{opacity:.7;font-size:.85rem}
.g-arrows{display:flex;gap:120px;font-style:normal;font-size:1.6rem;color:#ffd166;animation:gnudge 1s ease-in-out infinite alternate}
.g-arrows i{font-style:normal}
@keyframes gnudge{from{transform:scaleX(1)}to{transform:scaleX(1.08)}}
.g-msg.over{display:block;pointer-events:auto;top:12%}
.g-result{background:var(--surface);color:var(--ink);border-radius:18px;padding:18px;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 10px 30px rgb(0 0 0 / .4);max-height:76vh;overflow:auto}
.g-score{font-family:Bitter,Georgia,serif;font-size:3.4rem;font-weight:700;line-height:1}
.g-newbest{background:#ffd166;color:#3b2a00;border-radius:999px;padding:3px 12px;font-weight:700}
.g-board{width:100%;margin:0}
.g-result .row{gap:8px;justify-content:center;width:100%}
@media (prefers-reduced-motion:reduce){.g-arrows{animation:none}}
.quest-card{flex-direction:row;text-align:left}

/* ---------- Plan and Research pages ---------- */
.page-intro{margin:0 4px}
.plan-hero{background:linear-gradient(135deg,var(--surface),var(--sunk))}
.plan-headline{font-size:1.35rem;line-height:1.3;margin:0}
.plan-pills{gap:6px;flex-wrap:wrap}
.plan-pill{background:var(--sunk);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:.82rem;font-weight:600}
.plan-two{gap:14px}
.plan-col{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.plan-col.good{border-left:4px solid #5c9a44}.plan-col.change{border-left:4px solid #e08a2c}
.plan-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.plan-list li{display:flex;gap:8px;align-items:flex-start}
.plan-list .ico{flex:none;width:1.1em;font-weight:700}
.plan-list.good .ico{color:#5c9a44}.plan-list.change .ico{color:#e08a2c}
.plan-days{display:flex;flex-direction:column;gap:14px}
.plan-daylabel{font-family:Bitter,Georgia,serif;font-weight:700;margin-bottom:6px;color:var(--muted)}
.idea.used{opacity:.7}
.shots summary{cursor:pointer;font-size:.85rem;font-weight:600}
.shots ul{margin:4px 0 0;padding-left:1.2em}
.film-list{display:flex;flex-direction:column;gap:6px}
.film-list .opt.done{text-decoration:line-through;opacity:.65}
.plan-research{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.plan-research h2{margin:0 0 2px}
.activity td{vertical-align:top}
.who-cell{display:flex;flex-direction:column;font-size:.92rem}
.who-cell .muted{font-size:.78rem}
.online{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#3f8a3a}
.online i{width:8px;height:8px;border-radius:50%;background:#4caf50;box-shadow:0 0 0 3px rgb(76 175 80 / .25)}
.plan-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;align-items:start}
.plan-day .ideas{display:flex;flex-direction:column;gap:10px}
@media (max-width:640px){
  .activity,.activity tbody,.activity tr,.activity td{display:block}
  .activity thead{display:none}
  .activity tr{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
  .activity td{padding:0 !important;border:0 !important;text-align:left !important}
  .activity td:first-child{grid-column:1/-1}
  .activity td[data-label]::before{content:attr(data-label);display:block;font-size:.72rem;color:var(--muted);font-weight:600}
  .activity td:nth-child(2),.activity td:nth-child(3){grid-column:span 1}
}
/* ---------- messages ---------- */
.chat-btn{flex:none}
.crew-top .topright{position:relative;z-index:5}
html.chatting,html.chatting body{overflow:hidden}
.chat-ov{position:fixed;inset:0;z-index:50;background:rgb(0 0 0 / .45);display:flex;justify-content:flex-end}
.chat-box{width:min(920px,100%);height:100%;background:var(--bg);display:grid;grid-template-columns:320px 1fr;box-shadow:-10px 0 40px rgb(0 0 0 / .3)}
.chat-side{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--surface)}
.chat-head{display:flex;align-items:center;gap:8px;padding:calc(12px + env(safe-area-inset-top,0px)) 14px 12px;border-bottom:1px solid var(--line)}
.chat-head h2{margin:0;flex:1}
.chat-list{overflow:auto;flex:1;padding:6px}
.c-row{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:none;color:var(--ink);padding:9px 8px;border-radius:12px;cursor:pointer;font:inherit}
.c-row:hover{background:var(--sunk)} .c-row.on{background:var(--sunk);box-shadow:inset 3px 0 0 var(--accent)}
.c-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.c-av{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;font-weight:700;font-size:.85rem}
.c-av.team{background:var(--accent)} .c-av.ghost{visibility:hidden}
.c-mid{display:flex;flex-direction:column;min-width:0;flex:1}
.c-mid b{font-size:.95rem}
.c-last{color:var(--muted);font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-row.unread .c-last{color:var(--ink);font-weight:600}
.c-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.c-end small{color:var(--muted);font-size:.74rem}
.c-unread{background:var(--accent);color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:.75rem;font-weight:700;display:grid;place-items:center}
.chat-main{display:flex;flex-direction:column;min-height:0;min-width:0}
.thread-title{display:flex;flex-direction:column;flex:1;min-width:0}
.thread-title small{font-size:.8rem}
.chat-back{display:none}
.chat-msgs{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.c-empty{margin:auto;text-align:center}
.c-day{align-self:center;font-size:.76rem;font-weight:600;color:var(--muted);background:var(--sunk);border-radius:999px;padding:3px 10px;margin:12px 0 8px}
.c-msg{display:flex;gap:8px;align-items:flex-end;margin-top:8px;max-width:86%}
.c-msg.grouped{margin-top:2px}
.c-msg.mine{align-self:flex-end;flex-direction:row-reverse}
.c-msg .c-av{width:30px;height:30px;font-size:.72rem}
.c-bubble{background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:8px 11px 6px;display:flex;flex-direction:column;gap:3px;min-width:0;position:relative}
.c-msg.mine .c-bubble{background:var(--accent);border-color:var(--accent);color:#fff;border-radius:16px 16px 4px 16px}
.c-name{font-weight:700;font-size:.78rem;color:var(--muted)}
.c-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35}
.c-time{font-size:.68rem;opacity:.7;align-self:flex-end}
.c-img img{display:block;max-width:min(280px,100%);max-height:320px;border-radius:10px;object-fit:cover}
.c-del{display:none;border:0;background:none;color:inherit;opacity:.85;font-size:.72rem;text-decoration:underline;cursor:pointer;padding:0;align-self:flex-end;font:inherit;font-size:.72rem}
.c-msg:hover .c-del,.c-msg:focus-within .c-del,.c-bubble:active .c-del{display:block}
@media (hover:none){.c-del{display:block}}
.c-seen{align-self:flex-end;color:var(--muted);font-size:.72rem;margin-top:2px}
.chat-compose{display:flex;gap:8px;align-items:flex-end;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--surface)}
.c-photo{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--muted);cursor:pointer;flex:none}
.c-photo:hover{background:var(--sunk)}
.c-field{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.c-field textarea{resize:none;border:1px solid var(--line);border-radius:20px;padding:10px 14px;font:inherit;background:var(--bg);color:var(--ink);max-height:140px;width:100%}
.c-preview{position:relative;align-self:flex-start}
.c-preview img{height:72px;border-radius:10px;display:block}
.c-preview button{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;border:0;background:var(--ink);color:var(--bg);cursor:pointer}
.c-send{width:44px;height:44px;border-radius:50%;border:0;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.c-send:disabled{opacity:.5}
.chat-push{padding:8px 12px 0}
.c-pushrow{display:flex;align-items:center;gap:10px;background:var(--sunk);border-radius:12px;padding:10px 12px;font-size:.86rem}
.c-pushrow span{flex:1}
.c-pushnote{margin:0;background:var(--sunk);border-radius:12px;padding:10px 12px;font-size:.84rem}
.c-pushset{background:var(--sunk);border-radius:12px;padding:8px 12px;font-size:.86rem;display:flex;flex-direction:column;gap:6px}
.c-pushset summary{cursor:pointer;font-weight:600}
.c-pushset .opt{font-size:.84rem;margin-top:6px}
@media (max-width:760px){
  .chat-box{grid-template-columns:1fr;width:100%}
  .chat-main{display:none} .chat-ov.in-thread .chat-main{display:flex} .chat-ov.in-thread .chat-side{display:none}
  .chat-back{display:inline-flex}
  .c-msg{max-width:92%}
}
@media (min-width:761px){.chat-x2{display:none}}
.c-av{position:relative;overflow:hidden}
.c-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c-av.big{width:48px;height:48px;font-size:1rem}
.chat-brand{display:flex;align-items:center;gap:6px}
.chat-me{padding:10px 12px 0}
.c-me{display:flex;align-items:center;gap:10px;background:var(--sunk);border-radius:12px;padding:10px 12px}
.c-mebtns{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.c-mebtns .linkish{font-size:.8rem}
.thread-title{flex-direction:row;align-items:center;gap:10px}
.thread-title .c-mid small{font-size:.8rem}
.crew-row .c-av{width:40px;height:40px}
.crew-pic{display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}
.crew-pic small{font-size:.7rem;color:var(--muted);text-decoration:underline}
.chat-box{grid-template-columns:320px minmax(0,1fr)} .chat-side,.chat-main{min-width:0}
.c-me .c-mid{min-width:0}
@media (max-width:760px){.chat-box{grid-template-columns:minmax(0,1fr)}}
/* ---------- logo ---------- */
.brandrow{display:flex;align-items:center;gap:16px;min-width:0}
.brand-logo{width:84px;height:84px;flex:none;filter:drop-shadow(0 6px 12px rgb(40 20 8 / .28));transition:transform .4s cubic-bezier(.2,1.4,.4,1)}
.brand-logo:hover{transform:rotate(-6deg) scale(1.04)}
.login-logo{width:128px;height:128px;align-self:center;filter:drop-shadow(0 8px 16px rgb(40 20 8 / .25));margin-bottom:-4px}
.login-box h1{text-align:center}
.chat-brand img{width:34px;height:34px;filter:drop-shadow(0 2px 4px rgb(0 0 0 / .2))}
@media (max-width:640px){.brand-logo{width:60px;height:60px}.brandrow{gap:12px}}
@media (prefers-reduced-motion:reduce){.brand-logo{transition:none}.brand-logo:hover{transform:none}}
.c-av.team{background:transparent} .c-av.team img{inset:-2px;width:calc(100% + 4px);height:calc(100% + 4px)}
.brand-logo{width:92px;height:92px}
@media (max-width:640px){.brand-logo{width:60px;height:60px}}
/* ---------- replies ---------- */
.reply-card{gap:10px}
.reply-card.needs-owner{border-left:4px solid var(--bad,#c0392b)}
.net-badge{font-size:.74rem;font-weight:700;border-radius:6px;padding:2px 8px;color:#fff}
.n-fb{background:#1877f2}.n-ig{background:linear-gradient(45deg,#f58529,#dd2a7b,#8134af)}
.kind-chip{font-size:.76rem;font-weight:700;border-radius:999px;padding:2px 10px;border:1px solid transparent}
.k-lead{background:#e3f3df;color:#2c6b23;border-color:#b9dfb1}.k-question{background:#e2edf8;color:#1d4f80;border-color:#b8d0ea}
.k-praise{background:#fbf0d4;color:#7a5a08;border-color:#eed9a0}.k-complaint{background:#fbe1dc;color:#9c2b18;border-color:#f0bcb1}
.k-spam,.k-other{background:var(--sunk);color:var(--muted);border-color:var(--line)}
.reply-quote{background:var(--sunk);border-radius:12px;padding:10px 12px;white-space:pre-wrap;overflow-wrap:anywhere}
.reply-post{display:flex;gap:8px;align-items:center;font-size:.84rem;min-width:0}
.reply-post img{width:40px;height:40px;border-radius:8px;object-fit:cover;flex:none}
.reply-post span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reply-flag{margin:0;font-weight:600;color:#9c2b18}
.reply-actions{gap:8px;flex-wrap:wrap}
.reply-done{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.reply-sent{font-size:.9rem;padding-left:12px}
@media (prefers-color-scheme:dark){.k-lead{background:#1f3a1b;color:#a6e09a;border-color:#2f5a28}.k-question{background:#172c42;color:#a9cdf2;border-color:#24466a}
  .k-praise{background:#3a2f12;color:#f0d68a;border-color:#5a4a1c}.k-complaint{background:#43201a;color:#f4b3a5;border-color:#6a3128}.reply-flag{color:#f4b3a5}}
.board li .c-av{width:30px;height:30px;font-size:.7rem;flex:none}
.who-cell .c-av{width:28px;height:28px;font-size:.68rem}
.board li{grid-template-columns:34px auto 1fr auto auto}
.board li.muted{display:block}
/* ---------- security ---------- */
.security-panel{grid-column:1/-1}
.security-panel h3{margin:6px 0 0}
.sec-alert{display:flex;flex-direction:column;gap:2px;border-radius:12px;padding:10px 12px;border:1px solid var(--line);border-left-width:4px}
.sec-bad{border-left-color:#c0392b;background:rgb(192 57 43 / .07)}.sec-warn{border-left-color:#e08a2c;background:rgb(224 138 44 / .08)}.sec-info{border-left-color:#4a7fb5;background:rgb(74 127 181 / .07)}
.sec-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sec-checks li{display:flex;gap:10px;align-items:flex-start}
.sec-checks li>div{display:flex;flex-direction:column;gap:1px}
.sec-checks .ico{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:800;flex:none;color:#fff}
.sec-checks .ok .ico{background:#4f9a3a}.sec-checks .warn .ico{background:#e08a2c}
.sec-report{background:var(--sunk);border-radius:12px;padding:12px 14px}.sec-report p{margin:4px 0 0;line-height:1.5}
.sec-log td{vertical-align:top;font-size:.88rem}
.sec-row-bad td{background:rgb(192 57 43 / .06)}
.sec-danger{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid rgb(192 57 43 / .4);border-radius:12px;padding:12px 14px}
.sec-danger>div{display:flex;flex-direction:column;gap:2px;flex:1;min-width:220px}
.btn.danger{background:#b3341f;color:#fff;border-color:#b3341f}
@media (max-width:640px){
  .sec-log,.sec-log tbody,.sec-log tr,.sec-log td{display:block}
  .sec-log thead{display:none}
  .sec-log tr{border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin-bottom:8px}
  .sec-log td{padding:2px 0 !important;border:0 !important;text-align:left !important}
}
/* ---------- Root Words ---------- */
.rw-card .rw-art{display:flex;gap:4px;flex:none;padding:14px 10px;background:linear-gradient(135deg,#3f6b3a,#2a4a28);border-radius:14px;box-shadow:0 2px 10px rgb(0 0 0 / .18)}
.rw-card .rw-art .rw-tile{width:26px;height:30px;font-size:1rem}
.rw-tile,.rw-racktile,.rw-sq.filled{position:relative;background:linear-gradient(160deg,#fbe7bd,#efcf8f 60%,#e2b96e);color:#3b2410;border-radius:5px;box-shadow:inset 0 -2px 0 rgb(120 70 20 / .35),0 1px 2px rgb(0 0 0 / .35);font-family:Bitter,Georgia,serif;font-weight:700;display:grid;place-items:center}
.rw-tile small,.rw-v{position:absolute;right:2px;bottom:0;font-size:.5em;font-family:Figtree,system-ui,sans-serif;font-weight:700;opacity:.8}
.rw-tile.hot{background:linear-gradient(160deg,#c9f0a8,#8fcf6a);color:#1f3d14}
.rw-turnpill{background:#ffd166;color:#3b2a00;border-radius:999px;padding:2px 10px;font-size:.82rem}
.rw-ov{position:fixed;inset:0;z-index:56;background:radial-gradient(120% 80% at 50% 0%,#3d5a33,#1d2a17 70%);color:#fff;display:flex;flex-direction:column;align-items:center;overflow:auto}
.rw-bar{width:min(100%,640px);display:flex;gap:10px;align-items:center;padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px;position:sticky;top:0;background:rgb(29 42 23 / .9);backdrop-filter:blur(6px);z-index:2}
.rw-bar b{font-family:Bitter,Georgia,serif;font-size:1.15rem;flex:1}
.rw-body{width:min(100%,640px);padding:4px 12px calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:10px}
.rw-h{margin:8px 0 0;font-size:1rem;color:#d9ecc9}
.rw-note{background:rgb(255 255 255 / .1);border-radius:10px;padding:8px 12px;margin:0;font-size:.85rem}
.rw-stats{display:flex;gap:6px 14px;flex-wrap:wrap;align-items:center;font-size:.9rem}
.rw-stats .chip{background:rgb(255 255 255 / .12);color:#fff;border-color:transparent}
.rw-list,.rw-people{display:flex;flex-direction:column;gap:6px}
.rw-game,.rw-person{display:flex;align-items:center;gap:10px;width:100%;background:rgb(255 255 255 / .08);border:1px solid rgb(255 255 255 / .1);border-radius:12px;padding:8px 10px;color:#fff;text-align:left;font:inherit}
.rw-game{cursor:pointer}.rw-game.mine{border-color:#ffd166;background:rgb(255 209 102 / .12)}
.rw-game .c-last,.rw-person .c-last{color:#cfe2c0}
.rw-scores{font-family:Bitter,Georgia,serif;font-weight:700}
.rw-rules,.rw-log,.rw-more{background:rgb(255 255 255 / .06);border-radius:12px;padding:8px 12px}
.rw-rules summary,.rw-log summary,.rw-more summary{cursor:pointer;font-weight:600}
.rw-rules ul,.rw-log ol{margin:6px 0 0;padding-left:1.2em;display:flex;flex-direction:column;gap:4px;font-size:.88rem}
.rw-trophies{background:var(--surface);border-radius:14px;padding:12px;color:var(--ink)}
.rw-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rw-side{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:12px;border:2px solid transparent}
.rw-side.on{border-color:#ffd166;background:rgb(255 209 102 / .12)}
.rw-side .c-mid{display:flex;flex-direction:column;line-height:1.1}
.rw-pts{font-family:Bitter,Georgia,serif;font-weight:700;font-size:1.25rem}
.rw-bag{font-size:.82rem;color:#cfe2c0;text-align:center}
.rw-lastmove{margin:0;text-align:center;font-size:.88rem;color:#ffe9b0}
.rw-board{display:grid;grid-template-columns:repeat(15,1fr);gap:2px;padding:6px;background:linear-gradient(160deg,#6b4a2b,#4a3019);border-radius:12px;box-shadow:0 8px 24px rgb(0 0 0 / .4);width:min(100%,600px);align-self:center;--sq:calc(min(100vw - 36px, 588px) / 15)}
.rw-sq{aspect-ratio:1;border:0;padding:0;border-radius:3px;background:#efe6cf;color:#5b4632;font:inherit;cursor:pointer;display:grid;place-items:center;position:relative;min-width:0}
.rw-sq .rw-prem{font-size:calc(var(--sq) * .3);font-weight:800;letter-spacing:-.02em;color:#fff}
.rw-sq.p-TW{background:#b5442b}.rw-sq.p-DW{background:#e8956b}.rw-sq.p-TL{background:#3e8a5a}.rw-sq.p-DL{background:#6fb0c4}
.rw-sq.center{background:#e8956b}.rw-leaf{font-size:calc(var(--sq) * .55)}
.rw-sq.filled .rw-l{font-size:calc(var(--sq) * .58)}.rw-sq.filled .rw-v{font-size:calc(var(--sq) * .24)}
.rw-sq.last{box-shadow:inset 0 0 0 2px #ffd166,0 1px 2px rgb(0 0 0 / .35)}
.rw-sq.pending{background:linear-gradient(160deg,#d9f5c2,#a8dd84);box-shadow:inset 0 0 0 2px #3e8a3a}
.rw-l.blank{color:#9a5a1a;font-style:italic}
.rw-sq:focus-visible,.rw-racktile:focus-visible{outline:2px solid #ffd166;outline-offset:1px}
.rw-rack{display:flex;gap:6px;justify-content:center;padding:8px;background:linear-gradient(160deg,#7a5432,#5a3a1e);border-radius:12px;align-self:center;width:min(100%,460px)}
.rw-racktile{width:min(13vw,52px);height:min(14vw,56px);border:0;cursor:pointer;font-size:min(7vw,1.7rem);transition:transform .15s}
.rw-racktile .rw-v{font-size:.45em}
.rw-racktile.sel{transform:translateY(-8px);box-shadow:0 0 0 3px #ffd166,0 6px 10px rgb(0 0 0 / .4)}
.rw-racktile.swapsel{box-shadow:0 0 0 3px #e0482a;opacity:.8}
.rw-preview{text-align:center;font-weight:600;min-height:1.4em;font-size:.95rem;color:#fff3c8}
.rw-acts{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;align-items:flex-start}
.rw-acts .btn{min-width:96px}
.rw-play{font-size:1.05rem}
.rw-more{padding:4px 10px}.rw-morebtns{display:flex;gap:6px;margin-top:6px}
.rw-blankpick{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;background:var(--surface);color:var(--ink);border-radius:16px;padding:14px;box-shadow:0 12px 40px rgb(0 0 0 / .5);display:flex;flex-direction:column;gap:10px;align-items:center;width:min(92vw,360px)}
.rw-letters{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;width:100%}
.rw-letter{aspect-ratio:1;border:0;border-radius:6px;background:linear-gradient(160deg,#fbe7bd,#e2b96e);color:#3b2410;font-family:Bitter,Georgia,serif;font-weight:700;font-size:1.1rem;cursor:pointer}
.rw-ov .g-icon{background:rgb(255 255 255 / .12)}
@media (prefers-reduced-motion:reduce){.rw-racktile{transition:none}}

/* ---------- receipts ---------- */
.rc-scan{align-self:flex-start;font-size:1.05rem;cursor:pointer}
.rc-warn{margin:0;background:rgb(224 138 44 / .12);border-left:4px solid #e08a2c;border-radius:8px;padding:8px 12px;font-size:.88rem}
.rc-result{display:flex;flex-direction:column;gap:2px;border-radius:12px;padding:10px 12px;align-items:flex-start}
.rc-result.ok{background:rgb(79 154 58 / .12);border-left:4px solid #4f9a3a}.rc-result.bad{background:rgb(192 57 43 / .08);border-left:4px solid #c0392b}
.rc-photo{max-width:100%;max-height:420px;border-radius:12px;object-fit:contain;background:var(--sunk);cursor:zoom-in}
.rc-checkwrap{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:16px;align-items:start}
.rc-form{display:flex;flex-direction:column;gap:10px;min-width:0}
.rc-pay{display:flex;gap:6px;flex-wrap:wrap}
.rc-pay .chip.personal[aria-pressed="true"]{background:#b07a0a;border-color:#b07a0a}
.rc-actions{gap:8px}
.rc-list{display:flex;flex-direction:column;gap:8px}
.rc-row{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:8px;min-width:0}
.rc-thumb img{width:48px;height:48px;border-radius:8px;object-fit:cover;display:block;background:var(--sunk)}
.rc-mid{display:flex;flex-direction:column;min-width:0;flex:1}.rc-mid span{font-size:.82rem;overflow-wrap:anywhere}
.rc-acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.rc-status{font-size:.75rem;font-weight:700;border-radius:999px;padding:2px 8px}.rc-status.ok{background:rgb(79 154 58 / .15);color:#3f7d2e}.rc-status.bad{background:rgb(192 57 43 / .12);color:#a33424}
.rc-cats{display:flex;flex-direction:column;gap:6px}
.rc-cat{display:grid;grid-template-columns:minmax(120px,200px) 1fr auto;gap:10px;align-items:center;font-size:.88rem}
.rc-bar{height:10px;background:var(--sunk);border-radius:999px;overflow:hidden}.rc-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}
.rc-setup summary{cursor:pointer;font-weight:600}.rc-setup ol{margin:6px 0 0;padding-left:1.3em;display:flex;flex-direction:column;gap:4px;font-size:.9rem}
@media (max-width:640px){.rc-checkwrap{grid-template-columns:1fr}.rc-photo{max-height:240px}.rc-cat{grid-template-columns:1fr auto}.rc-cat .rc-bar{grid-column:1/-1;order:3}}

/* ---------- security hub: the guard dog ---------- */
.gd-tab-ico{display:inline-block;width:22px;height:22px;margin:-4px 5px -6px -4px;vertical-align:middle}
.gd-tab-ico svg{width:100%;height:100%;display:block}
.gd-hero{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:22px;align-items:center;overflow:hidden}
.gd-stage{position:relative;border-radius:16px;padding:44px 10px 0;background:linear-gradient(180deg,var(--sky1),var(--sky2) 70%,var(--far) 70.5%,var(--mid));min-height:240px;display:flex;align-items:flex-end;justify-content:center}
.gd-stage .gd-dog{width:100%;max-width:260px;display:block;transform-origin:50% 100%}
.gd-stage[data-mood="calm"] .gd-dog{animation:gd-breathe 4s ease-in-out infinite}
.gd-stage .gd-dog.barking{animation:gd-bark .38s ease-in-out infinite}
.gd-stage.patrolling .gd-dog{animation:gd-sniff .9s ease-in-out infinite}
.gd-bubble{position:absolute;top:8px;left:50%;transform:translateX(-50%);max-width:calc(100% - 20px);width:max-content;background:var(--surface);color:var(--ink);border:2px solid var(--ink);border-radius:14px;padding:6px 12px;font-weight:700;font-size:.88rem;line-height:1.3;text-align:center;box-shadow:0 3px 0 rgb(0 0 0 / .12);z-index:1}
.gd-bubble::after{content:"";position:absolute;left:50%;bottom:-9px;width:14px;height:14px;background:var(--surface);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:translateX(-50%) rotate(45deg)}
.gd-intro{display:flex;flex-direction:column;gap:6px;min-width:0}
.gd-intro h2{margin:0;font-size:1.7rem}
.gd-intro h2 .linkish{font-size:.8rem;font-family:var(--body);font-weight:600;vertical-align:middle}
.gd-status{display:flex;align-items:center;gap:8px;font-size:1.08rem}
.gd-dot{width:12px;height:12px;border-radius:50%;flex:none;background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}
[data-mood="alert"] .gd-dot{background:#e08a2c;box-shadow:0 0 0 4px var(--warn-soft)}
[data-mood="bad"] .gd-dot{background:var(--bad);box-shadow:0 0 0 4px var(--bad-soft)}
.gd-hero[data-mood="bad"]{border-color:rgb(168 50 64 / .5)}
.gd-notes{margin:2px 0 0;line-height:1.55;font-size:1rem;overflow-wrap:anywhere}
.gd-fixed{margin:0;color:var(--ok);font-weight:700}
.gd-item .btn.small{white-space:nowrap}
.gd-two{display:grid;grid-template-columns:1fr 1.25fr;gap:16px;align-items:start}
.gd-people{display:flex;flex-direction:column;gap:8px}
.gd-person{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.gd-person.off{opacity:.6;background:var(--sunk)}
.gd-who{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.gd-who span,.gd-who small{overflow-wrap:anywhere}
.gd-role{padding:5px 8px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem}
.gd-tag{font-size:.78rem;font-weight:700;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:3px 10px}
.gd-roles{margin-top:10px}.gd-roles summary{cursor:pointer;font-weight:600}.gd-roles ul{margin:6px 0 0;padding-left:18px;line-height:1.5}
.gd-log{display:flex;flex-direction:column;gap:6px}
.gd-patrol{border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.gd-patrol summary{cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap;list-style:none}
.gd-patrol summary::-webkit-details-marker{display:none}
.gd-patrol p{margin:8px 0 2px;line-height:1.5}
#gdTabIco.wiggle{animation:gd-wiggle .5s ease-in-out 3}
@keyframes gd-breathe{50%{transform:scale(1.015,.99)}}
@keyframes gd-bark{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-6px) rotate(-2deg)}60%{transform:translateY(-2px) rotate(2deg)}}
@keyframes gd-sniff{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-8px) rotate(-3deg)}75%{transform:translateX(8px) rotate(3deg)}}
@keyframes gd-wiggle{25%{transform:rotate(-14deg)}75%{transform:rotate(14deg)}}
@media (prefers-reduced-motion: reduce){.gd-stage .gd-dog,.gd-stage .gd-dog.barking,.gd-stage.patrolling .gd-dog,#gdTabIco.wiggle{animation:none}}
@media (max-width:820px){.gd-two{grid-template-columns:1fr}}
@media (max-width:640px){
  .gd-hero{grid-template-columns:1fr;gap:12px}
  .gd-stage{min-height:0;padding-top:52px}.gd-stage .gd-dog{max-width:210px}
  .gd-intro h2{font-size:1.4rem}
  .gd-person{flex-wrap:wrap}.gd-person>.row{width:100%;justify-content:flex-start !important}
}
/* the 3D guard dog */
.gd-stage canvas.gd-dog{width:100%;max-width:300px;aspect-ratio:1;display:block;touch-action:pan-y;cursor:grab}
.gd-stage canvas.gd-dog:active{cursor:grabbing}
.gd-stage:has(canvas.gd-dog){padding-top:30px}
.gd-stage canvas.gd-dog{animation:none !important}
.gd3-roam{position:fixed;left:0;bottom:calc(env(safe-area-inset-bottom,0px) - 6px);z-index:18;pointer-events:none;will-change:transform}
.gd3-roam canvas,.gd3-roam .gd3-flat{width:100%;height:100%;display:block;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}
.gd3-roam .gd3-flat{width:70%;height:70%;margin:30% 15% 0}
.gd3-bubble{position:absolute;bottom:92%;left:50%;transform:translateX(-50%);width:max-content;max-width:min(240px,70vw);pointer-events:auto;cursor:pointer;
  background:var(--surface);color:var(--ink);border:2px solid var(--ink);border-radius:14px;padding:6px 11px;font:700 .84rem/1.3 var(--body);text-align:center;box-shadow:0 3px 0 rgb(0 0 0 / .12);animation:gd3-pop .25s ease-out}
.gd3-bubble::after{content:"";position:absolute;left:50%;bottom:-8px;width:12px;height:12px;background:var(--surface);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:translateX(-50%) rotate(45deg)}
@keyframes gd3-pop{from{transform:translateX(-50%) scale(.6);opacity:0}}
@media print{.gd3-roam{display:none}}
.gd3-roam canvas{touch-action:none}
.gd3-bubble[data-link="1"]{cursor:pointer}
.gd3-bubble.menu{padding:10px;width:min(250px,80vw);max-width:none;text-align:left;cursor:default}
.gd3-mhead{font:700 1rem/1.2 var(--display);margin:0 2px 6px}
.gd3-mline{font-weight:600;font-size:.82rem;color:var(--muted);margin:0 2px 8px}
.gd3-mgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.gd3-mbtn{font:700 .9rem/1 var(--body);border:1px solid var(--line);background:var(--sunk);color:var(--ink);border-radius:10px;padding:10px 6px;cursor:pointer;touch-action:manipulation}
.gd3-mbtn:hover{border-color:var(--accent)}.gd3-mbtn:active{transform:scale(.96)}
.gd3-mrow{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.gd3-mbtn.small{flex:1;font-size:.76rem;padding:7px 6px;background:transparent}
.gd3-mbtn.strong{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.gd3-fxl{position:absolute;inset:0;pointer-events:none;overflow:visible}
.gd3-fx{position:absolute;bottom:55%;font-size:22px;animation:gd3-float 1.7s ease-out forwards;opacity:0}
@keyframes gd3-float{0%{transform:translateY(0) scale(.5);opacity:0}15%{opacity:1}100%{transform:translateY(-90px) scale(1.15) rotate(12deg);opacity:0}}
.gd3-item{position:fixed;left:0;top:0;font-size:28px;line-height:1;z-index:18;pointer-events:none;will-change:transform;filter:drop-shadow(0 3px 2px rgb(0 0 0 / .25));transition:opacity .6s}
.gd3-item.gone{opacity:0}
.gd3-paw{position:fixed;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:18;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:20px;cursor:pointer;box-shadow:0 4px 12px rgb(0 0 0 / .15)}
.gd3-paw:hover{transform:scale(1.08)}
@media (prefers-reduced-motion: reduce){.gd3-fx{animation-duration:.01s}}
.gd3-item.ball{width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#f6ffb0,#cfe34c 42%,#93ad25 100%);box-shadow:inset 0 0 0 2px rgb(255 255 255 / .0)}
.gd3-item.ball::before{content:"";position:absolute;inset:3px;border-radius:50%;border:2px solid rgb(255 255 255 / .85);border-color:rgb(255 255 255 / .85) transparent rgb(255 255 255 / .85) transparent;transform:rotate(30deg)}
/* games: fast tapping on iPhone must never select text or pop up Copy / Paste, the magnifier or zoom */
.game-ov,.game-ov *,.rw-ov,.rw-ov *:not(input):not(textarea){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.game-ov{touch-action:manipulation}
.game-stage,.game-stage canvas{touch-action:none}
html.gaming,html.gaming body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none}
.g-result,.g-result *{-webkit-user-select:none;user-select:none}
.gd-barkrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px;font-size:.88rem}
/* notifications you can tap: they open the post, comment, receipt or photos they're about */
.note.tappable{cursor:pointer;transition:background .15s}
.note.tappable:hover,.note.tappable:focus-visible{background:var(--accent-soft);outline:none}
.note.tappable .go{font-weight:700}
[data-target]{transition:box-shadow .8s ease-out}
.flash-target{box-shadow:0 0 0 4px var(--accent),0 0 26px 6px var(--accent-soft) !important;border-radius:14px}
.sec-done{border-left-color:#4f9a3a;background:var(--sunk);opacity:.75}
/* balances */
.bl-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.bl-tile{background:var(--sunk);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.bl-tile small{font-weight:600;color:var(--muted)}.bl-tile b{font-family:var(--display);font-size:1.6rem;line-height:1.15}.bl-tile span{font-size:.8rem}
.bl-tile.pos b{color:var(--ok)}.bl-tile.neg b{color:var(--bad)}.bl-tile.pto b{color:#2f6fa8}
.bl-net{margin:2px 0 0;font-weight:700}.bl-net.pos{color:var(--ok)}.bl-net.neg{color:var(--bad)}
.bl-mine h3,.bl-manage h3,.bl-detail h3{margin:10px 0 0}
.bl-form{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}
.bl-form h3{margin:0}
.bl-list{display:flex;flex-direction:column;gap:6px}
.bl-row{display:flex;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:7px;min-width:0}
.bl-row.voided .bl-mid b,.bl-row.voided .bl-amt{text-decoration:line-through;opacity:.55}
.bl-mid{display:flex;flex-direction:column;min-width:0;flex:1}.bl-mid span{font-size:.82rem;overflow-wrap:anywhere}
.bl-acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.bl-amt{font-variant-numeric:tabular-nums;white-space:nowrap}.bl-amt.pos{color:var(--ok)}.bl-amt.neg{color:var(--bad)}.bl-amt.pto{color:#2f6fa8}
.bl-status{font-size:.75rem;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--sunk)}
.bl-status.ok{background:rgb(79 154 58 / .15);color:#3f7d2e}.bl-status.bad{background:rgb(192 57 43 / .12);color:#a33424}.bl-status.wait{background:rgb(224 138 44 / .16);color:#8a5207}
.bl-people{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.bl-person{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px;cursor:pointer;font:inherit}
.bl-person:hover,.bl-person.open{border-color:var(--accent)}
.bl-person span{font-size:.86rem;font-variant-numeric:tabular-nums}.bl-person .pos{color:var(--ok);font-weight:700}.bl-person .neg{color:var(--bad);font-weight:700}.bl-person .pto{color:#2f6fa8}
.bl-detail{display:flex;flex-direction:column;gap:10px;border-left:3px solid var(--accent);padding:6px 0 10px 12px;margin:0 0 6px 6px}
.bl-plan{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.9rem}.bl-plan input{width:80px}
@media (max-width:640px){.bl-tiles{grid-template-columns:1fr 1fr}.bl-tiles .bl-tile:last-child{grid-column:1/-1}.bl-tile b{font-size:1.3rem}
  .bl-person{grid-template-columns:1fr 1fr}.bl-person b{grid-column:1/-1}.bl-row{flex-wrap:wrap}.bl-acts{width:100%;justify-content:flex-start}}
/* Tank: trust and tricks */
.gd3-trust{display:flex;flex-direction:column;gap:3px;margin-top:4px;font:600 .74rem/1.2 var(--body);color:var(--muted)}
.gd3-trust i{display:block;height:5px;border-radius:999px;background:linear-gradient(90deg,#e0477a var(--p),var(--sunk) var(--p))}
.gd3-mgrid.tricks{grid-template-columns:1fr 1fr;max-height:52vh;overflow:auto}
.gd3-mbtn.locked{opacity:.6;cursor:not-allowed;font-weight:600}
.gd3-mbtn small{display:block;font-weight:500;font-size:.66rem;margin-top:3px;color:var(--muted)}
.gd3-lick{position:fixed;left:-40vw;top:18vh;width:46vw;height:64vh;border-radius:48% 52% 45% 55% / 60% 60% 40% 40%;background:radial-gradient(circle at 50% 30%,#ff9fb0,#e86a85 60%,#c94c69);
  opacity:.9;z-index:70;pointer-events:none;animation:gd3-lick 1.2s ease-in-out forwards;box-shadow:inset 0 0 0 0 transparent}
.gd3-lick::after{content:"";position:absolute;left:48%;top:8%;width:4%;height:70%;border-radius:8px;background:rgb(160 40 70 / .35)}
@keyframes gd3-lick{0%{transform:translateX(0) rotate(-12deg)}55%{transform:translateX(120vw) rotate(10deg)}100%{transform:translateX(150vw) rotate(14deg);opacity:0}}
@media (prefers-reduced-motion: reduce){.gd3-lick{display:none}}
.tk-card{display:flex;flex-direction:column;gap:10px}
.tk-level{display:flex;flex-direction:column;gap:3px}.tk-hearts{font-size:1.2rem;letter-spacing:2px}
.tk-bar{height:10px;border-radius:999px;background:var(--sunk);overflow:hidden;margin-top:4px}.tk-bar i{display:block;height:100%;background:linear-gradient(90deg,#f28db0,#e0477a);border-radius:999px}
.tk-how{margin:0;font-size:.86rem}
.tk-team{display:flex;flex-direction:column;gap:2px}
.tk-tricks{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.tk-trick{display:flex;flex-direction:column;gap:1px;border:1px solid var(--line);border-radius:10px;padding:7px 10px;position:relative;opacity:.7}
.tk-trick.on{opacity:1;border-color:var(--accent)}.tk-trick span{font-weight:700;font-size:.88rem}.tk-trick small{font-size:.74rem}
.tk-trick i{position:absolute;top:6px;right:8px;font-style:normal;font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.tk-badges{display:flex;flex-wrap:wrap;gap:6px}.tk-badges .mini-badge{width:58px;height:58px}
.tk-toys{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.tk-toy{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;padding:10px;opacity:.65}
.tk-toy.on{opacity:1}.tk-toy.used{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.tk-toy .tk-emoji{font-size:1.7rem;line-height:1}.tk-toy small{font-size:.75rem}.tk-rare{color:var(--accent);font-weight:700}
.tk-toy .btn{align-self:flex-start;margin-top:4px}
/* the toys he chases */
.gd3-item.toy-squeaky{background:radial-gradient(circle at 34% 30%,#ffb0a8,#e0352d 45%,#9a1a14)}.gd3-item.toy-squeaky::before{border-color:transparent;background:radial-gradient(circle,#fff 18%,transparent 20%) 4px 4px/9px 9px}
.gd3-item.toy-golden{background:radial-gradient(circle at 34% 30%,#fff6c0,#f2c23a 45%,#a8770a);box-shadow:0 0 14px 4px rgb(255 210 80 / .7)}.gd3-item.toy-golden::before{border-color:rgb(255 255 255 / .9) transparent}
.gd3-item.toy-moon{background:radial-gradient(circle at 34% 30%,#ffffff,#d8e4ff 50%,#9fb3e6);box-shadow:0 0 22px 8px rgb(160 200 255 / .85)}.gd3-item.toy-moon::before{border:0;background:radial-gradient(circle at 60% 40%,rgb(120 140 190 / .5) 12%,transparent 14%),radial-gradient(circle at 35% 65%,rgb(120 140 190 / .45) 9%,transparent 11%)}
.gd3-item.toy-frisbee{width:40px;height:14px;border-radius:50%;background:radial-gradient(ellipse at 50% 35%,#7cc0ff,#2f8fdf 60%,#155a99)}.gd3-item.toy-frisbee::before{display:none}
.gd3-item.toy-rope{width:44px;height:12px;border-radius:6px;background:repeating-linear-gradient(60deg,#e8cf9a 0 5px,#c49a5a 5px 10px)}.gd3-item.toy-rope::before{content:"";position:absolute;inset:-4px auto -4px -6px;width:12px;border:0;border-radius:50%;background:#b0844a;transform:none}
/* before & after maker */
.ba-go{margin-top:6px}
.ba-card{width:min(980px,100%);max-height:94vh;overflow:auto;display:flex;flex-direction:column;gap:10px}
.ba-wrap{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:16px;align-items:start}
.ba-preview{width:100%;height:auto;aspect-ratio:4/5;border-radius:12px;background:#111;touch-action:none;cursor:ew-resize}
.ba-controls{gap:10px}.ba-row{gap:8px;align-items:center;flex-wrap:wrap}.ba-status{margin:0;font-weight:600}
@media (max-width:720px){.ba-wrap{grid-template-columns:1fr}.ba-preview{max-height:56vh;width:auto;margin:0 auto}}

/* ---------- Slash & Mulch ---------- */
.slash-ov{background:#14100c}
.slash-ov .game-stage canvas{cursor:crosshair}
.slash-ov .g-msg.ready span{max-width:300px}

/* ---------- Layout: side menu (computers) and bottom bar + More sheet (phones) ---------- */
header.top{padding-bottom:84px}
.scene-svg{height:78px}
.season-tip{max-width:60ch}
svg.ni{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sidenav-head{display:none}
.nav-group{font:700 .7rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 12px 4px}
.nav-group:first-child{padding-top:2px}
@media (min-width:900px){
  #app{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:22px;align-items:start}
  #app>header.top{grid-column:1/-1}
  .sidenav{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}
  .mainpane{min-width:0}
  .sidenav nav.tabs{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:2px;border-radius:16px;padding:8px;background:var(--surface);border:1px solid var(--line);backdrop-filter:none}
  .sidenav nav.tabs button{border-radius:10px;padding:9px 12px;justify-content:flex-start;font-size:.95rem;opacity:.85}
  .sidenav nav.tabs button:hover{background:var(--sunk);opacity:1}
  .sidenav nav.tabs button[aria-selected="true"]:hover{background:var(--accent)}
  .sidenav nav.tabs button .count{margin-left:auto}
  #bottombar,.more-scrim{display:none!important}
}
@media (max-width:899px){
  header.top{padding:14px 14px 62px;margin-bottom:12px}
  .scene-svg{height:58px}
  .season-tip{display:none}
  .brand-logo{width:52px;height:52px}
  header.top h1{font-size:1.45rem}
  .verse{padding:10px 14px 10px 16px;margin-bottom:10px}
  .verse blockquote{font-size:.92rem;line-height:1.45}
  .sidenav{position:fixed;left:0;right:0;bottom:0;z-index:41;background:var(--surface);border-radius:20px 20px 0 0;box-shadow:0 -10px 30px rgb(0 0 0 / .22);
    padding:12px max(14px,env(safe-area-inset-right,0px)) calc(84px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));
    transform:translateY(105%);visibility:hidden;transition:transform .25s ease,visibility 0s linear .25s;max-height:85vh;overflow:auto}
  html.more-open .sidenav{transform:none;visibility:visible;transition:transform .25s ease}
  .sidenav-head{display:flex;justify-content:space-between;align-items:center;padding:0 4px 6px}
  .sidenav-head b{font:700 1.1rem var(--display)}
  .sidenav nav.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:none;backdrop-filter:none;padding:0;border-radius:0}
  .sidenav .nav-group{grid-column:1/-1;padding:10px 4px 2px}
  .sidenav .nav-group[hidden]{display:none}
  .sidenav nav.tabs button{flex-direction:column;gap:4px;padding:12px 4px;border-radius:14px;background:var(--sunk);opacity:1;font-size:.82rem;position:relative;min-height:68px;justify-content:center}
  .sidenav nav.tabs button svg.ni,.sidenav .gd-tab-ico{width:22px;height:22px}
  .sidenav nav.tabs button .count{position:absolute;top:6px;right:8px}
  .more-scrim{position:fixed;inset:0;z-index:40;background:rgb(0 0 0 / .35)}
  html.has-bottombar body{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}
  html.has-bottombar{--bar-h:calc(64px + env(safe-area-inset-bottom,0px))}
  .bottombar{position:fixed;left:0;right:0;bottom:0;z-index:42;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(10px);
    border-top:1px solid var(--line);padding:6px max(6px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px))}
  .bottombar[hidden]{display:none}
  .bottombar button{border:0;background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px;font:600 .72rem var(--body);padding:6px 2px;border-radius:12px;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .bottombar button[hidden]{display:none}
  .bottombar svg.ni{width:22px;height:22px}
  .bottombar button[aria-current]{color:var(--accent)}
  .bottombar button[aria-current] svg.ni{background:var(--accent-soft);border-radius:999px;padding:2px 12px;width:46px;box-sizing:border-box;height:26px}
  .bottombar .count{position:absolute;top:0;left:calc(50% + 6px);font-size:.66rem;padding:0 5px}
  html.has-bottombar .gd3-roam{bottom:calc(var(--bar-h) - 6px)}
  html.has-bottombar .gd3-paw{bottom:calc(var(--bar-h) + 12px)}
  html.has-bottombar .toast{bottom:calc(var(--bar-h) + 12px)}
}
@media (prefers-reduced-motion:reduce){.sidenav{transition:none!important}}

/* bottom bar styles at every width (the Crew app uses it on tablets and computers too) */
html.has-bottombar body{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}
html.has-bottombar{--bar-h:calc(64px + env(safe-area-inset-bottom,0px))}
.bottombar{position:fixed;left:0;right:0;bottom:0;z-index:42;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(10px);
border-top:1px solid var(--line);padding:6px max(6px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px))}
.bottombar[hidden]{display:none}
.bottombar button{border:0;background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px;font:600 .72rem var(--body);padding:6px 2px;border-radius:12px;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}
.bottombar button[hidden]{display:none}
.bottombar svg.ni{width:22px;height:22px}
.bottombar button[aria-current]{color:var(--accent)}
.bottombar button[aria-current] svg.ni{background:var(--accent-soft);border-radius:999px;padding:2px 12px;width:46px;box-sizing:border-box;height:26px}
.bottombar .count{position:absolute;top:0;left:calc(50% + 6px);font-size:.66rem;padding:0 5px}
html.has-bottombar .gd3-roam{bottom:calc(var(--bar-h) - 6px)}
html.has-bottombar .gd3-paw{bottom:calc(var(--bar-h) + 12px)}
html.has-bottombar .toast{bottom:calc(var(--bar-h) + 12px)}
.crewbar{max-width:none}
@media (min-width:700px){.crewbar{left:50%;right:auto;transform:translateX(-50%);width:min(560px,100%);border:1px solid var(--line);border-radius:18px 18px 0 0}}
.cpane-title{font:700 1.25rem var(--display);margin:4px 2px 0}
body.crew .crew-top{padding-bottom:62px}
body.crew .crew-top .scene-svg{height:58px}
body.crew .brand-logo{width:56px;height:56px}
body.crew .crew-top h1{font-size:1.45rem}
.verse.pane-off{display:none}
@media (max-width:899px){.sidenav nav.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink)}}

/* ---------- Ad Studio ---------- */
.ad-head{align-items:center}
.ad-card{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:var(--sunk);border:1px solid var(--line);border-radius:14px;padding:10px;cursor:pointer;color:var(--ink);font:inherit}
.ad-card:hover{border-color:var(--accent)}
.ad-thumb{width:56px;height:72px;border-radius:10px;background:var(--surface);display:grid;place-items:center;font-size:1.6rem;overflow:hidden;flex:none}
.ad-thumb img{width:100%;height:100%;object-fit:cover}
.ad-card-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ad-go{font-size:1.6rem;color:var(--muted)}
.ad-stage{font-size:.82rem;font-weight:600;color:var(--accent)}
.ad-stage.st-live{color:#2f8a3a}.ad-stage.st-paused{color:var(--muted)}
.ad-setup summary{font-weight:700;cursor:pointer}
.ad-check{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.ad-check .stack{gap:6px}
.ad-tick{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--sunk);font-weight:700;flex:none}
.ad-check.got .ad-tick{background:#2f8a3a;color:#fff}
.ad-check .row input{flex:1;min-width:0}
.ad-lead{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:4px}
.ad-lead.new{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.ad-lead-top{display:flex;justify-content:space-between;gap:8px}
.ad-lead-info{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.92rem}
.ad-lead-jb{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.88rem}
.ad-lead-jb .ok{color:#2f8a3a;font-weight:600}
.ad-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ad-top h2{margin:0}
.ad-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.ad-steps li{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.75rem;color:var(--muted);text-align:center}
.ad-steps li span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--sunk);font-weight:700;color:var(--muted)}
.ad-steps li.past span{background:#2f8a3a;color:#fff}
.ad-steps li.now span{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 4px var(--accent-soft)}
.ad-steps li.now{color:var(--ink);font-weight:700}
.ad-angle{font-style:italic;color:var(--muted);margin:0}
.ad-shot-edit{position:relative;border:1px solid var(--line);border-radius:12px;padding:12px 12px 12px 44px;display:grid;gap:8px}
.ad-shot-edit>.ad-num{position:absolute;left:10px;top:12px}
.ad-num{width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:.85rem;flex:none}
.ad-shot{border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:6px;background:var(--surface)}
.ad-shot.got{background:var(--sunk)}
.ad-shot.got .ad-num{background:#2f8a3a}
.ad-shot-head{display:flex;gap:10px;align-items:center}
.ad-shot-head b{flex:1}
.ad-how{margin:0}
.ad-say{margin:0;font-weight:600;color:var(--accent)}
.ad-shot-media{display:flex;gap:10px;align-items:center}
.ad-shot-media img{width:48px;height:64px;object-fit:cover;border-radius:8px}
.ad-pick{gap:8px}
.ad-rec input,.ad-pick input{display:none}
.ad-bar{height:10px;border-radius:999px;background:var(--sunk);overflow:hidden}
.ad-bar i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .4s}
.ad-prompter{font:600 1.15rem/1.6 var(--display);background:var(--sunk);border-radius:12px;padding:14px;max-height:40vh;overflow:auto}
.ad-prompter.live{outline:3px solid #d33;outline-offset:2px}
.ad-take audio,.ad-voice audio{max-width:100%}
.ad-video{width:min(100%,340px);aspect-ratio:9/16;border-radius:14px;background:#000;justify-self:center}
.ad-video.small{width:min(100%,240px)}
.ad-ptext{white-space:pre-line;background:var(--sunk);border-radius:12px;padding:12px;margin:0}
.ad-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.ad-tile{background:var(--sunk);border-radius:12px;padding:10px 12px;display:grid;gap:2px}
.ad-tile b{font:700 1.4rem var(--display)}
.ad-budget{align-items:flex-end}
.ad-ask input{flex:1;min-width:0}
.ad-wait{align-items:center;text-align:center}
.ad-spin{width:46px;height:46px;border-radius:50%;border:5px solid var(--sunk);border-top-color:var(--accent);animation:adspin 1s linear infinite}
@keyframes adspin{to{transform:rotate(360deg)}}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:560px){.three{grid-template-columns:1fr 1fr}.ad-steps b{font-size:.68rem}}
.danger-text{color:#b3261e}
@media (prefers-reduced-motion:reduce){.ad-spin{animation:none}}
.ad-check-txt{display:grid;gap:4px;flex:1;min-width:0}
.ad-who-opt,.ad-who-person{display:flex;gap:10px;align-items:center;padding:6px 2px;cursor:pointer}
.ad-who-opt span{font-weight:600}
.ad-who-person small{margin-left:auto}
.ad-who-list{display:grid;gap:2px;padding-left:28px}
.ad-who-list .label{margin-top:6px}
.ad-who-line{display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--sunk);border-radius:12px;padding:8px 12px;flex-wrap:wrap}
.ad-who-all{justify-self:start;align-self:flex-start;margin-left:24px}
.ad-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
.ad-pcard{flex:0 0 220px;scroll-snap-align:start;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);display:grid}
.ad-pcard img{width:100%;aspect-ratio:1/1;object-fit:cover}
.ad-pcard b{padding:8px 10px 0;font-size:.92rem}
.ad-cta{margin:8px 10px 10px;justify-self:start;background:var(--sunk);border-radius:8px;padding:4px 10px;font-weight:600;font-size:.85rem}
.ad-photos{display:grid;gap:10px}

/* ---------- walkthrough ---------- */
.tour-ov{position:fixed;inset:0;z-index:80}
.tour-ov.plain{background:rgb(20 12 6 / .55)}
.tour-spot{position:fixed;border-radius:14px;box-shadow:0 0 0 4px var(--accent),0 0 0 9999px rgb(20 12 6 / .55);transition:all .3s ease;pointer-events:none}
.tour-card{position:fixed;background:var(--surface);color:var(--ink);border-radius:16px;padding:16px;box-shadow:0 14px 40px rgb(0 0 0 / .35);display:grid;gap:8px;transition:top .3s ease,left .3s ease;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}
.tour-card h3{margin:0;font:700 1.15rem var(--display)}
.tour-card p{margin:0;line-height:1.5}
.tour-label{color:var(--accent);font-weight:700;font-size:.78rem;letter-spacing:.02em}
.tour-dots{display:flex;gap:5px;flex-wrap:wrap}
.tour-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.tour-dots i.past{background:var(--accent-soft)}.tour-dots i.on{background:var(--accent);width:18px;border-radius:4px}
.tour-row{display:flex;gap:8px;align-items:center}
.tour-gap{flex:1}
html.touring{overflow:hidden}
.nav-help{margin-top:8px;width:100%;border:0;background:none;color:var(--muted);font:600 .85rem var(--body);padding:8px 12px;text-align:left;cursor:pointer;border-radius:10px}
.nav-help:hover{background:var(--sunk);color:var(--ink)}
@media (max-width:899px){.nav-help{grid-column:1/-1;text-align:center;margin-top:10px}}
.tour-people{display:grid;gap:6px}
.tour-person{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding:8px 0}
.tour-person>div{display:grid;flex:1;min-width:160px}
.tour-st{font-size:.78rem}
.tour-st.up-to-date{background:#dcefdc;color:#235c23}
.tour-st.not-yet{background:var(--sunk);color:var(--muted)}
.tour-st.has-news-waiting{background:var(--accent-soft);color:var(--accent)}
@media (prefers-reduced-motion:reduce){.tour-spot,.tour-card{transition:none}}

/* ---------- holiday editions of the games ---------- */
.game-ov.hol,.rw-ov.hol{background:var(--hol-bg)}
.hol-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}
.hol-tag{background:rgb(255 255 255 / .16);color:#fff;border-radius:999px;padding:2px 10px;font-size:.76rem;font-weight:700;white-space:nowrap}
.hol-tag.on-card{background:var(--accent-soft);color:var(--accent);display:inline-block;margin:2px 0;justify-self:start}
@media (max-width:420px){.game-bar .hol-tag,.rw-bar .hol-tag{font-size:.68rem;padding:2px 7px}}

/* ---------- receipts: online receipts and how-to ---------- */
.rc-adds{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:560px){.rc-adds{grid-template-columns:1fr}}
.rc-online{background:var(--surface);border:2px solid var(--accent);color:var(--accent)}
.rc-hint{display:block}
@media (hover:none){.rc-hint{display:none}}
.rc-home.rc-drop{outline:3px dashed var(--accent);outline-offset:4px}
.rc-paste summary,.rc-help summary{cursor:pointer;font-weight:600;color:var(--accent)}
.rc-paste{display:grid;gap:8px}
.rc-paste textarea{width:100%}
.rc-help{display:grid;gap:10px}
.rc-help-sec ol{margin:4px 0 0;padding-left:20px;display:grid;gap:3px}
.rc-doc{display:grid;place-items:center;gap:4px;background:var(--sunk);border-radius:12px;min-height:160px;padding:12px;text-align:center;cursor:pointer}
.rc-doc-ico{font-size:2rem}
.rc-text{white-space:pre-wrap;text-align:left;font:.8rem/1.4 ui-monospace,Menlo,monospace;place-items:start;max-height:260px;overflow:auto}
.rc-thumb .rc-doc-ico{display:grid;place-items:center;width:100%;height:100%;font-size:1.6rem;background:var(--sunk)}

/* ---------- game hours lock ---------- */
.play-lock{position:absolute;inset:0;z-index:20;background:rgb(10 8 6 / .78);display:grid;place-items:center;padding:20px}
.play-lock-card{background:var(--surface);color:var(--ink);border-radius:18px;padding:20px;max-width:320px;display:grid;gap:10px;text-align:center;box-shadow:0 10px 30px rgb(0 0 0 / .4)}
.play-lock-card b{font:700 1.2rem var(--display)}
.play-lock-card p{margin:0}
.pt-tag{background:#fde7c8;color:#8a4a00}

/* ---------- sign-in & devices, security settings ---------- */
.acct-ov{position:fixed;inset:0;z-index:90;background:rgb(20 12 6 / .55);display:grid;place-items:center;padding:16px;overflow:auto}
.acct-box{background:var(--bg);border-radius:18px;padding:16px;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;display:grid;gap:12px;box-shadow:0 14px 40px rgb(0 0 0 / .35)}
.acct-box input{width:100%}
.acct-qr{justify-self:center;background:#fff;border-radius:12px;padding:8px;line-height:0}
.acct-key{font-size:1rem;letter-spacing:.06em;background:var(--sunk);border-radius:8px;padding:8px 10px;word-break:break-all}
.acct-steps{margin:0;padding-left:20px;display:grid;gap:4px}
.acct-codes pre{background:var(--sunk);border-radius:10px;padding:10px 14px;font-size:1rem;letter-spacing:.06em;margin:0}
.acct-codes{display:grid;gap:8px;border:2px dashed var(--accent);border-radius:12px;padding:12px}
.acct-dev,.prot-row{display:flex;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:8px 0;flex-wrap:wrap}
.acct-dev>div,.prot-row>div{display:grid;min-width:160px;flex:1}
.prot-sec{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.prot-sec h3{margin:0}
.prot-check{display:flex;gap:10px;align-items:flex-start}
.prot-check span{display:grid}
.prot-list .chip.ok{background:#dcefdc;color:#235c23}
.prot-sec .row input{flex:1;min-width:0}
.prot-restore select{width:100%}
.gh-rule{display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--sunk);border-radius:12px;padding:10px 12px}
.gh-rule>div{display:grid}
.gh-add{display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.gh-add summary{cursor:pointer;font-weight:600;color:var(--accent)}
.gh-days{display:flex;gap:6px;flex-wrap:wrap}
.gh-days .chip.on{background:var(--accent);color:var(--accent-ink)}
.gh-people{display:grid;gap:4px;padding-left:8px}

/* ---------- AI Staff (office map) ---------- */
.staff{display:flex;flex-direction:column;gap:14px}
.staff>p{margin:0}
.st-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:14px;align-items:start}
@media (max-width:900px){.st-body{grid-template-columns:1fr}}
.st-map{position:relative;border-radius:10px;overflow:hidden;border:3px solid #1d1f24;background:#4f8b3b;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.st-map canvas{display:block;width:100%;height:auto;image-rendering:pixelated;image-rendering:crisp-edges;cursor:pointer;touch-action:manipulation}
.st-tags{position:absolute;inset:0;pointer-events:none}
.st-tag{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;cursor:pointer;white-space:nowrap;font:600 10px/1.2 ui-monospace,Menlo,Consolas,monospace;
  color:#fff;background:rgba(18,20,26,.78);padding:2px 5px;border-radius:3px;display:flex;gap:4px;align-items:center;letter-spacing:.02em}
.st-tag.sel{background:#ffd23f;color:#1d1f24;font-size:11px;z-index:2}
.st-tag i,.st-legend i,.st-chip i{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.st-room{position:absolute;transform:translate(-50%,0);font:700 9px/1 ui-monospace,Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:.08em;
  color:rgba(255,255,255,.9);text-shadow:1px 1px 0 #000;pointer-events:none;white-space:nowrap}
@media (max-width:520px){.st-room{font-size:7px}}
.st-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);margin-top:8px}
.st-legend span{display:flex;gap:5px;align-items:center}
.st-card h3{margin:0;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.st-card h4{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.st-head{display:flex;gap:12px;align-items:center}
.st-face{width:64px;height:64px;flex:none;border-radius:8px;border:2px solid #1d1f24;image-rendering:pixelated;background:#d9e6ef}
.st-face.dog{background:#f3e3cc;display:grid;place-items:center;overflow:hidden}
.st-face.dog svg{width:60px;height:60px}
.st-rename{font-size:12px}
.st-status{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px;font-size:13px}
.st-pill{background:color-mix(in srgb,var(--c) 22%,transparent);color:var(--ink);border:1px solid var(--c);border-radius:99px;padding:1px 9px;font-size:12px;font-weight:600}
.st-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.st-facts>div{background:var(--sunk);border-radius:8px;padding:7px 9px;display:flex;flex-direction:column;gap:2px}
.st-facts b{font-size:14px}
.st-duties{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px}
.st-sched{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:12px}
.st-sched th{text-align:left;padding:5px 8px 5px 0;white-space:nowrap;vertical-align:top}
.st-sched td{padding:5px 0}
.st-sched tr+tr{border-top:1px solid var(--line)}
.st-gridwrap{overflow-x:auto}
.st-grid{border-collapse:separate;border-spacing:3px;width:100%;min-width:620px;font-size:13px;table-layout:fixed}
.st-grid tr:first-child>th:first-child{width:170px}
.st-grid th{font-weight:600;padding:4px 6px}
.st-grid tr>th:first-child{text-align:left;white-space:nowrap}
.st-grid tr>th:first-child small{display:block;font-weight:400}
.st-grid th.today{background:var(--accent);color:var(--accent-ink);border-radius:6px}
.st-grid td{background:var(--sunk);border-radius:6px;padding:5px;text-align:center;vertical-align:middle;height:34px}
.st-grid td.today{outline:2px solid var(--accent-soft)}
.st-grid td small{display:block;color:var(--muted);font-size:11px}
.st-slot{font-weight:700;color:var(--accent)}
.st-grid td.st-span.every{background:repeating-linear-gradient(90deg,var(--accent-soft) 0 12px,transparent 12px 16px),var(--sunk);font-weight:600}
.st-grid td.st-span.oncall{background:transparent;border:1px dashed var(--line);color:var(--muted)}
.st-grid tr.off{opacity:.5}
.st-dir{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.st-dept h4{margin:0}
.st-chips{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.st-chip{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:center;text-align:left;background:var(--sunk);border:1px solid var(--line);border-radius:8px;padding:7px 10px;cursor:pointer;color:var(--ink);font:inherit}
.st-chip small{color:var(--muted);text-align:right}
.st-chip.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.st-map .st-3d{display:block;width:100%;aspect-ratio:16/10;touch-action:none;cursor:grab;background:#bfe0ee}
.st-map .st-3d:active{cursor:grabbing}
@media (max-width:640px){.st-map .st-3d{aspect-ratio:4/5}}
.st-map canvas[hidden]{display:none}
.st-map.is3d .st-room{font-size:10px;background:rgba(18,20,26,.45);padding:2px 5px;border-radius:3px;transform:translate(-50%,-50%)}
.st-ctl{position:absolute;top:8px;right:8px;display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 16px)}
.st-ctl button{font:600 12px/1 system-ui,sans-serif;background:rgba(18,20,26,.72);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:6px;min-width:30px;height:30px;padding:0 9px;cursor:pointer}
.st-ctl button:hover{background:rgba(18,20,26,.9)}
.st-ctl .st-viewbtn{background:#ffd23f;color:#1d1f24;border-color:#1d1f24}
.st-playing{margin-top:6px;font-size:13px;background:var(--accent-soft);border-radius:6px;padding:4px 8px}
.st-break .st-bscore{font-weight:700;font-size:18px;margin:4px 0 10px}
.st-brow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0}
.st-btable{border-collapse:collapse;width:100%;font-size:14px;margin:8px 0 12px}
.st-btable th{text-align:left;font-size:12px;color:var(--muted);padding:4px 8px 4px 0}
.st-btable td{padding:5px 8px 5px 0;border-top:1px solid var(--line)}
/* Break Room card */
.br-card h3{margin:0}
.br-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.br-score{font-size:13px;font-weight:700;color:var(--accent)}
.br-face{width:36px;height:36px;border-radius:8px;border:2px solid #1d1f24;image-rendering:pixelated;flex:none}
.br-ch{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;background:var(--accent-soft);border-radius:10px;padding:10px;margin:8px 0}
.br-ch q{display:block;font-style:italic;color:var(--muted);margin-top:2px}
.br-acts{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end}
.br-staff{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.br-p{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:var(--sunk);border-radius:10px;padding:8px 10px}
.br-mid{display:flex;flex-direction:column;min-width:0}
.br-mid small{color:var(--muted);font-size:12px}
.br-mid .br-rec{color:var(--ink);font-weight:600}
.br-pick{display:block;margin-top:8px;font-size:13px}
.st-ctl .st-viewbtn:hover{background:#ffe27a;color:#1d1f24}
.st-brow select{width:auto;display:inline-block}
.st-break .btn{align-self:flex-start}
.br-card{display:block}
.br-card>p{margin:4px 0 8px}
/* Help Desk window */
.hd-ov{position:fixed;inset:0;z-index:1000;background:rgba(20,16,12,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.hd-box{background:var(--surface);color:var(--ink);border-radius:16px;width:min(620px,100%);max-height:min(760px,calc(100dvh - 32px));display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden}
.hd-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.hd-head b{display:block;font-size:16px}.hd-head small{color:var(--muted)}
.hd-face{width:44px;height:44px;border-radius:10px;border:2px solid #1d1f24;image-rendering:pixelated}
.hd-tabs{display:flex;gap:4px;padding:8px 12px 0;overflow-x:auto;border-bottom:1px solid var(--line)}
.hd-tab{background:none;border:0;border-bottom:3px solid transparent;padding:8px 10px;font:600 14px/1.2 inherit;color:var(--muted);cursor:pointer;white-space:nowrap}
.hd-tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.hd-body{padding:14px 16px;overflow:auto;display:flex;flex-direction:column;gap:10px;flex:1;min-height:260px}
.hd-log{display:flex;flex-direction:column;gap:8px;overflow:auto;max-height:46vh}
.hd-msg{max-width:88%;padding:9px 12px;border-radius:14px;font-size:15px;line-height:1.4}
.hd-msg p{margin:0}.hd-msg p+p{margin-top:6px}
.hd-msg.q{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px}
.hd-msg.a{align-self:flex-start;background:var(--sunk);border-bottom-left-radius:4px}
.hd-msg .btn{margin-top:8px}
.hd-no{display:block;margin-top:6px;font-size:12px}
.hd-sugg{display:flex;flex-wrap:wrap;gap:6px}
.hd-ask{display:flex;gap:8px}.hd-ask input{flex:1}
.hd-faq details{border-bottom:1px solid var(--line);padding:8px 0}
.hd-faq summary{cursor:pointer;font-weight:600}
.hd-faq p{margin:6px 0 0}
.hd-body textarea{width:100%}
.hd-body>.btn{align-self:flex-start}
.hd-item{background:var(--sunk);border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:3px}
.hd-item p{margin:0}
.hd-pill{align-self:flex-start;background:color-mix(in srgb,var(--c) 22%,transparent);border:1px solid var(--c);border-radius:99px;padding:0 8px;font-size:12px;font-weight:600}
.hd-body h4{margin:6px 0 0}
/* Help Desk inbox (AI Staff) */
.st-hq{background:var(--sunk);border-radius:10px;padding:10px 12px;margin:6px 0;display:flex;flex-direction:column;gap:5px}
.st-hq.new{box-shadow:inset 3px 0 0 var(--accent)}
.st-hq p{margin:0}
.st-hq textarea{width:100%}
.st-hq .btn{align-self:flex-start}
.st-help h4{margin:14px 0 4px}
.st-brow input[type=text],.st-brow input:not([type]){flex:1;min-width:160px}
/* Arcade card */
.arc-card h2{margin:2px 0 4px}
.arc-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.arc-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;background:var(--sunk);border-radius:10px;padding:9px 11px}
.arc-row>div{display:flex;flex-direction:column;min-width:0}
.arc-row small{font-size:12px}
/* Break Room board games */
.bg-ov{display:flex;flex-direction:column;background:#1f2a22;color:#f4f1e6;overflow:auto}
.bg-ov .bg-wait{margin:auto;color:#cfd8cf}
.bg-status{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:center;padding:10px 14px;font-size:15px;text-align:center}
.bg-status.over{background:rgba(255,255,255,.08)}
.bg-status.won b{color:#ffd166}.bg-status.lost b{color:#ffb4a8}
.bg-check{background:#c0392b;color:#fff;border-radius:99px;padding:1px 9px;font-weight:700}
.bg-dots{animation:bgdots 1.2s infinite;letter-spacing:2px}@keyframes bgdots{50%{opacity:.3}}
.bg-body{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 12px 12px}
.bg-foot{display:flex;justify-content:center;padding:6px 0 16px}
.bg-foot .btn{color:#f4f1e6;border-color:rgba(255,255,255,.3)}
.bg-hint{font-size:13px;color:#cfd8cf;text-align:center;max-width:440px;margin:0}
.bg-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:min(94vw,440px);aspect-ratio:1;border:4px solid #5a3d24;border-radius:6px;overflow:hidden}
.bg-sq{border:0;padding:0;display:grid;place-items:center;position:relative;cursor:pointer;font:inherit}
.bg-sq.light{background:#ecd9b4}.bg-sq.dark{background:#7a9e6a}
.bg-board:not(.chess) .bg-sq.dark{background:#5e8a50}
.bg-sq.last{box-shadow:inset 0 0 0 100px rgba(255,214,90,.35)}
.bg-sq.sel{box-shadow:inset 0 0 0 4px #ffd166}
.bg-sq.target::after{content:"";width:28%;height:28%;border-radius:50%;background:rgba(20,30,20,.45)}
.bg-sq.capture{box-shadow:inset 0 0 0 4px rgba(192,57,43,.8)}
.bg-sq.check{background:#e0584a!important}
.bg-chess{font-size:min(9vw,42px);line-height:1;user-select:none}
.bg-chess.w{color:#fff;text-shadow:0 0 2px #000,0 1px 2px #000}
.bg-chess.b{color:#1d1f24;text-shadow:0 1px 1px rgba(255,255,255,.4)}
.bg-piece{width:76%;height:76%;border-radius:50%;display:grid;place-items:center;font-size:min(4vw,18px);box-shadow:0 3px 0 rgba(0,0,0,.35)}
.bg-piece.acorn{background:radial-gradient(circle at 50% 70%,#c98a52 55%,#7b4a2a 56%)}
.bg-piece.cone{background:repeating-radial-gradient(circle at 50% 50%,#5a3a20 0 4px,#7b5434 4px 8px)}
.bg-taken{display:flex;flex-direction:column;gap:2px;font-size:14px;color:#e6efe6;text-align:center}
.bg-promo{position:fixed;inset:auto 12px 20px;margin:auto;max-width:420px;background:var(--surface);color:var(--ink);border-radius:14px;padding:14px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;box-shadow:0 10px 40px rgba(0,0,0,.4);z-index:5}
.bg-promo b{width:100%;text-align:center}
.bg-c4{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:6px;width:min(94vw,440px);background:#5a3d24;padding:8px;border-radius:12px}
.bg-c4col{display:flex;flex-direction:column;gap:6px;background:none;border:0;padding:0;cursor:default}
.bg-c4col.can{cursor:pointer}.bg-c4col.can:hover .bg-c4cell:not(.me):not(.them){background:#a07848}
.bg-c4cell{aspect-ratio:1;border-radius:50%;background:#8a6a45;display:grid;place-items:center;font-size:min(6vw,26px);box-shadow:inset 0 3px 6px rgba(0,0,0,.35)}
.bg-c4cell.me{background:#cfe8b8}.bg-c4cell.them{background:#e8c99a}
.bg-c4cell.last{outline:3px solid #ffd166}
.bg-two{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.bg-storm{display:flex;flex-direction:column;gap:6px;align-items:center}
.bg-sgrid{display:grid;grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);width:min(90vw,320px);aspect-ratio:1;gap:2px;background:#2b4a33;padding:3px;border-radius:8px}
.bg-scell{border:0;background:#4f8b3b;border-radius:3px;font-size:min(4vw,16px);display:grid;place-items:center;padding:0;color:#fff}
.bg-scell.can{cursor:pointer}.bg-scell.can:hover{background:#6cb24f}
.bg-scell.ship{background:#e0662a}.bg-scell.sunk{background:#5a2a1a}.bg-scell.reveal{background:#a0522d;opacity:.6}
.bg-scell.miss{background:#3c6b30;color:#dfe}.bg-scell.hit{background:#c0392b}
.bg-scell.last{outline:2px solid #ffd166}
.bg-score{font-weight:700;color:#ffd166}
.bg-q{width:min(94vw,460px);display:flex;flex-direction:column;gap:8px}
.bg-q h3{margin:0;font-size:18px;line-height:1.35}
.bg-q .muted{color:#cfd8cf;margin:0}
.bg-opt{background:#f4f1e6;color:#1d1f24;border:0;border-radius:10px;padding:12px 14px;font:600 15px/1.3 inherit;text-align:left;cursor:pointer}
.bg-opt:hover{background:#fff}
.bg-last{width:min(94vw,460px);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.08)}
.bg-last.good{background:rgba(76,193,106,.18)}.bg-last.bad{background:rgba(224,88,74,.18)}
.bg-last p{margin:4px 0}.bg-last ul{margin:4px 0;padding-left:18px;font-size:14px}
.bg-bid{display:flex;gap:6px}.bg-bid input{flex:1;font-size:18px;text-align:center}
/* section tabs (trophy screen, Crew Games) */
.subtabs{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;margin-bottom:4px;position:sticky;top:0;z-index:2;background:inherit;scrollbar-width:none}
.subtabs::-webkit-scrollbar{display:none}
.subtabs button{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:7px 13px;font:600 14px/1 inherit;cursor:pointer;white-space:nowrap}
.subtabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.trophy-modal [data-sub]:not(.subtabs){display:flex;flex-direction:column;gap:12px}
.trophy-modal [data-sub][hidden]{display:none}
/* team games card */
.tg-card h2{margin:2px 0 4px}.tg-card .tg-h2{margin-top:18px}
.tg-card .btn{align-self:flex-start;margin:4px 0}
.tg-board{margin-top:4px}
.tg-win{display:grid;grid-template-columns:96px 1fr;gap:10px;align-items:center;background:var(--accent-soft);border-radius:10px;padding:8px;font-weight:600}
.tg-win img{width:96px;height:72px;object-fit:cover;border-radius:8px}
.tg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin:6px 0}
.tg-photo{position:relative;border:2px solid transparent;border-radius:10px;padding:0;overflow:hidden;background:var(--sunk);cursor:pointer;aspect-ratio:4/3}
.tg-photo img{width:100%;height:100%;object-fit:cover;display:block}
.tg-photo.voted{border-color:#e0477a}.tg-photo.mine{opacity:.7}
.tg-by{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;font-size:11px;padding:10px 6px 4px;text-align:left}
.tg-heart{position:absolute;top:6px;right:8px;color:#e0477a;font-size:20px;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.tg-quiz .hd-body h3{margin:4px 0 8px}
.tg-opt{background:var(--sunk);color:var(--ink);border:1px solid var(--line)}
.tg-opt:hover{background:var(--accent-soft)}
.tg-hat{font-size:34px}
.tg-r{width:auto;color:var(--ink)}.tg-r small{color:var(--muted)}
.tg-r.good{background:#e3f4e6}.tg-r.bad{background:#fbe3df}
.trophy-modal .subtabs{background:var(--surface);top:-14px;padding-top:12px;margin-top:-6px}
.has-dot{position:relative}
.has-dot::after{content:"";position:absolute;top:6px;right:8px;width:9px;height:9px;border-radius:50%;background:#e0584a;box-shadow:0 0 0 2px var(--surface)}
.hd-check{display:flex;flex-direction:column;gap:8px}
.hd-check h4{margin:6px 0 0}
.hd-moods{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.hd-mood{border:2px solid var(--line);background:var(--sunk);border-radius:12px;padding:8px 2px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;font:inherit;color:var(--ink)}
.hd-mood span{font-size:26px}.hd-mood small{font-size:11px;color:var(--muted)}
.hd-mood.on{border-color:var(--accent);background:var(--accent-soft)}
.hd-note{font-size:12px;color:var(--muted);background:var(--sunk);border-radius:8px;padding:8px 10px;margin:4px 0}
.hd-thanks{margin:0;font-weight:600}
.st-moods{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.st-moodchip{border-radius:99px;padding:3px 10px;font-size:13px;font-weight:600;background:var(--sunk)}
.st-moodchip.m5,.st-moodchip.m4{background:#dff1e2;color:#1f5e2b}.st-moodchip.m3{background:#fdf1d2;color:#7a5a10}.st-moodchip.m2,.st-moodchip.m1{background:#fbe0dc;color:#8a2a1f}
.st-reptext{white-space:pre-wrap;margin:0 0 10px;line-height:1.5}
.st-level{display:flex;flex-direction:column;gap:3px;margin-top:10px}
.st-level .xp{margin-top:3px}
.level-card.tappable{cursor:pointer;transition:box-shadow .15s}
.level-card.tappable:hover,.level-card.tappable:focus-visible{box-shadow:0 0 0 3px var(--accent-soft)}
.lvl-more{display:block;margin-top:6px;font-size:13px;font-weight:700;color:var(--accent)}
.earned .hd-head .lvl-num{display:flex;flex-direction:column;align-items:center;background:var(--accent);color:var(--accent-ink);border-radius:12px;padding:6px 10px;line-height:1}
.earned .hd-head .lvl-num span{font-size:10px;text-transform:uppercase;letter-spacing:.06em}.earned .hd-head .lvl-num b{font-size:24px}
.earned-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.earned-list li{display:flex;justify-content:space-between;gap:10px;background:var(--sunk);border-radius:8px;padding:7px 10px;font-size:14px}
.earned-list b{color:var(--accent)}
.earned .trophies{margin:4px 0 8px}
/* trophies & games: one button, opens on a menu */
.trophy-lvl{background:rgb(0 0 0 / .18);border-radius:99px;padding:3px 8px;font-weight:700}
.sub-hero[hidden],.sub-menu[hidden]{display:none}
.hero-lvl{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:4px 14px;align-items:center;width:100%;text-align:left;cursor:pointer;
  border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:16px;padding:14px;font:inherit}
.hero-lvl:hover{border-color:var(--accent)}
.hero-num{grid-row:1 / 3;display:grid;place-items:center;width:64px;height:64px;border-radius:16px;background:linear-gradient(160deg,#d9822b,#a8441f);color:#fff;font:700 28px/1 Bitter,Georgia,serif;box-shadow:0 3px 8px rgb(0 0 0 / .2)}
.hero-num small{font-family:system-ui,sans-serif;font-size:10px;font-weight:700;line-height:1;letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin-bottom:-6px}
.hero-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.hero-txt b{font-size:1.15rem}
.hero-txt .xp{height:8px;border-radius:99px;background:var(--sunk);overflow:hidden;margin-top:3px}
.hero-txt .xp i{display:block;height:100%;background:linear-gradient(90deg,#e1b12c,#d9822b);border-radius:99px}
.hero-go{grid-column:2;font-weight:600;color:var(--accent);font-size:.9rem}
.sub-menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.sub-tile{display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;padding:12px 14px;font:inherit;min-height:68px}
.sub-tile:hover,.sub-tile:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgb(217 130 43 / .18)}
.sub-ico{font-size:26px;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--sunk);flex:none}
.sub-txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.sub-txt small{color:var(--muted);font-size:.82rem;line-height:1.3}
.sub-arrow{font-size:22px;color:var(--muted)}
.sub-back{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:2;background:var(--bg);padding:2px 0 8px}
.sub-back b{font-size:1.05rem}
/* AI Staff: work hours, the Monday meeting minutes */
.st-grid .st-hrs{display:block;font-weight:700;font-size:12px;color:var(--ink)}
.st-grid .st-offday{display:block;font-size:12px;color:var(--muted);opacity:.7}
.st-grid .st-meetchip{display:block;font-size:10px;color:#b4632a;font-weight:600}
.st-grid .st-slot{display:block;margin-top:2px}
.st-grid .st-jobs{display:block;font-size:11px;color:var(--muted)}
.st-minutes h4{margin:12px 0 4px}
.st-minutes ul{margin:0}
.st-room.town{color:#fff;opacity:.95}
/* Calendar (mirrors Jobber) */
.cal{display:flex;flex-direction:column;gap:12px}
.cal-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.cal-nav{display:flex;gap:4px}
.cal-title{font-size:1.1rem;flex:1;min-width:150px}
.cal-seg{display:inline-flex;border:1px solid var(--line);border-radius:99px;overflow:hidden}
.cal-seg button{border:0;background:var(--surface);color:var(--ink);padding:6px 14px;font:600 14px/1 system-ui,sans-serif;cursor:pointer}
.cal-seg button.on{background:var(--accent);color:var(--accent-ink)}
.cal-note{background:var(--sunk);border-radius:10px;padding:10px 12px;margin:0}
.cal-err{background:#fde8e4;color:#8a2a1a;border-radius:10px;padding:10px 12px;margin:0}
.cal-body{display:flex;flex-direction:column;gap:10px}
.cal-body.busy{opacity:.55}
.cal-day{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.cal-day.today{border-color:var(--accent);box-shadow:0 0 0 2px rgb(217 130 43 / .15)}
.cal-day h4{margin:0}
.cal-none{margin:0;font-size:.9rem}
.cal-item{display:flex;align-items:flex-start;gap:10px;border-left:4px solid var(--c);background:var(--bg);border-radius:8px;padding:8px 10px}
.cal-item.done .cal-main b::before{content:"✓ ";color:var(--ok)}
.cal-kind{font:700 11px/1 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:var(--c);min-width:62px;padding-top:3px}
.cal-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.cal-people{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.cal-people .chip{font-size:12px;padding:2px 8px;border-radius:99px;background:var(--sunk)}
.cal-ok{color:#2f8a45;font-weight:600;white-space:nowrap}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{text-align:center;font:700 12px/1 system-ui,sans-serif;color:var(--muted);padding:4px 0}
.cal-cell{min-height:64px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:4px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;cursor:pointer;font:inherit}
.cal-cell.other{opacity:.45}
.cal-cell.today .cal-num{background:var(--accent);color:var(--accent-ink);border-radius:99px;padding:1px 6px}
.cal-cell.sel{border-color:var(--accent);box-shadow:0 0 0 2px rgb(217 130 43 / .2)}
.cal-num{font-weight:700;font-size:13px}
.cal-dots{display:flex;flex-wrap:wrap;gap:3px;align-items:center}
.cal-dots i{width:8px;height:8px;border-radius:50%;display:inline-block}
.cal-dots small{font-size:10px;color:var(--muted)}
.cal-foot{font-size:.85rem;margin:0}
@media (max-width:520px){.cal-cell{min-height:48px}.cal-kind{min-width:0}}
/* Calendar v2: laid out like Jobber (day timeline by crew, week grid) */
.cal-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.cal-top .cal-title{margin:0;font-size:1.5rem;min-width:0;flex:none}
.cal-src{margin-left:auto;font-size:.85rem}
.cal-arrow{width:40px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:18px;cursor:pointer}
.cal-bar2{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cal-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:99px;padding:3px 6px 3px 12px;background:var(--surface);font-weight:600;font-size:14px}
.cal-pill select{border:0;background:transparent;font:inherit;color:var(--ink);padding:4px;max-width:150px}
.cal-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.cal-seg button{border:0;border-right:1px solid var(--line);border-radius:0}
.cal-seg button:last-child{border-right:0}
button.cal-item{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;border:0;border-left:4px solid var(--c);background:var(--bg)}
.cal-detail{border:1px solid var(--line);border-left:5px solid var(--c);background:var(--surface);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}
.cal-detail p{margin:0}
.cal-dhead{display:flex;align-items:center;gap:10px;justify-content:space-between}
.cal-dhead h3,.cal-dhead h4{margin:0}
.cal-dhead > b{flex:1}
/* day timeline */
.cal-tlwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);-webkit-overflow-scrolling:touch}
.cal-tl{--nw:190px;--aw:84px;min-width:calc(var(--nw) + var(--aw) + var(--hw) * var(--n));display:flex;flex-direction:column}
.cal-tlrow{display:grid;grid-template-columns:var(--nw) var(--aw) calc(var(--hw) * var(--n));border-bottom:1px solid var(--line);min-height:44px}
.cal-tlrow > .cal-name{position:sticky;left:0;z-index:2;background:var(--surface);display:flex;align-items:center;gap:8px;padding:6px 10px;border-right:1px solid var(--line);min-width:0}
.cal-tlhead{min-height:38px;position:sticky;top:0;z-index:3;background:var(--surface)}
.cal-tlhead .cal-any{font-size:12px;color:var(--muted);display:flex;align-items:center;justify-content:center}
.cal-tlhead .cal-track{display:flex}
.cal-hr{width:var(--hw);flex:none;font-size:12px;color:var(--muted);padding:12px 6px 0;border-left:1px solid var(--line)}
.cal-group{width:100%;border:0;border-bottom:1px solid var(--line);background:var(--sunk);text-align:left;font:inherit;color:var(--ink);cursor:pointer;padding:0}
.cal-group .cal-name{background:var(--sunk);grid-column:1 / -1;position:sticky;left:0;border-right:0;flex-wrap:wrap;width:max-content;padding:8px 12px}
.cal-group b{font-size:1.02rem}
.cal-caret{color:var(--muted);width:12px}
.cal-person .cal-name{font-size:14px}
.cal-av{width:28px;height:28px;border-radius:50%;background:#2b3a44;color:#fff;display:grid;place-items:center;font:700 11px/1 system-ui,sans-serif;flex:none}
.cal-pn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-n{color:#3f8a35;font-weight:700;font-size:13px}
.cal-person .cal-any{border-right:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px}
.cal-person .cal-track{position:relative;background:repeating-linear-gradient(90deg,transparent 0 calc(var(--hw) - 1px),var(--line) calc(var(--hw) - 1px) var(--hw))}
.cal-chip{display:flex;align-items:center;gap:6px;min-width:0;border:0;border-left:3px solid var(--c);background:var(--bg);color:#1d1f24;border-radius:6px;padding:3px 7px;font:600 12.5px/1.25 system-ui,sans-serif;cursor:pointer;text-align:left;overflow:hidden;white-space:nowrap}
.cal-chip b{overflow:hidden;text-overflow:ellipsis;font-weight:600}
.cal-chip small{color:#555b63;font-weight:500;flex:none}
.cal-chip.done b{text-decoration:line-through;text-decoration-thickness:1px}.cal-chip.done b::before{content:"✓ ";color:var(--ok);display:inline-block;text-decoration:none}
.cal-chip:hover,.cal-chip:focus-visible{filter:brightness(.96);outline:2px solid var(--c);outline-offset:-1px}
.cal-bar{position:absolute;height:26px;z-index:1}
.cal-now{position:absolute;top:0;bottom:0;width:2px;background:#e0584a;z-index:2;pointer-events:none}
/* week grid */
.cal-wk{border-collapse:collapse;width:100%;min-width:820px;table-layout:fixed}
.cal-wk th,.cal-wk td{border-bottom:1px solid var(--line);border-left:1px solid var(--line);vertical-align:top;padding:4px}
.cal-wk tr > th:first-child{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;width:170px;font-weight:600;font-size:14px;padding:6px 10px}
.cal-wk th.today,.cal-wk td.today{background:rgb(217 130 43 / .07)}
.cal-wk td{display:table-cell}
.cal-wk td .cal-chip{margin-bottom:3px;width:100%}
.cal-wkgroup td{background:var(--sunk);padding:0}
.cal-gbtn{border:0;background:transparent;font:inherit;color:var(--ink);cursor:pointer;display:flex;gap:8px;align-items:center;padding:8px 12px;position:sticky;left:0}
/* crews editor */
.cal-crews .row input{flex:1;min-width:0}
.cal-crew{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.cal-pick{display:flex;flex-wrap:wrap;gap:6px}
.cal-pickone{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:99px;padding:4px 10px;background:var(--surface);font-size:14px;cursor:pointer}
@media (max-width:640px){.cal-tl{--nw:140px;--aw:64px}.cal-top .cal-title{font-size:1.2rem}.cal-src{margin-left:0;width:100%}}
.cal-tl.noany{--aw:0px}
.cal-tl.noany .cal-any{display:none}
.cal-tl.noany .cal-tlrow{grid-template-columns:var(--nw) calc(var(--hw) * var(--n))}
@media (max-width:640px){.cal-tl{--nw:118px}.cal-av{display:none}}
.cal-crew .row input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:600 15px/1.2 inherit;font-family:inherit;background:var(--surface);color:var(--ink)}
.cal-how{white-space:nowrap}
.cal-how small{margin-right:8px}
.cal-term{color:#a83a2a}
.cal-fold{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--bg)}
.cal-fold summary{cursor:pointer;font-weight:700}
.cal-gone{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line)}
.meme-finder{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--bg);margin-bottom:12px}
.meme-finder:empty{display:none}
.meme-finder h3{margin:0}
.found-tag{font-size:.8rem;color:var(--muted)}
.st-items li{margin-bottom:8px}
.st-decide{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}
.st-plan{white-space:pre-wrap;font:13px/1.45 ui-monospace,Menlo,Consolas,monospace;background:var(--sunk);padding:10px;border-radius:8px;max-height:320px;overflow:auto}
.st-task p{margin:4px 0}
.st-task textarea{width:100%;min-height:120px}
button.st-level{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:10px 12px;font:inherit;cursor:pointer}
button.st-level:hover,button.st-level:focus-visible{border-color:var(--accent)}
button.st-level .lvl-more{font-size:.85rem;font-weight:600;color:var(--accent)}
.st-lb td{vertical-align:middle}
.st-lb td small{display:block}
.st-lb tr.sel{background:rgb(217 130 43 / .08)}
.st-rank{font-weight:800;text-align:center;width:36px}
/* Shop (Crew app tab + Shop Desk) */
.sh-pill{display:inline-flex;align-items:center;gap:4px;font:700 11.5px/1 system-ui,sans-serif;padding:4px 8px;border-radius:99px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);border:1px solid color-mix(in srgb,var(--c) 40%,transparent);white-space:nowrap}
.sh-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.sh-actions{margin-top:6px}
.sh-big{font-size:1.05rem}
.sh-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.sh-asset{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:8px;cursor:pointer;font:inherit;min-height:120px}
.sh-asset img{width:100%;height:84px;object-fit:cover;border-radius:8px;background:var(--sunk)}
.sh-asset .sh-ico{font-size:40px;line-height:84px;height:84px;width:100%;text-align:center;background:var(--sunk);border-radius:8px}
.sh-asset.oos{border-color:#d63c2f;box-shadow:0 0 0 2px rgb(214 60 47 / .15)}
.sh-asset:hover,.sh-asset:focus-visible{border-color:var(--accent);outline:none}
.sh-check{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.sh-item{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface)}
.sh-item.fail{border-color:#d63c2f;background:#fdf0ee}
.sh-itop{display:flex;align-items:center;gap:10px;justify-content:space-between}
.sh-btns{display:flex;gap:6px;flex:none}
.sh-ok,.sh-no{width:48px;height:42px;border-radius:10px;border:2px solid var(--line);background:var(--bg);font-size:20px;font-weight:800;cursor:pointer;color:var(--muted)}
.sh-ok.on{background:#4cc16a;border-color:#3a9a52;color:#fff}
.sh-no.on{background:#d63c2f;border-color:#a82d23;color:#fff}
.sh-extra{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.sh-extra textarea,.sh-modal textarea,.sh-modal input,.sh-modal select{width:100%}
.sh-thumbs{display:flex;flex-wrap:wrap;gap:6px}
.sh-thumbs img,.sh-thumb img{width:72px;height:72px;object-fit:cover;border-radius:8px;display:block;background:var(--sunk)}
.sh-thumb{position:relative}
.sh-x{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:#1d1f24;color:#fff;cursor:pointer;line-height:1}
.sh-photos{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.sh-warn{background:#fde8e4;color:#8a2a1a;border-radius:10px;padding:10px 12px;font-weight:700}
.btn.big{font-size:1.1rem;padding:14px 18px}
.sh-wo{display:flex;flex-direction:column;gap:4px;text-align:left;width:100%;border:1px solid var(--line);border-left:5px solid var(--c);background:var(--surface);color:var(--ink);border-radius:10px;padding:10px 12px;cursor:pointer;font:inherit}
.sh-desc{white-space:pre-wrap}
.sh-note{display:flex;flex-direction:column;gap:2px;border-left:3px solid var(--line);padding:4px 10px;margin:4px 0}
.sh-partrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;align-items:center}
.sh-assign{display:flex;flex-wrap:wrap;gap:6px;align-items:center;max-height:220px;overflow:auto}
.sh-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:520px){.sh-two{grid-template-columns:1fr}}
.sh-line{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.sh-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.sh-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:12px;cursor:pointer;font:inherit;text-align:left}
.sh-tile b{font-size:1.7rem;line-height:1.1}
.sh-tile.warn{border-color:#e0662a;background:#fff4ec}
.sh-defect{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-left:5px solid var(--c);border-radius:12px;padding:10px 12px;background:var(--surface)}
.sh-defect p{margin:0}
.sh-mack{display:flex;flex-direction:column;gap:2px;background:var(--sunk);border-radius:8px;padding:8px 10px}
.sh-sched{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface)}
.sh-sched.due{border-left:5px solid #d63c2f}
.sh-sched.soon{border-left:5px solid #d9a02b}
.sh-log{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow:auto;font-size:.9rem}
.sh-log div{display:grid;grid-template-columns:120px 1fr;gap:8px;border-bottom:1px solid var(--line);padding-bottom:3px}
.sh-po{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.sh-parts tr.low td{background:#fff4ec}
.sh-adj{white-space:nowrap}
.st-btable tr.flag td{background:#fff8e6}
.sh-modal{max-width:720px}
/* Hazel on screen (the Help Desk buddy) */
.hz-buddy{position:fixed;left:14px;bottom:18px;z-index:45;display:flex;flex-direction:column;align-items:flex-start;gap:6px;pointer-events:none}
.hz-me{pointer-events:auto;width:56px;height:56px;border-radius:50%;border:3px solid #2f8a6a;background:#d9eee5;padding:3px;cursor:pointer;box-shadow:0 4px 12px rgb(0 0 0 / .25);display:grid;place-items:center;transition:transform .2s}
.hz-me:hover,.hz-me:focus-visible{transform:scale(1.08)}
.hz-buddy.talk .hz-me{animation:hz-bob 1.2s ease-in-out 3}
@keyframes hz-bob{50%{transform:translateY(-5px)}}
.hz-face{image-rendering:pixelated;border-radius:50%}
.hz-bubble{pointer-events:auto;position:relative;max-width:230px;background:#fff;color:#1d1f24;border:2px solid #1d1f24;border-radius:16px;padding:9px 30px 9px 12px;font:600 14px/1.3 system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 12px rgb(0 0 0 / .18)}
.hz-bubble::after{content:"";position:absolute;left:22px;bottom:-10px;border:8px solid transparent;border-top-color:#1d1f24;border-bottom:0}
.hz-x{position:absolute;top:4px;right:6px;border:0;background:transparent;font-size:16px;cursor:pointer;color:#6b6f78}
@media (max-width:900px){.hz-buddy{bottom:88px}}
body.hz-talking .gd3-bubble{visibility:hidden}
@media (prefers-reduced-motion:reduce){.hz-buddy.talk .hz-me{animation:none}}
.hz-sheet .hd-body{display:flex;flex-direction:column;gap:10px}
.hz-opt{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;padding:12px 14px;cursor:pointer;font:inherit}
.hz-opt:hover,.hz-opt:focus-visible{border-color:var(--accent)}
.hz-ico{font-size:28px}
.hz-t{display:flex;flex-direction:column;gap:2px}
.hz-t small{color:var(--muted)}
.hz-hide{align-self:center;font-size:.85rem}
.hz-tip{font-size:.85rem;margin:0}
.hz-sheet textarea{width:100%}
/* Shop Desk: big-fleet extras */
.sh-filters{gap:8px}.sh-filters input[type=search]{flex:1 1 200px;min-width:0}.sh-filters select{flex:0 1 200px;width:auto;min-width:0}.sh-filters{flex-wrap:wrap}
.sh-line.late{background:#fff1ec;border-radius:8px;padding:6px 8px}
.sh-dup{display:flex;flex-direction:column;gap:2px;background:#f3ecfb;color:#4a2a6a;border-radius:8px;padding:8px 10px}
.sh-legend{gap:6px}
.sh-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sh-bcell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;font:inherit;cursor:pointer;border:0;border-left:6px solid var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface));color:var(--ink);border-radius:10px;padding:10px;min-height:86px}
.sh-bcell b{font-size:1rem}.sh-bcell small{color:var(--muted)}.sh-bstate{font-weight:700;font-size:.85rem;color:color-mix(in srgb,var(--c) 70%,var(--ink))}.sh-bpaper{font-size:.75rem}
.sh-boardp:fullscreen{background:var(--bg);overflow:auto;padding:24px}.sh-boardp:fullscreen .sh-board{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.sh-feat{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}.sh-feat input{margin-top:4px;width:20px;height:20px;flex:none}.sh-feat span{display:flex;flex-direction:column;gap:2px}
.sh-unitimg{width:100%;max-height:180px;object-fit:cover;border-radius:12px}
.sh-unitacts .btn{width:100%}
.sh-docunit{font-weight:700;min-width:110px}
.sh-labelpick{max-height:240px;overflow:auto;flex:none}
.sh-print{display:none}
@media print{
  body.sh-printing>*:not(.sh-print){display:none!important}
  body.sh-printing .sh-print{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0}
  .sh-label{display:flex;gap:10px;align-items:center;border:1px dashed #999;border-radius:8px;padding:8px;break-inside:avoid;color:#000;font-family:Arial,sans-serif}
  .sh-label b{display:block;font-size:16px}.sh-label small{display:block;font-size:11px;color:#333}
}

/* Tank's health: chubby, sick, bloated, lonely */
.gd3-roam.gd3-h-chubby canvas,.gd3-roam.gd3-h-chubby .gd3-flat{scale:1.14 1;transform-origin:50% 100%}
.gd3-roam.gd3-h-sick canvas,.gd3-roam.gd3-h-sick .gd3-flat{scale:1.24 .96;transform-origin:50% 100%;filter:saturate(.55) hue-rotate(35deg) brightness(.95)}
.gd3-roam.gd3-h-bloated canvas,.gd3-roam.gd3-h-bloated .gd3-flat{scale:1.18 1.04;transform-origin:50% 100%;filter:hue-rotate(40deg) saturate(.8);animation:gd3-bloat 2.4s ease-in-out infinite}
.gd3-roam.gd3-h-lonely canvas,.gd3-roam.gd3-h-lonely .gd3-flat{filter:saturate(.6) brightness(.92)}
@keyframes gd3-bloat{50%{scale:1.22 1.06}}
@media (prefers-reduced-motion:reduce){.gd3-roam.gd3-h-bloated canvas,.gd3-roam.gd3-h-bloated .gd3-flat{animation:none}}
.gd3-health{background:#fff4ec;border-radius:8px;padding:6px 8px;font-size:.85rem}
.tk-health{display:flex;flex-direction:column;gap:2px;border-radius:12px;padding:10px 12px;background:#eaf7ee;margin:8px 0}
.tk-health.tk-h-chubby,.tk-health.tk-h-lonely{background:#fff6e0}.tk-health.tk-h-sick,.tk-health.tk-h-bloated{background:#fde8e4}

/* Hazel's report: Sully, recognition, conversations, wellbeing */
.st-rcard{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;background:var(--surface)}
.st-rcard.good{border-color:#4cc16a;background:#effaf2}.st-rcard.talk{border-color:#e0a02a;background:#fff8ea}.st-rcard.well{border-color:#d98bb0;background:#fdf1f6}.st-rcard.sully{border-color:#5aa9e6;background:#eef6fd}
.st-rline{display:flex;flex-wrap:wrap;gap:6px}.st-rline .linkish{font-weight:700}
button.st-moodchip{border:0;font:inherit;cursor:pointer}

/* Ash, the arborist, on screen (bottom right) */
.ash-buddy{left:auto;right:14px;align-items:flex-end}
.ash-buddy .hz-bubble::after{left:auto;right:22px}
.ash-me{border-color:#3f7a3a;background:#e3f1da}
.ash-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.ash-name{font-size:1.35rem}
.ash-prob,.ash-fact,.ash-cust,.ash-corr{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:var(--sunk)}
.ash-corr{background:#f3ecfb}.ash-cust{background:#eef7ea}
.ash-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.ash-pre{white-space:pre-wrap;margin:6px 0}.ash-src{font-size:.85rem;overflow-wrap:anywhere}
.ash-row{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:6px;cursor:pointer;font:inherit}
.ash-row img{width:52px;height:52px;object-fit:cover;border-radius:8px;flex:none}.ash-row span{display:flex;flex-direction:column;flex:1;min-width:0}.ash-dot{width:10px;height:10px;border-radius:50%;flex:none}
.ash-note{border-bottom:1px solid var(--line);padding:6px 0}
.ash-sheet input,.ash-sheet textarea{width:100%}

/* inspection form builder */
.sh-formitem{display:grid;grid-template-columns:24px 1fr auto;gap:6px 8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px}
.sh-formitem>.sh-row{grid-column:2/4}.sh-formitem input[type=number]{width:90px}.sh-fnum{color:var(--muted)}
@media (max-width:600px){.sh-formitem{grid-template-columns:20px 1fr}.sh-formitem>.sh-row,.sh-formitem>span:last-child{grid-column:2/3}}
/* Shop Desk: show every section (wrap onto a second row instead of hiding off the edge) */
.shop-desk .subtabs{flex-wrap:wrap;overflow:visible;position:static}
@media (max-width:600px){.shop-desk .subtabs button{padding:6px 10px;font-size:13px}}
.sh-tagsug{gap:4px}.sh-tag{border:1px dashed var(--line);background:transparent;color:var(--muted);border-radius:99px;padding:3px 9px;font:inherit;font-size:12px;cursor:pointer}.sh-tag:hover{color:var(--ink);border-color:var(--accent)}

/* Storm Damage: tree equipment on the yard, falling trees, KAPOW */
.bg-sbox{position:relative;width:min(90vw,320px);aspect-ratio:1}
.bg-sbox .bg-sgrid{position:absolute;inset:0;width:100%}
.bg-sart{pointer-events:none;background:none!important;z-index:2}
.bg-sbox .bg-sgrid:not(.bg-sart){z-index:1}
.bg-rig{display:block;min-width:0;min-height:0;padding:2px;filter:drop-shadow(0 2px 2px rgb(0 0 0 / .35))}
.bg-rig svg{width:100%;height:100%;display:block}
.bg-rig.out{filter:grayscale(.85) brightness(.7);opacity:.85}.bg-rig.ghost{opacity:.5}
.bg-scell .bg-hitmark,.bg-scell .bg-missmark{position:relative;z-index:3}
.bg-scell.hit{background:#c0392b}.bg-sgrid[data-yard="mine"] .bg-scell{background:#5a9a46}
.bg-sgrid[data-yard="mine"] .bg-scell.hit{background:#c0392b}.bg-sgrid[data-yard="mine"] .bg-scell.miss{background:#3c6b30}
.bg-sbox .bg-scell{position:relative}
.bg-sart ~ .bg-sgrid .bg-scell.hit,.bg-sart ~ .bg-sgrid .bg-scell.miss{opacity:.92}
.bg-fall{position:fixed;z-index:200;pointer-events:none;transform:translate(-50%,-50%);animation:bg-fall .65s cubic-bezier(.55,0,1,.45) both;line-height:1}
@keyframes bg-fall{0%{transform:translate(-50%,-260%) rotate(-70deg);opacity:.2}70%{opacity:1}100%{transform:translate(-50%,-50%) rotate(8deg);opacity:1}}
.bg-kapow{position:fixed;z-index:201;pointer-events:none;transform:translate(-50%,-50%) scale(.2);animation:bg-kapow 1.1s ease-out both}
.bg-kapow svg{width:100%;display:block}
@keyframes bg-kapow{0%{transform:translate(-50%,-50%) scale(.2) rotate(-12deg)}25%{transform:translate(-50%,-50%) scale(1.15) rotate(4deg)}45%{transform:translate(-50%,-50%) scale(1) rotate(0)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.05)}}
.bg-thud{position:fixed;z-index:201;pointer-events:none;transform:translate(-50%,-50%);animation:bg-thud .7s ease-out both}
@keyframes bg-thud{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,-90%) scale(1.4)}}
@media (prefers-reduced-motion:reduce){.bg-fall,.bg-kapow,.bg-thud{animation-duration:.01s}.bg-kapow{animation:none;transform:translate(-50%,-50%)}}
.bg-smarks{z-index:3}.bg-mark{display:grid;place-items:center;font-size:min(4vw,16px);text-shadow:0 1px 2px rgb(0 0 0 / .5)}
.br-pvp{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0;padding:10px;border:1px dashed var(--line);border-radius:12px}.br-pvp .label{flex-basis:100%}.br-pvp select{flex:1 1 140px;min-width:0}
.br-mine{display:flex;flex-direction:column;gap:6px;margin:6px 0}.br-turn{color:var(--accent);font-weight:700}.br-done{display:block}.br-ailabel{display:block;margin-top:10px}

/* Storm Damage in 3D: the yard tilts away like a table, rigs and markers stand up on it */
.bg-sbox{perspective:900px;perspective-origin:50% 0}
.bg-stilt{position:absolute;inset:0;transform:rotateX(26deg);transform-origin:50% 100%;transform-style:preserve-3d}
.bg-stilt .bg-sgrid{transform-style:preserve-3d;box-shadow:0 18px 26px rgb(0 0 0 / .45),inset 0 0 0 2px rgb(255 255 255 / .06)}
.bg-stilt .bg-sgrid:first-child{background:linear-gradient(#24402c,#1b3022);box-shadow:0 22px 30px rgb(0 0 0 / .5),0 6px 0 #142519}
.bg-stilt .bg-sart,.bg-stilt .bg-smarks{box-shadow:none}
.bg-stilt .bg-scell{background:linear-gradient(160deg,#6fb052,#4b8a38 60%,#3f7a2f);box-shadow:inset 0 2px 0 rgb(255 255 255 / .22),inset 0 -3px 0 rgb(0 0 0 / .22),0 2px 0 #2b4a2a;transition:transform .12s,filter .12s}
.bg-stilt .bg-scell.can:hover{transform:translateZ(6px);filter:brightness(1.15)}
.bg-stilt .bg-scell.miss{background:radial-gradient(circle at 50% 55%,#5b4a2e 0 30%,#3c6b30 32%)}
.bg-stilt .bg-scell.hit{background:radial-gradient(circle at 50% 55%,#2b1a10 0 28%,#7a2a1a 30%,#c0392b 60%)}
.bg-stilt .bg-scell.sunk{background:radial-gradient(circle,#3a2418,#5a2a1a)}
.bg-stilt .bg-sgrid[data-yard="mine"] .bg-scell:not(.hit):not(.miss){background:linear-gradient(160deg,#78b85a,#55963f 60%,#478434)}
.bg-rig.up{transform:rotateX(-26deg);transform-origin:50% 100%;z-index:2}
.bg-rig.flat{transform:translateZ(2px)}
.bg-rig{filter:drop-shadow(0 4px 3px rgb(0 0 0 / .45))}
.bg-smarks{transform:translateZ(3px)}.bg-mark{transform:rotateX(-26deg);transform-origin:50% 90%;font-size:min(5vw,20px)}
.bg-two{gap:28px}.bg-storm>b{margin-bottom:6px}
.bg-fall{filter:drop-shadow(0 10px 6px rgb(0 0 0 / .45))}
.bg-fallshadow{position:fixed;z-index:199;pointer-events:none;height:10px;border-radius:50%;background:rgb(0 0 0 / .45);transform:translate(-50%,-50%) scale(.2);animation:bg-fsh .65s ease-in both}
@keyframes bg-fsh{to{transform:translate(-50%,-50%) scale(1);opacity:.9}}
.bg-shake{animation:bg-shake .35s ease-out}
@keyframes bg-shake{20%{transform:translate(-4px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-3px,1px)}80%{transform:translate(2px,0)}}
@media (prefers-reduced-motion:reduce){.bg-fallshadow{animation:none}.bg-stilt .bg-scell{transition:none}}
.ash-school{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:12px;background:#eef7ea;margin-bottom:8px}.ash-bar{height:8px;border-radius:99px;background:#d6e8cf;overflow:hidden}.ash-bar i{display:block;height:100%;background:#3f7a3a}
.bc-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.bc-person{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:10px;font:inherit;font-weight:600;text-align:left;cursor:pointer}.bc-person:hover{border-color:var(--accent)}

/* Hazel and Ash can be dragged anywhere (like Tank) */
.hz-buddy.moved{right:auto}
.hz-buddy.moved.on-right{align-items:flex-end}.hz-buddy.moved:not(.on-right){align-items:flex-start}
.hz-buddy.moved.on-right .hz-bubble::after{left:auto;right:22px}.hz-buddy.moved:not(.on-right) .hz-bubble::after{right:auto;left:22px}
.hz-buddy.below{flex-direction:column-reverse}.hz-buddy.below .hz-bubble::after{bottom:auto;top:-10px;border-top-color:transparent;border-bottom:8px solid #1d1f24}
.hz-buddy.dragging .hz-me{transform:scale(1.12);box-shadow:0 10px 24px rgb(0 0 0 / .35);cursor:grabbing}
.hz-me{cursor:grab}

/* ---------- Ash's plant app (full screen, plant-ID-app style) ---------- */
.aa-app{--aa-g:#1f9d61;--aa-g2:#0f7a49;--aa-bg:#f2f5f1;--aa-card:#fff;--aa-ink:#17221b;--aa-mute:#66736b;--aa-line:#e1e8e2;position:fixed;inset:0;z-index:1200;background:var(--aa-bg);color:var(--aa-ink);display:flex;flex-direction:column;font:inherit;animation:aaIn .22s ease-out}
@media (prefers-color-scheme:dark){.aa-app{--aa-bg:#101512;--aa-card:#1a221d;--aa-ink:#e7efe9;--aa-mute:#93a198;--aa-line:#2a352e}}
@keyframes aaIn{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
body.aa-open{overflow:hidden}
.aa-view{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;max-width:640px;width:100%;margin:0 auto;position:relative;padding-bottom:env(safe-area-inset-bottom)}
.aa-app button{font:inherit;cursor:pointer}
.aa-icon{width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.06);color:inherit;font-size:1.6rem;line-height:1;display:grid;place-items:center;flex:none}
.aa-glass{background:rgba(0,0,0,.38);color:#fff;backdrop-filter:blur(6px)}
.aa-sp{width:38px;flex:none}
.aa-top{background:linear-gradient(160deg,#28b46f 0%,#14834f 70%,#0f6b41 100%);color:#fff;padding:calc(14px + env(safe-area-inset-top)) 16px 26px;border-radius:0 0 28px 28px}
.aa-hi{display:flex;align-items:center;gap:12px}.aa-hi>div{flex:1;display:flex;flex-direction:column;gap:2px}.aa-hi b{font-size:1.2rem}.aa-hi small{opacity:.88}
.aa-hi .hz-face{border-radius:50%;border:2px solid rgba(255,255,255,.7);image-rendering:pixelated}
.aa-x{background:rgba(255,255,255,.18);color:#fff}
.aa-hero{margin-top:18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:24px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:14px}
.aa-seg{display:flex;background:rgba(0,0,0,.18);border-radius:99px;padding:4px;gap:4px}
.aa-segb{border:0;background:none;color:inherit;padding:7px 16px;border-radius:99px;font-weight:600;opacity:.85}
.aa-segb.on{background:#fff;color:#14834f;opacity:1;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.aa-cam{width:104px;height:104px;border-radius:50%;border:6px solid rgba(255,255,255,.35);background:#fff;color:#14834f;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:transform .15s}
.aa-cam:active{transform:scale(.94)}.aa-cam svg{width:46px;height:46px}
.aa-camlab{text-align:center;display:flex;flex-direction:column;gap:2px}.aa-camlab small{opacity:.88}
.aa-body{padding:16px;display:flex;flex-direction:column;gap:12px}
.aa-study{display:flex;gap:10px;align-items:center;background:var(--aa-card);border:1px solid var(--aa-line);border-radius:16px;padding:10px 14px;font-size:.92rem}
.aa-study span:first-child{font-size:1.3rem}
.aa-sec{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:1.05rem;margin-top:6px}
.aa-link{border:0;background:none;color:var(--aa-g);font-weight:600;padding:4px 0}
.aa-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory;margin:0 -16px;padding-left:16px;padding-right:16px}
.aa-strip .aa-card{width:132px;flex:none;scroll-snap-align:start}
.aa-card{border:0;background:var(--aa-card);color:inherit;border-radius:18px;padding:0 0 10px;text-align:left;display:flex;flex-direction:column;gap:2px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.aa-card>b,.aa-card>small{padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-card>small{color:var(--aa-mute);font-size:.78rem}
.aa-ph{position:relative;aspect-ratio:1;background:linear-gradient(135deg,#cfe6d5,#9fd0ae);margin-bottom:6px}.aa-ph img{width:100%;height:100%;object-fit:cover;display:block}
.aa-pill{position:absolute;left:8px;bottom:8px;background:var(--c);color:#fff;font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:99px}
.aa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.aa-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.aa-tile{border:0;background:var(--aa-card);color:inherit;border-radius:18px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:2px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.aa-tile small{color:var(--aa-mute)}.aa-ti{font-size:1.5rem;width:42px;height:42px;border-radius:12px;background:#e3f4e8;display:grid;place-items:center;margin-bottom:6px}
@media (prefers-color-scheme:dark){.aa-ti{background:#20372a}}
.aa-empty{color:var(--aa-mute);text-align:center;padding:12px}
.aa-warn{background:#fff4e0;color:#7a4b00;border-radius:14px;padding:10px 12px;margin:0}
@media (prefers-color-scheme:dark){.aa-warn{background:#3a2c10;color:#f3cf8a}}
.aa-foot{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--aa-mute);padding:10px 0 20px}
.aa-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:var(--aa-bg);border-bottom:1px solid var(--aa-line)}.aa-bar b{flex:1;text-align:center;font-size:1.05rem}
.aa-hint{color:var(--aa-mute);margin:0}
.aa-box{background:var(--aa-card);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 6px rgba(0,0,0,.05)}
.aa-box input,.aa-box textarea,.aa-box select,.aa-form input,.aa-form textarea{width:100%}
.aa-boxt{color:var(--aa-mute);font-weight:600;text-transform:none}
.aa-li{padding:4px 0;border-bottom:1px solid var(--aa-line)}.aa-li:last-child{border:0}
.aa-chip{align-self:flex-start;border:1px solid var(--aa-line);background:none;color:inherit;border-radius:99px;padding:6px 14px;font-weight:600}
.aa-chip.on{background:var(--aa-g);border-color:var(--aa-g);color:#fff}
.aa-go{border:0;background:var(--aa-g);color:#fff;border-radius:99px;padding:14px 18px;font-weight:700;font-size:1.02rem;width:100%}
.aa-go:disabled{opacity:.5}.aa-go.aa-ghost{background:none;color:var(--aa-g);border:2px solid var(--aa-g)}
.aa-field{display:flex;flex-direction:column;gap:4px;font-weight:600}
.aa-search{width:100%;border-radius:99px!important;padding:10px 16px!important}
.aa-toggle{display:flex;gap:10px;align-items:center;font-weight:600}
.aa-seg2{background:var(--aa-card);align-self:flex-start;flex-wrap:wrap;border-radius:18px}.aa-seg2 .aa-segb{color:var(--aa-ink);padding:6px 12px}.aa-seg2 .aa-segb.on{background:var(--aa-g);color:#fff}
.aa-note{background:var(--aa-card);border-radius:14px;padding:10px 12px;margin-bottom:8px}.aa-note summary{cursor:pointer;font-weight:600}
.aa-report{background:var(--aa-card);border-radius:16px;padding:12px 14px;margin-bottom:10px}.aa-report summary{cursor:pointer;font-weight:700}
.aa-schoolhead{display:flex;gap:14px;align-items:center;background:var(--aa-card);border-radius:18px;padding:14px}.aa-schoolhead>div:last-child{display:flex;flex-direction:column;gap:2px}.aa-schoolhead small{color:var(--aa-mute)}
.aa-schoolhead .aa-ring{width:64px;height:64px}
/* capture */
.aa-capture{position:fixed;inset:0;background:#000;color:#fff;display:flex;flex-direction:column}
.aa-vf{position:relative;flex:1;overflow:hidden;background:radial-gradient(circle at 50% 40%,#25402f,#0b120d)}
.aa-vf video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s}.aa-vf.live video{opacity:1}
.aa-vf.flash::after{content:"";position:absolute;inset:0;background:#fff;opacity:.7}
.aa-ctop{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:linear-gradient(rgba(0,0,0,.5),transparent)}.aa-ctop b{flex:1;text-align:center}.aa-ctop .aa-icon{background:rgba(255,255,255,.16);color:#fff}
.aa-guide{position:absolute;left:50%;top:46%;width:min(68vw,300px);aspect-ratio:1;transform:translate(-50%,-50%)}
.aa-guide i{position:absolute;width:34px;height:34px;border:4px solid #fff;border-radius:6px}
.aa-guide i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.aa-guide i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}.aa-guide i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.aa-guide i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.aa-tip{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);background:rgba(0,0,0,.55);padding:7px 14px;border-radius:99px;font-size:.88rem;white-space:nowrap;max-width:92%;overflow:hidden;text-overflow:ellipsis}
.aa-vf.nocam .aa-tip::before{content:"Tap the shutter to open your camera · "}
.aa-ctl{display:flex;justify-content:space-around;align-items:center;padding:14px 20px 8px;background:#000}
.aa-round{width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.15);color:#fff;font-size:1.3rem}
.aa-shutter{width:76px;height:76px;border-radius:50%;border:5px solid #fff;background:var(--aa-g);box-shadow:inset 0 0 0 4px #000;transition:transform .1s}.aa-shutter:active{transform:scale(.9)}
.aa-cpanel{background:#000;padding:6px 16px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}
.aa-cpanel textarea{width:100%;background:#1b1f1c;color:#fff;border:1px solid #333;border-radius:14px;padding:8px 12px}
.aa-cstrip{display:flex;gap:8px;justify-content:center}
.aa-th{position:relative;width:54px;height:54px;border-radius:12px;overflow:hidden;background:#1b1f1c}.aa-th img{width:100%;height:100%;object-fit:cover}
.aa-th0{display:grid;place-items:center;color:#666;border:2px dashed #444;font-weight:700}
.aa-thload{background:linear-gradient(90deg,#1b1f1c,#2c3a31,#1b1f1c);background-size:200%;animation:aaShim 1s linear infinite}
@keyframes aaShim{to{background-position:-200% 0}}
.aa-thx{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;font-size:.85rem;line-height:1;padding:0}
/* scanning */
.aa-scan{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px 20px;text-align:center}
.aa-scan small{color:var(--aa-mute);min-height:1.3em}
.aa-scanpic{position:relative;width:min(72vw,300px);aspect-ratio:1;border-radius:28px;overflow:hidden;box-shadow:0 10px 40px rgba(31,157,97,.35);margin-bottom:12px}.aa-scanpic img{width:100%;height:100%;object-fit:cover}
.aa-line{position:absolute;left:0;right:0;height:60px;background:linear-gradient(transparent,rgba(64,230,150,.55),transparent);border-bottom:3px solid #4dfaa6;animation:aaScan 1.8s ease-in-out infinite alternate}
@keyframes aaScan{from{top:-60px}to{top:100%}}
@media (prefers-reduced-motion:reduce){.aa-line{animation:none;top:40%}.aa-app{animation:none}}
/* result */
.aa-rhero{position:relative;height:min(52vh,380px);background:linear-gradient(135deg,#2a7a4b,#14532f);overflow:hidden}
.aa-rhero>img{width:100%;height:100%;object-fit:cover;display:block}
.aa-rnav{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 12px}
.aa-rcap{position:absolute;left:0;right:0;bottom:0;padding:60px 18px 34px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff}
.aa-rcap h2{margin:0;font-size:1.7rem;line-height:1.15}.aa-rcap i{opacity:.88}
.aa-rthumbs{position:absolute;right:12px;bottom:36px;display:flex;flex-direction:column;gap:6px}
.aa-rth{width:42px;height:42px;padding:0;border-radius:10px;overflow:hidden;border:2px solid rgba(255,255,255,.5);background:none}.aa-rth.on{border-color:#fff}.aa-rth img{width:100%;height:100%;object-fit:cover}
.aa-rsheet{position:relative;margin-top:-20px;background:var(--aa-bg);border-radius:22px 22px 0 0;padding:16px 16px 100px;display:flex;flex-direction:column;gap:12px}
.aa-rhead{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.aa-tags{display:flex;flex-wrap:wrap;gap:6px}.aa-tag{--c:var(--aa-g);border:1px solid var(--c);color:var(--c);border-radius:99px;padding:3px 10px;font-size:.8rem;font-weight:600;text-transform:capitalize}
.aa-ring{position:relative;width:56px;height:56px;flex:none;color:var(--aa-ink)}.aa-ring svg{width:100%;height:100%}.aa-ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:.85rem}
.aa-health{--c:#2fae66;border-left:5px solid var(--c);background:color-mix(in srgb,var(--c) 12%,var(--aa-card));border-radius:14px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}
.aa-tabs{display:flex;gap:4px;background:var(--aa-card);border-radius:99px;padding:4px;position:sticky;top:0;z-index:1}
.aa-tab{flex:1;border:0;background:none;color:var(--aa-mute);border-radius:99px;padding:8px 4px;font-weight:600}.aa-tab.on{background:var(--aa-g);color:#fff}
.aa-pane{display:flex;flex-direction:column;gap:10px}
.aa-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.aa-corr{background:color-mix(in srgb,#6b4fa0 12%,var(--aa-card))}.aa-cust{background:color-mix(in srgb,var(--aa-g) 10%,var(--aa-card))}.aa-alert{background:color-mix(in srgb,#e0a325 16%,var(--aa-card))}
.aa-meta{color:var(--aa-mute);text-align:center}
.aa-acts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom));width:min(620px,calc(100% - 24px));display:flex;justify-content:space-around;background:var(--aa-card);border-radius:22px;padding:6px;box-shadow:0 8px 30px rgba(0,0,0,.18);z-index:3}
.aa-act{flex:1;border:0;background:none;color:inherit;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;border-radius:16px}.aa-act span{font-size:1.25rem}.aa-act small{font-size:.74rem;font-weight:600;color:var(--aa-mute)}
.aa-act.on,.aa-act.hot{background:color-mix(in srgb,var(--aa-g) 16%,transparent)}.aa-act.hot small{color:var(--aa-g)}.aa-act:disabled{opacity:.6}
body.aa-open .toast{z-index:1300;bottom:calc(96px + env(safe-area-inset-bottom,0px))}
.aa-box .aa-toggle input{width:22px;height:22px;flex:none;accent-color:var(--aa-g)}.aa-tag{text-transform:none}

/* ---------- Wallets (licenses, IDs, insurance cards) ---------- */
.wl-stack{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.wl-card{--c1:#2d6cdf;--c2:#1b4aa6;position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-height:150px;aspect-ratio:1.586;max-height:190px;padding:14px 16px;border:0;border-radius:16px;color:#fff;text-align:left;font:inherit;cursor:pointer;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 6px 18px rgba(0,0,0,.18);overflow:hidden}
.wl-card::after{content:"";position:absolute;right:-40px;top:-50px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
.wl-sheet .wl-card{cursor:default;max-width:360px;width:100%}
.wl-ctop{display:flex;align-items:center;gap:8px}.wl-ctop b{flex:1;font-size:1rem;letter-spacing:.02em}.wl-ico{font-size:1.3rem}
.wl-thumb{width:54px;height:36px;object-fit:cover;border-radius:6px;border:2px solid rgba(255,255,255,.5);flex:none}
.wl-cmid{display:flex;flex-direction:column;gap:2px;min-width:0}.wl-cmid span{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-cmid small{opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wl-cbot{display:flex;align-items:center;justify-content:space-between;gap:8px}.wl-cbot small{opacity:.9}
.wl-chip{--s:#2f9e57;display:inline-block;background:var(--s);color:#fff;font-size:.75rem;font-weight:700;padding:3px 9px;border-radius:99px;white-space:nowrap}
.wl-card .wl-chip{background:rgba(255,255,255,.95);color:var(--s)}
.wl-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px;cursor:pointer;font:inherit}
.wl-row small{grid-column:1}.wl-row .wl-chip{grid-column:2;grid-row:1/3}
.wl-warn{border-left:4px solid #c0392b}
.wl-body{display:flex;flex-direction:column;gap:10px}
.wl-strip{display:flex;gap:8px;flex-wrap:wrap}.wl-ph{position:relative;width:96px;height:64px;border-radius:10px;overflow:hidden;background:var(--sunk);display:grid;place-items:center}.wl-ph img{width:100%;height:100%;object-fit:cover}
.wl-x{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;padding:0;line-height:1;cursor:pointer}
.wl-pdf{font-weight:700;color:var(--muted)}.wl-pdf.big{display:inline-block;padding:10px}
.wl-sully{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:#fff6dc;color:#5b4300;border-left:4px solid #e1b12c}
.wl-sully.busy b::after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:wlSpin .8s linear infinite;vertical-align:-1px}
.wl-sully.warn{background:#fdeceb;color:#7a231b;border-left-color:#c0392b}
@media (prefers-color-scheme:dark){.wl-sully{background:#3a3010;color:#f3dc95}.wl-sully.warn{background:#3d1a17;color:#f2b3ab}}
@keyframes wlSpin{to{transform:rotate(360deg)}}
.wl-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}.wl-grid .wide{grid-column:1/-1}.wl-f input,.wl-f select{width:100%}
.wl-filled input,.wl-filled select{box-shadow:0 0 0 2px #e1b12c inset;background:color-mix(in srgb,#e1b12c 10%,transparent)}
.wl-photos{display:flex;gap:8px;flex-wrap:wrap}.wl-photos img{max-width:100%;max-height:260px;border-radius:12px;display:block}
.wl-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0}.wl-facts dt{color:var(--muted)}.wl-facts dd{margin:0}
@media (max-width:420px){.wl-grid{grid-template-columns:1fr}}
/* job titles & pecking order */
.tt-row{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:8px}
.tt-rank{width:60px!important;flex:none}.tt-main{flex:1;min-width:180px;display:flex;flex-direction:column;gap:4px}.tt-main input{width:100%}
.tt-so{display:flex;align-items:center;gap:4px;font-size:.85rem;white-space:nowrap}
.tt-ladder{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:3px}
.tt-pick{width:auto;max-width:170px}

/* ---------- Training (Coach) ---------- */
.tr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.tr-card{display:flex;flex-direction:column;text-align:left;border:0;padding:0;border-radius:16px;overflow:hidden;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.08);border:1px solid var(--line)}
.tr-card:hover{transform:translateY(-1px)}
.tr-art{--c1:#5a6b8a;--c2:#2f3a52;position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,var(--c1),var(--c2));display:grid;place-items:center;overflow:hidden}
.tr-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.tr-ico{font-size:2.6rem;filter:drop-shadow(0 3px 6px rgba(0,0,0,.3))}
.tr-play{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center;font-size:.9rem}
.tr-ct{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px}.tr-cat{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:700}
.tr-chip{--c:#8a8f98;align-self:flex-start;display:inline-block;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);font-size:.75rem;font-weight:700;padding:2px 9px;border-radius:99px}
.tr-bar{height:8px;border-radius:99px;background:var(--sunk);overflow:hidden}.tr-bar i{display:block;height:100%;background:#2f9e57;transition:width .3s}
.tr-row{display:grid;grid-template-columns:1fr auto;column-gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px;cursor:pointer;font:inherit}
.tr-row small{grid-column:1}.tr-go{grid-column:2;grid-row:1/3;font-weight:700;color:var(--accent,#a8441f)}
.tr-sign{border-left:4px solid #d98a1c}.tr-desk{border-left:4px solid #c0392b}
.tr-toggle{display:flex;align-items:center;gap:8px}.tr-toggle input{width:20px;height:20px;flex:none}
.tr-ideas{display:flex;flex-wrap:wrap;gap:6px}.tr-idea{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:4px 10px;font:inherit;font-size:.82rem;cursor:pointer}
.tr-kinds{display:flex;flex-wrap:wrap;gap:6px 14px}
.tr-body{display:flex;flex-direction:column;gap:10px}.tr-body input[type=text],.tr-body textarea,.tr-body select{width:100%}
.tr-video{width:100%;max-height:70vh;border-radius:12px;background:#000}
.tr-points{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.tr-safety{background:#fff6dc;color:#5b4300;border-left:4px solid #e1b12c;border-radius:10px;padding:10px 12px}.tr-safety ul{margin:6px 0 0;padding-left:20px}
@media (prefers-color-scheme:dark){.tr-safety{background:#3a3010;color:#f3dc95}}
.tr-practical ul{margin:6px 0 0;padding-left:20px}.tr-sources a{display:block;font-size:.88rem;overflow-wrap:anywhere;padding:2px 0}
.tr-ask input{flex:1;min-width:160px}
.tr-qa ul{list-style:none;padding-left:8px;margin:4px 0 8px}.tr-qa li.ok{color:#2f9e57;font-weight:600}
.tr-opts{display:flex;flex-direction:column;gap:8px}
.tr-opt{text-align:left;border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:12px 14px;font:inherit;cursor:pointer}.tr-opt.on{border-color:#2f9e57;background:color-mix(in srgb,#2f9e57 12%,var(--surface))}
.tr-score{font-size:3rem;font-weight:800;text-align:center}.tr-score.ok{color:#2f9e57}.tr-score.bad{color:#c0392b}
.tr-review{padding-left:20px;display:flex;flex-direction:column;gap:8px}.tr-review li{display:flex;flex-direction:column;gap:2px}.tr-review li.bad b{color:#c0392b}
.tr-check{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.tr-check input{width:20px;height:20px;flex:none;margin-top:2px}
.tr-table-wrap{overflow-x:auto}.tr-table{border-collapse:collapse;font-size:.85rem}.tr-table th,.tr-table td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}.tr-table th small{display:block}
/* crew bar: every section on one row (7 buttons) */
.crewbar{grid-template-columns:repeat(7,minmax(0,1fr))}
.crewbar button{font-size:.62rem;padding:6px 0;min-width:0}.crewbar button span:not(.count){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (min-width:700px){.crewbar{width:min(640px,100%)}.crewbar button{font-size:.72rem}}
/* AI staff learning */
.st-learn{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:8px;margin-top:4px}
.st-sheet-body{display:flex;flex-direction:column;gap:8px}.st-sheet-body input[type=url],.st-sheet-body textarea,.st-sheet-body input[type=time]{width:100%}
.st-files{display:flex;flex-wrap:wrap;gap:6px}.st-file{border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:.85rem}
.st-note{border-bottom:1px solid var(--line);padding:6px 0}.st-note summary{cursor:pointer;font-weight:600}.st-pre{white-space:pre-wrap;margin:6px 0}.st-src{display:block;font-size:.85rem;overflow-wrap:anywhere}
/* photo viewer (tap any photo) */
.zm-ov{position:fixed;inset:0;z-index:1500;background:rgba(8,10,8,.94);display:flex;flex-direction:column}
.zm-stage{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;touch-action:pinch-zoom pan-x pan-y;-webkit-overflow-scrolling:touch}
.zm-img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in;user-select:none}
.zm-big .zm-stage{align-items:flex-start;justify-content:flex-start}.zm-big .zm-img{max-width:none;max-height:none;cursor:zoom-out}
.zm-top{position:absolute;top:calc(10px + env(safe-area-inset-top));right:10px;display:flex;gap:8px}
.zm-btn,.zm-x{border:0;background:rgba(255,255,255,.16);color:#fff;border-radius:99px;padding:8px 14px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.zm-x{width:40px;height:40px;padding:0;font-size:1.1rem}
.zm-bot{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:10px 14px calc(12px + env(safe-area-inset-bottom));color:#fff}.zm-cap{opacity:.9}
body.zm-open{overflow:hidden}
img[data-zoom]{cursor:zoom-in}
.tg-photo .tg-zoom{position:absolute;left:6px;top:6px;width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center;font-size:.85rem}
/* writing help on every text box: grow, ✨ Rewrite, 🎤 talk to type, ⤢ bigger */
textarea{resize:vertical}
textarea.wk-tall{resize:vertical}
.wk-bar{position:fixed;z-index:2400;display:flex;gap:4px;padding:3px;border-radius:99px;background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 14px rgba(0,0,0,.15)}
.wk-b{border:0;background:none;color:var(--ink);font:600 .8rem var(--body,system-ui);padding:5px 10px;border-radius:99px;cursor:pointer;white-space:nowrap}
.wk-b:hover{background:var(--sunk)}.wk-rw{color:#7a4fd0}.wk-mic.on{background:#c0392b;color:#fff}
.wk-menu{position:fixed;z-index:2450;display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.22);max-height:70vh;overflow:auto}
.wk-x{position:absolute;right:8px;top:6px;border:0;background:none;color:var(--muted);font-size:1rem;cursor:pointer}
.wk-tones{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.wk-tone{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:8px;font:inherit;font-size:.86rem;text-align:left;cursor:pointer}.wk-tone:hover{border-color:#7a4fd0}
.wk-out{width:100%;font:inherit}.wk-row{display:flex;gap:6px;flex-wrap:wrap}.wk-note{color:var(--muted)}
.wk-spin{width:22px;height:22px;border:3px solid var(--line);border-top-color:#7a4fd0;border-radius:50%;animation:wlSpin .8s linear infinite}
.wk-undo{position:fixed;z-index:2450;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:10px;align-items:center;background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:99px;font-weight:600}
.wk-undo button{border:0;background:none;color:#ffd166;font:inherit;font-weight:800;cursor:pointer}
/* chat: seen by (little pictures under the last message each person read), editing */
.c-seenby{align-self:flex-start;display:flex;gap:2px;align-items:center;border:0;background:none;padding:2px 0 2px 38px;cursor:pointer;color:var(--muted);font-size:.7rem}
.c-seenby.mine{align-self:flex-end;padding:2px 2px 0}
.c-av.tiny{width:16px;height:16px;font-size:.5rem;border:1.5px solid var(--surface)}
.c-edit-box{width:100%;min-width:200px;border-radius:12px;border:1px solid var(--line);padding:8px 10px;font:inherit;background:var(--bg);color:var(--ink)}
.c-edit-row{display:flex;gap:6px;margin-top:6px;justify-content:flex-end}
.st-sheet-body input[type=text]{width:100%}
/* Reed's desk */
.cp-box{max-width:640px}.cp-body{display:flex;flex-direction:column;gap:10px}.cp-body textarea,.cp-body input[type=url],.cp-body select{width:100%}
.cp-tabs{display:flex;gap:4px;padding:0 14px;flex-wrap:wrap}.cp-tab{border:0;background:none;padding:8px 10px;border-bottom:2px solid transparent;font:inherit;font-weight:600;color:var(--muted);cursor:pointer}.cp-tab.on{color:var(--ink);border-bottom-color:#34495e}
.cp-verdict{--c:#2f9e57;display:flex;flex-direction:column;gap:2px;border-left:5px solid var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);border-radius:10px;padding:10px 12px}
.cp-issue{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:10px;padding:8px 10px}.cp-issue small{color:var(--muted)}
.cp-out{display:flex;flex-direction:column;gap:8px}.cp-src a{display:block;font-size:.85rem;overflow-wrap:anywhere}
.cp-rule{border-bottom:1px solid var(--line);padding:6px 0}.cp-rule summary{cursor:pointer;font-weight:600}.cp-rule ul,.cp-plan{margin:4px 0 8px;padding-left:20px}.cp-dont li::marker{content:"✗ ";color:#c0392b}
.cp-pill{--c:#2f9e57;color:var(--c);font-weight:700}
.c-video{display:block;max-width:min(280px,70vw);max-height:360px;border-radius:12px;background:#000;margin-bottom:4px}
.c-preview video{width:64px;height:64px;object-fit:cover;border-radius:8px;background:#000}
.c-up{position:relative;height:22px;border-radius:99px;background:var(--sunk);overflow:hidden;margin-bottom:6px}.c-up i{position:absolute;inset:0 auto 0 0;width:0;background:#2f9e57;opacity:.35;transition:width .2s}.c-up small{position:relative;padding:0 10px;line-height:22px}
/* sick days, emergencies and paperwork */
.bl-btns{gap:8px;flex-wrap:wrap}
.bl-docs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
.bl-doc{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:zoom-in}
.bl-doc.pdf{width:auto;height:auto;padding:6px 10px;font-size:.82rem;text-decoration:none;border-radius:99px;background:var(--sunk);color:var(--ink)}
.bl-need{display:inline-block;margin-top:2px;color:#b4581b;font-weight:700;font-size:.8rem}
.bl-warn{display:flex;flex-direction:column;gap:4px;border-left:4px solid #e0a325;background:color-mix(in srgb,#e0a325 12%,transparent);border-radius:10px;padding:10px 12px;margin:8px 0}
.bl-file{border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:8px 0}.bl-file summary{cursor:pointer;font-weight:600}.bl-file textarea,.bl-file select{width:100%}
.bl-filerow{margin-top:8px;font-weight:600;font-size:.9rem}
.bl-rule{background:var(--sunk);border-radius:10px;padding:8px 10px;font-size:.88rem;margin:0}
.bl-leave{display:flex;flex-direction:column;gap:6px;margin-top:10px}.bl-check{display:flex;align-items:center;gap:6px;font-weight:600}
/* Settings → Tutorials: full tutorial + tutorial videos (public/tutorial.js) */
.tv-panel{display:grid;gap:10px}
.tv-h{margin:10px 0 0;font:700 1.02rem var(--display)}
.tv-run{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--accent-soft);border-radius:14px;padding:12px 14px}
.tv-run>div{display:grid;gap:2px;flex:1;min-width:220px}
.tv-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.tv-card{display:flex;gap:12px;align-items:center;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px;cursor:pointer;color:var(--ink);font:inherit}
.tv-card:hover,.tv-card:focus-visible{border-color:var(--accent)}
.tv-thumb{position:relative;flex:none;width:76px;height:52px;border-radius:10px;background:linear-gradient(135deg,#3f6f35,#1f3b1b);display:grid;place-items:center;font-size:1.5rem}
.tv-play{position:absolute;right:-6px;bottom:-6px;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-style:normal;font-size:.75rem;display:grid;place-items:center;box-shadow:0 2px 6px rgb(0 0 0 / .3)}
.tv-txt{display:grid;gap:1px;min-width:0}.tv-len{color:var(--accent);font-weight:700}
.tv-ov{position:fixed;inset:0;z-index:90;background:rgb(10 8 5 / .78);display:grid;place-items:center;padding:12px}
.tv-box{position:relative;width:min(980px,100%);max-height:calc(100dvh - 24px);background:#16130f;color:#f6efe4;border-radius:18px;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto auto;box-shadow:0 20px 60px rgb(0 0 0 / .5)}
.tv-box:fullscreen{width:100vw;max-height:none;height:100vh;border-radius:0}
.tv-head{display:flex;gap:10px;align-items:baseline;padding:10px 14px}.tv-head .muted{color:#b9ad9c}
.tv-x{margin-left:auto;background:none;border:0;color:#f6efe4;font-size:1.2rem;cursor:pointer;padding:4px 8px}
.tv-stage{position:relative;aspect-ratio:16/9;max-height:calc(100dvh - 160px);width:100%;background:radial-gradient(120% 120% at 20% 10%,#4f7a3a,#1d3518 70%);overflow:hidden}
.tv-box:fullscreen .tv-stage{max-height:none;height:100%;aspect-ratio:auto}
.tv-scene{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:4%;padding:4% 5% 14%}
.tv-scene.in>*{animation:tvIn .6s ease both}.tv-scene.in>*:nth-child(2){animation-delay:.15s}.tv-scene.in>*:nth-child(3){animation-delay:.25s}
@keyframes tvIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.tv-icon{position:absolute;left:46%;top:8%;font-size:clamp(28px,6vw,64px);filter:drop-shadow(0 6px 10px rgb(0 0 0 / .35));animation:tvBob 2.4s ease-in-out infinite}
@keyframes tvBob{50%{transform:translateY(-6px)}}
.tv-txt2{display:grid;gap:8px;align-content:center;max-height:100%;overflow:auto}
.tv-txt2 h2{margin:0;font:800 clamp(1.1rem,3.2vw,2.2rem)/1.15 var(--display);color:#fff}
.tv-txt2 p{margin:0;font-size:clamp(.8rem,1.6vw,1.12rem);line-height:1.45;color:#efe6d6}
.tv-where{color:#ffd166;font-weight:700;letter-spacing:.02em;font-size:clamp(.7rem,1.3vw,.9rem)}
.tv-cap{position:absolute;left:50%;bottom:3.5%;transform:translateX(-50%);width:min(92%,820px);background:rgb(0 0 0 / .62);color:#fff;border-radius:10px;padding:6px 12px;text-align:center;font-size:clamp(.72rem,1.4vw,.98rem);line-height:1.35;display:none}
.tv-box:fullscreen .tv-cap,.tv-cap.show{display:block}
.tv-box:fullscreen .tv-txt2 p{display:none}
.tv-device{background:#f6efe4;border-radius:14px;box-shadow:0 14px 34px rgb(0 0 0 / .4);overflow:hidden;display:flex;border:5px solid #2a241c}
.tv-device.laptop{aspect-ratio:16/10;width:100%}
.tv-device.phone{aspect-ratio:9/17;height:min(100%,420px);max-height:100%;justify-self:center;flex-direction:column;border-radius:24px;border-width:7px}
.tv-side{flex:none;width:31%;background:#efe5d4;display:flex;flex-direction:column;gap:2px;padding:6px 4px;overflow:hidden;position:relative}
.tv-side span{display:flex;gap:4px;align-items:center;font-size:clamp(6px,.9vw,10px);color:#6b5a45;border-radius:6px;padding:2px 4px;white-space:nowrap}
.tv-side span i{font-style:normal}.tv-side span em{font-style:normal;overflow:hidden;text-overflow:ellipsis}
.tv-side span.on,.tv-nav span.on,.tv-top span.on{background:#b4532a;color:#fff;box-shadow:0 0 0 3px #ffd166;animation:tvPulse 1.4s ease-in-out infinite}
@keyframes tvPulse{50%{box-shadow:0 0 0 6px rgb(255 209 102 / .45)}}
.tv-main{flex:1;display:flex;flex-direction:column;gap:6px;padding:8px}
.tv-top{display:flex;justify-content:flex-end;gap:5px}.tv-top span{width:clamp(14px,2vw,22px);height:clamp(14px,2vw,22px);border-radius:50%;background:#e6dac6;display:grid;place-items:center;font-size:clamp(7px,1vw,11px)}
.tv-screen{flex:1;display:flex;flex-direction:column;gap:6px;padding:8px}
.tv-hdr{height:22%;border-radius:10px;background:linear-gradient(#e9b56b,#9a5a2a)}
.tv-line{height:8px;border-radius:4px;background:#d9ccb6}.tv-line.short{width:60%}
.tv-card-mock{flex:1;max-height:30%;border-radius:8px;background:#fff;border:1px solid #e3d6c1}
.tv-nav{display:flex;justify-content:space-around;background:#efe5d4;padding:5px 2px}
.tv-nav span{font-size:clamp(9px,1.4vw,14px);border-radius:8px;padding:2px 2px}
.tv-device.phone .tv-nav{padding:5px 1px;gap:1px;justify-content:space-between}
.tv-bar{display:flex;gap:3px;padding:8px 14px 2px}
.tv-seg{flex:1;height:6px;border:0;border-radius:3px;background:rgb(255 255 255 / .22);padding:0;cursor:pointer;overflow:hidden;min-width:0}
.tv-seg i{display:block;height:100%;width:0;background:#ffd166}.tv-seg.done i{width:100%}
.tv-ctl{display:flex;gap:6px;align-items:center;padding:6px 12px 12px;flex-wrap:wrap}
.tv-b{background:rgb(255 255 255 / .1);border:0;color:#fff;border-radius:10px;min-width:40px;height:40px;font-size:1.05rem;cursor:pointer}
.tv-b.big{min-width:52px;background:var(--accent)}.tv-b.small{font-size:.85rem;font-weight:700}
.tv-b:focus-visible,.tv-seg:focus-visible{outline:3px solid #ffd166;outline-offset:2px}
.tv-count{font-variant-numeric:tabular-nums;color:#c9bca8;font-size:.85rem;margin-left:4px}.tv-gap{flex:1}
.tv-chap{position:absolute;right:10px;bottom:62px;max-height:60%;overflow:auto;background:#241f19;border-radius:12px;padding:6px 6px 6px 30px;margin:0;width:min(330px,calc(100% - 20px));box-shadow:0 10px 30px rgb(0 0 0 / .5)}
.tv-chap button{background:none;border:0;color:#f6efe4;text-align:left;padding:6px 4px;cursor:pointer;font:inherit;width:100%}
.tv-chap li::marker{color:#a99a85}
@media (max-width:700px){
  .tv-scene{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding:4% 5% 6%;gap:3%}
  .tv-device.laptop{width:78%;justify-self:center}.tv-device.phone{height:100%;max-height:300px;grid-row:1}
  .tv-scene{grid-template-rows:minmax(0,1fr) auto}
  .tv-head{flex-wrap:wrap;gap:2px 10px}.tv-head .muted{flex-basis:100%;order:3}
  .tv-b{min-width:36px;height:36px;font-size:.95rem}.tv-b.big{min-width:46px}.tv-ctl{gap:4px;flex-wrap:nowrap}.tv-count{font-size:.75rem}
  .tv-icon{left:auto;right:6%;top:4%}
  .tv-stage{aspect-ratio:3/4;max-height:calc(100dvh - 170px)}
  .tv-txt2{align-content:start}
}
@media (prefers-reduced-motion:reduce){.tv-scene.in>*,.tv-icon,.tv-side span.on,.tv-nav span.on,.tv-top span.on{animation:none}}
/* ---- Whip Around move-out (public/shop-whip.js) ---- */
.wa-box h3{margin:0}
.wa-step{border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:grid;gap:6px}
.wa-step.done{border-color:#7cc08a;background:color-mix(in srgb,#7cc08a 8%,transparent)}
.wa-sh{display:flex;gap:8px;align-items:center}
.wa-num{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.8rem;flex:none}
.wa-step.done .wa-num{background:#3f9a52}
.wa-step p{margin:0}
.wa-key{flex:1;min-width:200px}
.wa-bar{height:10px;border-radius:5px;background:var(--sunk);overflow:hidden}.wa-bar i{display:block;height:100%;background:var(--accent);transition:width .6s ease}
.wa-table{width:100%;border-collapse:collapse;font-size:.92rem}.wa-table th,.wa-table td{text-align:left;padding:5px 6px;border-bottom:1px solid var(--line)}.wa-table th{font-size:.78rem;color:var(--muted)}
.wa-ok{white-space:normal}
.wa-err{margin:0;padding-left:18px;color:#b3402c}
/* Shop Desk: areas layout (Home, Repairs, Fleet, Inspections, Parts, Setup) */
.sh-dhead{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.sh-find{position:relative;flex:1;min-width:220px;max-width:420px}.sh-find input{width:100%}
.sh-hits{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgb(0 0 0 / .15);padding:4px;display:grid}
.sh-hit{background:none;border:0;text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer;font:inherit;color:var(--ink)}.sh-hit:hover,.sh-hit:focus-visible{background:var(--sunk)}
.sh-quick{gap:6px}
.sh-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;align-items:start}
.sh-areas{display:flex;flex-direction:column;gap:4px;position:sticky;top:8px}
.sh-area{display:flex;align-items:center;gap:10px;border:1px solid transparent;background:none;border-radius:12px;padding:10px 12px;font-family:inherit;font-weight:600;font-size:15px;line-height:1.1;color:var(--ink);cursor:pointer;text-align:left}
.sh-ashort{display:none}
.sh-area:hover{background:var(--sunk)}.sh-area.on{background:var(--accent);color:var(--accent-ink)}
.sh-aic{font-size:1.15rem;flex:none}
.sh-badge{margin-left:auto;background:#e0662a;color:#fff;border-radius:99px;padding:2px 7px;font-size:.75rem}
.sh-area.on .sh-badge{background:#fff;color:var(--accent)}
.sh-mainpane{min-width:0}.sh-pages{position:static}
.sh-todo{display:grid;gap:6px}
.sh-todoi{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 12px;cursor:pointer;font:inherit;color:var(--ink);text-align:left}
.sh-todoi b{font-size:1.15rem;min-width:1.6em}.sh-todoi .sh-go{margin-left:auto;color:var(--muted);font-size:1.3rem}
.sh-todoi.lv0{border-color:#d63c2f;background:#fdf0ee}.sh-todoi.lv1{border-color:#e0662a;background:#fff4ec}
.sh-homegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.sh-hgroup h4{margin:0 0 8px}.sh-hgroup .sh-tiles{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
@media (max-width:820px){
  .sh-layout{grid-template-columns:1fr;gap:8px}
  .sh-areas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;position:sticky;top:0;z-index:3;background:var(--bg);padding:4px 0}
  .sh-area{flex-direction:column;gap:3px;padding:7px 2px;font-size:11.5px;position:relative;align-items:center;min-width:0}
  .sh-alab{display:none}.sh-ashort{display:block;white-space:nowrap}
  .sh-area .sh-badge{position:absolute;top:2px;right:2px;margin:0}
  .sh-find{max-width:none}
}
[data-theme="dark"] .sh-todoi.lv0,[data-theme="dark"] .sh-todoi.lv1{background:var(--surface)}
/* Shop Desk: Whip Around-style form builder and cards */
.sh-cards{gap:8px}
.sh-fcard{border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.sh-fcard.open{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.sh-fhead{display:flex;align-items:center;gap:6px;padding:6px 8px}
.sh-grip{cursor:grab;color:var(--muted);font-size:1.1rem;user-select:none}
.sh-ftitle{flex:1;display:flex;align-items:center;gap:8px;background:none;border:0;cursor:pointer;font:inherit;color:var(--ink);text-align:left;min-width:0;flex-wrap:wrap;padding:4px}
.sh-fname{font-weight:700}
.sh-fedit{padding:4px 12px 12px;border-top:1px solid var(--line)}
.sh-opt{flex-wrap:nowrap}.sh-opt input:not([type=checkbox]){flex:1;min-width:0}.sh-opt select{width:auto!important}
.sh-addcard{display:grid;gap:8px;margin-top:6px}
.sh-cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.sh-cardtype{display:grid;grid-template-columns:auto 1fr;gap:0 8px;align-items:center;text-align:left;border:1px dashed var(--line);background:var(--bg);border-radius:10px;padding:8px;cursor:pointer;font:inherit;color:var(--ink)}
.sh-cardtype:hover,.sh-cardtype:focus-visible{border-color:var(--accent);border-style:solid}
.sh-cardtype .sh-cic{grid-row:span 2;font-size:1.3rem}.sh-cardtype small{font-size:.72rem;line-height:1.25}
.sh-cic{flex:none}
.sh-ilabel{flex:1;min-width:0}.sh-req{color:#d63c2f}.sh-drv{color:var(--accent)}
.sh-help{display:flex;gap:8px;align-items:flex-start;margin:6px 0}.sh-help img{width:70px;height:52px;object-fit:cover;border-radius:8px;cursor:zoom-in}
.sh-points{display:grid;gap:6px;margin-top:8px}.sh-point{border-top:1px dashed var(--line);padding-top:6px}.sh-point.fail .sh-itop>span:first-child{color:#d63c2f;font-weight:700}
.sh-boxes{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.sh-item select{margin-top:6px;width:100%}
.sh-sig{display:grid;gap:4px;justify-items:start;margin-top:6px}.sh-sig canvas{width:100%;max-width:520px;aspect-ratio:600/180;border:1px solid var(--line);border-radius:10px;background:#fff;touch-action:none}
.sh-modal input[type=checkbox],.sh-modal input[type=radio]{width:auto}

/* Shop Desk: ordering (vendors, suggestions, tanks) */
.sh-sugg{display:grid;gap:2px;border-left:3px solid var(--accent-soft);padding:4px 10px}
.sh-okline{color:#2e7d32}
.sh-tank{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.sh-tank.low{border-color:#e0662a;background:#fff4ec}
.sh-tankbar{height:12px;border-radius:6px;background:var(--sunk);overflow:hidden}.sh-tankbar i{display:block;height:100%;background:linear-gradient(90deg,#d9a02b,#4cc16a)}
.sh-tank.low .sh-tankbar i{background:#e0662a}
@media (max-width:600px){.sh-tank{grid-template-columns:1fr auto}.sh-tank .sh-tankbar{grid-column:1/3;grid-row:2}}
/* "Your move": banner at the top of Games, highlighted cards, a count on the Games / trophy button */
.turn-banner{background:linear-gradient(135deg,#ffd166,#ffb347);color:#3b2a00;border-radius:16px;padding:12px 14px;display:grid;gap:8px;box-shadow:0 6px 18px rgb(224 140 30 / .35);position:sticky;top:6px;z-index:4;animation:tbIn .4s ease}
.turn-banner[hidden]{display:none}
.tb-top{display:flex;align-items:center;gap:8px;font-size:1.05rem}.tb-bell{font-size:1.3rem;animation:tbRing 1.6s ease-in-out infinite;transform-origin:50% 10%}
.tb-list{display:flex;flex-wrap:wrap;gap:6px}.tb-go{border:0;border-radius:99px;background:#3b2a00;color:#ffe9b0;font:700 14px/1 inherit;font-family:inherit;padding:9px 14px;cursor:pointer;min-height:38px}
.tb-go:focus-visible{outline:3px solid #fff;outline-offset:2px}
.quest-card.my-move{position:relative;border:2px solid #ffb347;box-shadow:0 0 0 4px rgb(255 179 71 / .25)}
.turn-ribbon{position:absolute;top:10px;left:-30px;transform:rotate(-35deg);background:#e0662a;color:#fff;font:800 11px/1 system-ui;letter-spacing:.06em;padding:5px 34px;box-shadow:0 2px 6px rgb(0 0 0 / .25);pointer-events:none}
[data-turns]{position:relative}
[data-turns]::after{content:attr(data-turns);position:absolute;top:2px;right:8px;min-width:18px;height:18px;border-radius:9px;background:#e0662a;color:#fff;font:800 11px/18px system-ui;text-align:center;padding:0 4px;box-shadow:0 0 0 2px var(--surface);animation:tbPulse 1.8s ease-in-out infinite}
#trophyBtn[data-turns]::after{top:-4px;right:-4px}
@keyframes tbRing{0%,60%,100%{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%,40%{transform:rotate(-14deg)}}
@keyframes tbPulse{50%{transform:scale(1.15)}}
@keyframes tbIn{from{opacity:0;transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.tb-bell,[data-turns]::after,.turn-banner{animation:none}}
/* Messages: private groups (owner and admins make them; only members see them) */
.c-av.group{background:var(--accent-soft);font-size:1.15rem}
.c-newgroup{margin:4px 10px 8px;border:1.5px dashed var(--accent);background:none;color:var(--accent);border-radius:12px;padding:9px 12px;font:700 14px/1.2 inherit;font-family:inherit;cursor:pointer;text-align:left}
.c-newgroup:hover,.c-newgroup:focus-visible{background:var(--accent-soft)}
.thread-title .c-manage{margin-left:auto}
.c-gback{position:absolute;inset:0;background:rgb(20 12 6 / .45);display:grid;place-items:center;z-index:5;padding:12px}
.c-gform{background:var(--surface);color:var(--ink);border-radius:16px;padding:16px;width:min(440px,100%);max-height:100%;overflow:auto;display:grid;gap:8px;box-shadow:0 14px 40px rgb(0 0 0 / .35)}
.c-ghead{display:flex;justify-content:space-between;align-items:center}.c-ghead b{font-size:1.1rem}
.c-gnote{margin:0;font-size:.88rem}.c-gform input:not([type=checkbox]){width:100%}
.c-ems{display:flex;flex-wrap:wrap;gap:6px}.c-em{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--bg);font-size:1.2rem;cursor:pointer}.c-em.on{border:2px solid var(--accent);background:var(--accent-soft)}
.c-gpeople{display:grid;gap:2px;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:4px}
.c-gp{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;cursor:pointer}.c-gp:hover{background:var(--sunk)}.c-gp input{width:20px;height:20px;flex:none}.c-gp>span:not(.c-av){flex:1}.c-gp .c-av{width:30px;height:30px;font-size:.72rem}
.c-gacts{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:4px}.c-gdel{color:#b3261e}
.chat-box{position:relative}
/* Forms (our own Microsoft Forms): the list, the builder, answers (public/teamforms-ui.js) and filling one (public/formkit.js) */
.tf-pill{display:inline-block;border-radius:99px;padding:2px 10px;font-size:.78rem;font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
.tf-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--line);padding:10px 0}
.tf-rowtxt{display:grid;gap:2px;min-width:0;flex:1}.tf-rowact{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tf-tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.tf-tpl,.tf-type{display:grid;gap:2px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px;cursor:pointer;font:inherit}
.tf-tpl:hover,.tf-type:hover,.tf-tpl:focus-visible,.tf-type:focus-visible{border-color:var(--accent)}
.tf-types{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.tf-type{grid-template-columns:auto 1fr;align-items:center;gap:8px;font-size:.92rem;border-style:dashed}
.tf-title{font:700 1.3rem/1.2 var(--display);border:0;border-bottom:2px solid var(--line);background:none;padding:6px 2px;width:100%;color:var(--ink)}.tf-title:focus{outline:none;border-color:var(--accent)}
.tf-desc{width:100%}
.tf-statusbox{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto}
.tf-q{border:1px solid var(--line);border-radius:12px;background:var(--surface)}.tf-q.open{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.tf-qhead{display:flex;align-items:center;gap:6px;padding:6px 8px}.tf-qtitle{flex:1;display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:none;border:0;cursor:pointer;color:var(--ink);font:inherit;text-align:left;padding:4px;min-width:0}
.tf-qicon{font-size:1.1rem}.tf-qmv{display:flex;gap:2px}
.tf-qedit{padding:4px 12px 12px;border-top:1px solid var(--line)}.tf-qedit input:not([type=checkbox]),.tf-qedit select,.tf-qedit textarea{width:100%}
.tf-two{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.tf-chk{display:inline-flex;gap:6px;align-items:center;cursor:pointer}.tf-row2{display:flex;gap:16px;flex-wrap:wrap}
.tf-opt{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}.tf-opt input{margin-top:3px;width:20px;height:20px;flex:none}.tf-opt span{display:grid;gap:2px}
.tf-linkbox{display:grid;gap:8px;justify-items:start;background:var(--sunk);border-radius:12px;padding:12px}.tf-linkbox a{word-break:break-all;font-weight:600}
.tf-qr svg{width:160px;height:160px;background:#fff;padding:6px;border-radius:8px}
.tf-people{display:grid;gap:6px}.tf-plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:8px}
.tf-note{background:var(--accent-soft);border-radius:10px;padding:8px 12px;margin:0}
.tf-danger{color:#b3261e}
.tf-rhead{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.tf-big{font:800 2rem/1 var(--display)}
.tf-sum{display:grid;gap:4px;border-top:1px solid var(--line);padding:10px 0}
.tf-bar{display:grid;grid-template-columns:minmax(80px,30%) 1fr auto;gap:8px;align-items:center;font-size:.9rem}.tf-bartrack{height:12px;border-radius:6px;background:var(--sunk);overflow:hidden}.tf-bartrack i{display:block;height:100%;background:var(--accent);border-radius:6px}
.tf-latest{margin:0;padding-left:18px;color:var(--muted)}
.tf-resp{border-top:1px solid var(--line);padding:6px 0}.tf-ans{display:grid;gap:8px;padding:8px 0}
.tf-sheet{width:min(720px,100%)}
/* filling a form */
.fk{display:grid;gap:14px;--fk:var(--accent)}
.fk-head h2{margin:0 0 4px;font:700 1.4rem/1.2 var(--display)}.fk-desc{margin:0;color:var(--muted)}
.fk-q{display:grid;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}
.fk-label{font-weight:600;display:flex;gap:6px;align-items:baseline}.fk-num{color:var(--muted)}.fk-req{color:#b3261e}.fk-help{color:var(--muted)}
.fk-q input:not([type=radio]):not([type=checkbox]),.fk-q textarea,.fk-q select{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}
.fk-section{border-left:4px solid var(--fk);padding:4px 12px}.fk-section h3{margin:0 0 4px}
.fk-opts{display:grid;gap:6px}.fk-opt{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer;flex-wrap:wrap}.fk-opt input[type=radio],.fk-opt input[type=checkbox]{width:20px;height:20px;accent-color:var(--fk)}.fk-other{flex:1;min-width:140px}
.fk-yn,.fk-scaleRow{display:flex;gap:6px;flex-wrap:wrap}
.fk-pill{min-width:44px;height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:700 15px/1 inherit;font-family:inherit;cursor:pointer}.fk-pill.on{background:var(--fk);border-color:var(--fk);color:#fff}
.fk-ends{display:flex;justify-content:space-between;color:var(--muted)}
.fk-stars{display:flex;gap:4px}.fk-star{font-size:30px;line-height:1;background:none;border:0;color:#d6cfc2;cursor:pointer;padding:2px}.fk-star.on{color:#f2b233}
.fk-thumbs{display:flex;gap:6px;flex-wrap:wrap}.fk-thumb{position:relative}.fk-thumb img,.fk-thumbs img{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.fk-x{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;border:0;background:#b3261e;color:#fff;cursor:pointer}
.fk-photos{display:grid;gap:8px;justify-items:start}
.fk-sig{display:grid;gap:4px;justify-items:start}.fk-sig canvas{width:100%;max-width:560px;aspect-ratio:640/200;border:1px solid var(--line);border-radius:10px;background:#fff;touch-action:none}
.fk-link{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;padding:2px}
.fk-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.fk-msg{color:#b3261e;font-weight:600;margin:0}.fk-send{justify-self:start;min-width:160px;background:var(--fk);border-color:var(--fk)}
.fk-done{display:grid;justify-items:center;gap:6px;text-align:center;padding:30px 10px}.fk-check{width:64px;height:64px;border-radius:50%;background:#2e9e57;color:#fff;font-size:34px;display:grid;place-items:center}
/* the public page */
.fk-page{background:var(--bg)}.fk-wrap{max-width:720px;margin:0 auto;padding:16px 16px 40px;display:grid;gap:14px}
.fk-brand{display:flex;gap:10px;align-items:center;font-family:var(--display);font-size:1.1rem}.fk-brand img{border-radius:50%}
.fk-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px}.fk-foot{font-size:.85rem;text-align:center}
/* Forms: the 0-10 scale stays on one row on a phone */
.fk-scaleRow{display:grid;grid-template-columns:repeat(auto-fit,minmax(28px,1fr));gap:4px}
.fk-scaleRow .fk-pill{min-width:0;padding:0;height:44px;font-size:14px}
.fk-other{font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);min-width:0;flex:1}
/* Whip Around move-out: maintenance rebuild preview */
.wa-mlist{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow:auto;padding-right:4px}
.wa-munit{margin:10px 0 0;font-size:.95rem}
.wa-mrow{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.wa-mrow.need{border-color:#d9a02b;background:color-mix(in srgb,#d9a02b 8%,var(--bg))}
.wa-mhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wa-mhead input{width:auto;margin:0}
.wa-tag{font-size:.75rem;padding:2px 8px;border-radius:99px;background:var(--line)}
.wa-mfacts{display:flex;flex-direction:column;gap:2px;font-size:.88rem}
.wa-miv{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.88rem}.wa-miv input{width:92px;min-width:0;padding:6px 8px}
.wa-mstart{display:flex;gap:8px;align-items:flex-start;font-size:.9rem}.wa-mstart input{width:auto;margin-top:3px}
.wa-mrow.wa-f-need{border-color:#d9a02b;background:color-mix(in srgb,#d9a02b 8%,var(--bg))}.wa-f-ok .wa-tag{background:color-mix(in srgb,#4cc16a 22%,var(--bg))}
/* ---------- Docs (our own Word) ---------- */
.td-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}
.td-row:first-of-type{border-top:0}
.td-ico{font-size:1.4rem;line-height:1.2}
.td-rowmain{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.td-rowmain:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.td-rowmain b{font-size:1rem}.td-rowmain small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-meta{color:var(--muted);font-size:.8rem}
.td-tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.td-tpl{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.td-tpl:hover{border-color:var(--accent)}.td-tpl:focus-visible{outline:2px solid var(--accent)}
.td-tplpage{font-size:1.6rem}
.td-trash{justify-content:space-between;padding:6px 0}
.td-ed{display:flex;flex-direction:column;gap:8px;min-width:0}
.td-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.td-title{flex:1 1 220px;min-width:0;font:700 1.25rem/1.2 var(--display,Bitter,serif);border:1px solid transparent;background:transparent;padding:6px 8px;border-radius:8px;color:var(--ink)}
.td-title:hover,.td-title:focus{border-color:var(--line);background:var(--surface)}
.td-status{font-size:.85rem;white-space:nowrap}
.td-banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--accent-soft);border-radius:10px;padding:8px 12px;font-size:.92rem}
.td-bar{position:sticky;top:0;z-index:5;display:flex;gap:2px;align-items:center;overflow-x:auto;scrollbar-width:thin;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px}
.td-bar.off{opacity:.45;pointer-events:none}
.td-tool{flex:none;min-width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:600 15px/1 inherit;font-family:inherit;cursor:pointer}
.td-tool:hover{background:var(--sunk)}.td-tool.b{font-weight:800}.td-tool.i{font-style:italic}.td-tool.u{text-decoration:underline}.td-tool.s{text-decoration:line-through}
.td-tool.td-ai{background:var(--accent-soft)}
.td-style{flex:none;width:auto;height:36px;padding:0 6px;font-size:.88rem}
.td-sep{flex:none;width:1px;height:22px;background:var(--line);margin:0 4px}
.td-ctx{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:.88rem}
.td-ctx .on{background:var(--accent-soft)}
.td-paper-wrap{background:var(--sunk);border-radius:14px;padding:18px 10px;overflow-x:auto}
.td-paper{background:#fff;color:#1b1b1b;max-width:816px;min-height:60vh;margin:0 auto;padding:56px 64px;box-shadow:0 2px 10px rgba(0,0,0,.12);border-radius:4px;font:16px/1.55 Calibri,"Segoe UI",var(--body,system-ui),sans-serif;outline:none;overflow-wrap:anywhere}
.td-paper:focus-visible{box-shadow:0 0 0 2px var(--accent),0 2px 10px rgba(0,0,0,.12)}
.td-paper h1{font:700 1.75rem/1.25 var(--display,Bitter,serif);margin:.5em 0 .3em;color:#3b2a1a}
.td-paper h2{font:700 1.3rem/1.3 var(--display,Bitter,serif);margin:1em 0 .3em;color:#3b2a1a}
.td-paper h3{font-size:1.08rem;margin:.9em 0 .3em;color:#3b2a1a}
.td-paper p{margin:0 0 .6em}
.td-paper ul,.td-paper ol{margin:0 0 .6em;padding-left:1.6em}
.td-paper ul[data-check]{list-style:none;padding-left:.2em}
.td-paper ul[data-check]>li{position:relative;padding-left:30px;min-height:24px}
.td-paper ul[data-check]>li::before{content:"";position:absolute;left:2px;top:3px;width:18px;height:18px;border:2px solid #8a7766;border-radius:4px;background:#fff;cursor:pointer}
.td-paper ul[data-check]>li[data-checked="1"]::before{background:#3d8b4f;border-color:#3d8b4f}
.td-paper ul[data-check]>li[data-checked="1"]::after{content:"";position:absolute;left:8px;top:6px;width:5px;height:10px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.td-paper ul[data-check]>li[data-checked="1"]{color:#7d7d7d;text-decoration:line-through}
.td-paper table{border-collapse:collapse;width:100%;margin:.4em 0 .8em;table-layout:fixed}
.td-paper td,.td-paper th{border:1px solid #c9bfb4;padding:6px 8px;vertical-align:top;text-align:left;min-width:40px}
.td-paper th{background:#efe7dc;font-weight:700}
.td-paper img{max-width:100%;height:auto;border-radius:4px;cursor:zoom-in}
.td-paper[contenteditable="true"] img{cursor:pointer}
.td-paper img.on{outline:3px solid var(--accent);outline-offset:2px}
.td-paper blockquote{border-left:4px solid #c8a27a;margin:.6em 0;padding:.3em .9em;color:#555;font-style:italic;background:#faf6f1}
.td-paper hr{border:0;border-top:1px solid #bbb;margin:1em 0}
.td-paper mark{background:#fff27a;color:inherit}
.td-paper a{color:#0563c1}
.td-paper .al-center{text-align:center}.td-paper .al-right{text-align:right}
.td-foot{font-size:.82rem;text-align:center}
.td-full{position:fixed;inset:0;z-index:900;background:var(--bg);overflow:auto;padding:12px 12px calc(12px + env(safe-area-inset-bottom))}
body.td-noscroll{overflow:hidden}
.td-full .td-bar{top:-12px}
.td-sheet .hd-body{display:flex;flex-direction:column;gap:10px}
.td-sheet.td-wide{width:min(900px,100%)}
.td-sheet.td-menu .btn{justify-content:flex-start;text-align:left}
.td-lab{font-size:.85rem;font-weight:600}
.td-tones{display:flex;gap:6px;flex-wrap:wrap}
.td-ai-out{white-space:pre-wrap;background:var(--sunk);border-radius:10px;padding:10px 12px}
.td-opt{display:flex;gap:10px;align-items:flex-start;padding:6px 0;cursor:pointer}.td-opt input{width:auto;margin-top:4px}
.td-opt span{display:flex;flex-direction:column}
.td-people{display:flex;flex-direction:column;gap:4px;max-height:40vh;overflow:auto}
.td-person{display:grid;grid-template-columns:1fr auto 130px;gap:8px;align-items:center;padding:4px 0;border-top:1px solid var(--line)}
.td-person select{width:auto}
.td-q{all:unset;display:block;cursor:pointer;border-left:3px solid #e5c463;padding:2px 8px;color:var(--muted);font-style:italic;font-size:.9rem}
blockquote.td-q{margin:0}
.td-thread{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px}
.td-thread.done{opacity:.6}
.td-cm p{margin:2px 0 0;white-space:pre-wrap}
.td-thread .sh-row input{flex:1;min-width:0}
.td-ver{all:unset;cursor:pointer;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.td-ver:hover{border-color:var(--accent)}
.td-preview{min-height:0;padding:24px;box-shadow:none;border:1px solid var(--line)}
.td-pubwrap{max-width:900px;margin:0 auto;padding:16px}
.td-pubact{margin-left:auto}
.td-pubtitle{margin-top:0}
.td-pubmeta{margin-top:-.4em}
@media (max-width:640px){
  .td-paper{padding:22px 18px;font-size:16px}
  .td-paper-wrap{padding:8px 0;background:transparent}
  .td-title{font-size:1.1rem;flex-basis:100%;order:2}
  .td-person{grid-template-columns:1fr 120px}.td-person small{display:none}
}
@media print{
  body.td-public .fk-brand,body.td-public .fk-foot{display:none}
  body.td-public .td-paper{box-shadow:none;padding:0;max-width:none}
}
.wa-mivh{flex-basis:100%}.wa-mivg{display:inline-flex;align-items:center;gap:4px}.wa-warn{color:#9a5b00}
.sh-three{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.td-sheet.td-menu .btn{width:100%}
.td-replyrow input{flex:1 1 100%}
.wa-switch{display:flex;flex-direction:column;gap:6px;border:1px solid #d9a02b;border-radius:12px;padding:10px 12px;background:color-mix(in srgb,#d9a02b 8%,var(--bg))}
/* ---------- Fill & sign PDFs ---------- */
.ps-panel .panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.ps-row{display:flex;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}
.ps-rowmain{all:unset;cursor:pointer;flex:1;min-width:0;display:flex;flex-direction:column}.ps-rowmain b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-rowmain:focus-visible{outline:2px solid var(--accent);border-radius:6px}
.ps-ico{font-size:1.3rem}
.ps-full{position:fixed;inset:0;z-index:900;background:#5f5a55;display:flex;flex-direction:column}
.ps-loading{color:#fff;text-align:center;margin-top:30vh}
.ps-ed{display:flex;flex-direction:column;height:100%;min-height:0}
.ps-top{display:flex;gap:6px;align-items:center;padding:8px 10px;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap}
.ps-name{flex:1 1 160px;min-width:0;font-weight:700;border:1px solid transparent;background:transparent;color:var(--ink);padding:6px 8px;border-radius:8px}
.ps-name:focus,.ps-name:hover{border-color:var(--line);background:var(--bg)}
.ps-status{font-size:.82rem;white-space:nowrap}
.ps-hint{margin:0;padding:6px 12px;background:var(--accent-soft);color:var(--ink);font-size:.86rem}
.ps-pages{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;-webkit-overflow-scrolling:touch}
.ps-pagewrap{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.ps-pagebar{display:flex;gap:4px;align-items:center;color:#fff}.ps-pagebar small{color:#eee;margin-right:6px}.ps-pagebar .btn{color:#fff}
.ps-page{position:relative;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.35);flex:none}
.ps-canvas{position:absolute;inset:0;display:block}
.ps-ov{position:absolute;inset:0;touch-action:pan-x pan-y}
.ps-ov.drawing{touch-action:none;cursor:crosshair}
.ps-svg{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.ps-svg .ps-stroke{pointer-events:stroke;cursor:pointer}.ps-svg .ps-stroke.on{filter:drop-shadow(0 0 2px #2b7bff)}
.ps-mark{position:absolute;touch-action:none;cursor:move;box-sizing:border-box}
.ps-mark.on{outline:2px dashed #2b7bff;outline-offset:2px}
.ps-mark img{width:100%;height:100%;display:block;pointer-events:none;user-select:none}
.ps-text{white-space:pre-wrap;overflow-wrap:anywhere;outline:none;cursor:text;min-height:1em}
.ps-mark.ps-text:empty::before,.ps-text:empty::before{content:"Type here";color:#9aa}
.ps-del{position:absolute;right:-12px;top:-14px;width:24px;height:24px;border-radius:50%;border:0;background:#c0261c;color:#fff;font:700 15px/24px system-ui;padding:0;cursor:pointer;z-index:2}
.ps-handle{position:absolute;right:-7px;bottom:-7px;width:14px;height:14px;border-radius:50%;background:#2b7bff;border:2px solid #fff;cursor:nwse-resize}
.ps-grip{position:absolute;left:-22px;top:-2px;width:20px;height:22px;display:flex;align-items:center;justify-content:center;background:#2b7bff;color:#fff;border-radius:6px;font-size:13px;cursor:move}
.ps-field{position:absolute}
.ps-field input:not([type=checkbox]):not([type=radio]),.ps-field textarea,.ps-field select{width:100%;height:100%;box-sizing:border-box;border:1px solid rgba(43,123,255,.45);background:rgba(220,234,255,.55);border-radius:2px;padding:0 3px;margin:0;color:#111;font-family:Helvetica,Arial,sans-serif;min-height:0;resize:none}
.ps-field textarea{padding-top:2px;line-height:1.15}
.ps-field input[type=checkbox],.ps-field input[type=radio]{width:100%;height:100%;margin:0;accent-color:#1f3fbf}
.ps-ov.drawing .ps-field{pointer-events:none}
.ps-tools{display:flex;gap:2px;overflow-x:auto;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);scrollbar-width:thin}
.ps-tool{flex:none;min-width:52px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:0;border-radius:10px;background:transparent;color:var(--ink);cursor:pointer;font:600 14px/1.1 inherit;font-family:inherit;padding:2px 6px}
.ps-tool small{font-size:.66rem;color:var(--muted);font-weight:500}
.ps-tool.on{background:var(--accent);color:var(--accent-ink)}.ps-tool.on small{color:var(--accent-ink)}
.ps-ti{font-size:1.05rem}
.ps-zoom{display:flex;gap:2px;margin-left:auto;border-left:1px solid var(--line);padding-left:4px}
.ps-style{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:6px 10px;background:var(--surface);border-top:1px solid var(--line)}
.ps-style select{width:auto;height:38px;padding:0 6px}
.ps-style .ps-tool{min-width:40px;min-height:38px}
.ps-swatch{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0}
.ps-swatch.on{box-shadow:0 0 0 3px var(--accent)}
.ps-addpage{margin:6px 0 30px}
.ps-pad{width:100%;height:auto;aspect-ratio:900/260;background:#fff;border:1px solid var(--line);border-radius:10px;touch-action:none;cursor:crosshair}
.ps-padbox .hd-body{display:flex;flex-direction:column;gap:10px}
.ps-sigfonts{display:flex;gap:6px;flex-wrap:wrap}.ps-sigfonts .on,.ps-ink.on{background:var(--accent-soft);border-color:var(--accent)}
.ps-ovl{z-index:1100}
.ps-mail{border-top:1px solid var(--line);padding-top:10px}
.ps-field input,.ps-field textarea,.ps-field select{position:absolute;inset:0;min-height:0!important;min-width:0!important;margin:0!important;display:block}
.ps-nosig{border:1.5px dashed #c0261c;background:rgba(192,38,28,.06)}.ps-nosig::after{content:attr(data-label);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:600 11px system-ui;color:#c0261c;text-align:center}
@media (max-width:640px){.ps-status{display:none}.ps-name{flex-basis:120px}}
/* Docs: full formatting */
.td-paper .al-justify{text-align:justify}
.td-paper .ls-1{line-height:1.15}.td-paper .ls-115{line-height:1.35}.td-paper .ls-15{line-height:1.75}.td-paper .ls-2{line-height:2.3}
.td-paper .in-1{margin-left:.5in}.td-paper .in-2{margin-left:1in}.td-paper .in-3{margin-left:1.5in}.td-paper .in-4{margin-left:2in}
.td-paper sup,.td-paper sub{font-size:.7em}
.td-paper mark[data-c=green]{background:#b8f0b0}.td-paper mark[data-c=blue]{background:#bfe3ff}.td-paper mark[data-c=pink]{background:#ffc9e3}.td-paper mark[data-c=orange]{background:#ffd7a8}
.td-paper hr[data-break]{border:0;border-top:2px dashed #c9bfb4;margin:26px 0;overflow:visible;position:relative;height:0}
.td-paper hr[data-break]::after{content:"Page break";position:absolute;left:50%;top:-9px;transform:translateX(-50%);background:#fff;padding:0 8px;font:600 11px system-ui;color:#9a8f85}
.td-paper[data-header]::before{content:attr(data-header);display:block;text-align:center;color:#9a8f85;font:10px system-ui;border-bottom:1px dotted #ddd;margin:-26px 0 18px;padding-bottom:4px}
.td-paper[data-footer]::after{content:attr(data-footer);display:block;text-align:center;color:#9a8f85;font:10px system-ui;border-top:1px dotted #ddd;margin:24px 0 -26px;padding-top:4px}
.td-font{max-width:118px}.td-size{max-width:64px}
.td-tool.td-color{text-decoration:underline 3px #c0261c;text-underline-offset:3px}
.td-swatches{display:grid;grid-template-columns:repeat(6,44px);gap:10px;justify-content:center;padding:6px}
.td-swatch{width:44px;height:44px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0}
.td-swatch:focus-visible{box-shadow:0 0 0 3px var(--accent)}
.td-sheet.td-small{width:min(420px,100%)}
.td-row2{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center}.td-row2 select,.td-row2 input{width:100%}
@media (max-width:640px){.td-paper[data-header]::before{margin:-8px 0 12px}.td-paper[data-footer]::after{margin:18px 0 -8px}}
@media (min-width:900px){.td-bar{flex-wrap:wrap;overflow:visible}}
/* Sheets (our Excel) */
.td-tool.on{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.td-full.ts-full{display:flex;flex-direction:column;overflow:hidden;padding-bottom:calc(6px + env(safe-area-inset-bottom))}
.ts-ed{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0}
.ts-bar{position:static}
.ts-bar .td-tool.ts-q{font-size:12.5px;padding:0 6px}.ts-bar .ts-sum{font-size:18px}
.ts-nf{max-width:150px;height:36px;font-size:13px}
.ts-fbar{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:3px 6px}
.ts-name{width:84px;flex:none;font:600 13px/1 ui-monospace,Menlo,Consolas,monospace;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;padding:6px 4px;color:var(--ink)}
.ts-fx{font:italic 600 13px/1 Georgia,serif;color:var(--muted)}
.ts-finput{flex:1;min-width:0;border:0;background:transparent;font:14px/1.3 ui-monospace,Menlo,Consolas,monospace;padding:6px 4px;color:var(--ink)}
.ts-finput:focus,.ts-name:focus{outline:none;background:var(--sunk);border-radius:6px}
.ts-grid{position:relative;flex:1;min-height:0;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff;outline:none;overscroll-behavior:contain}
.ts-grid:focus-visible{box-shadow:0 0 0 2px var(--accent)}
.ts-t{table-layout:fixed;border-collapse:separate;border-spacing:0;font:13px/1.2 Calibri,"Segoe UI",Arial,sans-serif;color:#1b1b1b;user-select:none;-webkit-user-select:none}
.ts-t td,.ts-t th{height:26px;box-sizing:border-box;padding:0 5px;border-right:1px solid #e3e3e3;border-bottom:1px solid #e3e3e3;white-space:nowrap;overflow:hidden;text-overflow:clip;background:#fff;position:relative}
.ts-t td.n{text-align:right;font-variant-numeric:tabular-nums}.ts-t td.m{text-align:center}
.ts-t td.al-left{text-align:left}.ts-t td.al-center{text-align:center}.ts-t td.al-right{text-align:right}
.ts-t td.err{color:#c0261c}.ts-t td.wrap{white-space:normal;line-height:1.05;font-size:12px}
.ts-t td.bd{box-shadow:inset 0 0 0 1px #555}
.ts-t thead{position:sticky;top:0;z-index:3}
.ts-t thead th,.ts-t thead td{background-clip:padding-box}
.ts-t th{background:#f3f3f1;color:#555;font:600 12px/1 system-ui,sans-serif;text-align:center;cursor:default}
.ts-t th.on{background:#d9e8dd;color:#1d4d32}
.ts-ch{cursor:s-resize}.ts-rh{position:sticky;left:0;z-index:2;cursor:e-resize}
.ts-corner{position:sticky;left:0;z-index:4}
.ts-t .ts-fcol{position:sticky;z-index:1;box-shadow:inset -1px 0 0 #aab}
.ts-frow td,.ts-frow th{border-bottom-color:#aab}
.ts-grip{position:absolute;right:-3px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:2}
.ts-grip:hover{background:var(--accent)}
.ts-t td.sel{background-image:linear-gradient(rgba(43,106,79,.13),rgba(43,106,79,.13))}
.ts-t td.act{box-shadow:inset 0 0 0 2px #2b6a4f}
.ts-t td.refhl{box-shadow:inset 0 0 0 2px #1f3fbf;background-image:linear-gradient(rgba(31,63,191,.08),rgba(31,63,191,.08))}
.ts-fill{position:absolute;right:0;bottom:0;width:8px;height:8px;background:#2b6a4f;border:1px solid #fff;cursor:crosshair;z-index:2}
.ts-sp td{padding:0;border:0;background:transparent}
.ts-edit{position:absolute;z-index:6;box-sizing:border-box;resize:none;overflow:hidden;font:13px/1.2 Calibri,"Segoe UI",Arial,sans-serif;padding:5px;border:2px solid #2b6a4f;border-radius:0;background:#fff;color:#1b1b1b;box-shadow:0 2px 8px rgba(0,0,0,.2);white-space:pre;width:auto;min-height:26px}
.ts-tabs{display:flex;gap:2px;overflow-x:auto;flex:none;scrollbar-width:thin}
.ts-tab{flex:none;border:1px solid var(--line);border-top:3px solid transparent;border-radius:0 0 8px 8px;background:var(--sunk);color:var(--ink);padding:6px 14px;font:600 13px/1 inherit;font-family:inherit;cursor:pointer;min-height:34px}
.ts-tab.on{background:var(--surface);border-top-color:var(--accent);color:var(--accent)}
.ts-tab.ts-add{font-size:18px;padding:4px 12px}
.ts-status{font-size:12.5px;min-height:16px;flex:none;padding:0 4px}
.ts-tip{position:fixed;left:50%;bottom:calc(64px + env(safe-area-inset-bottom));transform:translateX(-50%);max-width:min(560px,92vw);background:#1b1b1b;color:#fff;padding:8px 12px;border-radius:10px;font:13px/1.35 ui-monospace,Menlo,monospace;z-index:950;pointer-events:none}
.ts-menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.ts-fnlist{display:grid;gap:4px;max-height:52vh;overflow:auto}
.ts-fn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:7px 10px;cursor:pointer;color:var(--ink);font-family:inherit}
.ts-fn b{font-family:ui-monospace,Menlo,monospace}.ts-fn:hover{background:var(--sunk)}
.ts-public .td-pubwrap{max-width:1200px}
.ts-pubgrid{width:fit-content;max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff;max-height:75vh}
.ts-pubtabs{margin:8px 0}
.ts-pub td{user-select:text;-webkit-user-select:text}
@media (pointer:coarse){.ts-t td,.ts-t th{height:26px}.ts-fill{width:14px;height:14px}.ts-finput{font-size:16px}}
@media (max-width:640px){.ts-full .td-top .td-title{order:0;flex-basis:auto}.ts-nf{max-width:110px}}
@media print{.ts-public .td-pubact,.ts-pubtabs{display:none}.ts-pubgrid{max-height:none;overflow:visible;border:0}.ts-t th{display:none}}
/* permission preview */
.pv-bar{position:sticky;top:0;z-index:960;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;background:#6a2fa0;color:#fff;padding:8px 12px calc(8px);font-weight:600}
.pv-bar select{width:auto;min-height:32px;padding:2px 8px}.pv-bar small{font-weight:400;opacity:.9}
.pv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.pv-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px;cursor:pointer;color:var(--ink);font-family:inherit}
.pv-card:hover{background:var(--sunk)}.pv-card.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
/* Slides (our PowerPoint): the slide drawing (public/slidekit.js) */
.sk-slide{position:relative;overflow:hidden;flex:none;color:#222;font-family:Calibri,Arial,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.sk-item{position:absolute;box-sizing:border-box}
.sk-text{position:absolute;inset:0;display:flex;flex-direction:column;padding:7.2px 7.2px;box-sizing:border-box;overflow:hidden;overflow-wrap:break-word;white-space:pre-wrap;outline:none}
.sk-lines{counter-reset:sk}
.sk-bullet .sk-p:not(.sk-empty),.sk-number .sk-p:not(.sk-empty){position:relative;padding-left:1.1em}
.sk-bullet .sk-p:not(.sk-empty)::before{content:"•";position:absolute;left:.15em}
.sk-number .sk-p:not(.sk-empty){counter-increment:sk}.sk-number .sk-p:not(.sk-empty)::before{content:counter(sk) ".";position:absolute;left:0}
.sk-img{position:absolute;inset:0;background-position:center;background-repeat:no-repeat;box-sizing:border-box}
.sk-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:3px dashed rgba(0,0,0,.25);background:rgba(255,255,255,.35);color:rgba(0,0,0,.55);font:600 22px/1.2 Figtree,sans-serif}.sk-ph span{font-size:42px}
.sk-shape{position:absolute;inset:0;box-sizing:border-box}
.sk-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
/* the editor */
.td-full.sp-full{display:flex;flex-direction:column;overflow:hidden;padding-bottom:calc(6px + env(safe-area-inset-bottom))}
.sp-ed{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0}
.sp-bar{position:static}.sp-ctx{position:static;background:var(--sunk)}.sp-ctx[hidden]{display:none}
.td-tool.sp-w{font-size:13.5px;padding:0 10px;white-space:nowrap}
.sp-size{max-width:96px;height:36px;font-size:13px}
.sp-body{flex:1;min-height:0;display:flex;gap:10px}
.sp-rail{flex:none;width:176px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:2px 6px 10px 2px}
.sp-slot{position:relative;display:flex;align-items:flex-start;gap:4px;cursor:pointer;border-radius:8px;padding:3px;border:2px solid transparent}
.sp-slot.on{border-color:var(--accent)}.sp-slot.over{border-color:#1f3fbf;border-style:dashed}.sp-slot.drag{opacity:.4}.sp-slot.hid .sp-thumb{opacity:.35}
.sp-num{position:absolute;left:-2px;top:-2px;background:var(--surface);border-radius:6px;padding:0 5px;font:600 11px/16px system-ui;color:var(--muted)}
.sp-slotmenu{position:absolute;right:4px;top:4px;border:0;border-radius:6px;background:rgba(255,255,255,.85);cursor:pointer;font-size:14px;padding:0 6px;opacity:0}.sp-slot:hover .sp-slotmenu,.sp-slot.on .sp-slotmenu{opacity:1}
.sp-thumb{position:relative;overflow:hidden;border-radius:4px;box-shadow:0 0 0 1px var(--line);flex:none;background:#fff}
.sp-addslide{border:2px dashed var(--line);border-radius:8px;background:transparent;color:var(--ink);padding:12px;cursor:pointer;font:600 14px/1 inherit;font-family:inherit}
.sp-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px}
.sp-stagebox{outline:none;border-radius:4px}.sp-stagebox:focus-visible{box-shadow:0 0 0 2px var(--accent)}
.sp-stage{position:relative;overflow:hidden;box-shadow:0 2px 14px rgba(0,0,0,.18);background:#fff;touch-action:none;user-select:none;-webkit-user-select:none}
.sp-stage .sk-item.sp-it{cursor:move}.sp-stage .sk-item.sp-it:hover{outline:1px dashed rgba(31,63,191,.55)}
.sp-stage .sk-item.editing{cursor:text;outline:2px solid #1f3fbf}.sp-stage .sk-item.editing .sk-text{user-select:text;-webkit-user-select:text;cursor:text}
.sp-sel{position:absolute;pointer-events:none;outline:2px solid #1f3fbf;transform-origin:center}
.sp-h{position:absolute;width:12px;height:12px;margin:-6px;background:#fff;border:2px solid #1f3fbf;border-radius:3px;pointer-events:auto;box-sizing:border-box}
.sp-h-nw{left:0;top:0;cursor:nwse-resize}.sp-h-n{left:50%;top:0;cursor:ns-resize}.sp-h-ne{left:100%;top:0;cursor:nesw-resize}.sp-h-e{left:100%;top:50%;cursor:ew-resize}
.sp-h-se{left:100%;top:100%;cursor:nwse-resize}.sp-h-s{left:50%;top:100%;cursor:ns-resize}.sp-h-sw{left:0;top:100%;cursor:nesw-resize}.sp-h-w{left:0;top:50%;cursor:ew-resize}
.sp-rot{left:50%;top:-26px;border-radius:50%;cursor:grab;background:#1f3fbf}
.sp-guide{position:absolute;background:#e5534b;pointer-events:none;z-index:3}.sp-guide-x{top:0;bottom:0;width:1px}.sp-guide-y{left:0;right:0;height:1px}
.sp-notes{width:100%;max-width:960px;resize:vertical;min-height:54px;font-size:14px}
.sp-foot{flex:none}
.sp-pick,.sp-themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sp-layouts{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.sp-layout,.sp-theme{display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:8px;cursor:pointer;color:var(--ink);font-family:inherit;text-align:left}
.sp-layout:hover,.sp-theme:hover{background:var(--sunk)}.sp-theme.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.sp-tplsw{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:16/9;border-radius:6px;font-size:28px;font-weight:700;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);overflow:hidden}
.sp-tplsw i{position:absolute;left:0;right:0;bottom:0;height:18%}
.sp-tpl .sp-tplsw{margin-bottom:4px}
.td-row .sp-thumb{margin-right:4px}
/* Present */
.sp-present{position:fixed;inset:0;z-index:2000;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;outline:none;cursor:pointer;touch-action:none}
.sp-pbox{position:relative;overflow:hidden}
.sp-hud{position:fixed;left:50%;bottom:10px;transform:translateX(-50%);color:#fff;background:rgba(0,0,0,.5);border-radius:20px;padding:5px 14px;font:13px/1.2 system-ui;opacity:0;transition:opacity .3s}.sp-present:hover .sp-hud{opacity:1}
.sp-pnotes{width:100%;max-height:28vh;overflow:auto;background:#1b1b1b;color:#eee;padding:10px 16px;font:17px/1.4 system-ui;white-space:pre-wrap;box-sizing:border-box}
/* print */
.sp-print{display:none}
.sp-page{width:1280px;height:720px;overflow:hidden;break-after:page;page-break-after:always;position:relative}
@media (max-width:760px){
  .sp-body{flex-direction:column-reverse}
  .sp-rail{width:auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:2px 2px 6px}
  .sp-slot{flex:none}.sp-slotmenu{opacity:1}
  .sp-addslide{flex:none;padding:8px 12px}
  .sp-notes{min-height:44px}
}
/* the public deck page */
.sp-pub .td-pubwrap{max-width:1100px}
.sp-pubstage{position:relative;margin:10px auto;box-shadow:0 2px 14px rgba(0,0,0,.18);overflow:hidden}
.sp-pubnav{display:flex;gap:8px;align-items:center;justify-content:center;margin:6px 0}
.sp-pubrail{display:flex;gap:8px;overflow-x:auto;padding:6px 2px}
.sp-pubrail .sp-thumb{cursor:pointer}.sp-pubrail .sp-thumb.on{box-shadow:0 0 0 3px var(--accent)}
.sp-hint{font-size:13.5px;padding:0 8px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-ctx{min-height:46px;box-sizing:border-box;flex-wrap:nowrap!important;overflow-x:auto!important}
/* invite: set password → sign in → get the app */
.jn-steps{display:flex;gap:6px;list-style:none;margin:0 0 10px;padding:0;counter-reset:jn}
.jn-steps li{flex:1;counter-increment:jn;text-align:center;font:600 13px/1.2 inherit;padding:8px 4px;border-radius:10px;background:var(--sunk);color:var(--muted)}
.jn-steps li::before{content:counter(jn) ". "}
.jn-steps li.on{background:var(--accent);color:#fff}.jn-steps li.done{background:var(--accent-soft);color:var(--ink)}.jn-steps li.done::before{content:"✓ "}
.jn-note{margin:-6px 0 4px;font-size:.85rem}
.jn-how{font-size:.95rem}
/* Settings: a menu of sections */
#view-settings [data-sub][hidden],#view-settings nav[hidden]{display:none!important}
#view-settings .grid>.sub-back{grid-column:1/-1}
.sett-hero{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.sett-hero h2{margin:0}.sett-hero p{margin:4px 0 0}
#view-settings [data-sub="people"],#view-settings [data-sub="conn"],#view-settings [data-sub="look"],#view-settings [data-sub="help"]{grid-template-columns:minmax(0,1fr)}
/* Files (our OneDrive) */
.fl-head{flex-wrap:wrap;gap:8px}
.fl-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}
.fl-crumb{border:0;background:transparent;color:var(--accent);font:600 1.05rem/1.2 inherit;font-family:inherit;cursor:pointer;padding:4px 6px;border-radius:8px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-crumb:hover{background:var(--sunk)}.fl-crumb.on{color:var(--ink);cursor:default}.fl-crumb.on:hover{background:transparent}
.fl-sep{color:var(--muted)}
.fl-search{display:flex;gap:8px;align-items:center}.fl-search input{flex:1}
.fl-list{display:flex;flex-direction:column}
.fl-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:4px 2px}.fl-row:last-child{border-bottom:0}.fl-row.on{background:var(--accent-soft);border-radius:8px}
.fl-row input[type=checkbox]{width:18px;height:18px;flex:none}
.fl-main{flex:1;min-width:0;display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;border:0;background:transparent;color:var(--ink);cursor:pointer;padding:6px;border-radius:8px;font-family:inherit}
.fl-main:hover{background:var(--sunk)}
.fl-main .fl-ico{grid-row:1/3}
.fl-ico{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;font-size:26px;background:var(--sunk);flex:none}
.fl-thumb{background-size:cover;background-position:center}
.fl-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.fl-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-more{flex:none}
.fl-grid,.fl-recent{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.fl-recent{grid-auto-flow:column;grid-auto-columns:minmax(130px,150px);grid-template-columns:none;overflow-x:auto;padding-bottom:4px}
.fl-tile{display:flex;flex-direction:column;align-items:stretch;gap:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:8px;cursor:pointer;color:var(--ink);font-family:inherit;text-align:left;min-width:0}
.fl-tile:hover{background:var(--sunk)}
.fl-ti{width:100%;height:90px;font-size:40px}
.fl-tname{font-weight:600;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-foot{align-items:center;flex-wrap:wrap;gap:10px}.fl-foot .fl-bar{flex:1;min-width:120px}
.fl-bar{height:8px;border-radius:4px;background:var(--sunk);overflow:hidden}.fl-bar i{display:block;height:100%;background:var(--accent);width:0;transition:width .2s}
.fl-uploads{display:flex;flex-direction:column;gap:6px}.fl-uploads:empty{display:none}
.fl-up{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}.fl-up.done .fl-bar i{background:#2b8445}.fl-up.bad{border-color:#c0261c;color:#c0261c}
.fl-bulk{position:sticky;bottom:10px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--ink);color:var(--bg);border-radius:14px;padding:8px 12px;box-shadow:0 4px 16px rgba(0,0,0,.25)}
.fl-bulk[hidden]{display:none}
.fl.fl-over{outline:3px dashed var(--accent);outline-offset:4px;border-radius:12px}
.fl-pickrow{width:100%}
.fl-ver{flex-wrap:wrap;justify-content:space-between;border-bottom:1px solid var(--line);padding:6px 0}
/* preview */
.fl-pv{position:fixed;inset:0;z-index:1500;background:rgba(10,12,10,.94);display:flex;flex-direction:column;color:#fff;outline:none}
.fl-pvtop{display:flex;align-items:center;gap:8px;padding:10px 12px;flex-wrap:wrap}.fl-pvtop .muted{color:#bbb}
.fl-pvname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-pvx{color:#fff}
.fl-pvstage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 52px 16px;gap:10px;flex-direction:column}
.fl-pvstage img,.fl-pvstage video{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;background:#000}
.fl-pvstage iframe{width:100%;height:100%;border:0;background:#fff;border-radius:6px}
.fl-pvfull{position:absolute;right:60px;bottom:24px}
.fl-pvtext{width:100%;height:100%;overflow:auto;background:#fff;color:#222;padding:14px;border-radius:6px;margin:0;font:13px/1.45 ui-monospace,Menlo,monospace;white-space:pre-wrap}
.fl-pvnone{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.fl-pvbig{font-size:72px}
.fl-pvnav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:64px;border:0;border-radius:10px;background:rgba(255,255,255,.14);color:#fff;font-size:34px;cursor:pointer}.fl-pvprev{left:6px}.fl-pvnext{right:6px}
.fl-full{overflow:auto}
/* public page */
.fl-public .td-pubwrap{max-width:900px}
.fl-pubview img,.fl-pubview video{max-width:100%;border-radius:8px}
@media (max-width:640px){.fl-pvstage{padding:6px 6px 12px}.fl-pvnav{top:auto;bottom:10px;transform:none}.fl-crumb{max-width:150px}}
.fl-pvpdf{width:100%;height:100%;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:10px;padding:4px}
.fl-pvpage{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.5);max-width:100%;height:auto}
/* Teams (our Microsoft Teams) */
.tm{display:grid;grid-template-columns:250px minmax(0,1fr);gap:14px;min-height:min(78vh,820px)}
.tm-nav{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px;overflow:auto;max-height:82vh;position:sticky;top:10px}
.tm-navtop{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.tm-navtop h2{margin:0;font-size:1.15rem}
.tm-navrow{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;border:0;background:transparent;color:var(--ink);text-align:left;padding:7px 10px;border-radius:9px;cursor:pointer;font:500 14px/1.2 inherit;font-family:inherit}
.tm-navrow:hover{background:var(--sunk)}.tm-navrow.on{background:var(--accent-soft);font-weight:700}.tm-navrow.unread{font-weight:800}
.tm-chan{padding-left:30px;color:var(--muted)}.tm-chan.unread,.tm-chan.on{color:var(--ink)}
.tm-team{margin-top:8px}
.tm-teamname{display:flex;align-items:center;gap:6px;width:100%;border:0;background:transparent;color:var(--ink);padding:6px 8px;border-radius:9px;cursor:pointer;font-family:inherit;font-size:14px;text-align:left}.tm-teamname:hover{background:var(--sunk)}
.tm-emoji{font-size:18px}
.tm-count{background:#c0261c;color:#fff;border-radius:10px;padding:1px 7px;font:700 11px/16px system-ui}.tm-count.soft{background:var(--accent)}
.tm-more{margin-top:10px;font-size:14px}.tm-more summary{cursor:pointer;padding:6px 8px;color:var(--muted)}
.tm-none{font-size:.88rem;padding:6px 8px}
.tm-main{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;min-height:0;max-height:82vh;overflow:hidden}
.tm-welcome{margin:12px;border:0}
.tm-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tm-title{display:flex;flex-direction:column;min-width:0;flex:1}.tm-title b{font-size:1.1rem}
.tm-acts{gap:6px}
.tm-back{display:none}
.tm-posts{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px;min-height:120px}
.tm-older{align-self:center}
.tm-empty,.tm-join{text-align:center;padding:18px}
.tm-post{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--bg)}
.tm-post.pinned{border-color:#d9a02b}.tm-post.me{box-shadow:inset 3px 0 0 #c0261c}
.tm-ptop{display:flex;align-items:center;gap:8px;margin-bottom:4px}.tm-ptop .avatar,.tm-ptop .tm-av{width:28px;height:28px;font-size:12px}
.tm-av{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;flex:none}
.tm-pin{color:#b07a00}
.tm-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.tm-text a{color:var(--accent);text-decoration:underline}
.tm-at{background:var(--accent-soft);border-radius:6px;padding:0 3px}
.tm-del{font-style:italic}
.tm-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tm-file{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:6px 10px 6px 6px;cursor:pointer;color:var(--ink);font-family:inherit;max-width:280px}.tm-file span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-fthumb{width:56px;height:42px;border-radius:6px;background-size:cover;background-position:center;flex:none}.tm-fico{font-size:22px}
.tm-react{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center;position:relative}
.tm-rx{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:2px 9px;cursor:pointer;font-size:13px;color:var(--ink)}.tm-rx.on{border-color:var(--accent);background:var(--accent-soft)}
.tm-rxadd{opacity:.6}.tm-rxadd:hover{opacity:1}
.tm-reply{border:0;background:transparent;color:var(--muted);cursor:pointer;font:600 13px/1 inherit;font-family:inherit;padding:4px 6px;border-radius:8px}.tm-reply:hover{background:var(--sunk);color:var(--ink)}
.tm-rxpick{position:absolute;bottom:100%;left:0;display:flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:4px;box-shadow:0 4px 14px rgba(0,0,0,.18);z-index:5}
.tm-rxe{border:0;background:transparent;font-size:20px;cursor:pointer;border-radius:50%;width:34px;height:34px}.tm-rxe:hover{background:var(--sunk)}
.tm-thread{display:block;width:100%;text-align:left;border:0;border-top:1px dashed var(--line);margin-top:8px;padding:8px 2px 2px;background:transparent;color:var(--ink);cursor:pointer;font-family:inherit}
.tm-thread b{color:var(--accent)}.tm-rprev{font-size:.88rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-compose{position:relative;border-top:1px solid var(--line);padding:10px 14px;display:flex;flex-direction:column;gap:6px;background:var(--surface)}
.tm-compose textarea{resize:vertical;min-height:44px;max-height:240px}
.tm-crow{display:flex;justify-content:space-between;align-items:center}
.tm-chips{display:flex;flex-wrap:wrap;gap:6px}.tm-chips:empty{display:none}
.tm-chip{display:inline-flex;align-items:center;gap:4px;background:var(--sunk);border-radius:12px;padding:3px 8px;font-size:13px}
.tm-chipx{border:0;background:transparent;cursor:pointer;color:var(--muted)}
.tm-mpick{position:absolute;bottom:100%;left:14px;right:14px;max-width:360px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.2);padding:4px;z-index:6}
.tm-mpick[hidden]{display:none}
.tm-mopt{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:6px 8px;border-radius:8px;cursor:pointer;color:var(--ink);font-family:inherit;text-align:left}.tm-mopt.on,.tm-mopt:hover{background:var(--accent-soft)}
.tm-mopt .avatar,.tm-mopt .tm-av{width:24px;height:24px;font-size:11px}
.tm-threadbox{position:absolute;inset:0;background:var(--surface);display:flex;flex-direction:column;z-index:3}
.tm-tposts{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.tm-tposts .tm-root{border-width:2px}
.tm-meet{display:flex;gap:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--bg)}.tm-meet.off{opacity:.55}
.tm-cal{flex:none;width:54px;height:58px;border-radius:10px;background:var(--accent);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.tm-cal small{text-transform:uppercase;font-size:11px;font-weight:700}.tm-cal b{font-size:24px}
.tm-minfo{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.tm-minfo>.btn{align-self:flex-start}
.tm-rsvp{gap:6px}
.tm-hit{display:flex;flex-direction:column;gap:2px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:8px 10px;cursor:pointer;color:var(--ink);font-family:inherit;width:100%}
.tm-chrow{justify-content:space-between;border-bottom:1px solid var(--line);padding:4px 0}
.tm-full{overflow:hidden;display:flex;flex-direction:column}.tm-full>div:last-child{flex:1;min-height:0}
.tm-full .tm{min-height:0;height:100%}.tm-full .tm-main,.tm-full .tm-nav{max-height:none}
@media (max-width:760px){
  .tm{grid-template-columns:minmax(0,1fr);min-height:0}
  .tm-nav{position:static;max-height:none}
  .tm.tm-open .tm-nav{display:none}.tm:not(.tm-open) .tm-main{display:none}
  .tm-main{max-height:calc(100dvh - 150px);min-height:calc(100dvh - 150px)}
  .tm-back{display:inline-flex}
  .tm-acts .btn{padding:4px 8px}
}
@media (max-width:760px){.tm-head{gap:6px}.tm-title{flex:1 1 0}.tm-title small:last-child:not(:first-child){display:none}.tm-acts{width:100%;justify-content:flex-start;order:3}.tm-title b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
.tm-crow{margin-top:2px}
/* the menu's desks (fold up) */
button.nav-group{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;cursor:pointer;text-align:left;font-family:var(--body)}
button.nav-group::after{content:"▾";font-size:.8rem;opacity:.6;transition:transform .15s}
button.nav-group[aria-expanded="false"]::after{transform:rotate(-90deg)}
button.nav-group:hover{color:var(--ink)}
#tabs .nav-folded{display:none!important}
#tabs .nav-link{display:flex;align-items:center;gap:10px}
/* Home */
.hm-hello{display:flex;justify-content:space-between;align-items:center}.hm-hello h2{margin:0}.hm-hello p{margin:2px 0 0}
.hm-note{margin:-4px 0 4px;font-size:.88rem}
.hm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.hm-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:14px;cursor:pointer;color:var(--ink);font-family:inherit;text-align:left;min-height:96px}
.hm-tile:hover{background:var(--sunk);border-color:var(--accent)}
.hm-tile .ni{width:26px;height:26px;stroke:var(--accent)}
.hm-lab{font-weight:700;font-size:1rem}
.hm-tile small{font-size:.75rem}
.hm-tile .count{position:absolute;top:10px;right:10px}
.hm-edit{border-style:dashed}.hm-pin{position:absolute;top:8px;right:10px;font-size:16px}
.hm-all{grid-column:1/-1;margin-top:6px}.hm-all summary{cursor:pointer;color:var(--accent);font-weight:600;padding:4px 0}
.hm-needs{display:flex;flex-wrap:wrap;gap:8px}
.hm-need{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:6px 14px 6px 6px;cursor:pointer;color:var(--ink);font-family:inherit}
.hm-need b{background:var(--accent);color:#fff;border-radius:999px;min-width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;font-size:.85rem}
.hm-need.warn b{background:#c0261c}
.hm-recent{display:flex;flex-wrap:wrap;gap:8px}
.hm-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:6px 12px;cursor:pointer;color:var(--ink);font-family:inherit}
.hm-chip .ni{width:16px;height:16px}.hm-chip small,.hm-chip .count{display:none}
.hm-desks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.hm-desk h3{margin:0 0 6px;font-size:.95rem}
.hm-mini{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:6px 8px;border-radius:9px;cursor:pointer;color:var(--ink);font-family:inherit;text-align:left}
.hm-mini:hover{background:var(--sunk)}.hm-mini .ni{width:18px;height:18px}.hm-mini small{display:none}.hm-mini .count{margin-left:auto}
@media (max-width:899px){.sidenav nav.tabs button.nav-group{flex-direction:row;min-height:0;background:none;padding:12px 4px 2px;justify-content:space-between;border-radius:0}}
/* permissions table */
.pm-wrap{overflow-x:auto}
.pm-table{width:100%;border-collapse:collapse;font-size:.92rem}
.pm-table th,.pm-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:center}
.pm-table th:first-child,.pm-table td:first-child{text-align:left}
.pm-table th{position:sticky;top:0;background:var(--surface);font-size:.85rem}
.pm-desk td{background:var(--sunk);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;text-align:left!important}
.pm-table input{width:20px;height:20px}
.pm-na{color:var(--muted)}
/* ---------- video calls (calls-ui.js) ---------- */
.cl-ov{position:fixed;inset:0;z-index:1200;background:#0d1110;color:#fff;display:flex;flex-direction:column;padding:10px 10px calc(10px + env(safe-area-inset-bottom))}
.cl-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 8px}.cl-title{min-width:0}.cl-title b{font:700 15px/1.3 var(--display,system-ui)}.cl-title small{color:#b9c2be}
.cl-head .btn{color:#fff;border-color:#ffffff40}
.cl-grid{flex:1;min-height:0;display:grid;gap:8px;grid-template-columns:1fr;grid-auto-rows:1fr}
.cl-grid[data-n="2"]{grid-template-columns:1fr 1fr}.cl-grid[data-n="3"],.cl-grid[data-n="4"]{grid-template-columns:1fr 1fr}
.cl-grid[data-n="5"],.cl-grid[data-n="6"],.cl-grid[data-n="7"],.cl-grid[data-n="8"],.cl-grid[data-n="9"]{grid-template-columns:repeat(3,1fr)}
@media (max-width:700px){.cl-grid[data-n="2"]{grid-template-columns:1fr}.cl-grid[data-n="5"],.cl-grid[data-n="6"],.cl-grid[data-n="7"],.cl-grid[data-n="8"],.cl-grid[data-n="9"]{grid-template-columns:1fr 1fr}}
.cl-tile{position:relative;background:#1f2725;border-radius:14px;overflow:hidden;min-height:0;display:flex;align-items:center;justify-content:center}
.cl-tile video{width:100%;height:100%;object-fit:cover;background:#1f2725}.cl-tile video.mirror{transform:scaleX(-1)}
.cl-tile.nocam video{visibility:hidden}.cl-avatar{position:absolute;width:72px;height:72px;border-radius:50%;background:var(--accent,#2f7d4f);display:none;align-items:center;justify-content:center;font:700 26px system-ui}
.cl-tile.nocam .cl-avatar{display:flex}.cl-tile.wait{outline:2px dashed #ffffff30;outline-offset:-2px}
.cl-name{position:absolute;left:8px;bottom:8px;background:#000a;border-radius:8px;padding:3px 8px;font:600 12px system-ui}.cl-tile.muted .cl-name::after{content:" 🔇"}
.cl-bar{display:flex;justify-content:center;gap:12px;padding-top:10px}
.cl-btn{width:54px;height:54px;border-radius:50%;border:0;background:#2e3835;color:#fff;font-size:22px;cursor:pointer}.cl-btn.off{background:#5a2420}.cl-btn.on{background:var(--accent,#2f7d4f)}
.cl-btn.leave{background:#c0261c;transform:rotate(135deg)}.cl-btn:focus-visible{outline:3px solid #fff;outline-offset:2px}
.cl-ov.cl-mini{inset:auto 12px calc(80px + env(safe-area-inset-bottom)) auto;width:min(320px,80vw);height:260px;border-radius:16px;box-shadow:0 10px 40px #0008;padding:6px}
.cl-ov.cl-mini .cl-bar{gap:6px;padding-top:6px}.cl-ov.cl-mini .cl-btn{width:38px;height:38px;font-size:16px}.cl-ov.cl-mini .cl-title small{display:none}
.tm-live{color:#c0261c;font-weight:700}.tm-livebar{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--accent-soft);border-radius:10px;padding:8px 12px;margin:6px 0}
/* ---------- Photo Studio (studio-ui.js) ---------- */
.ps-home .ps-start{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.ps-big{border:1px dashed var(--line);border-radius:14px;background:var(--sunk);padding:22px 12px;font:600 15px/1.3 var(--body,system-ui);color:var(--ink);cursor:pointer}.ps-big:hover{border-color:var(--accent)}
.ps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.ps-card{display:flex;flex-direction:column;gap:4px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:6px;cursor:pointer;color:var(--ink)}
.ps-thumb{aspect-ratio:4/3;border-radius:8px;background:var(--sunk) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:30px}
.ps-cname{font:600 13px/1.25 var(--body,system-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st{--ps-bg:#2a2f2d;display:flex;flex-direction:column;height:calc(100vh - 140px);min-height:520px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.ps-full .st{height:100%;min-height:0;border:0;border-radius:0}.ps-full{padding:0!important;display:flex;flex-direction:column}.ps-host{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}.ps-host>.ps-home{padding:12px}
.ps-fullx{position:fixed;top:8px;right:10px;z-index:3}.ps-full .ps-top{padding-right:96px}
.ps-top{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ps-title{flex:1;min-width:120px;font:600 15px var(--body,system-ui);border:1px solid transparent;background:transparent;color:var(--ink);padding:4px 6px;border-radius:6px}.ps-title:focus{border-color:var(--line);background:var(--bg)}
.ps-zoom{min-width:44px;text-align:center;color:var(--muted)}
.ps-opts{display:flex;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid var(--line);overflow-x:auto;min-height:44px;flex-wrap:wrap;background:var(--sunk)}
.ps-optname{font:700 13px var(--body,system-ui);white-space:nowrap}
.ps-opt{display:flex;align-items:center;gap:6px;font-size:13px;white-space:nowrap}.ps-opt input[type=range]{width:110px}
.ps-seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.ps-seg button{border:0;background:var(--surface);padding:5px 9px;font-size:13px;color:var(--ink);cursor:pointer}.ps-seg button.on{background:var(--accent);color:var(--accent-ink,#fff)}
.ps-mid{flex:1;min-height:0;display:flex}
.ps-tools{display:flex;flex-direction:column;gap:2px;padding:6px 4px;border-right:1px solid var(--line);overflow-y:auto;background:var(--surface)}
.ps-tool{width:40px;height:38px;border:0;border-radius:8px;background:transparent;font-size:18px;cursor:pointer;color:var(--ink)}.ps-tool:hover{background:var(--sunk)}.ps-tool.on{background:var(--accent);color:var(--accent-ink,#fff)}
.ps-sw{position:relative;width:40px;height:52px;margin-top:6px}.ps-sw input{position:absolute;width:28px;height:28px;padding:0;border:2px solid var(--surface);border-radius:6px;cursor:pointer}.ps-sw input:first-child{left:0;top:0;z-index:1}.ps-sw input:nth-child(2){left:12px;top:14px}.ps-swap{position:absolute;left:0;bottom:-6px;border:0;background:none;font-size:12px;cursor:pointer;color:var(--muted)}
.ps-stage{position:relative;flex:1;min-width:0;overflow:hidden;background:var(--ps-bg)}.ps-canvas{display:block;outline:none}
.ps-ring{position:absolute;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0008;pointer-events:none}
.ps-side{width:300px;border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:var(--surface)}
.ps-tabs{display:flex;flex-wrap:wrap;gap:2px;padding:6px;border-bottom:1px solid var(--line)}.ps-tab{flex:1;border:0;border-radius:7px;padding:6px 4px;font:600 12px var(--body,system-ui);background:transparent;color:var(--ink);cursor:pointer;white-space:nowrap}.ps-tab.on{background:var(--accent-soft)}
.ps-pbody{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}
.ps-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ps-apply{position:sticky;bottom:-10px;background:var(--surface);padding:8px 0}
.ps-hint{font-size:12.5px;margin:0}
.ps-sl{display:grid;grid-template-columns:96px 1fr 34px;align-items:center;gap:6px;font-size:13px}.ps-sl small{text-align:right;color:var(--muted)}.ps-sl input{width:100%}
.ps-group{border:1px solid var(--line);border-radius:10px;padding:6px 8px}.ps-group>summary{cursor:pointer;font:600 13.5px var(--body,system-ui);padding:3px 0}.ps-group[open]>summary{margin-bottom:6px}
.ps-layers{display:flex;flex-direction:column;gap:3px;max-height:280px;overflow-y:auto}
.ps-layer{display:flex;align-items:center;gap:6px;padding:4px;border-radius:8px;border:1px solid transparent;cursor:pointer}.ps-layer.on{border-color:var(--accent);background:var(--accent-soft)}
.ps-lthumb{width:44px;height:44px;border-radius:5px;background:repeating-conic-gradient(#ddd 0 25%,#fff 0 50%) 0 0/10px 10px}.ps-lname{flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-eye{border:0;background:none;cursor:pointer;font-size:15px;width:26px;color:var(--ink)}
.ps-looks{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ps-look{border:2px solid transparent;border-radius:8px;background:none;padding:2px;cursor:pointer;display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--ink)}.ps-look.on{border-color:var(--accent)}.ps-lookimg{width:100%;aspect-ratio:1;object-fit:cover;border-radius:5px}
.ps-curve{width:100%;max-width:220px;aspect-ratio:1;background:#1f2423;border-radius:6px;touch-action:none}
.ps-aistat{border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.ps-aistat.on{background:#e5f4e4;color:#1d4d22}.ps-aistat.off{background:var(--sunk)}
.ps-aicard{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.ps-aicard p{margin:0;font-size:12.5px}
.ps-chips{display:flex;flex-wrap:wrap;gap:4px}.ps-chip{border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:3px 9px;font-size:12px;cursor:pointer;color:var(--ink)}
.ps-hist{display:flex;flex-direction:column;gap:2px}.ps-hist .bad{color:var(--bad,#c0261c)}
.ps-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.ps-busy{position:fixed;inset:0;z-index:1300;background:#0006;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff}
.ps-spin{width:42px;height:42px;border-radius:50%;border:4px solid #fff4;border-top-color:#fff;animation:ps-spin 0.9s linear infinite}@keyframes ps-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ps-spin{animation-duration:3s}}
@media (max-width:860px){
  .st{height:calc(100dvh - 150px)}
  .ps-mid{flex-direction:column}
  .ps-tools{flex-direction:row;order:2;border-right:0;border-top:1px solid var(--line);overflow-x:auto;overflow-y:hidden;padding:4px;flex:none}
  .ps-tool{flex:none}.ps-sw{flex:none;height:40px;margin:0 4px}
  .ps-side{order:3;width:auto;border-left:0;border-top:1px solid var(--line);max-height:42%;flex:none}
  .ps-stage{order:1;min-height:220px}
  .ps-top .btn{padding:4px 7px}.ps-opts{flex-wrap:nowrap}
}
@media (max-width:860px){.ps-lbl{display:none}.ps-top{gap:3px}.ps-title{min-width:80px}.ps-zoom{min-width:36px}}
/* the invite box (Settings → People) */
.inv-box{max-width:620px}.inv-msg{width:100%;font:14px/1.45 var(--body,system-ui);background:var(--sunk);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px}
.inv-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.inv-tip{font-size:12.5px;margin-top:8px}
/* Paint's colour palette */
.ps-pal{display:flex;flex-wrap:wrap;gap:3px;padding:5px 10px;border-bottom:1px solid var(--line);background:var(--surface)}
.ps-palc{width:22px;height:22px;border-radius:5px;border:1px solid #0003;cursor:pointer;padding:0}.ps-palc:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* File converter (convert-ui.js) */
.cv-tasks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.cv-task{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px;cursor:pointer;color:var(--ink)}.cv-task.on{border-color:var(--accent);background:var(--accent-soft)}.cv-tico{font-size:24px}
.cv-drop{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:2px dashed var(--line);border-radius:12px;padding:16px;background:var(--sunk)}.cv-drop.on{border-color:var(--accent)}.cv-drop b{flex-basis:100%}
.cv-files{display:flex;flex-direction:column;gap:3px}.cv-file{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:8px;background:var(--surface);border:1px solid var(--line)}.cv-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.cv-ico{font-size:18px}
.cv-row{display:flex;flex-wrap:wrap;gap:8px}
.cv-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.cv-page{border:1px solid var(--line);border-radius:10px;padding:6px;background:var(--surface);display:flex;flex-direction:column;gap:4px;cursor:grab}
.cv-thumb{height:150px;display:flex;align-items:center;justify-content:center;background:var(--sunk);border-radius:6px;overflow:hidden}.cv-thumb canvas{max-width:100%;max-height:140px;box-shadow:0 1px 4px #0003;transition:transform .2s}
.cv-plabel{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cv-pbar{display:flex;justify-content:space-between}
.cv-more{font-size:13px}
/* AI Staff: a bigger map, the staff sidebar, full screen */
.staff .st-body{grid-template-columns:minmax(0,2.3fr) minmax(290px,370px)}
@media (max-width:900px){.staff .st-body{grid-template-columns:1fr}}
.st-side{display:flex;flex-direction:column;gap:8px;max-height:min(82vh,900px);position:sticky;top:10px;padding:10px}
.st-rhead{display:flex;align-items:baseline;justify-content:space-between}.st-rhead h3{margin:0}
.st-rfind{width:100%}
.st-rfilt{display:flex;gap:4px;flex-wrap:wrap}.st-rfilt button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:12.5px;cursor:pointer}.st-rfilt button.on{background:var(--accent);color:var(--accent-ink,#fff);border-color:var(--accent)}
.st-roster{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding-right:2px}
.st-ritem{border:1px solid var(--line);border-radius:12px;background:var(--surface)}.st-ritem.sel{border-color:var(--accent)}.st-ritem.open{box-shadow:0 2px 10px #0001}
.st-rrow{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;padding:6px 8px;cursor:pointer;text-align:left;color:var(--ink);font:inherit}
.st-rrow .st-face{width:34px;height:34px;flex:none;border-radius:50%}
.st-rinfo{flex:1;min-width:0;display:flex;flex-direction:column}.st-rinfo b{font-size:14px}.st-rinfo small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-rdot{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:0 0 0 2px var(--surface)}
.st-rlvl{font:700 11px/1 var(--body,system-ui);background:var(--sunk);border-radius:999px;padding:3px 7px;color:var(--muted)}.st-rcaret{color:var(--muted);width:12px}
.st-expand{padding:4px 12px 12px;border-top:1px solid var(--line);cursor:default}
.st-acts{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.st-tag.ping{animation:st-ping 0.8s ease-in-out 3;z-index:3}@keyframes st-ping{50%{transform:translate(-50%,-100%) scale(1.35);box-shadow:0 0 0 6px #ffcc0099}}
@media (prefers-reduced-motion:reduce){.st-tag.ping{animation:none;outline:3px solid #ffcc00}}
.st-fsbtn{font-weight:700}
.staff.st-fs .st-body{position:fixed;inset:0;z-index:1100;background:var(--bg);padding:10px;margin:0;grid-template-columns:minmax(0,1fr) 360px;height:100vh;height:100dvh;align-items:stretch}
.staff.st-fs .st-left{display:flex;flex-direction:column;min-height:0}.staff.st-fs .st-map{flex:1;min-height:0;display:flex}
.staff.st-fs .st-map canvas{height:100%;width:100%;object-fit:contain;aspect-ratio:auto!important}
.staff.st-fs .st-side{max-height:none;height:100%;position:static}
@media (max-width:900px){.staff.st-fs .st-body{grid-template-columns:1fr;grid-template-rows:58% 42%}.staff.st-fs .st-legend{display:none}}
/* Messages: emoji, reactions, stickers and memes (chatfun.js) */
.c-tool{width:36px;height:42px;border:0;background:none;font-size:22px;cursor:pointer;flex:none;border-radius:50%;padding:0}.c-tool:hover{background:var(--sunk)}
@media (max-width:420px){.c-tool{width:30px;font-size:19px}}
.c-rxbtn{position:absolute;top:-10px;right:-10px;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:14px;cursor:pointer;opacity:0;transition:opacity .15s}
.c-msg.mine .c-rxbtn{right:auto;left:-10px}
.c-bubble:hover .c-rxbtn,.c-rxbtn:focus-visible{opacity:1}@media (hover:none){.c-rxbtn{opacity:.75}}
.c-rx{display:flex;flex-wrap:wrap;gap:3px;margin-top:2px}
.c-rxchip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:1px 7px;font-size:13px;cursor:pointer}.c-rxchip.on{border-color:var(--accent);background:var(--accent-soft)}
.c-msg{position:relative}.c-rxbar{position:absolute;z-index:5;top:-44px;left:44px;display:flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px 6px;box-shadow:0 6px 18px #0003}
.c-msg.mine .c-rxbar{left:auto;right:8px}.c-rxq{border:0;background:none;font-size:22px;cursor:pointer;border-radius:50%;width:36px;height:36px}.c-rxq:hover{background:var(--sunk);transform:scale(1.15)}.c-rxq.more{font-size:18px;color:var(--muted)}
.cf-emoji{position:fixed;z-index:1400;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 36px #0004;display:flex;flex-direction:column;overflow:hidden}
.cf-ehead{display:flex;gap:6px;padding:8px}.cf-ehead input{flex:1;min-width:0}.cf-x{border:0;background:none;cursor:pointer;color:var(--muted);font-size:16px}
.cf-etabs{display:flex;gap:2px;padding:0 8px 6px;border-bottom:1px solid var(--line)}.cf-etab{flex:1;border:0;background:none;font-size:18px;padding:4px;border-radius:8px;cursor:pointer}.cf-etab.on{background:var(--accent-soft)}
.cf-egrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:2px;padding:8px;overflow-y:auto;min-height:0;flex:1}
.cf-e{border:0;background:none;font-size:24px;height:40px;border-radius:8px;cursor:pointer}.cf-e:hover,.cf-e:focus-visible{background:var(--sunk)}.cf-none{grid-column:1/-1;font-size:13px}
.cf-mtabs{display:flex;gap:4px;padding:6px 12px;border-bottom:1px solid var(--line)}.cf-mtab{border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);padding:5px 12px;cursor:pointer;font:600 13px var(--body,system-ui)}.cf-mtab.on{background:var(--accent);color:var(--accent-ink,#fff);border-color:var(--accent)}
.cf-stickers{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.cf-sbtn{border:0;background:none;padding:0;cursor:pointer;border-radius:16px}.cf-sbtn:hover{transform:scale(1.04)}.cf-sticker{width:100%;height:auto;display:block}
.cf-pv{width:100%;max-width:420px;height:auto;border-radius:10px;display:block;margin:0 auto 8px;box-shadow:0 2px 10px #0003}
.cf-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}.cf-bgs{display:flex;gap:4px}.cf-bg{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);cursor:pointer}
.cf-ideas{display:flex;flex-direction:column;gap:4px;margin:6px 0}.cf-idea{text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:6px 10px;cursor:pointer;font-size:13px}
/* ---------- Tasks (tasks-ui.js) ---------- */
.tk{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;align-items:start}
.tq-nav{display:flex;flex-direction:column;gap:3px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px;position:sticky;top:10px}
.tq-navtop{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.tq-navtop h2{margin:0;font-size:18px}
.tq-navrow{display:flex;align-items:center;justify-content:space-between;gap:6px;border:0;background:none;border-radius:9px;padding:7px 9px;text-align:left;cursor:pointer;color:var(--ink);font:500 14px var(--body,system-ui)}.tq-navrow:hover{background:var(--sunk)}.tq-navrow.on{background:var(--accent-soft);font-weight:700}
.tq-count{background:var(--accent);color:var(--accent-ink,#fff);border-radius:10px;padding:1px 7px;font:700 11px/16px system-ui}.tq-count.soft{background:var(--sunk);color:var(--muted)}.tq-count.bad{background:#c0261c;color:#fff}
.tq-none,.tq-empty{font-size:13px}.tq-main{min-width:0;display:flex;flex-direction:column;gap:10px}
.tq-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tq-head h2{margin:0}.tq-title{flex:1;min-width:160px;display:flex;flex-direction:column}.tq-back{display:none}
.tq-seg{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.tq-seg button{border:0;background:var(--surface);color:var(--ink);padding:6px 12px;cursor:pointer;font:600 13px var(--body,system-ui)}.tq-seg button.on{background:var(--accent);color:var(--accent-ink,#fff)}
.tq-acts{display:flex;gap:6px}.tq-filters{display:flex;flex-wrap:wrap;gap:6px}.tq-filters input{flex:1;min-width:140px}
.tq-board{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;align-items:flex-start;min-height:300px}
.tq-col{flex:0 0 272px;background:var(--sunk);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px;border:2px solid transparent}.tq-col.over{border-color:var(--accent)}
.tq-colhead{display:flex;align-items:center;gap:6px;padding:2px 4px;border-top:4px solid transparent;border-radius:4px}.tq-colhead b{flex:1;font-size:14px}.tq-colmenu{border:0;background:none;cursor:pointer;color:var(--muted);font-size:16px}
.tq-addcard{border:1px dashed var(--line);background:var(--surface);color:var(--muted);border-radius:9px;padding:6px;cursor:pointer;font-size:13px;text-align:left}.tq-addcard:hover{color:var(--ink);border-color:var(--accent)}
.tq-cards{display:flex;flex-direction:column;gap:6px;min-height:20px}
.tq-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 9px;cursor:pointer;display:flex;flex-direction:column;gap:5px;box-shadow:0 1px 2px #0001}.tq-card:hover{border-color:var(--accent)}.tq-card.drag{opacity:.45}.tq-card.done .tq-ctitle{text-decoration:line-through;color:var(--muted)}.tq-card.late{border-left:4px solid #c0261c}
.tq-ctop{display:flex;gap:7px;align-items:flex-start}.tq-ctitle{font:600 14px/1.3 var(--body,system-ui)}.tq-job{font-size:12px}
.tq-labels{display:flex;flex-wrap:wrap;gap:3px}.tq-label{border-radius:5px;padding:1px 7px;font:700 11px/16px system-ui;color:#fff;border:2px solid transparent;cursor:default}
.tq-cmeta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:12px;color:var(--muted)}
.tq-due{font-size:12px}.tq-due.late{color:#c0261c;font-weight:700}.tq-due.today{color:var(--accent);font-weight:700}
.tq-whos{display:flex;margin-left:auto}.tq-av{width:24px;height:24px;border-radius:50%;color:#fff;font:700 10px/24px system-ui;text-align:center;flex:none;border:2px solid var(--surface);margin-left:-6px}.tq-whos .tq-av:first-child{margin-left:0}
.tq-check{width:20px;height:20px;flex:none;border-radius:50%;border:2px solid var(--muted);background:var(--surface);cursor:pointer;color:#fff;font:700 12px/16px system-ui;padding:0}.tq-check:hover{border-color:var(--accent)}.tq-check.on{background:#43a047;border-color:#43a047}
.tq-showdone{border:0;background:none;color:var(--muted);font-size:12px;cursor:pointer;text-align:left;padding:2px 4px}
.tq-newcol{background:none;border:2px dashed var(--line);justify-content:center}
.tq-mine{display:flex;flex-direction:column;gap:12px}.tq-group h3,.tq-group summary{margin:0 0 6px;font-size:15px;cursor:default}.tq-group.late h3{color:#c0261c}
.tq-row{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:7px 10px;margin-bottom:5px}.tq-row.done .tq-rtitle{text-decoration:line-through;color:var(--muted)}.tq-row.late{border-left:4px solid #c0261c}
.tq-rtitle{flex:1;min-width:0;border:0;background:none;text-align:left;cursor:pointer;color:var(--ink);font:600 14px var(--body,system-ui);overflow:hidden;text-overflow:ellipsis}.tq-rmeta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.tq-tablewrap{overflow-x:auto}.tq-table{width:100%;border-collapse:collapse;font-size:14px}.tq-table th,.tq-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.tq-table tr.done td{color:var(--muted)}.tq-table tr.late td:nth-child(4){color:#c0261c}
.tq-sort{border:0;background:none;font:700 12px var(--body,system-ui);color:var(--muted);cursor:pointer;text-transform:uppercase;letter-spacing:.03em;padding:0}
.tq-calhead{display:flex;align-items:center;gap:8px;margin-bottom:6px}.tq-calhead b{min-width:150px;text-align:center}
.tq-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.tq-caldow{font:700 11px system-ui;color:var(--muted);text-align:center;padding:3px}
.tq-calday{min-height:92px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:3px;display:flex;flex-direction:column;gap:2px;overflow:hidden}.tq-calday.out{opacity:.5}.tq-calday.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.tq-calnum{font-size:11px;color:var(--muted)}.tq-calitem{border:0;border-radius:5px;background:var(--accent-soft);color:var(--ink);font-size:11.5px;text-align:left;padding:2px 5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tq-calitem.done{text-decoration:line-through;opacity:.6}.tq-calitem.late{background:#fbebeb;color:#9b1c13}
.tq-charts{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.tq-chart h3{margin:0 0 8px;font-size:15px}
.tq-bar{display:grid;grid-template-columns:110px 1fr 70px;gap:8px;align-items:center;font-size:13px;margin:4px 0}.tq-barl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tq-bart{height:12px;background:var(--sunk);border-radius:6px;overflow:hidden}.tq-bart i{display:block;height:100%;background:var(--accent);border-radius:6px}.tq-bar b{text-align:right;font-size:12px}
.tq-people{display:flex;flex-wrap:wrap;gap:5px}.tq-pick{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:3px 9px 3px 4px;font-size:13px;cursor:pointer;background:var(--surface)}.tq-pick .tq-av{margin:0;width:22px;height:22px;line-height:22px}
.tq-detail-sheet{max-width:640px}.tq-dtitle{width:100%;font:700 19px/1.3 var(--display,system-ui);border:1px solid transparent;background:transparent;color:var(--ink);resize:none;padding:4px}.tq-dtitle:focus{border-color:var(--line);background:var(--bg)}
.tq-dgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}@media (max-width:560px){.tq-dgrid{grid-template-columns:1fr 1fr}}
.tq-dacts{margin:6px 0}.tq-labpick{display:flex;flex-wrap:wrap;gap:5px}.tq-labpick .tq-label{cursor:pointer;color:var(--ink)}.tq-labpick .tq-label.on{color:#fff}
.tq-notes{width:100%}.tq-checklist{display:flex;flex-direction:column;gap:4px}.tq-ckrow{display:flex;align-items:center;gap:6px}.tq-ckrow input[type=text],.tq-ckrow input:not([type]){flex:1}
.tq-files{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tq-file{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:8px;padding:2px 4px}.tq-flink{border:0;background:none;color:var(--accent);cursor:pointer;font-size:13px;text-decoration:none}
.tq-comments{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}.tq-comment{display:flex;gap:8px}.tq-comment .tq-av{margin:0;width:28px;height:28px;line-height:28px}.tq-comment p{margin:2px 0 0;white-space:pre-wrap}
.tq-labedit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.tq-labrow{display:flex;align-items:center;gap:6px}.tq-labrow i{width:16px;height:16px;border-radius:4px;flex:none}.tq-labrow input{flex:1;min-width:0}
@media (max-width:820px){.tk{grid-template-columns:1fr}.tq-nav{position:static}.tk.tq-open .tq-nav{display:none}.tk:not(.tq-open) .tq-main{display:none}.tq-back{display:inline-flex}.tq-col{flex-basis:84vw}}
.tq-filters select,.tq-filters input{width:auto;flex:0 1 auto;min-width:0}.tq-filters input{flex:1 1 180px}
/* 👕 Buds Threads (merch store) — prefix mr- */
.mr{display:flex;flex-direction:column;gap:14px}
.mr-head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-start}
.mr-head h2{margin:0 0 4px}.mr-head p{margin:0;max-width:62ch}
.mr-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mr-note{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);border-left:4px solid #d9822b;border-radius:10px;padding:10px 12px}
.mr-tabs,.mr-tyrow{display:flex;flex-wrap:wrap;gap:6px}
.mr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.mr-none{grid-column:1/-1}
.mr-card{display:flex;flex-direction:column;text-align:left;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);overflow:hidden;cursor:pointer;font:inherit}
.mr-card:hover,.mr-card:focus-visible{border-color:var(--ink)}
.mr-pic{aspect-ratio:1;display:grid;place-items:center;overflow:hidden}
.mr-pic img{width:88%;height:88%;object-fit:contain;cursor:zoom-in}
.mr-pic.big{border-radius:12px;width:100%;max-width:340px}
.mr-empty{font:700 1.05rem var(--display,inherit);text-align:center;padding:14px;color:#6b6b6b}
.mr-cbody{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px}
.mr-slogan{color:var(--muted,#777);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mr-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mr-badge{font-size:.75rem;padding:2px 8px;border-radius:999px;border:1px solid var(--line)}
.mr-badge.ok{background:#e4f4e6;color:#1f6b2a;border-color:#bfe2c4}.mr-badge.warn{background:#fdf1dc;color:#8a5a00;border-color:#f0d39a}.mr-badge.bad{background:#fbe3e1;color:#9b2a20;border-color:#efbcb6}
.mr-type{font-size:.95rem}
.mr-sheet.wide{max-width:860px}
.mr-top{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:16px;align-items:start}
@media (max-width:640px){.mr-top{grid-template-columns:1fr}}
.mr-side{display:flex;flex-direction:column;gap:10px}
.mr-reed{display:flex;flex-direction:column;gap:6px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px}
.mr-reed p{margin:0}
.mr-why{margin:0}
.mr-src{font-size:.85rem}.mr-src a{display:block;margin:4px 0;word-break:break-word}
.mr-box{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:12px;display:flex;flex-direction:column;gap:8px}
.mr-box summary{cursor:pointer;font-weight:600}
.mr-prod{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px}
.mr-prod>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:180px}
.mr-mocks{display:flex;gap:6px;flex-wrap:wrap}.mr-mocks img{width:72px;height:72px;object-fit:cover;border-radius:8px;cursor:zoom-in;background:#eee}
.mr-next{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}
.mr-check{display:flex;gap:6px;align-items:flex-start;margin:6px 0}
.mr-tw{display:flex;flex-direction:column;gap:6px}
.mr-cols{display:flex;flex-wrap:wrap;gap:8px}.mr-cols input{width:44px;height:36px;padding:0;border:1px solid var(--line);border-radius:8px}
.mr-steps{padding-left:20px;display:flex;flex-direction:column;gap:6px}
.mr-warn{background:#fdf1dc;color:#6b4500;border-radius:8px;padding:8px 10px}
.mr-types{display:flex;flex-direction:column;gap:6px;margin:6px 0 12px}
.mr-ptype{border:1px solid var(--line);border-radius:10px;padding:8px 10px}.mr-ptype summary{cursor:pointer}
.mr-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-bottom:12px}
.mr-tile{border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:2px}.mr-tile b{font-size:1.2rem}
.mr-table{width:100%;border-collapse:collapse;margin-bottom:8px}.mr-table th,.mr-table td{text-align:left;padding:6px;border-bottom:1px solid var(--line)}
@media (prefers-color-scheme:dark){.mr-badge.ok{background:#173d1d;color:#bfe8c6}.mr-badge.warn{background:#3d2e0c;color:#f3d79c}.mr-badge.bad{background:#45160f;color:#f4c2bb}.mr-warn{background:#3d2e0c;color:#f3d79c}}
.mr-co{display:block;margin:-2px 0 6px;color:var(--muted,#777);font-style:italic}
/* 🔑 forgot password — prefix fg- */
.fg-link{display:block;margin:10px auto 0;font-size:.9rem}
.fg-box{display:flex;flex-direction:column;gap:10px;margin-top:12px;text-align:left}
.fg-box h2{margin:0;font-size:1.15rem}.fg-box p{margin:0}
.fg-msg.ok{color:var(--good,#2b6a4f)}.fg-msg.err{color:var(--bad,#b3261e)}
.fg-owner{font-size:.85rem}
.login .fg-box{width:min(360px,100%);margin:12px auto 0}
.an-list{margin:0 0 10px;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.an-box{max-width:520px}
/* 👋 buddy tab (Hazel and Ash tucked away) — prefix bd- */
.bd-tab{position:fixed;right:0;top:42%;z-index:60;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 5px 8px 7px;border:1px solid var(--line);border-right:0;border-radius:14px 0 0 14px;background:var(--surface);box-shadow:0 4px 14px rgb(0 0 0 / .18);cursor:pointer;transition:padding .15s}
.bd-tab:hover,.bd-tab:focus-visible{padding-left:11px}
.bd-tab canvas{border-radius:50%;image-rendering:pixelated;display:block}
.bd-wave{font-size:14px;line-height:1}
.bd-pop{position:fixed;right:52px;top:calc(42% - 20px);z-index:61;display:flex;flex-direction:column;gap:8px;min-width:210px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 10px 30px rgb(0 0 0 / .22)}
.bd-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-align:left}
.bd-row canvas{border-radius:50%;image-rendering:pixelated}
@media print{.bd-tab,.bd-pop{display:none}}
/* arcade levels (11 Ball) */
.g-levels{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;pointer-events:auto;margin-top:4px}
.g-level{font:700 .85rem var(--body,system-ui);padding:6px 12px;border-radius:999px;border:1px solid rgb(255 255 255 / .5);background:rgb(255 255 255 / .1);color:#fff;cursor:pointer}
.g-level.on{background:#ffd84a;color:#1d1510;border-color:#ffd84a}
.g-level-desc{max-width:300px;opacity:.9}
/* 🎓 game tutorials — prefix tut- */
.tut-ov{position:fixed;inset:0;z-index:1100;background:rgb(10 8 6 / .62);display:flex;align-items:center;justify-content:center;padding:16px}
.tut-box{width:min(400px,100%);background:var(--surface);color:var(--ink);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 50px rgb(0 0 0 / .4)}
.tut-head{display:flex;flex-direction:column;gap:2px}.tut-head b{font-family:Bitter,Georgia,serif;font-size:1.25rem}
.tut-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;min-height:170px;justify-content:center}
.tut-card h3{margin:0;font-size:1.1rem}.tut-card p{margin:0;line-height:1.45}
.tut-ico{font-size:2.6rem;line-height:1}
.tut-dots{display:flex;gap:6px;justify-content:center}.tut-dots span{width:8px;height:8px;border-radius:50%;background:var(--line)}.tut-dots span.on{background:var(--accent,#a8481c)}
.tut-nav{display:flex;gap:8px;justify-content:space-between}.tut-nav .btn{flex:1}
.tut-skip{align-self:center;font-size:.9rem}
.tut-opt{display:flex;gap:6px;align-items:center;font-size:.82rem;color:var(--muted,#777);justify-content:center}
.tut-btn{position:relative}.tut-btn.tut-new::after{content:"";position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:#ff5a4a}
/* 💬 talk to the AI staff — prefix tk2- */
.tk2-box{max-width:620px}
.tk2-face{width:36px;height:36px;border-radius:50%;image-rendering:pixelated}
.tk2-body{display:flex;flex-direction:column;gap:12px}
.tk2-log{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto;padding:4px}
.tk2-msg{max-width:85%;padding:8px 12px;border-radius:14px;display:flex;flex-direction:column;gap:3px}
.tk2-msg p{margin:0;white-space:pre-wrap}.tk2-msg time{font-size:.7rem;opacity:.65}
.tk2-msg.me{align-self:flex-end;background:var(--accent,#a8481c);color:#fff;border-bottom-right-radius:4px}
.tk2-msg.them{align-self:flex-start;background:var(--bg);border:1px solid var(--line);border-bottom-left-radius:4px}
.tk2-note{font-weight:600}
.tk2-form{display:flex;gap:8px;align-items:flex-end}.tk2-form textarea{flex:1}
.tk2-rules summary{cursor:pointer;font-weight:700}
.tk2-rule{display:grid;grid-template-columns:1fr auto auto;gap:4px 8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.tk2-rule small{grid-column:1/2}
.tk2-add{display:flex;gap:8px;margin-top:8px}.tk2-add input{flex:1}
.tk2-empty{text-align:center}
/* 🗂️ Nicole — prefix iv- */
.iv{display:flex;flex-direction:column;gap:14px}
.iv-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.iv-head h2{margin:0}.iv-head p{margin:2px 0 0;max-width:60ch}
.iv-head>div:nth-child(2){flex:1;min-width:220px}
.iv-face{border-radius:50%;image-rendering:pixelated;flex:none}
.iv-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.iv-headline{font-weight:700;margin:0}
.iv-first{margin:4px 0 6px;padding-left:22px;display:flex;flex-direction:column;gap:4px}
.iv-sec summary{cursor:pointer;font-weight:600}.iv-sec ul{margin:6px 0;padding-left:20px}
.iv-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start}
.iv-note{border-top:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:4px}.iv-note p{margin:0;white-space:pre-wrap}
.iv-note.urgent{border-left:4px solid #e0584a;padding-left:10px}
.iv-note.done{opacity:.7}
.iv-answer{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.iv-fu{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:8px 0}
.iv-fu>div{display:flex;flex-direction:column}.iv-fu.late span{color:#c0392b;font-weight:600}
.iv-fu input[type=date]{width:auto}
.iv-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.iv-urg{display:flex;gap:6px;align-items:center}
.iv-ivysays{display:flex;gap:10px;align-items:flex-start;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px}.iv-ivysays p{margin:0}
.iv-done summary{cursor:pointer}
.tk2-msg.other{align-self:flex-end;background:#6b4a2e;color:#fff;border-bottom-right-radius:4px}.tk2-who{font-weight:700;opacity:.85}
.tk2-coaches summary{cursor:pointer;font-weight:600;margin-top:10px}.tk2-people{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto;margin:6px 0}
.sh-reports .sh-report{border-top:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:4px}.sh-report p{margin:0;white-space:pre-wrap}
.sh-mackfix{align-items:center;gap:6px;margin-top:4px}
.iv-rep .iv-acts{flex-wrap:wrap;align-items:center}.iv-rep select{max-width:100%}.iv-pre{white-space:pre-wrap}.iv-reports .panel-head small{margin-left:auto}
.wk-tip{position:fixed;z-index:2460;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(440px,calc(100vw - 32px));display:flex;gap:10px;align-items:center;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:14px;font-size:.92rem;line-height:1.35;box-shadow:0 8px 24px rgba(0,0,0,.25)}.wk-tip span{flex:1}.wk-tip button{background:transparent;border:1px solid currentColor;color:inherit;border-radius:99px;padding:4px 12px;font-weight:700;cursor:pointer}
.c-ptt.on{background:#e0584a;color:#fff;border-radius:99px;animation:cptt 1s ease-in-out infinite}@keyframes cptt{50%{box-shadow:0 0 0 6px rgb(224 88 74 / .25)}}
.c-ptt{touch-action:none;user-select:none;-webkit-user-select:none}
.c-ptt-pill{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;margin-bottom:6px;border-radius:12px;background:rgb(224 88 74 / .1);font-size:.9rem}.c-ptt-dot{width:10px;height:10px;border-radius:50%;background:#e0584a;animation:cptt 1s infinite}
.c-voice{display:flex;align-items:center;gap:6px;min-width:220px}.c-voice audio{height:36px;max-width:240px}.c-voice-ico{font-size:1.2rem}
@media (prefers-reduced-motion:reduce){.c-ptt.on,.c-ptt-dot{animation:none}}
.pm-part td:first-child{padding-left:28px;font-size:.9rem;color:var(--muted,#666)}.pm-part{background:rgb(0 0 0 / .025)}.pm-more{font-weight:600;text-align:left}.pm-n{font-size:.8rem}
.upd-bar{position:fixed;z-index:2470;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(560px,calc(100vw - 32px));display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--accent,#b5532a);padding:10px 14px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.2)}.upd-bar span{flex:1 1 220px}
.dk-list{display:flex;flex-direction:column;gap:8px}.dk-row{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.dk-row input{margin-top:3px}
.pm-mine{padding:10px 12px;border-radius:10px;background:rgb(0 0 0 / .03);border:1px solid var(--line);font-size:.92rem;line-height:1.45}
.dk-sub{margin-left:26px;background:rgb(0 0 0 / .02)}
.iv-accts{display:flex;flex-direction:column;gap:6px}.iv-acct{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.iv-steps-box summary{cursor:pointer;font-weight:600}.iv-steps{margin:8px 0;padding-left:20px;display:flex;flex-direction:column;gap:6px;overflow-wrap:anywhere}
.iv-draft textarea{width:100%;font:inherit;line-height:1.45}.iv-err{color:#b3261e}.iv-sure{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
/* 👥 team profiles */
.pp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.pp-card{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;min-height:68px;font:inherit}
.pp-card:hover{border-color:var(--accent);background:var(--sunk)}
.pp-txt{display:flex;flex-direction:column;min-width:0}.pp-txt b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-lvl{color:var(--accent);font-weight:600}
.pp-face{border-radius:50%;object-fit:cover;flex:none;background:var(--accent-soft)}
.pp-init{display:inline-grid;place-items:center;color:var(--accent);font-weight:700}
.pp-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.pp-who h2{margin:0}
.pp-tags{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.pp-tag{padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--ink);font-size:13px;font-weight:600}
.pp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.pp-stat{display:flex;flex-direction:column;padding:10px 12px;border-radius:12px;background:var(--sunk)}.pp-stat b{font-size:20px}
.pp-about{white-space:pre-wrap;margin:0}
.pp-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.pp-badge{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;text-align:center}
.pp-badge small{font-size:12px;line-height:1.2}.pp-art{width:56px;height:56px;display:block}.pp-art svg{width:100%;height:100%}

/* ===================== 🌲 Real woods (data-woods on <html>, set by theme.js) =====================
   The page sits on a real forest photo; panels are see-through enough to feel the woods behind them.
   Tone: light woods (snowy pines, birch, spring) get light panels; dark woods (pine, oak, maple) dark panels.
   Holidays keep their colors on top (rules near the top of this file; dark-woods versions at the end here). */
:root[data-woods="pine"]{--woods-img:url(/static/woods/pine.jpg)}
:root[data-woods="snowpine"]{--woods-img:url(/static/woods/snowpine.jpg)}
:root[data-woods="birch"]{--woods-img:url(/static/woods/birch.jpg)}
:root[data-woods="oak"]{--woods-img:url(/static/woods/oak.jpg)}
:root[data-woods="maple"]{--woods-img:url(/static/woods/maple.jpg)}
:root[data-woods="spring"]{--woods-img:url(/static/woods/spring.jpg)}
:root[data-tone="dark"]{color-scheme:dark;--bg:#0f1410;--surface:rgba(17,23,18,.9);--surface-solid:#141a15;--sunk:rgba(255,255,255,.07);--line:rgba(255,255,255,.14);--ink:#eef2ea;--muted:#b9c4b5;
  --ok:#6cc58d;--ok-soft:#183324;--warn:#e8ab55;--warn-soft:#3b2b13;--bad:#ec8a8f;--bad-soft:#40191f}
:root[data-tone="light"]{color-scheme:light;--bg:#eef0ec;--surface:rgba(255,255,255,.9);--surface-solid:#ffffff;--sunk:rgba(20,30,25,.06);--line:rgba(20,30,40,.14);--ink:#1a1f22;--muted:#4e585e;
  --ok:#2f7a4a;--ok-soft:#dcefe2;--warn:#a4620e;--warn-soft:#f8e6c8;--bad:#a83240;--bad-soft:#f7dde0}
:root[data-woods="maple"]{--bg:#170c08;--surface:rgba(30,15,10,.9);--surface-solid:#1e100a}
:root[data-woods="pine"]:not([data-holiday]){--accent:#e2b65a;--accent-ink:#1d1405;--accent-soft:rgba(226,182,90,.2)}
:root[data-woods="oak"]:not([data-holiday]){--accent:#a6cc62;--accent-ink:#142006;--accent-soft:rgba(166,204,98,.2)}
:root[data-woods="maple"]:not([data-holiday]){--accent:#ff8a3d;--accent-ink:#2a0f02;--accent-soft:rgba(255,138,61,.2)}
:root[data-woods="snowpine"]:not([data-holiday]){--accent:#2c5d7a;--accent-ink:#ffffff;--accent-soft:#d8e6ee}
:root[data-woods="birch"]:not([data-holiday]){--accent:#2e2e2b;--accent-ink:#ffffff;--accent-soft:#e6e6e1}
:root[data-woods="spring"]:not([data-holiday]){--accent:#3f7a2a;--accent-ink:#ffffff;--accent-soft:#dfecd3}
/* holiday colors that read on dark woods */
:root[data-tone="dark"][data-holiday="christmas"]{--accent:#ff6b77;--accent-ink:#2a0508;--accent-soft:rgba(255,107,119,.2)}
:root[data-tone="dark"][data-holiday="thanksgiving"]{--accent:#f0a040;--accent-ink:#2a1405;--accent-soft:rgba(240,160,64,.2)}
:root[data-tone="dark"][data-holiday="july4"],:root[data-tone="dark"][data-holiday="memorial"],:root[data-tone="dark"][data-holiday="labor"],:root[data-tone="dark"][data-holiday="veterans"]{--accent:#9fc1ff;--accent-ink:#0b1d3d;--accent-soft:rgba(159,193,255,.2)}
:root[data-tone="dark"][data-holiday="newyear"]{--accent:#e7c45a;--accent-ink:#241a03;--accent-soft:rgba(231,196,90,.2)}
:root[data-tone="dark"][data-holiday="valentine"]{--accent:#ff8fab;--accent-ink:#2a0712;--accent-soft:rgba(255,143,171,.2)}
:root[data-tone="dark"][data-holiday="stpatrick"],:root[data-tone="dark"][data-holiday="arbor"]{--accent:#6fd38a;--accent-ink:#072112;--accent-soft:rgba(111,211,138,.2)}
:root[data-tone="dark"][data-holiday="easter"]{--accent:#c6a8f0;--accent-ink:#1d1030;--accent-soft:rgba(198,168,240,.2)}

:root[data-woods] body{background:var(--bg)}
:root[data-woods] body::before{content:"";position:fixed;inset:0;z-index:-1;background:var(--woods-img) center/cover no-repeat;pointer-events:none}
:root[data-tone="dark"] body::after,:root[data-tone="light"] body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none}
:root[data-tone="dark"] body::after{background:rgba(0,0,0,.28)}
:root[data-tone="light"] body::after{background:rgba(255,255,255,.12)}
/* the header becomes a window onto the woods */
:root[data-woods] header.top{background:var(--woods-img) center 35%/cover no-repeat;padding-bottom:64px;color:#fff}
:root[data-woods] header.top::before{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(0,0,0,.38);z-index:0;pointer-events:none}
:root[data-woods] header.top .brandline .label,:root[data-woods] header.top h1,:root[data-woods] header.top .season-tip,:root[data-woods] header.top .whoami{color:#fff;opacity:1;text-shadow:0 1px 3px rgba(0,0,0,.55)}
:root[data-woods] header.top .whoami .linkish{color:#fff}
:root[data-woods] .scene{display:none}
:root[data-woods] .sidenav nav.tabs{background:var(--surface);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
:root[data-woods] .hd-box{background:var(--surface-solid)}
:root[data-woods] .bellpanel{background:var(--surface-solid)}
@media (max-width:640px){:root[data-woods] header.top{padding-bottom:28px}}
@media (prefers-reduced-transparency: reduce){:root[data-tone="dark"]{--surface:#141a15}:root[data-tone="light"]{--surface:#ffffff}}

/* the 🌲 woods menu in the header */
.woods-pick{position:relative}
.woods-btn{display:grid;place-items:center;width:44px;height:44px;padding:3px;border-radius:12px;border:2px solid rgba(255,255,255,.8);background:var(--surface);cursor:pointer}
.woods-btn .woods-thumb{width:100%;height:100%;border-radius:8px}
.woods-thumb{display:block;width:64px;height:44px;border-radius:8px;background-size:cover;background-position:center;flex:none}
.woods-thumb.classic{background:linear-gradient(180deg,var(--sky1,#fbe3b8),var(--sky2,#f2b98c))}
.woods-menu{position:absolute;right:0;top:52px;z-index:60;width:min(330px,calc(100vw - 32px));background:var(--surface-solid,var(--surface));color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 44px rgba(0,0,0,.35);padding:8px;display:flex;flex-direction:column;gap:4px}
.woods-head{padding:6px 8px 4px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.woods-opt{display:flex;align-items:center;gap:12px;width:100%;min-height:58px;padding:6px 8px;border:2px solid transparent;border-radius:12px;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}
.woods-opt:hover{background:var(--sunk)}
.woods-opt.on{border-color:var(--accent)}
.woods-txt{display:flex;flex-direction:column;gap:2px;min-width:0}.woods-txt small{color:var(--muted);font-size:12px;line-height:1.3}
/* 📎 Nicole note attachments */
.iv-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.iv-files img{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:zoom-in}
.iv-file{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border-radius:10px;background:var(--sunk);color:var(--ink);text-decoration:none;font-weight:600}
.iv-chosen{display:flex;flex-wrap:wrap;gap:6px}.iv-chosen:empty{display:none}
.iv-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:var(--sunk);font-size:13px}
.mr-drawing{font-size:.95rem;font-weight:600;line-height:1.4}
/* 🎭 Meme Studio + library */
.ms-hero{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}.ms-hero .stack{flex:1 1 320px}.ms-hero h2,.ms-hero p{margin:0}
.ms-make{min-height:48px;font-size:1rem}
.ms-chips{gap:6px;flex-wrap:wrap}
.ms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.ms-tile{display:flex;flex-direction:column;gap:4px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;font:inherit;min-width:0}
.ms-tile:hover{border-color:var(--accent)}.ms-tile b{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-tile small{font-size:.75rem}
.ms-thumb{position:relative;display:grid;place-items:center;aspect-ratio:9/16;border-radius:8px;overflow:hidden;background:#00b140;font-size:28px}
.ms-thumb img{width:100%;height:100%;object-fit:cover}
.ms-new{position:absolute;top:6px;left:6px;padding:1px 7px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.7rem;font-weight:700}
.ms-box{width:min(980px,100%)}
.ms-item-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.ms-item-row .stack{flex:1 1 240px}
.ms-prev{width:min(260px,100%);aspect-ratio:9/16;border-radius:12px;background:#00b140;object-fit:contain}
.ms-manage{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.ms-srcs{gap:8px;flex-wrap:wrap}.ms-srcs .btn{min-height:48px}
.ms-cam{width:min(420px,100%);border-radius:12px;background:#000}
.ms-edit{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.ms-left{flex:0 1 300px;align-items:center}.ms-right{flex:1 1 300px;min-width:0}
.ms-cv{width:min(300px,100%);aspect-ratio:9/16;border-radius:12px;background:#00ff00;box-shadow:0 4px 18px rgba(0,0,0,.25)}
.ms-rl{justify-content:space-between}
.ms-ok{margin:0;font-weight:600}
.ms-prog{width:100%}
.ms-status{min-height:1.2em}
.ms-libpick{max-height:320px;overflow:auto}
/* 📖 Root Words: Word of the Week */
.rw-wotw{display:flex;flex-direction:column;gap:4px;margin:0 0 14px;padding:14px 16px;border-radius:14px;background:var(--surface-solid,var(--surface));border:2px solid var(--accent);color:var(--ink)}
.rw-wotw h2{margin:2px 0;font-size:1.5rem}.rw-wotw p{margin:0;line-height:1.45}.rw-wotw .rw-wotw-ex{font-style:italic;color:var(--muted)}
.rw-wotw-pts{align-self:flex-start;margin-top:4px;padding:2px 10px;border-radius:999px;background:var(--accent);color:var(--accent-ink)}
.rw-newword{align-self:flex-start;display:inline-block;margin:2px 0 4px;padding:2px 10px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:.8rem}
.st-wotw b{font-size:1.15rem}
/* long AI answers: clipped with "Show all ▾" */
.tk2-long{display:flex;flex-direction:column;gap:4px;min-width:0}
.tk2-clip{display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
.tk2-more{align-self:flex-start;font-weight:700;color:inherit;text-decoration:underline;background:none;border:0;padding:4px 0;cursor:pointer;min-height:32px}
.iv-ivysays p,.iv-answer p{margin:0;white-space:pre-wrap}
.tk2-log{max-height:62vh}
/* 💬 Talk to the AI staff: a roomier chat, and ⤢ Bigger for full screen */
.tk2-box{width:min(860px,100%);max-width:none;height:min(900px,calc(100dvh - 32px));max-height:calc(100dvh - 32px)}
.tk2-box .tk2-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:auto}
.tk2-box .tk2-log{flex:1 1 auto;min-height:220px;max-height:none;overflow:auto}
.tk2-box .hd-head{grid-template-columns:auto 1fr auto auto;gap:8px}.tk2-grow{white-space:nowrap}
.tk2-box.tk2-full{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}
.hd-ov.tk2-ov-full{padding:0}
.tk2-box .tk2-msg{max-width:min(85%,720px)}
/* 🚨 missed inspections (Shop Desk) and the ASAP banner (Crew app) */
.sh-calls .sh-call{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-top:1px solid var(--line,#0002)}
.sh-calls .sh-call.late b{color:#d9622b}
.sh-calls .sh-call .btn.on{outline:2px solid currentColor}
.sh-asap{background:#d63c2f;color:#fff;border-radius:12px;cursor:pointer;animation:shAsap 1.6s ease-in-out infinite}
.sh-asap small{color:#fff;opacity:.9}
@keyframes shAsap{50%{box-shadow:0 0 0 6px #d63c2f44}}
@media (prefers-reduced-motion:reduce){.sh-asap{animation:none}}
/* 📝 notepad and 💪 daily challenge */
.notes-btn svg{display:block}
.dp-box{max-width:640px}
.dp-notice{background:#fff4d6;color:#6b4a00;border-radius:10px;padding:8px 12px;font-size:.9rem}
.dp-private{background:#e4f6e8;color:#1d5a2c;border-radius:10px;padding:8px 12px;font-size:.9rem}
.dp-note{display:block;width:100%;text-align:left;background:var(--panel2,#0000000d);border:1px solid var(--line,#0002);border-radius:12px;padding:10px 12px;color:inherit;font:inherit;cursor:pointer}
.dp-note .dp-snip{display:block;opacity:.75;font-size:.9rem;margin-top:4px;white-space:pre-wrap;overflow:hidden;max-height:3.2em}
.dp-text{width:100%;min-height:200px}
.dp-wohead{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.dp-wohead h3{margin:0}
.dp-streak{font-weight:700;color:#d9622b}
.dp-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dp-level{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;border-radius:12px;padding:10px;border:2px solid var(--line,#0002);background:var(--panel2,#0000000a);color:inherit;font:inherit;cursor:pointer;min-width:0}
.dp-level small{overflow-wrap:anywhere}
.dp-easy{border-color:#4cc16a}.dp-regular{border-color:#f2b233}.dp-beast{border-color:#d63c2f}
.dp-done{font-weight:700;color:#2f8a4a}
.dp-tip{display:block;opacity:.85}
.dp-safe{font-size:.75rem}
@media (max-width:480px){.dp-levels{grid-template-columns:1fr}}
/* 🏋️ Coach */
.dp-q{border:1px solid var(--line,#0002);border-radius:12px;padding:8px 12px}
.dp-q legend{font-weight:700;padding:0 4px}
.dp-opts{display:flex;flex-wrap:wrap;gap:6px}
.dp-opt{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line,#0002);border-radius:999px;cursor:pointer}
.dp-coachnote{background:var(--panel2,#0000000d);border-left:4px solid #c0392b;border-radius:10px;padding:10px 12px}
.dp-joke{margin:6px 2px 0;font-style:italic;opacity:.9}
.dp-ex{border:1px solid var(--line,#0002);border-radius:12px;padding:8px 12px}
.dp-ex summary{cursor:pointer;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dp-ex .dp-dose{opacity:.8}
.dp-coachbtn{justify-self:start}
.dp-priv legend::after{content:" 🔒";font-weight:400}
.dp-plan{display:flex;flex-direction:column;gap:6px}
.dp-weeks{display:flex;gap:4px}
.dp-weeks span{flex:1;height:8px;border-radius:4px;background:var(--line,#0002)}
.dp-weeks span.done{background:#4cc16a}.dp-weeks span.now{background:#f2b233}

/* ✨ main tabs (Home, Nicole, Teams, Calendar, Tasks and each desk) stand out from the tabs under them: a bright icon
   tile with a shine that sweeps across now and then, a glow when picked; the tabs under a desk sit indented on a guide line */
#tabs .main-tab .ni,#tabs .mt-ico{position:relative;overflow:hidden;flex:none;width:30px;height:30px;padding:5px;border-radius:9px;background:var(--mt);color:#fff;stroke:#fff;box-shadow:0 2px 8px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.35)}
#tabs .mt-ico{display:inline-grid;place-items:center;padding:0;font-size:1rem;line-height:1}
#tabs .mt-ico::before{content:"";position:absolute;inset:-40% auto -40% -60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-20deg);opacity:0}
#tabs .main-tab{font-weight:700;font-size:1rem}
#tabs button.nav-group{gap:10px;justify-content:flex-start;margin-top:8px;padding:8px 10px;border-radius:12px;font:800 .95rem var(--body);letter-spacing:.01em;text-transform:none;color:var(--ink)}
#tabs button.nav-group::after{margin-left:auto}
#tabs button.nav-group:hover,#tabs .main-tab:hover{background:rgba(255,255,255,.06)}
#tabs button.nav-group:hover .mt-ico,#tabs .main-tab:hover .ni,#tabs .main-tab[aria-selected="true"] .ni{box-shadow:0 0 0 2px rgba(255,255,255,.55),0 0 16px 2px rgba(255,190,90,.6)}
#tabs .sub-tab{margin-left:22px;border-left:2px solid rgba(255,255,255,.12);border-radius:0 10px 10px 0;font-size:.92rem}
@media (prefers-reduced-motion: no-preference){
  #tabs .mt-ico::before{animation:mtShine 7s ease-in-out infinite}
  #tabs .nav-group:nth-of-type(2n) .mt-ico::before{animation-delay:1.7s}
  #tabs .nav-group:nth-of-type(3n) .mt-ico::before{animation-delay:3.4s}
  #tabs button.nav-group:hover .mt-ico,#tabs .main-tab:hover .ni{transform:scale(1.08) rotate(-4deg);transition:transform .18s}
  #tabs .main-tab[aria-selected="true"] .ni{animation:mtGlow 2.4s ease-in-out infinite}
  @keyframes mtShine{0%,82%{left:-60%;opacity:0}86%{opacity:1}96%{left:130%;opacity:1}100%{left:130%;opacity:0}}
  @keyframes mtGlow{50%{box-shadow:0 0 0 2px rgba(255,255,255,.7),0 0 22px 5px rgba(255,190,90,.75)}}
}
@media (max-width:899px){#tabs .sub-tab{margin-left:0;border-left:0;border-radius:inherit}#tabs button.nav-group{margin-top:6px}}

/* 🍔 Food near me */
.food-btn span{font-size:1.1rem;line-height:1}
.fd-top{display:grid;gap:8px}
.fd-town input{flex:1;min-width:0}
.fd-chips{display:flex;flex-wrap:wrap;gap:6px}
.fd-chip{border:1px solid rgba(255,255,255,.18);background:transparent;color:var(--ink);border-radius:999px;padding:5px 11px;font:600 .85rem var(--body);cursor:pointer}
.fd-chip.on{background:var(--accent,#f97316);border-color:transparent;color:#111}
.fd-card{display:grid;gap:4px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.fd-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.fd-mi{font-weight:700;white-space:nowrap}
.fd-open{color:#4ade80}.fd-closed{color:#f87171}
.fd-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.fd-btns .btn{text-decoration:none}
.fd-dd{background:#ff3008!important;color:#fff!important;border-color:transparent!important}
.fd-ue{background:#06c167!important;color:#04150b!important;border-color:transparent!important}
.fd-gh{background:#f63440!important;color:#fff!important;border-color:transparent!important}
.fd-foot{display:block;margin-top:6px}
.fd-cats{display:flex;flex-wrap:wrap;gap:6px}
.fd-cat{flex:none;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);color:var(--ink);border-radius:12px;padding:8px 12px;font:700 .9rem var(--body);cursor:pointer;white-space:nowrap}
.fd-cat.on{background:var(--accent,#f97316);border-color:transparent;color:#111;box-shadow:0 0 12px rgba(249,115,22,.5)}
.gym-btn span{font-size:1.1rem;line-height:1}
.fd-why{margin:2px 0;font-size:.92rem}
.fd-ideas{margin:2px 0 2px 18px;padding:0;font-size:.9rem}
.fd-badge{color:#7dd3fc}
.fd-res{background:#da3743!important;color:#fff!important;border-color:transparent!important}
.fd-fix{margin-top:6px;padding:8px;border-radius:10px;background:rgba(255,255,255,.05)}
.fd-add{display:grid;gap:6px;margin-top:6px}
.fd-cats:not(.all) .fd-extra{display:none}
.fd-more{border-style:dashed}
.fd-report{font-size:.9rem;padding:6px 8px;border-radius:8px;background:rgba(14,165,233,.12);border-left:3px solid #0ea5e9}
.fd-report a{color:#7dd3fc}
.ch-req{border-left:3px solid transparent;padding-left:10px}.ch-req.ch-new{border-left-color:#f59e0b;background:rgba(245,158,11,.08)}
/* 🏋️ Gym tab */
.gy-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.gy-tab{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);color:var(--ink);border-radius:12px;padding:9px 14px;font:700 .95rem var(--body);cursor:pointer}
.gy-tab.on{background:linear-gradient(135deg,#dc2626,#f59e0b);border-color:transparent;color:#fff;box-shadow:0 0 14px rgba(245,158,11,.45)}

/* ✨ sub tabs: a small tile in their desk's colors, a shine on hover, a glow when picked (menu, Shop Desk, page tabs) */
#tabs .sub-tab .ni{position:relative;flex:none;width:24px;height:24px;padding:4px;border-radius:7px;background:var(--mt);color:#fff;stroke:#fff;opacity:.85;box-shadow:inset 0 1px 0 rgba(255,255,255,.3);transition:transform .15s,opacity .15s,box-shadow .15s}
#tabs .sub-tab:hover .ni,#tabs .sub-tab[aria-selected="true"] .ni{opacity:1;box-shadow:0 0 0 2px rgba(255,255,255,.4),0 0 12px rgba(255,190,90,.5)}
#tabs .sub-tab[aria-selected="true"]{background:linear-gradient(90deg,rgba(255,255,255,.10),transparent)}
.subtabs button,.gy-tab,.fd-cat,.fd-chip{position:relative;overflow:hidden;transition:transform .15s,box-shadow .15s}
.subtabs button:hover,.gy-tab:hover,.fd-cat:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.3)}
.subtabs button[aria-selected="true"]{background:linear-gradient(135deg,var(--accent),#f59e0b);box-shadow:0 0 12px rgba(245,158,11,.4)}
.subtabs button::after,.gy-tab::after{content:"";position:absolute;inset:0 auto 0 -60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);opacity:0;pointer-events:none}
@media (prefers-reduced-motion: no-preference){
  #tabs .sub-tab:hover .ni{transform:scale(1.1) rotate(-4deg)}
  .subtabs button:hover::after,.gy-tab:hover::after{animation:subShine .7s ease-out}
  @keyframes subShine{0%{left:-60%;opacity:0}30%{opacity:1}100%{left:130%;opacity:0}}
}
@media (prefers-reduced-motion: reduce){.subtabs button:hover,.gy-tab:hover,.fd-cat:hover{transform:none}}
.woods-menu.woods-menu-phone{position:fixed;left:12px;right:12px;width:auto;overflow-y:auto;overscroll-behavior:contain}
/* 👥 The Crew on Home: one strip that opens */
.pp-strip{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;flex-wrap:wrap}
.pp-strip:hover{border-color:var(--accent);background:var(--sunk)}
.pp-striptitle{font:800 1.05rem var(--body)}
.pp-faces{display:flex;align-items:center}.pp-faces .pp-face{margin-left:-8px;border:2px solid var(--surface)}.pp-faces .pp-face:first-child{margin-left:0}
.pp-more{margin-left:6px;font-weight:700;color:var(--muted)}
.pp-open{margin-left:auto;font-weight:700;color:var(--accent)}
svg.staff-face{flex:none;border-radius:50%;border:2px solid rgba(255,255,255,.75);box-shadow:0 1px 4px rgba(0,0,0,.35);background:#d9e6ef;image-rendering:auto}
svg.tk2-face{width:40px;height:40px}
/* 🩺 HR cards */
.sk-card{display:grid;gap:6px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);border-left:4px solid #f59e0b}
.sk-card.sk-open{border-left-color:#3b82f6}.sk-card.sk-completed{border-left-color:#22c55e}
.sk-top{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.sk-pill{font-size:.8rem;font-weight:700;padding:3px 9px;border-radius:99px;background:rgba(245,158,11,.18)}
.sk-pill.sk-open{background:rgba(59,130,246,.2)}.sk-pill.sk-completed{background:rgba(34,197,94,.2)}
.sk-msg{margin:0;padding:6px 8px;border-radius:8px;background:var(--sunk)}
.sk-need{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.sk-desk{display:grid;gap:8px}.sk-respond{display:grid;gap:6px}
.sk-step{display:grid;gap:8px;padding:10px;border-radius:12px;background:var(--sunk)}
.sk-warn{padding:8px 10px;border-radius:10px;background:rgba(245,158,11,.14);border-left:3px solid #f59e0b}
.c-av.c-av-ai{padding:0;overflow:hidden;display:inline-grid;place-items:center}.c-av .c-av-face,.c-av.c-av-ai svg{width:100%;height:100%;border:0;box-shadow:none}
img.staff-photo{object-fit:cover;border-radius:50%;border:2px solid rgba(255,255,255,.75);box-shadow:0 1px 4px rgba(0,0,0,.35);flex:none}
.c-av.c-av-ai img{width:100%;height:100%;object-fit:cover}
/* ---- update 40: Monday/Friday card, big jobs, seasonal, Question of the Month, bug reports, two-step reminder ---- */
#homeTop{margin-bottom:14px;gap:12px}
.rhythm{border-left:5px solid var(--glow);background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--glow) 10%,var(--surface)))}
.rhythm.friday{border-left-color:#3f8f5a}
.rh-sub{margin:0}
.rh-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.rh-sec{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);display:grid;gap:6px;align-content:start}
.rh-h{display:flex;justify-content:space-between;align-items:center;gap:8px;background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
div.rh-h{cursor:default}
.rh-n{min-width:26px;text-align:center;border-radius:999px;padding:1px 8px;background:var(--glow);color:#1d1d1d;font-weight:700;font-size:.85rem}
.rh-n.zero{background:var(--line);color:var(--muted)}
.rh-list{margin:0;padding-left:18px;display:grid;gap:3px;font-size:.9rem}
.rh-pick{display:flex;gap:6px;align-items:flex-start}
.rh-note{color:var(--muted);font-style:italic}
.tf-banner{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 14px;border-radius:12px;background:rgb(224 138 44 / .14);border:1px solid rgb(224 138 44 / .5)}
.tf-banner span{flex:1 1 260px}
.draft-badge{display:inline-block;align-self:flex-start;font-weight:700;font-size:.8rem;padding:3px 10px;border-radius:999px;background:linear-gradient(90deg,var(--glow),color-mix(in srgb,var(--glow) 60%,#fff));color:#1d1d1d;box-shadow:0 2px 8px rgb(0 0 0 / .15)}
.specials{margin-top:16px;padding-top:12px;border-top:2px dashed var(--line)}
.bigjob .bj-part{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:8px}
.bigjob h3{margin:0;font-size:1rem}
.bj-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bj-cell{display:grid;gap:6px;justify-items:start}
.bj-cell img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.bj-pick{cursor:pointer}
.bj-safe{margin:0;font-weight:600;background:rgb(200 60 40 / .1);border-left:4px solid #c83c28;border-radius:8px;padding:6px 10px;font-size:.88rem}
.ok-line{margin:0;color:#2e7d4f;font-weight:600}
.season{border-left:5px solid #b8742c}
.sea-head{display:flex;justify-content:space-between;gap:8px;align-items:center;background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer;width:100%}
.sea-peek{margin:0;font-size:.88rem}
.sea-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:4px}
.sea-card p{margin:0;font-size:.9rem}
.sea-all{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.sea-row summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;cursor:pointer}
.sea-row[open]{display:grid;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px}
.qotm{border-left:5px solid #6a5acd}
.qotm-q{font-size:1.1rem;font-weight:700;margin:0}
.qotm-script{white-space:pre-wrap;margin:0;background:var(--bg);border-radius:10px;padding:8px 12px}
.qotm-shots{margin:0;padding-left:20px;display:grid;gap:3px}
.rc-tip{background:rgb(63 143 90 / .12);border-left:4px solid #3f8f5a;border-radius:8px;padding:8px 12px;font-size:.88rem}
.rc-late{margin:0;background:rgb(106 90 205 / .1);border-left:4px solid #6a5acd;border-radius:8px;padding:8px 12px;font-size:.88rem}
.bug-fab{position:fixed;left:14px;bottom:calc(150px + env(safe-area-inset-bottom));z-index:60;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);box-shadow:0 3px 12px rgb(0 0 0 / .2);font-size:1.15rem;cursor:pointer;opacity:.85}
.bug-fab:hover,.bug-fab:focus-visible{opacity:1}
.bug-ov{position:fixed;inset:0;z-index:1000;background:rgb(0 0 0 / .55);display:grid;place-items:center;padding:16px}
.bug-card{width:min(520px,100%);max-height:92vh;overflow:auto}
.bug-prev{display:grid;gap:6px;justify-items:start}
.bug-prev img{max-width:100%;max-height:42vh;border-radius:10px;border:1px solid var(--line)}
.bug-privacy{margin:0;font-size:.85rem;color:var(--muted)}
@media print{.bug-fab{display:none}}
/* ---- update 41: Ivy's design upgrades ---- */
.mr-skrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.mr-sk{display:grid;gap:6px;justify-items:start}
.mr-sk .mr-pic{width:100%}
.mr-live svg{display:block;width:100%;height:auto;cursor:pointer;user-select:none}
.mr-live .mr-sel{outline:3px dashed #e08a2c;outline-offset:4px;cursor:move}
.mr-move{flex-wrap:wrap}
.mr-word{display:grid;grid-template-columns:1fr minmax(120px,40%);gap:6px}
.mr-mood{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.mr-moodc{display:grid;gap:4px;justify-items:start}
.mr-moodc img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
/* ---- update 42: research staff report cards, grades, fact-checks ---- */
.gr-box{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
.gr-btn{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:2px 10px;font-size:1rem;cursor:pointer;color:inherit}
.gr-btn.on{background:var(--glow);border-color:var(--glow)}
.gr-reasons{display:flex;flex-wrap:wrap;gap:6px}
.vet-line{font-size:.85rem;border-left:3px solid #3f8f5a;padding:4px 8px;border-radius:6px;background:rgb(63 143 90 / .08)}
.vet-line.fix{border-left-color:#e0a33a;background:rgb(224 163 58 / .1)}
.vet-line.held{border-left-color:#c83c28;background:rgb(200 60 40 / .1)}
.rc-sec{display:grid;gap:6px;padding:10px 0;border-top:1px solid var(--line)}
.rc-sec h4{margin:0}
.rc-pb{white-space:pre-wrap;font:inherit;font-size:.9rem;margin:0;background:var(--bg);padding:8px 10px;border-radius:8px}
.rc-q{white-space:pre-wrap;font-size:.88rem;margin:4px 0}
.storm-card{border-left:5px solid #5f7a9a}
.storm-card.live{border-left-color:#c83c28;background:linear-gradient(135deg,var(--surface),rgb(200 60 40 / .08))}
.storm-ev{margin:0;font-weight:700}
/* ---- update 47: inspection types and places ---- */
.insp-type{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:6px}
.insp-type.off{border-style:dashed}.insp-type.off>.sh-row:first-child{opacity:.65}
.insp-open{color:#e08a2c}
.insp-due .insp-row{border:1px solid var(--line);border-radius:12px;padding:8px 10px;display:grid;gap:6px}
.insp-due .insp-row.banner{border-left:5px solid #e08a2c;background:rgb(224 138 44 / .08)}
.insp-places{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.insp-place{display:grid;gap:4px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:8px;background:var(--surface);color:inherit;font:inherit;cursor:pointer}
.insp-place img,.insp-noimg{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;display:grid;place-items:center;font-size:2rem;background:var(--bg)}
.insp-place-photo{max-width:100%;max-height:220px;border-radius:10px}
.insp-what summary{font-weight:700;cursor:pointer}
.insp-what{display:grid;gap:6px;border:1px solid var(--line);border-radius:12px;padding:10px}
.insp-rem{display:grid;gap:6px}
.insp-count{flex-wrap:wrap;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:6px 0}
.insp-issue{display:grid;gap:4px;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
/* 🛒 Needed: requests, the chat card, orders to place (update 48) */
.nd-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.nd-top h3{margin:0}
.nd-h{margin:8px 0 0}
.nd-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:6px;background:var(--surface);color:var(--ink);min-width:0}
.nd-card.nd-waiting{border-left:5px solid #e08a2c}.nd-card.nd-approved{border-left:5px solid #3f9a3a}.nd-card.nd-ordered{border-left:5px solid #3b7fd9}.nd-card.nd-declined,.nd-card.nd-cancelled{opacity:.7}
.nd-po-card{border-left:5px solid #8e5bd0}
.nd-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.nd-status{font-size:.8rem;padding:2px 8px;border-radius:999px;background:var(--bg)}
.nd-urgent{font-size:.8rem;padding:2px 8px;border-radius:999px;background:#d94b4b;color:#fff}
.nd-total{margin-left:auto;font-weight:700}
.nd-list{margin:0;padding-left:18px;display:grid;gap:2px}
.nd-why{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.nd-extra{display:flex;flex-wrap:wrap;gap:6px 12px}.nd-extra a,.nd-link{overflow-wrap:anywhere}
.nd-po,.nd-got{color:#3b7fd9}
.nd-admin{color:#b4561f}
.nd-acts{flex-wrap:wrap;gap:6px}
.nd-mine summary,.nd-box details summary{cursor:pointer;font-weight:600;padding:4px 0}
.nd-mine,.nd-box details{display:grid;gap:8px}
.nd-items{display:grid;gap:10px}
.nd-item{border:1px solid var(--line);border-radius:12px;padding:8px;display:grid;gap:6px}
.nd-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.nd-row>input,.nd-row>select{flex:1 1 110px;min-width:0}
.nd-item .nd-row:nth-child(2)>input{flex-basis:100%}
.nd-field{display:grid;gap:4px}
.nd-lab{font-weight:600;font-size:.9rem}
.nd-chips{display:flex;flex-wrap:wrap;gap:6px}
.nd-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--bg);font-size:.85rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.nd-chipx{border:0;background:none;color:inherit;font-size:1rem;cursor:pointer;padding:0 6px}
.nd-methods{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.nd-m{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer}
.nd-m.on{border-color:#3f9a3a;box-shadow:0 0 0 2px rgb(63 154 58 / .35)}
.nd-recv{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;border-bottom:1px solid var(--line);padding:6px 0}
.nd-recv input[type=number]{width:90px;grid-row:span 2}
.nd-add{grid-column:1/-1;font-size:.85rem}
.nd-chatcard{margin-top:6px;min-width:min(280px,70vw)}
.nd-chatcard .nd-card{background:var(--surface)}
.nd-mini{display:grid;gap:2px;flex:1 1 90px;min-width:0}.nd-mini input{width:100%}
.nd-row>.nd-x{align-self:end}
.insp-off{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;padding:6px 10px;border-radius:10px;background:var(--bg)}
/* AI Staff tabs (update 49) */
.st-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:thin;position:sticky;top:0;z-index:5;background:var(--bg)}
.st-tab{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:8px 14px;background:var(--surface);color:inherit;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}
.st-tab.on{background:var(--accent,#d9822b);border-color:var(--accent,#d9822b);color:var(--accent-ink,#2a0f02)}
.st-pane{display:grid;gap:14px}
.st-finished>summary,.st-formlist>summary{cursor:pointer;font-weight:600;padding:6px 0}
.st-finished,.st-formlist{display:grid;gap:8px}
/* 📱 Phone layout (update 51): same features, less room, easier to move around (public/mobile.js) */
html.phone header.top{position:sticky;top:0;z-index:40;flex-wrap:nowrap;align-items:center;gap:8px;margin:0 0 12px;padding:8px 10px;border-radius:0 0 16px 16px;transition:transform .25s ease;box-shadow:0 4px 14px rgb(0 0 0 / .25)}
html.phone.hdr-away header.top{transform:translateY(-115%)}
html.phone.more-open header.top,html.phone.chatting header.top{transform:none}
html.phone header.top .scene{opacity:.45}
html.phone header.top .brandrow{gap:8px;min-width:0;flex:1 1 auto;align-items:center}
html.phone header.top .brand-logo{width:38px;height:38px}
html.phone header.top .brandline{min-width:0}
html.phone header.top .brandline .label,html.phone header.top .season-tip,html.phone header.top .whoami{display:none}
html.phone header.top h1{font-size:1.05rem;line-height:1.2;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.phone header.top .topright{flex-wrap:nowrap;gap:4px;flex:0 1 auto;overflow-x:auto;scrollbar-width:none;max-width:62vw}
html.phone header.top .topright::-webkit-scrollbar{display:none}
html.phone header.top .topright>*{flex:none}
html.phone header.top .bell,html.phone header.top .trophy-btn{width:36px;height:36px;min-width:36px;padding:0;display:grid;place-items:center}
html.phone header.top .trophy-btn{width:auto;padding:0 8px;gap:4px;display:flex}
html.phone header.top .trophy-lvl{font-size:.75rem}
/* the verse and the notices on Home (Send in the Crew app) only; the verse folded to two lines */
html.phone body:not([data-page="home"]):not([data-page="send"]) #verse,html.phone body:not([data-page="home"]) #notices{display:none!important}
html.phone .verse{padding:10px 14px;margin-bottom:10px;cursor:pointer}
html.phone .verse:not(.ph-open) blockquote{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.9rem}
html.phone .verse:not(.ph-open) figcaption::after{content:" · tap to read";font-weight:400}
html.phone #notices>*{font-size:.85rem;padding:8px 12px;margin-bottom:8px}
/* tighter cards and headings */
html.phone .panel{padding:14px;border-radius:14px}
html.phone h2{font-size:1.2rem}
html.phone h3{font-size:1.05rem}
/* 🙋 Helpers: Hazel, Ash, Tank and the bug button behind one button */
.ph-dock{display:none}
html.phone .ph-dock{display:grid;place-items:center;position:fixed;right:12px;bottom:calc(var(--bar-h,72px) + 12px);z-index:61;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.25rem;box-shadow:0 4px 14px rgb(0 0 0 / .3);cursor:pointer}
html.phone:not(.helpers-open) .hz-buddy,html.phone:not(.helpers-open) .bug-fab,html.phone:not(.helpers-open) .gd3-roam,html.phone:not(.helpers-open) .gd3-paw{display:none!important}
html.phone.helpers-open .hz-buddy{left:12px;bottom:calc(var(--bar-h,72px) + 10px)}
html.phone.helpers-open .ash-buddy{left:auto;right:12px;bottom:calc(var(--bar-h,72px) + 66px)}
html.phone.helpers-open .bug-fab{left:auto;right:16px;bottom:calc(var(--bar-h,72px) + 190px)}
html.phone.more-open .ph-dock,html.phone.chatting .ph-dock{display:none}
/* the More menu: search and recent pages on top, smaller tiles (4 across) */
.ph-find{display:none}
html.phone .ph-find{display:grid;gap:8px;padding:0 4px 10px;position:sticky;top:0;z-index:2;background:inherit}
html.phone .ph-find input{width:100%}
.ph-recent{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.ph-chip{flex:none;border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--surface);color:inherit;font:inherit;font-size:.85rem;cursor:pointer}
html.phone #tabs.ph-searching .nav-folded{display:revert!important}
html.phone #tabs.ph-searching .nav-group{display:none}
html.phone #tabs .ph-miss{display:none!important}
html.phone .sidenav nav.tabs{grid-template-columns:repeat(4,1fr);gap:5px}
html.phone .sidenav nav.tabs button,html.phone #tabs .main-tab{min-height:58px;padding:8px 2px;font-size:.72rem;font-weight:600;border-radius:12px;line-height:1.15}
html.phone .sidenav nav.tabs button svg.ni,html.phone .sidenav .gd-tab-ico{width:20px;height:20px}
html.phone .sidenav .nav-group{padding:8px 4px 0;font-size:.9rem}
/* phone: the Shop Desk areas in one swipeable row (not a block of 13 buttons), sitting just under the header */
html.phone .sh-areas{display:flex;flex-direction:row;overflow-x:auto;scrollbar-width:none;gap:4px;top:var(--hdr-h,62px);z-index:30;padding:6px 0;transition:top .25s ease}
html.phone .sh-areas::-webkit-scrollbar{display:none}
html.phone.hdr-away .sh-areas{top:0}
html.phone .sh-area{flex:0 0 auto;min-width:68px;padding:6px 8px}
html.phone .sh-tiles,html.phone .sh-hgroup .sh-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
html.phone .sh-tile{padding:10px}
html.phone .sh-tile b{font-size:1.35rem}
/* phone: the office header shows the logo and the buttons (the page name is in the menu) */
html.phone header.top:not(.crew-top) h1{display:none}
html.phone header.top .topright{max-width:none}
html.phone .st-tabs{top:var(--hdr-h,62px);transition:top .25s ease}
html.phone.hdr-away .st-tabs{top:0}
html.phone #sidenav #tabs button,html.phone #sidenav #tabs button span:not(.count){font-size:.74rem;line-height:1.15}
html.phone #sidenav #tabs button{min-height:58px;padding:8px 2px}
.sh-translate{align-items:center;gap:6px;flex-wrap:wrap}
.sh-warnline{color:#e08a2c;font-weight:600}
.drv-trend{display:flex;align-items:flex-end;gap:4px;height:48px}
.drv-bar{flex:1 1 0;max-width:28px;border-radius:4px 4px 0 0;min-height:4px}
.drv-alerts{display:grid;gap:4px}.drv-alerts summary{cursor:pointer;font-weight:600}
/* pre-trip: pick the type, ⭐ yours today, one card at a time (update 61) */
.sh-kinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.sh-kind{display:grid;justify-items:center;gap:2px;padding:14px 8px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:inherit;font:inherit;cursor:pointer}
.sh-kind .sh-kic{font-size:1.8rem}
.sh-mine .sh-asset{border-color:#e08a2c}
.sh-stepbar{position:sticky;top:0;z-index:3;background:var(--surface);padding:6px 0;display:grid;gap:6px}
.sh-progress{height:6px;border-radius:999px;background:var(--bg);overflow:hidden}.sh-progress i{display:block;height:100%;background:#3f9a3a;transition:width .25s}
.sh-stepnav{align-items:center;justify-content:space-between;gap:6px}
.sh-check.sh-stepping .sh-item{font-size:1.05rem}
.sh-check.sh-stepping .sh-item .sh-btns button{min-height:52px;min-width:72px;font-size:1.2rem}
.sh-scanvid{width:100%;border-radius:12px;background:#000;max-height:60vh}
/* 📲 My QR code (src/leads.js) */
.qr-card{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.qr-box{max-width:380px;text-align:center;display:grid;gap:10px;justify-items:center;padding:18px}
.qr-box .qr-title{font-size:1.3rem}
.qr-big{background:#fff;padding:16px;border-radius:14px;line-height:0}
.qr-big svg{width:min(280px,70vw);height:auto}
.sea-scan{border-top:1px dashed var(--line);padding-top:6px;display:grid;gap:6px;justify-items:start}
.lead-row{font-size:.92rem}.lead-scan{display:grid;gap:4px;border-top:1px solid var(--line);padding-top:6px}
/* 🗑️ Trash (src/trash.js) */
.trash-box{max-width:640px;width:100%}
.trash-tabs{display:flex;gap:6px;flex-wrap:wrap}
.trash-tab{border:1px solid var(--line);background:transparent;color:inherit;border-radius:999px;padding:6px 12px;font:inherit;font-size:.88rem;cursor:pointer}
.trash-tab.on{background:var(--accent,#e8873a);border-color:transparent;color:#fff}
.trash-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.trash-item{border-top:1px solid var(--line);padding-top:8px}.trash-item .row{margin-top:6px}
.trash-found input{width:100%;margin-top:6px}
/* 💲 Estimator (src/estimator.js) */
.est-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.est-tab{border:1px solid var(--line);background:transparent;color:inherit;border-radius:999px;padding:7px 14px;font:inherit;cursor:pointer}
.est-tab.on{background:var(--accent,#e8873a);border-color:transparent;color:var(--accent-ink,#2a0f02)}
.est-warn{border:1px solid #e08a2c;border-radius:10px;padding:8px 12px;margin:0}
.est-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px;align-items:start}
.est-out{position:sticky;top:12px}
@media (max-width:900px){.est-grid{grid-template-columns:1fr}.est-out{position:static}}
.est-price{display:grid;gap:2px}.est-price b{font-size:1.9rem;line-height:1.1}
.est-break{width:100%;border-collapse:collapse;font-size:.9rem}.est-break td{padding:4px 2px;border-top:1px solid var(--line);vertical-align:top}.est-break td.num{text-align:right;white-space:nowrap}
.est-break tr.est-sum td{font-weight:700;border-top:2px solid var(--line)}
.est-hist,.est-ai{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:grid;gap:4px}.est-hist p,.est-ai p{margin:0}
.est-recent{margin:0;padding-left:18px;font-size:.85rem}
.est-thumbs{display:flex;gap:8px;flex-wrap:wrap}.est-thumb{position:relative}.est-thumb img{width:84px;height:84px;object-fit:cover;border-radius:8px}
.est-thumb .sh-x{position:absolute;top:2px;right:2px}
.est-n{width:80px}
.est-ccgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;max-height:55vh;overflow:auto}
.est-ccph{padding:0;border:3px solid transparent;border-radius:10px;background:none;cursor:pointer}.est-ccph.on{border-color:var(--accent,#e8873a)}.est-ccph img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;display:block}
.est-proj{text-align:left;border:1px solid var(--line);background:transparent;color:inherit;border-radius:10px;padding:10px;font:inherit;cursor:pointer}
.est-modal{max-width:760px;width:100%}
.est-saved{border-top:1px solid var(--line);padding-top:8px}
.est-sortrow{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:center;border-top:1px solid var(--line);padding-top:6px}
@media (max-width:720px){.est-sortrow{grid-template-columns:1fr}}
.est-new{color:#e08a2c;font-weight:700}
.est-nums{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.est-cat{border:1px solid var(--line);border-radius:10px;padding:8px 10px}.est-sub{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}
.est-items{margin:0;padding-left:18px;font-size:.88rem;max-height:340px;overflow:auto}
.est-line{display:flex;gap:6px;align-items:center;margin:0 0 6px}.est-line input,.est-line select{width:auto;min-width:0;flex:1}.est-line .est-n,.est-line input[type=number]{flex:0 0 76px;width:76px}
.est-line.est-wrap{flex-wrap:wrap}.est-line.est-wrap select{flex:0 1 200px}
.est-trow{flex-wrap:wrap}.est-trow input,.est-trow select{width:auto;flex:1 1 140px}.est-trow .est-n{flex:0 0 90px}
/* 👷 a leader checks everyone */
.grp-list{gap:6px}.grp-row{border:1px solid var(--line);border-radius:10px;padding:8px 10px}.grp-row.ok{border-color:#3f9a3a;background:rgba(63,154,58,.08)}.grp-row.away{opacity:.65}
.grp-cards{margin-top:8px}
/* 🔑 Keys & expirations */
.key-row{border-top:1px solid var(--line);padding-top:8px}.key-row .key-how{display:block}.key-row .row{margin-top:6px;align-items:center}.key-row input[type=date]{width:auto}
.est-ccph{position:relative}.est-play{position:absolute;left:6px;bottom:6px;background:rgba(0,0,0,.65);color:#fff;border-radius:6px;padding:1px 6px;font-size:.78rem}
/* 🐾 "Call Tank back" sat under the 🙋/✕ Helpers button on phones: put it beside it, on top */
html.phone.helpers-open .gd3-paw{right:68px;bottom:calc(var(--bar-h,72px) + 12px);z-index:62}
html.phone.helpers-open .gd3-roam{z-index:60}
/* 🌐 translate */
.tr-btn{border:0;background:transparent;cursor:pointer;font-size:.8rem;opacity:.55;padding:0 4px;margin-left:4px;vertical-align:middle}.tr-btn:hover,.tr-btn:focus-visible{opacity:1}
.tr-out{display:block;margin-top:4px;padding:4px 8px;border-left:3px solid var(--accent,#e8873a);background:rgb(127 127 127 / .08);border-radius:6px;font-size:.92em}
.tr-out .tr-tag{display:block;opacity:.7;font-size:.75em}.tr-out .tr-text{white-space:pre-wrap}.tr-gear{border:0;background:transparent;cursor:pointer;font-size:.75rem;opacity:.6;float:right}
.tr-box{max-width:420px}
.est-line-card{border-top:1px solid var(--line);padding-top:8px}.est-line-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.est-total{font-size:1.9rem}
/* 🔗 whole rig at once: picked units */
.sh-rig .sh-asset.on{border:2px solid var(--brand,#2e7d32);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand,#2e7d32) 25%,transparent);position:relative}
.sh-rig .sh-asset.on::after{content:"✓";position:absolute;top:6px;right:8px;background:var(--brand,#2e7d32);color:#fff;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;font-weight:700}
/* 🔐 two-step: pick how codes come */
.acct-ways{gap:8px}
.acct-way{display:grid;gap:2px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px;font:inherit;cursor:pointer;min-height:44px}
.acct-way:hover:not(:disabled){border-color:var(--brand,#2e7d32)}
.acct-way:disabled{opacity:.6;cursor:not-allowed}
#codeWays{gap:12px}
/* 📇 full contact editor (People) */
.contact-edit{flex-basis:100%;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;align-items:end}
.contact-edit>b,.contact-edit>small,.contact-edit>.row{grid-column:1/-1}
.contact-edit .contact-cityrow{display:grid;grid-template-columns:1fr 70px 110px;gap:8px}
.contact-edit input{width:100%}
/* 🤒 call-in: reach a manager, then ✅ Done */
.sk-mgr{gap:6px;flex-wrap:wrap;align-items:center}
.sk-done{font-weight:600;padding:8px 10px;border:1px dashed var(--line);border-radius:10px}
.sk-done.on{border-style:solid;border-color:var(--ok,#3f9a3a);background:color-mix(in srgb,var(--ok,#3f9a3a) 12%,transparent)}
.sk-appmsg{margin:4px 0 8px;padding:8px;border:1px solid var(--line);border-radius:10px}
.acct-phone{padding:8px 10px;border:1px dashed var(--line);border-radius:10px}
/* 🌳 Ash's teachers + review */
.ash-teach-row{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.ash-teach-row>span{flex:1 1 180px}
.aa-review{border:2px solid var(--brand,#e8893a)}
.aa-fact{padding:6px 8px;border-radius:8px;margin:4px 0;background:color-mix(in srgb,currentColor 8%,transparent)}
.aa-fact.ok{color:var(--ok,#3f9a3a)}.aa-fact.bad{color:#c83c28}
.aa-fact small{color:var(--ink)}
/* 🧰 phone top bar: the everyday icons stay, the rest live behind 🧰 (no sideways scrolling) */
html.phone header.top .topright{overflow:visible;max-width:none;flex-wrap:nowrap;gap:6px}
html.phone header.top .topright>.tb-tucked{display:none!important}
html.phone header.top .topright>.bellwrap{position:static;background:none;box-shadow:none}
.tb-tools{position:relative}
.tb-tools.tb-dot::after{content:"";position:absolute;top:4px;right:4px;width:9px;height:9px;border-radius:50%;background:#e8493a}
.tb-ov{position:fixed;inset:0;z-index:60;background:rgb(0 0 0 / .45);display:flex;align-items:flex-start;justify-content:center;padding:calc(70px + env(safe-area-inset-top,0px)) 16px 16px}
.tb-sheet{width:min(420px,100%);background:var(--surface-solid,var(--surface));border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:0 12px 32px rgb(0 0 0 / .35)}
.tb-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.tb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tb-tile{position:relative;display:grid;justify-items:center;gap:4px;padding:12px 6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;min-height:76px}
.tb-tile .tb-ic{font-size:24px;line-height:1;display:grid;place-items:center;height:28px}
.tb-tile .tb-lab{font-size:.8rem;text-align:center;line-height:1.2}
.tb-tile .bell-count{position:absolute;top:6px;right:8px}
/* 🔔 Crew app notifications */
.cb-panel{position:fixed;z-index:50;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));top:calc(70px + env(safe-area-inset-top,0px));max-height:70vh;overflow:auto;background:var(--surface-solid,var(--surface));border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:0 12px 32px rgb(0 0 0 / .35)}
@media (min-width:721px){.cb-panel{left:auto;width:380px}}
.cb-item{display:grid;gap:2px;padding:8px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.cb-item.new{background:color-mix(in srgb,var(--brand,#e8893a) 12%,transparent);border-radius:8px}
/* 🔗 whole rig: big and first on the pre-trip picker */
.sh-rigbtn{display:grid;gap:4px;justify-items:start;text-align:left;width:100%;padding:14px 16px;border-radius:14px;border:2px solid var(--brand,#e8893a);background:color-mix(in srgb,var(--brand,#e8893a) 16%,var(--surface));color:var(--ink);font:inherit;cursor:pointer;min-height:76px}
.sh-rigbtn b{font-size:1.15rem}
.sh-rigbtn small{color:var(--muted,#bbb)}
.sh-rigic{font-size:22px;letter-spacing:2px}
.sh-or{display:block;text-align:center;margin:10px 0 4px}
.sh-rigstart{border:2px solid var(--brand,#e8893a)}
.sh-rig{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.sh-rig .sh-asset{min-height:0;padding:10px 12px}
.sh-rig .sh-asset img{height:64px}
.sh-riggo{position:sticky;bottom:0;z-index:2;width:100%;margin-top:10px;box-shadow:0 -8px 16px rgb(0 0 0 / .35)}
.sh-riggo:disabled{opacity:1;background:var(--surface-solid,#1d140d);color:var(--muted,#aaa);border:1px dashed var(--line)}
.prot-how summary{cursor:pointer;font-weight:600;padding:6px 0}
.prot-steps{margin:6px 0 0;padding-left:22px;display:grid;gap:6px}
/* 🎞️ GIFs in Messages */
.c-tool.c-gif{font-weight:800;font-size:12px;letter-spacing:.02em}
.cf-gif .hd-body{display:grid;gap:10px}
.cf-gifs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;max-height:55vh;overflow:auto}
.cf-gifb{padding:0;border:0;background:var(--sunk,#0002);border-radius:8px;overflow:hidden;cursor:pointer;aspect-ratio:1;display:block}
.cf-gifb img{width:100%;height:100%;object-fit:cover;display:block}
.cf-gifb:focus-visible{outline:3px solid var(--brand,#e8893a);outline-offset:2px}
.cf-giphy{text-align:right}
.c-gifimg{position:relative;display:inline-block}
.c-gifimg img{width:auto;height:auto;max-width:min(260px,100%);max-height:220px;border-radius:10px}
.c-giphy{position:absolute;right:6px;bottom:4px;font-size:9px;font-weight:700;color:#fff;text-shadow:0 1px 2px #000;opacity:.8}
/* 🧪 test mode bar: striped so it can't be mistaken for the real app */
.tm-bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:70;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px max(12px,env(safe-area-inset-left,0px));color:#1b1300;font-size:14px;
  background:repeating-linear-gradient(-45deg,#ffd23f 0 14px,#f4b400 14px 28px);box-shadow:0 2px 8px rgb(0 0 0 / .35)}
.tm-who{flex:1 1 220px;min-width:0}
.tm-b{border:1.5px solid #1b1300;background:#fff8;color:#1b1300;border-radius:999px;padding:4px 12px;font:inherit;font-weight:700;cursor:pointer}
.tm-b:focus-visible{outline:3px solid #1b1300;outline-offset:2px}
.tm-stop{background:#1b1300;color:#ffd23f}
@media (max-width:520px){.tm-bar{font-size:13px;padding-block:6px}.tm-b{padding:3px 10px}}
/* 📦 Inventory sub-tabs */
.inv-tabs{display:flex;flex-wrap:wrap;gap:6px}
.inv-tab{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:.9rem;cursor:pointer;white-space:nowrap}
.inv-tab.on{background:var(--brand,#e8893a);border-color:var(--brand,#e8893a);color:#1b1300;font-weight:700}
.inv-tab.inv-new{border-style:dashed}
.inv-tab:focus-visible{outline:3px solid var(--brand,#e8893a);outline-offset:2px}
/* 📷 finished inspections */
.insp-hist{display:grid;gap:2px;text-align:left;width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:8px 10px;font:inherit;cursor:pointer;margin-bottom:6px}
.insp-ans{display:grid;gap:4px;padding:8px 0;border-bottom:1px solid var(--line)}
.insp-ans.bad>b,.insp-pt.bad>span{color:#d6503c}
.insp-pt{display:grid;gap:2px;padding-left:14px}
.insp-pics{display:flex;flex-wrap:wrap;gap:6px}
.insp-pics img{width:96px;height:96px;object-fit:cover;border-radius:8px;cursor:zoom-in}
/* 🧰 workspaces, garage, rigs, lockers */
.ws-card.today{border-left:4px solid var(--ok,#4cc16a)}
.ws-out{gap:6px}
.ws-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.ws-line>div{flex:1 1 200px;min-width:0;display:grid;gap:2px}
.ws-line.back{border-color:#5aa9e6;background:color-mix(in srgb,#5aa9e6 10%,transparent)}
.ws-line.warn{border-color:#e08a2c}
.ws-picks{gap:4px 12px}
.ws-garage{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.ws-unit{display:grid;gap:4px;align-content:start;border:1px solid var(--line);border-radius:12px;padding:8px;background:var(--surface)}
.ws-unit img{width:100%;height:80px;object-fit:cover;border-radius:8px}
.ws-lk>summary{cursor:pointer;padding:8px 0;font-weight:600}
.ws-gear{flex-basis:100%}
/* 🌙 readable in every look (update 77): these warning tints used a fixed light background with the theme's own text
   color, so on the dark woods looks the text was white on near-white (blank-looking cards on the Shop Desk Home).
   They now tint the theme's own surface instead, so they read in light and dark. */
.sh-todoi.lv0,.sh-item.fail,.tg-r.bad,.tk-health.tk-h-sick,.tk-health.tk-h-bloated{background:color-mix(in srgb,#d63c2f 16%,var(--surface))!important;color:var(--ink)}
.sh-todoi.lv1,.sh-tile.warn,.sh-tank.low,.sh-line.late,.gd3-health{background:color-mix(in srgb,#e0662a 16%,var(--surface))!important;color:var(--ink)}
.sh-parts tr.low td,.st-btable tr.flag td{background:color-mix(in srgb,#e0a02a 14%,var(--surface))!important;color:var(--ink)}
.tk-health.tk-h-chubby,.tk-health.tk-h-lonely,.st-rcard.talk{background:color-mix(in srgb,#e0a02a 14%,var(--surface))!important;color:var(--ink)}
.st-rcard.well{background:color-mix(in srgb,#d98bb0 14%,var(--surface))!important;color:var(--ink)}
.ash-corr{background:color-mix(in srgb,#8a5ad9 14%,var(--surface))!important;color:var(--ink)}

/* 💵 receipts: check number and split payments (update 81) */
.rc-split{display:flex;flex-direction:column;gap:8px}
.rc-line{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rc-line select{flex:2 1 160px}.rc-line input{flex:1 1 90px;min-width:0}
.rc-left{color:var(--muted)}.rc-left.ok{color:var(--good,#2e8b57)}
.rc-splitbtn{align-self:flex-start}

/* 📚 Library (update 81) */
.lib .lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.lib-tile{display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px;color:var(--ink);cursor:pointer;min-width:0}
.lib-tile:hover{border-color:var(--accent,#e08a2c)}
.lib-cov{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:color-mix(in srgb,var(--ink) 8%,var(--surface));display:grid;place-items:center}
.lib-cov img{width:100%;height:100%;object-fit:cover}.lib-cov.big{width:120px;flex:none}
.lib-kind{position:absolute;right:4px;bottom:4px;font-size:1.1rem;background:var(--surface);border-radius:999px;padding:0 4px}
.lib-tx{display:flex;flex-direction:column;gap:2px;min-width:0}.lib-tx b{font-size:.95rem;line-height:1.2;overflow-wrap:anywhere}
.lib-pct{color:var(--good,#2e8b57)}.lib-by{color:var(--accent,#e08a2c)}.lib-late{color:var(--bad,#c83c28)}
.lib-tabs{display:flex;flex-wrap:wrap;gap:6px}
.lib-top{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.lib-ch{display:flex;flex-direction:column}.lib-chap{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:8px 4px;color:var(--ink);cursor:pointer}.lib-chap.on{font-weight:700}
.lib-links{display:flex;flex-direction:column;gap:6px}.lib-links a{display:block;padding:4px 0}.lib-links-box{display:flex;flex-wrap:wrap;gap:6px}
.lib-find{display:grid;grid-template-columns:72px 1fr;gap:10px;border:1px solid var(--line);border-radius:12px;padding:8px}
.lib-ask{flex-wrap:wrap}.lib-ask input{flex:1 1 220px;min-width:0}
.lib-sugrow{display:block;width:100%;text-align:left;background:none;border:0;padding:6px 0;color:var(--ink);cursor:pointer}
.lib-people{display:flex;flex-wrap:wrap;gap:6px}
.lib-bar{position:fixed;left:8px;right:8px;bottom:calc(env(safe-area-inset-bottom,0px) + 8px);z-index:60;display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:6px 8px;box-shadow:0 6px 24px rgb(0 0 0 / .35)}
body.crew-app .lib-bar,html:has(#crewbar) .lib-bar{bottom:calc(env(safe-area-inset-bottom,0px) + 76px)}
.lib-bar-cov{width:40px;height:40px;border-radius:6px;object-fit:cover}
.lib-bar-info{display:flex;flex-direction:column;min-width:0;flex:1 1 140px}.lib-bar-info b,.lib-bar-info small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-b{background:none;border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:6px 10px;font:600 .9rem var(--body);cursor:pointer;min-width:44px;min-height:40px}
.lib-pp{background:var(--accent,#e08a2c);color:#fff;border-color:transparent;min-width:52px}
.lib-spd{max-width:120px}.lib-pos{min-width:84px;text-align:right}

.lib-art{display:flex;flex-direction:column;gap:3px;border-bottom:1px solid var(--line);padding:8px 0}
.lib-art-t{font-weight:700;color:var(--ink);text-decoration:none;line-height:1.25}.lib-art-t:hover{text-decoration:underline}
.lib-art-s{margin:2px 0;color:var(--muted);font-size:.9rem}

.lib-extra{display:flex;gap:6px;align-items:center;flex-basis:100%}
@media (max-width:640px){.lib-bar .lib-extra{display:none}.lib-bar.open .lib-extra{display:flex}.lib-bar{flex-wrap:wrap}.lib-bar-info{flex:1 1 90px}.lib-bar-cov{width:34px;height:34px}}
@media (min-width:641px){.lib-more{display:none}.lib-extra{flex-basis:auto}}
.lib-tile .lib-cov:not(:has(img)){aspect-ratio:3/1}

/* 📋 inspection tiles (update 81): emoji + name, tap anywhere to start */
.insp-due{--tile:color-mix(in srgb,var(--ink) 4%,var(--surface))}
.insp-tile{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:14px;background:var(--tile);overflow:hidden}
.insp-tile.insp-due-now{border-color:color-mix(in srgb,#e08a2c 60%,var(--line))}.insp-tile.banner{border-left:5px solid #e08a2c}
.insp-tile.insp-done{opacity:.85}
.insp-main{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:0;color:var(--ink);padding:12px;cursor:pointer;min-height:64px}
.insp-main:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}
.insp-ic{font-size:2rem;line-height:1;flex:none;width:44px;text-align:center}
.insp-tx{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0;flex:1}.insp-tx b{font-size:1.05rem;overflow-wrap:anywhere}
.insp-go{font-size:1.8rem;color:var(--muted);flex:none}
.insp-extra{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 10px 68px}

/* 📚 Crew app: the Library opens as its own page (update 82) */
.lib-sheet{position:fixed;inset:0;z-index:55;background:var(--bg);overflow:auto;padding:12px 12px calc(120px + env(safe-area-inset-bottom,0px))}
.lib-sheet[hidden]{display:none}.lib-sheet-head{display:flex;justify-content:flex-end;position:sticky;top:0;z-index:2}

/* 🔗 links and link previews in Messages (update 83) */
.c-link{color:inherit;text-decoration:underline;overflow-wrap:anywhere}
.c-linkcard{display:flex;flex-direction:column;margin-top:6px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);color:var(--ink);text-decoration:none;max-width:320px}
.c-linkcard img{width:100%;max-height:180px;object-fit:cover;display:block}
.c-linktx{display:flex;flex-direction:column;gap:2px;padding:8px 10px}.c-linksite{color:var(--muted);text-transform:lowercase}.c-linkdesc{color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.key-ask{color:var(--warn,#b45309);font-weight:600}

/* 🗺️ Live map (update 84) */
.lm-wrap{display:flex;flex-wrap:wrap;gap:10px}
.lm-box{flex:999 1 520px;min-width:0;height:min(68vh,620px);min-height:360px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.lm-side{flex:1 1 220px;display:flex;flex-direction:column;gap:4px;max-height:min(68vh,620px);overflow:auto}
.lm-item{display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:8px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--ink);cursor:pointer;min-height:44px}
.lm-map{position:relative;width:100%;height:100%;overflow:hidden;background:#dfe7dc;touch-action:none;cursor:grab;user-select:none}
.lm-tiles,.lm-marks{position:absolute;inset:0}
.lm-tile{position:absolute;left:0;top:0;width:256px;height:256px;pointer-events:none;overflow:hidden}
.lm-timg{display:block;width:256px;height:256px;max-width:none}
.lm-pin{position:absolute;left:0;top:0;display:flex;align-items:center;gap:4px;background:none;border:0;padding:0;margin:-9px 0 0 -9px;cursor:pointer}
.lm-dot{position:relative;display:inline-block;width:18px;height:18px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 4px rgb(0 0 0 / .5);flex:none}
.lm-item .lm-dot{width:14px;height:14px;border-width:2px}
.lm-arrow{position:absolute;left:50%;top:-12px;width:0;height:0;margin-left:-5px;border:5px solid transparent;border-bottom:8px solid #1b4d2b;transform-origin:5px 21px}
.lm-label{background:rgb(255 255 255 / .92);color:#1d2a22;font:700 12px/1.2 var(--body,system-ui);padding:2px 6px;border-radius:6px;white-space:nowrap;box-shadow:0 1px 3px rgb(0 0 0 / .3)}
.lm-pin.on .lm-label{background:#1d2a22;color:#fff}
.lm-zbox{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:4px}
.lm-z{width:40px;height:40px;border-radius:8px;border:1px solid #9aa59c;background:#fff;color:#1d2a22;font:700 20px/1 system-ui;cursor:pointer}
.lm-attr{position:absolute;right:0;bottom:0;background:rgb(255 255 255 / .85);font:11px system-ui;padding:1px 6px}.lm-attr a{color:#245}
.lm-info{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px}
.lm-off{padding:24px}

.lm-dot.lm-ico{width:30px;height:30px;background:#fff;border-width:3px;border-style:solid;display:grid;place-items:center;font-size:17px;line-height:1}
.lm-item .lm-dot.lm-ico{width:26px;height:26px;font-size:14px}
.lm-item{grid-template-columns:28px 1fr auto}.lm-nm{display:flex;flex-direction:column;min-width:0}
.lm-pin{margin:-15px 0 0 -15px}
.lm-label .lm-sub{display:block;font-weight:600;font-size:11px;color:#455}
.lm-pin.on .lm-label .lm-sub{color:#cfe}
.lm-arrow{top:-13px}
.lm-icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}
.lm-icon{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);cursor:pointer;min-height:64px}
.lm-icon.on{border-color:#2e9e4f;box-shadow:0 0 0 2px #2e9e4f inset}.lm-icon-e{font-size:26px}
/* AI Staff sub-tabs (update 84): one small part at a time, no long scrolling */
.st-subtabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}
.st-subtab{border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--sunk,var(--surface));color:var(--ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.st-subtab.on{background:#2e7d32;border-color:#2e7d32;color:#fff}
.st-subtab[hidden]{display:none}
.st-meetwrap>.st-sub>.st-subpane>.panel{border:0;padding:0;background:none;box-shadow:none;margin:0}
.st-handled{margin-top:8px}.st-handled>summary{cursor:pointer;color:var(--muted,#888);font-weight:600}
/* report cards readable on dark backgrounds too (they were white with pale text) */
.st-rcard,.st-rcard b,.st-rcard span{color:var(--ink)}
.st-rcard.good{background:color-mix(in srgb,#4cc16a 14%,var(--surface))!important}
.st-rcard.sully{background:color-mix(in srgb,#5aa9e6 14%,var(--surface))!important}
.st-rcard.talk{background:color-mix(in srgb,#e0a02a 14%,var(--surface))!important}
.st-rcard.well{background:color-mix(in srgb,#d98bb0 14%,var(--surface))!important}
.st-rcard .muted{color:var(--muted,#888)}
/* 📌 Library sources & 🎧 podcasts */
.lib-src{gap:6px}.lib-srclinks{flex-wrap:wrap;gap:6px}
.lib-eps{max-height:60vh;overflow:auto}
.lib-ep{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.lib-ep:hover{border-color:#2e7d32}
/* 🎥 Gym videos (update 84) */
.gv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.gv-clip{display:flex;flex-direction:column;gap:4px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:8px;background:var(--surface);color:var(--ink)}
.gv-thumb{width:100%;aspect-ratio:16/10;border:0;border-radius:10px;background:linear-gradient(135deg,#1f6f63,#2e7d32);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;font:inherit}
.gv-play{font-size:28px}
.gv-fig{color:#2e7d32;display:block}
:root[data-tone="dark"] .gv-fig,:root[data-woods] .gv-fig{color:#8fd19e}
.gv-box{max-width:760px}
.gv-stage{position:relative;background:#000;border-radius:12px;overflow:hidden}
.gv-stage video{width:100%;max-height:62vh;display:block}
.gv-card{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,#1f6f63ee,#2e5a3aee);color:#fff;text-align:center;transition:opacity .6s;pointer-events:none}
.gv-card img{width:84px;height:84px;border-radius:50%}.gv-card b{font-size:20px}.gv-card.off{opacity:0}
.gv-cap{position:absolute;left:8px;right:8px;bottom:48px;text-align:center;color:#fff;font-weight:700;font-size:18px;text-shadow:0 1px 4px #000,0 0 2px #000;pointer-events:none}
.gv-cap:empty{display:none}
.gv-prow{display:grid;grid-template-columns:160px 1fr;gap:10px;align-items:start}
.gv-pend{border-color:#f2b233}
.dp-wodemo{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
@media (max-width:560px){.gv-prow{grid-template-columns:1fr}}
/* 📐 Measure a property */
.pm-box{max-width:960px;width:min(960px,96vw)}
.pm-find input{flex:1;min-width:220px}
.pm-map{height:min(62vh,560px);border-radius:12px;overflow:hidden;position:relative}
.pm-map .lm-map{cursor:crosshair}
.pm-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.pm-lawn{fill:rgba(76,193,106,.32);stroke:#4cc16a;stroke-width:3}
.pm-cut{fill:rgba(242,178,51,.35);stroke:#f2b233;stroke-width:3;stroke-dasharray:6 4}
.pm-lawn.on,.pm-cut.on{stroke-width:4}
polyline.pm-lawn,polyline.pm-cut{fill:none}
.pm-house{fill:rgba(224,83,46,.28);stroke:#e0532e;stroke-width:2;stroke-dasharray:4 3}
.pm-dot{fill:#fff;stroke:#1f6f63;stroke-width:2}
.pm-areas{display:flex;flex-direction:column;gap:6px}
.pm-area{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:4px 8px;background:var(--surface)}
.pm-area.on{border-color:#4cc16a}.pm-area.cut{border-style:dashed}
.pm-area input{flex:1;min-width:0}
.pm-pick{border:0;background:none;font-size:18px;cursor:pointer;color:var(--ink)}
.pm-n{white-space:nowrap;font-weight:600}
.pm-total{font-size:18px}
.pm-saved{background:color-mix(in srgb,#5aa9e6 14%,var(--surface));border-radius:10px;padding:8px 10px}
.est-measure{margin-left:6px;white-space:nowrap}
/* 🔗 Library link cards */
.lib-card{border-left:6px solid var(--card,#2e7d32);background:color-mix(in srgb,var(--card,#2e7d32) 12%,var(--surface))}
.lib-swatches{display:flex;gap:6px;flex-wrap:wrap}
.lib-sw{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer}
.lib-sw.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface) inset}
.lib-emoji{width:5em}
/* 📻 Library radio */
.lib-station{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:var(--surface);color:var(--ink)}
.lib-station .stack{flex:1;min-width:0}.lib-station b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lib-stic{width:36px;height:36px;border-radius:8px;object-fit:cover;background:#fff}
.lib-stplay{min-width:40px}
/* 👕 Buds Threads: our art, color fix */
.mr-brandimg{width:100%;aspect-ratio:1;object-fit:contain;background:#f4f4f4;border-radius:8px}
.mr-cfrow{display:flex;gap:12px;flex-wrap:wrap}.mr-cf{width:100%;max-width:360px;height:auto;border-radius:10px;border:1px solid var(--line)}
.mr-layout{gap:4px}
/* ✅ tasks from approved staff reports */
.tq-approved{border:1px solid #4cc16a;background:color-mix(in srgb,#4cc16a 14%,var(--surface));color:var(--ink);border-radius:10px;padding:8px 12px;margin-bottom:10px}
.tq-notes{min-height:5em;resize:vertical}
/* 🕘 GPS history */
.lm-hmap{height:min(55vh,480px);border-radius:12px;overflow:hidden;position:relative}
.lm-hsvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.lm-hline{fill:none;stroke:#1b6fd8;stroke-width:4;stroke-linejoin:round;stroke-linecap:round;opacity:.85}
.lm-hstop{fill:#e0532e;stroke:#fff;stroke-width:2}.lm-hstop.idle{fill:#e08a2c}
.lm-hnum{fill:#fff;font:700 11px system-ui,sans-serif;text-anchor:middle}
.lm-hnow{fill:#2e9e4f;stroke:#fff;stroke-width:3}
.lm-hsum{display:flex;flex-wrap:wrap;gap:6px}.lm-hchip{background:var(--sunk);border-radius:99px;padding:4px 10px;font-size:13px;color:var(--ink)}
.lm-hrep input{flex:1;min-width:120px}.lm-hclock{white-space:nowrap}
.lm-hstoprow{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
/* 🤖 Coach versions */
.gv-coachlook{width:160px;border-radius:12px;border:1px solid var(--line);background:#eef3ec}
.gv-aijob{color:#d9822b;font-weight:600}
/* ⚠️ a card still unanswered (pre-trips and inspections) */
.sh-miss{outline:3px solid #e0532e;outline-offset:2px;border-radius:12px;animation:sh-miss-pulse 1.2s ease 2}
.sh-misstag{color:#fff;background:#e0532e;font-weight:700;font-size:13px;border-radius:8px;padding:2px 8px;display:inline-block;margin-bottom:6px}
@keyframes sh-miss-pulse{50%{outline-color:#f2b233}}
.qr-quote{font-size:1.6rem;display:block}.qr-biz{display:block;color:var(--muted);margin-bottom:4px}
/* 🪵 Free chips & logs sign-up page */
.chip-what{display:flex;gap:8px;flex-wrap:wrap}.chip-opt{border:2px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
.chip-opt.on{border-color:#2e7d32;background:color-mix(in srgb,#2e7d32 14%,var(--surface))}
.chip-prev{width:100%;max-height:260px;object-fit:cover;border-radius:12px;margin:6px 0}
.chip-rules li{margin:6px 0;line-height:1.4}.chip-agree{display:flex;gap:8px;align-items:center;margin:12px 0}.chip-agree input{width:24px;height:24px}
.chip-link{word-break:break-all;font-weight:600}.chip-note{background:#fdf1d2;color:#7a5a10;border-radius:10px;padding:8px}
.sh-drop{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:8px;background:var(--surface)}
.sh-drop img{width:110px;height:90px;object-fit:cover;border-radius:8px}
/* 📊 Cost study and 🚚 travel */
.est-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.est-kpi{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface);display:flex;flex-direction:column}
.est-sug{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface)}.est-sug input{width:20px;height:20px;margin-top:2px}
.est-travel{display:block}
.lib-rsearch input{flex:1;min-width:200px}.lib-near>summary{cursor:pointer;font-weight:700;margin:8px 0}
.lib-mres{cursor:default}
/* 🌙 readable in every look, round 2 (update 86): the rest of the boxes with a fixed light background and the theme's
   own text color (quiz results, Tank's health line, Ash's notes and school card, Hazel's report). On the dark woods
   looks their text turned white on near-white. They now tint the theme's own surface, so they read in light and dark. */
.tg-r.good,.st-rcard.good,.tk-health,.ash-cust,.ash-school{background:color-mix(in srgb,#2e9e4f 16%,var(--surface))!important;color:var(--ink)}
.st-rcard.sully{background:color-mix(in srgb,#5aa9e6 16%,var(--surface))!important;color:var(--ink)}
.ash-bar{background:color-mix(in srgb,#2e9e4f 30%,var(--surface))!important}
:root[data-woods] .aa-ti,:root[data-tone="dark"] .aa-ti{background:#20372a}

/* 📒 QuickBooks (update 87) */
.est-qbo,.qbo-ok{background:color-mix(in srgb,#2e9e4f 14%,var(--surface))!important;color:var(--ink);padding:8px 10px;border-radius:10px}
.qbo-note{background:color-mix(in srgb,#e0a100 16%,var(--surface))!important;color:var(--ink);padding:8px 10px;border-radius:10px}
.qbo-steps li{margin:4px 0;overflow-wrap:anywhere}
.qbo-table{border-collapse:collapse;margin-top:6px;min-width:260px}.qbo-table td{padding:4px 10px;border-bottom:1px solid var(--line,#ddd)}.qbo-table td.num{text-align:right;font-variant-numeric:tabular-nums}.qbo-table tr.strong td{font-weight:700}

/* 🗂️ tabs on long pages (update 88) */
.pt-off{display:none!important}
.pt-nav{grid-column:1/-1;flex-wrap:wrap;overflow:visible;position:static}
.pt-nav .pt-count{margin-left:6px;background:var(--accent);color:var(--accent-ink);border-radius:99px;padding:1px 7px;font-size:12px}
.pt-nav button[aria-selected="true"] .pt-count{background:var(--accent-ink);color:var(--accent)}
.hm-every>summary{cursor:pointer;list-style:none;padding:2px 0}.hm-every>summary::-webkit-details-marker{display:none}.hm-every>summary b::after{content:" ▾";font-weight:400}.hm-every[open]>summary b::after{content:" ▴"}
.dp-open{align-self:flex-start}.dp-more{display:flex;flex-direction:column;gap:10px}.dp-more[hidden]{display:none}
/* 🧰 Crew app: My tools as tiles (update 88) */
.crew-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.crew-tools>section>.panel{margin:0;padding:10px 12px;height:100%;box-sizing:border-box;cursor:pointer;gap:6px}
.crew-tools .panel-head{flex-direction:column;align-items:flex-start;gap:6px;margin:0}
.crew-tools h2,.crew-tools h3{font-size:15px;margin:0}
.crew-tools .panel>:not(.panel-head):not(.crew-tile-keep){display:none!important}
.crew-tools .panel-head .btn{font-size:12px;padding:5px 10px}
.crew-memes-wrap>summary{cursor:pointer;padding:2px 0}
/* 🕹️ Games as a grid of picture tiles (update 88): tap a tile for what it is; Play starts it */
.quest-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px;align-items:stretch}
.quest-grid>section,.quest-grid>section>:not(.quest-card){display:contents}
.quest-grid>section[hidden],.quest-grid [hidden]{display:none!important}
.quest-grid>.sub-back{grid-column:1/-1}   /* the ← Menu bar spans the whole row (it was one sticky dark square over the first game) */
.quest-grid>section>:not(.quest-card)>:not(.quest-card),.quest-grid .turn-banner{grid-column:1/-1}
.quest-grid .quest-card{flex-direction:column!important;align-items:stretch;gap:8px;padding:10px;margin:0;cursor:pointer;text-align:left}
.quest-grid .quest-art{width:100%;height:auto;aspect-ratio:1;max-height:150px;object-fit:cover}
.quest-grid .quest-txt{gap:3px}.quest-grid .quest-txt h2{font-size:16px}
.quest-grid .quest-txt>.label,.quest-grid .quest-txt>p,.quest-grid .quest-badges,.quest-grid .quest-meta>span:not(:first-child){display:none}
.quest-grid .quest-meta{font-size:.8rem;margin:0}
.quest-grid .quest-txt>.btn{align-self:stretch;margin-top:auto}
.quest-grid .quest-card.quest-open{grid-column:1/-1;flex-direction:row!important}
.quest-grid .quest-card.quest-open .quest-art{width:120px;max-height:none;flex:none}
.quest-grid .quest-card.quest-open .quest-txt>p,.quest-grid .quest-card.quest-open .quest-txt>.label,.quest-grid .quest-card.quest-open .quest-badges,.quest-grid .quest-card.quest-open .quest-meta>span{display:revert}
.quest-grid .quest-card.quest-open .quest-txt>.btn{align-self:flex-start}
.quest-grid .quest-card.quest-open .quest-art{height:120px;aspect-ratio:1;align-self:flex-start}
/* 🎯 Lead finder (update 88) */
.lf-head{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}.lf-head b{font-size:1.02rem}
.lf-card.lf-new{border-left:4px solid var(--accent)}
.lf-st{flex:none;font-size:12px;padding:2px 8px;border-radius:99px;border:1px solid var(--line)}
.lf-links{flex-wrap:wrap;gap:6px 14px;font-size:.92rem}.lf-acts{flex-wrap:wrap;gap:8px;align-items:center}.lf-acts select{width:auto}
.lf-due{font-weight:600}
.lf-draft{border-top:1px solid var(--line);padding-top:8px}.lf-draft textarea{width:100%}
.lf-check{margin:0;padding:6px 10px;border-radius:8px;color:var(--ink)}.lf-ok{background:color-mix(in srgb,#2e9e4f 14%,var(--surface))!important}.lf-careful{background:color-mix(in srgb,#e0a100 16%,var(--surface))!important}.lf-stop{background:color-mix(in srgb,#d64545 16%,var(--surface))!important}
.lf-warn{background:color-mix(in srgb,#e0a100 16%,var(--surface))!important;color:var(--ink);padding:6px 10px;border-radius:8px}
.cd-install-dlg{max-width:520px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:16px;padding:18px;background:var(--bg)!important;color:var(--ink);box-shadow:0 12px 40px rgb(0 0 0 / .35)}.cd-install-dlg::backdrop{background:rgb(0 0 0 / .45)}
/* 👆 bigger tap targets on forms on phones (update 89): checkboxes, choices, pass/fail */
@media (max-width:700px),(pointer:coarse){
  input[type=checkbox],input[type=radio]{width:26px;height:26px;min-width:26px;flex:none;accent-color:var(--accent)}
  .ps-field input[type=checkbox],.ps-field input[type=radio]{width:100%!important;height:100%!important;min-width:0!important}
  .fk-opt{padding:14px;min-height:52px;font-size:1.05rem;gap:12px}
  .tf-opt{padding:14px 0;min-height:52px;font-size:1.05rem}.tf-opt input{width:26px;height:26px;margin-top:0}
  .sh-ok,.sh-no{width:64px;height:54px;font-size:24px}.sh-btns{gap:10px}
  label.opt,label.cal-pickone{min-height:44px;align-items:center}
  .fl-row input[type=checkbox]{width:26px;height:26px}
}

/* 🤖 AI clips & images (update 91) */
.aim-box{max-width:520px}
.aim-cost{font-size:.9em;opacity:.85}
.aim-thumb,.aim-result{max-width:100%;max-height:340px;border-radius:12px;display:block;background:#0002}
.aim-tag{display:inline-block;background:#6b4fd8;color:#fff;border-radius:999px;padding:2px 10px;font-weight:700;font-size:.85em;width:max-content}
.aim-err{color:#c62828}
.aim-btns{margin-top:6px;gap:6px;flex-wrap:wrap}
.aim-tabs{gap:6px;flex-wrap:wrap}
.aim-job{padding:4px 0;border-bottom:1px solid #0001;font-size:.92em}
.gv-ways{gap:8px;flex-wrap:wrap}

/* 📋 Jobs Desk (update 92) */
.cu-list{display:flex;flex-direction:column;gap:6px}
.cu-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--line,#0002);background:var(--sunk,rgba(127,127,127,.1));color:var(--ink,inherit);cursor:pointer;width:100%}
.cu-row small{opacity:.75}
.cu-tags{color:var(--ok,#2e7d32)}
.cu-chips{display:flex;flex-wrap:wrap;gap:6px}.cu-chip{background:#2e7d3222;color:inherit;border-radius:999px;padding:2px 10px;font-size:.85em}
.cu-contacts{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center}.cu-contact{font-weight:600}
.cu-hrow{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line,#0001);flex-wrap:wrap}
.cu-prop{border:1px solid var(--line,#0002);border-radius:12px;padding:10px}
.cu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px}
.cu-tile{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;border:0;padding:0;background:#0002;cursor:pointer}
.cu-tile img{width:100%;height:100%;object-fit:cover;display:block}
.cu-ficon{font-size:2em}.cu-play{position:absolute;inset:auto 6px 6px auto;background:#000a;color:#fff;border-radius:999px;padding:2px 8px;font-size:.8em}
.cu-stage{position:absolute;left:6px;top:6px;border-radius:999px;padding:1px 8px;font-size:.72em;font-weight:700;color:#fff;background:#555}
.cu-stage.before{background:#c2410c}.cu-stage.during{background:#1d4ed8}.cu-stage.after{background:#15803d}
.cu-cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,#000b);color:#fff;font-size:.72em;padding:10px 6px 4px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cu-ways{gap:8px;flex-wrap:wrap;align-items:center}
.cu-up{display:flex;gap:8px;align-items:center}.cu-up progress{flex:1}
.cu-vbox{max-width:900px;width:min(96vw,900px)}
.cu-vstage{position:relative;display:flex;justify-content:center;background:#000;border-radius:12px;overflow:hidden;min-height:200px}
.cu-vstage img,.cu-vstage video{max-width:100%;max-height:70vh;display:block}
.cu-nav{position:absolute;top:50%;transform:translateY(-50%);background:#0008;color:#fff;border:0;border-radius:999px;width:44px;height:44px;font-size:26px;cursor:pointer}.cu-nav.prev{left:8px}.cu-nav.next{right:8px}
.cu-vinfo{display:flex;gap:10px;align-items:center}.cu-face{width:40px;height:40px;border-radius:50%;object-fit:cover}
.cu-vrow{gap:8px;flex-wrap:wrap}
.cu-note{border-bottom:1px solid var(--line,#0001);padding:6px 0}.cu-note p{margin:0 0 2px;white-space:pre-wrap}
.cu-switch small{display:inline}

/* ✏️ gym video editor (update 92) */
.gx-overlay{position:absolute;pointer-events:none;left:0;top:0}
.gx-draw.on{pointer-events:auto;touch-action:none;cursor:crosshair}
.gv-stage{position:relative}
.gx-box{max-width:820px;width:min(97vw,820px)}
.gx-stage{position:relative;display:flex;justify-content:center;background:#000;border-radius:12px;overflow:hidden}
.gx-stage video{max-width:100%;max-height:52vh;display:block}
.gx-scrub{width:100%}
.gx-trans,.gx-tabs,.gx-row{gap:6px;flex-wrap:wrap;align-items:center}
.gx-time{font-variant-numeric:tabular-nums;opacity:.8;margin-left:auto}
.gx-item{display:flex;gap:6px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line,#0001);padding:4px 0}.gx-item input{flex:1;min-width:140px}
.gx-swatch{width:30px;height:30px;border-radius:50%;border:2px solid #0004;cursor:pointer}.gx-swatch.on{outline:3px solid var(--accent,#e8742a);outline-offset:2px}

/* 📝 Quotes (update 93) */
.qt-filter{gap:6px;flex-wrap:wrap}
.qt-track{display:flex;flex-wrap:wrap;gap:6px}.qt-track span{border-radius:999px;padding:3px 10px;font-size:.85em}
.qt-tok{background:#2e7d3226}.qt-tno{background:rgba(127,127,127,.15);opacity:.85}
.qt-change{background:#f59e0b22;border-radius:10px;padding:6px 10px;margin:0}
.qt-acts{gap:6px;flex-wrap:wrap}
.qt-line{border:1px solid var(--line,#0002);border-radius:12px;padding:10px}
.qt-lrow{gap:6px;align-items:center;flex-wrap:nowrap}.qt-lrow>input.qt-num,input.qt-num{width:92px!important;flex:0 0 92px;min-width:0}
.qt-amt{margin-left:auto}
.qt-total{display:flex;gap:10px;align-items:baseline;justify-content:flex-end;font-size:1.15em;padding:6px 2px}
.qt-lphotos{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.qt-lphotos img{width:64px;height:64px;object-fit:cover;border-radius:8px}
.qt-pick.on{outline:3px solid var(--accent,#e8742a);outline-offset:-3px}
.qt-est,.qt-sug{color:#2e7d32;font-weight:600}
.qt-warn{background:#f59e0b22;border-radius:10px;padding:8px 10px}
.qt-shot{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:4px 0;border-bottom:1px solid var(--line,#0001)}.qt-shot span{flex:1;min-width:200px;border-radius:8px;padding:4px 8px}
.qt-save{position:sticky;bottom:8px;z-index:3;background:var(--surface,#fff);border:1px solid var(--line,#0002);border-radius:14px;padding:8px 10px;gap:10px;align-items:center;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.qt-kinds{gap:4px 10px;flex-wrap:wrap;font-size:.9em}
.qt-pbox{max-width:640px}
/* the customer's online quote */
.qp-wrap{max-width:720px}
.qp-head h1{margin:0}
.qp-ok{background:#2e7d3226;border-radius:12px;padding:10px 12px;font-weight:600}
.qp-note{background:#f59e0b22;border-radius:12px;padding:10px 12px}
.qp-intro{white-space:pre-wrap}
.qp-lines{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.qp-line{border:1px solid #0002;border-radius:12px;padding:10px 12px}.qp-line.optional{border-style:dashed}
.qp-ltop{display:flex;gap:10px;justify-content:space-between;align-items:flex-start}.qp-amt{font-weight:700;white-space:nowrap}
.qp-desc{margin:4px 0 0;opacity:.85;white-space:pre-wrap}
.qp-pick{display:flex;gap:8px;align-items:center;margin-top:6px;font-weight:600}.qp-pick input{width:24px;height:24px}
.qp-photos{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.qp-photos img{width:96px;height:96px;object-fit:cover;border-radius:10px;cursor:zoom-in}
.qp-group{margin:8px 0 0;font-size:1rem}
.qp-total{display:flex;justify-content:space-between;font-size:1.3em;border-top:2px solid #0003;padding-top:10px}
.qp-actions{display:flex;flex-direction:column;gap:8px;margin:16px 0}.qp-big{min-height:52px;font-size:1.05em}.qp-wise{text-align:center}
.qp-sheet{position:fixed;inset:0;background:#0008;display:flex;align-items:flex-end;justify-content:center;z-index:50;padding:12px}.qp-sheet .fk-card{width:min(560px,100%);max-height:92vh;overflow:auto}
.qp-sigcanvas{width:100%;height:150px;border:2px dashed #0004;border-radius:10px;background:#fff;touch-action:none}
.qp-zoom{position:fixed;inset:0;background:#000d;display:flex;align-items:center;justify-content:center;z-index:60;cursor:zoom-out}.qp-zoom img{max-width:96vw;max-height:92vh}
@media print{.qp-actions,.qp-print,.fk-foot,.qp-note{display:none!important}.qp-terms[open] summary,.qp-terms summary{display:none}.qp-terms{display:block}.qp-photos img{width:72px;height:72px}}

/* ↩️ replying to a message in Bud Chats (update 94) */
.c-replybar{display:flex;gap:8px;align-items:center;border-left:4px solid var(--accent,#e8742a);background:var(--surface,#222);border-radius:10px;padding:6px 10px;margin:6px 10px 0}.c-replybar[hidden]{display:none}
.c-replytxt{flex:1;min-width:0;display:flex;flex-direction:column}.c-replytxt span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85}
.c-replyx{border:0;background:transparent;color:inherit;font-size:18px;cursor:pointer;padding:4px 8px}
.c-quote{display:block;width:100%;text-align:left;border:0;border-left:3px solid currentColor;background:rgba(0,0,0,.12);color:inherit;border-radius:8px;padding:4px 8px;margin:0 0 4px;cursor:pointer;opacity:.85;font:inherit}
.c-quote .c-qname{display:block;font-weight:700}.c-quote .c-qtext{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;font-size:.92em}
.c-msg{transition:transform .15s ease}.c-msg.c-flash .c-bubble{outline:3px solid var(--accent,#e8742a);outline-offset:2px}
.c-rxreply{font-size:14px!important;width:auto!important;padding:0 10px!important;white-space:nowrap}
.c-rxbtn.c-replybtn{right:20px}.c-msg.mine .c-rxbtn.c-replybtn{left:20px;right:auto}
.gx-titlebtn{border:0;background:transparent;color:inherit;font:inherit;font-weight:800;text-align:left;cursor:pointer;padding:6px 4px;min-height:44px;flex:1;text-decoration:underline dotted 2px;text-underline-offset:4px}
/* ⚖️ Legal & data control (update 94) */
.qp-law{font-size:.85rem;color:var(--muted,#6b5b4b);margin:0}.qp-law a{color:inherit;text-decoration:underline}
.lg-gate{position:fixed;inset:0;z-index:9000;background:#0009;display:flex;align-items:flex-start;justify-content:center;padding:16px;overflow:auto}
.lg-card{max-width:640px;width:100%;margin:auto 0;background:var(--surface);color:var(--ink)}
.lg-sec b{display:block}.lg-sec p{margin:.2em 0 0}
.lg-note{background:#f59e0b22;border-radius:12px;padding:10px 12px;margin:0;color:var(--ink,#2a1c12)}
.lg-list{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow:auto}
.lg-row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line,#0001)}
.lg-ok{color:var(--ok,#2e7d32)}
.lg-bar{height:12px;border-radius:99px;background:var(--sunk,#0001);overflow:hidden}.lg-bar span{display:block;height:100%;background:var(--accent,#2e7d32)}.lg-bar span.lg-hot{background:#d97706}
.lg-restore summary{cursor:pointer;font-weight:600}.lg-restore{display:flex;flex-direction:column;gap:8px}
.gv-opts{gap:8px;flex-wrap:wrap}.gv-opts>label{flex:1 1 220px;margin:0}
.cu-visits{margin:4px 0 0;padding-left:18px;font-size:.9rem}.cu-visits li{margin:2px 0}
.c-go{margin-top:6px;align-self:flex-start;white-space:normal;text-align:left}
/* 🛠️ Jobs (update 97) */
.jb-status{font-weight:700;margin:0}.jb-requires,.jb-late{color:#b45309}.jb-note{background:#f59e0b22;border-radius:12px;padding:10px 12px;margin:0;color:var(--ink)}
.jb-visit{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:var(--surface)}
.jb-v-done{opacity:.75}.jb-v-late{border-color:#d97706}.jb-vtop{justify-content:space-between;gap:8px;flex-wrap:wrap}
.jb-crew{margin:0;padding-left:18px}.jb-warn{color:#b45309}
.jb-line{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:8px 0;border-bottom:1px solid var(--line)}.jb-line>p,.jb-line>.jb-photos{grid-column:1/-1;margin:0}.jb-amt{font-weight:700}
.jb-photos{display:flex;gap:6px;flex-wrap:wrap}.jb-photos img{width:64px;height:64px;object-fit:cover;border-radius:8px;cursor:zoom-in}
.jb-x{border:0;background:transparent;color:inherit;cursor:pointer;margin-left:4px;min-width:24px;min-height:24px}
.jb-form{max-width:640px;width:100%;max-height:90vh;overflow:auto}.jb-crewrow{gap:6px;flex-wrap:wrap}.jb-crewrow select{flex:1 1 140px}
.jb-units{display:flex;flex-wrap:wrap;gap:6px;max-height:180px;overflow:auto}.jb-repeat .row{gap:8px;flex-wrap:wrap}
.jb-inv{padding:6px 0;border-bottom:1px solid var(--line)}.jb-log summary{cursor:pointer;font-weight:700}
.jb-form>*{flex-shrink:0}
/* 🛠️ our jobs on the Calendar (update 98) */
.cal-drag{cursor:grab}.cal-drop{outline:2px dashed #b45309;outline-offset:-2px;background:#fde7c755}
.cal-wait{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px}.cal-waitrow{display:flex;gap:6px;flex-wrap:wrap}.cal-waitjob{max-width:260px}
/* 🛠️ My jobs in the Crew app (update 98) */
.jc-row{text-align:left}.jc-today{border-color:#b45309}.jc-box{max-width:680px;width:100%;max-height:92vh;overflow:auto}.jc-box>*{flex-shrink:0}
.jc-head{justify-content:space-between;align-items:center;gap:8px}.jc-head h2{margin:0}.jc-where{margin:0}.jc-gate{font-weight:700;margin:0}.jc-ins{background:var(--sunk);border-radius:10px;padding:8px 10px;margin:0}
.jc-acts{gap:8px;flex-wrap:wrap}.jc-acts .btn{flex:1 1 140px}.jc-me{font-weight:700}.jc-done{font-weight:700;margin:0}
.cu-tile{position:relative}.jc-stage{position:absolute;left:4px;bottom:4px;background:#000a;color:#fff;font-size:11px;border-radius:6px;padding:1px 5px}
/* 🔒 Coming soon (our own Jobber, before it's live) */
#tabs [data-tab="customers"].soon{opacity:.5;filter:grayscale(1);cursor:not-allowed}.soon-tag{display:block;font-size:11px;font-weight:600;opacity:.9}
.jc-soon{opacity:.6;filter:grayscale(1)}.cu-soon{background:#f59e0b22;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
/* 🎮 while a game is open (update 100): nothing floats over it (the 🙋 helpers button, Hazel, Tank's 3D walk-around, 🐞),
   and the page can't zoom or scroll under your thumb. On phones, a tap on 🙋 mid-game opened Tank's 3D view on top. */
html.gaming .ph-dock,html.gaming .hz-buddy,html.gaming .bug-fab,html.gaming .gd3-roam,html.gaming .gd3-paw,html.gaming .tm-bar~.ph-dock{display:none!important}
html.gaming,html.gaming body{touch-action:none;overscroll-behavior:none}
.game-ov button{touch-action:manipulation}
/* ✅ ready to schedule (update 100) */
.rd-ok{font-weight:700;color:var(--ok,#2e7d32)}.rd-warn{background:#f59e0b22;border-radius:10px;padding:8px 10px}.rd-warn ul{margin:4px 0 0;padding-left:18px}
.rd-merch{font-size:.9rem;padding:6px 10px;border-radius:10px;background:#f59e0b22}.rd-merch.ok{background:var(--sunk)}.rd-merch a{word-break:break-all}
/* 🗂️ Office Desk (update 100): Clients · Requests · Quotes · Jobs · Invoices · 🧰 Office tools (Files, Forms, Docs, Sheets, Slides) */
#tabs .in-tools,#tabs .nav-gone{display:none!important}
#tabs .od-tab.soon{opacity:.5;filter:grayscale(1);cursor:not-allowed}
.od-top{display:flex;flex-direction:column;gap:10px}.od-search{width:100%}.od-row{text-align:left}.od-row .od-from{font-size:11px;border:1px solid var(--line);border-radius:6px;padding:0 5px;margin-left:6px;opacity:.8}
.od-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.od-tool{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;font:inherit}.od-tool b{font-size:1.05rem}.od-tool span{font-size:1.8rem}
/* ✝️ Devotions and Chaplain Eli (update 100) */
.verse .dv-reflect{margin:4px 0 0;max-width:75ch;line-height:1.5}
.verse .dv-prayer,.dv-box .dv-prayer{margin:2px 0 0;font-style:italic;max-width:75ch}
.verse .dv-acts{gap:6px;flex-wrap:wrap;margin-top:6px}
.dv-box{max-width:680px;width:min(680px,100%);max-height:min(92vh,900px);overflow:auto}
.dv-head{justify-content:space-between;align-items:center}
.dv-head h2{margin:0}
.dv-tabs{gap:6px;flex-wrap:wrap}
.dv-tab{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:.9rem;cursor:pointer;min-height:36px}
.dv-tab[aria-selected="true"]{background:var(--glow);color:#fff;border-color:transparent}
.dv-verse{border-left:4px solid var(--glow);padding:6px 12px;display:grid;gap:4px}
.dv-verse blockquote{margin:0;font:600 1.02rem/1.55 var(--display)}
.dv-verse cite{font-style:normal;font-size:.85rem;color:var(--muted)}
.dv-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}
.dv-daybtn{min-height:40px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.dv-daybtn.done{background:color-mix(in srgb,var(--glow) 18%,var(--surface))}
.dv-daybtn.next{outline:2px solid var(--glow)}
.dv-donechip{align-self:center;font-size:.9rem;color:var(--muted)}
.dv-jtext,.dv-a,.dv-q{white-space:pre-wrap;margin:0}
.dv-q{align-self:flex-end;background:color-mix(in srgb,var(--glow) 16%,var(--surface));padding:8px 12px;border-radius:12px;max-width:85%}
.dv-a{background:var(--surface);border:1px solid var(--line);padding:8px 12px;border-radius:12px;max-width:92%}
.dv-crisis{border-left:4px solid #c0392b;padding-left:10px;font-weight:600}
.dv-req.closed{opacity:.7}
.dv-req.urgent{border-left:4px solid #c0392b}
.dv-upd{color:var(--muted);white-space:pre-wrap}
.dv-eli{border-left:4px solid var(--glow)}
.dv-chatbtn{margin-top:6px}
/* 🖼️ podcast pictures on the shelf (update 100) */
.lib-srctop{display:flex;gap:12px;align-items:center}
.lib-srccov{width:64px;flex:none}
.lib-srccov .lib-kind{position:absolute;inset:auto 4px 4px auto;font-size:.8rem}
.lib-srccov img+.lib-kind{display:none}
/* 🔊 shared game sound controls (update 100) */
.sfx-ctl{display:inline-flex;align-items:center;gap:4px}
.sfx-ctl .sfx-vol{width:78px;accent-color:var(--glow);cursor:pointer}
.sfx-ctl .sfx-mus.off{opacity:.4;text-decoration:line-through}
@media (max-width:480px){.sfx-ctl .sfx-vol{width:54px}}
/* ↕️ Arrange my menu (update 100) */
.ma-box{max-width:560px;width:min(560px,100%);max-height:min(92vh,900px);overflow:auto}
.ma-head{justify-content:space-between;align-items:center}.ma-head h2{margin:0}
.ma-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ma-item{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:4px 6px}
.ma-item.ma-drag{opacity:.45}.ma-item.ma-over{outline:2px dashed var(--glow)}
.ma-row{display:flex;align-items:center;gap:8px;min-height:40px}
.ma-grip{cursor:grab;color:var(--muted);font-size:1.1rem;padding:0 4px;user-select:none}
.ma-name{flex:1;display:flex;align-items:center;gap:8px;min-width:0}
.ma-name svg{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:2}
.ma-mv{min-width:36px}
.ma-kids{margin:2px 0 4px 26px}.ma-kids summary{cursor:pointer;color:var(--muted);font-size:.88rem;padding:4px 0}
.ma-group>.ma-row .ma-name{font-weight:700}
.ma-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ma-bar select{flex:1;min-width:110px}
.ma-fixed{color:var(--muted);font-size:.9rem;padding:6px 8px;border:1px dashed var(--line);border-radius:8px}
.ma-foot{gap:8px;flex-wrap:wrap}
/* 🧾 Invoices and payments (phase 4, update 101) */
.iv-box{max-width:640px;width:min(640px,100%);max-height:min(92vh,960px);overflow:auto}
.iv-head{justify-content:space-between;align-items:center}.iv-head h2{margin:0}
.iv-top{display:grid;gap:2px}
.iv-chip{justify-self:start;font-weight:700;font-size:.85rem;border-radius:999px;padding:3px 10px;background:var(--surface);border:1px solid var(--line)}
.iv-chip.iv-past_due{border-color:#c0392b;color:#c0392b}.iv-chip.iv-paid{border-color:#2e7d32;color:#2e7d32}
.iv-sum{display:grid;grid-template-columns:1fr auto;gap:2px 12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.iv-bal{font-size:1.15rem}
.iv-line{display:grid;gap:4px;border:1px solid var(--line);border-radius:10px;padding:8px}
.iv-line input,.iv-line textarea{width:100%}
.iv-nums{gap:6px;align-items:center;flex-wrap:wrap}.iv-nums input{width:90px}
.iv-amt{margin-left:auto;font-weight:700}
.iv-field{gap:4px}.iv-field input,.iv-field select,.iv-field textarea{width:100%}
.iv-acts,.iv-more{gap:8px;flex-wrap:wrap}
.iv-pay{gap:8px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:4px 0}
.iv-hist{display:block;color:var(--muted)}
.iv-send,.iv-payf{border-left:4px solid var(--glow)}
.ip-paid span,.ip-paid b{color:#2e7d32;font-weight:600}.ip-bal{font-size:1.15rem}
.fb-stars{display:flex;gap:6px}
.fb-star{font-size:2rem;line-height:1;background:none;border:none;color:#c9a227;cursor:pointer;padding:2px 4px;min-width:44px;min-height:44px}
.fb-person{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}
.ma-move{max-width:150px;font-size:.85rem;padding:4px 6px}
@media (max-width:520px){.ma-row{flex-wrap:wrap}.ma-move{order:5;max-width:none;flex:1 1 100%}}
/* 💬 customer messages and 📥 requests (phase 5, update 103) */
.ms-unread b{font-weight:800}.ms-unread .count{margin-left:6px}
.ms-log{max-height:46vh;overflow:auto;gap:8px;padding:4px}
.ms-msg{border:1px solid var(--line);border-radius:12px;padding:8px 12px;max-width:88%;background:var(--surface)}
.ms-msg.out{align-self:flex-end;background:color-mix(in srgb,var(--glow) 14%,var(--surface))}
.ms-msg.in{align-self:flex-start}
.ms-msg p{margin:4px 0 0;white-space:pre-wrap}
.ms-msg.failed{border-color:#c0392b}
/* 📊 monthly spending (update 231) */
.bill-months{margin-top:12px}
.bill-chart{display:flex;align-items:flex-end;gap:4px;height:140px;padding:6px 0;border-bottom:1px solid var(--line)}
.bill-bar{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;background:none;border:none;padding:0;cursor:pointer;color:var(--muted)}
.bill-fill{display:block;width:100%;max-width:28px;background:var(--accent);border-radius:4px 4px 0 0}
.bill-bar.empty .bill-fill{background:var(--line)}
.bill-bar.on small{color:var(--ink);font-weight:700}
.bill-bar small{font-size:.66rem}
.bill-mline{gap:6px;align-items:center;flex-wrap:nowrap}
.bill-mname{flex:1 1 40%;min-width:0;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bill-mline input{min-width:0}
.bill-mline input:last-child{flex:1 1 30%}
.bill-claude{border-top:1px solid var(--line);padding-top:8px;margin-top:6px}
/* ⏳ keys not set up yet (update 229) */
.key-later-h{margin:14px 0 2px}
.key-later{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-top:6px;background:var(--surface)}
.key-later summary{cursor:pointer;list-style-position:outside}
.key-later p{margin:8px 0}
.key-tag{display:inline-block;font-size:.78rem;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--ink)}
.key-steps{margin:6px 0 8px;padding-left:1.3em}
.key-steps li{margin:4px 0}
/* 💳 bills & cards (update 225) */
.bill-sum{font-size:1.1rem}
.bill-head{display:block;width:100%;text-align:left;font-weight:700;background:none;border:none;border-top:1px solid var(--line);padding:10px 0 4px;color:var(--ink);cursor:pointer}
.bill-edit{flex-wrap:wrap;gap:6px}
.bill-edit input{width:auto;min-width:0}
.bill-c4{max-width:6em}.bill-mo{max-width:9em}
.bill-f{display:flex;flex-direction:column;gap:2px;min-width:0}
.bill-f[hidden]{display:none}
.bill-f select{max-width:100%}
.bill-edit input[type=month],.bill-edit input[type=date]{color-scheme:light dark}
.bill-off{opacity:.6}
.bill-on{gap:4px;align-items:center}
.bill-add{margin-top:8px}
/* 📱 texting looks like a phone's messages app (update 224) */
.ms-thread .ms-log{display:flex;flex-direction:column;max-height:52vh;min-height:180px;gap:6px;padding:8px 4px;background:var(--sunk);border-radius:12px}
.ms-thread .ms-msg{border:none;border-radius:18px;padding:8px 14px;max-width:80%}
.ms-thread .ms-msg.in{background:var(--surface);border-bottom-left-radius:6px;box-shadow:0 1px 0 var(--line)}
.ms-thread .ms-msg.out{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:6px}
.ms-thread .ms-msg.ms-email{border-radius:12px;border:1px solid var(--line);max-width:92%}
.ms-thread .ms-msg.out.ms-email{background:var(--accent-soft);color:var(--ink)}
.ms-thread .ms-msg p{margin:0}
.ms-thread .ms-msg.failed{outline:2px solid var(--warn)}
.ms-meta{display:block;font-size:.72rem;opacity:.75;margin-top:2px}
.ms-msg.out .ms-meta{text-align:right}
.ms-tag{display:block;font-weight:700;font-size:.78rem;margin-bottom:2px}
.ms-day{align-self:center;font-size:.75rem;color:var(--muted);padding:2px 10px;margin:6px 0 2px;border-radius:999px;background:var(--surface)}
.ms-auto{align-self:center;max-width:90%;text-align:center;font-size:.85rem;padding:6px 12px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}
.ms-auto p{margin:2px 0 0;white-space:pre-wrap}
.ms-empty{align-self:center;margin:auto}
.ms-pills{gap:6px}
.ms-pill{flex:1 1 0;min-height:44px;border-radius:999px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font-weight:700;font-size:1rem;cursor:pointer}
.ms-pill.on{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}
.ms-row2{align-items:flex-end;gap:8px;flex-wrap:nowrap}
.ms-ta{flex:1 1 auto;min-width:0;border-radius:18px;resize:vertical;padding:10px 14px}
.ms-send{border-radius:999px;min-height:44px}
.ms-count{display:block}
.ms-count.warn{color:var(--warn)}
.ms-chips,.ms-quick{gap:6px;flex-wrap:wrap}
.ms-chip{border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:6px 12px;min-height:36px;font-size:.88rem;cursor:pointer}
.ms-chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.rq-sec h3{margin:0}.rq-pre{white-space:pre-wrap;margin:0}
.rq-link{word-break:break-all;font-size:.85rem;padding:4px 6px;border-radius:6px;background:var(--surface);border:1px solid var(--line)}
.rq-q select,.rq-q input,.rq-q textarea{width:100%}
.iv-chip.iv-new{border-color:#2e7d32;color:#2e7d32}.iv-chip.iv-converted{opacity:.8}
.jc-onway{margin-right:6px}
/* 📒 Registers (Wallet → Register, update 104) */
.wl-switch{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--sunk);border:1px solid var(--line);align-self:flex-start;flex-wrap:wrap}
.wl-sw{border:0;background:transparent;color:var(--ink);font:inherit;font-weight:600;padding:7px 14px;border-radius:999px;cursor:pointer;min-height:36px}
.wl-sw.on{background:var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.15)}
.rg-card .rg-bal{font-size:1.35rem}
.rg-total{font-weight:700;margin:0}
.rg-top{border-top:4px solid var(--rg,#2d6cdf)}
.rg-bals{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rg-bals>div{display:flex;flex-direction:column;background:var(--sunk);border-radius:12px;padding:10px 12px}.rg-bals b{font-size:1.4rem}.rg-bals small{color:var(--muted)}
.rg-search{width:100%;max-width:420px}
.rg-list{gap:0!important;padding-top:6px;padding-bottom:6px}
.rg-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:4px 0}
.rg-row:last-child{border-bottom:0}.rg-row input[type=checkbox]{width:20px;height:20px;flex:none}
.rg-row.cleared .rg-l b{opacity:.75}
.rg-main{flex:1;min-width:0;display:flex;justify-content:space-between;gap:10px;align-items:center;text-align:left;border:0;background:transparent;color:var(--ink);font:inherit;padding:8px 2px;cursor:pointer}
.rg-l,.rg-r{display:flex;flex-direction:column;min-width:0}.rg-l small,.rg-r small{color:var(--muted)}.rg-l b,.rg-l small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rg-r{align-items:flex-end;flex:none}
.rg-amt.in{color:#2f9e57}.rg-amt.out{color:#c0392b}
.rg-ck{display:flex;align-items:center;gap:8px;margin:6px 0}.rg-ck input{width:20px;height:20px}
.rg-rec img{max-width:100%;max-height:260px;border-radius:10px;border:1px solid var(--line);cursor:zoom-in}
.rg-swatches{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 10px}
.rg-sw{width:34px;height:34px;border-radius:50%;border:3px solid transparent;cursor:pointer}.rg-sw.on{border-color:var(--ink)}
.rg-chartbox{display:flex;flex-direction:column;gap:4px}
.rg-chart{width:100%;height:auto;display:block}
.rg-grid{stroke:var(--line);stroke-width:1}.rg-ax{fill:var(--muted);font-size:12px}.rg-ax.on{fill:var(--ink);font-weight:700}
.rg-hit{fill:transparent;cursor:pointer}.rg-hit.on{fill:var(--sunk)}.rg-hit:focus{outline:none;stroke:var(--ink);stroke-width:1.5}
.rg-b.in,.rg-dot.in,.rg-catbar.in{fill:#2f9e57;background:#2f9e57}.rg-b.out,.rg-dot.out,.rg-catbar.out{fill:#d0573f;background:#d0573f}.rg-b.saved,.rg-dot.saved{fill:#2d6cdf;background:#2d6cdf}
.rg-key{display:flex;gap:14px;flex-wrap:wrap;font-size:.9rem}.rg-key span{display:inline-flex;align-items:center;gap:6px}.rg-dot{display:inline-block;width:12px;height:12px;border-radius:3px}
.rg-sums{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.rg-sum{background:var(--sunk);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}.rg-sum small{color:var(--muted)}
.rg-sum.in b{color:#2f9e57}.rg-sum.out b{color:#c0392b}.rg-sum.saved b{color:#2d6cdf}
.rg-detail h4{margin:14px 0 6px}
.rg-cat{display:flex;flex-direction:column;gap:3px;margin:6px 0}.rg-catl{display:flex;justify-content:space-between;gap:8px;font-size:.92rem}
.rg-catbar{display:block;height:10px;border-radius:6px;min-width:4px}
.rg-goal{display:flex;flex-direction:column;gap:5px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;border-radius:12px;padding:10px 12px;cursor:pointer}
.rg-pbar{height:10px;border-radius:6px;background:var(--sunk);overflow:hidden}.rg-pbar span{display:block;height:100%;border-radius:6px}
.rg-fill.ok{background:#2f9e57}.rg-fill.close{background:#e09b1e}.rg-fill.over{background:#c0392b}.rg-fill.goal{background:#2d6cdf}
.rg-work{margin:0;padding:8px 10px;border-radius:10px;background:var(--sunk);font-weight:600}
/* 📅 Booking: open time on the Calendar (update 105) */
.bk-test{margin:0;padding:8px 10px;border-radius:10px;background:var(--sunk)}
.bk-days{display:flex;flex-direction:column;gap:6px}
.bk-day{display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:start;padding:6px 0;border-bottom:1px solid var(--line)}
.bk-chips{display:flex;flex-wrap:wrap;gap:6px}
.bk-chip{border:1px solid var(--line);border-radius:999px;padding:5px 10px;font:inherit;font-size:.9rem;cursor:pointer;background:#e6f2e2;color:#1d3b17}
.bk-chip.firewood{background:#f5e6d3;color:#4d3014}.bk-chip.warn{outline:2px dashed #d98a1c}
@media (prefers-color-scheme:dark){.bk-chip{background:#203a1c;color:#d6eecf}.bk-chip.firewood{background:#3d2a17;color:#f2dcc2}}
@media (max-width:560px){.bk-day{grid-template-columns:1fr}}
.wl-ceu,.wl-dates{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}
.wl-ceuimg{max-width:120px;max-height:90px;border-radius:6px;margin-top:4px;cursor:zoom-in}
.bk-concern{background:var(--sunk);border-left:4px solid #e1b12c;border-radius:8px;padding:8px 10px}.bk-concern p{margin:4px 0 0}
.bk-rec input{flex:1;min-width:0}.jb-ok{color:#2f9e57}.jb-confirm{gap:8px;flex-wrap:wrap}
.ws-side{margin:2px 0 0 12px;font-size:.88rem}
.gl-list{gap:4px!important}.gl-item{align-items:flex-start;gap:8px;flex-wrap:nowrap}.gl-item input{width:20px;height:20px;flex:none}.gl-item small{display:block}

/* 📅 update 110: calendar cards read in light and dark mode, and over a photo background (solid, tinted by kind) */
.cal-item,button.cal-item,.cal-chip{background:color-mix(in srgb,var(--c) 18%,var(--surface));color:var(--ink)}
.cal-item .muted,.cal-chip small{color:var(--muted)}
/* 📋 quote templates (update 111) */
.qt-tpl{justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.qt-tpl .stack{gap:2px;flex:1;min-width:180px}
.qt-tplline{gap:6px;padding:10px}
.qt-tplline .row{flex-wrap:wrap;gap:8px;align-items:flex-end}
.qt-tplbtns{gap:6px;flex-wrap:nowrap}

/* ===================== update 111: terms, signature, invoice look, survey, Products & Services ===================== */
.qp-termtext,.qt-termtext{white-space:pre-wrap;font-size:.92rem;line-height:1.5}
.qp-terms[open]{border-left:4px solid #7DB00E;padding-left:12px}
.qp-sigtabs{gap:6px;margin:4px 0}
.qp-typed{width:100%;font:italic 600 1.9rem/1.3 "Brush Script MT","Segoe Script","Snell Roundhand",cursive;padding:10px 12px;border:2px dashed #0004;border-radius:10px;background:#fff;color:#111}
.qp-page .fk-brand{border-bottom:4px solid #7DB00E;padding-bottom:8px}
.qp-page h1{color:#2f6a4f}
.qp-page .btn.primary{background:#2f6a4f;border-color:#2f6a4f;color:#fff}
.qt-secs{border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.ip-heading{margin:2px 0 6px;font-weight:700;letter-spacing:.02em}
.qp-head{position:relative}
.ip-stamp{position:absolute;top:0;right:0;transform:rotate(-8deg);border:3px solid #a83240;color:#a83240;font:800 1.15rem/1 system-ui,sans-serif;letter-spacing:.12em;padding:6px 10px;border-radius:6px;opacity:.9}
.ip-stamp.paid{border-color:#2f7a4a;color:#2f7a4a}
.ip-acct{opacity:.85;font-size:.95rem}
.ip-footer{margin-top:14px;font-size:.88rem;color:#555;text-align:center}
.ip-terms{font-size:.85rem}
.ip-tip{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.ip-tip .row{gap:6px;flex-wrap:wrap}
.ip-tipother{width:7em}
.iv-tip{color:var(--ok)}
.fb-nps{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px;margin:6px 0 2px}
.fb-n{min-height:44px;border:1.5px solid #2f6a4f;border-radius:8px;background:#fff;color:#2f6a4f;font:700 1rem system-ui,sans-serif;cursor:pointer;padding:0}
.fb-n.on{background:#2f6a4f;color:#fff}
.fb-nps-ends{display:flex;justify-content:space-between;color:#666}
@media (max-width:420px){.fb-nps{grid-template-columns:repeat(6,minmax(0,1fr))}}
.qt-prods{gap:8px}
.qt-prod{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface)}
.qt-prod .row{justify-content:space-between;gap:8px;flex-wrap:wrap}
.qt-prod.off{opacity:.6}

/* ===================== update 112: tags, campaigns ===================== */
.cm-tags{display:flex;flex-direction:column;gap:6px}
.cm-chip{display:inline-flex;align-items:center;gap:4px}
.cm-x{border:0;background:transparent;color:inherit;cursor:pointer;font-size:.85rem;padding:0 2px;min-width:24px;min-height:24px}
.cm-aud{display:flex;flex-direction:column;gap:4px}
.od-tags,.od-bulk{gap:6px;flex-wrap:wrap;align-items:center}
.od-pickrow{display:flex;align-items:center;gap:8px}
.od-pickrow input[type=checkbox]{width:22px;height:22px;flex:none}
.od-pickrow .od-row{flex:1}
.od-rowtags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.sh-tankrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

.cu-nowork{background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad);border-radius:10px;padding:8px 12px;font-weight:700;margin:6px 0}

/* 🛟 Support (update 113): Hazel, Ash and Nicole live on one page; the Crew app gets an 8th button */
.crewbar{grid-template-columns:repeat(8,minmax(0,1fr))}
.su-page{max-width:820px;min-width:0;overflow-wrap:anywhere}
.su-page .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.su-card h3{margin:0}
.su-search input{width:100%}
.su-ans summary{cursor:pointer;font-weight:600}
.su-ans p{margin:.4em 0 0;white-space:pre-line}
.su-rep{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.su-rep.st-done{border-color:color-mix(in srgb,#16a34a 55%,var(--line))}
.su-rep.st-planned{border-color:color-mix(in srgb,#3b82f6 55%,var(--line))}
.su-rep.st-soon{border-color:color-mix(in srgb,#ef4444 60%,var(--line))}
.su-new summary{cursor:pointer;font-weight:600}
.su-newi{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-top:1px dashed var(--line)}
.su-watch ul{margin:.3em 0 0;padding-left:1.2em}
.su-plant{display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--line);border-radius:12px}
.su-plant .sh-thumbs img{width:64px;height:64px;object-fit:cover;border-radius:8px}

/* 🙋 My account (update 113): the customer's page at /account */
.ac-page .ac-card h2{margin:0;font-size:1.15rem}
.ac-page .ac-hi{margin:.2em 0 0}
.ac-page .ac-bal{font-weight:700;font-size:1.1rem}
.ac-page .ac-row{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}
.ac-page .ac-due span{color:#b91c1c;font-weight:600}
.ac-page .ac-warn{color:#b91c1c}
.ac-page .ac-good{color:#15803d;font-weight:600}
.ac-page input,.ac-page textarea{width:100%}

/* 🧭 The new layout (update 113): ➕ Create, Needs attention, Find a page. Theme colors only, so every look stays. */
.bottombar .bb-create{color:var(--accent-ink,#fff)}
.bottombar .bb-create .bb-plus{display:grid;place-items:center;width:46px;height:46px;margin-top:-20px;border-radius:50%;background:var(--accent);color:var(--accent-ink,#fff);font:400 2rem/1 var(--body);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 45%,transparent)}
.bottombar .bb-create span:not(.bb-plus):not(.count){color:var(--accent)}
.hdr-create{border-radius:999px;font-weight:700}
@media (max-width:899px){.hdr-create{display:none}}
.cs-ov{position:fixed;inset:0;z-index:80;background:color-mix(in srgb,#000 45%,transparent);display:flex;align-items:flex-end;justify-content:center}
.cs-sheet{width:min(560px,100%);max-height:88vh;overflow:auto;background:var(--surface);color:var(--ink,inherit);border-radius:22px 22px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 30px rgba(0,0,0,.25)}
@media (min-width:900px){.cs-ov{align-items:center}.cs-sheet{border-radius:22px}}
.cs-grab{display:block;width:42px;height:5px;border-radius:5px;background:var(--line);margin:4px auto 8px}
.cs-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.cs-head b{font:700 1.3rem var(--display,var(--body))}
.cs-close{color:var(--accent)}
.cs-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cs-tile{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--bg);color:inherit;cursor:pointer;text-align:left}
.cs-tile .ni{width:24px;height:24px;stroke:var(--accent);fill:none;stroke-width:1.8}
.cs-tile:hover,.cs-tile:focus-visible{border-color:var(--accent)}
.cs-label{display:block;margin:14px 0 4px;color:var(--muted);font-weight:700;letter-spacing:.08em}
.cs-also{display:flex;flex-direction:column}
.cs-row{display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px 2px;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;font:600 1rem var(--body);text-align:left;cursor:pointer}
.cs-row::after{content:"›";color:var(--muted)}
.page-find{width:calc(100% - 16px);margin:6px 8px 8px;border-radius:12px}
.pf-off{display:none!important}
.attn{display:flex;flex-direction:column;gap:12px}
.attn-title{margin:0}
.attn-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (min-width:900px){.attn-tiles{grid-template-columns:repeat(4,1fr)}}
.attn-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:inherit;cursor:pointer;text-align:left}
.attn-tile .attn-n{font:800 1.8rem/1 var(--body);color:var(--accent)}
.attn-tile .attn-l{font-weight:600}
.attn-tile.warn{border-color:color-mix(in srgb,#ef4444 60%,var(--line));background:color-mix(in srgb,#ef4444 12%,var(--surface))}
.attn-row{display:grid;gap:12px}
@media (min-width:900px){.attn-row{grid-template-columns:3fr 2fr}}
.attn-h{display:flex;justify-content:space-between;align-items:center}
.attn-visit{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:10px 12px;border:0;border-left:4px solid var(--accent);border-radius:10px;background:var(--bg);color:inherit;text-align:left;cursor:pointer}
.attn-visit b,.attn-visit small{display:block}
.attn-visit.done{opacity:.6}
.attn-amt{white-space:nowrap}

/* 💳 Cards (update 114) */
.cd-card-on{font-weight:700}
.cd-fee{color:var(--accent);font-weight:600}
.cd-card-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line)}
.cd-auto{display:flex;gap:6px;align-items:center}
/* ❄️ Snow (update 114) */
.sn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sn-num{width:5.5em}
.sn-storm.waiting{border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}

/* 🧭 The mockup's look (update 114 fix): a slim header, a plain side menu, the More menu in sections.
   Colors, woods photos, the drawn tree line and dark mode come from the theme as before. */
html.lay2 header.top{align-items:center;padding:12px 18px 40px;min-height:0}
html.lay2 header.top .scene-svg{height:40px}
html.lay2 .brand-logo{width:44px;height:44px}
html.lay2 .brandrow{gap:12px}
html.lay2 .brandline .label,html.lay2 .brandline h1,html.lay2 .brandline .season-tip{display:none}
html.lay2 .hdr-hi{display:flex;flex-direction:column;line-height:1.15}
html.lay2 .hdr-hi small{opacity:.8;font-size:.82rem}
html.lay2 .hdr-hi b{font:700 1.35rem var(--display,var(--body))}
html.lay2 .topright{gap:8px;align-items:center}
html.lay2 #trophyBtn,html.lay2 #trashBtn,html.lay2 #foodBtn,html.lay2 #notesBtn{display:none}
html.lay2 .hdr-find{width:min(420px,32vw);border-radius:999px;padding:9px 16px}
@media (max-width:899px){html.lay2 .hdr-find{display:none}html.lay2 header.top{padding:12px 14px 34px}html.lay2 .brand-logo{width:38px;height:38px}html.lay2 .hdr-hi b{font-size:1.15rem}}
html.lay2 .menu-extras{display:flex;flex-direction:column;gap:2px;margin-top:10px}
html.lay2 .menu-extras-h{font:700 .68rem var(--body);letter-spacing:.09em;text-transform:uppercase;opacity:.7;padding:6px 12px 2px}
@media (max-width:899px){
  html.lay2 #pageFind{display:none}   /* the phone's More already has its own Find a page box */
  html.lay2 .hdr-hi b{font-size:1.05rem}
  html.lay2 .sidenav nav.tabs button[aria-selected="true"]{background:var(--accent)!important;color:var(--accent-ink,#fff)}
}
html.lay2 #tabs button[aria-selected="true"]{background:var(--accent)!important;color:var(--accent-ink,#fff)!important;opacity:1!important}
html.lay2 .menu-extras .nav-help,html.lay2 .sidenav>.nav-help{text-align:left;justify-content:flex-start}

/* 🧭 update 114c: calmer screens */
html.lay2.not-home #mainpane{background:var(--bg);border-radius:18px;padding:12px;box-shadow:0 2px 14px rgb(0 0 0 / .18)}
.pf-select{width:100%;margin:4px 0}
@media (min-width:900px){.pf-select{display:none}}
@media (max-width:899px){
  .qt-filter.has-select{display:none!important}
  html.lay2 #mainpane{font-size:1.04rem}
  html.lay2 #mainpane .cu-row{min-height:58px;padding:12px 14px}
  html.lay2 .iv-body > .row:has(> .btn.primary){position:sticky;bottom:0;z-index:5;background:var(--surface);padding:10px 0;margin:0;border-top:1px solid var(--line)}
  html.lay2.not-home #mainpane{padding:8px;border-radius:14px}
}
.simple-sw{display:flex;gap:8px;align-items:center;cursor:pointer}
html.simple [data-tab="gym"],html.simple [data-tab="library"],html.simple [data-link="open:near"],html.simple #trophyBtn,html.simple .menu-extras button:first-of-type,html.simple [data-link="open:trophies"],html.simple [data-link="open:games"],html.simple #verse,html.simple .gd3-paw{display:none!important}
html.lay2 #tbTools{display:none!important}
@media (min-width:721px){html.lay2 .menu-extras .only-phone{display:none}}

/* 🧭 update 114d: closer to the approved mockup on phones */
@media (max-width:899px){
  /* bottom bar: the page you're on is a filled pill */
  html.lay2 .bottombar button[aria-current]:not(.bb-create){background:var(--accent);color:var(--accent-ink,#fff);border-radius:14px;margin:4px}
  html.lay2 .bottombar button[aria-current]:not(.bb-create) svg.ni{background:none;padding:0;width:24px}
  html.lay2 .bottombar button[aria-current]:not(.bb-create) span{color:inherit}
  /* inner pages: no photo header (each page has its own title); the woods header stays on Home */
  html.lay2.not-home header.top{display:none}
  html.lay2.not-home #mainpane{margin-top:8px}
  /* More: a full page, sections in panels */
  html.lay2 .sidenav{top:0;max-height:none;border-radius:0;padding-top:max(14px,env(safe-area-inset-top,0px))}
  html.lay2 .sidenav-head b{font-size:1.5rem}
  html.lay2 #tabs [data-tab="settings"]::before{content:"⚙️ ";}
}
@media (max-width:899px){html.lay2 .sidenav{background:var(--bg)!important;backdrop-filter:none!important}html.lay2 .sidenav nav.tabs{background:none!important}}

/* ✨ update 116: the flashy menu is back (Ryan: "layout is great but I want the flashy flare tabs and sub tabs back"):
   the colored icon tiles on every tab, sub tab and section, inside the new sections. Nicole lives only under Support. */
html.lay2 #tabs > .main-tab[data-tab="ivy"]{display:none!important}

/* 📞 Call hub (update 115) */
.rc-on{color:var(--accent);font-weight:700}
.rc-call summary{cursor:pointer;list-style:none}
.rc-call.urgent{border-color:color-mix(in srgb,#ef4444 60%,var(--line))}
.rc-sum{margin-top:4px}
.rc-turns p{margin:.3em 0}
.rc-ai{opacity:.8}
.rc-caller{font-weight:600}

/* 📌 My events (update 118) */
.me-ev .me-head{justify-content:space-between;align-items:center}
.me-ev .me-day{font:700 .78rem var(--body);letter-spacing:.06em;text-transform:uppercase;opacity:.75;margin-top:6px}
.me-ev .me-row{display:flex;gap:8px;align-items:center;border-radius:12px;background:var(--sunk);padding:4px 6px}
.me-ev .me-row.shared{border-left:4px solid var(--accent)}
.me-ev .me-main{flex:1;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:none;border:0;color:inherit;padding:6px;cursor:pointer;min-width:0}
.me-ev .me-main small{white-space:normal}
.me-ev .me-rem label,.me-ev .me-people label{gap:4px;margin-right:10px}
.me-ev .me-team{justify-content:flex-start}
.me-ev .me-feed summary{cursor:pointer}
.me-ev{text-align:left}
.me-ev .me-head h2{margin:0}
.me-ev>.row,.me-ev .me-form .row{justify-content:flex-start;margin:0}
.me-ev>p{margin:0}
.me-ev{display:flex;flex-direction:column;gap:10px}.me-ev>*{margin-top:0!important;margin-bottom:0!important;min-height:0}

/* 📸 Ash's real pictures (update 118) */
.aa-refs{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0}
.aa-reff{margin:0;flex:0 0 auto;scroll-snap-align:start}
.aa-ref{width:132px;height:132px;object-fit:cover;border-radius:12px;display:block;background:var(--sunk)}
.aa-looks{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.aa-look{margin:0;display:flex;flex-direction:column;gap:3px}
.aa-look .aa-ref{width:100%;height:96px}
.aa-look figcaption{font-weight:600;font-size:.85rem}
.aa-prob{margin-top:6px;max-width:220px}
.aa-credit{display:block;opacity:.7;font-size:.7rem;line-height:1.25}

/* 📅 The Schedule like Jobber's (update 118): find a time, reschedule & reassign, unscheduled, map, settings, colors */
.cal-main2{display:block}
.cal-main2.with-uns{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}
@media (max-width:899px){.cal-main2.with-uns{grid-template-columns:1fr}.cal-uns{order:-1;max-height:46vh}}
.cal-uns{position:sticky;top:8px;max-height:calc(100vh - 120px);overflow:auto;display:flex;flex-direction:column;gap:8px}
.cal-unc{display:flex;flex-direction:column;gap:4px;border-left:4px solid var(--uc,transparent);padding-left:6px}
.cal-unc .cal-chip{width:100%;text-align:left}
.cal-tool{display:flex;flex-direction:column;gap:8px;margin:8px 0}
.cal-tool .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cal-tool .wrap2{flex-wrap:wrap}
.cal-ck{display:inline-flex;gap:4px;align-items:center;margin-right:8px;font-size:.9rem}
.cal-foot2{justify-content:space-between;border-top:1px solid var(--line);padding-top:8px}
.cal-chip.picked{outline:3px solid var(--accent);outline-offset:1px}
.cal-picking .cal-chip{cursor:copy}
.cal-slot{position:absolute;border:2px dashed var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);color:inherit;border-radius:8px;font-size:.75rem;font-weight:700;padding:2px 6px;text-align:left;cursor:pointer;z-index:1;top:4px;height:26px;overflow:hidden;white-space:nowrap}
.cal-slot.best{border-style:solid;background:color-mix(in srgb,var(--accent) 22%,transparent)}
.cal-slot.warn{border-color:orange}
.cal-slot.inwk{position:static;display:block;width:100%;margin-top:3px;height:auto}
.cal-slot.v{left:2px;right:2px;top:auto;height:auto;white-space:normal}
.cal-ftlist{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow:auto}
.cal-ftrow{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:6px 10px;border-radius:10px;border:1px solid var(--line);border-left:5px solid var(--uc,var(--accent));background:var(--sunk);color:inherit;cursor:pointer}
.cal-ftrow.warn{border-left-color:orange}
.cal-ftok{border:2px solid var(--accent)}
.cal-multi,.cal-more{position:relative}
.cal-multi>summary,.cal-more>summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:.88rem;white-space:nowrap}
.cal-multi>summary::-webkit-details-marker,.cal-more>summary::-webkit-details-marker{display:none}
.cal-multibox{position:absolute;z-index:20;top:110%;left:0;min-width:200px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:4px;box-shadow:0 8px 24px rgb(0 0 0 / .25)}
.cal-mapbox .cal-map{height:340px;border-radius:12px;overflow:hidden;position:relative}
.cal-radio{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cal-radio .chip.on{background:var(--accent);color:var(--accent-ink,#fff)}
.cal-colrow{gap:8px}.cal-colrow input[type=color]{width:34px;height:26px;padding:0;border:0;background:none}
.cal-ph{gap:6px}
.cal-gray .cal-chip.done{--c:var(--muted)!important;--bg:var(--sunk)!important}.cal-gray .cal-chip.done b,.cal-gray .cal-item.done b{text-decoration:none}
.cal-wk.stacked td .cal-chip{display:flex;width:100%;margin:0 0 3px}
.cal-wk.nested td .cal-chip{display:inline-flex;max-width:100%}
.cal-grid.nowk{grid-template-columns:repeat(5,minmax(0,1fr))}
.cal-vgrid{display:grid;min-width:calc(64px + var(--cols) * 150px)}
.cal-vhead,.cal-vany{display:grid;grid-template-columns:64px repeat(var(--cols),minmax(150px,1fr));border-bottom:1px solid var(--line)}
.cal-vname{font-weight:700;padding:6px;text-align:center}
.cal-vany .cal-vcell{padding:3px;display:flex;flex-direction:column;gap:2px}
.cal-vbody{display:grid;grid-template-columns:64px repeat(var(--cols),minmax(150px,1fr));position:relative}
.cal-vtime{position:relative;font-size:.75rem;opacity:.75}
.cal-vhr{position:absolute;left:4px;transform:translateY(-6px)}
.cal-vcol{position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0 calc(var(--hh) - 1px),var(--line) calc(var(--hh) - 1px) var(--hh))}
.cal-vbar{position:absolute;right:2px;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start}
.lm-pin.lm-hi .lm-dot{transform:scale(1.7);box-shadow:0 0 0 3px var(--surface),0 0 0 6px var(--accent)}
.lm-pin.lm-hi{z-index:5}
.cal-tool .row input:not([type=checkbox]),.cal-tool .row select{width:auto;flex:0 1 auto;min-width:0}
/* 📸 Tree ID Trivia's real photos (update 118) */
.bg-pic{margin:8px 0;display:flex;flex-direction:column;gap:4px}
.bg-pic img{width:100%;max-height:300px;object-fit:cover;border-radius:14px;background:var(--sunk);min-height:120px}
.bg-pic.after img{max-height:180px}
.bg-pic figcaption{font-size:.7rem;opacity:.7}

/* 🕒 Time clock (update 119) */
.tc .tc-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tc .tc-row input:not([type=checkbox]),.tc .tc-row select{width:auto;flex:0 1 auto;min-width:0}
.tc .wrapx{flex-wrap:wrap}
.tc-me{display:flex;flex-direction:column;gap:8px}
.tc-state{font-size:1.15rem}
.tc-state.in b{color:var(--ok)}
.tc .btn.big{font-size:1.05rem;padding:14px 18px}
.tc-pin{width:13ch!important;text-align:center;letter-spacing:.3em;font-weight:700}.tc-pin::placeholder{letter-spacing:normal;font-weight:500}
.tc-ck{display:inline-flex;gap:4px;align-items:center;margin-right:8px}
.tc-more summary{cursor:pointer;font-weight:600}
.tc-kiosk{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:20px;text-align:center;overflow:auto}
.tc-qr{background:var(--surface);padding:16px;border-radius:20px}
.tc-qr svg{display:block;width:min(70vw,360px);height:auto}
.tc-kpin{font:800 3rem var(--body);letter-spacing:.3em}
.tc-board{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:900px}
.tc-who{padding:6px 10px;border-radius:999px;background:var(--sunk);font-weight:600}
.tc-cam{position:fixed;right:12px;bottom:12px;width:120px;border-radius:12px;opacity:.85}
.tc-rv.flagged>summary{border-left:4px solid orange;padding-left:6px}
.tc-flag{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:4px 0}
.tc-day{border-top:1px solid var(--line);padding:6px 0;display:flex;flex-direction:column;gap:4px}
.tc-punch{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:.92rem}
.tc-punch.pending{background:color-mix(in srgb,orange 14%,transparent);border-radius:8px;padding:2px 6px}
.tc-photo{width:48px;height:48px;object-fit:cover;border-radius:8px}
.tc-rule{gap:6px}
.qs-ov{position:fixed;inset:0;z-index:10000;background:rgb(0 0 0 / .85);display:flex;align-items:center;justify-content:center;padding:16px}
.qs-box{background:var(--surface);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:10px;align-items:center;max-width:480px;width:100%;position:relative}
.qs-vid{width:100%;border-radius:12px;background:var(--sunk);aspect-ratio:3/4;object-fit:cover}
.qs-msg{margin:0;text-align:center}
.tc input[type=number]{width:9ch!important;flex:0 0 auto}

/* 🗂️ Employee records (update 120) */
.hr .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.hr .row input:not([type=checkbox]),.hr .row select{width:auto;flex:0 1 auto;min-width:0}
.hr .wrapx{flex-wrap:wrap}
.hr-list{display:flex;flex-direction:column;gap:6px}
.hr-row{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--sunk);color:inherit;cursor:pointer}
.hr-row.on{outline:2px solid var(--accent)}
.hr-ev{border-top:1px solid var(--line);padding:8px 0;display:flex;flex-direction:column;gap:6px}
.hr-ev.done b::before{content:"✓ ";color:var(--ok)}
.hr-q .chip.on{background:var(--accent);color:var(--accent-ink,#fff)}
.hr-former{display:flex;gap:6px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding:8px 0}
.hr-me{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:6px}
/* 🏷️ update 121: the design board's client pills, the quote rows with the amount on the right, the list total and the Show dropdown on phones */
.od-row.od-haspills{position:relative;padding-right:120px}
.od-pills{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.od-pill{font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px;white-space:nowrap;background:var(--sunk);color:var(--ink)}
.od-pill-active{background:var(--ok-soft);color:var(--ok)}.od-pill-lead{background:var(--warn-soft);color:var(--warn)}.od-pill-unpaid{background:var(--bad-soft);color:var(--bad)}
.od-pill-lawn{background:var(--ok-soft);color:var(--ok);opacity:.85}.od-pill-archived{background:var(--sunk);color:var(--muted)}
.od-row.od-qrow{display:flex;flex-direction:row!important;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;text-align:left}.od-qleft{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;flex:1;text-align:left}.od-amt{font-size:16px;font-weight:700;white-space:nowrap}
.od-sum{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);padding:0 4px}.od-sum b{color:var(--ink)}
.od-show{display:none;align-items:center;gap:10px;width:100%}.od-show select{flex:1;min-height:44px}
@media (max-width:700px){.od-top .qt-filter>.btn{display:none}.od-show{display:flex}}
/* 📅 update 121: the week strip above Day view, the phone Day · Week · Map switch and the Unscheduled card */
.cal-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:4px;margin:6px 0 10px;touch-action:pan-y}
.cal-sday{border:0;background:transparent;color:var(--muted);border-radius:12px;padding:6px 0;min-height:52px;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;font:500 12px/1.2 system-ui,sans-serif}
.cal-sday b{font-size:17px;color:var(--ink)}.cal-sday.today b{text-decoration:underline;text-underline-offset:3px}
.cal-sday.on{background:var(--accent);color:var(--accent-ink);border-radius:999px}.cal-sday.on b{color:var(--accent-ink)}
.cal-sdots{display:flex;gap:3px;height:6px}.cal-sdots i{width:6px;height:6px;border-radius:50%;display:block}
.cal-seg button.cal-segphone,.cal-phoneonly{display:none}
.cal-unscard{display:none;width:100%;justify-content:space-between;align-items:center;margin-top:10px;padding:14px;border:1px dashed var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:600 15px system-ui,sans-serif;cursor:pointer}
.cal-unsn{font-size:14px;background:var(--sunk);border-radius:999px;padding:4px 10px}
@media (max-width:700px){.cal-seg button.cal-segwide{display:none}.cal-seg button.cal-segphone,.cal-phoneonly{display:inline-flex}.cal-unscard{display:flex}}
/* 🧪 update 122: the tester bar and its note */
.tester-bar{background:repeating-linear-gradient(45deg,var(--warn-soft),var(--warn-soft) 12px,var(--surface) 12px,var(--surface) 24px);color:var(--ink)}
.tester-toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:9999;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:12px 16px;max-width:min(92vw,460px);box-shadow:0 6px 20px rgba(0,0,0,.35);font-weight:600}
.tester-tag{margin-left:6px;background:var(--warn-soft);color:var(--warn)}
/* ✨ update 122: the flashy NEW badge on tabs and menu items with something new you haven't opened */
.new-badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;font:800 10px/1.4 system-ui,sans-serif;letter-spacing:.06em;color:var(--accent-ink);background:linear-gradient(90deg,var(--accent),var(--warn),var(--accent));background-size:200% 100%;box-shadow:0 0 0 0 var(--accent);animation:newBadge 1.6s ease-in-out infinite;vertical-align:middle;text-shadow:none}
@keyframes newBadge{0%{background-position:0 0;box-shadow:0 0 0 0 var(--accent)}50%{background-position:100% 0;box-shadow:0 0 10px 2px var(--accent)}100%{background-position:0 0;box-shadow:0 0 0 0 var(--accent)}}
@media (prefers-reduced-motion:reduce){.new-badge{animation:none}}
/* 🖨️ update 124: Printables in the Library */
.pr-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.pr-row .row{gap:6px;flex-wrap:wrap}.pr-filter{gap:8px;flex-wrap:wrap}.pr-make summary{cursor:pointer;font-weight:700}
/* ⭐ update 124: prestige — the locker door, the gear sheet, profile frames */
.pz-doorwrap{align-items:flex-start}
.pz-door{--door:rgb(91,102,112);position:relative;width:min(260px,100%);aspect-ratio:3/5;border-radius:10px;background:linear-gradient(90deg,rgba(0,0,0,.18),rgba(255,255,255,.06) 30%,rgba(0,0,0,.12)),var(--door);border:3px solid rgba(0,0,0,.35);box-shadow:inset 0 0 0 6px rgba(255,255,255,.06),0 6px 18px rgba(0,0,0,.35);overflow:hidden;color:rgb(255,255,255)}
.pz-door.wood{background:repeating-linear-gradient(92deg,rgba(0,0,0,.12) 0 3px,transparent 3px 14px),linear-gradient(90deg,rgba(0,0,0,.2),rgba(255,255,255,.08) 40%,rgba(0,0,0,.15)),var(--door)}
.pz-vents{position:absolute;top:22%;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:5px;width:55%}.pz-vents i{display:block;height:5px;border-radius:3px;background:rgba(0,0,0,.4)}
.pz-plate{position:absolute;top:8%;left:50%;transform:translateX(-50%);padding:4px 12px;border-radius:5px;font:700 13px/1.2 Georgia,serif;white-space:nowrap;max-width:85%;overflow:hidden;text-overflow:ellipsis;background:rgb(216,210,196);color:rgb(34,34,34);box-shadow:0 1px 3px rgba(0,0,0,.4)}
.pz-plate.wood{background:rgb(168,116,63);color:rgb(42,22,8)}.pz-plate.brass{background:linear-gradient(rgb(232,198,106),rgb(184,144,42));color:rgb(58,42,5)}.pz-plate.steel{background:linear-gradient(rgb(228,232,236),rgb(154,164,173));color:rgb(29,36,43)}.pz-plate.gold{background:linear-gradient(rgb(255,227,138),rgb(201,154,30));color:rgb(58,42,5)}
.pz-board{position:absolute;inset:40% 6% 6% 6%}.pz-sticker{position:absolute;font-size:30px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}
.pz-charms{position:absolute;top:0;right:12%;display:flex;gap:6px}.pz-charm{font-size:20px;padding-top:6px;border-top:16px solid transparent;background:linear-gradient(rgb(187,187,187),rgb(187,187,187)) center top/2px 16px no-repeat}
.pz-handle{position:absolute;right:8%;top:50%;width:8px;height:44px;border-radius:4px;background:linear-gradient(rgb(221,221,221),rgb(136,136,136))}
.pz-emblem{position:absolute;left:8px;bottom:8px;font:800 12px system-ui,sans-serif;background:rgba(0,0,0,.45);padding:2px 8px;border-radius:999px}
.pz-big{font:800 1.5rem var(--display,system-ui)}.pz-chips{gap:6px;flex-wrap:wrap}.pz-chips .chip.on{background:var(--accent);color:var(--accent-ink)}
.pz-pulse{animation:newBadge 1.6s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.pz-pulse{animation:none}}
.pp-prestige{font-weight:700;color:var(--accent)}.pz-framed .avatar,.pz-framed img,.pz-framed .av{box-shadow:0 0 0 4px var(--pz-frame),0 0 12px var(--pz-frame)}
/* 🪪 update 124: insurance cards on Nicole's desk */
.ic-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}.ic-row{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:8px;background:var(--sunk)}
.ic-row.missing{background:var(--bad-soft)}.ic-row.expiring{background:var(--warn-soft)}.ic-match .row,.ic-mail .row{gap:8px;flex-wrap:wrap}

/* 📥 update 125: PayClock import + under-18 flag + 🎂 missing birthdays (theme colors only) */
.hr-pc-list{max-height:60vh;overflow:auto}
.hr-pc-row{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-bottom:1px solid var(--line)}
.hr-pc-row.unsure{background:var(--accent-soft)}
.hr-pc-row .row{flex-wrap:wrap;gap:6px;align-items:center}
.hr-pc-row select,.hr-pc-row input[type=date]{max-width:100%}
.hr-pc-note{color:var(--bad)}
.hr-minor{padding:6px 10px;border-radius:8px;background:var(--accent-soft);color:var(--ink)}

/* 🏆 update 127: the work anniversary trophy shelf under the locker (theme colors only) */
.pz-withshelf{display:flex;flex-direction:column;gap:6px}
.pz-shelf{display:flex;flex-wrap:wrap;gap:4px;align-items:flex-end;padding:6px 8px 4px;border-bottom:6px solid var(--line);border-radius:6px;background:var(--sunk)}
.pz-trophy{background:none;border:0;padding:0;cursor:pointer;line-height:0}
.pz-trophy:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hr-rate-row{align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid var(--line)}
.hr-rate-row>*{flex:0 0 auto}
.hr-rate-row input[type=number]{width:110px!important}
.hr-rate-row input[type=date]{width:auto!important}
.hr-rate-name{min-width:150px}
.hr-rate-now{min-width:150px;font-weight:700}
.hr-rate-now.none{color:var(--muted);font-weight:400}
.hr-trophies{align-items:flex-end;gap:4px}
/* 📜 update 129: pay history with fixes (theme colors only) */
.hr-hist{gap:6px;margin-top:6px}
.hr-hist-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--sunk)}
.hr-hist-row.now{border-color:var(--accent)}
.hr-hist-row.later{border-style:dashed}
.hr-hist-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.hr-hist-why{font-style:italic}
.hr-hist-edit{gap:6px;align-items:center;width:100%}
.hr-hist-edit input[type=number]{width:100px}
.goesby-in{width:110px;flex:0 0 auto}
.goesby{font-weight:400}
.tc-warnline{color:var(--bad)}
.tc-draft textarea{width:100%}
.tc-pick{gap:4px 12px}

/* 📷 in-app camera for wallet cards (update 137): a camera is black with a white shutter in every theme */
.wl-cam{position:fixed;inset:0;z-index:10050;background:black;display:flex;flex-direction:column}.wl-cam video{flex:1;width:100%;min-height:0;object-fit:contain;background:black}
.wl-camframe{position:absolute;left:8%;width:84%;top:42%;transform:translateY(-50%);aspect-ratio:1.586;border:2px dashed rgba(255,255,255,.7);border-radius:14px;pointer-events:none}
.wl-cambar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px calc(14px + env(safe-area-inset-bottom));color:white}.wl-cambar small{color:gainsboro;max-width:30%}
.wl-camx{color:white!important;border-color:white!important}.wl-shutter{width:72px;height:72px;border-radius:50%;border:5px solid white;background:white;box-shadow:inset 0 0 0 4px black;cursor:pointer}
.wl-ph.wl-up{font-size:12px;color:var(--muted)}.wl-ph.wl-bad{font-size:11px;padding:4px;text-align:center;background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad);cursor:pointer}
/* 🕒 update 138: the PIN button, what just happened, my punches, the clocked-in pill (theme colors only) */
.tc-pinrow{display:flex;gap:8px;align-items:center}.tc-pinrow .tc-pin{width:7.5em;font-size:1.2em;letter-spacing:.25em;text-align:center}.tc-pingo{white-space:nowrap}
.tc-said{padding:10px 12px;border-radius:12px;font-weight:600}.tc-said.ok{background:var(--ok-soft,var(--sunk));color:var(--ink);border:1px solid var(--ok,var(--line))}.tc-said.bad{background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad)}
.tc-mypunches{align-self:flex-start}.tc-weeknav{justify-content:space-between;flex-wrap:wrap}.tc-pday{padding:8px 0;border-top:1px solid var(--line)}.tc-plist{margin:4px 0 2px;padding-left:18px}.tc-plist li.pending{color:var(--muted)}
.tc-pill{position:fixed;top:calc(env(safe-area-inset-top) + 6px);left:50%;transform:translateX(-50%);z-index:9000;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 13px/1.2 inherit;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer;max-width:calc(100vw - 32px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-pill[hidden]{display:none}

/* 📇 update 139: My info, and a birthday change waiting for HR */
.wl-info h3{margin:12px 0 4px}.hr-dobask{display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:var(--warn-soft);border:1px solid var(--warn);color:var(--ink)}

/* 🔁 update 139: locker replacement line */
.ws-repl{display:inline-block;margin-top:2px;font-weight:600;color:var(--ink)}.ws-repl.free{color:var(--ok)}
.ws-picks{display:flex;flex-wrap:wrap;gap:6px}.ws-picks .on{border-color:var(--accent);color:var(--ink)}.ws-baghead{justify-content:space-between;margin-top:8px}

/* ◀ ▶ update 139: back and forward at the top of every screen */
.nav-hist{display:flex;gap:4px;align-items:center}.nav-hb{min-width:40px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:16px;cursor:pointer}.nav-hb:disabled{opacity:.35;cursor:default}
.ma-note{padding:8px 12px;border-radius:10px;background:var(--sunk);color:var(--ink);font-weight:600}.ma-own{margin-top:6px}
@media (max-width:600px){.nav-hist{gap:2px}.nav-hb{min-width:28px;height:30px;padding:0 4px;font-size:12px;border-radius:8px}}
.tc-eodask{flex-wrap:wrap;gap:8px}.tc-skips .ws-line small{display:block}
.pz-sheet .hd-head .pz-close{justify-self:end;grid-column:3}.pz-foot{justify-content:space-between;align-items:center;gap:10px;padding:4px 0 8px}
.tc-latebox{padding:16px;gap:12px}

/* 📊 update 139: start time and the timekeeping report */
.hr-days{gap:4px}.hr-tkstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.hr-tkstat{display:grid;gap:2px;padding:10px;border-radius:12px;background:var(--sunk)}.hr-tkstat b{font-size:20px}
.hr-trend{padding:10px 12px;border-radius:12px;font-weight:600;color:var(--ink);background:var(--sunk)}.hr-trend.improving{background:var(--ok-soft);border:1px solid var(--ok)}.hr-trend.worse{background:var(--bad-soft);border:1px solid var(--bad)}.hr-tklate small{display:block}
.hr-tk .hd-head>button,.hd-box .hd-head>b+button:last-child{grid-column:3;justify-self:end}

/* 👥 📅 update 140: the live board and weekly start times */
.tc-livesum{display:flex;flex-wrap:wrap;gap:6px}.tc-liverow{border-top:1px solid var(--line);padding:8px 0;display:grid;gap:6px}.tc-livepunches{display:grid;gap:4px;padding-left:8px}.tc-livepunches .tc-punch{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tc-livepunches input[type=time]{width:8.5em}.tc-liveadd{gap:6px;flex-wrap:wrap}
.tc-startwrap{overflow-x:auto;max-width:100%}.tc-starttable{border-collapse:collapse;min-width:640px}.tc-starttable th,.tc-starttable td{padding:4px;text-align:left;border-bottom:1px solid var(--line)}.tc-starttable input{width:8.6em}.tc-starttable input.usual{color:var(--muted)}.tc-starttable input.set{font-weight:700;color:var(--ink)}
.tc-cell{display:grid;gap:2px}.tc-cell small{font-size:11px}.tc-starttable input.tc-end{color:var(--muted)}
.ins-files{display:grid;gap:6px}.ins-file{display:grid;gap:2px;padding:6px 0;border-top:1px solid var(--line)}
/* 🕒 update 142: schedule vs. actual, day by day */
.tc-pair{display:grid;grid-template-columns:1fr 1fr;gap:4px}.tc-starttable td{min-width:250px;vertical-align:top}.tc-starttable .tc-pair input{width:100%;min-width:0}
.tc-act{border:1px solid var(--line);border-radius:8px;background:var(--sunk);color:var(--ink);padding:6px 4px;font:inherit;font-size:13px;cursor:pointer;text-align:center}
.tc-actual.ok .tc-act:first-child{border-color:var(--ok);background:var(--ok-soft)}.tc-actual.late .tc-act:first-child{border-color:var(--bad);background:var(--bad-soft);color:var(--bad);font-weight:700}
.tc-starttable .tc-pair input{font-size:13px;padding-left:6px;padding-right:4px}
.ws-line.ok{border-left:3px solid var(--ok);padding-left:8px}

/* 🏖️ update 144: a day off in the work schedule */
.tc-off{display:flex;align-items:center;gap:4px;font-size:12px;cursor:pointer;color:var(--muted)}.tc-off.on{color:var(--ok);font-weight:700}.tc-pair input:disabled{opacity:.4}

/* 👀 update 145: the schedule grid: names pinned left, days pinned on top, a label on every box, today highlighted */
.tc-startwrap{max-height:78vh;overflow:auto;border:1px solid var(--line);border-radius:8px}.tc-starttable thead th{position:sticky;top:0;z-index:2;background:var(--surface-solid,var(--surface));font-size:14px;border-bottom:2px solid var(--line)}.tc-starttable th.tc-name,.tc-starttable th.tc-corner{position:sticky;left:0;z-index:1;background:var(--surface-solid,var(--surface));font-weight:800;font-size:15px;min-width:7.5em;max-width:9em;border-right:2px solid var(--line);vertical-align:top;padding-top:10px}.tc-starttable thead th.tc-corner{z-index:3}.tc-starttable tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--ink) 4%,transparent)}.tc-starttable .tc-today{box-shadow:inset 0 0 0 2px var(--accent,var(--ok))}.tc-starttable thead th.tc-today{color:var(--accent,var(--ok))}.tc-who-day{font-weight:800;font-size:12px;color:var(--ink);padding:2px 0 3px;border-bottom:1px dashed var(--line);margin-bottom:2px}
@media (max-width:560px){.tc-starttable th.tc-name,.tc-starttable th.tc-corner{min-width:5.2em;max-width:6em;font-size:13px;word-break:break-word}}
/* 🛠️ update 145: jobs in the work schedule, clash flags, by crew, and work hours on the calendar */
.tc-jobs{display:grid;gap:3px;margin-top:4px;padding-top:4px;border-top:1px dashed var(--line)}.tc-job{all:unset;cursor:pointer;font-size:12px;padding:3px 6px;border-radius:6px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px}.tc-job:focus-visible{outline:2px solid var(--accent)}.tc-job.done{opacity:.6;text-decoration:line-through}
.tc-flag small{display:block;font-size:12px;font-weight:700}.tc-flag .bad{color:var(--bad)}.tc-flag .warn,.tc-crewview .warn{color:var(--warn,var(--ink));font-weight:700}
.tc-starttable td.tc-clash{background:var(--bad-soft)!important}.tc-starttable td.tc-idle{background:color-mix(in srgb,var(--warn,var(--accent)) 10%,transparent)!important}
.tc-crewjob{display:grid;gap:1px;padding:3px 0;border-bottom:1px dotted var(--line)}.tc-crewjob small{font-size:11px;padding-left:8px}
.cal-work{position:absolute;top:2px;bottom:2px;border-radius:6px;background:color-mix(in srgb,var(--ok) 13%,transparent);border:1px dashed color-mix(in srgb,var(--ok) 45%,transparent);font-size:10px;font-style:normal;color:var(--muted);padding:1px 4px;pointer-events:none;z-index:0;white-space:nowrap;overflow:hidden}.cal-work.open{border-right:none;background:linear-gradient(90deg,color-mix(in srgb,var(--ok) 13%,transparent) 70%,transparent)}.cal-work.off{background:color-mix(in srgb,var(--bad) 8%,transparent);border-color:color-mix(in srgb,var(--bad) 35%,transparent)}.cal-track .cal-bar{z-index:1}
.tc-starttable .tc-off input{width:auto;margin:0}
.iv-fulink{all:unset;cursor:pointer;display:block;color:var(--ink)}.iv-fulink:hover span:first-child,.iv-fulink:focus-visible span:first-child{text-decoration:underline}.iv-fulink:focus-visible{outline:2px solid var(--accent);border-radius:4px}.iv-fugo{color:var(--accent);font-weight:800}
.iv-flash{outline:3px solid var(--accent);outline-offset:2px;transition:outline-color .6s}
/* 🔄 update 146: switch trucks */
.tc-pill.tc-swap{top:calc(env(safe-area-inset-top) + 42px);font-size:12px}
.tc-swapgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.tc-swaptruck{all:unset;cursor:pointer;display:grid;gap:2px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.tc-swaptruck.on{border-color:var(--ok);box-shadow:inset 0 0 0 2px var(--ok)}.tc-swaptruck:focus-visible{outline:2px solid var(--accent)}
.drv-stretch input[type=time]{width:8.5em}
.hd-sheet{background:var(--surface-solid,var(--surface));width:min(480px,100%);max-height:88vh;overflow:auto;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.tc-job.tc-task{background:color-mix(in srgb,mediumpurple 18%,transparent)}.tc-job.tc-event{background:color-mix(in srgb,var(--ok) 16%,transparent)}
/* 🧹 update 148: find duplicates */
.cu-duplist{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:6px}.cu-dup{display:flex;gap:8px;align-items:flex-start;padding:6px 4px;border-bottom:1px dotted var(--line);cursor:pointer}.cu-dup div{display:grid;gap:2px}
.cu-dupgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.cu-dupcol{display:grid;gap:3px;padding:8px;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}.cu-keep{font-size:13px;display:flex;gap:4px;align-items:center}
.cu-duplist,.cu-dupcard{flex-shrink:0}
/* ⛶ update 148: full screen for the schedule and the calendar */
.cd-full{position:fixed!important;inset:0!important;z-index:9500!important;margin:0!important;max-width:none!important;width:auto!important;height:auto!important;overflow:auto!important;background:var(--bg)!important;padding:calc(env(safe-area-inset-top) + 48px) 12px calc(env(safe-area-inset-bottom) + 12px)!important;border-radius:0!important}
body.cd-full-on{overflow:hidden}body.cd-full-on .tc-pill{display:none}
.cd-full .tc-startwrap{max-height:calc(100vh - 170px)}.cd-full .cal-tlwrap{max-height:calc(100vh - 190px)}
.cd-full-x{position:fixed;top:calc(env(safe-area-inset-top) + 8px);right:12px;z-index:9600;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface-solid,var(--surface));color:var(--ink);font:700 14px/1.2 inherit;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25)}
/* 📱 update 148: no double-tap zoom in the apps; inputs at 16px so iPhones don't zoom in when you tap one */
html{touch-action:manipulation}
@media (max-width:820px){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px!important}}
/* 🖨️ update 148: the prayer list, printed */
.dv-print{display:none}
@media print{body.dv-printing>*:not(.dv-print){display:none!important}body.dv-printing .dv-print{display:block!important;color:black;background:white;font:12pt/1.45 Georgia,serif;padding:0}.dv-print h1{font-size:18pt;margin:0 0 2pt}.dv-print .sub{font-size:10pt;color:dimgray;margin-bottom:10pt}.dv-print h2{font-size:13pt;margin:14pt 0 4pt;border-bottom:1px solid gray}.dv-print .it{break-inside:avoid;padding:5pt 0;border-bottom:1px dotted silver}.dv-print .it b{font-size:12pt}.dv-print .meta{font-size:9.5pt;color:dimgray}.dv-print .upd{font-size:10pt;color:dimgray;margin-left:12pt}.dv-print .lines{border-bottom:1px solid silver;height:16pt}}
/* 🧭 update 149: career paths */
.tr-pathgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.tr-pathcard,.tr-mypath{all:unset;cursor:pointer;display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.tr-pathcard:focus-visible,.tr-mypath:focus-visible{outline:2px solid var(--accent)}.tr-pathico{font-size:26px}.tr-mypath{grid-template-columns:1fr auto;border-color:var(--accent)}
.tr-trade{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px;border:1px dashed var(--line);border-radius:8px}.tr-book summary{cursor:pointer;padding:6px 0}.tr-sec{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:6px 0;border-top:1px dotted var(--line)}.tr-sec small{grid-column:1}.tr-sec button{grid-row:1 / span 2;grid-column:2}
.tr-print{display:none}
@media print{body.tr-printing>*:not(.tr-print){display:none!important}body.tr-printing .tr-print{display:block!important;color:black;background:white;font:11pt/1.4 Georgia,serif}.tr-print h1{font-size:17pt;margin:0}.tr-print .sub{color:dimgray;font-size:9.5pt;margin-bottom:10pt}.tr-print h2{font-size:13pt;border-bottom:1px solid gray;margin:14pt 0 4pt}.tr-print h3{font-size:12pt;margin:10pt 0 2pt}.tr-print h4{font-size:11pt;margin:8pt 0 2pt}.tr-print .sec{break-inside:avoid-page;padding-bottom:6pt;border-bottom:1px dotted silver}.tr-print .why{color:dimgray;font-size:10pt}.tr-print .opts div{margin-left:14pt}.tr-print .ans{margin-left:14pt;font-weight:bold}.tr-print .nameline{margin-top:6pt;font-size:10pt}.tr-print .pathbrk{break-before:page}.tr-print table.map{border-collapse:collapse;width:100%;font-size:9.5pt}.tr-print table.map th,.tr-print table.map td{border:1px solid silver;padding:3pt 5pt;text-align:left;vertical-align:top}}
/* 🏦 deposits (update 150): color names only, so every theme stays as it is */
.dp-box{max-width:640px}
.dp-strip{display:flex;flex-wrap:wrap;gap:8px}
.dp-ph{position:relative;display:inline-block}
.dp-thumb{width:84px;height:84px;object-fit:cover;border-radius:8px;cursor:zoom-in}
.dp-x{position:absolute;top:-6px;right:-6px;border:0;border-radius:50%;width:22px;height:22px;background:dimgray;color:white;cursor:pointer}
.dp-check input{min-width:0;flex:1}
.dp-sum{font-size:.9rem;padding:6px 10px;border-radius:8px;background:rgb(60 154 71 / .1)}
.dp-sum.off{background:rgb(224 138 44 / .14);border-left:4px solid darkorange}
.dp-row{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-bottom:1px solid rgb(128 128 128 / .2)}
.dp-st.returned,.dp-back{color:inherit}
.dp-back{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background:rgb(224 138 44 / .14);border-left:4px solid darkorange}
.dp-note{margin:0;padding:8px 12px;border-radius:8px;background:rgb(45 108 223 / .1)}
.dp-list{margin:0;padding-left:20px}
.rg-biz h3{margin:0}

/* 📅 update 150: today's schedule (kiosk and Time clock → Today); color names only */
.tc-sched{display:flex;flex-direction:column;gap:4px;text-align:left;width:min(640px,100%)}
.tc-srow{display:grid;grid-template-columns:7.5em 1fr auto;gap:10px;align-items:center;padding:6px 10px;border-radius:8px;background:rgb(128 128 128 / .1)}
.tc-srow.in{background:rgb(60 154 71 / .14)}
.tc-srow.late{background:rgb(192 57 43 / .16);border-left:4px solid firebrick}
.tc-srow.off{opacity:.7}
.tc-stime{font-variant-numeric:tabular-nums;font-size:.9rem}
.tc-sstate{font-size:.9rem;text-align:right}
.tc-sched.big .tc-srow{font-size:1.1rem;padding:8px 12px}
.tc-ro{display:block;padding:6px 10px;border-radius:8px;background:rgb(45 108 223 / .1)}

/* 🙂 update 150: My notes, Trash and Simple mode sit in the Me & extras group (no second heading at the bottom) */
html.lay2 #menuExtras[hidden],#menuExtras[hidden]{display:none!important}
.simple-sw.nav-link{display:flex;gap:8px;align-items:center}
/* 🏆 update 150: a games grid that's hidden stays hidden (it showed on the Team tab, above the team options) */
.quest-grid[hidden],[data-sub].quest-grid[hidden]{display:none!important}
@media (min-width:721px){html.lay2 #tabs .me-extra.only-phone{display:none}}

/* 🖼️ update 150: a picture on every quiz question (tap to zoom) */
.qz-pic{margin:6px 0 4px;border-radius:12px;overflow:hidden;max-width:560px;aspect-ratio:20/9;background:rgb(128 128 128 / .12)}
.qz-pic img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
.tr-print .qz-print{float:right;width:1.6in;height:.75in;object-fit:cover;margin:0 0 4pt 8pt;border-radius:4pt}
.tr-print .quiz li{overflow:hidden}
.qz-pic{position:relative}.qz-pic figcaption{position:absolute;left:0;right:0;bottom:0;padding:3px 8px;font-size:.7rem;color:white;background:rgb(0 0 0 / .45)}

/* 📟 update 150 fix: the kiosk code always shows in full (phones: code first, list below; wide screens: side by side) */
.tc-kiosk{justify-content:flex-start}
.tc-kwrap{margin:auto;display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:1200px}
.tc-kleft{display:flex;flex-direction:column;align-items:center;gap:12px}
.tc-kleft h2{margin:0}
.tc-kleft p{margin:0}
.tc-qr svg{width:min(78vw,360px,48dvh)}
.tc-kiosk .tc-board{width:100%;justify-content:center}
@media (max-width:600px){.tc-kpin{font-size:2.4rem}.tc-sched.big .tc-srow{font-size:.95rem;grid-template-columns:5.8em 1fr auto;padding:6px 8px}}
@media (min-width:900px){.tc-kwrap{flex-direction:row;align-items:flex-start;justify-content:center;gap:32px}.tc-kleft{flex:0 0 auto;position:sticky;top:0}.tc-kiosk .tc-board{flex:1 1 auto;max-width:620px;max-height:calc(100dvh - 48px);overflow:auto}}

/* 🔁 update 152: one person's repeating week */
.tc-repbtn{margin-top:4px;font-size:.75rem;padding:2px 8px}
.tc-starttable input.rep{outline:2px dashed rgb(45 108 223 / .55);outline-offset:-2px}
.tc-repgrid{display:flex;flex-direction:column;gap:6px}
.tc-reprow{display:grid;grid-template-columns:3em 1fr auto 1fr auto;gap:8px;align-items:center}
.tc-repbox{max-width:560px}

/* 🕒 update 152: our time picker (✓ Save, Clear, Cancel) instead of the browser's */
.tp-ov{position:fixed;inset:0;z-index:10050;background:rgb(0 0 0 / .35);display:flex;align-items:flex-end;justify-content:center}
.tp-box{background:var(--surface-solid,var(--surface));color:var(--ink);width:min(100%,420px);border-radius:18px 18px 0 0;padding:14px 16px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;box-shadow:0 -10px 40px rgb(0 0 0 / .3);max-height:92dvh;overflow:auto}
.tp-box.float{position:fixed;width:320px;border-radius:16px;padding:14px}
.tp-title{font-size:.95rem}
.tp-show{font:800 2rem var(--body);text-align:center}
.tp-grid{display:grid;gap:6px}
.tp-h{grid-template-columns:repeat(6,1fr)}
.tp-m{grid-template-columns:repeat(6,1fr)}
.tp-ap{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.tp-b{border:1px solid rgb(128 128 128 / .35);background:transparent;color:inherit;border-radius:10px;padding:8px 0;font:600 .95rem var(--body);cursor:pointer;min-height:40px}
.tp-b.on{background:var(--accent,darkorange);border-color:transparent;color:white}
.tp-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.tp-acts .btn.primary{flex:1}
/* 🔁 update 153: dialogs opened from a full-screen view (🔁 Repeat on the schedule, jobs, punches) show on top of it */
.cd-full-on .hd-ov{z-index:9700}

/* 🛒 update 154: shared lists */
.sl-page{gap:10px}
.sl-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.sl-top h2{margin:0}
.sl-chips,.sl-card{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sl-chip{border:1px solid rgb(128 128 128 / .35);background:transparent;color:inherit;border-radius:999px;padding:6px 12px;font:600 .9rem var(--body);cursor:pointer}
.sl-chip.on{background:var(--accent,darkorange);color:white;border-color:transparent}
.sl-head{display:flex;flex-direction:column;gap:2px}.sl-head b{font-size:1.15rem}
.sl-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sl-run{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;border-radius:10px;background:rgb(45 108 223 / .1)}
.sl-add{display:flex;gap:6px;align-items:flex-start}.sl-add textarea{flex:1;min-height:42px;resize:vertical}
.sl-aisle h4{margin:10px 0 4px;font-size:.85rem;opacity:.8}
.sl-row{display:flex;gap:10px;align-items:center;padding:8px 6px;border-bottom:1px solid rgb(128 128 128 / .15)}
.sl-row input[type=checkbox]{width:24px;height:24px;flex:0 0 auto}
.sl-row.done .sl-name{text-decoration:line-through;opacity:.6}
.sl-main{flex:1;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
.sl-name{font-weight:600}.sl-qty{font-size:.8rem;padding:1px 8px;border-radius:999px;background:rgb(128 128 128 / .18)}
.sl-main small{flex-basis:100%}
.sl-ph{width:44px;height:44px;object-fit:cover;border-radius:8px;cursor:zoom-in}
.sl-empty{padding:14px 0}
.sl-sheet{width:min(720px,100%);max-height:min(900px,calc(100dvh - 32px))}.sl-sheet>div:last-child{overflow:auto;padding:12px}
.sl-add{flex-wrap:wrap}.sl-add textarea{flex:1 1 100%}
.sl-tools select{width:auto;max-width:min(320px,70vw)}
@media (min-width:700px){.sl-add textarea{flex:1 1 auto}}
/* 📦 update 155: Products & Services suggestions under "What the work is", and the top add button */
.qt-sug{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:10px;padding:4px;background:var(--surface);box-shadow:0 6px 18px rgb(0 0 0 / .12)}
.qt-sugrow{display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer;font:inherit}
.qt-sugrow:hover,.qt-sugrow:focus-visible{background:var(--line)}
.qt-prodtop{align-self:flex-start}
/* 📋 update 155: a template's picture and header at the top of a quote */
.qp-banner{display:block;width:100%;max-height:240px;object-fit:contain;border-radius:12px;margin:0 auto 8px}
.qp-header{margin:4px 0 8px;text-align:center;font-size:1.5em}
.qt-bannerprev{display:block;max-width:100%;max-height:140px;object-fit:contain;border-radius:10px;border:1px solid var(--line);background:var(--surface)}
@media print{.qp-banner{max-height:160px}}
/* 🌩️ update 156: Weather Watch */
.wx-head{align-items:center;gap:8px;flex-wrap:wrap}.wx-head h2{margin:0;flex:1 1 auto}
.wx-alert{border:1px solid var(--line);border-left:6px solid var(--warn);border-radius:12px;padding:10px 12px;background:var(--surface);display:flex;flex-direction:column;gap:4px}
.wx-alert.wx-warning{border-left-color:var(--bad);background:linear-gradient(135deg,var(--surface),var(--bad-soft))}
.wx-alert.wx-watch{border-left-color:var(--warn);background:linear-gradient(135deg,var(--surface),var(--warn-soft))}
.wx-alert.wx-advisory{border-left-color:var(--accent)}
.wx-atop{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wx-aicon{font-size:1.4em}.wx-until{margin-left:auto;color:var(--muted)}
.wx-advice{margin:0;font-weight:600}.wx-desc{white-space:pre-wrap;font-size:.9em}.wx-more summary{cursor:pointer;color:var(--muted)}
.wx-calm{margin:0;padding:10px 12px;border-radius:12px;background:var(--ok-soft)}
.wx-map{position:relative;height:min(62vh,560px);min-height:300px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.wx-map .lm-map{height:100%}
.wx-ctl{gap:8px;align-items:center;flex-wrap:wrap}.wx-frame{min-width:7em}
.wx-legend{display:flex;align-items:center;gap:8px}.wx-scale{flex:1;height:10px;border-radius:6px;background:linear-gradient(90deg,rgb(4 233 231),rgb(1 159 244),rgb(2 253 2),rgb(1 197 1),rgb(253 248 2),rgb(229 188 0),rgb(253 149 0),rgb(253 0 0),rgb(188 0 0),rgb(248 0 253),rgb(152 84 198))}
.wx-card{border-left:5px solid var(--line)}.wx-card.live{border-left-color:var(--bad);background:linear-gradient(135deg,var(--surface),var(--bad-soft))}
.wx-sheet{width:min(980px,96vw)}.wx-people{max-height:240px;overflow:auto}
.lm-over{pointer-events:none}
.wx-wrap.wx-full{position:fixed;inset:0;z-index:9800;background:var(--bg);padding:10px;gap:8px;display:flex;flex-direction:column}
.wx-wrap.wx-full .wx-map{flex:1;height:auto;min-height:0}
.wx-wrap:fullscreen{background:var(--bg);padding:10px}
body.wx-noscroll{overflow:hidden}
.wx-fsbtn{font-weight:700}
.wx-wrap.wx-full{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
.wx-radarnote{padding:6px 10px;border-radius:10px;background:var(--warn-soft)}
/* 📂 update 156: drag files onto the app */
.ow-droptip{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:9900;pointer-events:none;padding:12px 18px;border-radius:14px;background:var(--accent);color:var(--accent-ink);font-weight:700;box-shadow:0 8px 24px rgb(0 0 0 / .25)}
/* 📝 update 156: a Jobber quote, read only */
.jq-meta{gap:2px}.jq-note{margin:0;padding:8px 12px;border-radius:10px;background:var(--warn-soft)}
.jq-line{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);display:flex;flex-direction:column;gap:4px}
.jq-ltop{gap:8px;align-items:baseline}.jq-amt{margin-left:auto}.jq-opt{font-size:.8em;padding:2px 8px;border-radius:999px;background:var(--accent-soft)}
.jq-desc{margin:0;white-space:pre-wrap}.jq-tot{gap:4px;border-top:1px solid var(--line);padding-top:8px}.jq-trow{justify-content:space-between}.jq-trow.big{font-size:1.15em}
/* 🧾 🍽️ update 156: timecards and each person's lunch */
.tc-cardbox{width:min(760px,96vw)}
.tc-card{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tc-card th,.tc-card td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left}
.tc-card tr.off td{color:var(--muted)}.tc-card tfoot td{font-weight:800;border-bottom:0}
.tc-card td.tc-autolunch{color:var(--accent)}.tc-cardflag td{font-size:.85em;color:var(--warn);border-bottom:1px dashed var(--line)}
.tc-lunchbtn,.tc-cardbtn{margin-top:4px;font-size:.8em;white-space:nowrap}.tc-lunchbtn.own{border-color:var(--accent)}
.tc-lopt{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px}
@media print{body.tc-printcard>*:not(.tc-cardov){display:none!important}body.tc-printcard .tc-cardov{position:static;background:none}body.tc-printcard .tc-cardbox{width:100%;box-shadow:none}body.tc-printcard .hd-head button,body.tc-printcard .tc-weeknav button{display:none}}
/* 🧾 📤 update 156: timecards for audits, employee search and reports */
.tc-cardbar select,.tc-cardbar input{max-width:220px}
.tc-acard{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.tc-ahead{display:flex;flex-direction:column;gap:2px}.tc-ahead h3{margin:0}.tc-abiz{font-size:.85em;color:var(--muted)}
.tc-anote{font-size:.85em;color:var(--muted)}.tc-weeks{font-size:.9em}.tc-changes small{display:block}
.tc-sigs{display:flex;flex-wrap:wrap;gap:24px;margin-top:14px;font-size:.9em}
.tc-acard .tc-card{display:block;overflow-x:auto}
/* 🔖 update 163: each person's name bar stays on top while you scroll their timecard; names to jump to */
.tc-aname{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-12px -12px 4px;padding:10px 14px;border-radius:12px 12px 0 0;background:var(--accent);color:var(--accent-ink);font-size:1.1em;box-shadow:0 2px 6px rgb(0 0 0/.18)}
.tc-aname span{font-weight:600;opacity:.9;white-space:nowrap}
html.phone .tc-aname{top:64px}html.phone.hdr-away .tc-aname{top:0}
.tc-acard{scroll-margin-top:8px}html.phone .tc-acard{scroll-margin-top:72px}
.tc-jump{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tc-jumpchip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:5px 12px;font:inherit;font-size:.9em;cursor:pointer}
.tc-jumpchip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}
.hr-search{gap:8px;flex-wrap:wrap}.hr-search input{flex:1 1 240px}
.hr-rep{justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:6px 0}.hr-rep .stack{flex:1 1 auto;gap:0}
.hr-repwrap{overflow:auto;max-height:60vh}.hr-reptable{font-size:.85em;white-space:nowrap}
@media print{body.tc-printcards *{visibility:hidden}body.tc-printcards .tc-cardsout,body.tc-printcards .tc-cardsout *{visibility:visible}body.tc-printcards .tc-cardsout{position:absolute;left:0;top:0;width:100%}body.tc-printcards .tc-acard{break-after:page;border:0;background:none;color:black}body.tc-printcards .tc-noprint{display:none}body.tc-printcards .tc-aname{display:none}body.tc-printcards .tc-acard .tc-card{display:table}}
/* 🎮 update 156: team games from real work */
.jg-sheet{width:min(720px,96vw)}.jg-sheet.jg-wide{width:min(980px,98vw)}
.jg-team{border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:var(--surface)}.jg-team.mine{border-color:var(--accent)}.jg-team summary{cursor:pointer}
.jg-pts{font-weight:800;color:var(--accent)}.jg-person{font-size:.9em;padding:2px 0 2px 18px}.jg-person.me{font-weight:700}
.jg-bingo{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.jg-sq{border:1px solid var(--line);border-radius:10px;padding:8px;min-height:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px;background:var(--surface);font-size:.85em}
.jg-sq.done{background:var(--ok-soft)}.jg-sq.line{outline:3px solid var(--accent);outline-offset:-3px}.jg-sqi{font-size:1.5em}.jg-bingo-yes{font-weight:800;color:var(--accent)}
.jg-hzrow{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:6px 0}.jg-hzrow .stack{flex:1 1 auto;gap:0}
.jg-hzthumb{width:64px;height:48px;object-fit:cover;border-radius:8px}
.jg-hzwrap{position:relative;display:inline-block;max-width:100%;cursor:crosshair;user-select:none}.jg-hzimg{display:block;max-width:100%;max-height:62vh;border-radius:10px}
.jg-hzlayer{position:absolute;inset:0;pointer-events:none}
.jg-spot{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:3px solid gold;aspect-ratio:1;box-sizing:border-box}
.jg-spot.hit{border-color:limegreen;background:rgb(50 205 50 / .15)}.jg-spot.miss{border-color:crimson;background:rgb(220 20 60 / .15)}
.jg-spot span{position:absolute;left:50%;top:100%;transform:translateX(-50%);white-space:nowrap;background:rgb(0 0 0 / .75);color:white;font-size:12px;padding:2px 6px;border-radius:6px}
.jg-tap{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:2px solid white;background:rgb(255 255 255 / .3)}
.jg-hzinfo{justify-content:space-between}
.jg-pics{display:flex;gap:6px;overflow-x:auto}.jg-pics img{height:160px;border-radius:10px;object-fit:cover}
.jg-reveal{font-size:1.15em;font-weight:700;margin:0}.jg-board{margin:0;padding-left:20px}.jg-board li.me{font-weight:800}
.lg-tools{flex-wrap:wrap;gap:4px}.lg-canvas{border-radius:8px;touch-action:none;align-self:center}
/* 🪢 update 156: the Knot Guide */
.kg-head{align-items:center;gap:8px;flex-wrap:wrap}.kg-head h2{margin:0;flex:1 1 auto}.kg-head input{flex:1 1 220px}
.kg-list{display:flex;flex-direction:column;gap:8px}
.kg-card summary{cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kg-e{font-size:1.4em}
.kg-kind{padding:2px 8px;border-radius:999px;background:var(--accent-soft)}.kg-hasvid{color:var(--accent);font-weight:700}
.kg-body{padding-top:8px}.kg-purpose{margin:0;font-weight:600}.kg-body ul,.kg-steps{margin:0;padding-left:22px}
.kg-watch{border-left:4px solid var(--warn);padding:4px 10px;background:var(--warn-soft);border-radius:8px}.kg-watch p{margin:2px 0}
.kg-video{width:100%;max-height:60vh;border-radius:10px;background:black}
.kg-player{width:min(640px,96vw)}.kg-stage{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 16px;text-align:center}
.kg-num{font-weight:800;color:var(--accent)}.kg-text{font-size:1.5em;font-weight:700;margin:0;min-height:3em}
.kg-dots{display:flex;gap:6px}.kg-dots span{width:10px;height:10px;border-radius:50%;background:var(--line)}.kg-dots span.on{background:var(--accent)}
.kg-in{animation:kgIn .35s ease}@keyframes kgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.kg-ctl{justify-content:center;padding-bottom:12px}.kg-sheet{width:min(900px,98vw)}
/* 🪢 update 156: Knot of the Week and the Knot Book */
.kw-panel{border:2px solid var(--accent)}.kw-top{gap:10px;align-items:center}.kw-e{font-size:2em}.kw-title{gap:0}.kw-label{font-weight:800;letter-spacing:.06em;color:var(--accent)}
.kw-acts{flex-wrap:wrap;gap:6px}.kw-entries{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.kw-entry{border:1px solid var(--line);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:4px;background:var(--surface)}.kw-entry video{width:100%;border-radius:8px;background:black;max-height:240px}
.kw-entry.won{border-color:gold;box-shadow:0 0 0 2px gold}.kw-entry.wrong{opacity:.6}
.kw-book summary,.kw-set summary{cursor:pointer;font-weight:700}.kw-page{display:block;width:100%;text-align:left;padding:8px;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;cursor:pointer;font:inherit}
.kw-canvas{width:100%;max-width:720px;aspect-ratio:4/3;border-radius:12px;border:1px solid var(--line);background:white;align-self:center;touch-action:none}
.kw-draw{cursor:crosshair}.kw-tools{flex-wrap:wrap;gap:6px}.kw-cap{font-size:1.15em;min-height:2.4em}.kw-key{gap:12px;justify-content:center;flex-wrap:wrap}.kw-credit{text-align:center;padding-bottom:10px}
.kw-anim{width:min(760px,98vw);display:flex;flex-direction:column;align-items:stretch}.kw-anim .kg-num{text-align:center;padding-top:8px}
/* ✏️ update 156: fix a wallet line / edit a paid receipt */
.bl-fix{display:grid;gap:8px;border:1px dashed var(--line);border-radius:10px;padding:10px;margin:6px 0 4px}
.bl-fix .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bl-fixed{display:block;color:var(--muted);font-size:.8rem}
.rc-editing{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;background:rgba(127,127,127,.08)}
@media (max-width:560px){.bl-fix .two{grid-template-columns:1fr}}
/* 🌦️ update 157: the forecast and radar loops */
.wx-fc h3{margin:6px 0 0}
.wx-places,.wx-modes{display:flex;flex-wrap:wrap;gap:6px}
.wx-now{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);display:flex;flex-direction:column;gap:8px}
.wx-big{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.wx-bigicon{font-size:2.6rem;line-height:1}
.wx-temp{font-size:2.6rem;line-height:1}
.wx-nowtxt{display:flex;flex-direction:column;gap:2px;min-width:0}
.wx-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.wx-fact{border:1px solid var(--line);border-radius:10px;padding:6px 8px;display:flex;flex-direction:column;gap:2px}
.wx-work{display:flex;flex-direction:column;gap:4px}
.wx-note{border-radius:8px;padding:5px 8px;border-left:4px solid var(--line);background:rgba(127,127,127,.07)}
.wx-n-bad{border-left-color:var(--bad);background:var(--bad-soft)}
.wx-n-watch{border-left-color:var(--warn);background:var(--warn-soft)}
.wx-n-good{border-left-color:var(--ok)}
.wx-hours{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity;max-width:100%}
.wx-hour{flex:0 0 74px;scroll-snap-align:start;border:1px solid var(--line);border-radius:10px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.wx-hour.newday{border-left:3px solid var(--accent)}
.wx-hour.wet{background:rgba(59,130,246,.1)}
.wx-hicon{font-size:1.4rem}
.wx-pop{color:rgb(59,130,246);min-height:1em}
.wx-days{display:flex;flex-direction:column;gap:4px}
.wx-day{border:1px solid var(--line);border-radius:10px;padding:0 10px}
.wx-day summary{display:grid;grid-template-columns:minmax(80px,1.2fr) 30px 54px 38px minmax(60px,2fr) 38px 22px;align-items:center;gap:6px;padding:8px 0;cursor:pointer;list-style:none}
.wx-day summary::-webkit-details-marker{display:none}
.wx-dicon{font-size:1.3rem;text-align:center}
.wx-dpop{color:rgb(59,130,246);font-size:.85rem}
.wx-lo{text-align:right;color:var(--muted)}
.wx-bar{position:relative;height:6px;border-radius:3px;background:rgba(127,127,127,.18)}
.wx-bar i{position:absolute;top:0;bottom:0;border-radius:3px;background:linear-gradient(90deg,rgb(56,189,248),rgb(250,204,21),rgb(249,115,22))}
.wx-dbody{padding:0 0 10px}
.wx-dbody p{margin:0}
.wx-slider{flex:1 1 160px;min-width:120px}
.wx-futuremode .wx-frame{color:rgb(168,85,247)}
@media (max-width:560px){.wx-day summary{grid-template-columns:minmax(64px,1fr) 26px 46px 32px minmax(40px,1.4fr) 32px 18px;gap:4px;font-size:.92rem}.wx-temp,.wx-bigicon{font-size:2.1rem}}
/* 📍 update 157: our locations */
.loc-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.loc-card .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.loc-flags{gap:14px;flex-wrap:wrap;align-items:center}
.loc-check{display:inline-flex;gap:6px;align-items:center}
@media (max-width:560px){.loc-card .two{grid-template-columns:1fr}}
/* 🖨️ ⋯ update 157: row options (print, send, more) on the right of each request, quote, job and invoice */
.od-actrow{display:flex;align-items:stretch;gap:6px;min-width:0}
.od-actrow>.od-row{flex:1 1 auto;min-width:0}
.rm-acts{display:flex;align-items:center;justify-content:flex-end;gap:2px;flex:0 0 auto;min-width:112px}
.rm-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;min-width:36px;min-height:36px;padding:0 6px;font-size:1rem;cursor:pointer}
.rm-btn:hover,.rm-btn:focus-visible{border-color:var(--accent)}
.rm-more{font-weight:700;letter-spacing:1px}
.rm-menu{position:fixed;z-index:9000;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:6px;display:flex;flex-direction:column;max-height:70vh;overflow:auto}
.rm-menu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}
.rm-item{background:none;border:0;color:inherit;text-align:left;padding:9px 10px;border-radius:8px;font:inherit;cursor:pointer}
.rm-item:hover,.rm-item:focus-visible{background:rgba(127,127,127,.14)}
.rm-item.danger{color:var(--bad)}
.rm-printbar{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:560px){.od-actrow{flex-wrap:nowrap}.rm-btn{min-width:34px}}
body.qp-printing .qp-note{display:none}
/* 📱 update 157: a video this computer can't open */
.tile.noprev{display:flex;align-items:center;justify-content:center}
.tile .noprev-note{position:absolute;inset:auto 4px 30px 4px;font-size:.72rem;text-align:center;background:rgba(0,0,0,.6);color:white;border-radius:6px;padding:3px 4px}
/* ⛽ update 157: ⛽ Add delivery stands out; the delivery box is one number */
.sh-tank{grid-template-columns:minmax(120px,1fr) 2fr auto auto auto}
.sh-deliverbtn{font-weight:800;padding:8px 14px;box-shadow:0 2px 8px rgba(0,0,0,.18);white-space:nowrap}
.sh-tanknow{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--sunk)}
.sh-tanknow b{font-size:1.6rem;line-height:1.1}
.sh-bigin{font-size:1.4rem;padding:10px 12px}
.sh-tankafter{color:var(--ok);font-weight:700;min-height:1.2em}
.sh-fixlevel{margin-top:6px}.sh-fixlevel summary{cursor:pointer;color:var(--muted);font-size:.9rem}
@media (max-width:560px){.sh-tank{grid-template-columns:1fr auto}.sh-tank .sh-tankbar{grid-column:1/-1}.sh-deliverbtn{grid-column:1/-1;width:100%}}
/* 📒 update 158: the fuel log under each tank's ⛽ Add delivery */
.sh-deliverwrap{display:flex;flex-direction:column;align-items:stretch;gap:4px}
.sh-logbtn{font-size:.85rem}
.sh-logtop{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.sh-logtile{border:1px solid var(--line);border-radius:10px;padding:6px 8px;display:flex;flex-direction:column;gap:2px}
.sh-logrow{display:flex;gap:8px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:6px;min-width:0}
.sh-logmid{display:flex;flex-direction:column;gap:2px;min-width:0}
.sh-logrow.removed .sh-logmid b{text-decoration:line-through;opacity:.55}
.sh-logrow.pumped .sh-logmid b{font-weight:600;color:var(--muted)}
.sh-logacts{display:flex;gap:4px;flex:0 0 auto}
.sh-logedit{display:grid;gap:8px;border:1px dashed var(--line);border-radius:10px;padding:8px;margin:4px 0}
@media (max-width:560px){.sh-logrow{flex-wrap:wrap}.sh-logacts{width:100%}}
@media (max-width:600px){.sh-tank .sh-deliverwrap{grid-column:1/-1}.sh-tank .sh-deliverwrap .sh-deliverbtn{width:100%}}
/* ✏️ update 158: edit a purchase order on its card */
.sh-poform{border:1px dashed var(--line);border-radius:10px;padding:10px;margin-top:6px}
.sh-partrow.sh-porow{grid-template-columns:70px 70px minmax(120px,1fr) 110px 90px auto}
.sh-pocancel{color:var(--bad)}
@media (max-width:600px){.sh-partrow.sh-porow{grid-template-columns:64px 80px 1fr;border-bottom:1px solid var(--line);padding-bottom:6px}}
/* 📅 update 161: start times and jobs on your own calendar (read-only) */
.me-row.me-auto{border-left:4px solid var(--accent)}
.me-row.me-work{border-left-color:rgb(25 118 210)}
.me-row.me-jobs{border-left-color:rgb(56 142 60)}
.me-next{display:block;font-weight:600}

/* 📱 update 164: the Time clock Schedule on a phone, one day at a time */
.tcm-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.tcm-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;min-width:0}
.tcm-day small{font-size:.7em;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.tcm-day b{font-size:1.2em;line-height:1.1}.tcm-day span{font-size:.66em;color:var(--muted);white-space:nowrap}
.tcm-day.today{border-color:var(--accent)}.tcm-day.today small{color:var(--accent);font-weight:700}
.tcm-day.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.tcm-day.on small,.tcm-day.on span{color:var(--accent-ink)}
.tcm-dayname{font-size:1.05em;margin-top:2px}
.tcm-card{border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:12px;padding:10px 12px;background:var(--surface);display:flex;flex-direction:column;gap:6px}
.tcm-card.k-off,.tcm-card.k-none{border-left-color:var(--line);opacity:.85}.tcm-card.k-called{border-left-color:var(--warn)}.tcm-card.clash{border-left-color:var(--bad)}
.tcm-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.tcm-name{font-size:1.12em}.tcm-time{font-weight:700;font-size:1.05em;white-space:nowrap}
.tcm-punch{font-size:.95em;padding:4px 8px;border-radius:8px;background:var(--ok-soft);color:var(--ink)}.tcm-punch.late{background:var(--bad-soft)}.tcm-punch.none{background:var(--sunk);color:var(--muted)}
.tcm-jobs{font-size:.9em;color:var(--muted)}
.tcm-edit>summary{cursor:pointer;font-weight:600;color:var(--accent);padding:4px 0}.tcm-edit .tc-who-day{display:none}.tcm-edit .tc-cell{border:0;padding:6px 0 0}
.tcm-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tcm-tools br{display:none}
.tcm-more>summary{cursor:pointer;font-weight:600;padding:6px 0}.tcm-more{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tcm-save{position:sticky;bottom:calc(var(--bar-h,0px) + 8px);z-index:5;background:var(--surface-solid,var(--surface));border:1px solid var(--line);border-radius:12px;padding:6px 8px;box-shadow:0 -2px 10px rgb(0 0 0/.2);display:flex;flex-wrap:nowrap!important;gap:6px;align-items:center}
.tcm-save>small{display:none}.tcm-save select{flex:1;min-width:0;padding:6px 8px;font-size:.9em}.tcm-save input[type=date]{flex:1;min-width:0}.tcm-save .btn{flex:none}
.tc-starts.tcm-on .tc-row{flex-wrap:wrap}

/* ⬆️ update 165: the upload line, storage and tips in the media library */
.up-head{display:flex;flex-wrap:wrap;gap:4px;align-items:baseline;padding:6px 10px;border-radius:10px;background:var(--accent-soft);color:var(--ink)}
.up-st{flex:none;color:var(--muted);font-size:.8rem;white-space:nowrap}.up.up-wait{opacity:.65}.up.up-fail{flex-wrap:wrap}
.media-store{font-size:.85rem;color:var(--muted);padding:4px 2px}.media-store.warn{color:var(--warn)}.media-store.full{color:var(--bad);font-weight:600}
.up-tips{font-size:.88rem;border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin:4px 0}.up-tips summary{cursor:pointer;font-weight:600}.up-tips ul{margin:6px 0 2px;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.ad-upbox{display:flex;flex-direction:column;gap:4px}.ad-upbox progress{width:100%;accent-color:var(--accent)}.ad-uptip{display:block}

/* ⚙️ update 168: Settings → Automations */
.au-bar{gap:8px;flex-wrap:wrap}.au-bar input[type=search]{flex:1;min-width:200px}
.au-group>summary{cursor:pointer;font-weight:700;padding:8px 2px;font-size:1.02rem}
.au-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px;padding:4px 0 10px;align-items:start}
.au-card{border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:12px;padding:10px 12px;background:var(--surface);display:flex;flex-direction:column;gap:5px}
.au-card.off{border-left-color:var(--muted);opacity:.8}.au-card.locked{border-left-color:var(--line)}
.au-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.au-name{font-size:.98rem}
.au-switch{position:relative;flex:none;width:46px;height:26px;cursor:pointer}.au-switch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.au-slider{position:absolute;inset:0;border-radius:999px;background:var(--line);transition:background .15s}.au-slider::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--surface-solid,white);box-shadow:0 1px 3px rgb(0 0 0/.3);transition:transform .15s}
.au-switch input:checked+.au-slider{background:var(--ok)}.au-switch input:checked+.au-slider::after{transform:translateX(20px)}.au-switch input:disabled+.au-slider{opacity:.55;cursor:not-allowed}.au-switch input:focus-visible+.au-slider{outline:2px solid var(--accent);outline-offset:2px}
.au-meta{font-size:.78rem}.au-edit>summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:.88rem}.au-edit{display:flex;flex-direction:column;gap:6px}
.au-field{display:flex;flex-direction:column;gap:4px;margin-top:6px}.au-field.au-check{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px}.au-save{align-self:flex-start}.au-go{align-self:flex-start;margin-top:4px}

/* 📱 update 169: the swipe arrow (phones swipe back and forward; no buttons) */
.nav-swipe{position:fixed;top:50%;z-index:9800;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:20px;background:var(--surface-solid,var(--surface));color:var(--ink);border:1px solid var(--line);box-shadow:0 3px 14px rgb(0 0 0/.3);pointer-events:none}
.nav-swipe.back{left:6px}.nav-swipe.fwd{right:6px}.nav-swipe.go{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
@media (max-width:899px){header.top .nav-hist{display:none}}

/* 📱 update 171: the chat's message bar on phones (＋ tray, full-width box, 🎙️ or ➤) and ✨ Rewrite as a sheet */
.c-more{display:none;width:40px;height:42px;border:0;border-radius:50%;background:var(--sunk);color:var(--ink);font-size:22px;font-weight:700;flex:none;cursor:pointer}
.c-rw{display:none}
@media (max-width:760px){
  .chat-compose{flex-wrap:wrap;gap:6px;align-items:flex-end}
  .chat-compose .c-more{display:grid;place-items:center;order:2}
  .chat-compose .c-field{order:3;flex:1 1 0;min-width:0}
  .chat-compose .c-ptt{order:4;width:42px}.chat-compose .c-send{order:5}
  .chat-compose.has-text .c-ptt{display:none}
  .chat-compose .c-photo,.chat-compose .c-emo,.chat-compose .c-meme,.chat-compose .c-gif{display:none}
  .chat-compose.tools-open .c-photo,.chat-compose.tools-open .c-emo,.chat-compose.tools-open .c-meme,.chat-compose.tools-open .c-gif,.chat-compose.tools-open .c-rw{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;order:0;flex:1 1 0;min-width:0;width:auto;height:58px;border-radius:12px;background:var(--sunk);font-size:22px}
  .chat-compose.tools-open .c-photo::after,.chat-compose.tools-open .c-tool::after{content:attr(data-lab);font-size:11px;font-weight:600;color:var(--muted);letter-spacing:0}
  .chat-compose.tools-open .c-ptt::after{content:none}
  .chat-compose.tools-open .c-ptt{order:4;flex:none;width:42px;height:42px;background:none;border-radius:50%}
  .chat-compose.tools-open .c-gif{font-size:14px}
  .chat-compose.tools-open::after{content:"";order:1;flex-basis:100%;height:0}
  .c-field textarea{font-size:16px}
}
.wk-menu.wk-sheet{border-radius:16px;padding:14px;box-shadow:0 -6px 30px rgba(0,0,0,.35)}
.wk-sheet .wk-tone{padding:12px 10px;font-size:.95rem}.wk-sheet .wk-row .btn{flex:1 1 auto;min-height:42px}

/* ▭ update 173: the camera's guide box only when the photo needs one, with a switch and shapes */
.wl-camframe[hidden]{display:none}.wl-camframe.tall{width:62%;left:19%;top:44%}
.wl-boxbtn{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:12px;z-index:2;border:1px solid rgba(255,255,255,.6);background:rgba(0,0,0,.45);color:white;border-radius:999px;padding:8px 14px;font:600 .9rem system-ui;cursor:pointer}
.wl-shapes{position:absolute;top:calc(58px + env(safe-area-inset-top,0px));right:12px;z-index:2;display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:14px;background:rgba(0,0,0,.7)}
.wl-shapes[hidden]{display:none}.wl-shape{border:1px solid rgba(255,255,255,.4);background:none;color:white;border-radius:10px;padding:9px 14px;font:600 .92rem system-ui;text-align:left;cursor:pointer}.wl-shape.on{background:white;color:black}
.wl-camhint{color:gainsboro;max-width:30%}

/* 📌 update 174: clocked in / switch trucks: a row in the page under the top bar, never covering the menu */
.tc-strip{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:4px auto 10px;max-width:100%}
.tc-strip[hidden]{display:none}
.tc-strip .tc-pill,.tc-strip .tc-pill.tc-swap{position:static;transform:none;top:auto;left:auto;z-index:auto;box-shadow:none;max-width:100%}
/* 🧪 update 176: chemical application lines */
.jb-chemneed{margin:4px 0 8px;padding:8px 10px;border-radius:10px;background:rgb(46 160 67 / .12);border:1px solid rgb(46 160 67 / .45);font-weight:600}
.jb-line.chem>b,.qt-line.chem{border-left:3px solid rgb(46 160 67 / .7);padding-left:8px}
.jb-chemtog,.qt-chemtog{justify-self:start;grid-column:1/-1}
.qt-chemtog.on{background:rgb(46 160 67 / .14);border-color:rgb(46 160 67 / .5)}
.qt-chem{font-weight:600}
/* 🧪 update 175: chemical records */
.ch-totals{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ch-void{opacity:.6}.ch-void>.sk-top b{text-decoration:line-through}
.ch-filters select{min-width:0}
/* 🎉 update 177: holidays on calendars; 🖱️ drag a calendar on a computer */
.cal-hol,.tc-hol,.tq-hol,.bk-hol{display:block;font-size:.72rem;line-height:1.2;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cal-hol.off,.tc-hol.off,.tq-hol.off,.bk-hol.off{color:rgb(176 42 42);font-weight:700}
.cal-holbar{display:block;margin:0 0 8px;padding:6px 10px;border-radius:10px;background:rgb(46 160 67 / .1);font-size:.85rem;white-space:normal}
.cal-holbar.off{background:rgb(220 53 69 / .12)}
.cal-cell.cal-holoff,th.cal-holoff,th.tc-holoff,.tcm-day.tcm-holoff{background:rgb(220 53 69 / .08)}
.tc-off.tc-holoff{color:rgb(176 42 42);font-weight:700}
.tc-psave{margin-top:4px}
@media (hover:hover) and (pointer:fine){.cd-caldrag{cursor:grabbing;user-select:none;transition:none}[data-cal-prev],[data-cal-next]{cursor:pointer}}
/* 🌐 update 178: the whole app in Spanish */
.cd-ptr-btn{font-weight:800;font-size:.8rem;padding:0 8px;min-width:auto;white-space:nowrap}
html.cd-es .cd-ptr-btn{background:rgb(46 160 67 / .18)}
/* ▶️ update 180: continue an unfinished form */
.cd-draftrow{display:flex;flex-direction:column;gap:6px;margin:6px 10px}
.cd-draft{display:flex;gap:6px;align-items:stretch}
.cd-draftgo{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;border-radius:14px;border:2px solid rgb(46 160 67 / .7);background:rgb(46 160 67 / .16);color:inherit;font:inherit;text-align:left;cursor:pointer}
.cd-draftgo b{font-size:1rem}.cd-draftgo small{opacity:.85}
.cd-draftx{border:1px solid var(--line);background:transparent;border-radius:12px;padding:0 12px;cursor:pointer;color:inherit}
.cd-draftbtn{font-size:1rem}
.sh-resumed{margin:0 0 8px;padding:8px 10px;border-radius:10px;background:rgb(46 160 67 / .14);font-weight:600}
.fs-note{margin:0 0 8px;padding:6px 10px;border-radius:10px;background:rgb(46 160 67 / .14);font-size:.9rem}
/* 🗑️ update 182: the dump book */
.sh-dump{padding:8px 10px;border:1px solid var(--line);border-radius:12px}.sh-dump.ours{border-color:rgb(46 160 67 / .6);background:rgb(46 160 67 / .08)}
.sh-dump .sh-row{margin-top:4px}
.sh-chipad{border:1px solid var(--line);border-radius:12px;padding:6px 10px}.sh-chipad.due{border-color:rgb(255 167 38 / .8)}.sh-chipad textarea{width:100%;margin:6px 0}
/* 🎬 update 185: Meme editor */
.ms-acts{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.me-box{max-width:560px}
.me-preview{display:flex;flex-direction:column;align-items:center;gap:6px}
.me-cv{width:min(100%,300px);aspect-ratio:9/16;height:auto;border-radius:12px;background:rgb(20 30 20);touch-action:none;cursor:grab}
.me-preview .sh-row{width:min(100%,300px)}
.me-preview input[type=range]{flex:1}
.me-clips{display:flex;gap:8px;overflow-x:auto;padding:4px 0}
.me-clip{flex:0 0 84px;display:flex;flex-direction:column;gap:3px;align-items:center}
.me-clip img,.me-clip video{width:84px;height:120px;object-fit:cover;border-radius:8px;background:var(--surface-2,rgb(0 0 0 / .08))}
.me-clipbtns{display:flex;gap:3px}
.me-lib{max-height:260px;overflow-y:auto}
.me-char{border:1px solid var(--border,rgb(0 0 0 / .12));border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px}
.me-char.on{border-color:var(--accent,rgb(46 125 50))}
.me-range{display:grid;grid-template-columns:7em 1fr 3.5em;align-items:center;gap:6px}
.me-result{width:min(100%,300px);border-radius:12px;align-self:center}
/* 🎖️ update 186: our operator certifications + the role on each career step */
.oc-row{border:1px solid var(--border,rgb(0 0 0 / .12));border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}
.oc-row.ready{border-color:var(--accent,rgb(46 125 50));background:rgb(46 125 50 / .06)}
.oc-row.on{opacity:.92}
.oc-top{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;justify-content:space-between}
.oc-item{font-size:.92rem}
.oc-adds summary{cursor:pointer;font-size:.9rem}
.oc-lead select{max-width:100%}
.tr-role{margin:0;font-size:1rem}
.tr-needs{margin:0;font-weight:600}
.tr-opc>li>ul{margin:4px 0 6px 1.1em}
.oc-locked{color:var(--muted,rgb(110 110 110));font-weight:600}
/* 🎖️ update 188: the certification hub */
.oc-row.asg{border-color:var(--warn,rgb(217 138 28))}
.oc-asg,.oc-wait{font-weight:600}
.oc-wait{color:var(--warn,rgb(176 110 20))}
.oc-hubbtn{align-self:flex-start}
.oc-pend{border:1px solid var(--border,rgb(0 0 0 / .12));border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}
.oc-who{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px;max-height:280px;overflow-y:auto}
.oc-board{overflow-x:auto;max-width:100%}
.oc-table{border-collapse:collapse;font-size:.9rem;min-width:100%}
.oc-table th,.oc-table td{border-bottom:1px solid var(--border,rgb(0 0 0 / .1));padding:6px 8px;text-align:center;white-space:nowrap}
.oc-table th:first-child,.oc-table td:first-child{text-align:left;position:sticky;left:0;background:var(--surface,rgb(255 255 255))}
.oc-table td.on{background:rgb(46 125 50 / .12)}
.oc-table td.ready{background:rgb(46 125 50 / .25);font-weight:700}
.oc-table td.asg{background:rgb(217 138 28 / .12)}
.oc-name{background:none;border:0;padding:0;color:var(--link,inherit);text-decoration:underline;cursor:pointer;font:inherit}
/* 🪪 update 188: the certification card (wallet size 3.375in × 2.125in) */
.oc-cardbox{max-width:760px}
.oc-cards{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.oc-card{position:relative;width:min(100%,340px);aspect-ratio:3.375/2.125;border-radius:14px;padding:14px 16px;box-sizing:border-box;display:flex;flex-direction:column;gap:3px;overflow:hidden;font-size:11px;line-height:1.3;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.oc-front{background:linear-gradient(135deg,rgb(18 52 32),rgb(38 92 54));color:rgb(245 245 238);box-shadow:inset 0 0 0 3px rgb(212 175 55),inset 0 0 0 5px rgb(18 52 32),0 6px 18px rgb(0 0 0 / .25)}
.oc-back{background:rgb(250 248 240);color:rgb(30 30 30);box-shadow:inset 0 0 0 3px rgb(38 92 54),0 6px 18px rgb(0 0 0 / .18)}
.oc-brand b{display:block;font:700 16px/1.1 Georgia,serif;color:rgb(212 175 55)}
.oc-brand small{font:9px Georgia,serif;opacity:.85}
.oc-kicker{margin-top:6px;font-weight:800;letter-spacing:.14em;font-size:9px;text-transform:uppercase;color:rgb(212 175 55)}
.oc-cert{font-weight:800;font-size:15px;line-height:1.15;max-width:78%}
.oc-holder{font:italic 15px Georgia,serif;margin-top:auto;color:rgb(250 244 222)}
.oc-meta{display:flex;flex-wrap:wrap;gap:0 10px;font-size:8.5px;opacity:.9}
.oc-no{font:700 9px ui-monospace,monospace;color:rgb(212 175 55)}
.oc-seal{position:absolute;top:12px;right:14px;width:46px;height:46px;border-radius:50%;background:rgb(212 175 55);display:grid;place-items:center;font-size:26px;box-shadow:0 0 0 3px rgb(18 52 32),0 0 0 4px rgb(212 175 55)}
.oc-bhead{font:700 11px Georgia,serif;color:rgb(18 52 32)}
.oc-earned{font-weight:700;color:rgb(38 92 54);font-size:10.5px}
.oc-back ul{margin:2px 0 0 1.1em;padding:0;font-size:9px}
.oc-sign{margin-top:auto;display:flex;justify-content:space-between;gap:8px;font-size:8.5px}
.oc-verify{font-size:8px;color:rgb(38 92 54)}
.oc-test{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-weight:600}
.oc-trow{justify-content:space-between;align-items:center;border-bottom:1px solid var(--border,rgb(0 0 0 / .08));padding:4px 0}
@media print{body.tr-printing .oc-printcards{display:flex!important;flex-direction:column;gap:.25in;align-items:flex-start}.oc-printcards .oc-card{width:3.375in;height:2.125in;aspect-ratio:auto;break-inside:avoid;box-shadow:none;border:1px dashed rgb(150 150 150)}.oc-printcards .oc-front{box-shadow:inset 0 0 0 3px rgb(212 175 55)}.oc-printcards p{font:10pt system-ui,sans-serif;margin:0}}
/* ❄️ update 189: snow seasons */
.oc-snow{font-weight:600;color:var(--link,rgb(40 100 170))}
.oc-stars{font-size:12px;letter-spacing:1px}
.oc-front.oc-gold{background:linear-gradient(135deg,rgb(120 90 20),rgb(190 150 50));box-shadow:inset 0 0 0 3px rgb(255 240 190),inset 0 0 0 5px rgb(120 90 20),0 6px 18px rgb(0 0 0 / .25)}
.oc-front.oc-gold .oc-brand b,.oc-front.oc-gold .oc-kicker,.oc-front.oc-gold .oc-no{color:rgb(255 245 210)}
.oc-ret{flex-wrap:wrap;align-items:center;gap:6px}
/* 🖨️ update 189: printing career paths and handouts: white paper (no dark theme or woods photo), and every page prints (nothing clipped to the screen) */
@media print{html:has(body.tr-printing){color-scheme:light!important;background:white!important;background-image:none!important;height:auto!important;overflow:visible!important}body.tr-printing{background:white!important;background-image:none!important;color:black!important;height:auto!important;min-height:0!important;overflow:visible!important;padding:0!important;margin:0!important;position:static!important}body.tr-printing::before,body.tr-printing::after{display:none!important;content:none!important}body.tr-printing .tr-print{position:static!important;overflow:visible!important;height:auto!important;max-height:none!important}body.tr-printing .tr-print table{page-break-inside:auto}body.tr-printing .tr-print tr{break-inside:avoid}}
/* ✅ update 190: the new hire checklist */
.nh-box{max-width:640px}
.nh-row{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border,rgb(0 0 0 / .1));padding:8px 0}
.nh-row.on .nh-t b{color:var(--ok,rgb(46 125 50))}
.nh-row.na{opacity:.6}
.nh-t{display:flex;flex-direction:column;gap:2px;flex:1}
.nh-auto{font-style:italic;color:var(--muted,rgb(110 110 110))}
.nh-acts{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;max-width:45%}
.nh-line{display:flex;gap:6px;align-items:center}
.nh-line .tr-row{flex:1}
/* 🚗 update 191: the driving hub */
.dr-big{font-size:1.4rem;font-weight:800;margin:0}
.dr-spark{display:inline-flex;align-items:flex-end;gap:2px;height:26px;vertical-align:middle}
.dr-spark i{display:block;width:7px;border-radius:2px;background:var(--muted,rgb(140 140 140))}
.dr-spark i.g{background:var(--ok,rgb(46 125 50))}.dr-spark i.y{background:var(--warn,rgb(217 138 28))}.dr-spark i.r{background:var(--bad,rgb(192 57 43))}
.dr-step{display:flex;flex-direction:column;gap:3px;border-bottom:1px solid var(--border,rgb(0 0 0 / .08));padding:6px 0}
.dr-step.on b{color:var(--ok,rgb(46 125 50))}
.dr-warn{color:var(--warn,rgb(176 110 20));font-weight:600}
.dr-tabs{gap:6px}
/* 📇 update 192: Contacts (the Rolodex) */
.ct-page{gap:10px}
.ct-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ct-head h2{margin:0}
.ct-wide{max-width:820px}
.ct-box .ct-page{display:flex;flex-direction:column}
.ct-list{display:flex;flex-direction:column;gap:8px}
.ct-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.ct-card.fav{border-color:var(--accent)}
.ct-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;flex-wrap:wrap}
.ct-who{display:flex;flex-direction:column;gap:2px;min-width:0}
.ct-who b{overflow-wrap:anywhere}
.ct-pills{display:flex;gap:4px;flex-wrap:wrap}
.ct-pill{font-size:.75rem;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--ink)}
.ct-pill.ct-tag{background:var(--sunk);color:var(--muted)}
.ct-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ct-acts a.btn{text-decoration:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-own{border-top:1px dashed var(--line);padding-top:6px}
.ct-more{overflow-wrap:anywhere}
.ct-chips{display:flex;gap:6px;flex-wrap:wrap}
.ct-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;font:inherit;font-size:.85rem;cursor:pointer}
.ct-chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.ct-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:560px){.ct-two{grid-template-columns:1fr}}
.ct-field{display:flex;flex-direction:column;gap:3px}
.ct-field input,.ct-field textarea{width:100%;box-sizing:border-box}
.ct-phrow{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center}
.ct-chk{display:flex;gap:8px;align-items:center}
.ct-warn{border:1px solid var(--bad);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
#crewContacts:empty{display:none}
.cal-main2>*,.cal-body{min-width:0}   /* 🩹 update 193: the day timeline scrolls inside its box on a phone instead of pushing the whole page sideways */
/* 📌 update 193: loose ends on Home */
.lo-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px;color:var(--ink);font:inherit;cursor:pointer}
.lo-row small{grid-column:1}
.lo-go{grid-column:2;grid-row:1/span 2;align-self:center;color:var(--accent);font-weight:600}
.au-cost{gap:8px}
.au-cost .au-bars{display:flex;align-items:flex-end;gap:2px;height:48px}
.au-cost .au-bars i{flex:1;background:var(--accent);border-radius:2px 2px 0 0;min-height:1px;opacity:.8}
.au-cost .au-staff{display:grid;grid-template-columns:1fr auto auto;gap:4px 12px;font-size:.9rem}
/* 🏌️ update 194: the golf Pro Shop */
.gp-box{max-width:620px}
.gp-top{display:flex;flex-direction:column;gap:4px}
.gp-coins{font-size:1.2rem}
.gp-tabs{display:flex;flex-wrap:wrap;gap:6px}
.gp-card{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:var(--surface)}
.gp-card.on{border-color:var(--accent)}
.gp-card.locked{opacity:.6}
.gp-who{display:flex;flex-direction:column;gap:2px;min-width:0}
.gp-board{margin:0;padding-left:1.6em;display:flex;flex-direction:column;gap:4px}
.gp-board li.me{font-weight:700;color:var(--accent)}
.gp-rec{display:block}
.gp-rec summary{display:flex;flex-direction:column;gap:2px;cursor:pointer}
.gp-memes{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.gp-meme{display:flex;flex-direction:column;gap:4px;align-items:center;border:2px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:6px;font:inherit;cursor:pointer}
.gp-meme.on{border-color:var(--accent)}
.gp-meme img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
/* 🧮 update 196: Math Quest */
.mq-ov{position:fixed;inset:0;z-index:2000;background:var(--bg);display:flex;flex-direction:column;color:var(--ink)}
.mq-top{display:flex;align-items:center;gap:8px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--surface)}
.mq-title{flex:1;text-align:center;font-family:var(--display);font-size:1.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mq-back,.mq-x{border:0;background:var(--sunk);color:var(--ink);border-radius:999px;padding:8px 12px;font:inherit;font-weight:700;cursor:pointer}
.mq-back[hidden]{visibility:hidden;display:inline-block}
.mq-main{flex:1;overflow:auto;padding:14px 16px 40px;display:flex;flex-direction:column;gap:14px;max-width:760px;width:100%;margin:0 auto;box-sizing:border-box}
.mq-h{margin:0;font-family:var(--display)}
.mq-players{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.mq-player{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 10px;border-radius:18px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;transition:transform .15s}
.mq-player:hover,.mq-player:focus-visible{transform:translateY(-2px);border-color:var(--accent)}
.mq-av{font-size:2.4rem}.mq-next{color:var(--accent);font-weight:600}
.mq-hero{position:relative;border-radius:20px;overflow:hidden;min-height:170px;box-shadow:0 8px 24px rgb(0 0 0 / .18)}
.mq-hero svg,.mq-world svg,.mq-mapscene svg,.mq-tileart svg,.mq-loginart svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.mq-herotxt{position:relative;padding:16px 16px 40px;background:linear-gradient(180deg,rgb(0 0 0 / .62),rgb(0 0 0 / .25) 70%,rgb(0 0 0 / 0));color:rgb(255 255 255);text-shadow:0 1px 3px rgb(0 0 0 / .6)}
.mq-herotxt h2{margin:0 0 4px;font-family:var(--display);font-size:1.6rem}.mq-herotxt p{margin:2px 0}
.mq-herotxt .mq-next{color:rgb(255 236 150)}
.mq-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.mq-big{border:0;border-radius:18px;padding:18px 12px;font:inherit;font-weight:800;font-size:1.05rem;color:rgb(255 255 255);cursor:pointer;box-shadow:0 6px 0 rgb(0 0 0 / .2);transition:transform .1s}
.mq-big:active{transform:translateY(3px);box-shadow:0 3px 0 rgb(0 0 0 / .2)}
.mq-big.quest{background:linear-gradient(135deg,rgb(46 125 50),rgb(129 199 132))}
.mq-big.arcade{background:linear-gradient(135deg,rgb(230 81 0),rgb(255 183 77))}
.mq-big.place{background:linear-gradient(135deg,rgb(21 101 192),rgb(100 181 246))}
.mq-switch{display:flex;gap:8px;align-items:center}
.mq-assigned{margin:0;padding:8px 12px;border-radius:12px;background:var(--accent-soft)}
.mq-worlds{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.mq-world{position:relative;height:110px;border-radius:16px;overflow:hidden;border:0;padding:0;cursor:pointer;font:inherit;box-shadow:0 4px 12px rgb(0 0 0 / .15)}
.mq-wt{position:absolute;left:0;right:0;bottom:0;padding:6px 10px;display:flex;flex-direction:column;text-align:left;background:linear-gradient(0deg,rgb(0 0 0 / .65),rgb(0 0 0 / 0));color:rgb(255 255 255)}
.mq-wtabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.mq-wtab{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;cursor:pointer}
.mq-wtab.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.mq-mapscene{position:relative;height:140px;border-radius:18px;overflow:hidden}
.mq-path{display:flex;flex-direction:column;gap:10px;position:relative;padding:6px 0}
.mq-path::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:6px;margin-left:-3px;background:repeating-linear-gradient(180deg,var(--line) 0 12px,transparent 12px 22px);border-radius:3px}
.mq-node{position:relative;align-self:flex-start;margin-left:calc(var(--x,50%) - 90px);margin-left:clamp(0px,calc(var(--x,50%) - 90px),calc(100% - 190px));width:180px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px;border-radius:18px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;box-shadow:0 4px 10px rgb(0 0 0 / .1)}
.mq-node.now{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.mq-node.assigned::after{content:"📌";position:absolute;top:-8px;right:-6px}
.mq-node.locked{opacity:.55}
.mq-node.boss{border-color:rgb(212 175 55);background:linear-gradient(135deg,var(--surface),rgb(255 236 179 / .35))}
.mq-node.won{border-color:rgb(212 175 55)}
.mq-dot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-weight:800}
.mq-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 30px rgb(0 0 0 / .12);overflow:hidden}
.mq-q{font-size:clamp(1.3rem,5vw,2rem);font-weight:800;line-height:1.25;font-family:var(--display)}
.mq-meta{color:var(--muted)}
.mq-prog{height:10px;border-radius:999px;background:var(--sunk);overflow:hidden}.mq-prog i{display:block;height:100%;background:var(--accent);transition:width .3s}
.mq-ans{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mq-input{flex:1;min-width:140px;font-size:1.5rem;padding:10px 14px;border-radius:14px;border:2px solid var(--line);background:var(--bg);color:var(--ink)}
.mq-choice{flex:1 1 40%;min-height:56px;font:inherit;font-size:1.3rem;font-weight:800;border-radius:16px;border:2px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer}
.mq-choice:hover{border-color:var(--accent)}
.mq-help:empty{display:none}
.mq-hint{margin:0;padding:10px;border-radius:12px;background:var(--accent-soft)}
.mq-steps{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:14px;background:var(--sunk)}
.mq-step{padding-left:12px;border-left:3px solid var(--accent)}
.mq-answer{font-weight:800}.mq-explain{white-space:pre-wrap;margin:6px 0 0}
.mq-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mq-fx{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%) scale(.4);font-size:2rem;font-weight:900;opacity:0;pointer-events:none;text-shadow:0 2px 0 rgb(0 0 0 / .25)}
.mq-fx.ok{color:var(--ok)}.mq-fx.no{color:var(--bad)}
.mq-fx.go{animation:mqpop .8s ease-out}
@keyframes mqpop{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}25%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-90%) scale(1)}}
.mq-conf{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.mq-conf i{position:absolute;top:-10px;left:var(--l);width:8px;height:12px;background:hsl(var(--h) 85% 60%);animation:mqfall 1.8s var(--d) ease-in forwards;border-radius:2px}
@keyframes mqfall{to{transform:translateY(110vh) rotate(var(--r));opacity:.2}}
.mq-done{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:24px;border-radius:22px;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.mq-bigstar{font-size:3.4rem;animation:mqpop2 .6s ease-out}
@keyframes mqpop2{0%{transform:scale(.2) rotate(-20deg)}70%{transform:scale(1.2)}100%{transform:scale(1)}}
.mq-arc{position:relative;border-radius:18px;overflow:hidden;touch-action:none;user-select:none;box-shadow:0 10px 30px rgb(0 0 0 / .2)}
.mq-cv{display:block;width:100%}
.mq-arcq{position:absolute;left:8px;right:8px;top:8px;display:flex;flex-direction:column;align-items:center;padding:8px 12px;border-radius:14px;background:rgb(0 0 0 / .55);color:rgb(255 255 255);text-align:center}
.mq-arcq b{font-size:1.25rem}
.mq-arch{position:absolute;left:10px;bottom:8px;color:rgb(255 255 255);font-weight:800;text-shadow:0 1px 3px rgb(0 0 0 / .7)}
.mq-arcflash{position:absolute;left:50%;top:38%;transform:translateX(-50%);font-size:1.8rem;font-weight:900;text-shadow:0 2px 0 rgb(0 0 0 / .5),0 0 12px rgb(0 0 0 / .4);animation:mqpop .9s ease-out forwards;white-space:nowrap}
.mq-arcdone{position:absolute;inset:20% 8% auto}
.mq-kid{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.mq-kid>div:first-child{display:flex;flex-direction:column}
.mq-addkid input,.mq-addkid select{padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}
.mq-link{margin:0;font-weight:700;overflow-wrap:anywhere}
.mq-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.mq-stat{display:flex;flex-direction:column;padding:12px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.mq-stat b{font-size:1.4rem}
.mq-days{display:flex;align-items:flex-end;gap:3px;height:70px}.mq-days i{flex:1;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px}
.mq-chips{display:flex;flex-wrap:wrap;gap:6px}
.mq-chip{padding:4px 10px;border-radius:999px;background:var(--sunk);font-size:.85rem;border:1px solid transparent}
button.mq-chip{cursor:pointer;color:var(--ink);font:inherit;font-size:.85rem}
.mq-chip.on{background:var(--accent);color:var(--accent-ink)}
.mq-card-tile{position:relative}
.mq-tileart{position:relative;height:110px;border-radius:14px;overflow:hidden}
body.mq-page{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--body)}
.mq-login{min-height:100vh;display:grid;place-items:center;padding:16px}
.mq-logincard{width:min(420px,100%);display:flex;flex-direction:column;gap:10px;text-align:center;padding:20px;border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:0 12px 40px rgb(0 0 0 / .15)}
.mq-loginart{position:relative;height:140px;border-radius:18px;overflow:hidden}
.mq-logincard form{display:flex;gap:8px}.mq-logincard input{flex:1;font-size:1.3rem;padding:10px;border-radius:12px;border:2px solid var(--line);text-transform:uppercase;letter-spacing:.1em;background:var(--bg);color:var(--ink)}
.mq-err{color:var(--bad);margin:0;min-height:1.2em}
/* 🌇 update 199: same rig as this morning, and the End of the Day form per group */
.sh-samerig{margin-bottom:10px;border-color:var(--ok,currentColor)}
.sh-eodgroups{gap:6px}
.sh-eodgroup{gap:8px;align-items:baseline;flex-wrap:wrap}
/* ⏱️ update 200: game time by the time clock or by set hours */
.gh-basis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gh-bopt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--line,currentColor);background:transparent;color:inherit;cursor:pointer}
.gh-bopt.on{border-color:var(--accent,currentColor);box-shadow:0 0 0 2px var(--accent,currentColor) inset}
@media (max-width:520px){.gh-basis{grid-template-columns:1fr}}
/* ✨ update 200: golf Flash gear and course cards */
.gp-flash{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.gp-fl{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:12px;border:1px solid var(--line,currentColor);background:transparent;color:inherit;cursor:pointer;text-align:center}
.gp-fl.on{box-shadow:0 0 0 2px var(--accent,currentColor) inset}
.gp-fl.locked{opacity:.55}
.gp-fl-ic{font-size:26px;line-height:1}
.gp-fl small{font-size:11px}
.gp-card.gp-tier{box-shadow:0 0 0 1px var(--accent,currentColor) inset}
/* 💥 update 201: the Haul Havoc garage */
.hh-prev{width:100%;max-width:420px;height:auto;aspect-ratio:320/190;border-radius:14px;display:block;margin:0 auto}
/* ⛳ update 202: golf course cards in the Pro Shop */
.gp-course{border-left-width:4px}
/* ♻️ update 204: Green Waste Management */
.gw-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.gw-stat{display:flex;flex-direction:column;gap:2px;padding:10px;border-radius:12px;border:1px solid var(--line,currentColor)}
.gw-stat b{font-size:1.25rem}
.gw-yard{display:flex;flex-direction:column;gap:4px}
.gw-bar{height:10px;border-radius:6px;background:var(--line,currentColor);overflow:hidden}
.gw-bar i{display:block;height:100%;background:var(--ok,var(--accent,currentColor))}
.gw-lead.on{box-shadow:0 0 0 2px var(--ok,var(--accent,currentColor)) inset}
.gw-links{flex-wrap:wrap;gap:6px}
.gw-src{font-size:.8rem;word-break:break-all}
.gw-load{justify-content:space-between;gap:8px;flex-wrap:wrap}
.gw-plus{color:var(--ok,currentColor)}
.gw-minus{color:var(--bad,currentColor)}
.gw-outlets{padding:8px 0;gap:6px}
/* ✉️ update 206: green waste emails */
.gw-mail{flex-wrap:wrap;gap:8px;align-items:center}
.gw-draft,.gw-reply{padding:8px;border-radius:10px;border:1px dashed var(--line,currentColor)}
.gw-draft textarea{width:100%}
.gw-pre{white-space:pre-wrap;font:inherit;font-size:.85rem;max-height:220px;overflow:auto}
.gw-sent{color:var(--muted,inherit)}
.gw-call{font-weight:600}

/* ⭐ update 207: Jobber feedback (Nicole's desk), 🪪 the customer card (locker), praise on the booking card */
.jf-box .jf-r { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
.jf-box .jf-r.ask { border-color: var(--warn, var(--accent)); background: var(--panel-2, transparent); }
.jf-top { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.jf-stars { color: var(--gold, var(--accent)); letter-spacing: 1px; }
.jf-c { margin: 0; font-style: italic; white-space: pre-wrap; }
.jf-err { color: var(--bad, var(--accent)); }
.jf-people { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.jf-person.maybe { font-weight: 600; }
.ws-cc { border: 1px solid var(--line); border-radius: 12px; padding: 10px; display: flex; flex-direction: column; gap: 6px; max-width: 360px; margin-top: 6px; }
.ws-cc-top { display: flex; gap: 10px; align-items: center; }
.ws-cc-top img, .ws-cc-nophoto { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; font-size: 28px; }
.ws-cc-top > div { display: flex; flex-direction: column; }
.ws-cc-q, .bk-praise { display: block; font-style: italic; opacity: .9; }
/* ⭐ update 208: customer ratings, managed */
.ra-box .ra-r { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
.ra-box .ra-r.off { opacity: .65; }
.ra-why { color: var(--bad, var(--accent)); }
.ra-set { border: 1px dashed var(--line); border-radius: 10px; padding: 10px; }
/* 🏬 update 208: inventory hubs › sections › spots, item photos, where it's kept */
.ih-row { display: flex; gap: 10px; align-items: center; }
.ih-row > div { display: flex; flex-direction: column; }
.ih-pic { width: 52px; height: 52px; border-radius: 10px; object-fit: cover; flex: none; }
.ih-pic.sm { width: 40px; height: 40px; }
.ih-icon { display: grid; place-items: center; font-size: 28px; border: 1px solid var(--line); }
.ih-hub { display: flex; flex-direction: column; gap: 8px; }
.ih-sec { border-left: 3px solid var(--line); padding: 6px 0 6px 10px; display: flex; flex-direction: column; gap: 6px; }
.ih-spots { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.ih-spot { border: 1px solid var(--line); border-radius: 10px; padding: 6px; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.ih-kinds { display: flex; flex-wrap: wrap; gap: 6px; }
.ih-kind { border: 1px solid var(--line); border-radius: 999px; padding: 6px 10px; background: transparent; color: inherit; cursor: pointer; }
.ih-kind.on { border-color: var(--accent); font-weight: 600; }
.ih-picker { display: flex; flex-wrap: wrap; gap: 6px; }
.ih-picker select { min-width: 150px; }
.ih-thumb { width: 28px; height: 28px; border-radius: 6px; object-fit: cover; vertical-align: middle; margin-right: 6px; }
.ih-item { display: flex; gap: 10px; align-items: flex-start; border-bottom: 1px solid var(--line); padding: 6px 0; }
.ih-item > div { display: flex; flex-direction: column; gap: 2px; }
.ih-wpics { display: flex; gap: 6px; margin-top: 4px; }
.ih-wcell { white-space: nowrap; }
.sh-usedon { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
.sh-usedlist { display: flex; flex-direction: column; gap: 2px; max-height: 220px; overflow: auto; margin-top: 6px; }
/* 🪚 📄 update 209: hours with the day and which saw or machine; from paper records; the hours log */
.oc-hform { border: 1px dashed var(--line); border-radius: 10px; padding: 8px 10px; margin-top: 6px; }
.oc-hline { display: grid; grid-template-columns: 9.5em 5.5em minmax(8em, 1fr) minmax(8em, 1fr) auto; gap: 6px; align-items: center; }
.oc-hline input[hidden] { display: none; }
@media (max-width: 600px) { .oc-hline { grid-template-columns: 1fr 1fr; } }
.oc-htab td, .oc-htab th { font-size: .85em; }
/* 🏠 update 209: the Crew app's bottom bar (Home · Training · Shop · Me & extras · More) and its hubs */
#crewbar .cb-sub { display: none !important; }
.hub-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.hub-tile { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: inherit; text-align: left; cursor: pointer; font: inherit; min-height: 84px; }
.hub-tile b { font-size: 1.05rem; }
.hub-tile small { color: var(--muted, inherit); opacity: .85; }
.hub-tile .count { position: absolute; top: 8px; right: 8px; }
.hub-tile[hidden] { display: none; }
.cpane-back { align-self: flex-start; }
.crewbar{grid-template-columns:repeat(5,minmax(0,1fr))}
.crewbar button span:not(.count){white-space:normal;line-height:1.05;text-align:center}
/* 📋 update 211: the Maintenance Schedule page */
.ms-group { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
.ms-group > summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ms-units { display: flex; flex-direction: column; gap: 2px; max-height: 320px; overflow: auto; border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; }
.ms-kind { margin-top: 6px; }
.ms-iv { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* ⭐ update 211: the Buds Tree Care rating */
.br-top { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.br-big { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.br-avg { font-size: 2.6rem; line-height: 1; }
.br-stars { display: inline-flex; gap: 2px; font-size: 1.4rem; }
.br-star { background: linear-gradient(90deg, var(--gold, var(--accent)) var(--f), var(--line) var(--f)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.br-bars { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 4px; }
.br-bar { display: grid; grid-template-columns: 2.4em 1fr 3em; gap: 8px; align-items: center; }
.br-track { height: 8px; border-radius: 999px; background: var(--line); overflow: hidden; }
.br-track i { display: block; height: 100%; background: var(--gold, var(--accent)); }
.br-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.br-q { margin: 0; font-style: italic; }
.br-q mark { background: var(--accent-soft, var(--line)); color: inherit; border-radius: 4px; padding: 0 2px; }
.br-rev { border-bottom: 1px solid var(--line); padding: 6px 0; }
.br-card { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; width: 100%; background: transparent; border: 0; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.br-card .br-avg { font-size: 2rem; }
/* 🔓 update 213: training is open only for the people the office opens it for */
.tr-unlock { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; padding: 8px 10px; border: 1px dashed var(--line); border-radius: 8px; }
.tr-unlock.ready { border-style: solid; border-color: color-mix(in srgb, var(--ok, green) 55%, var(--line)); }
.tr-unlock.on { background: color-mix(in srgb, var(--ok, green) 10%, transparent); border-style: solid; }
.tr-unlock small { flex-basis: 100%; }
.tr-who { padding-top: 6px; border-top: 1px dotted var(--line); }
.tr-people { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; }
/* ⭐ update 213: tap a star bar to see just those reviews */
button.br-bar { background: none; border: 0; color: inherit; font: inherit; padding: 2px 4px; border-radius: 6px; cursor: pointer; width: 100%; text-align: left; }
button.br-bar:hover, button.br-bar.on { background: color-mix(in srgb, var(--accent, currentColor) 12%, transparent); }
button.br-bar.on span:first-child { font-weight: 700; }
/* 🗑️🏷️ update 213: approved dump sites and the office's labels */
.gw-dump { justify-content: space-between; padding: 6px 0; border-top: 1px dotted var(--line); }
.gw-dump.on b { color: var(--ok, inherit); }
.gw-dlab, .sh-dlab { font-weight: 600; }
.gw-dform { padding: 6px 0; gap: 6px; }
/* 🕒 update 213: schedule a post with a date box and hour / minute / AM-PM lists */
.wp-box { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.wp-time { display: inline-flex; gap: 4px; align-items: center; }
.wp-box select, .wp-box input { width: auto; min-height: 40px; }
/* 🏆 update 213: our awards and honors on the customer card */
.bk-awards { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 4px; }
.bk-award, .ws-cc-aw { font-weight: 600; }
.ra-awards { padding-top: 6px; border-top: 1px dotted var(--line); }
.ra-aw input[aria-label="Award"] { flex: 1 1 12em; }
.bk-awlogo { height: 28px; width: auto; max-width: 90px; vertical-align: middle; object-fit: contain; border-radius: 4px; }
.ra-awlogo { display: inline-flex; gap: 4px; align-items: center; }
/* 🏢 update 217: the business card in 👀 What customers see */
.ws-biz .ws-cc-top img { border-radius: 10px; object-fit: contain; }
.ws-cc-awards { display: flex; flex-wrap: wrap; gap: 4px 10px; }
/* 🏆 update 217: awards as neat badge tiles (👀 What customers see, the same as the booking page) */
.ws-awrow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 4px; }
@media (max-width: 520px) { .ws-awrow { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ws-awtile { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 3px; padding: 6px 4px; }
.ws-awtile[hidden] { display: none; }
.ws-awimg { height: 52px; width: auto; max-width: 100%; object-fit: contain; }
.ws-awico { font-size: 36px; line-height: 52px; }
.ws-awtile b { font-size: .82rem; line-height: 1.2; }
.ws-awtile small { font-size: .72rem; color: var(--muted, inherit); line-height: 1.2; }
.ws-awmore { grid-column: 1 / -1; justify-self: center; border: 0; background: none; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; font-size: .85rem; }
.ws-biz { max-width: 460px; }
.ws-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ws-chip { font-size: .8rem; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--line); }
.ws-chip[hidden] { display: none; }
.ws-chips .ws-awmore { grid-column: auto; }
/* 🗂️ update 218: the HR hub */
.hh { gap: 12px; margin-bottom: 14px; }
.hh-head { justify-content: space-between; align-items: center; }
.hh-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.hh-card { gap: 4px; }
.hh-card.on { border-color: color-mix(in srgb, var(--accent, currentColor) 45%, var(--line)); }
.hh-row { display: flex; flex-direction: column; align-items: flex-start; text-align: left; width: 100%; background: none; border: 0; border-top: 1px dotted var(--line); padding: 5px 2px; color: inherit; font: inherit; cursor: pointer; }
.hh-row:hover { background: color-mix(in srgb, var(--accent, currentColor) 8%, transparent); }
.hh-row.late span { font-weight: 700; }
.hh-rep { display: flex; flex-direction: column; gap: 4px; padding: 8px 0; border-top: 1px dotted var(--line); }
.hh-rep p { margin: 0; }
.hh-act small { display: block; padding: 2px 0; }
.hh-add { max-width: 520px; }
/* 📄 update 219: HR forms */
.hf-head { justify-content: space-between; align-items: center; }
.hf-row { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 8px 0; border-top: 1px dotted var(--line); }
.hf-row.off { opacity: .6; }
.hf-wait { color: var(--warn, inherit); font-weight: 600; }
.hf-box { max-width: 760px; width: min(760px, calc(100vw - 32px)); max-height: 90vh; overflow: auto; display: flex; flex-direction: column; gap: 10px; }
.hf-hd { justify-content: space-between; align-items: center; }
.hf-text { width: 100%; font: inherit; line-height: 1.45; }
.hf-pick { flex-wrap: wrap; gap: 6px; }
.hf-pages { display: flex; flex-direction: column; gap: 8px; }
.hf-page { width: 100%; height: auto; border: 1px solid var(--line); border-radius: 6px; background: white; }
.hf-pad { width: 100%; max-width: 600px; aspect-ratio: 10 / 3; border: 2px dashed var(--line); border-radius: 8px; background: white; touch-action: none; }
.hf-agree { font-weight: 600; }
.hf-mine .hf-sign-btn { justify-content: flex-start; text-align: left; }
.hf-signed { display: block; padding: 3px 0; }
/* ➡️ update 220: onboarding steps open the person's own spot */
.nh-go { cursor: pointer; }
.nh-go:hover b { text-decoration: underline; }
.nh-flash { outline: 3px solid color-mix(in srgb, var(--accent, currentColor) 70%, transparent); outline-offset: 3px; border-radius: 8px; transition: outline-color .3s; }
/* 🚪 update 221: former & hidden employees, the history sheet, the banner on a record */
.hh-former summary { font-weight: 700; cursor: pointer; }
.hh-fm { border-top: 1px dotted var(--line); padding: 8px 2px; display: flex; flex-direction: column; gap: 4px; }
.hh-tag { font-size: 12px; padding: 1px 8px; border-radius: 999px; background: var(--sunk); color: var(--muted); }
.hh-tag.former { background: var(--bad-soft); color: var(--bad); }
.hh-re input[type="number"] { width: 9em; }
.hh-sheet { position: fixed; inset: 0; z-index: 900; background: color-mix(in srgb, var(--ink) 45%, transparent); display: flex; justify-content: center; align-items: flex-start; overflow: auto; padding: 24px 12px; }
.hh-hist { width: min(760px, 100%); background: var(--surface); }
.hh-hs h3 { margin: 10px 0 4px; font-size: 15px; }
.hh-hs > div, .hh-hs > a { padding: 2px 0; border-top: 1px dotted var(--line); }
.hr-gone { background: var(--bad-soft); color: var(--bad); border: 1px solid var(--bad); border-radius: var(--r); padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
/* 📘 update 221: the employee handbook */
.hb-card { gap: 6px; }
.hb-box .hb-page { border-top: 1px dotted var(--line); padding: 8px 0; }
.hb-page-t { white-space: pre-wrap; line-height: 1.5; }
.hb-page-t mark { background: var(--warn-soft); color: inherit; border-radius: 3px; }
.hb-ok { color: var(--ok); font-weight: 600; }
.hb-vers a { display: block; padding: 2px 0; }
/* ✅ update 222: onboarding steps left, in the HR hub */
.hh-onb { display: flex; flex-direction: column; }
.hh-step { display: block; text-align: left; width: 100%; background: none; border: 0; padding: 3px 2px 3px 14px; color: inherit; font: inherit; font-size: 13px; cursor: pointer; }
.hh-step:hover { background: color-mix(in srgb, var(--accent, currentColor) 8%, transparent); }
/* 🔒 update 223: private vehicles on the live map */
.lm-priv { font-size: 12px; padding: 1px 8px; border-radius: 999px; background: var(--sunk); color: var(--muted); }
.lm-privrow { flex-wrap: wrap; gap: 6px; }
/* 🌐 website desk (update 232) */
.ws-pages { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.ws-page { display: grid; gap: 2px; text-align: left; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line, hsl(0 0% 50% / .25)); background: transparent; color: inherit; }
.ws-page.on { border-color: var(--accent, hsl(140 48% 36%)); box-shadow: 0 0 0 2px hsl(140 48% 36% / .3); }
.ws-photo img { max-height: 180px; border-radius: 10px; object-fit: cover; display: block; margin-bottom: 8px; }
.ws-sec { display: grid; gap: 6px; padding: 10px; border-radius: 12px; border: 1px dashed hsl(0 0% 50% / .35); }
.ws-sec .row input:first-child { flex: 1 1 60%; } .ws-sec .row input:last-child { flex: 0 1 140px; }
.ws-set summary { cursor: pointer; font-weight: 600; }
.ws-quote span { font-size: .92rem; } .ws-post img { width: 64px; height: 48px; object-fit: cover; border-radius: 8px; } .ws-post input[type="text"], .ws-post input:not([type]) { flex: 1; }
/* 📊 lead sources (update 238) */
.ls-days button { border-radius: 999px; padding: 6px 14px; } .ls-days button.on { background: var(--accent, hsl(145 50% 34%)); color: hsl(0 0% 100%); }
.ls-total { font-size: 1.1rem; font-weight: 600; margin: 4px 0; }
.ls-wrap { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; }
.ls-pie { width: min(280px, 80vw); height: auto; } .ls-mid { font-size: .36px; font-weight: 700; fill: currentColor; }
.ls-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; flex: 1; min-width: 220px; }
.ls-legend li { display: flex; align-items: center; gap: 8px; } .ls-sw { width: 14px; height: 14px; border-radius: 4px; flex: none; }
.ls-up { color: hsl(145 55% 38%); } .ls-down { color: hsl(0 65% 50%); }
/* 🔎 google rankings (update 239) */
.ws-rank-scroll { overflow-x: auto; } .ws-rank-t { width: 100%; border-collapse: collapse; font-size: .9rem; } .ws-rank-t th, .ws-rank-t td { text-align: left; padding: 6px 8px; border-bottom: 1px solid hsl(0 0% 50% / .2); }
.ws-copy { display: block; padding: 8px; border-radius: 8px; background: hsl(0 0% 50% / .12); word-break: break-all; user-select: all; }
.ls-other { margin-top: 10px; } .ls-other summary { cursor: pointer; font-weight: 600; } .ls-orow { justify-content: space-between; padding: 4px 0; border-bottom: 1px solid hsl(0 0% 50% / .15); }
.ws-sites { gap: 6px; } .ws-sites button { border-radius: 999px; padding: 8px 16px; font-weight: 600; } .ws-sites button.on { background: var(--accent, hsl(145 50% 34%)); color: hsl(0 0% 100%); }
/* 🌳🐐 brand switch (update 245) */
.brand-bar { display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: hsl(0 0% 50% / .12); margin: 0 0 12px; }
.brand-bar button { border: 0; border-radius: 999px; padding: 7px 14px; font-weight: 600; background: transparent; color: inherit; cursor: pointer; }
.brand-bar button.on { background: var(--accent, hsl(145 50% 34%)); color: hsl(0 0% 100%); }
.grid > .brand-bar { grid-column: 1 / -1; justify-self: start; }

/* ↪️ old web addresses (update 248) */
.ws-old-row { flex-wrap: wrap; gap: 6px; } .ws-old-row input { flex: 1 1 180px; min-width: 0; } .ws-old-auto { font-size: .9rem; overflow-wrap: anywhere; }

/* 💳 paid with + backup payment (update 249) */
.bill-edit .bill-who { min-width: 160px; } .bill-edit .bill-mb { min-width: 240px; width: 100%; } .bill-edit label.bill-f:has(.bill-mb) { flex: 1 1 100%; }

/* 📡 IndexNow (update 250) */
.ws-inow small { overflow-wrap: anywhere; }
