:root{
  --ink:#14181C; --ink2:#2B333A; --steel:#5C6B78; --mute:#87949E;
  --rule:#D4DBE0; --rule2:#E8ECF0; --bg:#EBEEF1; --card:#FCFDFD;
  --hivis:#FFB300; --hivisD:#8A6000; --verify:#17705C; --flag:#C4442E;
  /* Cool slate chrome — not void-black; sits between paper and ink */
  --chrome:#1E272E;
  --chrome-fg:#F4F7F9;
  --chrome-muted:#8FA0AC;
  --chrome-edge:rgba(255,255,255,.10);
  --chrome-hover:rgba(255,255,255,.055);
  --chrome-active:rgba(255,179,0,.13);
  --rail-edge:#334049;
  /* Display face is brand/chrome only. Never put this on body copy — condensed
     plus tracking makes words run together and last glyphs look doubled. */
  --disp:"Barlow Condensed", "IBM Plex Sans", sans-serif;
  --sans:"IBM Plex Sans", "Helvetica Neue", sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, monospace;
  --rail:200px;
  --content-max:1120px;
}
[data-theme="dark"]{
  --ink:#F0F3F5; --ink2:#C9D2D8; --steel:#94A2AC; --mute:#6C7A85;
  --rule:#2C353D; --rule2:#232B32; --bg:#0E1216; --card:#171D23;
  --verify:#2FA383; --flag:#E56A52;
  --chrome:#151A1F;
  --chrome-fg:#F0F3F5;
  --chrome-muted:#8FA0AC;
  --chrome-edge:rgba(255,255,255,.08);
  --chrome-hover:rgba(255,255,255,.045);
  --chrome-active:rgba(255,179,0,.14);
  --rail-edge:#243038;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{
  font-family:var(--sans); background:var(--bg); color:var(--ink);
  font-size:15px; line-height:1.5; font-weight:400; letter-spacing:0;
  font-feature-settings:"kern" 1, "liga" 0;
  font-variant-ligatures:none;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  text-rendering:auto;
  padding-bottom:env(safe-area-inset-bottom);
  /* Cool paper wash — not flat gray slab */
  background-color:var(--bg);
  background-image:
    radial-gradient(1200px 520px at 12% -8%, rgba(255,255,255,.72), transparent 58%),
    radial-gradient(900px 480px at 92% 8%, rgba(92,107,120,.06), transparent 55%);
  background-attachment:fixed;
}
[data-theme="dark"] body{
  background-image:
    radial-gradient(1000px 480px at 10% -10%, rgba(255,179,0,.04), transparent 55%),
    radial-gradient(800px 420px at 95% 0%, rgba(47,163,131,.04), transparent 50%);
}

/* Full-bleed shell — no phone-width card on any viewport */
.app{min-height:100%;background:transparent;position:relative;}
.app.chassis{padding-bottom:calc(76px + env(safe-area-inset-bottom));}
.app.auth{max-width:480px;margin:0 auto;padding-bottom:24px;background:var(--card);}
.main{min-width:0;}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:20;background:var(--chrome);color:var(--chrome-fg);
  padding:calc(10px + env(safe-area-inset-top)) 16px 10px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--chrome-edge);
}
.brand{
  font-family:var(--disp); font-weight:700; font-size:18px;
  letter-spacing:.06em; text-transform:uppercase; line-height:1;
  color:var(--chrome-fg);
}
.hmeta{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
       color:var(--chrome-muted);text-transform:uppercase;text-align:right;line-height:1.4;}
.hmeta b{color:var(--hivis);font-weight:500;}
.proj-label{font-family:var(--mono);font-size:9px;letter-spacing:.12em;
            color:var(--chrome-muted);margin-top:3px;}

/* ---------- structure ---------- */
.screen{display:none;padding:14px 14px 8px;}
.screen.on{display:block;animation:fade .18s ease;}
@keyframes fade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.eyebrow{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
         text-transform:uppercase;color:var(--steel);margin-bottom:8px;
         display:flex;justify-content:space-between;align-items:baseline;}
.eyebrow span{color:var(--mute);letter-spacing:.08em;}
h2.big{
  font-family:var(--sans); font-size:28px; font-weight:700;
  letter-spacing:0; line-height:1.15; margin-bottom:4px;
  text-transform:none;
}
h2.item-title{
  font-family:var(--sans); font-size:22px; font-weight:650;
  letter-spacing:0; line-height:1.3; margin-bottom:6px;
  text-transform:none; max-width:40rem; overflow-wrap:anywhere;
}
.sub{font-family:var(--sans);font-size:13px;color:var(--steel);margin-bottom:14px;
     line-height:1.5;max-width:58ch;letter-spacing:0;}
.txt-signal{max-width:58ch;line-height:1.45;}
.txt-signal .rs{letter-spacing:0;text-transform:none;}
.mr-list .rl{letter-spacing:0;text-transform:none;font-weight:600;}
.mr-row{align-items:flex-start;flex-wrap:wrap;}
.mr-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;}
.item-more{margin-top:8px;}
.item-more > summary{
  cursor:pointer; font-size:13px; color:var(--steel);
  letter-spacing:0; text-transform:none; list-style:none;
}
.item-more > summary::-webkit-details-marker{display:none;}
.item-more > summary::after{content:" ▾"; color:var(--mute);}
.item-more[open] > summary{margin-bottom:6px; color:var(--ink);}

/* ---------- day strip ---------- */
.daybar{background:var(--card);border:1px solid var(--rule);border-radius:10px;
        padding:14px 15px;margin-bottom:14px;}
.daybar-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:11px;}
.dnum{font-family:var(--sans);font-size:36px;font-weight:700;
      letter-spacing:0;line-height:0.92;}
.dnum small{font-family:var(--sans);font-size:12px;font-weight:600;
            color:var(--steel);letter-spacing:0;}
.dprog{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--steel);text-align:right;}
.dprog b{display:block;font-family:var(--sans);font-size:22px;font-weight:700;
         color:var(--ink);letter-spacing:0;line-height:1;}
.bararea{height:6px;background:var(--rule2);border-radius:2px;overflow:hidden;display:flex;}
.bararea i{display:block;height:100%;}
.bararea i.f{background:var(--verify);}
.bararea i.p{background:var(--hivis);}

/* ---------- section chips ---------- */
.sections{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px;}
.sec{border:1px solid var(--rule);border-radius:8px;padding:8px 8px 7px;
     background:var(--card);cursor:pointer;transition:border-color .14s, background .14s;}
.sec:active{transform:scale(.98);}
/* Tiles are real links to the module row on Modules — keep the chip look */
a.sec{display:block;text-decoration:none;color:inherit;}
a.sec:hover{border-color:var(--steel);}
a.sec:focus-visible{outline:2px solid var(--hivis);outline-offset:2px;}
.sec .n{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;
        text-transform:uppercase;color:var(--steel);line-height:1.3;}
.sec .v{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:0;margin-top:3px;line-height:1.25;}
.sec.done{border-color:color-mix(in srgb,var(--verify) 45%,var(--rule));}
.sec.done .v{color:var(--verify);}
.sec.empty{background:transparent;border-style:dashed;}
.sec.empty .v{color:var(--mute);font-weight:500;}
.sec.ro{background:transparent;}
.sec.ro .v{color:var(--mute);font-weight:500;}
.sec .v.ready{color:var(--steel);font-weight:500;}
.sec.pend{border-color:color-mix(in srgb,var(--hivis) 55%,var(--rule));background:#FFFBF0;}
[data-theme="dark"] .sec.pend{background:#2A2211;}
.sec.pend .v{color:var(--hivisD);}
[data-theme="dark"] .sec.pend .v{color:var(--hivis);}

/* ---------- cards ---------- */
.card{background:var(--card);border:1px solid var(--rule);border-radius:10px;
      padding:12px 13px;margin-bottom:9px;border-left:3px solid var(--hivis);
      transition:opacity .2s, transform .2s, max-height .2s;overflow:hidden;}
.card.ok{border-left-color:var(--verify);}
.card.warn{border-left-color:var(--flag);}
.card.filed{border-left-color:var(--rule);opacity:.72;}
.card.gone{opacity:0;transform:translateX(60px);max-height:0;padding:0 13px;
           margin-bottom:0;border-width:0 0 0 3px;}
.crow{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.ct{font-family:var(--sans);font-size:14.5px;font-weight:600;letter-spacing:0;line-height:1.3;}
.cs{font-family:var(--sans);font-size:12.5px;color:var(--steel);margin-top:3px;line-height:1.45;letter-spacing:0;}
.cq{font-family:var(--mono);font-size:11px;color:var(--ink2);
    background:var(--rule2);border-radius:5px;padding:6px 8px;margin-top:8px;}

/* ---------- buttons ---------- */
.btn{border:none;border-radius:7px;font-family:var(--sans);font-weight:600;
     font-size:12.5px;padding:9px 14px;cursor:pointer;letter-spacing:0;
     background:var(--hivis);color:#14181C;white-space:nowrap;transition:transform .12s, filter .12s;}
.btn:active{transform:scale(.97);}
.btn.dark{background:var(--ink);color:#F0F3F5;}
[data-theme="dark"] .btn.dark{background:#F0F3F5;color:#0E1216;}
.btn.ghost{background:transparent;border:1px solid var(--rule);color:var(--steel);font-weight:500;}
.btn.wide{width:100%;padding:13px;font-size:14px;margin-top:4px;}
.btn.sm{padding:6px 10px;font-size:11px;}

/* ---------- pills (square, not pills) ---------- */
.pill{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.06em;
      text-transform:uppercase;padding:3px 6px;border-radius:3px;
      border:1px solid var(--rule);color:var(--steel);margin:5px 0 0 0;flex:none;}
.pill.on{background:var(--verify);border-color:var(--verify);color:#fff;}
.pill.lock{background:var(--chrome);border-color:var(--chrome);color:var(--hivis);}
.pill.amb{background:var(--hivis);border-color:#D89600;color:#14181C;}
.pill.red{background:#FCEDEA;border-color:var(--flag);color:var(--flag);}
[data-theme="dark"] .pill.red{background:#3A1F1A;}
.pill.tap{cursor:pointer;}
.pill.tap:active{transform:scale(.96);}

/* ---------- rows ---------- */
.row{display:flex;justify-content:space-between;align-items:center;gap:10px;
     padding:12px 0;border-bottom:1px solid var(--rule2);}
.row:last-child{border-bottom:none;}
/* Deep-linked module row (#mod-<adapter>) — clear the sticky header, then flash */
.row[id]{scroll-margin-top:88px;}
.row.jumped{border-radius:6px;animation:rowflash 2.2s ease-out;}
@keyframes rowflash{
  0%,40%{background:color-mix(in srgb,var(--hivis) 26%,transparent);
         box-shadow:0 0 0 7px color-mix(in srgb,var(--hivis) 26%,transparent);}
  100%{background:transparent;box-shadow:0 0 0 7px transparent;}
}
.rl{font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:0;}
.rs{font-family:var(--sans);font-size:12px;color:var(--steel);margin-top:2px;line-height:1.4;letter-spacing:0;}
.rk{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
    text-transform:uppercase;color:var(--steel);}
.panel{background:var(--card);border:1px solid var(--rule);border-radius:10px;
       padding:2px 14px;margin-bottom:12px;}
.roster-row{align-items:flex-start;min-height:52px;}
.roster-row .rl{font-size:15px;}
.roster-who{flex:1;min-width:0;}
.roster-act{font-family:var(--sans);font-size:12px;color:var(--ink2);
            margin-top:4px;letter-spacing:0;line-height:1.4;}
.roster-empty{font-family:var(--sans);padding:12px 0;color:var(--mute);font-size:13px;line-height:1.4;letter-spacing:0;}
.unenroll{margin-top:6px;}
.unenroll-btn{background:none;border:none;padding:0;margin:0;cursor:pointer;
              font-family:var(--sans);font-size:12px;font-weight:500;
              color:var(--steel);text-decoration:underline;letter-spacing:0;}
.unenroll-btn:active{transform:none;}
.unenroll[data-armed="1"] .unenroll-btn{color:var(--flag);font-weight:600;}
.phead{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
       text-transform:uppercase;color:var(--steel);padding:13px 0 3px;}

/* ---------- toggle ---------- */
.tog{width:44px;height:25px;border-radius:13px;background:var(--rule);
     position:relative;cursor:pointer;transition:.18s;flex:none;}
.tog i{position:absolute;top:2.5px;left:2.5px;width:20px;height:20px;border-radius:50%;
       background:#fff;transition:.18s;box-shadow:0 1px 2px rgba(0,0,0,.18);}
.tog.on{background:var(--verify);}
.tog.on i{left:21.5px;}

/* ---------- nav (mobile: bottom bar, full width) ---------- */
nav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--card);
    border-top:1px solid var(--rule);display:flex;width:100%;
    padding-bottom:env(safe-area-inset-bottom);}
nav button,nav a{flex:1;background:none;border:none;padding:8px 1px 9px;cursor:pointer;
           font-family:var(--sans);color:var(--mute);text-decoration:none;
           display:flex;flex-direction:column;align-items:center;justify-content:center;}
nav .ic{display:flex;align-items:center;justify-content:center;
        width:22px;height:18px;margin-bottom:3px;color:inherit;}
nav .ic svg{display:block;width:18px;height:18px;}
nav .lb{font-family:var(--mono);font-size:7.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;}
nav button.on,nav a.on{color:var(--ink);}
nav button.on .ic,nav a.on .ic{color:var(--hivisD);}
[data-theme="dark"] nav button.on .ic,[data-theme="dark"] nav a.on .ic{color:var(--hivis);}
.badge{display:inline-block;min-width:15px;background:var(--flag);color:#fff;
       font-size:9px;font-weight:700;border-radius:3px;padding:1px 4px;
       margin-left:3px;vertical-align:top;font-family:var(--mono);}

/* ---------- misc ---------- */
.enrol-qr{display:block;width:168px;height:168px;border-radius:8px;
  border:1px solid var(--rule);background:#fff;image-rendering:pixelated;}

/* ---------- reporting ---------- */
.rpt-head{display:flex;justify-content:space-between;align-items:flex-start;
  gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.rpt-windows{display:flex;gap:6px;flex:none;}
.rpt-pulse{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
  margin:12px 0 14px;}
.rpt-kpi{background:var(--card);border:1px solid var(--rule);border-radius:10px;
  padding:12px 12px 10px;border-left:3px solid var(--hivis);}
.rpt-kpi-v{font-family:var(--disp);font-size:28px;font-weight:700;letter-spacing:0;
  line-height:1;color:var(--ink);}
.rpt-kpi-l{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--steel);margin-top:6px;}
.rpt-kpi-s{font-size:11px;color:var(--mute);margin-top:2px;}
.rpt-charts{display:grid;grid-template-columns:1fr;gap:10px;}
.rpt-chart .phead{margin-bottom:0;}
.rpt-canvas-wrap{position:relative;height:200px;padding:8px 12px 14px;}
.rpt-funnel{padding:14px 14px 16px;}
.rpt-funnel-row{display:flex;align-items:center;gap:8px;margin:8px 0;}
.rpt-funnel-l{width:88px;flex:none;font-size:12px;color:var(--steel);}
.rpt-funnel-bar{flex:1;height:10px;background:var(--rule2);border-radius:3px;overflow:hidden;}
.rpt-funnel-bar i{display:block;height:100%;background:var(--hivis);border-radius:3px;min-width:0;}
.rpt-funnel-n{width:28px;text-align:right;font-family:var(--mono);font-size:12px;}
.rpt-funnel-meta{font-size:11px;color:var(--mute);margin-top:10px;}
.rpt-export{margin-bottom:20px;}
@media (min-width:700px){
  .rpt-pulse{grid-template-columns:repeat(3,minmax(0,1fr));}
  .rpt-charts{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:1100px){
  .rpt-pulse{grid-template-columns:repeat(5,minmax(0,1fr));}
}

.note{font-size:12px;color:var(--steel);line-height:1.55;
      padding:11px 12px;background:var(--rule2);border-radius:8px;margin-top:10px;}
.note b{color:var(--ink);}
.empty{text-align:center;padding:34px 20px;color:var(--mute);font-size:13px;}
.empty .big{font-family:var(--sans);font-size:40px;margin-bottom:8px;letter-spacing:0;}
.fld{padding:11px 0;border-bottom:1px solid var(--rule2);}
.fld:last-child{border-bottom:none;}
.fn{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
    text-transform:uppercase;color:var(--steel);}
.fv{font-family:var(--sans);font-size:14.5px;font-weight:600;margin-top:3px;letter-spacing:0;}
.fv.un{color:var(--flag);font-weight:500;}
.fv.ex{color:var(--steel);font-weight:400;font-style:italic;}
.tl{position:relative;padding-left:19px;}
.tl:before{content:"";position:absolute;left:4px;top:6px;bottom:6px;
           width:1.5px;background:var(--rule);}
.tli{position:relative;padding:7px 0;}
.tli:before{content:"";position:absolute;left:-19px;top:12px;width:9px;height:9px;
            border-radius:50%;background:var(--verify);border:2px solid var(--bg);}
.tlt{font-family:var(--mono);font-size:10px;color:var(--mute);letter-spacing:.06em;}
.tlb{font-size:13px;margin-top:1px;}

/* ---------- tablet: denser module grid ---------- */
@media (min-width:600px){
  .screen{padding:16px 20px 12px;}
  .sections{grid-template-columns:repeat(4,1fr);gap:9px;}
}

/* ---------- desktop: side rail + full viewport ---------- */
@media (min-width:860px){
  body{
    font-size:15px;
    -webkit-font-smoothing:subpixel-antialiased;
    -moz-osx-font-smoothing:auto;
    padding-bottom:0;
  }
  .app.chassis{
    display:grid;
    grid-template-columns:var(--rail) minmax(0,1fr);
    grid-template-rows:auto 1fr;
    min-height:100vh;
    min-height:100dvh;
    padding-bottom:0;
  }
  .app.chassis > header{
    grid-column:2;
    grid-row:1;
    padding:12px 28px;
    /* Soft frosted slate over paper — matches rail without a black slab */
    background:color-mix(in srgb, var(--chrome) 92%, transparent);
    backdrop-filter:saturate(1.05) blur(12px);
    -webkit-backdrop-filter:saturate(1.05) blur(12px);
    border-bottom:1px solid var(--chrome-edge);
  }
  .app.chassis > .main{
    grid-column:2;
    grid-row:2;
    min-height:0;
  }
  .app.chassis > nav{
    grid-column:1;
    grid-row:1 / -1;
    position:sticky;
    top:0;
    left:auto;right:auto;bottom:auto;
    width:var(--rail);
    max-width:none;
    height:100vh;
    height:100dvh;
    margin:0;
    flex-direction:column;
    justify-content:flex-start;
    align-items:stretch;
    gap:2px;
    border-top:none;
    border-right:1px solid var(--rail-edge);
    background:var(--chrome);
    padding:18px 10px 16px;
    padding-bottom:16px;
  }
  .app.chassis > nav button,
  .app.chassis > nav a{
    flex:none;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    padding:10px 12px;
    border-radius:6px;
    color:var(--chrome-muted);
    text-align:left;
  }
  .app.chassis > nav button:hover,
  .app.chassis > nav a:hover{background:var(--chrome-hover);color:#C9D2D8;}
  .app.chassis > nav .ic{margin-bottom:0;width:20px;height:20px;flex:none;}
  .app.chassis > nav .ic svg{width:17px;height:17px;}
  .app.chassis > nav .lb{font-size:10.5px;letter-spacing:.08em;}
  .app.chassis > nav button.on,
  .app.chassis > nav a.on{
    background:var(--chrome-active);
    color:var(--chrome-fg);
  }
  .app.chassis > nav button.on .ic,
  .app.chassis > nav a.on .ic{color:var(--hivis);}
  [data-theme="dark"] .app.chassis > nav button.on .ic,
  [data-theme="dark"] .app.chassis > nav a.on .ic{color:var(--hivis);}

  .screen{padding:22px 28px 40px;max-width:var(--content-max);}
  .screen.on{animation:none;}
  h2.big{font-size:32px;}
  .sub{font-size:13.5px;max-width:62ch;}
  .sections{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;}
  .sec{padding:10px 11px 9px;border-radius:7px;}
  .sec .n{font-size:9px;}
  .sec .v{font-size:13.5px;}
  .daybar{padding:16px 18px;border-radius:9px;}
  .dnum{font-size:40px;}
  .card,.panel{border-radius:9px;}
  .ct{font-size:15px;}
  .cs{font-size:13px;}
  .rl{font-size:14.5px;}
  .btn{font-size:13px;}
  .btn.sm{font-size:12px;padding:7px 12px;}

  .app.auth{
    max-width:420px;
    margin:48px auto;
    border:1px solid var(--rule);
    border-radius:10px;
    overflow:hidden;
    min-height:auto;
    background:var(--card);
  }
  .app.auth header{border-radius:0;}
  .app.auth .screen{padding:24px 22px 28px;}
}

@media (min-width:1200px){
  :root{--rail:220px;--content-max:1240px;}
  .screen{padding:24px 36px 48px;}
  .sections{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
}

/* ---------- Lookahead Board calendar ---------- */
.coord-tabs{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--rule2);}
.coord-tab{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
           text-decoration:none;color:var(--steel);padding:6px 9px;border-radius:5px;border:1px solid transparent;}
.coord-tab.on{color:var(--ink);background:var(--card);border-color:var(--rule);font-weight:600;}
.coord-tab:hover{color:var(--ink);}
.board-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.board-views,.board-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.board-dot{width:9px;height:9px;border-radius:2px;flex:none;margin-top:4px;}
.board-form-grid{display:grid;grid-template-columns:1fr;gap:0 14px;}
@media (min-width:700px){.board-form-grid{grid-template-columns:1fr 1fr;}}
.board-day-row{align-items:center;gap:10px;}
.board-check{display:inline-flex;align-items:center;justify-content:center;flex:none;
  margin:0;cursor:pointer;padding:2px;}
.board-check input{width:16px;height:16px;margin:0;accent-color:var(--hivisD);cursor:pointer;}
.board-select-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin:0 0 12px;padding:10px 12px;background:var(--card);border:1px solid var(--rule);
  border-radius:8px;position:sticky;top:calc(52px + env(safe-area-inset-top));z-index:15;
  box-shadow:0 1px 0 color-mix(in srgb,var(--rule) 80%,transparent);}
.board-select-bar[hidden]{display:none !important;}
.board-select-bar.is-active{border-color:var(--hivisD);
  background:color-mix(in srgb,var(--hivis) 12%,var(--card));
  box-shadow:0 4px 14px rgba(20,24,28,.08);}
[data-theme="dark"] .board-select-bar.is-active{border-color:var(--hivis);
  background:color-mix(in srgb,var(--hivis) 14%,var(--card));}
.board-select-bar .btn.board-delete-ready,
.board-select-bar [data-board-delete]:not(:disabled){
  background:var(--flag);border-color:var(--flag);color:#fff;font-weight:600;}
.board-select-bar .btn.board-delete-ready:hover,
.board-select-bar [data-board-delete]:not(:disabled):hover{filter:brightness(1.05);}
@media (max-width:700px){
  .board-select-bar.is-active{
    position:fixed;left:10px;right:10px;top:auto;
    bottom:calc(72px + env(safe-area-inset-bottom));
    margin:0;z-index:40;border-radius:10px;
    box-shadow:0 10px 28px rgba(20,24,28,.22);}
  [data-theme="dark"] .board-select-bar.is-active{
    box-shadow:0 10px 28px rgba(0,0,0,.45);}
}
.board-select-all-label{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);
  font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--steel);cursor:pointer;}
.board-select-all-label.sm{font-size:10px;}
.board-select-count{font-family:var(--mono);font-size:11px;color:var(--mute);margin-right:auto;}
.board-select-bar.is-active .board-select-count{color:var(--ink);font-weight:600;}
.cal-chip-check{padding:1px 0 0;flex:none;}
.cal-chip-check input{width:13px;height:13px;}
.cal-chip-body{min-width:0;flex:1;}
.cal-chip.selected{outline:1px solid var(--hivis);background:color-mix(in srgb,var(--hivis) 10%,var(--card));}
.board-day-row.selected,.board-weeks tr.selected td{background:color-mix(in srgb,var(--hivis) 8%,transparent);}
.board-weeks-check{width:28px;text-align:center;}
.board-tools{margin:18px 0 8px;border:1px solid var(--rule);border-radius:8px;background:var(--card);}
.board-tools > summary{cursor:pointer;list-style:none;padding:12px 14px;font-family:var(--mono);
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);user-select:none;}
.board-tools > summary::-webkit-details-marker{display:none;}
.board-tools > summary span{color:var(--mute);margin-left:6px;font-weight:400;}
.board-tools[open] > summary{border-bottom:1px solid var(--rule2);color:var(--ink);}
.board-tools-body{padding:12px 14px 14px;}
.board-tools-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.board-status-quick{flex:none;margin-left:auto;}
.board-status-select{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;
  padding:6px 8px;background:var(--rule2);border:1px solid var(--rule);color:var(--ink);border-radius:6px;max-width:140px;}
.board-status-select.lg{width:100%;max-width:none;font-size:14px;padding:12px 14px;font-weight:600;margin:6px 0 4px;}
.board-status-select.on{border-color:var(--verify);color:var(--verify);}
.board-status-select.amb{border-color:#D89600;}
.board-status-select.red{border-color:var(--flag);color:var(--flag);}
.board-status-hero{margin-bottom:14px;padding:12px 14px;background:var(--rule2);border:1px solid var(--rule);border-radius:8px;}
.cal-legend{display:flex;flex-wrap:wrap;gap:12px 14px;margin-bottom:12px;padding:2px 0;}
.cal-leg{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);
         display:inline-flex;align-items:center;gap:6px;}
.cal-leg i{width:9px;height:9px;border-radius:2px;display:inline-block;
           box-shadow:inset 0 0 0 1px rgba(20,24,28,.08);}
.cal-weeks{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
.cal-week{display:flex;flex-direction:column;gap:5px;}
.cal-week-bar{display:flex;align-items:center;min-height:22px;}
.cal-week-select{gap:8px;}
.cal-week-range{font-weight:400;text-transform:none;letter-spacing:.02em;color:var(--mute);margin-left:2px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:0;}
@media (max-width:700px){.cal-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
.cal-day{display:flex;flex-direction:column;height:118px;max-height:118px;overflow:hidden;
         background:var(--card);border:1px solid var(--rule);border-radius:8px;
         padding:7px 8px;text-decoration:none;color:inherit;transition:border-color .12s,background .12s;
         width:100%;text-align:left;font:inherit;cursor:pointer;box-sizing:border-box;}
.cal-day:hover{border-color:var(--steel);}
.cal-day:focus-visible{outline:2px solid var(--hivis);outline-offset:2px;}
.cal-day.today{border-color:var(--hivis);background:color-mix(in srgb,var(--hivis) 6%,var(--card));}
.cal-day.weekend{background:color-mix(in srgb,var(--rule2) 70%,var(--card));}
.cal-day.selected{border-color:var(--hivisD);background:color-mix(in srgb,var(--hivis) 14%,var(--card));
                  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--hivis) 55%,transparent);}
.cal-day.today.selected{border-color:var(--hivisD);}
[data-theme="dark"] .cal-day.selected{border-color:var(--hivis);background:color-mix(in srgb,var(--hivis) 16%,var(--card));}
.cal-day-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;flex:none;gap:4px;}
.cal-hd-left{display:inline-flex;align-items:center;gap:5px;min-width:0;}
.cal-day-check{padding:0;flex:none;}
.cal-day-check input{width:13px;height:13px;}
.cal-hd-right{display:inline-flex;align-items:center;gap:6px;}
.cal-dow{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);}
.cal-num{font-family:var(--disp);font-size:18px;font-weight:700;letter-spacing:0;line-height:1;}
.cal-count{font-family:var(--mono);font-size:9px;letter-spacing:.04em;font-weight:500;
           color:var(--steel);background:transparent;border:1px solid var(--rule);
           border-radius:3px;padding:1px 5px;line-height:1.4;}
.cal-day.today .cal-count{border-color:var(--hivis);color:var(--hivisD);}
[data-theme="dark"] .cal-day.today .cal-count{color:var(--hivis);}
.cal-items{display:flex;flex-direction:column;gap:2px;min-height:0;flex:1;overflow:hidden;}
.cal-chip{display:flex;align-items:flex-start;gap:4px;border-left:3px solid var(--chip,#5C6B78);
          background:color-mix(in srgb,var(--chip,#5C6B78) 9%,var(--card));
          border-radius:0 3px 3px 0;padding:2px 5px 3px;cursor:pointer;flex:none;}
.cal-chip-t{display:block;font-size:11px;font-weight:600;line-height:1.25;
            white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-chip-m{display:block;font-size:9px;color:var(--steel);margin-top:1px;
            white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-more,.cal-empty-day{font-family:var(--mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;
                         color:var(--mute);padding:2px 0;flex:none;}
.cal-more{color:var(--steel);font-weight:500;}
.cal-day:hover .cal-more{color:var(--ink);}

/* Day pop-over from calendar tile */
.cal-modal{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;
           padding:0;animation:fade .16s ease;}
.cal-modal[hidden]{display:none !important;}
.cal-modal-backdrop{position:absolute;inset:0;background:rgba(20,24,28,.42);border:0;cursor:pointer;}
[data-theme="dark"] .cal-modal-backdrop{background:rgba(0,0,0,.58);}
.cal-modal-sheet{position:relative;z-index:1;width:min(560px,100%);max-height:min(88vh,740px);
                 background:var(--card);border:1px solid var(--rule);border-bottom:0;
                 border-radius:12px 12px 0 0;display:flex;flex-direction:column;
                 box-shadow:0 -8px 28px rgba(20,24,28,.14);overflow:hidden;}
@media (min-width:700px){
  .cal-modal{align-items:center;padding:24px;}
  .cal-modal-sheet{border-radius:10px;border-bottom:1px solid var(--rule);
                   box-shadow:0 12px 32px rgba(20,24,28,.16);max-height:min(80vh,720px);}
}
.cal-modal-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
              padding:14px 14px 12px;border-bottom:1px solid var(--rule2);flex:none;}
.cal-modal-title{font-family:var(--sans);font-size:22px;font-weight:700;
                 letter-spacing:0;line-height:1.15;text-transform:none;}
.cal-modal-sub{font-size:12.5px;color:var(--steel);margin-top:3px;}
.cal-modal-actions{display:flex;gap:6px;align-items:center;flex:none;}
.cal-modal-body{overflow:auto;padding:4px 0 12px;-webkit-overflow-scrolling:touch;}
.cal-modal-row{padding-left:14px;padding-right:14px;}
.cal-modal-item:hover .rl{text-decoration:underline;}
body.cal-modal-open{overflow:hidden;}

.board-weeks{width:100%;border-collapse:collapse;font-size:12px;}
.board-weeks th{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;
                color:var(--steel);font-weight:500;padding:6px 4px;text-align:center;min-width:28px;}
.board-weeks th.today{color:var(--hivisD);}
.board-weeks td{padding:8px 6px;border-bottom:1px solid var(--rule2);vertical-align:middle;}
.board-weeks td.wk-cell{min-width:22px;padding:0;}
.board-weeks tr:hover td{background:var(--rule2);}
