/* AZCK COMMAND — every stylesheet this page had, in the order it had them.
   Lane-split 4 slab 4, 2026-08-23. Fifteen inline <style> blocks, 83,187 bytes,
   concatenated VERBATIM in document order and nothing reordered inside them.

   WHY CONCATENATING IS SAFE HERE and would not be on every page: the only other
   stylesheet is the Google Fonts link, and it sits ABOVE the first block, so no
   link ever fell between two of these. With every block moved together and the
   <link> placed where the FIRST one sat, the cascade is bit for bit what it was.
   If anyone adds a <link rel=stylesheet> into the body later, that stops being
   true - put new CSS at the end of THIS file instead.

   Checked before cutting: no url() anywhere in the 15 blocks, so nothing
   re-resolved against /assets/. Two @media print rules came across untouched.

   A <link> in the head is render-blocking, so there is no flash of unstyled page.
   Bump the ?v= on every edit; the command Pages builder caches hard. */

/* ---- block 1 of 15, was at index.html line 10 ---- */

/* ── AZCK COMMAND — the business face. Phase 2 shell (plan d0e8cab3, Three homes). ──
   Skeleton per Alessio 2026-08-05: his header bones, full-width use, dark + light,
   AZCK signature red #990000. Truth lives in Supabase; this page is a window.       */
:root{
  --red:#990000; --red-hot:#c40e0e;
  --bg:#0e0f11; --panel:#17181b; --panel-2:#1e2024; --line:#2a2d33;
  --ink:#e8e6e1; --ink-dim:#9a978f; --ink-faint:#5c5a54;
  --ok:#3d7a4a; --warn:#b58900;
}
html[data-theme="light"]{
  --bg:#f4f2ee; --panel:#ffffff; --panel-2:#eceae5; --line:#d8d5cf;
  --ink:#1c1b19; --ink-dim:#5f5d57; --ink-faint:#a09d96;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
/* Scrollbars in the board's own colours. This face had none, so every scroll
   area wore the browser's pale system bar on a near-black page. Token-driven,
   so the light theme picks up its own line colour with no second rule; the
   scrollbar-color line is what carries it to Firefox. */
html{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}
::-webkit-scrollbar-thumb:hover{background:var(--border-hi,#3a3e46)}
body{background:var(--bg);color:var(--ink);font:400 15px/1.5 Lexend,sans-serif;
     display:flex;flex-direction:column;min-height:100vh}
/* ── header — the standard chrome ── */
header{display:flex;align-items:center;gap:14px;padding:10px 18px;
       background:var(--panel);border-bottom:2px solid var(--red)}
header img{width:34px;height:34px}
header h1{font:600 19px/1 Oswald,sans-serif;letter-spacing:2.5px;text-transform:uppercase}
header h1 span{color:var(--red-hot)}
.spacer{flex:1}
.pill{font:500 12px/1 Lexend;color:var(--ink-dim);border:1px solid var(--line);
      border-radius:999px;padding:7px 13px;background:var(--panel-2);cursor:pointer}
.pill:hover{color:var(--ink)}
/* ── nav — his cc-nav pattern ── */
nav{display:flex;flex-wrap:wrap;gap:2px;padding:6px 12px;background:var(--panel);
    border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
nav button{font:500 12.5px/1 Oswald,sans-serif;letter-spacing:1.6px;text-transform:uppercase;
    color:var(--ink-dim);background:none;border:none;border-bottom:2px solid transparent;
    padding:9px 13px;cursor:pointer}
nav button:hover{color:var(--ink)}
nav button.active{color:var(--ink);border-bottom-color:var(--red-hot)}
/* ── subnav — second row, per-lane subtabs (phase 3: services first) ── */
#subnav{display:flex;gap:6px;padding:8px 18px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}
#subnav:empty{display:none}
#subnav button{font:600 10.5px/1 Oswald,sans-serif;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-dim);background:var(--panel-2);border:1px solid var(--line);border-radius:3px;padding:6px 12px;cursor:pointer}
#subnav button:hover{color:var(--ink)}
#subnav button.active{background:var(--red);border-color:var(--red);color:#fff}
.pill.on{border-color:var(--red-hot);color:var(--red-hot)}
/* ── lanes — full width, no wasted gutters ── */
main{flex:1;width:100%;padding:22px 18px}
.lane{display:none;max-width:none}
.lane.active{display:block}
.lane h2{font:600 15px/1 Oswald,sans-serif;letter-spacing:2px;text-transform:uppercase;
         color:var(--red-hot);margin-bottom:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;
      padding:22px;max-width:720px}
.card b{font-weight:600}
.card .dim{color:var(--ink-dim);font-size:13.5px;margin-top:8px}
.stamp{margin-top:14px;font-size:12px;color:var(--ink-faint)}
/* ── login gate ── */
#gate{flex:1;display:flex;align-items:center;justify-content:center;padding:20px}
#gate form{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--red);
      border-radius:12px;padding:34px 30px;width:100%;max-width:380px}
#gate h2{font:600 17px/1 Oswald,sans-serif;letter-spacing:2.5px;margin-bottom:6px}
#gate p{color:var(--ink-dim);font-size:13px;margin-bottom:20px}
#gate input{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;
      color:var(--ink);font:400 15px Lexend;padding:12px 14px;margin-bottom:12px}
#gate input:focus{outline:none;border-color:var(--red-hot)}
#gate button{width:100%;background:var(--red);border:none;border-radius:8px;color:#fff;
      font:600 14px/1 Oswald,sans-serif;letter-spacing:2px;text-transform:uppercase;
      padding:13px;cursor:pointer}
#gate button:hover{background:var(--red-hot)}
#gate .err{color:var(--red-hot);font-size:13px;min-height:18px;margin-top:10px}
footer{padding:10px 18px;font-size:11.5px;color:var(--ink-faint);border-top:1px solid var(--line)}
#app{display:none;flex-direction:column;flex:1}
@media (max-width:640px){ header h1{font-size:16px;letter-spacing:1.8px} main{padding:16px 12px} }
/* ── NARROW-WIDTH COLLAPSE (task 0e67a7f5, opened 2026-05-31, shipped 2026-08-18) ──
   Eight lane buttons and a subnav row both carried flex-wrap:wrap, so on a phone the
   chrome stacked into four rows and ate the screen before any content showed. Same
   pattern the alessio face has run since June: each chrome level becomes ONE
   swipeable row. No drawer, no hamburger, no JS state that can wedge open. */
@media (max-width:480px){
  header{padding:8px 10px;gap:9px}
  header img{width:28px;height:28px}
  header h1{font-size:14px;letter-spacing:1.2px;white-space:nowrap}
  .pill{padding:7px 10px;font-size:11px;flex-shrink:0}
  nav{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;
      -webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 8px}
  nav::-webkit-scrollbar{display:none}
  nav button{white-space:nowrap;flex-shrink:0;padding:9px 10px;font-size:11.5px;letter-spacing:1.2px}
  #subnav{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;
          -webkit-overflow-scrolling:touch;scrollbar-width:none;padding:6px 8px}
  #subnav::-webkit-scrollbar{display:none}
  #subnav button{white-space:nowrap;flex-shrink:0}
  main{padding:14px 10px}
  .card{padding:16px;border-radius:8px}
  footer{padding:10px 10px}
}

/* ---- block 2 of 15, was at index.html line 140 ---- */

      /* ═══ COMMAND SHIM (2026-08-05, Three-homes phase 3) — the Services chunk below
         is a faithful port from azck-faces and speaks the faces token language. This
         block maps those tokens onto the command shell's palette, scoped to this lane
         only, so the ported CSS runs byte-identical instead of hand-rewritten.
         Amber stays amber INSIDE the lane on purpose: it is load-bearing — the
         calendar reads amber=booking / red=blocked / grey=gcal, and that colour
         code is months of muscle memory. The shell chrome around it stays red. ═══ */
      .faces-tokens{
        --surface:var(--panel); --raised:var(--panel-2); --overlay:var(--panel-2);
        --border:var(--line); --border-hi:#3a3e46;
        --text:var(--ink); --text-dim:var(--ink-dim); --text-xs:var(--ink-faint);
        --amber:#c8922a; --amber-dim:#9c7021;
        --amber-soft:rgba(200,146,42,0.08); --amber-glow:rgba(200,146,42,0.15);
        --green:#2ea043; --green-bg:rgba(46,160,67,0.12);
        --yellow:#d29922; --yellow-bg:rgba(210,153,34,0.12);
        --red:#e5534b; --red-bg:rgba(229,83,75,0.12);
        --blue:#4493d4; --blue-bg:rgba(68,147,212,0.12);
        --sp-2:2px; --sp-4:4px; --sp-6:6px; --sp-8:8px; --sp-10:10px;
        --sp-12:12px; --sp-16:16px; --sp-20:20px; --sp-24:24px; --sp-32:32px;
        --mono:'JetBrains Mono',Consolas,monospace; --sans:'Lexend',sans-serif;
        --display:'Lexend',sans-serif; --display-tabs:'Oswald';
      }
      html[data-theme="light"] .faces-tokens{
        --border-hi:#bbc3cc;
        --amber:#a06c10; --amber-dim:#7a5010;
        --amber-soft:rgba(160,108,16,0.06); --amber-glow:rgba(160,108,16,0.12);
      }
      /* faces globals the chunk leans on, scoped to the lane */
      .faces-tokens .cc-lane__head { display:none; } /* faces policy: lane titles are redundant with the nav */
      .faces-tokens .cc-subpane { display:none; }
      .faces-tokens .cc-subpane.active { display:flex; flex-direction:column; flex:1; min-height:0; overflow:hidden; }
      .faces-tokens .cc-subpane.active > * { flex:1; min-height:0; }
      .faces-tokens .cc-subtab { font-family:var(--display); font-size:10px; padding:5px 12px; border:1px solid var(--border); border-radius:3px; background:var(--raised); color:var(--text-dim); cursor:pointer; letter-spacing:0.12em; text-transform:uppercase; font-weight:600; }
      .faces-tokens .cc-subtab.active { background:var(--amber); color:#000; border-color:var(--amber); }
      .faces-tokens .cc-subtab:hover:not(.active) { color:var(--amber); border-color:var(--amber); }
      .faces-tokens .cc-stub { background:var(--surface); border:1px dashed var(--border); border-radius:4px; padding:var(--sp-16); color:var(--text-xs); font-size:12px; text-align:center; }
      .faces-tokens .cc-subnav__hint { font-family:var(--mono); font-size:10px; color:var(--text-xs); padding:8px 0; }
      .faces-tokens .cc-card { background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:var(--sp-12); transition:border-color 0.12s; position:relative; overflow:hidden; }
      .faces-tokens .cc-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:2px; background:transparent; }
      .faces-tokens .cc-card.red::before { background:var(--red); }
      .faces-tokens .cc-card__label { font-family:var(--display); font-size:9px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--text-xs); margin-bottom:var(--sp-6); }
      .faces-tokens .cc-card__title { font-family:var(--sans); font-size:13px; font-weight:600; color:var(--text); line-height:1.35; margin-bottom:var(--sp-4); word-wrap:break-word; }
      .faces-tokens .cc-card__sub { font-size:12px; color:var(--text-dim); line-height:1.4; }
      .faces-tokens .cc-card__meta { display:flex; align-items:center; gap:var(--sp-8); margin-top:var(--sp-8); padding-top:var(--sp-8); border-top:1px solid var(--border); flex-wrap:wrap; }
      .faces-tokens .cc-card__tag { display:inline-flex; align-items:center; padding:1px 6px; border-radius:3px; font-family:var(--mono); font-size:10px; font-weight:500; letter-spacing:0.04em; }
      .faces-tokens .cc-card__tag.amber { background:var(--amber-soft); color:var(--amber); }
      .faces-tokens .cc-card__tag.green { background:var(--green-bg); color:var(--green); }
      .faces-tokens .cc-card__tag.red { background:var(--red-bg); color:var(--red); }
      .faces-tokens .cc-modal__field { font-family:var(--mono); font-size:12px; color:var(--text); background:var(--bg); border:1px solid var(--border); border-radius:3px; padding:var(--sp-8) var(--sp-10); }
      .faces-tokens .cc-modal__field:focus { outline:none; border-color:var(--amber); }
      /* command-adapt: faces caps lane height via a body-flex chain; command's page
         scrolls. The calendar and schedule subtabs get their own viewport height so
         each column scrolls itself — same behaviour the queue/bookings grids already
         carry in their own calc() heights. */
      #lane-services.active { display:flex; flex-direction:column; min-height:0; }
      #lane-services .svcal { height:calc(100vh - 250px); min-height:420px; }
      #lane-services .cc-subpane[data-subtab="schedule"].active > .sv3 { height:calc(100vh - 250px); min-height:420px; }
    
/* ---- block 3 of 15, was at index.html line 199 ---- */

      /* Three-split like OPERATOR › TASKS (.ts3) — each column scrolls itself because
         .cc-lane clips overflow (that bug ate the schedule section on 2026-07-12). */
      [data-lane="services"] .sv3 { display:grid; grid-template-columns:var(--sv-cols, 1.3fr 10px 1.2fr 10px 1fr); gap:0; align-items:stretch; flex:1; min-height:0; margin:var(--sp-12) var(--sp-16); }
      [data-lane="services"] .sv3-col { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:10px; min-width:0; min-height:0; max-height:100%; overflow-y:auto; }
      /* The Saturday drop-off window. Read from az_dropoff_hours, never typed. */
      [data-lane="services"] .svc-drop { border:1px solid var(--border); border-left:3px solid var(--amber); border-radius:5px; padding:8px 10px; margin-bottom:6px; }
      [data-lane="services"] .svc-drop__line { font-size:12.5px; color:var(--text); }
      [data-lane="services"] .svc-drop__note { font-size:11px; color:var(--text-dim); margin-top:4px; }
      [data-lane="services"] .sv3-col__head { font-family:var(--display-tabs,var(--display,'Oswald'),sans-serif); font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--amber); padding-bottom:8px; border-bottom:1px solid var(--border); margin-bottom:8px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
      [data-lane="services"] .sv3-resize { cursor:col-resize; position:relative; align-self:stretch; touch-action:none; pointer-events:none; background:transparent; transition:background .12s; }
      body.cc-edit-on [data-lane="services"] .sv3-resize { pointer-events:auto; background:linear-gradient(to right, transparent calc(50% - 1px), var(--amber-dim,var(--amber)) calc(50% - 1px), var(--amber-dim,var(--amber)) calc(50% + 1px), transparent calc(50% + 1px)); }
      body.cc-edit-on [data-lane="services"] .sv3-resize:hover, body.cc-edit-on [data-lane="services"] .sv3-resize.dragging { background:linear-gradient(to right, transparent calc(50% - 1.5px), var(--amber) calc(50% - 1.5px), var(--amber) calc(50% + 1.5px), transparent calc(50% + 1.5px)); }
      @media (max-width:960px) { [data-lane="services"] .sv3 { grid-template-columns:1fr; overflow-y:auto; gap:var(--sp-10); } [data-lane="services"] .sv3-resize { display:none; } [data-lane="services"] .sv3-col { max-height:none; overflow:visible; } }
      /* ── CALENDAR subtab (2026-07-12, Alessio direct: subtabs + visual booking calendar) ── */
      [data-lane="services"] .cc-subpane.active { padding:var(--sp-12) var(--sp-16); }
      [data-lane="services"] .cc-subpane .sv3 { margin:0; }
      [data-lane="services"] .svcal { display:flex; flex-direction:column; min-height:0; }
      [data-lane="services"] .svcal-bar { display:flex; gap:6px; align-items:center; margin-bottom:var(--sp-8); flex-wrap:wrap; flex:0 0 auto; }
      [data-lane="services"] .svcal-title { font-family:var(--display); font-size:14px; letter-spacing:.08em; text-transform:uppercase; color:var(--text); min-width:160px; text-align:center; }
      [data-lane="services"] .svcal-vbtn.active { background:var(--amber); color:#000; border-color:var(--amber); }
      [data-lane="services"] .svcal-body { display:grid; grid-template-columns:1fr 300px; gap:var(--sp-10); flex:1; min-height:0; }
      [data-lane="services"] .svcal-grid, [data-lane="services"] .svcal-detail { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:10px; overflow-y:auto; min-height:0; }
      [data-lane="services"] .svcal-dow { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:4px; }
      [data-lane="services"] .svcal-dow div { font-family:var(--mono); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); text-align:center; padding:2px 0; }
      [data-lane="services"] .svcal-cells { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
      [data-lane="services"] .svcal-day { border:1px solid var(--border); border-radius:4px; min-height:84px; padding:4px; cursor:pointer; display:flex; flex-direction:column; gap:2px; min-width:0; }
      [data-lane="services"] .svcal-day:hover { border-color:var(--amber); }
      [data-lane="services"] .svcal-day.pad { border:0; cursor:default; }
      [data-lane="services"] .svcal-day.sel { border-color:var(--amber); background:rgba(255,176,0,.08); }
      [data-lane="services"] .svcal-day.today .svcal-num { color:var(--amber); font-weight:700; }
      [data-lane="services"] .svcal-num { font-family:var(--mono); font-size:10px; color:var(--text-dim); }
      [data-lane="services"] .svcal-chip { font-family:var(--mono); font-size:9px; border-radius:3px; padding:1px 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
      [data-lane="services"] .svcal-chip.b { background:rgba(255,176,0,.15); color:var(--amber); border:1px solid rgba(255,176,0,.4); }
      [data-lane="services"] .svcal-chip.x { background:rgba(204,31,31,.18); color:#ff7a7a; border:1px solid rgba(204,31,31,.5); }
      [data-lane="services"] .svcal-chip.g { background:var(--raised,rgba(255,255,255,.04)); color:var(--text-dim); border:1px solid var(--border); }
      [data-lane="services"] .svcal-week { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
      [data-lane="services"] .svcal-wday { border:1px solid var(--border); border-radius:4px; padding:6px; min-height:220px; cursor:pointer; display:flex; flex-direction:column; gap:3px; min-width:0; }
      [data-lane="services"] .svcal-wday.sel { border-color:var(--amber); background:rgba(255,176,0,.08); }
      [data-lane="services"] .svcal-wday__h { font-family:var(--mono); font-size:9px; color:var(--text-dim); }
      [data-lane="services"] .svcal-year { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:var(--sp-10); }
      [data-lane="services"] .svcal-mini { border:1px solid var(--border); border-radius:6px; padding:8px; cursor:pointer; }
      [data-lane="services"] .svcal-mini:hover { border-color:var(--amber); }
      [data-lane="services"] .svcal-mini__t { font-family:var(--display); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--text); margin-bottom:6px; }
      [data-lane="services"] .svcal-mini__g { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
      [data-lane="services"] .svcal-mini__d { height:14px; border-radius:2px; background:var(--raised,rgba(255,255,255,.03)); font-size:8px; font-family:var(--mono); color:var(--text-xs); display:flex; align-items:center; justify-content:center; }
      [data-lane="services"] .svcal-mini__d.b { background:rgba(255,176,0,.35); color:#000; }
      [data-lane="services"] .svcal-mini__d.x { background:rgba(204,31,31,.45); color:#fff; }
      [data-lane="services"] .svcal-mini__d.e { background:transparent; }
      [data-lane="services"] .svcal-dhead { font-family:var(--display); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); padding-bottom:6px; border-bottom:1px solid var(--border); margin-bottom:8px; }
      [data-lane="services"] .svcal-dsec { font-family:var(--mono); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); margin:10px 0 4px; }
      @media (max-width:960px){ [data-lane="services"] .svcal-body { grid-template-columns:1fr; } [data-lane="services"] .svcal-grid { max-height:50vh; } }
      /* ── Bus-rail message cards + empty state — the SCHEDULE pane's Project Bus
         rail (svc-sched-bus-list) renders these. Sole survivors of the retired
         Bookings/Queue svb-*/svq-* surfaces: the panes died 2026-08-08
         (cc-scheduling.js owns the queue surface now) and their dead CSS was
         swept 2026-08-09. ── */
      [data-lane="services"] .svb-msg { background:var(--raised); border:1px solid var(--border); border-radius:3px; padding:6px 10px; font-size:11.5px; line-height:1.45; color:var(--text); margin-bottom:6px; }
      [data-lane="services"] .svb-msg__head { font-family:var(--mono); font-size:9px; color:var(--text-xs); margin-bottom:3px; }
      [data-lane="services"] .svb-msg__body { white-space:pre-wrap; word-break:break-word; max-height:180px; overflow-y:auto; }
      [data-lane="services"] .svq-empty { font-family:var(--mono); font-size:11px; color:var(--text-xs); padding:16px; text-align:center; }
    
/* ---- block 4 of 15, was at index.html line 309 ---- */

      [data-lane="services"] .svsc-3col { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; height:calc(100vh - 205px); min-height:420px; align-items:stretch; position:relative; margin:var(--sp-12) var(--sp-16); }
      @media (max-width:700px){ [data-lane="services"] .svsc-3col { grid-template-columns:1fr; height:auto; min-height:0; } }
    
/* ---- block 5 of 15, was at index.html line 1119 ---- */

      [data-lane="comms"] .cc-divider { display:flex; align-items:center; gap:var(--sp-8); font-family:var(--mono); font-size:9px; color:var(--text-xs); letter-spacing:0.1em; margin:12px 0 8px; }
      [data-lane="comms"] .cc-divider::before, [data-lane="comms"] .cc-divider::after { content:''; flex:1; height:1px; background:var(--border); }
      [data-lane="comms"] .cc-card__btn { font-family:var(--display); font-size:10px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; padding:5px 10px; border-radius:3px; border:1px solid var(--border); background:var(--raised); color:var(--text-dim); cursor:pointer; transition:all 0.12s; }
      [data-lane="comms"] .cc-card__btn:hover { color:var(--amber); border-color:var(--amber); }
      [data-lane="comms"] .cc-card__btn:disabled { opacity:0.5; pointer-events:none; }
      [data-lane="comms"] .cc-card__btn.primary { background:var(--amber); color:#000; border-color:var(--amber); }
      [data-lane="comms"] .cc-card__btn.primary:hover { background:var(--amber-dim); border-color:var(--amber-dim); }
      [data-lane="comms"] .cc-card { max-width:760px; }
      [data-lane="comms"] code { font-family:var(--mono); font-size:11px; background:var(--raised); border:1px solid var(--border); border-radius:3px; padding:1px 5px; }
    
/* ---- block 6 of 15, was at index.html line 1152 ---- */
[data-lane="comms"] .cc-email-frame{display:block;width:100%;height:calc(100vh - 220px);min-height:480px;border:1px solid var(--border);background:#fff}
/* ---- block 7 of 15, was at index.html line 1402 ---- */

      [data-lane="quadfang"] .qf-viewer { flex:1 1 0%; min-height:0; background:#FBF8F2; border:1px solid var(--border); border-radius:6px; overflow:hidden; }
      [data-lane="quadfang"] .qf-viewer iframe { width:100%; height:100%; border:0; display:block; background:#FBF8F2; }
      /* command-adapt (Alessio 2026-08-05: "the window is not big enough") — faces bounded
         these via its body-flex chain; command's page scrolls, so the chain collapsed and
         Progress/Finances rendered in a short box. Give the iframe subtabs the viewport. */
      #lane-quadfang .cc-subpane.active > .qf-viewer { height:calc(100vh - 225px); min-height:520px; display:flex; }
      #lane-quadfang .cc-subpane.active > .qf-viewer > iframe { flex:1 1 auto; height:auto; }
      /* Business Model Canvas — fixed 11x8.5in plate scaled to fit the subtab (bus #2373) */
      [data-lane="quadfang"] .qf-bmc-viewport { flex:1 1 0%; min-height:0; overflow:auto; background:transparent; border:1px solid var(--border); border-radius:6px; padding:10px; display:flex; align-items:flex-start; justify-content:center; }
      [data-lane="quadfang"] .qf-bmc-sizer { position:relative; flex:0 0 auto; margin:0 auto; }
      [data-lane="quadfang"] .qf-bmc-scaler { position:absolute; top:0; left:0; width:1056px; height:816px; transform-origin:top left; }
      [data-lane="quadfang"] .qf-bmc-scaler iframe { width:1056px; height:816px; border:0; display:block; background:#1A1A1A; }
      /* Blown-up single-section view (content cloned live from the canvas iframe) */
      [data-lane="quadfang"] .qf-bmc-section { flex:1 1 0%; min-height:0; overflow:auto; border:1px solid var(--border); border-radius:6px; padding:22px 26px; background:transparent; }
      [data-lane="quadfang"] .qf-bmc-section .hd { display:flex; align-items:center; gap:12px; margin:0 0 16px; padding-bottom:12px; border-bottom:2px solid var(--amber); }
      [data-lane="quadfang"] .qf-bmc-section .ic { font-size:26px; line-height:1; background:none; width:auto; height:auto; color:inherit; }
      [data-lane="quadfang"] .qf-bmc-section h2 { font-family:var(--display); font-size:22px; font-weight:700; text-transform:uppercase; letter-spacing:0.03em; color:var(--text); margin:0; }
      [data-lane="quadfang"] .qf-bmc-section .lead { font-style:italic; font-size:16px; line-height:1.45; color:var(--text); border-left:3px solid var(--amber); padding-left:12px; margin:0 0 16px; }
      [data-lane="quadfang"] .qf-bmc-section .pricepill { display:inline-block; background:var(--amber); color:#000; font-family:var(--display); font-weight:700; font-size:15px; letter-spacing:.3px; padding:4px 13px; border-radius:13px; margin:0 0 12px; }
      [data-lane="quadfang"] .qf-bmc-section ul { list-style:none; margin:0; padding:0; columns:1; }
      [data-lane="quadfang"] .qf-bmc-section li { position:relative; font-size:15px; line-height:1.6; color:var(--text-dim); padding-left:20px; margin-bottom:11px; }
      [data-lane="quadfang"] .qf-bmc-section li::before { content:""; position:absolute; left:2px; top:9px; width:6px; height:6px; background:var(--amber); border-radius:50%; }
      [data-lane="quadfang"] .qf-bmc-section li b { color:var(--text); font-weight:700; }
      /* BMC operator-style 3-col: Versions | Canvas | Bus at 1.5 / 3 / 2 (bus #2373) */
      [data-lane="quadfang"] .rnd-3col.bmc3 { grid-template-columns:1.5fr 3fr 2fr; }
      [data-lane="quadfang"] .bmc3 .qf-bmc-stage { min-height:0; height:100%; display:flex; flex-direction:column; }
      [data-lane="quadfang"] .qf-bmc-bar { flex-shrink:0; display:flex; justify-content:flex-end; margin-bottom:8px; }
      [data-lane="quadfang"] .qf-bmc-pdf { background:var(--amber); color:#000; border:0; border-radius:4px; padding:5px 13px; font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; }
      [data-lane="quadfang"] .qf-bmc-pdf:hover { filter:brightness(1.08); }
      [data-lane="quadfang"] .qf-bmc-versions { width:100%; box-sizing:border-box; margin-bottom:10px; background:var(--bg); color:var(--text); border:1px solid var(--border); border-radius:4px; padding:6px 8px; font-family:var(--sans); font-size:12px; }
      [data-lane="quadfang"] .bmc-hint { font-family:var(--mono); font-size:10px; color:var(--text-xs); margin-top:8px; padding:8px; border:1px dashed var(--border); border-radius:4px; line-height:1.5; }
      /* Mobile: enlarge the version dropdown + hint so they're readable on a phone. */
      @media (max-width:1100px){
        [data-lane="quadfang"] .qf-bmc-versions { font-size:16px; padding:10px; line-height:1.4; min-height:44px; }
        [data-lane="quadfang"] .bmc-hint { font-size:13px; padding:10px; }
      }
      @media (max-width:1100px){ [data-lane="quadfang"] .rnd-3col.bmc3 { grid-template-columns:minmax(0,1fr); } } /* narrow: stack Versions / Canvas / Bus */
      /* Mobile: let the canvas expand to the full screen width (edge-to-edge) and grow
         tall enough to show it, instead of being crammed into a short stacked row. */
      @media (max-width:1100px){
        [data-lane="quadfang"] .bmc3 .qf-bmc-stage { height:auto; min-height:0; min-width:0; }
        [data-lane="quadfang"] .qf-bmc-viewport { height:auto; min-height:0; min-width:0; width:100%; max-width:100%; padding:0; border:0; overflow-x:auto; overflow-y:visible; justify-content:flex-start; -webkit-overflow-scrolling:touch; }
      }
      /* Mobile: the desktop CC is a fixed single frame (no page scroll). On a phone the
         stacked BMC columns (sections + canvas + bus) overflow one screen, so make the
         QuadFang lane SCROLL while the sticky tab nav above it stays put. The bus, which
         was trapped off-screen at the bottom, becomes reachable. */
      @media (max-width:1100px){
        .cc-lane[data-lane="quadfang"] { overflow-y:auto; -webkit-overflow-scrolling:touch; }
        .cc-lane[data-lane="keypartners"] { overflow-y:auto; -webkit-overflow-scrolling:touch; }
        [data-lane="quadfang"] .cc-subpane.active { overflow:visible; height:auto; min-height:0; flex:0 0 auto; }
        [data-lane="quadfang"] .rnd-3col, [data-lane="quadfang"] .rnd-3col.bmc3 { height:auto; min-height:0; align-items:start; }
        [data-lane="quadfang"] .rnd-col { overflow:visible; height:auto; min-height:0; }
        [data-lane="quadfang"] .rnd-col--list { max-height:34vh; overflow-y:auto; }  /* compact section picker so the canvas sits up top, not buried under a long list */
        [data-lane="quadfang"] .rnd-col--bus { overflow:visible; }
        [data-lane="quadfang"] .rnd-bus { overflow:visible; height:auto; min-height:0; }
      }
      /* Mobile scroll for the OPERATOR lane (Projects, Buses, Tasks): same pattern as
         QuadFang — the lane scrolls while the sticky tab nav stays put. Plans already
         scrolls fine (plain cards) and is unaffected by these container overrides. */
      @media (max-width:1100px){
        .cc-lane[data-lane="operator"] { overflow-y:auto; -webkit-overflow-scrolling:touch; }
        [data-lane="operator"] .cc-subpane.active { overflow:visible; height:auto; min-height:0; flex:0 0 auto; }
        [data-lane="operator"] [data-subtab="projects"] #op-projects-mount { overflow:visible; height:auto; min-height:0; }
        [data-lane="operator"] [data-subtab="bus"] #bus-mount { overflow:visible; height:auto; min-height:0; }
        [data-lane="operator"] [data-subtab="tasks"] .ts3 { height:auto; min-height:0; }
        [data-lane="operator"] [data-subtab="tasks"] .ts3-col { height:auto; min-height:0; max-height:none; }
      }
      [data-lane="quadfang"] .rnd-3col { display:grid; grid-template-columns:1.4fr 2.3fr 2.1fr; gap:var(--sp-10); height:100%; min-height:0; align-items:stretch; }
      @media (max-width:700px){ [data-lane="quadfang"] .rnd-3col { grid-template-columns:1fr; } [data-lane="quadfang"] .rnd-col--bus { grid-column:auto; } [data-lane="quadfang"] .rnd-col--detail { max-height:60vh; overflow-y:auto; } } /* 700 (was 1100) — iPads keep columns + resize, 2026-06-09 */
      [data-lane="quadfang"] .rnd-col { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:var(--sp-10); min-height:0; overflow-y:auto; display:flex; flex-direction:column; }
      [data-lane="quadfang"] .rnd-col--bus { overflow:hidden; }
      [data-lane="quadfang"] .rnd-col__head { font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--amber); padding-bottom:8px; border-bottom:1px solid var(--border); margin-bottom:8px; flex-shrink:0; }
      [data-lane="quadfang"] .rnd-row { padding:8px 10px; border:1px solid transparent; border-left:2px solid transparent; border-radius:4px; cursor:pointer; margin-bottom:4px; }
      [data-lane="quadfang"] .rnd-row:hover { background:var(--raised); border-left-color:var(--amber-dim); }
      [data-lane="quadfang"] .rnd-row.selected { background:var(--amber-soft); border-left-color:var(--amber); }
      [data-lane="quadfang"] .rnd-row__top { display:flex; align-items:center; gap:8px; }
      [data-lane="quadfang"] .rnd-row__name { font-family:var(--sans); font-size:13px; font-weight:600; color:var(--text); flex:1; min-width:0; }
      [data-lane="quadfang"] .rnd-row__sub { font-size:10.5px; color:var(--text-dim); margin-top:3px; line-height:1.4; }
      [data-lane="quadfang"] .rnd-pill { font-family:var(--mono); font-size:9px; font-weight:700; letter-spacing:0.04em; padding:2px 7px; border-radius:10px; white-space:nowrap; flex-shrink:0; }
      [data-lane="quadfang"] .rnd-pill.ok { background:rgba(46,125,84,.18); color:#5cc99a; }
      [data-lane="quadfang"] .rnd-pill.warn { background:var(--amber-soft); color:var(--amber); }
      [data-lane="quadfang"] .rnd-pill.bad { background:rgba(180,69,47,.22); color:#f08a6e; }
      [data-lane="quadfang"] .rnd-pill.neu { background:var(--raised); color:var(--text-dim); border:1px solid var(--border); }
      [data-lane="quadfang"] .rnd-detail__card { display:none; }
      [data-lane="quadfang"] .rnd-detail__title { font-family:var(--display); font-size:16px; font-weight:700; color:var(--text); margin-bottom:4px; }
      [data-lane="quadfang"] .rnd-detail__meta { font-family:var(--mono); font-size:10px; color:var(--text-xs); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:10px; }
      [data-lane="quadfang"] .rnd-detail__body { font-size:13px; color:var(--text-dim); line-height:1.55; }
      [data-lane="quadfang"] .rnd-bus { flex:1 1 0%; min-height:0; overflow-y:auto; display:flex; flex-direction:column; gap:6px; }
      [data-lane="quadfang"] .rnd-bus__compose { flex-shrink:0; display:flex; gap:6px; margin-bottom:8px; padding-bottom:8px; border-bottom:1px solid var(--border); }
      [data-lane="quadfang"] .rnd-bus__text { flex:1; min-width:0; background:var(--bg); color:var(--text); border:1px solid var(--border); border-radius:3px; padding:6px 8px; font-family:var(--sans); font-size:12px; line-height:1.4; resize:vertical; min-height:38px; max-height:160px; box-sizing:border-box; }
      [data-lane="quadfang"] .rnd-bus__text:focus { outline:none; border-color:var(--amber); }
      [data-lane="quadfang"] .rnd-bus__send { flex-shrink:0; background:var(--amber); color:#000; border:0; border-radius:3px; padding:0 14px; font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; }
      [data-lane="quadfang"] .rnd-bus__send:hover { background:var(--amber-hi,#ffb000); }
      [data-lane="quadfang"] .rnd-bus__send:disabled { opacity:.5; cursor:wait; }
      [data-lane="quadfang"] .rnd-bus__msg { background:var(--raised); border:1px solid var(--border); border-radius:4px; padding:6px 9px; }
      [data-lane="quadfang"] .rnd-bus__head { font-family:var(--mono); font-size:9px; color:var(--text-xs); margin-bottom:3px; }
      [data-lane="quadfang"] .rnd-bus__from { color:var(--amber); font-weight:700; }
      [data-lane="quadfang"] .rnd-bus__body { font-size:11.5px; color:var(--text); line-height:1.45; white-space:pre-wrap; word-wrap:break-word; }
      [data-lane="quadfang"] .rnd-bus__empty { font-family:var(--mono); font-size:10px; color:var(--text-xs); text-align:center; padding:14px; border:1px dashed var(--border); border-radius:4px; }
    
/* ---- block 8 of 15, was at index.html line 1796 ---- */

        /* ════════════════════════════════════════════════════════════════
           SHOP v2 — operator-mode modal · runs · versioning
           Strict AZCK palette · Lexend type · ALL CAPS labels · no green/blue
           Scoped to [data-lane="shop"] so it can't bleed into other lanes.
           ═══════════════════════════════════════════════════════════════ */
        [data-lane="shop"] {
          --sp-orange:   #E8630A;
          --sp-amber:    #EF9F27;
          --sp-amber-lt: #FAC775;
          --sp-white:    #FFFFFF;
          --sp-muted-lt: #CCCCCC;
          --sp-muted:    #6B6B6B;
          --sp-divider:  #444444;
          --sp-panel:    #1A1A1A;
          --sp-deep:     #0D0D0D;
          --sp-scrim:    rgba(0,0,0,0.85);
          --sp-warn:     #990000;
          font-family: 'Lexend', sans-serif;
        }

        /* ── Active-run rail (SHOP-level, above toolbar) ─────────────── */
        .sp-runrail { display:none; background:var(--sp-orange); color:#000; padding:8px 18px; font-family:'Lexend',sans-serif; font-size:12px; font-weight:500; letter-spacing:0.5px; text-transform:uppercase; align-items:center; gap:10px; margin-bottom:12px; cursor:pointer; }
        .sp-runrail.open { display:flex; }
        .sp-runrail i { font-size:16px; }
        .sp-runrail__title { font-weight:500; }
        .sp-runrail__timer { font-family:'Lexend',sans-serif; font-variant-numeric:tabular-nums; }
        .sp-runrail__cta { margin-left:auto; padding:2px 10px; border:1px solid #000; background:transparent; color:#000; font-family:inherit; font-size:11px; cursor:pointer; text-transform:uppercase; letter-spacing:0.5px; }

        /* ── Toolbar ─────────────────────────────────────────────────── */
        .sp-toolbar { display:flex; gap:8px; margin-bottom:12px; align-items:center; flex-wrap:wrap; }
        .sp-toolbar input, .sp-toolbar select { background:var(--sp-panel); color:var(--sp-white); border:1px solid var(--sp-divider); padding:8px 12px; font-family:'Lexend',sans-serif; font-size:12px; font-weight:400; }
        .sp-toolbar input { flex:1 1 240px; min-width:180px; }
        .sp-toolbar input:focus, .sp-toolbar select:focus { outline:none; border-color:var(--sp-orange); }
        .sp-toolbar input::placeholder { color:var(--sp-muted); }

        /* ── Category grid + cards ───────────────────────────────────── */
        .sp-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:8px; margin:6px 0 10px; }
        .sp-card { cursor:pointer; }
        .sp-card:hover { border-color:var(--sp-orange); }

        /* ── MODAL v2 ─────────────────────────────────────────────────── */
        .sp-modal { display:none; position:fixed; inset:0; z-index:9999; background:var(--sp-scrim); }
        .sp-modal.open { display:flex; align-items:center; justify-content:center; padding:24px; font-family:'Lexend',sans-serif; }
        .sp-modal__shell { background:var(--sp-deep); border:1px solid var(--sp-divider); width:100%; max-width:960px; max-height:92vh; display:flex; flex-direction:column; color:var(--sp-white); }

        /* Header strip */
        .sp-modal__header { padding:18px 24px; border-bottom:1px solid #1f1f1f; display:flex; gap:14px; align-items:center; flex-shrink:0; }
        .sp-chip { font-size:11px; padding:3px 10px; border:1px solid var(--sp-orange); color:var(--sp-orange); text-transform:uppercase; letter-spacing:1.2px; font-weight:500; white-space:nowrap; }
        .sp-modal__title { font-size:15px; font-weight:500; color:var(--sp-white); text-transform:uppercase; letter-spacing:0.5px; flex:1; line-height:1.3; }
        .sp-btn-print { font-size:11px; padding:6px 14px; border:1px solid var(--sp-divider); color:var(--sp-white); text-decoration:none; text-transform:uppercase; letter-spacing:0.5px; font-family:inherit; font-weight:400; }
        .sp-btn-print:hover { border-color:var(--sp-orange); color:var(--sp-orange); }
        .sp-btn-close { background:none; border:0; color:var(--sp-muted); cursor:pointer; font-family:inherit; padding:4px 6px; line-height:1; }
        .sp-btn-close i { font-size:22px; }
        .sp-btn-close:hover { color:var(--sp-white); }

        /* Metadata strip */
        .sp-modal__metadata { padding:12px 24px; border-bottom:1px solid #1f1f1f; display:flex; gap:24px; flex-wrap:wrap; flex-shrink:0; }
        .sp-meta-field { display:flex; flex-direction:column; gap:2px; min-width:0; }
        .sp-meta-lbl { font-size:10px; color:var(--sp-muted); text-transform:uppercase; letter-spacing:0.08em; }
        .sp-meta-val { font-size:13px; color:var(--sp-white); font-weight:400; }
        .sp-meta-val.amber { color:var(--sp-amber); }
        .sp-meta-status { display:inline-flex; align-items:center; gap:6px; }
        .sp-meta-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
        .sp-meta-dot.active   { background:var(--sp-orange); }
        .sp-meta-dot.draft    { background:var(--sp-muted); }
        .sp-meta-dot.archived { background:var(--sp-warn); }

        /* Anchored nav (5 pills) */
        .sp-modal__nav { display:flex; border-bottom:1px solid #1f1f1f; flex-shrink:0; overflow-x:auto; scrollbar-width:none; }
        .sp-modal__nav::-webkit-scrollbar { display:none; }
        .sp-pill { padding:14px 18px; background:none; border:0; color:var(--sp-muted); font-family:inherit; font-size:12px; font-weight:500; cursor:pointer; display:flex; align-items:center; gap:6px; border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; text-transform:none; letter-spacing:0.2px; }
        .sp-pill i { font-size:16px; vertical-align:-2px; }
        .sp-pill:hover:not(.active) { color:var(--sp-amber-lt); }
        .sp-pill.active { color:var(--sp-white); border-bottom-color:var(--sp-orange); }

        /* Section content */
        .sp-modal__content { flex:1; overflow-y:auto; padding:18px 24px; font-size:13px; color:var(--sp-white); line-height:1.55; }
        .sp-section { display:none; }
        .sp-section.active { display:block; }
        .sp-section h2, .sp-section h3 { font-family:'Lexend',sans-serif; font-weight:500; color:var(--sp-white); text-transform:uppercase; letter-spacing:0.5px; margin:14px 0 8px; }
        .sp-section h2 { font-size:13px; color:var(--sp-amber); }
        .sp-section h3 { font-size:12px; color:var(--sp-muted-lt); }
        .sp-section p { margin:6px 0; color:var(--sp-muted-lt); }
        .sp-section strong { color:var(--sp-white); font-weight:500; }
        .sp-section code { background:var(--sp-panel); padding:1px 6px; color:var(--sp-amber); font-family:'Lexend',monospace; font-size:12px; }

        /* Sub-blocks within sections */
        .sp-block { background:var(--sp-panel); padding:14px 16px; margin:10px 0; border-left:2px solid transparent; }
        .sp-block__label { font-size:10px; color:var(--sp-muted); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:8px; font-weight:500; }
        .sp-block.warn { border-left-color:var(--sp-warn); }
        .sp-block.amber { border-left-color:var(--sp-amber); }

        /* Checkbox rows (parsed from markdown checkboxes) */
        .sp-check { display:flex; align-items:flex-start; gap:10px; margin:4px 0; padding:4px 0; }
        .sp-check input[type=checkbox] { margin-top:3px; accent-color:var(--sp-orange); width:14px; height:14px; flex-shrink:0; }
        .sp-check label { color:var(--sp-muted-lt); cursor:pointer; flex:1; }
        .sp-check input:checked + label { color:var(--sp-muted); text-decoration:line-through; }

        /* AT-THE-KILN · spec tiles row */
        .sp-spec-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:8px 0 18px; }
        .sp-spec-tile { background:var(--sp-panel); padding:16px; }
        .sp-spec-tile .val { font-size:36px; font-weight:500; color:var(--sp-amber); line-height:1.05; font-variant-numeric:tabular-nums; }
        .sp-spec-tile .val.white { color:var(--sp-white); font-size:24px; }
        .sp-spec-tile .lbl { font-size:10px; color:var(--sp-muted); text-transform:uppercase; letter-spacing:0.1em; margin-top:8px; font-weight:500; }

        /* Collapsible step cards */
        .sp-step { background:var(--sp-panel); margin:6px 0; }
        .sp-step summary { padding:11px 14px; cursor:pointer; list-style:none; display:flex; align-items:center; gap:10px; font-size:13px; color:var(--sp-white); font-weight:500; }
        .sp-step summary::-webkit-details-marker { display:none; }
        .sp-step[open] summary { border-bottom:1px solid #1f1f1f; }
        .sp-step__num { font-size:10px; color:var(--sp-amber); background:#0d0d0d; padding:3px 7px; font-weight:500; letter-spacing:0.5px; min-width:38px; text-align:center; }
        .sp-step__title { flex:1; }
        .sp-step__check { margin-left:auto; }
        .sp-step__check input[type=checkbox] { accent-color:var(--sp-orange); width:14px; height:14px; }
        .sp-step__body { padding:12px 14px; font-size:12px; color:var(--sp-muted-lt); }
        .sp-step__body p { color:var(--sp-muted-lt); }
        .sp-step__body .label { color:var(--sp-amber); font-size:10px; text-transform:uppercase; letter-spacing:0.08em; font-weight:500; display:block; margin:8px 0 2px; }

        /* IF-WRONG · structured tables */
        .sp-table { width:100%; border-collapse:collapse; margin:8px 0 14px; }
        .sp-table th { text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:var(--sp-muted); padding:8px 12px; border-bottom:1px solid var(--sp-divider); font-weight:500; }
        .sp-table td { padding:10px 12px; font-size:12px; color:var(--sp-white); border-bottom:1px solid #1f1f1f; vertical-align:top; line-height:1.45; }
        .sp-table tr:hover { background:var(--sp-panel); }

        /* POST-JOB · log-a-batch form */
        .sp-form { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:8px; }
        .sp-form-field { display:flex; flex-direction:column; gap:4px; }
        .sp-form-field.full { grid-column:1/-1; }
        .sp-form-field .lbl { font-size:10px; color:var(--sp-muted); text-transform:uppercase; letter-spacing:0.08em; font-weight:500; }
        .sp-form input, .sp-form textarea, .sp-form select { background:var(--sp-panel); border:1px solid var(--sp-divider); color:var(--sp-white); padding:8px 10px; font-size:13px; font-family:'Lexend',sans-serif; font-weight:400; }
        .sp-form input:focus, .sp-form textarea:focus, .sp-form select:focus { outline:none; border-color:var(--sp-orange); }
        .sp-form textarea { min-height:60px; resize:vertical; }
        .sp-toggle { display:flex; gap:6px; }
        .sp-toggle button { padding:7px 14px; background:var(--sp-panel); border:1px solid var(--sp-divider); color:var(--sp-muted-lt); cursor:pointer; font-family:inherit; font-size:12px; font-weight:400; text-transform:uppercase; letter-spacing:0.5px; }
        .sp-toggle button.on { background:var(--sp-orange); color:#000; border-color:var(--sp-orange); }
        .sp-photo-drop { border:1px dashed var(--sp-divider); padding:20px; text-align:center; cursor:pointer; color:var(--sp-muted); font-size:12px; }
        .sp-photo-drop:hover, .sp-photo-drop.dragover { border-color:var(--sp-orange); color:var(--sp-orange); }
        .sp-photo-drop input { display:none; }
        .sp-photo-thumbs { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
        .sp-photo-thumb { width:72px; height:72px; object-fit:cover; border:1px solid var(--sp-divider); }

        /* Modal footer */
        .sp-modal__footer { padding:14px 24px; border-top:1px solid #1f1f1f; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-shrink:0; }
        .sp-footer-status { color:var(--sp-muted); font-size:12px; font-family:'Lexend',sans-serif; }
        .sp-footer-status .num { color:var(--sp-white); }
        .sp-cta { background:var(--sp-orange); color:#000; padding:10px 24px; border:0; font-size:12px; font-weight:500; text-transform:uppercase; letter-spacing:0.5px; cursor:pointer; font-family:'Lexend',sans-serif; }
        .sp-cta:hover { background:var(--sp-amber); }
        .sp-cta.secondary { background:transparent; color:var(--sp-muted-lt); border:1px solid var(--sp-divider); padding:9px 20px; }
        .sp-cta.secondary:hover { color:var(--sp-white); border-color:var(--sp-white); }
        .sp-footer-link { color:var(--sp-muted); font-size:11px; text-decoration:none; padding:6px 10px; cursor:pointer; font-family:inherit; background:transparent; border:0; }
        .sp-footer-link:hover { color:var(--sp-amber); }

        /* Mobile */
        @media (max-width:520px) {
          .sp-grid { grid-template-columns:1fr; }
          .sp-modal.open { padding:0; align-items:stretch; }
          .sp-modal__shell { max-width:100%; max-height:100vh; }
          .sp-modal__header { padding:14px 16px; }
          .sp-modal__metadata { padding:10px 16px; gap:14px; }
          .sp-modal__nav { padding:0 4px; }
          .sp-pill { padding:12px 12px; font-size:11px; }
          .sp-modal__content { padding:14px 16px; }
          .sp-modal__footer { padding:12px 16px; }
          .sp-spec-row { grid-template-columns:1fr 1fr; gap:8px; }
          .sp-spec-tile { padding:12px; }
          .sp-spec-tile .val { font-size:26px; }
          .sp-form { grid-template-columns:1fr; }
        }
      
/* ---- block 9 of 15, was at index.html line 2048 ---- */

        /* 3-column subpane layout (2026-05-31 Alessio direct):
              intern list  |  journey / calendar  |  Project Bus (staff-only)
           Replaces the previous .cc-ses-split (2-col) + .in-mvp-header strip
           + .in-mvp-bus tail. Interns NEVER see this surface — agent_messages
           lives behind staff-RLS and the portal at intern.html doesn't touch it. */
        [data-subtab="interns"] .in-3col { display:grid; grid-template-columns:1.5fr 2.5fr 2.5fr; gap:var(--sp-10); align-items:stretch; }
        /* Curriculum card fills the leftover vertical space in the LEFT column
           so the bottom of col-1 lines up with the bottom of col-2 + col-3
           (Alessio direct ask, 2026-06-01). */
        [data-subtab="interns"] #in-curriculum-card { flex:1 1 auto; min-height:0; }
        @media (max-width:700px) { [data-subtab="interns"] .in-3col { grid-template-columns:180px 1fr; }
                                     [data-subtab="interns"] .in-3col__bus { grid-column:1 / -1; } } /* 700 (was 1100) — iPads keep columns + resize, 2026-06-09 */
        /* Gray-box card look on all three columns (Alessio direct, 2026-05-31) —
           matches the OPERATOR > TASKS / PLANS / PROJECTS .ts3-col / .pj-card
           visual: background var(--surface), 1px border, 6px radius, 10px pad. */
        [data-subtab="interns"] .in-3col__list { display:flex; flex-direction:column; gap:var(--sp-6); background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:var(--sp-10); min-height:0; max-height:100%; overflow-y:auto; }
        [data-subtab="interns"] .in-3col__detail { min-height:0; max-height:100%; overflow-y:auto; min-width:0; background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:var(--sp-10); }
        /* Bus column — list scrolls, head + composer stay at top. Now wrapped in the
           same gray-box card as cols 1 + 2 for visual consistency (Alessio direct,
           2026-05-31). Dropped the bare border-left + padding-left in favour of a
           full bordered card. */
        [data-subtab="interns"] .in-3col__bus { min-height:0; max-height:100%; overflow:hidden; min-width:0; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:var(--sp-10); }
        /* tighter calendar rows + week spacing */
        [data-subtab="interns"] .wk { margin:8px 0 4px; }
        [data-subtab="interns"] .day { padding:5px 8px !important; }
        [data-subtab="interns"] .day__activity { margin-bottom:3px; }

        /* Project Bus column (staff-only · agent_messages) */
        [data-subtab="interns"] .in-mvp-bus__head { font-family:var(--display); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--amber); margin-bottom:var(--sp-8); display:flex; align-items:baseline; gap:var(--sp-8); flex-shrink:0; }
        [data-subtab="interns"] .in-mvp-bus__count { font-family:var(--mono); font-size:10px; color:var(--text-xs); letter-spacing:0.04em; text-transform:none; }
        /* The bus LIST is the scroll container — head + composer stay at top, list scrolls under them with NO seam-bleed. */
        [data-subtab="interns"] .in-mvp-bus__list { flex:1; min-height:0; overflow-y:auto; display:flex; flex-direction:column; gap:var(--sp-6); margin-bottom:0; }
        [data-subtab="interns"] .in-mvp-bus__msg { padding:var(--sp-6) var(--sp-10); border:1px solid var(--border); border-radius:3px; background:var(--raised); }
        [data-subtab="interns"] .in-mvp-bus__msg.urgent { border-left:3px solid #f85149; }
        [data-subtab="interns"] .in-mvp-bus__msg-head { display:flex; align-items:baseline; gap:var(--sp-6); font-family:var(--mono); font-size:10px; letter-spacing:0.04em; color:var(--text-dim); margin-bottom:var(--sp-4); flex-wrap:wrap; }
        [data-subtab="interns"] .in-mvp-bus__msg-from { color:var(--amber); font-weight:600; }
        [data-subtab="interns"] .in-mvp-bus__msg-arrow { color:var(--text-xs); }
        [data-subtab="interns"] .in-mvp-bus__msg-to { color:var(--text); }
        [data-subtab="interns"] .in-mvp-bus__msg-when { margin-left:auto; color:var(--text-xs); font-size:9px; }
        [data-subtab="interns"] .in-mvp-bus__msg-body { font-size:11.5px; color:var(--text); line-height:1.42; white-space:pre-wrap; word-wrap:break-word; }
        [data-subtab="interns"] .in-mvp-bus__empty { font-family:var(--mono); font-size:10px; color:var(--text-xs); padding:var(--sp-10); text-align:center; border:1px dashed var(--border); border-radius:3px; }
        /* Composer (staff-only — interns never reach this) */
        /* Composer ON TOP of col3 (bus #1788). Static layout — the LIST below is
           the scroll container (see .in-mvp-bus__list overflow-y:auto), so the
           composer + head stay fixed at the top of the column naturally without
           position:sticky (sticky was leaking the scrolling thread through the
           seam around the composer). */
        [data-subtab="interns"] .in-mvp-bus__compose { flex-shrink:0; background:var(--bg); padding:var(--sp-10); border:1px solid var(--border); border-radius:4px; margin-bottom:var(--sp-10); display:flex; flex-direction:column; gap:var(--sp-6); }
        [data-subtab="interns"] .in-mvp-bus__compose label { font-family:var(--mono); font-size:9px; color:var(--text-xs); letter-spacing:0.06em; text-transform:uppercase; }
        [data-subtab="interns"] .in-mvp-bus__compose-row { display:flex; gap:var(--sp-6); align-items:center; flex-wrap:wrap; }
        /* Channel-type chip row (bus #1788) — same enum as agent_messages.channel CHECK constraint. */
        [data-subtab="interns"] .in-mvp-bus__chan-row { display:flex; gap:4px; flex-wrap:wrap; }
        [data-subtab="interns"] .in-mvp-bus__chan { font-family:var(--mono); font-size:9px; padding:3px 8px; background:var(--raised); color:var(--text-dim); border:1px solid var(--border); border-radius:3px; text-transform:uppercase; letter-spacing:0.08em; cursor:pointer; user-select:none; }
        [data-subtab="interns"] .in-mvp-bus__chan:hover { color:var(--amber); border-color:var(--amber); }
        [data-subtab="interns"] .in-mvp-bus__chan.active { background:var(--amber); color:#000; border-color:var(--amber); }
        [data-subtab="interns"] .in-mvp-bus__compose-to { background:var(--bg); color:var(--text); border:1px solid var(--border); height:28px; font-size:11px; padding:0 6px; }
        [data-subtab="interns"] .in-mvp-bus__compose-text { width:100%; box-sizing:border-box; background:var(--bg); color:var(--text); border:1px solid var(--border); padding:6px 8px; font-family:var(--sans); font-size:12px; line-height:1.4; min-height:60px; max-height:400px; resize:vertical; }
        [data-subtab="interns"] .in-mvp-bus__compose-text:focus { outline:none; border-color:var(--amber); }
        [data-subtab="interns"] .in-mvp-bus__compose-send { align-self:flex-start; background:var(--amber); color:#000; border:0; padding:6px 14px; font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; height:28px; }
        [data-subtab="interns"] .in-mvp-bus__compose-send:hover { background:var(--amber-hi, #ffb000); }
        [data-subtab="interns"] .in-mvp-bus__compose-send:disabled { background:var(--muted); cursor:wait; }

        /* Tight list rows for the Interns left rail — no stretched cc-cards */
        [data-subtab="interns"] .in-row { display:flex; align-items:center; gap:var(--sp-8); padding:var(--sp-8) var(--sp-10); cursor:pointer; border-left:2px solid transparent; transition:background var(--tr-fast), border-color var(--tr-fast); }
        [data-subtab="interns"] .in-row:hover { background:var(--raised); border-left-color:var(--amber-dim); }
        [data-subtab="interns"] .in-row.selected { background:var(--amber-soft); border-left-color:var(--amber); }
        [data-subtab="interns"] .in-row__main { flex:1; min-width:0; }
        [data-subtab="interns"] .in-row__name { font-family:var(--sans); font-size:13px; font-weight:600; color:var(--text); line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        [data-subtab="interns"] .in-row__sub { font-size:10px; color:var(--text-dim); margin-top:2px; font-family:var(--mono); letter-spacing:0.04em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        [data-subtab="interns"] .in-row__chev { color:var(--text-xs); font-size:14px; flex-shrink:0; }
        [data-subtab="interns"] .in-row.selected .in-row__chev { color:var(--amber); }
        [data-subtab="interns"] .in-row__badge { font-family:var(--mono); font-size:9px; padding:2px 6px; border-radius:3px; background:var(--amber-soft); color:var(--amber); text-transform:uppercase; letter-spacing:0.06em; font-weight:600; flex-shrink:0; }
        [data-subtab="interns"] .in-row__badge.muted { background:var(--raised); color:var(--text-xs); border:1px solid var(--border); }
      
/* ---- block 10 of 15, was at index.html line 2158 ---- */

              .cc-intern-curriculum-host .cur-head { display:flex; align-items:baseline; gap:var(--sp-6); font-family:var(--display); font-size:11px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--amber); }
              .cc-intern-curriculum-host .cur-head__sub { margin-left:auto; font-family:var(--mono); font-size:9px; color:var(--text-xs); letter-spacing:0.04em; text-transform:none; }
              .cc-intern-curriculum-host .cur-section { padding-top:var(--sp-6); }
              .cc-intern-curriculum-host .cur-section + .cur-section { border-top:1px dashed var(--border); margin-top:var(--sp-4); }
              .cc-intern-curriculum-host .cur-section__head { display:flex; align-items:baseline; gap:6px; font-family:var(--display); font-size:11px; font-weight:600; color:var(--text); }
              .cc-intern-curriculum-host .cur-section__icon { font-size:13px; }
              .cc-intern-curriculum-host .cur-group { margin-top:4px; display:flex; flex-wrap:wrap; gap:4px 6px; align-items:baseline; }
              .cc-intern-curriculum-host .cur-group__label { font-family:var(--mono); font-size:9px; color:var(--text-xs); letter-spacing:0.06em; text-transform:uppercase; margin-right:2px; }
              .cc-intern-curriculum-host .cur-chip { font-family:var(--sans); font-size:10.5px; padding:2px 7px; background:var(--raised); color:var(--text); border:1px solid var(--border); border-radius:3px; }
              .cc-intern-curriculum-host .cur-note { font-family:var(--sans); font-size:11px; color:var(--text-dim); font-style:italic; line-height:1.4; margin-top:4px; }
            
/* ---- block 11 of 15, was at index.html line 2216 ---- */

            /* Journey list — one row per day, grouped by week */
            [data-subtab="interns"] .wk { margin:14px 0 6px; }
            [data-subtab="interns"] .wk__head { display:flex; align-items:baseline; gap:10px; padding:7px 10px; background:var(--raised); border-left:2px solid var(--amber-glow); }
            [data-subtab="interns"] .wk__num { font-family:var(--display); font-size:11px; font-weight:700; color:var(--amber); letter-spacing:0.14em; text-transform:uppercase; }
            [data-subtab="interns"] .wk__range { font-family:var(--mono); font-size:11px; color:var(--text-dim); }
            [data-subtab="interns"] .wk__phase { margin-left:auto; font-family:var(--mono); font-size:10px; color:var(--text-xs); letter-spacing:0.1em; text-transform:uppercase; }

            [data-subtab="interns"] .day { display:grid; grid-template-columns:54px 90px 1fr; gap:12px; padding:8px 10px; border-bottom:1px solid var(--border); align-items:start; }
            [data-subtab="interns"] .day.closed { opacity:0.35; }
            [data-subtab="interns"] .day.today { background:var(--amber-soft); border-left:2px solid var(--amber); padding-left:8px; }
            [data-subtab="interns"] .day.past { opacity:0.75; }

            [data-subtab="interns"] .day__date { font-family:var(--mono); line-height:1; }
            [data-subtab="interns"] .day__num { font-size:20px; font-weight:700; color:var(--text); }
            [data-subtab="interns"] .day__wd { font-size:10px; color:var(--text-xs); text-transform:uppercase; letter-spacing:0.1em; margin-top:3px; }
            [data-subtab="interns"] .day.today .day__num { color:var(--amber); }

            [data-subtab="interns"] .day__meta { display:flex; flex-direction:column; gap:4px; }
            [data-subtab="interns"] .day__tag { font-family:var(--mono); font-size:9px; padding:2px 6px; background:var(--amber-soft); color:var(--amber); text-transform:uppercase; letter-spacing:0.08em; font-weight:700; display:inline-block; width:fit-content; border-radius:2px; }
            [data-subtab="interns"] .day__tag.b { background:rgba(106,176,89,0.12); color:#6ab059; }
            [data-subtab="interns"] .day__tag.c { background:rgba(115,150,210,0.12); color:#7396d2; }
            [data-subtab="interns"] .day__tag.muted { background:var(--raised); color:var(--text-xs); border:1px solid var(--border); }
            [data-subtab="interns"] .day__status { font-family:var(--mono); font-size:10px; color:var(--text-dim); }
            [data-subtab="interns"] .day.today .day__status { color:var(--amber); font-weight:700; }

            [data-subtab="interns"] .day__activity { font-size:12px; color:var(--text); margin-bottom:5px; line-height:1.4; }
            [data-subtab="interns"] .day__activity.placeholder { color:var(--text-xs); font-style:italic; }
            /* Per-day conversation thread */
            [data-subtab="interns"] .day__thread { display:flex; flex-direction:column; gap:4px; margin:4px 0 6px; }
            [data-subtab="interns"] .msg { padding:5px 9px; border-left:2px solid var(--border); background:rgba(255,255,255,0.02); max-width:94%; }
            [data-subtab="interns"] .msg__head { display:flex; gap:8px; align-items:baseline; font-family:var(--mono); font-size:9px; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:2px; }
            [data-subtab="interns"] .msg__who { font-weight:700; }
            [data-subtab="interns"] .msg__time { color:var(--text-xs); }
            [data-subtab="interns"] .msg__text { font-size:12px; color:var(--text); line-height:1.4; white-space:pre-wrap; word-wrap:break-word; }
            [data-subtab="interns"] .msg--intern  { border-left-color:var(--amber); background:var(--amber-soft); }
            [data-subtab="interns"] .msg--intern  .msg__who { color:var(--amber); }
            [data-subtab="interns"] .msg--alessio { border-left-color:#5da0ff; background:rgba(93,160,255,0.08); align-self:flex-end; }
            [data-subtab="interns"] .msg--alessio .msg__who { color:#7ab3ff; }
            [data-subtab="interns"] .msg--reanna  { border-left-color:#7bcfa6; background:rgba(123,207,166,0.08); align-self:flex-end; }
            [data-subtab="interns"] .msg--reanna  .msg__who { color:#9be0bd; }

            [data-subtab="interns"] .day__reply { display:flex; gap:6px; margin-top:4px; align-items:flex-end; width:100%; }
            [data-subtab="interns"] .day__reply-input { flex:1 1 0%; width:100%; min-width:0; min-height:30px; max-height:300px; background:var(--bg); border:1px solid var(--border); color:var(--text); padding:6px 8px; font-family:var(--sans); font-size:11px; line-height:1.4; resize:vertical; box-sizing:border-box; }
            [data-subtab="interns"] .day__reply-input:focus { outline:none; border-color:var(--amber); }
            [data-subtab="interns"] .day__reply-send { background:var(--amber); color:#000; border:0; padding:7px 12px; font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; height:30px; }
            [data-subtab="interns"] .day__reply-send:hover { background:var(--text); }
            [data-subtab="interns"] .day__reply-send:disabled { background:var(--muted); cursor:wait; }

            [data-subtab="interns"] .id-strip { padding-bottom:var(--sp-12); border-bottom:1px solid var(--border); margin-bottom:var(--sp-8); }
            [data-subtab="interns"] .id-strip__top { display:flex; align-items:baseline; gap:10px; }
            [data-subtab="interns"] .id-strip__name { font-family:var(--display); font-size:18px; font-weight:700; letter-spacing:0.02em; color:var(--text); }
            [data-subtab="interns"] .id-strip__flag { font-size:16px; }
            [data-subtab="interns"] .id-strip__status { margin-left:auto; font-family:var(--mono); font-size:10px; color:var(--amber); text-transform:uppercase; letter-spacing:0.12em; }
            [data-subtab="interns"] .id-strip__sub { font-size:11px; color:var(--text-dim); margin-top:4px; letter-spacing:0.04em; }
            [data-subtab="interns"] .id-strip__link { display:inline-flex; align-items:center; gap:6px; margin-top:10px; padding:6px 12px; background:var(--amber-soft); color:var(--amber); border:1px solid var(--amber-glow); text-decoration:none; font-family:var(--mono); font-size:10px; letter-spacing:0.12em; text-transform:uppercase; font-weight:600; }
            [data-subtab="interns"] .id-strip__link:hover { background:var(--amber); color:#000; }
          
/* ---- block 12 of 15, was at index.html line 3464 ---- */

      [data-lane="dashboard"] .db-3col { display:grid; grid-template-columns:1.45fr 2.1fr 1.45fr; gap:var(--sp-10); align-items:stretch; position:relative; margin:var(--sp-12) var(--sp-16); }
      #lane-dashboard .db-3col { flex:0 0 auto; height:calc(100vh - 165px); min-height:420px; }
      [data-lane="dashboard"] .db-col { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:var(--sp-10); display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden; }
      [data-lane="dashboard"] .db-col__head { font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--amber); padding-bottom:8px; border-bottom:1px solid var(--border); margin-bottom:8px; flex-shrink:0; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
      [data-lane="dashboard"] .db-col__count { margin-left:auto; font-family:var(--mono); font-size:10px; color:var(--text-xs); letter-spacing:0.04em; text-transform:none; font-weight:400; }
      [data-lane="dashboard"] .db-col__body { flex:1 1 0%; min-height:0; overflow-y:auto; }
      @media (max-width:700px){
        [data-lane="dashboard"] .db-3col, #lane-dashboard .db-3col { grid-template-columns:1fr; height:auto; min-height:0; }
        [data-lane="dashboard"] .db-col { overflow:visible; }
        [data-lane="dashboard"] .db-col__body { overflow:visible; }
      }
      [data-lane="dashboard"] .db-row { display:flex; gap:8px; align-items:center; padding:7px 8px; border:1px solid transparent; border-radius:4px; cursor:pointer; font-size:12px; color:var(--text-dim); }
      [data-lane="dashboard"] .db-row:hover { background:var(--raised); }
      [data-lane="dashboard"] .db-row.on { background:var(--raised); border-color:var(--amber); color:var(--text); }
      [data-lane="dashboard"] .db-row__main { flex:1; min-width:0; }
      [data-lane="dashboard"] .db-row__name { font-size:12px; color:var(--text); }
      [data-lane="dashboard"] .db-row__sub { font-family:var(--mono); font-size:10px; color:var(--text-xs); margin-top:2px; }
      [data-lane="dashboard"] .db-row__val { font-family:var(--mono); font-size:11px; white-space:nowrap; text-align:right; }
      [data-lane="dashboard"] .db-row__kick { font-family:var(--display); font-size:9px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--amber); margin-bottom:2px; }
      [data-lane="dashboard"] .db-three .db-row__name { font-size:13px; }
      [data-lane="dashboard"] .db-act { display:inline-block; margin-top:10px; padding:6px 12px; border:1px solid var(--amber); border-radius:4px; background:transparent; color:var(--amber); font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; }
      [data-lane="dashboard"] .db-act:hover { background:var(--raised); }
      [data-lane="dashboard"] .db-big { font-family:var(--mono); font-size:26px; color:var(--amber); line-height:1.1; }
      [data-lane="dashboard"] .db-sub { font-family:var(--mono); font-size:10px; color:var(--text-xs); margin-top:3px; }
      [data-lane="dashboard"] .db-sec { font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-dim); margin:14px 0 6px; padding-top:10px; border-top:1px solid var(--border); display:flex; }
      [data-lane="dashboard"] .db-sec small { margin-left:auto; font-family:var(--mono); font-weight:400; text-transform:none; letter-spacing:0.04em; color:var(--text-xs); }
      [data-lane="dashboard"] .db-line { display:flex; justify-content:space-between; gap:10px; font-size:12px; color:var(--text-dim); padding:4px 0; border-bottom:1px solid var(--border); }
      [data-lane="dashboard"] .db-line:last-child { border-bottom:0; }
      [data-lane="dashboard"] .db-note { font-size:11px; color:var(--text-xs); line-height:1.5; margin-top:8px; }
      [data-lane="dashboard"] .db-empty { font-size:12px; color:var(--text-xs); line-height:1.6; padding:var(--sp-12); border:1px dashed var(--border); border-radius:4px; }
      [data-lane="dashboard"] .good { color:var(--green); }
      [data-lane="dashboard"] .bad  { color:var(--red); }
      [data-lane="dashboard"] .db-msg { padding:6px 9px; border:1px solid var(--border); border-radius:3px; background:var(--raised); margin-bottom:6px; }
      [data-lane="dashboard"] .db-msg__head { display:flex; gap:6px; align-items:baseline; font-family:var(--mono); font-size:9px; color:var(--text-xs); margin-bottom:3px; flex-wrap:wrap; }
      [data-lane="dashboard"] .db-msg__from { color:var(--amber); }
      [data-lane="dashboard"] .db-msg__when { margin-left:auto; }
      [data-lane="dashboard"] .db-msg__body { font-size:11.5px; color:var(--text-dim); line-height:1.5; white-space:pre-wrap; word-break:break-word; }
    
/* ---- block 13 of 15, was at index.html line 3812 ---- */

      /* Grid geometry copied from .scx-3col (Services ▸ Queue) so flipping between
         the two surfaces feels like one system. Registered in cc-col-resize.js
         SURFACES as cc.retail.cols — all three subtabs share one width memory,
         so the columns stay put as she moves between Till, Counter and Stock. */
      [data-lane="retail"] .rt-3col { display:grid; grid-template-columns:1.25fr 2.3fr 1.45fr; gap:var(--sp-10); align-items:stretch; position:relative; margin:var(--sp-12) var(--sp-16); }
      /* The subpane is a flex column and `.faces-tokens .cc-subpane.active > *` gives every
         child flex:1 1 0% — a 0% basis beats a plain height, which collapsed this grid to
         ~245px. Services hits the same wall and answers it with an ID-scoped override
         (#lane-services … > .sv3, line ~175); same answer here, same reason. */
      #lane-retail .cc-subpane.active > .rt-3col { flex:0 0 auto; height:calc(100vh - 205px); min-height:420px; }
      [data-lane="retail"] .rt-col { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:var(--sp-10); display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden; }
      [data-lane="retail"] .rt-col__head { font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--amber); padding-bottom:8px; border-bottom:1px solid var(--border); margin-bottom:8px; flex-shrink:0; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
      [data-lane="retail"] .rt-col__count { margin-left:auto; font-family:var(--mono); font-size:10px; color:var(--text-xs); letter-spacing:0.04em; text-transform:none; font-weight:400; }
      [data-lane="retail"] .rt-col__body { flex:1 1 0%; min-height:0; overflow-y:auto; }
      @media (max-width:700px){
        [data-lane="retail"] .rt-3col { grid-template-columns:1fr; height:auto; min-height:0; }
        [data-lane="retail"] .rt-col { overflow:visible; }
        [data-lane="retail"] .rt-col__body { overflow:visible; }
      }

      /* ── navigation rows ── */
      [data-lane="retail"] .rt-row { display:flex; gap:8px; align-items:center; padding:7px 8px; border:1px solid transparent; border-radius:4px; cursor:pointer; font-size:12px; color:var(--text-dim); }
      [data-lane="retail"] .rt-row:hover { background:var(--raised); }
      [data-lane="retail"] .rt-row.on { background:var(--raised); border-color:var(--amber); color:var(--text); }
      [data-lane="retail"] .rt-row__main { flex:1; min-width:0; }
      [data-lane="retail"] .rt-row__name { font-size:12px; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
      [data-lane="retail"] .rt-row__sub { font-family:var(--mono); font-size:10px; color:var(--text-xs); margin-top:2px; }
      [data-lane="retail"] .rt-row__val { font-family:var(--mono); font-size:11px; color:var(--amber); white-space:nowrap; }

      /* ── filter chips ── */
      [data-lane="retail"] .rt-chips { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:8px; flex-shrink:0; }
      [data-lane="retail"] .rt-chip { font-family:var(--display-tabs),sans-serif; font-size:10px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; padding:4px 9px; background:var(--raised); color:var(--text-dim); border:1px solid var(--border); border-radius:3px; cursor:pointer; }
      [data-lane="retail"] .rt-chip.on { background:var(--amber); color:#000; border-color:var(--amber); }
      [data-lane="retail"] .rt-tag { display:inline-block; font-family:var(--mono); font-size:9px; letter-spacing:0.06em; text-transform:uppercase; padding:1px 6px; border:1px solid var(--border); border-radius:3px; color:var(--text-xs); }
      [data-lane="retail"] .rt-tag.rush { border-color:var(--red); color:var(--red); }
      [data-lane="retail"] .rt-tag.ready { border-color:var(--green); color:var(--green); }
      [data-lane="retail"] .rt-good { color:var(--green); }
      [data-lane="retail"] .rt-bad  { color:var(--red); }
      [data-lane="retail"] .rt-bar { height:3px; background:var(--border); border-radius:2px; margin-top:4px; overflow:hidden; }
      [data-lane="retail"] .rt-bar i { display:block; height:100%; background:var(--amber); }

      /* ── information pane ── */
      [data-lane="retail"] .rt-big { font-family:var(--mono); font-size:26px; color:var(--amber); line-height:1.1; }
      [data-lane="retail"] .rt-sub { font-family:var(--mono); font-size:10px; color:var(--text-xs); margin-top:3px; }
      [data-lane="retail"] .rt-kv { display:grid; grid-template-columns:auto 1fr; gap:4px 14px; font-size:12px; margin-top:10px; }
      [data-lane="retail"] .rt-kv dt { font-family:var(--mono); font-size:10px; color:var(--text-xs); text-transform:uppercase; letter-spacing:0.06em; align-self:center; }
      [data-lane="retail"] .rt-kv dd { margin:0; color:var(--text-dim); }
      [data-lane="retail"] .rt-sec { font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-dim); margin:14px 0 6px; padding-top:10px; border-top:1px solid var(--border); }
      [data-lane="retail"] .rt-line { display:flex; justify-content:space-between; gap:10px; font-size:12px; color:var(--text-dim); padding:4px 0; border-bottom:1px solid var(--border); }
      [data-lane="retail"] .rt-line:last-child { border-bottom:0; }
      [data-lane="retail"] .rt-note { font-size:11px; color:var(--text-xs); line-height:1.5; margin-top:8px; }
      [data-lane="retail"] .rt-empty { font-size:12px; color:var(--text-xs); line-height:1.6; padding:var(--sp-12); border:1px dashed var(--border); border-radius:4px; }

      /* ── communication column (composer glued to the top, §2.7) ── */
      [data-lane="retail"] .rt-bus__compose { flex-shrink:0; display:flex; flex-direction:column; gap:6px; padding-bottom:8px; margin-bottom:8px; border-bottom:1px solid var(--border); }
      [data-lane="retail"] .rt-bus__to { display:flex; gap:6px; align-items:center; font-family:var(--mono); font-size:10px; color:var(--text-xs); }
      [data-lane="retail"] .rt-bus__to select { flex:1; min-width:0; background:var(--raised); color:var(--text); border:1px solid var(--border); border-radius:3px; padding:4px 6px; font-family:var(--mono); font-size:10px; }
      [data-lane="retail"] .rt-bus__text { width:100%; box-sizing:border-box; background:var(--raised); color:var(--text); border:1px solid var(--border); border-radius:4px; padding:6px 8px; font-family:var(--mono); font-size:11px; line-height:1.4; resize:vertical; min-height:44px; max-height:140px; }
      [data-lane="retail"] .rt-bus__send { align-self:flex-start; font-family:var(--display-tabs),sans-serif; font-size:10px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; padding:5px 12px; background:var(--raised); color:var(--text-dim); border:1px solid var(--border); border-radius:3px; cursor:pointer; }
      [data-lane="retail"] .rt-bus__send:hover { color:var(--amber); border-color:var(--amber); }
      [data-lane="retail"] .rt-bus__send:disabled { opacity:0.5; cursor:default; }
      [data-lane="retail"] .rt-bus__say { font-family:var(--mono); font-size:10px; min-height:12px; }
      [data-lane="retail"] .rt-msg { padding:6px 9px; border:1px solid var(--border); border-radius:3px; background:var(--raised); margin-bottom:6px; }
      [data-lane="retail"] .rt-msg__head { display:flex; gap:6px; align-items:baseline; font-family:var(--mono); font-size:9px; color:var(--text-xs); margin-bottom:3px; flex-wrap:wrap; }
      [data-lane="retail"] .rt-msg__from { color:var(--amber); }
      [data-lane="retail"] .rt-msg__when { margin-left:auto; }
      [data-lane="retail"] .rt-msg__body { font-size:11.5px; color:var(--text-dim); line-height:1.5; white-space:pre-wrap; word-break:break-word; }
    
/* ---- block 14 of 15, was at index.html line 3958 ---- */

      [data-lane="money"] .mny-3col { display:grid; grid-template-columns:1.1fr 2.5fr 1.25fr; gap:var(--sp-10); align-items:stretch; position:relative; margin:var(--sp-12) var(--sp-16); }
      #lane-money .mny-3col { flex:0 0 auto; height:calc(100vh - 165px); min-height:420px; }
      [data-lane="money"] .mny-col { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:var(--sp-10); display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden; }
      [data-lane="money"] .mny-col__head { font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--amber); padding-bottom:8px; border-bottom:1px solid var(--border); margin-bottom:8px; flex-shrink:0; }
      [data-lane="money"] .mny-col__body { flex:1 1 0%; overflow-y:auto; min-height:0; }
      [data-lane="money"] .mny-empty { color:var(--text-xs); font-size:12px; padding:var(--sp-10) 0; }
      /* LEFT — months as fold-out cards. The WHOLE header row folds, never just the
         caret: PR #301 shipped an 11px target and the open card could not be closed. */
      [data-lane="money"] .mny-card { border:1px solid var(--border); border-radius:5px; margin-bottom:6px; overflow:hidden; }
      [data-lane="money"] .mny-card.active { border-color:var(--amber); }
      [data-lane="money"] .mny-card-h { display:flex; align-items:center; gap:8px; padding:7px 9px; cursor:pointer; user-select:none; }
      [data-lane="money"] .mny-card-h:hover { background:var(--raised); }
      [data-lane="money"] .mny-card.active .mny-tri { color:var(--amber); }
      [data-lane="money"] .mny-tri { font-size:9px; color:var(--text-dim); width:10px; flex-shrink:0; }
      [data-lane="money"] .mny-mon { font-family:var(--display); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--text); flex:1; min-width:0; }
      [data-lane="money"] .mny-sum { font-family:var(--mono); font-size:10.5px; color:var(--text-dim); white-space:nowrap; }
      [data-lane="money"] .mny-card-b { padding:2px 9px 8px 27px; }
      [data-lane="money"] .mny-cat { display:flex; justify-content:space-between; gap:10px; font-size:11.5px; color:var(--text-dim); padding:2px 0; }
      /* CENTRE — the ledger. */
      [data-lane="money"] .mny-head h3 { font-family:var(--display); font-size:15px; letter-spacing:.08em; text-transform:uppercase; color:var(--text); margin:0 0 var(--sp-10); }
      [data-lane="money"] .mny-tiles { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-8); margin-bottom:var(--sp-12); }
      [data-lane="money"] .mny-tile { background:var(--raised); border:1px solid var(--border); border-radius:5px; padding:9px 10px; min-width:0; }
      [data-lane="money"] .mny-k { font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-xs); margin-bottom:3px; }
      [data-lane="money"] .mny-v { font-family:var(--mono); font-size:15px; color:var(--text); }
      [data-lane="money"] .mny-note { font-size:11px; color:var(--text-dim); margin-bottom:var(--sp-10); }
      [data-lane="money"] .mny-tbl { width:100%; border-collapse:collapse; font-size:11.5px; }
      [data-lane="money"] .mny-tbl th { text-align:left; font-family:var(--display); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-xs); border-bottom:1px solid var(--border); padding:4px 6px; position:sticky; top:0; background:var(--surface); }
      [data-lane="money"] .mny-tbl td { padding:4px 6px; border-bottom:1px solid var(--border); color:var(--text-dim); vertical-align:top; }
      [data-lane="money"] .mny-tbl .r { text-align:right; font-family:var(--mono); white-space:nowrap; color:var(--text); }
      [data-lane="money"] .mny-rec { font-size:9px; color:var(--amber); border:1px solid var(--amber-dim); border-radius:3px; padding:0 3px; }
      [data-lane="money"] .mny-src { font-size:10.5px; color:var(--text-xs); margin-top:var(--sp-10); }
      /* Nothing syncs the workbook into az_money_out yet - checked 2026-08-23, zero cron
         jobs touch money. A money tab that freezes quietly is worse than none, so the
         source line goes amber once the load is a week old and says so in words. */
      [data-lane="money"] .mny-src.stale { color:var(--amber); }
      /* Narrow: one column, the page scrolls, mirroring .in-3col. */
      @media (max-width:700px) {
        [data-lane="money"] .mny-3col { grid-template-columns:1fr; margin:var(--sp-10); }
        #lane-money .mny-3col { height:auto; min-height:0; }
        [data-lane="money"] .mny-col { max-height:none; overflow:visible; }
        [data-lane="money"] .mny-col__body { overflow-y:visible; }
        [data-lane="money"] .mny-tiles { grid-template-columns:1fr; }
      }
    
/* ---- block 15 of 15, was at index.html line 4469 ---- */

      #acct-modal .acct-btn{padding:11px 14px;border:1px solid var(--line,#444);border-radius:8px;background:var(--panel-2,#1d1d1d);color:inherit;font-size:13px;cursor:pointer}
      #acct-modal .acct-btn:hover{border-color:var(--red-hot,#e14545)}
      #acct-modal .acct-btn.warn{border-color:var(--red,#8a1f1f)}
      #acct-modal input{font-family:inherit}
    

/* ---- appended after the 15 blocks, per the header note at the top of this file ---- */

      /* Dashboard, the parked drawer. A card is working, parked with a reason, or done.
         "Open tasks" counts the working ones only; the quiet line underneath says how
         many stopped and opens them in place. The reason under each parked title is set
         at prose size, the same type as .db-msg__body, because it is a sentence he has
         to read, not metadata he scans. */
      [data-lane="dashboard"] .db-park-line .db-row__name { color:var(--text-dim); }
      [data-lane="dashboard"] .db-park { align-items:flex-start; }
      [data-lane="dashboard"] .db-park__why { font-size:11.5px; color:var(--text-dim); line-height:1.5; margin-top:3px; }
