/* ===========================================================================
   Hummingbird Briefing Room — shell + registers
   Tokens are canonical, taken verbatim from brand_foundation.html.
   The Hummingbird shell is the spine; Hummingbird OS and Systems Drag Index are
   registers the shell switches into per-page via [data-brand].
   =========================================================================== */

/* ---- self-hosted faces (auth-gated site: NOT Google Fonts CDN) ----------- */
@font-face{
  font-family:'Archivo Narrow';src:url('/fonts/ArchivoNarrow-Regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Archivo Narrow';src:url('/fonts/ArchivoNarrow-Medium.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Archivo Narrow';src:url('/fonts/ArchivoNarrow-SemiBold.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Inter';src:url('/fonts/Inter-Regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Inter';src:url('/fonts/Inter-Medium.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Inter';src:url('/fonts/Inter-SemiBold.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'IBM Plex Mono';src:url('/fonts/IBMPlexMono-Regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'IBM Plex Mono';src:url('/fonts/IBMPlexMono-Medium.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
}

:root{
  /* Hummingbird shell — parent palette, deliberately small */
  --h-black:#000000;
  --h-carbon:#0A0A0A;
  --h-carbon-soft:#101010;
  --h-line:#1C1C1C;
  --h-line-soft:#141414;
  --h-green:#7FE89C;
  --h-green-deep:#3D9970;
  --h-green-print:#1F7A4D;
  --h-ink:#f4efe6;
  --h-ink-dim:#B9B3A9;
  --h-ink-faint:#7D776E;

  /* Hummingbird OS / product register */
  --p-paper-dark:#0b1f2a;
  --p-paper-deep:#07151c;
  --p-bone:#1a2f3b;
  --p-bone-soft:#243d4a;
  --p-ink:#f4efe6;
  --p-ink-dim:#b4c2cc;
  --p-ink-faint:#5a7a8a;
  --p-signal-teal:#3db8b2;
  --p-alert-ember:#f08b3a;
  --p-severe-ember:#DC6622;
  --p-info-blue:#60a5fa;

  /* Systems Drag Index register — SDI Brand Guidelines v01 */
  --sdi-paper:#0C1E2A;
  --sdi-bone:#1C2D3D;
  --sdi-ink:#F5EEE6;
  --sdi-graphite:#E4DED2;
  --sdi-signal:#3EB9B4;
  --sdi-alert:#F28C3A;
  --sev-low:#3EB9B4;
  --sev-mod:#C8B17B;     /* Neutral Gold — deliberately not amber */
  --sev-high:#F28C3A;
  --sev-severe:#DD6622;

  /* Flight Deck status band — FD-097.
     One status vocabulary across every internal surface: missions, relationships,
     anything else that carries state. These are aliases, not new colours — the
     band adds no hex the system did not already hold.
     Ember is shared with the severity ramp on purpose. The ramp means escalating
     pressure; High drag and needs-attention are two instances of that one meaning,
     not two meanings on one colour. Read FD-097 before reassigning any of these.
     Colour is never the only carrier of state — the written status stays. */
  --st-attention:var(--sev-high);      /* wants you now */
  --st-active:var(--h-green-deep);     /* moving, no demand */
  --st-waiting:var(--p-info-blue);     /* blocked on someone else */
  --st-scoping:var(--h-ink-dim);       /* in formation */
  --st-parked:var(--h-ink-faint);      /* deliberately stopped */

  /* Flight Deck instrument register — FD-099.
     The fourth register. Internal operating surfaces only: the Deck, the four
     areas, the shell. The parent brand is untouched — Hummingbird Green is still
     the bird and still leads every company-facing surface. It simply stops being
     an interface colour, because a colour used 47 times a page stops meaning
     anything. On the Deck it appears once: the mark. */
  --fd-graphite:#0F1418;   /* the hull */
  --fd-slate:#161D23;      /* a room's floor */
  --fd-well:#1B242B;       /* recessed wells, where data sits */
  --fd-stone:#E3E0D8;      /* primary text — warm, on cool ground */
  --fd-steel:#6E96B4;      /* instrument accent, interactive */
  --fd-sage:#7E9B86;       /* nominal, running */
  --fd-amber:#C89B5E;      /* demand. rare by design */
  --fd-ink-2:#8C959E;
  --fd-ink-3:#5B646C;
  --fd-line:#232C34;

  /* type scale — FD-100. Six steps, and there is no seventh.
     Replaced 23 sizes, 109 of which sat inside a six-pixel band and so read as
     variation rather than hierarchy. */
  --t-micro:10.5px;   /* placards, tiny labels */
  --t-meta:12.5px;    /* mono metadata, eyebrows */
  --t-body:15px;      /* interface prose */
  --t-lead:19px;      /* leads, subheads */
  --t-name:25px;      /* item names, mission titles */
  --t-hero:40px;      /* page hero */

  /* radii — FD-100. Three, down from fourteen. */
  --r-tight:3px;      /* controls, chips, small marks */
  --r-room:8px;       /* containers */
  --r-pill:999px;


  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --display:'Archivo Narrow',system-ui,sans-serif;
  --body:'Inter',system-ui,sans-serif;

  /* shell defaults — the Flight Deck instrument register. FD-099.
     Was black + Hummingbird Green. Green is retained as a token and still draws
     the mark; it is no longer bound to --accent. */
  --bg:var(--fd-graphite);
  --fg:var(--fd-stone);
  --accent:var(--fd-steel);
  --accent-deep:var(--fd-sage);
  --dim:var(--fd-ink-2);
  --faint:var(--fd-ink-3);
  --hair:var(--fd-line);
  --surface:var(--fd-slate);
  --surface-raised:var(--fd-well);
}

/* ---- register switches: the brand field selects canvas + voice ----------- */
/* Green is shell-only. It never appears on a product surface. */

[data-brand="hummingbird-os"]{
  --bg:var(--p-paper-dark);
  --fg:var(--p-ink);
  --accent:var(--p-signal-teal);
  --accent-deep:var(--p-signal-teal);
  --dim:var(--p-ink-dim);
  --faint:var(--p-ink-faint);
  --hair:rgba(244,239,230,0.12);
  --surface:var(--p-bone);
  --surface-raised:var(--p-bone-soft);
}

[data-brand="systems-drag-index"]{
  --bg:var(--sdi-paper);
  --fg:var(--sdi-ink);
  --accent:var(--sdi-signal);
  --accent-deep:var(--sdi-signal);
  --dim:#b4c2cc;
  --faint:#5a7a8a;
  --hair:rgba(245,238,230,0.12);
  --surface:var(--sdi-bone);
  --surface-raised:#243648;
}

/* Life — the personal register. Warm rose, off the clock. Same dark base as the
   Room so it stays coherent, but a distinct accent so landing here feels different. */
[data-brand="life"]{
  --life-plum:#1a0f16;
  --life-rose:#e88aa8;
  --life-rose-deep:#c25d7e;
  --bg:#140d12;
  --fg:#f4eaed;
  --accent:#e88aa8;
  --accent-deep:#c25d7e;
  --dim:#d3bcc5;
  --faint:#9a7d88;
  --hair:rgba(244,234,237,0.13);
  --surface:#1c1219;
  --surface-raised:#251820;
}

/* ===========================================================================
   base
   =========================================================================== */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--body);font-weight:400;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  transition:background .3s ease;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px}
a{color:inherit}

/* ===========================================================================
   shell nav — the spine, always Hummingbird, regardless of page register
   =========================================================================== */
header.nav{
  border-bottom:1px solid rgba(244,239,230,0.14);position:sticky;top:0;z-index:20;
  background:rgba(0,0,0,0.82);backdrop-filter:blur(8px);
}
.nav-row{display:flex;align-items:center;gap:18px;height:64px}
.brandmark{display:flex;align-items:center;gap:12px;text-decoration:none}
.brandmark .bird{height:30px;width:auto;display:block}
.brandmark .wm{
  font-family:var(--display);font-weight:600;font-size:var(--t-name);
  letter-spacing:-0.005em;color:var(--h-ink);
}
.nav-links{display:flex;gap:20px;margin-left:14px}
.nav-links a{
  font-family:var(--body);font-size:var(--t-meta);letter-spacing:0.04em;
  text-transform:uppercase;color:var(--p-ink-faint);text-decoration:none;
  transition:color .15s ease;
}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--h-ink)}
.nav-meta{margin-left:auto;font-family:var(--mono);font-size:var(--t-meta);
  letter-spacing:0.08em;text-transform:uppercase;color:var(--p-ink-faint)}

/* ===========================================================================
   page header
   =========================================================================== */
.page-head{padding:64px 0 40px;border-bottom:1px solid var(--hair)}
.eyebrow{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:0.16em;
  text-transform:uppercase;color:var(--accent-deep);margin:0 0 18px}
h1.title{
  font-family:var(--display);font-weight:600;font-size:clamp(28px,5vw,40px);
  line-height:1.04;letter-spacing:-0.01em;margin:0 0 18px;color:var(--fg)}
.lede{font-size:var(--t-lead);color:var(--dim);max-width:62ch;margin:0}
.lede strong{color:var(--fg);font-weight:600}

/* status / role chips */
.meta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.chip{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.08em;
  text-transform:uppercase;padding:4px 10px;border-radius:var(--r-pill);
  border:1px solid var(--hair);color:var(--faint)}
.chip.status{border-color:var(--accent);color:var(--accent)}

/* ===========================================================================
   component blocks
   =========================================================================== */
.blocks{padding:48px 0}
.block{margin:0 0 36px}

/* prose */
.block-prose{font-size:var(--t-lead);color:var(--dim);max-width:68ch;line-height:1.65}
.block-prose p{margin:0 0 16px}
.block-prose strong{color:var(--fg);font-weight:600}
.block-prose h3{font-family:var(--display);font-weight:600;font-size:var(--t-lead);
  color:var(--fg);margin:28px 0 12px;letter-spacing:-0.005em}

/* keyline — a locked phrase set large */
.block-keyline{font-family:var(--display);font-weight:600;
  font-size:clamp(21px,3vw,25px);line-height:1.15;letter-spacing:-0.01em;
  color:var(--fg);max-width:22ch;padding-left:18px;
  border-left:2px solid var(--accent)}

/* metric */
.block-metric{display:flex;align-items:baseline;gap:16px}
.metric-fig{font-family:var(--display);font-weight:600;font-size:var(--t-hero);
  line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.metric-cap{font-size:var(--t-body);color:var(--dim);max-width:40ch}

/* register card — Hummingbird OS brief pattern / SDI score block */
.block-card{background:var(--surface);border:1px solid var(--hair);
  border-radius:var(--r-room);padding:18px 20px;max-width:460px}
.card-eyebrow{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.1em;
  text-transform:lowercase;color:var(--faint);margin:0 0 9px}
.card-heading{font-family:var(--body);font-weight:600;font-size:var(--t-lead);
  color:var(--fg);margin:0 0 7px}
.card-body{font-size:var(--t-body);color:var(--dim);margin:0 0 14px}
.card-body b{color:var(--fg);font-weight:600;font-variant-numeric:tabular-nums}
.card-action{font-size:var(--t-body);color:var(--accent);font-weight:500}

/* document reference — file with metadata, never pasted inline */
.block-doc{display:flex;align-items:center;gap:14px;background:var(--surface);
  border:1px solid var(--hair);border-radius:var(--r-room);padding:16px 18px;max-width:560px;
  text-decoration:none}
.doc-icon{width:34px;height:34px;border-radius:var(--r-tight);border:1px solid var(--hair);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-family:var(--mono);font-size:var(--t-meta);color:var(--accent)}
.doc-title{font-weight:600;font-size:var(--t-body);color:var(--fg);margin:0}
.doc-note{font-size:var(--t-meta);color:var(--faint);margin:3px 0 0}

/* divider */
.block-divider{display:flex;align-items:center;gap:14px;margin:8px 0}
.block-divider::after{content:"";flex:1;height:1px;background:var(--hair)}
.divider-eyebrow{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:0.1em;
  text-transform:uppercase;color:var(--faint)}

/* decision row — for the Decision Register */
.decision-row{display:grid;grid-template-columns:110px 1fr;gap:20px;
  padding:20px 0;border-top:1px solid var(--hair)}
.decision-date{font-family:var(--mono);font-size:var(--t-meta);color:var(--faint);
  letter-spacing:0.04em}
.decision-body .dd{font-family:var(--display);font-weight:600;font-size:var(--t-lead);
  color:var(--fg);margin:0 0 8px;letter-spacing:-0.005em}
.decision-body .dr{font-size:var(--t-body);color:var(--dim);margin:0 0 8px;line-height:1.5}
.decision-body .do{font-size:var(--t-body);color:var(--dim);margin:0;line-height:1.5}
.decision-body .do-label,.decision-body .dr-label{font-family:var(--mono);
  font-size:var(--t-micro);letter-spacing:0.1em;text-transform:uppercase;
  color:var(--accent);margin-right:8px}

/* ===========================================================================
   section index (landing)
   =========================================================================== */
.sec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:var(--r-room);
  overflow:hidden;margin:40px 0}
.sec-tile{background:var(--surface);padding:24px 22px;text-decoration:none;
  display:block;transition:background .15s ease}
.sec-tile:hover{background:var(--surface-raised)}
.sec-tile .st-num{font-family:var(--mono);font-size:var(--t-meta);color:var(--faint);
  letter-spacing:0.1em;margin:0 0 12px}
.sec-tile .st-name{font-family:var(--display);font-weight:600;font-size:var(--t-name);
  color:var(--fg);margin:0 0 8px;letter-spacing:-0.005em}
.sec-tile .st-desc{font-size:var(--t-body);color:var(--dim);margin:0;line-height:1.45}

/* ===========================================================================
   footer
   =========================================================================== */
footer.foot{border-top:1px solid var(--hair);padding:32px 0;margin-top:40px}
.foot-row{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--body);
  font-size:var(--t-meta);letter-spacing:0.04em;color:var(--faint)}
.foot-row .dot{opacity:.5}

@media (max-width:640px){
  .nav-links{display:none}
  .decision-row{grid-template-columns:1fr;gap:6px}
}

/* ===========================================================================
   document library — organised by brand, minimal cards
   =========================================================================== */
.lib-group{margin:0 0 44px}
.lib-group-head{display:flex;align-items:baseline;gap:14px;margin:0 0 18px;
  padding-bottom:12px;border-bottom:1px solid var(--hair)}
.lib-group-name{font-family:var(--display);font-weight:600;font-size:var(--t-name);
  color:var(--fg);letter-spacing:-0.005em;margin:0}
.lib-group-tag{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:0.08em;
  text-transform:uppercase;color:var(--faint)}
.lib-group-count{margin-left:auto;font-family:var(--mono);font-size:var(--t-meta);
  color:var(--faint)}

/* a brand swatch dot before each group name */
.lib-dot{width:10px;height:10px;border-radius:var(--r-tight);display:inline-block;flex-shrink:0}
.lib-dot.hummingbird{background:var(--h-green)}
.lib-dot.hummingbird-os{background:var(--p-signal-teal)}
.lib-dot.systems-drag-index{background:var(--sdi-signal)}

.lib-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.lib-card{display:flex;align-items:center;gap:14px;background:var(--surface);
  border:1px solid var(--hair);border-radius:var(--r-room);padding:16px 18px;
  text-decoration:none;transition:background .15s ease,border-color .15s ease}
.lib-card:hover{background:var(--surface-raised);border-color:var(--faint)}
.lib-ico{width:36px;height:36px;border-radius:var(--r-room);border:1px solid var(--hair);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.04em;
  text-transform:uppercase;color:var(--accent)}
.lib-meta{min-width:0;flex:1}
.lib-title{font-weight:600;font-size:var(--t-body);color:var(--fg);margin:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-sub{display:flex;align-items:center;gap:8px;margin:4px 0 0}
.lib-ver{font-family:var(--mono);font-size:var(--t-meta);color:var(--faint);letter-spacing:0.04em}
.lib-state{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.08em;
  text-transform:uppercase;padding:2px 7px;border-radius:var(--r-pill)}
.lib-state.current{color:var(--accent);border:1px solid var(--accent)}
.lib-state.archived{color:var(--faint);border:1px solid var(--hair)}

/* archive — collapsible, tucked under each brand's current docs */
.lib-archive{margin-top:14px}
.lib-archive summary{cursor:pointer;list-style:none;display:flex;align-items:center;
  gap:8px;font-family:var(--body);font-size:var(--t-meta);letter-spacing:0.08em;
  text-transform:uppercase;color:var(--faint);padding:8px 0}
.lib-archive summary::-webkit-details-marker{display:none}
.lib-archive summary::before{content:"▸";display:inline-block;transition:transform .15s ease}
.lib-archive[open] summary::before{transform:rotate(90deg)}
.lib-archive summary:hover{color:var(--fg)}
.lib-archive .lib-cards{margin-top:10px;opacity:.78}

/* library toolbar */
.lib-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 32px}
.lib-add{font-family:var(--body);font-size:var(--t-meta);letter-spacing:0.06em;
  text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);
  border-radius:var(--r-room);padding:8px 14px;text-decoration:none;transition:background .15s}
.lib-add:hover{background:rgba(127,232,156,0.08)}
.lib-note{font-size:var(--t-body);color:var(--faint)}

/* library — category index additions */
.lib-num{font-family:var(--mono);font-size:var(--t-meta);color:var(--faint);letter-spacing:0.1em}
.lib-empty{font-size:var(--t-body);color:var(--faint);margin:12px 0 0;font-style:normal}
.lib-lock{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.08em;
  text-transform:uppercase;color:var(--p-alert-ember);border:1px solid var(--p-alert-ember);
  border-radius:var(--r-pill);padding:2px 8px}
.lib-card[data-ext] .lib-ico{color:var(--accent);font-size:var(--t-body)}

/* ===========================================================================
   home — Present group (briefings + demos front and centre)
   =========================================================================== */
.home-group-label{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:0.12em;
  text-transform:uppercase;color:var(--faint);margin:36px 0 14px}
.home-group-label:first-of-type{margin-top:28px}

.present-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;margin:0 0 8px}
.present-tile{background:linear-gradient(160deg,#0a1410,#070707);
  border:1px solid var(--hair);border-radius:var(--r-room);padding:22px 22px 18px;
  text-decoration:none;display:flex;flex-direction:column;gap:7px;
  transition:border-color .15s ease,transform .15s ease}
.present-tile:hover{border-color:var(--h-green);transform:translateY(-2px)}
.present-kind{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.1em;
  text-transform:uppercase;color:var(--h-green-deep)}
.present-name{font-family:var(--display);font-weight:600;font-size:var(--t-name);
  color:var(--h-ink);letter-spacing:-0.005em}
.present-desc{font-size:var(--t-body);color:var(--p-ink-dim);line-height:1.45;flex:1}
.present-go{font-family:var(--body);font-size:var(--t-meta);letter-spacing:0.04em;
  color:var(--h-green);margin-top:6px}

/* ===========================================================================
   daily cockpit — the landing page as the thing you work out of each day
   Static first: launcher is links, tasks/agenda are placeholders until
   Google/Microsoft sync is wired (real engineering, flagged for later).
   Hummingbird shell throughout — green is the parent surface, allowed here.
   =========================================================================== */

/* greeting band — date as sentence, per Hummingbird OS voice ("Monday, 16 June.") */
.cockpit-head{padding:52px 0 30px;border-bottom:1px solid var(--hair)}
.cockpit-date{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:0.12em;
  text-transform:uppercase;color:var(--accent-deep);margin:0 0 14px}
.cockpit-greet{font-family:var(--display);font-weight:600;
  font-size:clamp(25px,4vw,40px);line-height:1.06;letter-spacing:-0.01em;
  color:var(--fg);margin:0 0 12px}
.cockpit-greet .who{color:var(--accent)}
.cockpit-sub{font-size:var(--t-body);color:var(--dim);max-width:60ch;margin:0}

/* the cockpit grid — agenda + tasks side by side, launcher full width below */
.cockpit{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:34px 0 8px}
@media (max-width:760px){.cockpit{grid-template-columns:1fr}}

.cockpit-panel{background:var(--surface);border:1px solid var(--hair);
  border-radius:var(--r-room);padding:22px 22px 20px;display:flex;flex-direction:column}
.cp-head{display:flex;align-items:baseline;gap:10px;margin:0 0 16px}
.cp-eyebrow{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.1em;
  text-transform:lowercase;color:var(--faint);margin:0}
.cp-count{margin-left:auto;font-family:var(--mono);font-size:var(--t-meta);
  color:var(--faint);font-variant-numeric:tabular-nums}

/* agenda rows — time + what */
.agenda-row{display:grid;grid-template-columns:64px 1fr;gap:14px;
  padding:11px 0;border-top:1px solid var(--hair)}
.agenda-row:first-of-type{border-top:none}
.agenda-time{font-family:var(--mono);font-size:var(--t-meta);color:var(--accent);
  letter-spacing:0.02em;font-variant-numeric:tabular-nums}
.agenda-what{font-size:var(--t-body);color:var(--fg);line-height:1.4}
.agenda-what .ag-note{display:block;font-size:var(--t-meta);color:var(--faint);
  margin-top:2px}

/* task rows — checkbox-style marker + label, lightweight */
.task-row{display:flex;align-items:flex-start;gap:12px;padding:10px 0;
  border-top:1px solid var(--hair)}
.task-row:first-of-type{border-top:none}
.task-mark{width:15px;height:15px;border:1.5px solid var(--faint);
  border-radius:var(--r-tight);flex-shrink:0;margin-top:2px}
.task-row.done .task-mark{background:var(--accent);border-color:var(--accent);
  position:relative}
.task-row.done .task-mark::after{content:"";position:absolute;left:4px;top:1px;
  width:4px;height:8px;border:solid var(--h-black);border-width:0 1.5px 1.5px 0;
  transform:rotate(45deg)}
.task-label{font-size:var(--t-body);color:var(--fg);line-height:1.4}
.task-label code{font-family:var(--mono);font-size:var(--t-meta);color:var(--accent);
  background:rgba(127,232,156,0.08);padding:1px 5px;border-radius:var(--r-tight)}
.task-row.done .task-label{color:var(--faint);text-decoration:line-through;
  text-decoration-color:var(--hair)}
.task-tag{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.08em;
  text-transform:uppercase;color:var(--faint);margin-left:8px;
  border:1px solid var(--hair);border-radius:var(--r-pill);padding:1px 7px;
  vertical-align:middle}

/* empty / not-yet-wired state inside a panel */
.cp-stub{margin-top:auto;padding-top:14px;font-size:var(--t-meta);color:var(--faint);
  font-family:var(--body);letter-spacing:0.02em}

/* the launcher — all your platforms behind the one secure login */
.launcher-wrap{margin:26px 0 8px}
.launcher-grid{display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px}
.launch-tile{display:flex;align-items:center;gap:12px;background:var(--surface);
  border:1px solid var(--hair);border-radius:var(--r-room);padding:14px 15px;
  text-decoration:none;transition:background .15s ease,border-color .15s ease,
  transform .15s ease}
.launch-tile:hover{background:var(--surface-raised);border-color:var(--accent);
  transform:translateY(-1px)}
.launch-ico{width:32px;height:32px;border-radius:var(--r-room);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:var(--t-meta);font-weight:500;
  color:var(--h-black);background:var(--accent);letter-spacing:-0.02em}
.launch-meta{min-width:0}
.launch-name{font-weight:600;font-size:var(--t-body);color:var(--fg);margin:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.launch-kind{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.04em;
  color:var(--faint);margin:2px 0 0}
/* internal launch tiles read as Room-native, not external platforms */
.launch-tile.internal .launch-ico{background:transparent;color:var(--accent);
  border:1px solid var(--accent)}

/* ===========================================================================
   Contacts (CRM) + Financials — working surfaces inside the Hummingbird shell
   No new palette: shell green for positive/affordance, Alert Ember for money
   out (brand has no red). Tabular figures on all numbers.
   =========================================================================== */

/* shared phase-notice banner */
.crm-notice{display:flex;gap:12px;align-items:baseline;background:var(--surface);
  border:1px solid var(--hair);border-left:2px solid var(--accent);border-radius:var(--r-room);
  padding:13px 16px;margin:24px 0 0;font-size:var(--t-body);color:var(--dim);line-height:1.5}
.crm-notice strong{color:var(--fg);font-weight:600}
.crm-notice-key{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.1em;
  text-transform:uppercase;color:var(--accent-deep);flex-shrink:0}

/* ---- CRM toolbar --------------------------------------------------------- */
.crm-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:26px 0 6px}
.crm-search{flex:1;min-width:200px;background:var(--surface);color:var(--fg);
  border:1px solid var(--hair);border-radius:var(--r-room);padding:10px 14px;font-family:var(--body);
  font-size:var(--t-body)}
.crm-search:focus{outline:none;border-color:var(--accent)}
.crm-filter,.crm-form select{background:var(--surface);color:var(--fg);
  border:1px solid var(--hair);border-radius:var(--r-room);padding:10px 12px;font-family:var(--body);
  font-size:var(--t-body)}
.crm-filter:focus{outline:none;border-color:var(--accent)}
.crm-add{font-family:var(--body);font-size:var(--t-meta);letter-spacing:0.04em;color:var(--h-black);
  background:var(--accent);border:none;border-radius:var(--r-room);padding:11px 16px;cursor:pointer;
  font-weight:500;transition:opacity .15s ease}
.crm-add:hover{opacity:.88}
.crm-count{font-family:var(--mono);font-size:var(--t-meta);color:var(--faint);letter-spacing:0.04em;
  margin:14px 0 0}

/* ---- CRM grid ------------------------------------------------------------ */
.crm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:12px;margin:16px 0 8px}
.crm-card{text-align:left;background:var(--surface);border:1px solid var(--hair);
  border-radius:var(--r-room);padding:18px;cursor:pointer;display:flex;flex-direction:column;
  gap:7px;font-family:var(--body);transition:background .15s ease,border-color .15s ease,
  transform .15s ease;border-left:2px solid var(--hair)}
.crm-card:hover{background:var(--surface-raised);border-color:var(--faint);transform:translateY(-1px)}
/* status band — FD-097. Was --accent (which also means interactive) and
   --p-alert-ember (reserved for money-out figures). Both borrowed; both corrected. */
.crm-card[data-status="active"]{border-left-color:var(--st-active)}
.crm-card[data-status="warm"]{border-left-color:var(--st-attention)}
.crm-card[data-status="dormant"]{border-left-color:var(--st-parked)}
.crm-card[data-status="closed"]{border-left-color:var(--hair);opacity:.7}
.crm-card-top{display:flex;align-items:center;justify-content:space-between}
.crm-avatar{width:34px;height:34px;border-radius:var(--r-room);background:var(--surface-raised);
  border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:var(--t-meta);color:var(--accent);font-weight:500}
.crm-rel{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.08em;text-transform:uppercase;
  color:var(--faint);border:1px solid var(--hair);border-radius:var(--r-pill);padding:2px 8px}
.crm-name{font-family:var(--display);font-weight:600;font-size:var(--t-lead);color:var(--fg);
  letter-spacing:-0.005em}
.crm-company{font-size:var(--t-body);color:var(--dim)}
.crm-line{font-family:var(--body);font-size:var(--t-meta);color:var(--faint);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.crm-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}
.crm-tag{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.04em;color:var(--dim);
  background:var(--surface-raised);border-radius:var(--r-pill);padding:2px 8px}

/* ---- CRM empty state ----------------------------------------------------- */
.crm-empty{text-align:center;padding:60px 20px;border:1px dashed var(--hair);
  border-radius:var(--r-room);margin:18px 0}
.crm-empty-head{font-family:var(--display);font-weight:600;font-size:var(--t-lead);color:var(--fg);margin:0 0 6px}
.crm-empty-sub{font-size:var(--t-body);color:var(--dim);margin:0 0 18px}

/* ---- CRM drawer ---------------------------------------------------------- */
.crm-drawer-scrim{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:30;
  opacity:0;transition:opacity .22s ease}
.crm-drawer-scrim.show{opacity:1}
.crm-drawer{position:fixed;top:0;right:0;height:100%;width:min(440px,92vw);
  background:var(--surface);border-left:1px solid var(--hair);z-index:31;
  transform:translateX(100%);transition:transform .22s ease;overflow-y:auto;
  display:flex;flex-direction:column}
.crm-drawer.show{transform:translateX(0)}
.crm-drawer-head{display:flex;align-items:center;justify-content:space-between;
  padding:22px 24px;border-bottom:1px solid var(--hair);position:sticky;top:0;
  background:var(--surface)}
.crm-drawer-title{font-family:var(--display);font-weight:600;font-size:var(--t-lead);color:var(--fg);margin:0}
.crm-drawer-close{background:none;border:none;color:var(--faint);font-size:var(--t-name);
  line-height:1;cursor:pointer;padding:0 4px}
.crm-drawer-close:hover{color:var(--fg)}
.crm-form{padding:22px 24px;display:flex;flex-direction:column;gap:15px}
.crm-paste{display:flex;flex-direction:column;gap:9px;padding:14px;border:1px solid var(--hair);
  border-left:2px solid var(--accent);border-radius:var(--r-room);background:var(--surface)}
.crm-paste-head{display:flex;flex-direction:column;gap:2px}
.crm-paste-label{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.08em;
  text-transform:uppercase;color:var(--accent-deep)}
.crm-paste-hint{font-size:var(--t-meta);color:var(--faint)}
.crm-paste textarea{background:var(--bg);color:var(--fg);border:1px solid var(--hair);
  border-radius:var(--r-room);padding:10px 12px;font-family:var(--body);font-size:var(--t-body);width:100%;
  resize:vertical;line-height:1.5}
.crm-paste textarea:focus{outline:none;border-color:var(--accent)}
.crm-paste-actions{display:flex;gap:10px;align-items:center}
.crm-paste-btn{background:transparent;color:var(--accent);border:1px solid var(--accent);
  border-radius:var(--r-room);padding:8px 14px;cursor:pointer;font-family:var(--body);font-size:var(--t-body);
  font-weight:500;white-space:nowrap}
.crm-paste-btn:hover{background:var(--accent);color:var(--bg)}
.crm-paste-msg{font-size:var(--t-meta);color:var(--faint);line-height:1.4}
.crm-field{display:flex;flex-direction:column;gap:6px}
.crm-field>span{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.08em;
  text-transform:uppercase;color:var(--faint)}
.crm-field input,.crm-field textarea,.crm-field select{background:var(--bg);color:var(--fg);
  border:1px solid var(--hair);border-radius:var(--r-room);padding:10px 12px;font-family:var(--body);
  font-size:var(--t-body);width:100%}
.crm-field input:focus,.crm-field textarea:focus,.crm-field select:focus{outline:none;
  border-color:var(--accent)}
.crm-field input.err{border-color:var(--p-alert-ember)}
.crm-field textarea{resize:vertical;line-height:1.5}
.crm-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.crm-drawer-actions{display:flex;gap:10px;align-items:center;margin-top:6px}
.crm-save{flex:1;font-family:var(--body);font-size:var(--t-meta);letter-spacing:0.04em;
  color:var(--h-black);background:var(--accent);border:none;border-radius:var(--r-room);
  padding:12px;cursor:pointer;font-weight:500}
.crm-save:hover{opacity:.88}
.crm-delete{font-family:var(--body);font-size:var(--t-meta);letter-spacing:0.04em;text-transform:uppercase;
  color:var(--p-alert-ember);background:none;border:1px solid var(--p-alert-ember);
  border-radius:var(--r-room);padding:12px 16px;cursor:pointer}
.crm-delete:hover{background:rgba(240,139,58,0.1)}

/* ===========================================================================
   Financials
   =========================================================================== */
.fin-drop{border:1px dashed var(--hair);border-radius:var(--r-room);margin:26px 0 0;
  background:var(--surface);transition:border-color .15s ease,background .15s ease}
.fin-drop.over{border-color:var(--accent);background:var(--surface-raised)}
.fin-drop-inner{padding:54px 24px;text-align:center}
.fin-drop-head{font-family:var(--display);font-weight:600;font-size:var(--t-name);color:var(--fg);margin:0 0 8px}
.fin-drop-sub{font-size:var(--t-body);color:var(--dim);max-width:44ch;margin:0 auto 18px;line-height:1.5}
.fin-drop-hint{font-family:var(--body);font-size:var(--t-meta);letter-spacing:0.04em;color:var(--faint);
  margin:16px 0 0}

/* mapper */
.fin-mapper{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-room);
  padding:24px;margin:26px 0 0}
.fin-mapper-head{font-family:var(--display);font-weight:600;font-size:var(--t-lead);color:var(--fg);margin:0 0 6px}
.fin-mapper-sub{font-size:var(--t-body);color:var(--dim);margin:0 0 18px;line-height:1.5}
.fin-mapper-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:14px;margin:0 0 14px}
.fin-mapper-or{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:0.04em;color:var(--faint);
  margin:8px 0 12px;text-transform:uppercase}

/* error */
.fin-error{background:var(--surface);border:1px solid var(--p-alert-ember);border-radius:var(--r-room);
  padding:22px 24px;margin:26px 0 0}
.fin-error-head{font-family:var(--display);font-weight:600;font-size:var(--t-lead);color:var(--fg);margin:0 0 6px}
.fin-error-sub{font-size:var(--t-body);color:var(--dim);margin:0 0 16px}

/* report */
.fin-report-bar{display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:12px;margin:28px 0 18px}
.fin-source{font-family:var(--body);font-size:var(--t-meta);color:var(--faint);letter-spacing:0.02em;margin:0}
.fin-reset{font-family:var(--body);font-size:var(--t-meta);letter-spacing:0.04em;text-transform:uppercase;
  color:var(--accent);background:none;border:1px solid var(--hair);border-radius:var(--r-room);
  padding:8px 14px;cursor:pointer}
.fin-reset:hover{border-color:var(--accent)}

.fin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 8px}
.fin-stat{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-room);padding:20px}
.fin-stat-val{font-family:var(--display);font-weight:600;font-size:clamp(19px,3vw,25px);
  color:var(--fg);margin:0 0 4px;letter-spacing:-0.01em;font-variant-numeric:tabular-nums}
.fin-stat.pos .fin-stat-val{color:var(--accent)}
.fin-stat.neg .fin-stat-val{color:var(--p-alert-ember)}
.fin-stat-label{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.08em;
  text-transform:uppercase;color:var(--faint);margin:0}

.fin-panel{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-room);
  padding:20px 22px;margin:16px 0 0}
.fin-chart{width:100%;margin-top:6px}
.fin-svg{width:100%;height:auto;display:block}
.fin-axis{font-family:var(--mono);font-size:var(--t-micro);fill:var(--faint)}

.fin-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:680px){.fin-cols{grid-template-columns:1fr}.crm-field-row{grid-template-columns:1fr}}
.fin-move{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding:11px 0;border-top:1px solid var(--hair)}
.fin-move:first-child{border-top:none}
.fin-move-desc{font-size:var(--t-body);color:var(--fg);min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.fin-move-meta{display:flex;align-items:baseline;gap:12px;flex-shrink:0}
.fin-move-date{font-family:var(--mono);font-size:var(--t-meta);color:var(--faint)}
.fin-move-amt{font-family:var(--display);font-weight:600;font-size:var(--t-body);
  font-variant-numeric:tabular-nums}
.fin-move-amt.pos{color:var(--accent)}
.fin-move-amt.neg{color:var(--p-alert-ember)}
.fin-move-empty{font-size:var(--t-body);color:var(--faint);margin:8px 0 0}

/* ===========================================================================
   Grouped nav — 8 folder-sections + Tools + Reference, divided
   Mirrors the OneDrive 1–8 spine; dividers separate story / tools / reference.
   =========================================================================== */
.nav-links{align-items:center}
.nav-div{width:1px;height:15px;background:var(--hair);margin:0 2px;flex-shrink:0;
  display:inline-block}
.nav-links a.tool{color:var(--p-ink-faint)}
.nav-links a.tool:hover,.nav-links a.tool[aria-current="page"]{color:var(--accent)}
/* nav scrolls horizontally rather than wrapping on tighter laptop widths */
@media (max-width:1180px){
  .nav-row{gap:12px}
  .nav-links{gap:14px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
    margin-left:8px;padding-bottom:1px}
  .nav-links::-webkit-scrollbar{display:none}
  .nav-links a{white-space:nowrap}
}

/* give the grouped nav room: drop the redundant meta label below full width */
@media (max-width:1240px){ .nav-meta{display:none} }

/* ===========================================================================
   Flight Deck — create action + decisions required
   =========================================================================== */
.deck-create{margin-top:16px;padding-top:14px;border-top:1px solid var(--hair)}
.deck-create-btn{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;
  border:1px solid var(--hair);border-radius:var(--r-room);background:var(--surface-raised);
  font-size:var(--t-body);color:var(--fg);text-decoration:none;
  transition:border-color .15s ease,background .15s ease}
.deck-create-btn:hover{border-color:var(--accent-deep);background:var(--surface)}
.deck-plus{font-family:var(--body);color:var(--accent);font-size:var(--t-body);line-height:1}


/* ===========================================================================
   Mission pipeline — operational commitments, ordered by expected completion
   =========================================================================== */
.pipe-lede{font-size:var(--t-body);color:var(--faint);margin:-14px 0 6px;max-width:60ch}
.pipe{border-top:1px solid var(--hair);margin:22px 0 44px}
.pipe-status{font-size:var(--t-body);color:var(--faint);padding:18px 0;margin:0}
.pipe-row{display:grid;grid-template-columns:124px minmax(0,1.1fr) minmax(0,1fr) auto;
  column-gap:26px;align-items:baseline;padding:20px 14px;margin:0 -14px;
  border-bottom:1px solid var(--hair);text-decoration:none;color:inherit;
  transition:background .16s ease,box-shadow .16s ease}
.pipe-row:hover{background:var(--surface);box-shadow:inset 2px 0 0 var(--accent)}
.pipe-when{font-family:var(--mono);font-size:var(--t-meta);letter-spacing:0.04em;
  color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap}
.pipe-undated .pipe-when{color:var(--faint);opacity:.6}
.pipe-name{font-family:var(--display);font-weight:600;font-size:var(--t-name);
  line-height:1.12;letter-spacing:-0.012em;color:var(--fg)}
.pipe-milestone{font-size:var(--t-body);color:var(--faint);line-height:1.45}
.pipe-state{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.14em;
  text-transform:lowercase;color:var(--faint);white-space:nowrap;justify-self:end}
.pipe-state.pipe-attention{color:var(--sev-high)}
.pipe-state.pipe-waiting{color:var(--sev-mod)}
@media (max-width:760px){
  .pipe-row{grid-template-columns:1fr;row-gap:6px}
  .pipe-state{justify-self:start}
}

/* ===========================================================================
   Global shell tools — clock + calendar, Create, command palette, profile
   Injected by /js/shell.js into .nav-row on every shell page.
   =========================================================================== */
.nav-tools{margin-left:auto;display:flex;align-items:center;gap:6px}
.nav-tools button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}

.nav-ask{display:flex;align-items:center;gap:12px;padding:7px 11px 7px 13px;
  border:1px solid var(--hair);border-radius:var(--r-tight);background:var(--h-carbon);
  font-size:var(--t-body);color:var(--faint);transition:border-color .15s ease,color .15s ease}
.nav-ask:hover{border-color:var(--accent-deep);color:var(--dim)}
.nav-kbd{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.04em;color:var(--faint);opacity:.8}

.nav-clock{display:flex;flex-direction:column;align-items:flex-end;gap:1px;
  padding:6px 11px;border:1px solid transparent;border-radius:var(--r-tight);
  transition:border-color .15s ease,background .15s ease}
.nav-clock:hover,.nav-clock[aria-expanded="true"]{border-color:var(--hair);background:var(--h-carbon)}
.nav-clock-d{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.08em;color:var(--faint)}
.nav-clock-t{font-family:var(--mono);font-size:var(--t-body);color:var(--dim);font-variant-numeric:tabular-nums}

.nav-create{display:flex;align-items:center;gap:7px;padding:8px 13px;
  border:1px solid var(--hair);border-radius:var(--r-tight);background:var(--h-carbon);font-size:var(--t-body);
  transition:border-color .15s ease}
.nav-create:hover,.nav-create[aria-expanded="true"]{border-color:var(--accent-deep)}
.nav-plus{font-family:var(--body);color:var(--accent);font-size:var(--t-body);line-height:1}

.nav-profile{padding:0;margin-left:2px}
.nav-av{display:flex;align-items:center;justify-content:center;width:29px;height:29px;
  border-radius:50%;border:1px solid var(--hair);background:var(--h-carbon);
  font-family:var(--mono);font-size:var(--t-micro);color:var(--accent)}
.nav-profile:hover .nav-av{border-color:var(--accent-deep)}

/* popovers */
.shell-pop{position:fixed;top:60px;right:24px;z-index:60;background:var(--h-carbon);
  border:1px solid var(--hair);border-radius:var(--r-room);padding:15px}
.shell-cal{width:288px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}
.cal-month{font-family:var(--display);font-weight:600;font-size:var(--t-body);color:var(--fg)}
.cal-nav{display:flex;gap:2px}
.cal-nav button{width:23px;height:23px;border-radius:var(--r-tight);color:var(--faint);line-height:1}
.cal-nav button:hover{background:var(--h-carbon-soft);color:var(--fg)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dow{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.1em;color:var(--faint);
  text-align:center;padding-bottom:5px}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:var(--t-meta);font-variant-numeric:tabular-nums;
  border-radius:var(--r-tight);color:var(--dim);border:1px solid transparent}
.cal-day.blank{visibility:hidden}
.cal-day:hover{background:var(--h-carbon-soft);color:var(--fg)}
.cal-day.today{color:var(--accent);border-color:var(--accent-deep)}
.cal-day.sel{background:var(--h-carbon-soft);color:var(--fg)}
.cal-agenda{margin-top:13px;padding-top:12px;border-top:1px solid var(--hair)}
.cal-sel{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.14em;color:var(--faint);margin:0 0 6px}
.cal-note{font-size:var(--t-meta);color:var(--faint);margin:0}
.cal-open{display:inline-block;margin-top:12px;font-size:var(--t-meta);color:var(--accent);text-decoration:none}

.shell-create{width:230px;padding:5px}
.shell-create button{display:flex;width:100%;align-items:center;justify-content:space-between;
  padding:8px 10px;border-radius:var(--r-tight);font-size:var(--t-body);color:var(--dim);text-align:left}
.shell-create button:hover{background:var(--h-carbon-soft);color:var(--fg)}
.shell-create button.lead{color:var(--fg)}
.shell-create hr{border:none;height:1px;background:var(--hair);margin:5px 8px}

/* command palette - a panel beside the calendar, not a page takeover */
.shell-palette{width:392px;padding:0;overflow:hidden;right:auto;
  left:clamp(16px, calc(100vw - 720px), 100vw)}
.palette-input{width:100%;background:transparent;border:none;outline:none;
  padding:15px 18px;font-family:var(--body);font-size:var(--t-body);color:var(--h-ink);
  border-bottom:1px solid var(--hair)}
.palette-input::placeholder{color:var(--faint)}
.palette-results{max-height:min(56vh,440px);overflow-y:auto;padding:6px}
.palette-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;
  padding:10px 12px;border-radius:var(--r-tight);text-decoration:none;color:inherit}
.palette-row.on{background:var(--h-carbon-soft)}
.palette-label{font-size:var(--t-body);color:var(--h-ink);line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.palette-kind{font-family:var(--mono);font-size:var(--t-micro);letter-spacing:0.12em;
  color:var(--faint);white-space:nowrap;justify-self:end}
.palette-sub{grid-column:1;font-size:var(--t-meta);color:var(--faint);margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.palette-empty{font-size:var(--t-body);color:var(--faint);padding:14px 12px;margin:0}


@media (max-width:900px){
  .nav-ask span:first-child,.nav-create-l{display:none}
  .nav-ask{padding:8px 11px}
  .shell-pop{right:12px;left:12px;width:auto}
}

/* ===========================================================================
   ROOMS — the Flight Deck compartment vocabulary. FD-099.
   A room is a tone step above the hull. The tone is the container; there is no
   card. One hairline under the placard, because that division is real: the
   placard is chrome, the body is content.
   Every placard carries a state lamp, so the whole surface reads in one
   vertical scan. A "no signal" lamp is a reading, not a gap — the honest empty
   state rendered as an instrument rather than as an apology.
   =========================================================================== */
.deck{display:grid;gap:22px}
.row-3{display:grid;gap:22px;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,0.92fr)}
@media (max-width:1080px){.row-3{grid-template-columns:1fr}}

.room{background:var(--surface);border-radius:var(--r-tight);
  display:flex;flex-direction:column;min-width:0}
.placard{display:flex;align-items:center;gap:11px;
  padding:16px 34px 15px;border-bottom:1px solid var(--hair);
  background:linear-gradient(180deg,rgba(255,255,255,0.018),transparent)}
.lamp{width:6px;height:6px;flex:none;border-radius:1px;background:var(--faint)}
.lamp[data-state="nominal"]{background:var(--fd-sage);box-shadow:0 0 0 3px rgba(126,155,134,0.12)}
.lamp[data-state="demand"]{background:var(--fd-amber);box-shadow:0 0 0 3px rgba(200,155,94,0.13)}
.lamp[data-state="none"]{background:transparent;border:1px solid var(--faint)}
.placard-name{font-family:var(--display);font-weight:600;font-size:var(--t-micro);
  letter-spacing:0.19em;text-transform:uppercase;color:var(--dim)}
.placard-r{margin-left:auto;font-family:var(--mono);font-size:var(--t-meta);
  color:var(--faint);font-variant-numeric:tabular-nums}
.placard-r a:hover{color:var(--accent)}
.room-body{padding:34px;flex:1}
.room-body.tight{padding:22px 34px 26px}
@media (max-width:620px){
  .placard{padding:14px 20px 13px}
  .room-body,.room-body.tight{padding:22px 20px 24px}
}

/* readings — the instrument line */
.reading{display:flex;align-items:baseline;gap:14px;padding:13px 0;
  border-bottom:1px solid var(--hair)}
.reading:last-of-type{border-bottom:none}
.reading-k{font-family:var(--mono);font-size:var(--t-meta);color:var(--faint);
  min-width:104px;flex:none}
.reading-v{font-size:var(--t-body);color:var(--fg)}
.reading-v.off{color:var(--faint);font-family:var(--mono);font-size:var(--t-meta)}
.reading-v.num{font-family:var(--mono);font-variant-numeric:tabular-nums;
  font-size:var(--t-lead);color:var(--fg)}
.room-note{margin:18px 0 0;padding-top:15px;border-top:1px solid var(--hair);
  font-family:var(--body);font-size:var(--t-meta);color:var(--faint);line-height:1.5}
.room-note:first-child{margin-top:0;padding-top:0;border-top:none}

/* --- capability coverage — FD-096. The pod/person/mission join, rendered.
   A pod carrying missions with nobody against it is the demand state; that is
   the reading this surface exists to give. --- */
.cov{border-top:1px solid var(--hair)}
.cov-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.4fr);
  column-gap:28px;row-gap:4px;align-items:baseline;
  padding:17px 0 18px 19px;border-bottom:1px solid var(--hair);position:relative}
.cov-row::before{content:"";position:absolute;left:0;top:21px;width:5px;height:5px;
  border-radius:1px;background:var(--faint)}
.cov-row[data-cover="nominal"]::before{background:var(--fd-sage)}
.cov-row[data-cover="demand"]::before{background:var(--fd-amber)}
.cov-row[data-cover="none"]::before{background:transparent;
  box-shadow:inset 0 0 0 1px var(--faint)}
.cov-pod{font-family:var(--display);font-weight:600;font-size:var(--t-lead);
  line-height:1.15;color:var(--fg)}
.cov-who{font-size:var(--t-body);color:var(--dim)}
.cov-who.empty{font-family:var(--mono);font-size:var(--t-meta);color:var(--faint)}
.cov-miss{font-size:var(--t-body);color:var(--dim);line-height:1.5}
.cov-miss.empty{font-family:var(--mono);font-size:var(--t-meta);color:var(--faint)}
.cov-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.4fr);
  column-gap:28px;padding:0 0 12px 19px;font-family:var(--mono);font-size:var(--t-meta);
  letter-spacing:0.09em;text-transform:uppercase;color:var(--faint)}
@media (max-width:760px){
  .cov-row,.cov-head{grid-template-columns:1fr}
  .cov-head{display:none}
}
