:root{
  /* ── Obsidian & Molten Gold — v2 system (Aug 2026) ────────────────────
     One surface family, one accent, four semantic hues. Everything else is
     white at an opacity. Values here are mirrored in LY_TOKENS above. */
  --bg:#0B1220;
  --bg2:#141D2F;
  --bg3:#1A2438;
  --bg4:#212C43;
  --bg5:#0F1828;
  --bg6:#0D1524;
  --bg7:#2A3752;
  --bg-alt:#0E1626;
  --bg-track:#0F1828;
  --panel-bg:#111A2B;
  --cc-bg-hover:#26324B;
  --cc-bg2:#141D2F;
  --cc-bg3:#1A2438;
  /* chart fills: mirrors LY_TOKENS.fill* */
  --fill-good:#22A06B;
  --fill-info:#3987E5;
  --fill-warn:#CF9B28;
  --fill-crit:#E5484D;
  --fill-violet:#9085E9;
  --fill-orange:#D95926;
  --fill-teal:#1FA2A8;
  --fill-amber:#E98E36;
  --fill-yellow:#E6CE6B;
  --fill-neutral:#64748B;
  --own-company:#7EB8D4;
  --own-rental:#F0B450;
  --own-lease:#E58FB5;

  --gold:#D6A54A;
  --gold-d:#A47C2E;
  --gold-hot:#F0B450;
  --gold-hi:#FFE4A8;
  --gold-bright:#F3C263;
  --gold-l:rgba(240,180,80,.10);
  --gold-a08:rgba(240,180,80,.08);
  --gold-a20:rgba(240,180,80,.20);
  --gold-a25:rgba(240,180,80,.25);
  --gold-a35:rgba(240,180,80,.35);
  --gold-a50:rgba(240,180,80,.50);
  --gold-a60:rgba(240,180,80,.74);
  --gold-a75:rgba(240,180,80,.75);
  --gold-a80:rgba(240,180,80,.80);
  --gold-a90:rgba(240,180,80,.90);
  --slate:rgba(140,160,200,.8);
  --sky:#7EB8D4;
  --sky-a80:rgba(126,184,212,.80);
  --sky-a20:rgba(126,184,212,.20);
  --sky-a07:rgba(126,184,212,.07);
  --white-a70:rgba(255,255,255,.70);
  --white-a55:rgba(255,255,255,.55);
  --white-a05:rgba(255,255,255,.05);
  --white-a03:rgba(255,255,255,.03);
  /* mechanically-minted palette tokens for raw colours found in deck inline styles (tools/utilgen.py) */
  --pal-000:#000;
  --pal-0c4a6e:#0c4a6e;
  --pal-0f172a:#0f172a;
  --pal-100_116_139_0p08:rgba(100,116,139,0.08);
  --pal-100_116_139_0p2:rgba(100,116,139,0.2);
  --pal-11_15_23_0p72:rgba(11,15,23,0.72);
  --pal-126_184_212_0p04:rgba(126,184,212,0.04);
  --pal-126_184_212_0p06:rgba(126,184,212,0.06);
  --pal-126_184_212_0p08:rgba(126,184,212,0.08);
  --pal-126_184_212_0p15:rgba(126,184,212,0.15);
  --pal-126_184_212_0p2:rgba(126,184,212,0.2);
  --pal-126_184_212_0p25:rgba(126,184,212,0.25);
  --pal-126_184_212_0p5:rgba(126,184,212,0.81);
  --pal-126_184_212_0p6:rgba(126,184,212,0.81);
  --pal-126_184_212_0p7:rgba(126,184,212,0.81);
  --pal-131008:#131008;
  --pal-148_163_184_0p6:rgba(163,176,196,0.95);
  --pal-166534:#166534;
  --pal-185_149_228_0p04:rgba(185,149,228,0.04);
  --pal-185_149_228_0p05:rgba(185,149,228,0.05);
  --pal-185_149_228_0p06:rgba(185,149,228,0.06);
  --pal-185_149_228_0p08:rgba(185,149,228,0.08);
  --pal-185_149_228_0p1:rgba(185,149,228,0.1);
  --pal-185_149_228_0p12:rgba(185,149,228,0.12);
  --pal-185_149_228_0p15:rgba(185,149,228,0.15);
  --pal-185_149_228_0p2:rgba(185,149,228,0.2);
  --pal-185_149_228_0p7:rgba(185,149,228,0.7);
  --pal-192_132_160_0p14:rgba(192,132,160,0.14);
  --pal-192_132_160_0p3:rgba(192,132,160,0.3);
  --pal-1e293b:#1e293b;
  --pal-1e3a5f:#1e3a5f;
  --pal-214_165_74_0p85:rgba(214,165,74,0.85);
  --pal-220_140_20_0p85:rgba(220,140,20,0.85);
  --pal-230_161_51_0p06:rgba(230,161,51,0.06);
  --pal-232_68_90_0p05:rgba(232,68,90,0.05);
  --pal-232_68_90_0p06:rgba(232,68,90,0.06);
  --pal-232_68_90_0p07:rgba(232,68,90,0.07);
  --pal-232_68_90_0p08:rgba(232,68,90,0.08);
  --pal-232_68_90_0p1:rgba(232,68,90,0.1);
  --pal-232_68_90_0p12:rgba(232,68,90,0.12);
  --pal-232_68_90_0p15:rgba(232,68,90,0.15);
  --pal-232_68_90_0p18:rgba(232,68,90,0.18);
  --pal-232_68_90_0p2:rgba(232,68,90,0.2);
  --pal-232_68_90_0p25:rgba(232,68,90,0.25);
  --pal-232_68_90_0p26:rgba(232,68,90,0.26);
  --pal-232_68_90_0p28:rgba(232,68,90,0.28);
  --pal-232_68_90_0p3:rgba(232,68,90,0.3);
  --pal-232_68_90_0p32:rgba(232,68,90,0.32);
  --pal-232_68_90_0p4:rgba(232,68,90,0.4);
  --pal-232_68_90_0p65:rgba(232,68,90,0.65);
  --pal-232_68_90_0p7:rgba(248,129,145,1);
  --pal-234_238_245_0p4:rgba(234,238,245,0.4);
  --pal-234_238_245_0p42:rgba(234,238,245,0.42);
  --pal-240_180_80_0p03:rgba(240,180,80,0.03);
  --pal-240_180_80_0p04:rgba(240,180,80,0.04);
  --pal-240_180_80_0p05:rgba(240,180,80,0.05);
  --pal-240_180_80_0p06:rgba(240,180,80,0.06);
  --pal-240_180_80_0p12:rgba(240,180,80,0.12);
  --pal-240_180_80_0p15:rgba(240,180,80,0.15);
  --pal-240_180_80_0p18:rgba(240,180,80,0.18);
  --pal-240_180_80_0p22:rgba(240,180,80,0.22);
  --pal-240_180_80_0p28:rgba(240,180,80,0.28);
  --pal-240_180_80_0p3:rgba(240,180,80,0.80);
  --pal-240_180_80_0p32:rgba(240,180,80,0.32);
  --pal-240_180_80_0p4:rgba(240,180,80,0.4);
  --pal-240_180_80_0p44:rgba(240,180,80,0.44);
  --pal-240_180_80_0p48:rgba(240,180,80,0.48);
  --pal-240_180_80_0p55:rgba(240,180,80,0.55);
  --pal-240_180_80_0p7:rgba(240,180,80,0.7);
  --pal-240_180_80_0p72:rgba(240,180,80,0.72);
  --pal-255_166_35_0p7:rgba(255,166,35,0.7);
  --pal-255_255_255_0p02:rgba(255,255,255,0.02);
  --pal-255_255_255_0p025:rgba(255,255,255,0.025);
  --pal-255_255_255_0p04:rgba(255,255,255,0.04);
  --pal-255_255_255_0p06:rgba(255,255,255,0.06);
  --pal-255_255_255_0p07:rgba(255,255,255,0.07);
  --pal-255_255_255_0p1:rgba(255,255,255,0.1);
  --pal-255_255_255_0p12:rgba(255,255,255,0.12);
  --pal-255_255_255_0p15:rgba(255,255,255,0.15);
  --pal-255_255_255_0p16:rgba(255,255,255,0.16);
  --pal-255_255_255_0p2:rgba(255,255,255,0.2);
  --pal-255_255_255_0p6:rgba(255,255,255,0.6);
  --pal-374151:#374151;
  --pal-38bdf8:#38bdf8;
  --pal-4_6_13_0p97:rgba(4,6,13,0.97);
  --pal-4_8_20_0p78:rgba(4,8,20,0.78);
  --pal-4ade80:#4ade80;
  --pal-64748b:#A0ADC6;
  --pal-666:#666;
  --pal-82_200_120_0p05:rgba(91,206,129,0.05);
  --pal-82_200_120_0p06:rgba(91,206,129,0.06);
  --pal-82_200_120_0p07:rgba(91,206,129,0.07);
  --pal-82_200_120_0p08:rgba(91,206,129,0.08);
  --pal-82_200_120_0p1:rgba(91,206,129,0.1);
  --pal-82_200_120_0p15:rgba(91,206,129,0.15);
  --pal-82_200_120_0p18:rgba(91,206,129,0.18);
  --pal-82_200_120_0p2:rgba(91,206,129,0.2);
  --pal-82_200_120_0p25:rgba(91,206,129,0.25);
  --pal-82_200_120_0p4:rgba(91,206,129,0.4);
  --pal-82_200_120_0p6:rgba(91,206,129,0.81);
  --pal-82_200_120_0p7:rgba(91,206,129,0.82);
  --pal-94a3b8:#94a3b8;
  --pal-e2e8f0:#e2e8f0;
  --pal-e6941f:#e6941f;
  --pal-f87171:#f87171;
  --pal-fbbf24:#fbbf24;
  --pal-fff:#fff;
  --gold-glow:rgba(240,180,80,.14);

  --bdr:rgba(148,163,184,.14);
  --bdr-2:rgba(148,163,184,.22);
  --bdr2:rgba(240,180,80,.38);
  --bdr-gold:rgba(240,180,80,.30);

  --txt:#EDF1F7;
  --txt2:rgba(237,241,247,.88);
  --txt3:rgba(237,241,247,.70);
  --txt4:rgba(237,241,247,.72);

  /* Semantic / data-viz — canonical four */
  --good:#5BCE81;
  --info:#7EB8D4;
  --crim:#F38695;
  --crim-hot:#F693A1;
  --crim-d:rgba(232,68,90,.10);
  --viol:#BC9AE5;
  --viol-d:rgba(185,149,228,.10);
  --idle:#E98743;
  --neutral:#94a3b8;
  --tertiary:#7F93B8;
  --inactive:#6b7280;

  /* Legacy names kept live — they now resolve to the canonical four */
  --emer:#5BCE81;
  --emer-d:rgba(91,206,129,.10);
  --emer-hot:#5BCE81;
  --emer-hot-d:rgba(91,206,129,.12);
  --sapp:#7EB8D4;
  --sapp-d:rgba(126,184,212,.10);
  --sapp-hot:#7EB8D4;
  --sapp-hot-d:rgba(126,184,212,.12);
  --viz-green:#5BCE81;
  --viz-blue:#7EB8D4;
  --viz-neutral:#aebbd0;
  --viz-rose:#9BADC7;

  --sans:'IBM Plex Sans','IBM Plex Sans Fallback',system-ui,sans-serif;
  --disp:'IBM Plex Sans Condensed','IBM Plex Sans','IBM Plex Sans Fallback',system-ui,sans-serif;
  --mono:'JetBrains Mono','IBM Plex Mono',monospace;

  --r-sm:6px;
  --r:10px;
  --r-lg:14px;
  --shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 30px -18px rgba(0,0,0,.8);
}
*{box-sizing:border-box}
html{overflow-y:auto;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1,"ss01" 0;
  background:var(--bg);
  color:var(--txt);
  margin:0;
  scrollbar-gutter:stable;
  line-height:1.42;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  background-image:
    radial-gradient(ellipse 60% 38% at 12% -6%,rgba(240,180,80,.07) 0%,transparent 70%),
    linear-gradient(-180deg,#131B2C 0%,#111828 40%,#0F1523 100%);
  background-attachment:fixed;
  padding-bottom:96px;
}
::selection{background:rgba(240,180,80,.28);color:#fff}
:focus-visible{outline:2px solid var(--gold-hot);outline-offset:2px;border-radius:4px}
a{color:inherit}
img,svg,canvas{max-width:100%}
.logo-panel img{max-width:none}
canvas{filter:none}

/* ── NAV ─────────────────────────────────────────────────────────────── */
.nav-row{display:flex;position:relative;width:100%;z-index:1000;background:rgba(11,15,23,.92);backdrop-filter:blur(14px) saturate(1.1);border-bottom:1px solid var(--bdr-2)}
.nav-row::after{
  content:'';position:absolute;top:0;left:0;width:44px;height:68px;
  pointer-events:none;z-index:2;opacity:0;transition:opacity .18s ease;
  background:linear-gradient(-90deg,rgba(11,15,23,0),rgba(11,15,23,.96));
}
.nav-row.nav-more::after{opacity:1}
.nav{
  flex:1;
  position:relative;
  background:transparent;
  padding:0 18px 0 24px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  height:68px;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  overscroll-behavior-x:contain;
}
.nav::-webkit-scrollbar{width:0;height:0;display:none}
.nav::after{content:none}
.logo-panel{
  width:286px;
  flex-shrink:0;
  height:68px;
  background:transparent;
  border-left:1px solid var(--bdr);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:0 22px 0 14px;
  gap:12px;
}
.intel-banner-row{display:block}
.brand{font-family:var(--disp);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:none;color:var(--gold);margin-left:12px}
.nt{display:none}.print-header{display:none}
.nl{display:flex;gap:2px;flex-wrap:nowrap;align-items:center;justify-content:flex-start;height:100%}
.na{
  font-family:var(--disp);
  font-size:14px;
  font-weight:600;
  letter-spacing:.02em;
  text-transform:none;
  padding:0 12px;
  text-decoration:none;
  color:var(--txt3);
  transition:color .15s;
  border-bottom:2px solid transparent;
  border-top:2px solid transparent;
  display:flex;
  align-items:center;
  height:100%;
  white-space:nowrap;
}
.na:hover{color:var(--txt)}
.na.on{color:var(--gold-hot);border-bottom-color:var(--gold-hot)}
/* Nav action buttons + pills that decks render inline get a uniform hit box */
.nav button,.nav a[class*="btn"],.nav [role="button"]{font-family:var(--sans)}

/* ── NAV: shared components (standardized 2026-09-05) ───────────────────
   Every nav/logo-panel element renders from these classes; navBar() in
   shared.ts carries no static inline styles. Deck files must not restyle
   these. Dynamic state (tf-card open/closed) is toggled by JS on display
   only; the copy buttons toggle .copied. */
.lp-sep{width:1px;height:32px;background:var(--gold-a25);flex-shrink:0}
/* Company marks (2026-09-29): one optical size for all three - each fills the
   same 98px width, so the heavy SSCL wordmark stops dwarfing the thin BIHG
   serif and CPC line mark. BIHG and SSCL use the traced SVGs the homepage
   uses (BIHG brightened to #b6bcc0/#4cbd80; the PNG was #808183/#007A4B and
   read dim on navy). 100px box fits the 252px panel below 1600px. */
/* Company carousel (2026-10-16, Taher: "the same logic like command center
   logos, crisp transition from one logo to another ... sliding smoothly").
   BIHG -> SSCL -> SBG -> CPC, 4 s each on a 16 s loop. Each change is one push:
   the outgoing mark slides out left as the next slides in from the right, on
   the Command Center's travel curve (short acceleration, decisive stop), so
   the two move together and the panel is never empty. Only translate and
   opacity animate (compositor), at scale 1, so the marks stay sharp while
   they move. The box is 16px wider than its 100px slot (margin -8px) and that
   margin is the soft clip, so a resting mark is never faded. Reduced motion:
   a plain crossfade in the same place. */
.lp-badge{position:relative;flex-shrink:0;box-sizing:border-box;width:116px;height:48px;margin:0 -8px;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8px,#000 calc(100% - 8px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8px,#000 calc(100% - 8px),transparent)}
.lp-badge img{max-width:none;display:block}
.lpb{position:absolute;top:0;bottom:0;right:8px;left:8px;display:flex;align-items:center;justify-content:center;
  opacity:0;will-change:translate,opacity;animation:lpbCycle 16s linear infinite both}
.lpb-bihg{animation-delay:-.8s}
.lpb-sscl{animation-delay:3.2s}
.lpb-sbg {animation-delay:7.2s}
.lpb-cpc {animation-delay:11.2s}
.lpb-bihg img{width:98px;height:47px}
.lpb-sscl img{width:98px;height:34px}
.lpb-sbg img{width:68px;height:48px}
.lpb-cpc img{width:98px;height:48px}
@keyframes lpbCycle{
  0%  {translate:100% 0;opacity:0;animation-timing-function:cubic-bezier(.65,0,.1,1)}
  5%  {translate:0 0;opacity:1}
  25% {translate:0 0;opacity:1;animation-timing-function:cubic-bezier(.65,0,.1,1)}
  30% {translate:-100% 0;opacity:0}
  100%{translate:-100% 0;opacity:0}
}
@keyframes lpbFade{
  0%  {opacity:0;animation-timing-function:ease-in-out}
  5%  {opacity:1}
  25% {opacity:1;animation-timing-function:ease-in-out}
  30% {opacity:0}
  100%{opacity:0}
}
@media(prefers-reduced-motion:reduce){.lpb{animation-name:lpbFade}}
/* Deck HTML cached before v297 carries the old spans: BIHG alone, still. */
.lp-badge>.bihg-badge{position:absolute;left:8px;top:0;width:98px;height:47px}
.lp-badge>.sscl-badge,.lp-badge>.entc-badge{display:none}
@keyframes np{0%,100%{opacity:.4}50%{opacity:1}}
.print-header{align-items:center;justify-content:space-between;padding:8px 20px 10px;background:var(--panel-bg);border-bottom:1px solid var(--gold-a35);margin-bottom:2px}
.ph-left{display:flex;align-items:center;gap:14px}
.ph-left img{height:44px;width:auto}
.ph-title{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--gold-a90);text-transform:none}
.ph-sub{font-family:var(--sans);font-size:12px;color:var(--txt3);margin-top:2px}
.ph-right{text-align:left;font-family:var(--sans);font-size:12px;color:var(--txt3);font-variant-numeric:tabular-nums}
.ph-date{color:var(--gold-a80);font-size:12px}
.nt img{height:38px;width:auto;display:block}
.nav-brand-of{font-family:var(--disp);font-size:16px;letter-spacing:.02em;color:var(--gold-hot);font-weight:700;text-transform:none}
.nav-role-lbl{font-family:var(--sans);font-size:13px;color:var(--txt3);font-weight:500;text-transform:none;white-space:nowrap;margin-left:10px}
.na.na-back{opacity:1;letter-spacing:.04em}
.nav-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}
/* Nothing in here shrinks/clips internally — .nav (the grid row itself) already
   scrolls horizontally with a hidden scrollbar, so any real overflow at very
   narrow widths is absorbed there instead of truncating a label in place. */
.nav-live,.nav-tools,#tf-wrapper{flex-shrink:0}
.nav-live{display:flex;align-items:center;gap:8px;padding:5px 12px;border-radius:var(--r-sm);border:1px solid var(--bdr-2);background:var(--white-a03)}
/* Tour, left of the clock on every page with a tour (Taher, 2026-10-16). */
.nav .nav-tour{flex-shrink:0;display:inline-flex;align-items:center;min-height:34px;margin:0;padding:0 14px;border-radius:var(--r-sm);border:1px solid rgba(240,180,80,.45);background:rgba(240,180,80,.08);color:var(--gold-hot);font:600 13.5px var(--sans);cursor:pointer}
.nav .nav-tour:hover{border-color:rgba(240,180,80,.7);background:rgba(240,180,80,.14)}
.nav .nav-tour:focus-visible{outline:2px solid var(--gold-hot);outline-offset:2px}
.nav-live-dot{width:7px;height:7px;border-radius:50%;background:var(--emer-hot);display:inline-block;flex-shrink:0;animation:np 2.5s ease-in-out infinite}
.nav-live-txt{display:flex;flex-direction:column;line-height:1.4;text-align:center}
.nav-live-txt span{font-family:var(--sans);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.nav-live-d{color:var(--txt2);font-weight:500}
.nav-live-t{color:var(--txt3)}
.nav-sep{width:1px;height:16px;background:var(--bdr-2);flex-shrink:0}
.nav-map{text-decoration:none;background:none;border:none;padding:0;display:inline-flex;align-items:center}
.nav-map svg{display:inline;vertical-align:middle;overflow:hidden;background:transparent}
.nav-tools{display:flex;gap:3px;align-items:center;flex-shrink:0}
.nav-tool{font-family:var(--sans);font-size:13px;font-weight:500;padding:5px 10px;border-radius:var(--r-sm);text-decoration:none;white-space:nowrap;cursor:pointer}
.nav-tool--report{background:linear-gradient(-135deg,rgba(18,32,52,.95),rgba(10,28,56,.95));color:var(--white-a70);border:1px solid var(--gold-a25)}
.nav-tool--bid{background:var(--sky-a07);color:var(--sky-a80);border:1px solid var(--sky-a20)}
.pol-link{display:flex;align-items:center;gap:14px;flex-wrap:wrap;text-decoration:none;color:var(--txt);border:1px solid var(--bdr-2);border-radius:10px;padding:9px 16px;margin:-4px 0 12px;background:rgba(14,18,25,.6);font-size:13px}
.pol-link:hover{border-color:var(--gold-a35)}
.pol-link-k{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--gold-hot);white-space:nowrap}
.pol-link-t{flex:1 1 240px;color:var(--txt3)}
.pol-link-go{font-weight:700;color:var(--gold-hot);white-space:nowrap}
.nav-tool--print{background:var(--white-a05);color:var(--white-a55);border:1px solid var(--bdr-2)}
#tf-wrapper{position:relative;display:inline-flex}
#tf-trigger{font-family:var(--sans);font-size:13px;color:var(--gold-hot);font-weight:600;cursor:pointer;padding:5px 12px;border-radius:var(--r-sm);border:1px solid var(--gold-a35);background:transparent;transition:all .2s;text-align:center;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:172px}
#tf-trigger:hover{background:var(--gold-a08)}
#tf-trigger span{display:block}
#tf-trigger .tf-role{font-size:13px;font-weight:500;color:var(--gold-a80)}
#tf-card{display:none;position:fixed;top:68px;left:16px;z-index:9999;flex-direction:column;gap:0;width:360px;border-radius:10px;border:1px solid var(--gold-a35);background:linear-gradient(-145deg,rgba(10,16,30,.97),rgba(11,15,23,.99));box-shadow:0 8px 40px rgba(0,0,0,.7),0 0 0 .5px var(--gold-l) inset;backdrop-filter:blur(16px);overflow:hidden}
.tf-bar{height:3px;background:linear-gradient(-90deg,var(--gold-hot),var(--gold-a20))}
.tf-body{padding:18px 20px 16px;display:flex;flex-direction:column;gap:14px}
.tf-head{display:flex;gap:14px;align-items:center}
.tf-photo{width:72px;height:72px;border-radius:50%;border:1.5px solid var(--gold-a50);flex-shrink:0;overflow:hidden}
.tf-photo img{display:block;width:72px;height:72px;object-fit:cover;border-radius:50%}
.tf-name{font-family:var(--sans);font-size:15px;font-weight:700;color:var(--txt)}
.tf-title{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--gold-hot);margin-top:2px}
.tf-creds{font-family:var(--sans);font-size:12px;color:var(--txt3);margin-top:3px;line-height:1.6}
.tf-div{height:.5px;background:var(--bdr)}
.tf-rows{display:flex;flex-direction:column;gap:9px}
.tf-row{display:flex;align-items:center;gap:10px}
.tf-ico{width:20px;height:20px;border-radius:var(--r-sm);background:var(--gold-l);border:1px solid var(--gold-a20);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tf-field{flex:1;min-width:0}
.tf-lbl{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--txt3)}
.tf-val{font-family:var(--sans);font-size:13px;color:var(--txt);margin-top:1px}
.tf-val--lg{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.tf-val--i{font-style:italic}
.tf-val--clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tf-copy{background:rgba(240,180,80,.07);border:1px solid var(--gold-a20);border-radius:var(--r-sm);color:var(--gold-a60);cursor:pointer;font-size:14px;line-height:1;padding:4px 8px;flex-shrink:0;transition:all .15s}
.tf-copy.copied{color:var(--good);border-color:rgba(91,206,129,.4)}
.nav-map #ksaScanLine{animation:ksaScan 5s linear infinite}
@keyframes ksaScan{0%{transform:translateY(0)}50%{transform:translateY(248px)}100%{transform:translateY(0)}}
.tf-foot{font-family:var(--sans);font-size:12px;color:var(--txt3);text-align:center}


/* ── Shared primitives pass 2 (standardized 2026-09-06) ─────────────── */
.lp-mark{position:relative;width:var(--lm-w);height:var(--lm-h);display:block;flex-shrink:0;overflow:visible}
.lp-mark img{height:var(--lm-h);width:auto;display:block;position:relative;z-index:1}
.lp-mark svg{position:absolute;top:0;right:0;height:var(--lm-h);width:auto;z-index:2;pointer-events:none;overflow:visible}
.ft-l{display:flex;flex-direction:column;gap:3px}
.ft-brand{display:flex;align-items:center;gap:8px}
.ft-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);opacity:.7}
.ft-sub{font-size:13px;color:var(--txt3);margin-top:2px}
.ft-name{color:var(--gold);font-weight:600;letter-spacing:.04em}
.ft-r{text-align:left}
.rpt-banner{display:flex;align-items:center;justify-content:space-between;padding:11px 56px;background:linear-gradient(-135deg,rgba(11,15,23,.95) 0%,rgba(18,32,52,.95) 50%,rgba(10,28,56,.95) 100%);text-decoration:none;color:var(--txt);position:relative;overflow:hidden;border-bottom:1px solid var(--bdr)}
.rpt-shine{position:absolute;top:0;right:-60%;width:40%;height:100%;background:linear-gradient(-90deg,transparent,rgba(240,180,80,.06),transparent);animation:shine 3.5s infinite}
@keyframes shine{0%{right:-60%}65%{right:120%}100%{right:120%}}
.rpt-line{position:absolute;bottom:0;right:0;left:0;height:1px;background:linear-gradient(-90deg,transparent,var(--gold-a20),transparent)}
.rpt-eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--gold);opacity:.8;margin-bottom:2px}
.rpt-title{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--txt)}
.rpt-cta{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--txt3)}
.tag--green{background:rgba(91,206,129,.12);color:var(--good);border-color:rgba(91,206,129,.24)}
.tag--red{background:rgba(232,68,90,.12);color:var(--crim-hot);border-color:rgba(232,68,90,.24)}
.tag--amber{background:rgba(240,180,80,.12);color:var(--gold-hot);border-color:rgba(240,180,80,.24)}
.tag--blue{background:rgba(126,184,212,.12);color:var(--info);border-color:var(--sky-a20)}
.tag--purple{background:rgba(185,149,228,.12);color:var(--viol);border-color:rgba(185,149,228,.24)}
#btt{display:none;position:fixed;bottom:84px;left:28px;z-index:8000;width:42px;height:42px;border-radius:50%;background:var(--panel-bg);border:1px solid rgba(240,180,80,.45);color:var(--gold);font-size:18px;cursor:pointer;box-shadow:0 4px 20px rgba(0,0,0,.55);transition:all .2s;align-items:center;justify-content:center}
#ly-filter-bar{position:sticky;top:68px;z-index:800;background:rgba(11,15,23,.97);border-bottom:.5px solid rgba(240,180,80,.18);backdrop-filter:blur(12px);padding:8px 56px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lf-lbl{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(240,180,80,.75);margin-left:4px;flex-shrink:0}
.lf-sel{background:var(--panel-bg);border:.5px solid var(--gold-a25);color:var(--txt2);font-family:var(--sans);font-size:13px;padding:4px 8px;border-radius:var(--r-sm);cursor:pointer;min-width:90px}
.lf-search{padding:4px 10px;min-width:170px;outline:none;cursor:text}
#lf-chips{display:flex;gap:5px;flex-wrap:wrap}
#lf-clear{display:none;background:rgba(232,68,90,.12);border:.5px solid rgba(232,68,90,.35);color:var(--crim-hot);font-family:var(--sans);font-size:12px;font-weight:600;padding:4px 10px;border-radius:var(--r-sm);cursor:pointer;flex-shrink:0}
#lf-chips .lf-chip{background:rgba(240,180,80,.12);border:.5px solid var(--gold-a35);color:var(--gold-hot);font-family:var(--sans);font-size:12px;font-weight:500;padding:3px 8px;border-radius:4px;display:inline-flex;align-items:center;gap:5px}
.lf-chip-x{cursor:pointer;opacity:.6;font-size:12px}
/* The boot mark was capped at 430px, which the 74vw branch only ever beat below a
   581px viewport - so every desktop from 1280 to 2560 got the same 430px island
   (33.6% of viewport width falling to 16.8%). 574px is not an arbitrary bump: it
   is the native width of /assets/logo.png (574x294), so 1x displays now render it
   1:1 instead of downscaled. Do NOT raise this further without replacing the
   raster - past 574 the L and the wordmark upscale and soften. The SVG beam
   overlay is vector and scales cleanly either way. */
#lx-boot-logo{display:none;position:relative;width:min(74vw,574px);height:auto;aspect-ratio:101.5/52}
#lx-boot-logo img{width:100%;height:100%;object-fit:contain;object-position:right center;display:block;position:relative;z-index:1}
#lx-boot-logo svg{position:absolute;top:0;right:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
#lf-count{margin-right:auto;font-family:var(--sans);font-size:12px;color:var(--txt4);flex-shrink:0;font-variant-numeric:tabular-nums}
.lx-modal{display:none;position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:20px}
.lx-modal-box{background:var(--panel-bg);border:.5px solid color-mix(in srgb,var(--ac) 33%,transparent);border-radius:var(--r-lg);width:100%;max-width:560px;max-height:88vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.65),0 0 0 1px color-mix(in srgb,var(--ac) 13%,transparent)}
.lx-modal-head{padding:18px 22px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:.5px solid var(--bdr);position:sticky;top:0;background:var(--panel-bg);z-index:1}
.lx-modal-eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--ac);opacity:1;margin-bottom:3px}
.lx-modal-title{font-size:16px;font-weight:600;color:var(--txt)}
.lx-modal-x{background:rgba(255,255,255,.06);border:.5px solid var(--bdr-2);color:rgba(255,255,255,.8);border-radius:var(--r-sm);padding:6px 10px;font-size:15px;cursor:pointer}
.lx-modal-body{padding:18px 22px}
.lx-modal-foot{margin-top:16px;padding:10px 12px;background:var(--white-a03);border:.5px solid var(--bdr);border-radius:10px;font-size:13px;line-height:1.5;color:var(--txt2);font-family:var(--sans)}
/* Modal row (2026-09-24). Was a flex row whose right column could not shrink,
   so a long sub-line widened it, squeezed the label to one word per line and
   pushed the box into a sideways scroll (measured live: 373px on the burn
   modal at 1440, 583px at 390). Now a grid: label and value share the first
   line, the value wraps instead of widening, and the sub-line runs full width
   underneath. */
.mr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:3px;align-items:baseline;padding:10px 0;border-bottom:.5px solid rgba(255,255,255,.06)}
.mr-l{font-size:14px;color:rgba(255,255,255,.74);min-width:0;overflow-wrap:anywhere}
.mr-r{display:contents}
.mr-v{grid-column:2;grid-row:1;text-align:left;font-family:var(--sans);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;max-width:min(58vw,320px);overflow-wrap:anywhere}
.mr-s{grid-column:1/-1;font-size:12px;line-height:1.5;color:var(--txt2);overflow-wrap:anywhere}
@media(max-width:640px){.mr--long{grid-template-columns:minmax(0,1fr)}.mr--long .mr-v{grid-column:1;grid-row:auto;text-align:right;max-width:none}}
.mb{margin-bottom:10px}
.mb-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}
.mb-l{font-size:14px;color:rgba(255,255,255,.74)}
.mb-v{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--mc);font-variant-numeric:tabular-nums}
.mb-track{height:5px;background:var(--bdr);border-radius:4px;overflow:hidden}
.mb-fill{height:100%;background:var(--mc);border-radius:4px;transition:width .5s ease}
.ma{padding:10px 13px;border-radius:10px;font-size:14px;line-height:1.6;margin-bottom:12px;border:.5px solid transparent}
.ma--red{background:rgba(232,68,90,.08);border-color:rgba(232,68,90,.25);color:rgba(255,180,190,.9)}
.ma--amber{background:var(--gold-a08);border-color:var(--gold-a25);color:rgba(255,220,155,.9)}
.ma--green{background:rgba(91,206,129,.06);border-color:rgba(91,206,129,.2);color:rgba(150,255,210,.9)}
.ma--blue{background:var(--sky-a07);border-color:var(--sky-a20);color:rgba(160,230,255,.9)}
.lx-hit{cursor:pointer;display:contents}


/* ── Health gauge / health modal / fleet map shell (standardized 2026-09-06) ── */
.gauge-card .ly-mrow-b i.hg-bar{background:var(--bc)}
.hg-v{color:var(--bc)}
.hg-spark{overflow:visible;margin-top:2px}
.hg-trend{font-size:12px;text-align:center}
.hg-sparkwrap{display:flex;flex-direction:column;align-items:center;z-index:1}
#health-modal{z-index:9999;background:rgba(0,0,0,.72)}
.hm-box{background:var(--panel-bg);border:.5px solid rgba(240,180,80,.3);border-radius:var(--r-lg);width:100%;max-width:580px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.hm-top{padding:20px 24px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.hm-id{display:flex;align-items:center;gap:16px}
.hm-ring{width:64px;height:64px;border-radius:50%;border:2.5px solid var(--hc);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:rgba(11,15,23,.8)}
.hm-ring span{font-size:22px;font-weight:600;color:var(--hc);font-family:var(--sans);font-variant-numeric:tabular-nums}
.hm-eyebrow{font-size:13px;text-transform:none;color:var(--txt2);margin-bottom:3px}
.hm-verdict{font-size:18px;font-weight:600;color:var(--hc)}
.hm-desc{font-size:13px;color:var(--txt2);margin-top:2px}
.hm-body{padding:0 24px 20px}
.hm-row{padding:14px 0;border-bottom:.5px solid var(--bdr)}
.hm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.hm-name{font-weight:500;font-size:14px;color:var(--txt)}
.hm-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}
.hm-wt{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:12px;color:var(--txt2);background:rgba(255,255,255,.06);padding:2px 7px;border-radius:var(--r-sm)}
.hm-pct{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;color:var(--bc)}
.hm-status{font-size:12px;font-weight:600;padding:2px 8px;border-radius:var(--r-sm);color:var(--bc)}
.hm-row.is-pass .hm-status{background:rgba(91,206,129,.15)}
.hm-row.is-warn .hm-status{background:rgba(240,180,80,.15)}
.hm-row.is-fail .hm-status{background:rgba(232,68,90,.15)}
.hm-track{position:relative;height:6px;background:var(--bdr);border-radius:4px;overflow:hidden;margin-bottom:8px}
.hm-fill{position:absolute;right:0;top:0;height:100%;background:var(--bc);border-radius:4px;transition:width .6s ease}
.hm-wtmark{position:absolute;right:0;top:0;height:100%;border-left:1.5px dashed rgba(255,255,255,.25)}
.hm-action{font-size:13px;color:var(--gold-a80)}
.hm-total{margin-top:16px;padding:12px;background:rgba(240,180,80,.06);border:.5px solid var(--gold-a20);border-radius:10px;display:flex;align-items:center;justify-content:space-between}
.hm-total-v{font-family:var(--disp);font-size:17px;font-weight:700;color:var(--hc)}
/* No backdrop-filter (2026-10-02): over a 97-98% opaque background the blur
   could not be seen, but with an animated canvas inside it the browser
   re-blurred the whole screen behind the map on every frame. */
#ly-map-modal{display:none;position:fixed;inset:0;z-index:9100;overscroll-behavior:contain;background:linear-gradient(-135deg,rgba(4,8,22,.98) 0%,rgba(8,14,32,.97) 40%,rgba(6,10,24,.98) 100%);font-family:var(--sans)}
/* Header height is content-driven, and --lym-hdr carries the measured value to
   the columns and the stage below. It was a fixed 52px with overflow-x:auto,
   which meant that once the controls outgrew the window the header became a
   sideways-scrolling strip: the scrollbar ate the 52px, the title sat flush
   against the top edge, and ESC was pushed off the right edge entirely. That
   needed 1,543px of window to avoid. Wrapping onto a second row costs nothing
   and has no width at which it breaks. The ≤760px block solves the same
   problem the same way — this generalises it to every width. */
#ly-map-modal{--lym-hdr:52px;--lym-lw:clamp(240px,18vw,272px);--lym-rw:clamp(252px,20vw,296px)}
/* the right column widens while it holds a brief (Selected area, Swaps,
   Burn, Expiry, Replay, Seen) so the brief reads without truncation */
#ly-map-modal.lym-wide{--lym-rw:clamp(320px,30vw,440px)}
/* The columns float over a full-width map and slide away once the map is
   zoomed in (Panels pins them). --lym-ol / --lym-or are the room they take
   on each side right now; the controls on the map keep clear of them. */
#ly-map-modal{--lym-ol:var(--lym-lw);--lym-or:var(--lym-rw)}
#ly-map-modal.lym-cols-off{--lym-ol:0px;--lym-or:0px}
#ly-map-modal.lym-cols-off.lym-wide{--lym-or:var(--lym-rw)}
#ly-map-modal.lym-cols-off #ly-col-left{transform:translateX(104%);box-shadow:none}
/* Swaps (Taher, 2026-10-08): the list takes a wider right column and the
   left one steps aside, so the swaps are framed on open map between them */
#ly-map-modal.lym-swap{--lym-rw:clamp(380px,34vw,520px);--lym-ol:0px}
#ly-map-modal.lym-swap #ly-col-left{transform:translateX(104%);box-shadow:none}
#ly-map-modal.lym-cols-off:not(.lym-wide) #ly-col-right{transform:translateX(-104%);box-shadow:none}
#ly-map-header{position:absolute;top:0;right:0;left:0;height:auto;min-height:52px;border-bottom:1px solid var(--gold-a25);background:rgba(10,16,30,.99);display:flex;align-items:center;flex-wrap:wrap;row-gap:8px;padding:8px 14px;gap:12px;z-index:5;overflow-x:visible;overflow-y:visible;box-sizing:border-box}
/* Must be able to give up width, or its 353px basis wins the first row and
   pushes everything else onto the next one. */
.lym-titlebox{flex:1 1 0;min-width:0}
.lym-title{font-size:18px;font-weight:700;color:var(--gold-hot);letter-spacing:0;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#ly-map-subtitle{font-size:13px;font-weight:500;color:var(--txt2);margin-top:3px}
.lym-sep{width:1px;height:30px;background:var(--gold-a20);margin:0 2px;flex-shrink:0}
#ly-map-header.is-wrapped .lym-sep{display:none}
#ly-map-kpis{display:flex;gap:10px;flex:0 0 auto;align-items:center}
.lym-spacer{flex:1 1 0}
.lym-esc{margin-right:10px;background:transparent;border:1px solid var(--bdr-2);border-radius:var(--r-sm);color:var(--txt2);font-size:13px;font-family:var(--sans);font-weight:600;padding:5px 14px;cursor:pointer;flex-shrink:0;height:30px;box-sizing:border-box;display:inline-flex;align-items:center}
.lym-col{position:absolute;top:var(--lym-hdr,52px);bottom:0;width:var(--lym-lw);z-index:70;transition:transform .28s cubic-bezier(.2,.7,.2,1);box-shadow:0 0 28px rgba(0,0,0,.55);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(240,180,80,.35) transparent;background:rgba(10,16,28,.98);padding:10px 11px;box-sizing:border-box;font-family:var(--sans)}
#ly-col-left{right:0;border-left:1px solid rgba(240,180,80,.4)}
#ly-col-right{left:0;width:var(--lym-rw);border-right:1px solid rgba(240,180,80,.4);transition:width .18s ease,transform .28s cubic-bezier(.2,.7,.2,1)}
.lym-col-h{font-size:15px;font-weight:600;color:var(--gold-hot);text-transform:none;line-height:1.3;margin-bottom:10px;border-bottom:1px solid rgba(240,180,80,.4);padding-bottom:7px}
.lym-col-body{font-size:13px}
/* 2026-09-24: the columns clipped (overflow:hidden), so a long Swaps list was
   cut off and the wheel fell through to the deck behind the map. They scroll
   on their own now; overscroll-behavior stops a scroll that reaches the end
   from chaining to the deck. */
#ly-map-stage{position:absolute;top:var(--lym-hdr,52px);bottom:0;left:0;right:0}
#ly-map-wrap{position:relative;width:100%;height:100%;overflow:hidden}
.lym-ctrls{position:absolute;bottom:14px;right:calc(var(--lym-or,0px) + 14px);transition:right .28s cubic-bezier(.2,.7,.2,1);z-index:50;display:flex;gap:6px}
/* Mode switcher floats over the empty northern map, matching .lym-ctrls above.
   Offset clears the longitude ruler the canvas draws along the top edge. */
/* bottom right, over Key / Fit to filters / Whole Kingdom (Taher, 2026-10-06) */
#ly-map-stage>#ly-map-modes{position:absolute;bottom:52px;right:calc(var(--lym-or,0px) + 14px);transition:right .28s cubic-bezier(.2,.7,.2,1);width:-moz-fit-content;width:fit-content;z-index:50}
.lym-btn{background:rgba(10,16,28,.92);border:1px solid rgba(255,255,255,.2);border-radius:var(--r-sm);color:rgba(244,248,255,.72);font-size:13px;font-family:var(--sans);font-weight:600;padding:6px 11px;cursor:pointer}
.lym-btn--gold{border-color:rgba(240,180,80,.4);color:rgba(240,180,80,.85)}
#ly-map-tip{display:none;position:fixed;background:rgba(11,15,23,.97);border:1px solid rgba(240,180,80,.4);border-radius:var(--r-sm);padding:10px 14px;pointer-events:none;z-index:200;min-width:215px;box-shadow:0 8px 32px rgba(0,0,0,.7);font-family:var(--sans)}
#ly-site-modal{display:none;position:absolute;inset:0;background:rgba(11,15,23,.93);backdrop-filter:blur(8px);z-index:300;align-items:center;justify-content:center;cursor:pointer}
#ly-site-box{width:82%;max-width:840px;max-height:82vh;background:rgba(14,18,25,.99);border:1px solid rgba(240,180,80,.28);border-radius:10px;box-shadow:0 24px 80px rgba(0,0,0,.85);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.lym-table-wrap{max-height:260px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;border:1px solid rgba(255,255,255,.06);border-radius:var(--r-sm)}


/* ── Fleet map runtime widgets (standardized 2026-09-06). Colour comes in via --c. ── */
.lym-opt{background:#0B1119;color:var(--txt)}
.lym-badge{font-size:12px;font-weight:600;padding:2px 6px;border-radius:4px;font-variant-numeric:tabular-nums;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent);border:1px solid color-mix(in srgb,var(--c) 33%,transparent)}
.lym-badge--iron{--c:var(--crim-hot);margin-right:4px;background:rgba(232,68,90,.15);border-color:rgba(232,68,90,.5)}
.lym-badge--dispose{--c:var(--idle);margin-right:4px;background:rgba(228,120,42,.15);border-color:rgba(228,120,42,.5)}
.lym-tip-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;gap:10px}
.lym-tip-id{font-size:15px;font-weight:600;color:var(--gold-hot);line-height:1.3;max-width:320px;overflow-wrap:anywhere}
.lym-tip-badges{display:inline-flex;align-items:center}
.lym-tip-sub{font-size:13px;color:rgba(244,248,255,.68);margin:0 0 6px}
.lym-tip-k--p{color:rgba(244,248,255,.78);max-width:300px;overflow-wrap:anywhere}
.lym-tip-rule{height:1px;background:rgba(240,180,80,.15);margin-bottom:6px}
.lym-tip-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;gap:14px;line-height:1.35}
.lym-tip-k{font-size:12px;color:rgba(244,248,255,.58);white-space:nowrap}
.lym-tip-v{font-size:13px;color:#F4F8FF;font-weight:500;text-align:left;font-variant-numeric:tabular-nums}
.lym-tip-hint{margin-top:8px;padding-top:7px;border-top:1px solid rgba(240,180,80,.12);font-size:12px;color:rgba(240,180,80,.78)}
.lym-tip-hint--sub{margin-top:2px;padding-top:0;border-top:none;color:rgba(240,180,80,.6)}
.lym-search{position:relative;display:flex;align-items:center;flex:0 0 auto;width:300px;height:30px;box-sizing:border-box}
.lym-search input{appearance:none;background:rgba(11,15,23,.95);border:1px solid rgba(240,180,80,.38);color:var(--gold-hot);font-family:var(--sans);font-size:13px;font-weight:600;padding:5px 9px 5px 58px;border-radius:6px;outline:none;width:300px;height:30px;box-sizing:border-box}
.lym-search input::placeholder{color:rgba(240,180,80,.42);font-weight:500}
.lym-search input:focus{border-color:rgba(240,180,80,.75)}
.lym-search.is-on input{border-color:rgba(46,230,168,.6);color:#2EE6A8}
@media(max-width:760px){#ly-map-kpis>.lym-search{width:auto}}
.lym-sugg{position:absolute;top:calc(100% + 4px);left:0;z-index:60;min-width:100%;width:max-content;max-width:min(440px,92vw);max-height:340px;overflow:auto;background:rgba(11,15,23,.98);border:1px solid rgba(240,180,80,.45);border-radius:8px;box-shadow:0 12px 32px rgba(0,0,0,.55);padding:4px}
.lym-sugg[hidden]{display:none}
.lym-sugg-i{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;font-family:var(--sans);font-size:14px;color:#F4F8FF}
.lym-sugg-i.on,.lym-sugg-i:hover{background:rgba(240,180,80,.16)}
.lym-sugg-k{flex:0 0 58px;font-size:13px;font-weight:600;color:rgba(240,180,80,.9)}
.lym-sugg-v{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}
.lym-sugg-n{flex:0 0 auto;font-variant-numeric:tabular-nums;font-size:13px;color:rgba(46,230,168,.95)}
.lym-sugg-none{padding:10px;font-size:14px;color:rgba(244,248,255,.7)}
.lym-search-n{position:absolute;left:26px;font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;color:rgba(46,230,168,.9);pointer-events:none;white-space:nowrap}
.lym-search-x{position:absolute;left:7px;display:none;background:transparent;border:none;color:rgba(240,180,80,.6);font-size:13px;line-height:1;cursor:pointer;padding:2px}
.lym-search.is-on .lym-search-x{display:block}
.lym-search-x:hover{color:var(--gold-hot)}
.lym-scard{padding:12px 14px;background:color-mix(in srgb,var(--c) 5%,transparent);border:1px solid color-mix(in srgb,var(--c) 16%,transparent);border-radius:var(--r-sm)}
.lym-scard-n{font-size:22px;font-weight:700;color:var(--c);font-variant-numeric:tabular-nums}
.lym-scard-l{font-size:13px;font-weight:600;color:var(--c);opacity:.85;margin-top:2px}
.lym-scard-l--ls{opacity:.85}
.lym-scard-s{font-size:12px;color:rgba(244,248,255,.58);margin-top:1px}
.lym-scard-track{height:2px;background:rgba(255,255,255,.06);border-radius:4px;margin-top:8px}
.lym-scard-fill{height:2px;background:var(--c);border-radius:4px;opacity:.8}
.lym-risk{padding:10px 12px;background:var(--white-a03);border:1px solid color-mix(in srgb,var(--c) 20%,transparent);border-radius:var(--r-sm);display:flex;justify-content:space-between;align-items:center}
.lym-risk-id{font-size:13px;font-weight:600;color:var(--txt)}
.lym-risk-sub{font-size:12px;color:var(--txt4);margin-top:2px}
.lym-risk-r{text-align:left}
.lym-risk-v{font-size:15px;font-weight:700;color:var(--c);font-variant-numeric:tabular-nums}
.lym-risk-l{font-size:12px;color:rgba(244,248,255,.58)}
.lym-site-head{padding:18px 24px;border-bottom:1px solid rgba(240,180,80,.13);display:flex;justify-content:space-between;align-items:flex-start;background:rgba(240,180,80,.03)}
.lym-site-title{font-size:18px;font-weight:600;color:var(--gold-hot)}
.lym-site-sub{font-size:13px;color:rgba(244,248,255,.7);margin-top:4px;font-variant-numeric:tabular-nums}
.lym-esc--sm{margin-right:0;font-size:12px;padding:4px 10px;border-color:rgba(255,255,255,.1)}
.lym-site-body{padding:20px 24px}
.lym-site-h{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.55);margin-bottom:8px}
.lym-grid{display:grid;gap:8px;margin-bottom:20px}
.lym-grid--5{grid-template-columns:repeat(5,1fr)}
.lym-grid--4{grid-template-columns:repeat(4,1fr)}
.lym-grid--3{grid-template-columns:repeat(3,1fr)}
.lym-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.lym-grid--tight{gap:7px;margin-bottom:0}
.lym-grid--nomb{margin-bottom:0}
.lym-table{width:100%;border-collapse:collapse;font-size:13px;font-family:var(--sans)}
.lym-table td{font-variant-numeric:tabular-nums}
.lym-table thead tr{border-bottom:1px solid rgba(240,180,80,.13)}
.lym-table th{padding:5px 8px;text-align:right;color:rgba(244,248,255,.55);font-size:12px;font-weight:600}
.lym-kv{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:10px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.045)}
.lym-kv:last-child{border-bottom:none}
.lym-kv-k{color:rgba(237,241,247,.72);font-size:13px;line-height:1.35;min-width:0;overflow-wrap:anywhere}
.lym-kv-v{font-weight:600;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:left}
.lym-h{font-size:11px;font-weight:600;color:rgba(244,248,255,.55);letter-spacing:.01em;text-transform:none;margin:12px 0 7px;padding:0 0 5px;border-bottom:1px solid rgba(240,180,80,.13)}
.lym-h:first-child{margin-top:0}
.lym-bbar{margin:0;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.045)}
.lym-strow:last-child .lym-bbar{border-bottom:none}
.lym-bbar-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.lym-bbar-k{color:rgba(237,241,247,.72);font-size:13px}
.lym-bbar-v{color:var(--c);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.lym-bbar-track{height:3px;background:rgba(255,255,255,.07);border-radius:2px;overflow:hidden}
.lym-bbar-fill{height:100%;background:var(--c);border-radius:2px}
.lym-chip{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;background:rgba(255,255,255,.030);border:1px solid rgba(240,180,80,.155);border-radius:8px;padding:8px 9px;box-sizing:border-box}
.lym-chip-v{color:var(--c);font-size:18px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.lym-chip-l{color:rgba(237,241,247,.68);font-size:12px;line-height:1.3;max-width:100%}
.lym-chips{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.lym-hero{text-align:center;background:rgba(255,255,255,.030);border:1px solid rgba(240,180,80,.155);border-radius:8px;padding:8px 9px;box-sizing:border-box;padding:11px 9px}
.lym-hero-n{font-size:40px;font-weight:700;color:var(--c);line-height:1;font-variant-numeric:tabular-nums}
.lym-hero-l{font-size:11px;font-weight:600;color:rgba(244,248,255,.6);letter-spacing:.01em;text-transform:none;margin-top:6px}
.lym-hero-s{font-size:12px;color:rgba(237,241,247,.66);margin-top:3px;font-variant-numeric:tabular-nums}
.lym-strow{transition:opacity .2s}
.lym-own{text-align:right;min-width:0;background:rgba(255,255,255,.030);border:1px solid rgba(240,180,80,.155);border-radius:8px;padding:8px 9px;box-sizing:border-box}
.lym-own-n{font-size:15px;font-weight:700;color:var(--c);line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.lym-own-l{font-size:12px;color:rgba(237,241,247,.68);margin-top:3px;line-height:1.25}
.lym-own-p{font-size:12px;color:rgba(237,241,247,.58);font-variant-numeric:tabular-nums;margin-top:1px}
.lym-ht{background:color-mix(in srgb,var(--c) 5%,transparent);border:1px solid color-mix(in srgb,var(--c) 27%,transparent);border-radius:var(--r-sm);padding:5px 4px;text-align:center}
.lym-ht-n{font-size:15px;font-weight:700;color:var(--c);line-height:1;font-variant-numeric:tabular-nums}
.lym-ht-track{height:3px;background:rgba(255,255,255,.1);border-radius:4px;margin:2px 0}
.lym-ht-fill{height:100%;background:var(--c);border-radius:4px}
.lym-ht-l{font-size:12px;color:rgba(244,248,255,.7);line-height:1.25}
.lym-fin{min-width:0;background:rgba(255,255,255,.030);border:1px solid rgba(240,180,80,.155);border-radius:8px;padding:8px 9px;box-sizing:border-box}
.lym-fin-l{font-size:12px;color:rgba(237,241,247,.68);margin-bottom:3px;line-height:1.25}
.lym-fin-v{font-size:15px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.lym-net{margin-top:7px;background:rgba(255,255,255,.030);border:1px solid rgba(240,180,80,.155);border-radius:8px;padding:8px 9px;box-sizing:border-box;border-right:2px solid var(--good)}
.lym-net-l{font-size:11px;font-weight:600;color:rgba(244,248,255,.58);letter-spacing:.01em;text-transform:none}
.lym-net-v{font-size:18px;font-weight:700;color:var(--good);margin-top:3px;font-variant-numeric:tabular-nums;white-space:nowrap}
.lym-mt3{margin-top:9px}
.lym-alert{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.030);border:1px solid rgba(240,180,80,.155);border-radius:8px;padding:8px 9px;box-sizing:border-box;border-right:2px solid var(--c)}
.lym-alert--bold{border-right-width:2px}
.lym-alert-n{font-size:22px;font-weight:700;color:var(--c);line-height:1;flex:0 0 auto;font-variant-numeric:tabular-nums}
.lym-alert-n--lg{font-size:28px}
.lym-alert-t{font-size:13px;font-weight:600;color:rgba(244,248,255,.9);line-height:1.2}
.lym-alert-s{font-size:12px;color:rgba(237,241,247,.6);margin-top:2px;line-height:1.3}
/* side columns, tidied (2026-10-06): one stacked bar per breakdown with
   aligned rows under it, a quiet note line, even section rhythm */
.lym-col-body .lym-h{margin:18px 0 9px}
.lym-col-body .lym-h:first-child{margin-top:2px}
.lym-col-body>.lym-hero:first-child+.lym-h{margin-top:16px}
.lym-sbar{display:flex;gap:2px;height:8px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,.06);margin:2px 0 8px}
.lym-sbar>span{min-width:3px}
.lym-srow{display:grid;grid-template-columns:10px minmax(0,1fr) auto 40px;align-items:center;gap:8px;padding:4px 0;font-size:13px;transition:opacity .2s}
.lym-srow>i{width:8px;height:8px;border-radius:50%}
.lym-srow>span{color:rgba(237,241,247,.74)}
.lym-srow>b{font-weight:600;color:var(--txt);font-variant-numeric:tabular-nums;text-align:left}
.lym-srow>em{font-style:normal;font-size:12px;color:rgba(237,241,247,.5);text-align:left;font-variant-numeric:tabular-nums}
.lym-note{font-size:12px;line-height:1.45;color:rgba(237,241,247,.56);margin-top:7px}
.lym-note--gap{margin-top:0;padding:8px 10px;border:1px dashed rgba(240,180,80,.3);border-radius:8px;color:rgba(237,241,247,.68)}
.lym-col-body .lym-chips{gap:8px}
.lym-col-body .lym-net{margin-top:9px}
.lym-net-s{font-size:12px;color:rgba(237,241,247,.6);margin-top:6px;line-height:1.45}
.lym-col-body .lym-chip{padding:10px 11px}
.lym-col-body .lym-chip-v{font-size:18px}

/* ── SECTIONS ────────────────────────────────────────────────────────── */
.pg{
  padding:13px 56px 17px 56px;
  max-width:1680px;
  margin-right:auto;
  margin-left:auto;
  border-bottom:1px solid var(--bdr);
  position:relative;
  /* Centred like the chapter bar (2026-10-09): a leftover margin-left:0
     held every section flush left past 1680 px (240 px empty on the right
     at 1920, 880 px at 2560). */
  scroll-margin-top:68px;
  /* No entry fade (2026-10-02): every section and KPI tile faded in from
     opacity 0 over .4-.52 s on each load, 68-92% of the screen at once
     (measured live): the "blink" on every page. Content now shows as soon as
     it is drawn; the deck switch itself is a crossfade (DECK-SWITCH below). */
}
.pg:first-of-type{padding-top:1px;padding-bottom:12px}
#ceo-s1,#cfo-s1,#coo-s1,#pmv-s1,#site-s1{padding-top:14px!important}
#ceo-s1{padding-bottom:14px!important}
.pg::before{content:none}

/* Section header — the one component every deck shares.
   <div class="sec-h"><span class="sec-n">03</span><span class="sec-t">Title</span></div> */
.sec-h{
  display:flex;align-items:baseline;gap:16px;
  margin:0 0 9px 0;
  min-width:0;
}
.sec-n{
  font-family:var(--disp);
  font-size:30px;
  font-weight:700;
  line-height:1;
  color:var(--gold-hot);
  letter-spacing:-.01em;
  flex-shrink:0;
  font-variant-numeric:tabular-nums;
}
.sec-t{
  font-family:var(--disp);
  font-size:24px;
  font-weight:600;
  line-height:1.1;
  letter-spacing:.01em;
  text-transform:none;
  color:var(--txt);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
}
.sec-h::after{content:'';flex:1;height:1px;min-width:32px;align-self:center;background:linear-gradient(-90deg,rgba(240,180,80,.5),rgba(255,255,255,.05));clip-path:inset(0 100% 0 0);transition:clip-path .85s cubic-bezier(.16,1,.3,1) .08s}
.lx-in .sec-h::after{clip-path:inset(0 0 0 0)}
@media print{.sec-h::after{clip-path:inset(0 0 0 0)!important;transition:none!important}}
.sec-h .lx-rule{display:none}
/* section() helper (site / tool decks) titles get the same treatment */
.pg>.st{font-family:var(--disp);font-size:24px;font-weight:600;letter-spacing:.04em;line-height:1.1;color:var(--txt);margin-bottom:14px;display:flex;align-items:center;gap:16px}
.pg>.st::after{content:'';flex:1;height:1px;min-width:32px;background:linear-gradient(-90deg,rgba(240,180,80,.5),rgba(255,255,255,.05))}
@media(max-width:768px){.pg>.st{font-size:17px;margin-bottom:14px}}

.h1{font-family:var(--disp);font-size:32px;font-weight:600;letter-spacing:.01em;margin-bottom:10px;line-height:1.15;color:var(--txt)}
.eye{position:relative;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--gold);margin-bottom:10px;display:flex;align-items:center;gap:10px}
.eye::before{content:'';display:inline-block;width:18px;height:1px;background:var(--gold)}
.eye::after{content:none}
.st{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--txt3);margin-bottom:12px}
.lead,.cb,.ib,.ly-para{font-variant-numeric:normal}
.lead{font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--txt2);font-weight:400;max-width:88ch}

/* ── KPI TILES ───────────────────────────────────────────────────────── */
.kg{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:10px 0;align-items:start}
.kpi{
  background:var(--bg2);
  border:1px solid var(--bdr);
  border-radius:var(--r);
  padding:13px 16px 12px;
  position:relative;
  overflow:hidden;
  transition:border-color .2s;
  cursor:default;
  box-shadow:var(--shadow);
  text-align:right;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:6px;
}
.kpi::before,.kpi::after{content:none}
.kpi:hover{border-color:var(--bdr-gold);transform:none;box-shadow:var(--shadow)}
.kl{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--txt3);margin-bottom:0}
.kv{font-family:var(--disp);font-variant-numeric:tabular-nums;font-size:34px;font-weight:600;letter-spacing:-.01em;line-height:1.05;color:var(--txt)}
.kv:not([style]){background:none;-webkit-text-fill-color:currentColor;color:var(--gold-hot);filter:none}
.ks{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--txt3);margin-top:0;letter-spacing:0}
.kpi-dot{display:none}
/* ── KPI tile + stacked bar (shared primitives, standardized 2026-09-05) ── */
.kpi.kpi--acc{border-color:color-mix(in srgb,var(--acc) 13%,transparent);background:linear-gradient(-135deg,var(--bg2),color-mix(in srgb,var(--acc) 3%,transparent));flex:1;box-sizing:border-box;position:relative}
.kpi.kpi--acc .kpi-dot{background:var(--acc);color:var(--acc)}
.kpi.kpi--acc .kv{color:var(--acc)}
.kpi-hint{position:absolute;top:8px;left:10px;font-size:13px;color:rgba(240,180,80,.32);cursor:default;line-height:1;transition:color .2s}
.kpi-hint:hover{color:var(--gold-a80)}
.kpi-deltas{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap}
.kpi-delta{display:inline-flex;align-items:center;gap:3px;background:color-mix(in srgb,var(--dc) 9%,transparent);border:1px solid color-mix(in srgb,var(--dc) 25%,transparent);border-radius:var(--r-sm);padding:1px 6px;font-size:13px;font-weight:600;color:var(--dc);font-family:var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.gauge-card{cursor:pointer;background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r-lg);padding:10px 12px 9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;height:100%;box-sizing:border-box}
.gauge-title{font-size:12px;color:var(--txt3);text-transform:none;letter-spacing:.01em;z-index:1}
.gauge-svg{position:relative;z-index:1}
.gauge-svg svg{overflow:visible;display:block;max-width:180px}
.gauge-status{font-size:13px;font-weight:700;color:var(--sc);letter-spacing:.01em;text-transform:none;z-index:1;margin-top:2px}
.gauge-card .ly-mrow-b i{background:var(--good)}
.burn-v--good{color:var(--good)}
.burn-v--waste{color:var(--crim-hot)}
.burn-annual{border-top:1px solid var(--bdr);padding-top:6px;width:100%;display:flex;flex-wrap:wrap;gap:2px 12px;justify-content:space-between;align-items:baseline;z-index:1}
.burn-annual-v{white-space:nowrap}
.burn-annual-l{font-size:12px;color:var(--txt3);text-transform:none;letter-spacing:.02em}
.burn-annual-v{font-size:15px;font-weight:700;color:var(--gold-hot);font-family:var(--sans);font-variant-numeric:tabular-nums}
/* Site-paid fuel under the burn gauge (2026-09-24): paid by the sites, shown
   beside the burn and never inside it. */
.burn-fuel{padding-top:4px;width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;column-gap:8px;z-index:1}
.burn-fuel-l{font-size:12px;color:var(--txt3);white-space:nowrap}
.burn-fuel-n{flex-basis:100%;font-size:11px;color:var(--txt4);text-align:right}
.burn-fuel-v{font-size:13px;font-weight:600;color:var(--txt2);font-family:var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.burn-bdg{margin-top:5px}
.burn-z{z-index:1}
.burn-incomplete-hint{font-size:12px;font-family:var(--sans);color:var(--txt4);text-align:center;margin:-4px 0 2px;line-height:1.4;z-index:1}
/* Monthly Burn composition line. States how the headline figure above it is
   built, on every deck that renders burnCard. Deliberately quiet: it is a
   provenance note, not a metric. */
/* Metric explanation affordance. A dotted underline on the label itself —
   no added glyph, so a screen of KPIs does not turn into a screen of
   question marks. Inherits its colour from the label so it stays quiet. */
.ly-help{cursor:pointer;color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
.ly-help-m{color:var(--gold-hot);font-weight:700;font-size:1.1em;line-height:1;
  padding:0 3px 0 1px;opacity:.72;transition:opacity .15s;user-select:none}
.ly-help:hover .ly-help-m,.ly-help:focus-visible .ly-help-m{opacity:1}
.ly-help:hover{opacity:.85}
.ly-help:focus-visible{outline:1px solid var(--gold-hot);outline-offset:3px;border-radius:3px}
/* Explanation modal body */
.mh-plain{font-size:14px;line-height:1.55;color:var(--txt);margin-bottom:4px}
.mh-h{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--ac);opacity:.85;margin:14px 0 4px}
.mh-h--warn{color:var(--gold-hot);opacity:.9}
.mh-t{font-size:13px;line-height:1.55;color:var(--txt2)}
.burn-formula{font-size:12px;font-family:var(--sans);color:var(--txt4);text-align:center;margin:2px 0 4px;line-height:1.45;z-index:1;max-width:96%;font-variant-numeric:tabular-nums}
.sb-title{margin-bottom:8px}
.sb-track{display:flex;height:14px;border-radius:var(--r-sm);overflow:hidden;background:rgba(255,255,255,.06);margin-bottom:12px}
.sb-seg{height:100%}
.sb-seg--click{cursor:pointer;transition:opacity .15s}
.sb-seg--click:hover{opacity:.75}
.sb-legend{display:flex;flex-direction:column;gap:6px}
.sb-leg{display:flex;align-items:center;gap:6px}
.sb-leg--click{cursor:pointer;padding:3px 5px;border-radius:var(--r-sm);transition:background .15s}
.sb-leg--click:hover{background:var(--gold-a08)}
.sb-sw{width:9px;height:9px;border-radius:4px;flex-shrink:0}
.sb-lbl{font-size:13px;color:var(--txt3)}
.sb-num{font-size:13px;font-weight:700;color:var(--txt);margin-right:auto;padding-right:8px}

.mobile-hero{display:none}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}

/* ── CARDS / PANELS ──────────────────────────────────────────────────── */
/* ── FIELD OPERATIONS CONSOLE (2026-09-19) ────────────────────────────────
   Deliberately here in the shared stylesheet rather than inline in the deck
   file: src/decks/mobile.ts drifted precisely because it carried its own CSS,
   so a shared fix reached every deck except the one nobody opened. Colours come
   from the tokens above, never from literals. */
.fo-bar{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}
.fo-tabs{display:flex;gap:6px;flex-wrap:wrap}
.fo-tab{display:inline-block;padding:8px 15px;border-radius:var(--r);text-decoration:none;
  font-size:13px;font-weight:600;background:var(--bg2);border:1px solid var(--bdr);
  color:var(--white-a70);min-height:36px;line-height:20px}
.fo-tab:hover{border-color:var(--gold-a50)}
.fo-tab.on{background:var(--gold-a08);border-color:var(--gold-a50);color:var(--gold-hot)}
.fo-scope{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;
  color:var(--white-a55)}
/* Width is explicit: an <input list> sizes to its VALUE, which measured 194px
   empty and shrank to 173px once a short site was chosen — too narrow to read
   a name like "KING FAISAL SPECIALIST HOSPITAL" without scrolling the field. */
.fo-sel{background:var(--bg2);color:var(--gold-hi);border:1px solid var(--bdr);
  border-radius:var(--r);padding:7px 11px;font-family:inherit;font-size:16px;
  min-height:44px;width:340px;max-width:100%}
.fo-sel:focus{outline:none;border-color:var(--gold-a50)}
.fo-scope label{font-size:11px;letter-spacing:.01em;text-transform:none}
.fo-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:20px;
  background:var(--gold-a08);border:1px solid var(--gold-a35);color:var(--gold-hot);
  font-size:12.5px;font-weight:600}
.fo-chip a{color:var(--white-a70);text-decoration:none;font-weight:700}
.fo-chip a:hover{color:var(--gold-hi)}
.fo-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(152px,1fr));gap:10px;
  margin-bottom:18px}
.fo-tile{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r);
  padding:13px 15px;border-right:3px solid var(--gold-hot)}
.fo-tile .v{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;
  color:var(--gold-hi);line-height:1.15}
.fo-tile .l{font-size:12px;color:var(--txt3);margin-top:4px}
.fo-tile.live{border-right-color:var(--sky)}
.fo-tile.live .v{color:var(--sky)}
.fo-tile.gapv{border-right-color:var(--gold-hot)}
.fo-tile.gapv .v{color:var(--gold-hot)}
.fo-t{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:8px}
.fo-t th{text-align:right;padding:8px 10px;font-size:12px;letter-spacing:0;
  text-transform:none;color:var(--txt3);border-bottom:1px solid var(--bdr);
  white-space:nowrap}
.fo-t td{padding:9px 10px;border-bottom:1px solid var(--white-a05);vertical-align:top}
.fo-t tr:hover td{background:var(--white-a03)}
.fo-t .r{text-align:left}
.fo-t .m{font-family:var(--sans);font-weight:600;font-variant-numeric:tabular-nums}
.fo-t a{color:var(--sky);text-decoration:none}
.fo-t a:hover{color:var(--gold-hi);text-decoration:underline}
/* A duration that is NOT a number is a data gap, never a zero (rule 5). It is
   styled to read as a gap so a reader cannot mistake it for a measurement. */
.fo-gap{color:var(--gold-hot);font-style:italic}
.fo-empty{padding:22px;text-align:center;color:var(--white-a55);font-size:13px;
  background:var(--bg2);border:1px dashed var(--bdr);border-radius:var(--r)}
.fo-note{font-size:12.5px;color:var(--white-a55);line-height:1.6;margin:10px 0 16px}
/* Supervisor row controls. Deliberately small and unemphasised: correcting a
   record is a rare, accountable act, not a primary action on the screen. */
.fo-mini{background:transparent;color:var(--white-a70);border:1px solid var(--bdr);
  border-radius:4px;padding:3px 8px;font-family:var(--sans);font-size:11px;font-weight:600;
  cursor:pointer;margin-left:5px;transition:border-color .15s,color .15s}
.fo-mini:hover{border-color:var(--gold-a50);color:var(--gold-hi)}
.fo-mini:disabled{opacity:.45;cursor:default}
.fo-mini.warn:hover{border-color:rgba(232,68,90,.5);color:var(--crim)}
.card{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r);padding:13px 16px;margin-bottom:8px;transition:border-color .2s;box-shadow:var(--shadow)}
.card:hover{border-color:var(--bdr-2)}
.ct{font-family:var(--sans);font-size:15px;font-weight:600;margin-bottom:6px;color:var(--txt);letter-spacing:-.005em}
.cb{font-family:var(--sans);font-size:14px;color:var(--txt2);line-height:1.48;font-weight:400}
.dc{background:var(--crim-d);border:1px solid rgba(232,68,90,.22);border-radius:var(--r);padding:16px 20px;margin-bottom:12px}
.dct{font-family:var(--sans);font-size:12px;font-weight:700;color:var(--crim);text-transform:none;letter-spacing:.02em;margin-bottom:6px}
.dcb{font-family:var(--sans);font-size:14px;color:var(--txt2);font-weight:400}
.swap-card{background:rgba(91,206,129,.07);border:1px solid rgba(91,206,129,.22);border-radius:var(--r);padding:16px 20px;margin-bottom:12px}

/* Decks build panels inline as style="background:var(--bg2);..." — this is
   the hook that gives every one of them the same surface, radius and depth. */
[style*="background:var(--bg2)"]{
  background:var(--bg2)!important;
  box-shadow:var(--shadow)!important;
  transition:border-color .2s ease;
}
.pg [style*="background:var(--bg2)"]:not([style*="overflow:hidden"])[style*="padding:12px"],
.pg [style*="background:var(--bg2)"]:not([style*="overflow:hidden"])[style*="padding:14px"],
.pg [style*="background:var(--bg2)"]:not([style*="overflow:hidden"])[style*="padding:16px"]{padding:13px 16px!important}
.pg [style*="background:var(--bg2)"]:not([style*="overflow:hidden"])[style*="padding:12px"],
.pg [style*="background:var(--bg2)"]:not([style*="overflow:hidden"])[style*="padding:14px"],
.pg [style*="background:var(--bg2)"]:not([style*="overflow:hidden"])[style*="padding:16px"],
.pg [style*="background:var(--bg2)"]:not([style*="overflow:hidden"])[style*="padding:18px"],
.pg [style*="background:var(--bg2)"]:not([style*="overflow:hidden"])[style*="padding:20px"]{border-radius:var(--r-lg)!important}
@media(hover:hover){
  [style*="background:var(--bg2)"]:hover{border-color:var(--bdr-2)!important;transform:none}
}
/* layout rows only — direct children of the section */
.pg > div[style*="gap:8px"]{gap:10px!important}
.pg > div[style*="gap:10px"]{gap:11px!important}
.pg > div[style*="gap:12px"]{gap:20px!important}
.pg > div[style*="margin-bottom:8px"]{margin-bottom:18px!important}
.pg > div[style*="margin-bottom:10px"]{margin-bottom:20px!important}
.pg > div[style*="margin-bottom:12px"]{margin-bottom:22px!important}
.pg > div[style*="margin-bottom:14px"]{margin-bottom:24px!important}

/* Instrument readouts: any large bold figure set inline uses the display face.
   This is the typographic signature of the system — one face for every
   headline number on every deck. */
[style*="font-weight:800"],[style*="font-weight:700"]{text-shadow:none}
[style*="font-weight:800"][style*="font-size:1"],
[style*="font-weight:800"][style*="font-size:2"],
[style*="font-weight:800"][style*="font-size:3"],
[style*="font-weight:800"][style*="font-size:4"],
[style*="font-weight:700"][style*="font-size:2"],
[style*="font-weight:700"][style*="font-size:3"],
[style*="font-weight:700"][style*="font-size:4"]{font-family:var(--disp);letter-spacing:-.005em;font-variant-numeric:tabular-nums}
[style*="font-weight:800"][style*="font-size:1"][style*="font-size:12"],
[style*="font-weight:800"][style*="font-size:1"][style*="font-size:13"],
[style*="font-weight:800"][style*="font-size:1"][style*="font-size:14"],
[style*="font-weight:800"][style*="font-size:1"][style*="font-size:15"],
[style*="font-weight:800"][style*="font-size:1"][style*="font-size:16"]{font-family:var(--sans);letter-spacing:0}

/* ── BARS / ROWS ─────────────────────────────────────────────────────── */
.br{display:flex;align-items:center;gap:12px;margin-bottom:9px;font-size:13px}
.bl{width:130px;color:var(--txt3);flex-shrink:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--sans);font-size:13px}
.bt{flex:1;height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
.bf{height:100%;border-radius:2px;transition:width .6s cubic-bezier(.4,0,.2,1)}
.bv{width:80px;font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500;color:var(--txt2);text-align:left}
.alr{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--bdr)}.alr:last-child{border-bottom:none}
.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:7px}

/* ── TABLES ──────────────────────────────────────────────────────────── */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{
  text-align:right;
  font-family:var(--sans);
  font-variant-numeric:tabular-nums;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em!important;
  text-transform:none;
  color:var(--txt3);
  padding:12px 14px;
  border-bottom:1px solid var(--bdr-2)!important;
  background:transparent;
  white-space:nowrap;
}
td{
  font-family:var(--sans);
  font-variant-numeric:tabular-nums;
  padding:11px 14px;
  border-bottom:1px solid var(--bdr);
  color:var(--txt2);
  transition:background .12s;
  font-size:13.5px;
  font-weight:400;
  vertical-align:middle;
}
tr:nth-child(even) td{background:transparent}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(255,255,255,.035)!important;border-top:none;border-bottom:1px solid var(--bdr)}
tr:hover td:first-child,tr:hover td:last-child{box-shadow:none}
.row-crit td{border-right:2px solid var(--crim)!important}.row-crit{background:rgba(232,68,90,.05)!important}
.row-crit td:first-child{text-shadow:none}
.row-warn td{border-right:2px solid var(--gold)!important}
.row-ok td{border-right:2px solid var(--good)!important}

button{font-family:var(--sans)}
input[type=text],input[type=search],input[type=number],select,textarea{
  width:100%;
  padding:11px 14px;
  border:1px solid var(--bdr-2);
  border-radius:var(--r-sm);
  font-size:14px;
  font-family:var(--sans);
  outline:none;
  background:var(--bg5);
  color:var(--txt);
  margin-bottom:14px;
  box-sizing:border-box;
  transition:border-color .2s,box-shadow .2s;
}
input[type=text]:focus,input[type=search]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:var(--gold-hot);box-shadow:0 0 0 3px rgba(240,180,80,.16)}
footer{padding:22px 64px;border-top:1px solid var(--bdr);display:flex;justify-content:space-between;font-family:var(--sans);font-size:12.5px;color:var(--txt3);letter-spacing:.02em}
.pbi-wrap{margin:0 -64px -52px;border-top:1px solid var(--bdr)}
.pbi{width:100%;height:580px;border:none;overflow:hidden;background:var(--bg2);display:block}

/* ── CALLOUTS ────────────────────────────────────────────────────────── */
.ib{padding:14px 18px;border-radius:var(--r);font-family:var(--sans);font-size:14px;line-height:1.65;margin-bottom:12px;font-weight:400;border:1px solid var(--bdr);background:var(--bg2)}
.ibr{background:var(--crim-d);border-color:rgba(232,68,90,.22);color:var(--txt)}
.iby{background:var(--gold-l);border-color:rgba(240,180,80,.24);color:var(--txt)}
.ibb{background:var(--sapp-d);border-color:rgba(126,184,212,.22);color:var(--txt)}
.ibg{background:var(--emer-d);border-color:rgba(91,206,129,.22);color:var(--txt)}
.ibp{background:var(--viol-d);border-color:rgba(185,149,228,.22);color:var(--txt)}
.fbox{padding:16px 20px;background:var(--bg2);border:1px solid var(--bdr);border-right:3px solid var(--gold);border-radius:var(--r);font-family:var(--sans);font-size:14px;color:var(--txt2);margin-bottom:16px;line-height:1.7;font-weight:400}

/* ── TAGS ────────────────────────────────────────────────────────────── */
.tag{
  display:inline-flex;align-items:center;
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  text-transform:none;
  letter-spacing:0;
  padding:3px 8px;
  border-radius:4px;
  line-height:1.4;
  border:1px solid transparent;
}
.tag:hover{transform:none}
[onmouseenter*="opacity="]{transition:border-color .18s ease}
[onmouseenter*="opacity="]:hover{transform:none;box-shadow:none}
.tg{background:var(--emer-d);color:var(--good);border-color:rgba(91,206,129,.28)}
.tr{background:var(--crim-d);color:var(--crim-hot);border-color:rgba(232,68,90,.28)}
.ta{background:var(--gold-l);color:var(--gold-hot);border-color:rgba(240,180,80,.28)}
.tb{background:var(--sapp-d);color:var(--info);border-color:rgba(126,184,212,.28)}
.tp{background:var(--viol-d);color:var(--viol);border-color:rgba(185,149,228,.28)}

/* ── INTEL BANNER (situation brief) ──────────────────────────────────── */
@keyframes ib-fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes ib-verdict{from{opacity:0}to{opacity:1}}
@keyframes ib-greet{from{opacity:0}to{opacity:1}}
@keyframes intel-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes ib-sweep{0%{opacity:0}100%{opacity:0}}
@keyframes ib-corona{0%,100%{opacity:.5}50%{opacity:.8}}
.intel-banner{
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--bg2);
  border:1px solid var(--bdr-2);
  border-radius:var(--r-lg);
  margin:0 0 14px 0;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.intel-banner{border-color:rgba(var(--vc-rgb),.22);box-shadow:0 16px 56px rgba(0,0,0,.7),0 0 40px rgba(var(--vc-rgb),.05) inset}
.intel-head-right{display:flex;align-items:center;gap:10px}
.intel-ai-ts{font-family:var(--sans);font-size:12px;font-variant-numeric:tabular-nums;color:var(--txt4);white-space:nowrap}
.mh-val.intel-ai-ts{font-size:16px;color:var(--txt4)}
.intel-ai-ts.is-aging,.mh-val.intel-ai-ts.is-aging{color:var(--gold-hot)}
.intel-ai-ts.is-stale,.mh-val.intel-ai-ts.is-stale{color:var(--crim-hot)}
.intel-verdict-svg{position:absolute;inset:0;width:100%;height:100%}
.intel-verdict-word{color:var(--vc)}
.mh-dot.mh-dot--vc{background:var(--vc);box-shadow:0 0 8px var(--vc)}
.mh-val.mh-val--vc{color:var(--vc)}
.intel-banner::before{content:'';position:absolute;top:0;right:0;left:0;height:2px;background:linear-gradient(-90deg,var(--gold-hot),rgba(240,180,80,.15) 60%,transparent);z-index:20;animation:none}
.intel-banner-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 24px;
  border-bottom:1px solid var(--bdr);
  background:transparent;
  min-height:38px;
  position:relative;
  z-index:2;
}
.intel-banner-eyebrow{display:flex;align-items:center;gap:10px;flex:1}
.intel-banner-icon{font-size:13px;color:var(--gold-hot);flex-shrink:0;filter:none;line-height:1}
.intel-label{font-family:var(--sans);font-size:12px;color:var(--gold);text-transform:none;font-weight:600}
.intel-class-tag{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--txt3);text-transform:none;padding:3px 9px;border:1px solid var(--bdr-2);border-radius:4px;background:transparent;flex-shrink:0}
.intel-banner-body{display:flex;align-items:stretch;position:relative;z-index:2;min-height:64px}
/* 2026-09-21: was 250px with 50px of horizontal padding, which spent a fifth
   of a wide banner on three short lines and squeezed the brief that carries
   the actual content. 200px with tighter padding gives the text column back
   ~70px; the verdict word shrinks to match so "Critical" still fits on one
   line inside it. */
.intel-verdict-col{
  width:200px;min-width:200px;flex-shrink:0;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  padding:18px 22px 18px 16px;
  border-left:1px solid var(--bdr);
  position:relative;gap:10px;overflow:hidden;
}
.intel-verdict-bg{position:absolute;inset:0;pointer-events:none;opacity:.55}
.intel-verdict-word{
  font-family:var(--disp);
  font-size:clamp(26px,2.2vw,36px);
  font-weight:700;
  letter-spacing:.01em;
  text-transform:none;
  line-height:1;
  white-space:nowrap;
  overflow:hidden;
  max-width:100%;
  position:relative;z-index:1;
  animation:ib-verdict .5s ease .1s both;
}
.intel-greet{font-family:var(--sans);font-size:15px;font-weight:500;color:var(--txt3);letter-spacing:.02em;text-transform:none;display:flex;align-items:center;gap:8px;position:relative;z-index:1;animation:ib-greet .5s ease .3s both;margin-right:0}
.intel-greet-name{font-family:var(--sans);font-size:17px;font-weight:600;color:var(--gold-hot);letter-spacing:.02em;text-transform:none;position:relative;z-index:1;animation:ib-greet .5s ease .35s both;line-height:1.3;padding-right:15px}
.intel-live-dot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:none;display:inline-block;animation:intel-pulse 2.4s ease-in-out infinite;flex-shrink:0}
.intel-text-col{flex:1;padding:18px 28px 18px 30px;display:flex;flex-direction:column;justify-content:center;gap:8px;position:relative;overflow:hidden}
.intel-text-col::before{content:none}
.intel-body{font-family:var(--sans);font-size:15.5px;color:var(--txt);line-height:1.65;font-weight:400;letter-spacing:0;animation:ib-fadein .5s ease .15s both;max-width:110ch}
.intel-attr{font-family:var(--sans);font-size:12px;letter-spacing:.02em;color:var(--txt3);text-transform:none;padding:9px 28px 10px 28px;border-top:1px solid var(--bdr);display:flex;align-items:center;gap:10px;position:relative;z-index:2}
.intel-attr-dot{width:4px;height:4px;border-radius:50%;background:var(--gold);flex-shrink:0}

@keyframes fadeUp{from{opacity:0}to{opacity:1}}
.kpi:nth-child(1){animation-delay:.02s}.kpi:nth-child(2){animation-delay:.05s}.kpi:nth-child(3){animation-delay:.08s}
.kpi:nth-child(4){animation-delay:.11s}.kpi:nth-child(5){animation-delay:.14s}.kpi:nth-child(6){animation-delay:.17s}
.kpi:nth-child(7){animation-delay:.20s}.kpi:nth-child(8){animation-delay:.23s}

/* ── SCROLLBAR ───────────────────────────────────────────────────────── */
/* Fallback sized to IBM Plex Sans (2026-10-10): the web-font swap no longer moves the page. */
@font-face{font-family:'IBM Plex Sans Fallback';src:local('Arial'),local('Helvetica Neue'),local('Liberation Sans');size-adjust:105%;ascent-override:97.6%;descent-override:26.2%;line-gap-override:0%}
:root{scrollbar-color:var(--gold-d) var(--bg);scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--gold-d);border-radius:6px;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--gold-hot)}

/* ── AMBIENT MESH ─────────────────────────────────────────────────────
   One fixed full-viewport layer, not per-card. 2026-09-29 (perf P-02): the
   drift used to animate background-position, which repaints the whole
   viewport every frame (live CEO idle: 509 ms/s of main-thread CPU, 96 with
   the mesh stopped). Each gradient now sits on its own pseudo-element, with
   the same background-size/position the old layers had at 0%, and drifts by
   transform, which the compositor runs without repainting. 8% of the 60%
   spare tile width is 4.8% of the viewport (6% -> 3.6% vertically), so the
   picture is the same frame for frame. The pseudo-elements have no
   descendants and .ly-bgmesh itself carries no transform, so no fixed or
   absolute element gains a new containing block (rules §4). */
@keyframes ly-mesh-drift-a{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(4.8%,-3.6%,0)}}
@keyframes ly-mesh-drift-b{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-4.8%,3.6%,0)}}
.ly-bgmesh{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;overflow:hidden}
.ly-bgmesh::before,.ly-bgmesh::after{content:"";position:absolute;inset:0;background-size:160% 160%;will-change:transform;animation:ly-mesh-drift-a 70s ease-in-out infinite}
.ly-bgmesh::before{background-image:radial-gradient(ellipse 60% 50% at 15% 10%,rgba(214,165,74,.05),transparent 60%);background-position:100% 0%}
.ly-bgmesh::after{background-image:radial-gradient(ellipse 55% 45% at 90% 95%,rgba(214,165,74,.04),transparent 60%);background-position:0% 100%;animation-name:ly-mesh-drift-b}
/* Long off-screen table scrollers (Site; perf P-04): skipped for style,
   layout and paint until near the viewport. Only on boxes that hold no
   fixed/absolute descendants: content-visibility implies layout + paint
   containment, which would trap them (rules §4). 480px = the v3 box cap. */
.ly-cv-box{content-visibility:auto;contain-intrinsic-size:auto 480px}
/* Decorative loops stop while the tab is hidden (the class is set by the
   visibilitychange hook in the head script). */
html.ly-hidden *,html.ly-hidden *::before,html.ly-hidden *::after{animation-play-state:paused!important}

/* ── VERIFIED SEAL ────────────────────────────────────────────────────── */
.ly-seal{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}
.ly-seal-ring{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--gold);background:radial-gradient(circle at 35% 30%,rgba(240,180,80,.22),transparent 65%);display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}
.ly-seal-ring::before{content:'';position:absolute;inset:3px;border:1px solid rgba(240,180,80,.35);border-radius:50%}
.ly-seal-ring svg{width:11px;height:11px}
.ly-seal-txt{font-family:var(--sans);font-size:12px;font-weight:600;color:var(--gold);text-transform:none;line-height:1.25}
.ly-seal-txt b{display:block;color:var(--txt3);font-weight:500;font-size:12px;text-transform:none}

/* ── METALLIC TAG BEVEL ───────────────────────────────────────────────── */
.tg,.tr,.ta,.tb,.tp,.tag--green,.tag--red,.tag--amber,.tag--blue,.tag--purple{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.18)}

/* ── AI EVIDENCE TRACE ────────────────────────────────────────────────── */
.ev-trace{margin-top:10px;position:relative;z-index:1}
.ev-toggle{background:none;border:none;padding:0;font-family:var(--sans);font-size:12px;font-weight:600;color:var(--gold);cursor:pointer;display:inline-flex;align-items:center;gap:5px;opacity:.85}
.ev-toggle:hover{opacity:1}
.ev-toggle .ev-arrow{display:inline-block;transition:transform .18s ease}
.ev-toggle[aria-expanded="true"] .ev-arrow{transform:rotate(-90deg)}
.ev-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ev-grid[hidden]{display:none}
.ev-chip{display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--bdr-2);border-radius:6px;background:var(--bg2);font-family:var(--sans);font-size:12px;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.ev-k{color:var(--txt4);text-transform:none;font-size:12px}
.ev-v{color:var(--txt);font-weight:600}

/* ── SITUATION BRIEF — THREE SENTENCES, THREE LINES ──────────────────────
   claude.ts mandates exactly three sentences doing three different jobs:
   S1 verdict, S2 pattern, S3 directive. Reflowed into one paragraph that
   structure was invisible, so the reader had to parse the whole block to find
   the verdict. The hierarchy below does that work: S1 reads as a headline, S2
   recedes to supporting weight, and S3 carries a rule in the verdict colour
   because it is the only line that asks for an act. The labels make the
   contract visible — a line that stops doing its stated job is wrong on sight
   rather than three months later, which is why the label text tracks the role
   question in claude.ts rather than what the line ought to say.
   Applies only when the brief splits cleanly to three; see shared.ts. */
.intel-brief{display:flex;flex-direction:column;gap:9px;animation:ib-fadein .5s ease .15s both}
.intel-s1{margin:0;font-family:var(--sans);font-size:18.5px;line-height:1.4;font-weight:600;color:var(--txt);letter-spacing:-.008em}
.intel-s2{margin:0;font-family:var(--sans);font-size:15px;line-height:1.55;color:var(--txt2);font-weight:400}
.intel-s3{margin:0;font-family:var(--sans);font-size:15px;line-height:1.55;color:var(--txt);font-weight:500;padding-right:12px;border-right:2px solid rgba(var(--vc-rgb),.6)}
/* Labels sit on the text baseline rather than stacking above it: a block label
   cost a whole line each and pushed the three sentences apart, which is what
   made the banner read as scattered rather than as one brief. */
.intel-slbl{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--gold);opacity:.95;margin-left:9px;white-space:nowrap}
.intel-slbl--vc{color:rgba(var(--vc-rgb),1)}

/* ── HANDOFF CHIP ─────────────────────────────────────────────────────────
   Whose desk the concentration lands on. Computed in core/concentration.ts and
   rendered here rather than written into S3, because several personas forbid a
   routing instruction in the prose. Inherits --vc so it reads as part of the
   verdict rather than as a separate alarm. */
.ly-handoff{display:inline-flex;align-items:center;gap:10px;margin-top:2px;padding:6px 11px 6px 12px;border:1px solid rgba(var(--vc-rgb),.30);border-radius:7px;align-self:flex-start;background:linear-gradient(-90deg,rgba(var(--vc-rgb),.11),rgba(var(--vc-rgb),.02));position:relative;z-index:1;flex-wrap:wrap;max-width:100%}
.ly-handoff-lbl{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--txt4);white-space:nowrap}
.ly-handoff-what{font-family:var(--sans);font-size:13px;color:var(--txt);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.ly-handoff-arrow{color:rgba(var(--vc-rgb),.85);font-size:13px;line-height:1}
.ly-handoff-who{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--gold-hot);text-decoration:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.ly-handoff-who:hover{text-decoration:underline}
.ly-handoff-deck{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--txt3);border-right:1px solid var(--bdr-2);padding-right:8px}
.ly-handoff--self .ly-handoff-who{color:var(--txt2);cursor:default}

/* ── TOOLBELT (Time Travel + Command Palette triggers) ───────────────────── */
#ly-toolbelt{position:fixed;right:20px;bottom:20px;z-index:9400;display:flex;flex-direction:column;gap:8px}
.ly-toolbelt-btn{width:40px;height:40px;border-radius:50%;background:var(--panel-bg);border:1px solid rgba(240,180,80,.4);color:var(--gold);font-size:15px;font-family:var(--sans);cursor:pointer;box-shadow:0 4px 20px rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;transition:border-color .18s ease,background .18s ease}
.ly-toolbelt-btn:hover{background:var(--gold-a08);border-color:var(--gold)}
@media(max-width:768px){#ly-toolbelt{right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:6px}.ly-toolbelt-btn{width:44px;height:44px;font-size:15px;box-shadow:0 3px 14px rgba(0,0,0,.5)}}
/* 2026-09-29 (audit V-04): the toolbelt (z 9400) and the AI button (z 9000)
   painted over open modals (.lx-modal z 9000) and covered modal rows on phones.
   lxOpenModal / bdModal set body.lx-modal-open while a dialog is up. */
body.lx-modal-open #ly-toolbelt,body.lx-modal-open #ly-tt-panel,body.lx-modal-open #ly-ai-btn{display:none!important}

/* ── TIME TRAVEL PANEL ────────────────────────────────────────────────── */
#ly-tt-panel{position:fixed;right:20px;bottom:70px;z-index:9400;width:280px;max-width:calc(100vw - 40px);border-radius:12px;border:1px solid var(--gold-a35);background:linear-gradient(-150deg,rgba(10,16,30,.98),rgba(11,15,23,.99));box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 0 .5px var(--gold-l) inset;padding:14px 16px 12px;display:none;flex-direction:column;gap:10px}
#ly-tt-panel.on{display:flex}
#ly-tt-panel .tt-hd{display:flex;align-items:center;justify-content:space-between;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--gold)}
#ly-tt-panel .tt-hd button{background:none;border:none;color:var(--txt3);font-size:16px;cursor:pointer;line-height:1;padding:0}
#ly-tt-range{width:100%;accent-color:var(--gold)}
#ly-tt-datepick{width:100%;background:var(--bg2);border:1px solid var(--bdr-2);border-radius:6px;color:var(--txt);font-family:var(--sans);font-size:13px;font-variant-numeric:tabular-nums;padding:6px 8px;color-scheme:dark}
#ly-tt-panel .tt-date{font-family:var(--sans);font-size:13px;color:var(--txt);text-align:center;font-weight:600;font-variant-numeric:tabular-nums}
#ly-tt-panel .tt-live{align-self:center;font-family:var(--sans);font-size:12px;font-weight:600;text-transform:none;background:none;border:1px solid var(--bdr-2);color:var(--txt4);border-radius:5px;padding:3px 10px;cursor:pointer}
#ly-tt-panel .tt-live.on{border-color:var(--good);color:var(--good)}
#ly-tt-panel .tt-note{font-size:12px;line-height:1.5;color:var(--txt4)}
.ly-hist-val{border-bottom:1.5px dashed var(--gold-a60);padding-bottom:1px}

/* ── COMMAND PALETTE (Cmd+K) ──────────────────────────────────────────── */
#ly-cmdk{display:none;position:fixed;inset:0;z-index:9500;background:rgba(4,6,14,.72);backdrop-filter:blur(6px);align-items:flex-start;justify-content:center;padding:12vh 20px 20px}
#ly-cmdk.on{display:flex}
#ly-cmdk-panel{width:100%;max-width:560px;border-radius:12px;border:1px solid var(--gold-a35);background:linear-gradient(-150deg,rgba(10,16,30,.98),rgba(11,15,23,.99));box-shadow:0 20px 70px rgba(0,0,0,.75),0 0 0 .5px var(--gold-l) inset;overflow:hidden}
#ly-cmdk-inputwrap{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--bdr)}
#ly-cmdk-icon{font-size:14px;flex-shrink:0;filter:grayscale(1) brightness(1.6)}
#ly-cmdk-input{flex:1;background:none;border:none;outline:none;color:var(--txt);font-family:var(--sans);font-size:15px;min-width:0}
#ly-cmdk-input::placeholder{color:var(--txt4)}
#ly-cmdk-esc{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--txt4);border:1px solid var(--bdr-2);border-radius:4px;padding:2px 6px;flex-shrink:0}
#ly-cmdk-list{max-height:52vh;overflow-y:auto;padding:6px}
.cmdk-grp{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--txt4);padding:10px 12px 4px}
.cmdk-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;cursor:pointer;font-family:var(--sans);font-size:13px;color:var(--txt2)}
.cmdk-item.sel,.cmdk-item:hover{background:var(--gold-a08);color:var(--txt)}
.cmdk-item .cmdk-ic{width:16px;text-align:center;color:var(--gold);flex-shrink:0;font-size:12px}
.cmdk-item .cmdk-sub{margin-right:auto;font-family:var(--sans);font-size:12px;color:var(--txt4)}
#ly-cmdk-empty{padding:24px;text-align:center;color:var(--txt4);font-size:13px}
@media(max-width:768px){#ly-cmdk{padding:8vh 12px 12px}}
@media print{#ly-toolbelt,#ly-tt-panel,#ly-cmdk{display:none!important}}

/* ── CRITICAL-TIER PULSE — opacity-only breathing glow, one element per card,
   never box-shadow/left (that combination cost 89/111 non-composited
   animations last time this was measured) ─────────────────────────────── */
@keyframes ly-crit-breathe{0%,100%{opacity:.55}50%{opacity:1}}
.ly-crit-pulse{position:relative}
.ly-crit-pulse::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:0 0 0 1.5px rgba(246,147,161,.85),0 0 22px 3px rgba(246,147,161,.45);animation:ly-crit-breathe 2.2s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.ly-crit-pulse::after{animation:none;opacity:.75}}

/* ── NAV SYSTEM PULSE — thin heartbeat line, scaleX only ─────────────────── */
@keyframes ly-nav-sweep{0%{transform:scaleX(0);opacity:0}8%{opacity:1}45%{transform:scaleX(1);opacity:0}100%{transform:scaleX(1);opacity:0}}
#ly-nav-pulse{position:absolute;right:0;bottom:0;height:1.5px;width:100%;transform-origin:right;pointer-events:none;background:linear-gradient(-90deg,transparent,var(--gold-hot),transparent);animation:ly-nav-sweep 5s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){#ly-nav-pulse{display:none}}

/* ── DECK-SWITCH TRANSITION — the browser crossfades between drawn pages ── */
/* 2026-10-02 (Taher: "the whole page blinks"). A deck link faded the page out
   and waited 170 ms before navigating, then every section and KPI tile faded
   in over .4-.52 s. Measured live (CEO -> CFO, 1440): ~0.6-0.8 s of blank or
   fading screen on every deck switch. Now the link navigates at once and a
   cross-document view transition crossfades the two drawn pages. Browsers
   without it navigate plainly; reduced motion gets no fade.
   The .12s body fade-in stays (2026-09-29, perf P-11): the web fonts load
   after first paint (preload + onload), and on a phone the header can re-wrap
   when they swap in, 30-50 px within ~100 ms of first paint. This keeps that
   out of sight (A/B on live data, 2026-10-02). */
body{opacity:0;animation:ly-page-in .12s ease-out forwards}
@keyframes ly-page-in{to{opacity:1}}
@media print{body{opacity:1!important;animation:none!important}}
@media(prefers-reduced-motion:reduce){body{opacity:1!important;animation:none!important}}
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.16s}

/* ── SPARKLINE DRAW-IN — clip-path mask over an already-drawn canvas ─────── */
.ly-spark-mask{clip-path:inset(0 100% 0 0);transition:clip-path 1s cubic-bezier(.16,1,.3,1)}
.ly-spark-mask.on{clip-path:inset(0 0 0 0)}
@media(prefers-reduced-motion:reduce){.ly-spark-mask{clip-path:inset(0 0 0 0)!important;transition:none!important}}

/* ── TIME TRAVEL SCRUB TRAIL — opacity toggle on a dedicated ::before glow
   ring, not border-color (border-color inline overrides on #ly-tt-panel
   proved unreliable in testing for reasons not fully diagnosed — opacity
   is the property every other reveal/fade in this file already relies on,
   so it's the safe choice here too). Boolean class toggle, not a continuous
   animation, so no non-composited-animation cost while idle. */
#ly-tt-panel::before{content:'';position:absolute;inset:-2px;border-radius:inherit;pointer-events:none;box-shadow:0 0 16px 3px rgba(240,180,80,.5);opacity:0;transition:opacity .25s ease}
#ly-tt-panel.ly-scrubbing::before{opacity:1}

/* ── MODAL OPEN/CLOSE — opacity+transform, display toggled by JS around it ── */
.lx-modal{opacity:0;transition:opacity .18s ease}
.lx-modal.on{opacity:1}
.lx-modal>div{transform:scale(.96);transition:transform .18s cubic-bezier(.2,.8,.3,1)}
.lx-modal.on>div{transform:scale(1)}
@media(prefers-reduced-motion:reduce){.lx-modal,.lx-modal>div{transition:none!important}}

/* ── TABLE ROW STAGGER-IN — reuses .lx-rv, capped delay so long tables don't
   crawl in for seconds ───────────────────────────────────────────────────── */
.ly-row-rv{opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease}
.ly-row-rv.lx-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.ly-row-rv{opacity:1!important;transform:none!important;transition:none!important}}

/* ── GAUGE ARC DRAW-IN — stroke-dashoffset via JS getTotalLength(), so it
   works for the arc's true length regardless of score/radius, not a guess.
   Stroke-only transition, compositor-friendly, one-time on load. ────────── */
.hg-score-arc{transition:stroke-dashoffset 1.1s cubic-bezier(.16,1,.3,1)}
@media(prefers-reduced-motion:reduce){.hg-score-arc{transition:none!important}}

/* ── VERIFIED SEAL SHIMMER — one-time sweep on load, not looping ─────────── */
@keyframes ly-seal-sweep{0%{transform:translateX(120%) skewX(20deg)}100%{transform:translateX(-220%) skewX(20deg)}}
.ly-seal-ring{overflow:hidden}
.ly-seal-ring::after{content:'';position:absolute;inset:0;width:40%;background:linear-gradient(-90deg,transparent,rgba(255,255,255,.55),transparent);animation:ly-seal-sweep 1.4s ease-out .5s 1 both}
@media(prefers-reduced-motion:reduce){.ly-seal-ring::after{animation:none;display:none}}

/* ── BUTTONS ─────────────────────────────────────────────────────────── */
.ly-showmore-btn{
  background:transparent;
  border:1px solid var(--bdr-gold);
  border-radius:var(--r-sm);
  color:var(--gold-hot);
  font-family:var(--sans);
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  padding:8px 18px;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
}
.ly-showmore-btn:hover{background:var(--gold-l);border-color:var(--gold-hot)}
.ly-showmore-btn:active{background:rgba(240,180,80,.2)}
@media(max-width:768px){.ly-showmore-btn{width:100%;padding:10px 16px}}

@media(max-width:768px){#ly-map-modal{top:56px!important}#ly-map-modal>div:first-child{height:40px;font-size:12px}}

/* ===== MOBILE — real responsive tier, ≤768px ===== */
@media(max-width:768px){
  /* 8px side gutter on phones (Taher, 2026-10-16: "the width of the phone is not filled"): the cards inside keep their own padding. */
  .pg{padding:12px 8px 24px 8px}
  .pg:first-of-type{padding-top:1px;padding-bottom:32px}
  .h1{font-size:21px}
  .kv{font-size:24px}
  .lead{font-size:14px;line-height:1.7}

  /* Collapse desktop 2-col layouts */
  .g2{grid-template-columns:1fr;gap:16px}

  /* Situation brief: .intel-banner-body is a flex row and .intel-verdict-col
     is a hard 220px. Measured at 390px that left the narrative column 125px
     wide holding 681 characters — a three-word-per-line ribbon beside a tall
     empty verdict cell. Stacking is the whole fix. */
  .intel-banner-body{flex-direction:column}
  /* The headline has to stay a headline on a phone without eating the screen,
     and the chip goes full width so the owner name never truncates. */
  .intel-s1{font-size:16.5px}
  .intel-s2,.intel-s3{font-size:14px}
  .intel-brief{gap:8px}
  /* On a phone the label would eat most of the first line, so it goes back to
     its own row where it costs width instead of readability. */
  .intel-slbl{display:block;margin:0 0 2px}
  .ly-handoff{width:100%;box-sizing:border-box}
  .ly-seal-txt{display:none}
  .ly-seal-ring{width:18px;height:18px}
  .intel-verdict-col{
    width:auto!important;min-width:0!important;
    border-left:none;
    border-bottom:1px solid rgba(240,180,80,.1);
    padding:12px 16px;
  }

  /* Neutralize hardcoded desktop grids that only had print-mode fallbacks before */
  [style*="grid-template-columns:repeat(3"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(4"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(5"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(6"]{grid-template-columns:repeat(2,1fr)!important}
  /* 7 and 8 were missing, so a 7-column KPI strip stayed 7 wide on a phone —
     68px per cell at 390px. Added 2026-08-14 when the PMV strip went 6 -> 7. */
  [style*="grid-template-columns:repeat(7"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(8"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:1fr 1fr 1fr"]{grid-template-columns:1fr 1fr!important}
  [style*="1.4fr"]{grid-template-columns:1fr!important}

  .kg{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px;margin:14px 0}
  .kpi{padding:13px 15px 11px 12px;border-radius:8px;border-right:3px solid var(--acc,transparent)}
  .kl{font-size:11.5px;margin-bottom:6px}
  .kv{font-size:21px}
  .ks{font-size:11.5px}

  /* KPI accent dot — visual punch that desktop never sees */
  .kpi-dot{display:block;position:absolute;top:11px;right:12px;width:7px;height:7px;border-radius:50%;box-shadow:0 0 7px currentColor}
  .kpi-dot ~ .kl{margin-right:13px}

  /* Hero glance strip under the intel banner — verdict/health/data quality at a glance */
  .mobile-hero{
    display:flex;gap:6px;margin-top:12px;padding-top:11px;
    border-top:1px solid rgba(240,180,80,.16);
  }
  .mh-item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:8px 4px;background:rgba(255,255,255,.02);border-radius:8px;border:1px solid rgba(255,255,255,.06)}
  .mh-dot{width:7px;height:7px;border-radius:50%;display:inline-block}
  .mh-lbl{font-family:var(--sans);font-size:12px;font-weight:600;text-transform:none;letter-spacing:0;color:rgba(240,244,255,.6)}
  .mh-val{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;color:var(--txt);letter-spacing:0}

  /* Chart canvases: desktop heights assume desktop width. On a narrow phone
     column these read cramped, so small chart wrappers need real vertical room.
     Exclude any wrapper with an explicit width — those are fixed-aspect (square)
     donut charts and must not be stretched.

     height:200px was wrong. Most of these wrappers hold the card's title and
     description as well as the canvas, so locking the box to 200px pushed the
     canvas below its own container and, with overflow visible, onto whatever
     card came next. Measured on CEO: a 166px canvas in a 200px wrapper whose
     bottom sat 50px past the card edge — the rotated axis labels landing on the
     next card's heading, and the age legend on the TCO card. It also caught
     sparkline hosts, giving CFO a 26px sparkline in a 200px box spilling 71px,
     which is the dead void in that card.

     min-height gives the same floor without capping growth, so the wrapper
     grows to fit title plus chart. Chart.js keeps its own inline canvas height,
     so nothing collapses. Sparkline hosts are excluded outright — a 26px trend
     line never needed a 200px box. */
  div:has(>canvas):not([style*="width:"]){
    min-height:200px;
    height:auto!important;
  }
  div:has(>canvas.lx-spark){min-height:0;height:auto!important}

  /* Section accordion (PMV). position:relative on the header is what anchors
     the chevron; no transform anywhere, since a transform here would make the
     header a containing block for anything fixed inside it. */
  .ly-acc-head{
    position:relative;cursor:pointer;
    min-height:44px;padding-left:38px;
    display:flex;align-items:center;flex-wrap:wrap;
    border-bottom:1px solid rgba(240,180,80,.18);
  }
  .ly-acc-chev{
    position:absolute;left:8px;top:10px;
    width:28px;height:28px;line-height:28px;text-align:center;
    font-family:var(--disp);font-size:18px;font-weight:700;
    color:var(--gold-hot);
    border:1px solid rgba(240,180,80,.34);border-radius:7px;
  }
  .ly-acc-head[aria-expanded="true"]{border-bottom-color:rgba(240,180,80,.4)}
  .ly-acc-body{padding-top:6px}

  /* Banner title: giving .intel-banner-eyebrow its own row (flex-basis 100%)
     leaves it the full 305px width for its 269px of text, one line instead of
     wrapping over five. This used to also need min-width:auto!important to
     undo the old blanket body*{min-width:0} — that blanket rule is gone (see
     shared.ts PHONE_CSS header), so auto is the default now and doesn't need
     restating here. */
  /* Floating buttons sit above the content: the Lightyear AI pill on every deck
     and #expFilterFab on Explorer, both fixed bottom-right at 48px tall with a
     12px inset. A fixed button always covers something mid-scroll, which is
     normal, but without room at the end of the document the final rows can
     never be scrolled clear of it — Explorer's donut legend was permanently
     underneath. This reserves that room. */
  body{padding-bottom:88px}

  .intel-banner-head{flex-wrap:wrap;row-gap:2px}
  .intel-banner-eyebrow{flex:1 1 100%!important}

  /* A closed row is a 44px header inside 46px of .pg padding plus a 14px
     header margin — 105px of box for 44px of content, which reads as a loose
     list rather than an index. The class is toggled from JS rather than
     matched on the body's inline display, which would be fragile. */
  .pg.ly-acc-closed{padding-top:6px!important;padding-bottom:6px!important}
  .pg.ly-acc-closed .ly-acc-head{margin-bottom:0!important;border-bottom:none}

  /* Nav: drop the fixed 218px logo panel, use the compact mobile lockup instead */
  .logo-panel{display:none}
  .nt{display:flex!important;align-items:center;padding:0 14px 0 10px;flex-shrink:0}
  /* The mark was 75x26 tucked in the corner. Bigger, and a real 44px target. */
  .nt img{height:52px!important}
  .nt a{display:flex;align-items:center;min-height:44px}

  /* The desktop nav is a three-track grid (auto 1fr auto) locked to one 56px
     row. Those tracks do not reflow: measured at 390px the actions block took
     260px and the mark 75px, leaving the 1fr track — the deck label .nl — at
     literally 0px, while the actions block rendered 90px tall inside a 56px
     row that clipped it. That is the collision at the top of every deck.
     Flex with wrap replaces the grid so the row can grow, and the label drops
     to its own full-width line below rather than competing for a track. */
  .nav{
    display:flex;flex-wrap:wrap;align-items:center;
    height:auto;min-height:56px;
    padding:6px 14px;row-gap:6px;column-gap:8px;min-width:0;
    overflow:visible;
  }
  .nav-row::after{display:none}
  .nl{height:auto}
  .na{height:auto;border-bottom-width:2px}
  .intel-banner{margin-top:8px}
  .nav-row{height:auto;overflow:visible}
  .nt{order:1}

  /* Header rebuilt from what the live DOM actually contains. The previous
     attempt targeted [class*="user"] for the name chip; the chip is
     #tf-wrapper and carries no such class, so that rule matched nothing and
     the header grew to 241px across four ragged rows.

     Row 1: mark left, KSA badge and name right. Row 2: actions. Row 3: strip. */
  .nav{align-items:center;row-gap:6px}
  .nt{order:0;padding:0 12px 0 8px}
  .nt img{height:44px!important;width:auto!important}
  .ly-hdr-right{
    order:1;margin-right:auto;display:flex;align-items:center;gap:10px;flex:0 0 auto;
  }
  .ly-hdr-right #tf-wrapper{min-height:40px}
  .nav button,.nav a[class*="btn"],.nav [role="button"]{min-height:40px;flex:0 1 auto}

  /* the actions cluster: clock, report, print, user chip */
  .nav>div:not(.nt):not(.nl):not(.print-header):not(.ly-hdr-right){
    order:2;flex:1 1 100%;min-width:0;
    display:flex;flex-wrap:wrap;align-items:center;
    justify-content:flex-end;gap:6px;
  }
  .nl{order:3;flex:1 1 100%}

  /* Nav links become a horizontally swipeable strip instead of overflowing/wrapping */
  .nl{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    flex-wrap:nowrap;
    min-width:0;
    max-width:100%;
    /* The fade used to run transparent->opaque across the first 14px and back
       out 22px from the right, but the links start at x=14 — so the first
       letter sat inside the ramp and rendered half-dimmed (the C of CEO), and
       the last label lost its tail the same way. The ramp is now 8px and the
       strip carries matching scroll padding, so text always begins after the
       fade has finished rather than underneath it. */
    padding-right:10px;padding-left:10px;
    scroll-padding-right:10px;
    mask-image:linear-gradient(90deg,transparent 0,#000 8px,#000 calc(100% - 8px),transparent 100%);
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8px,#000 calc(100% - 8px),transparent 100%);
  }

  /* 27px tall at 9.5px type is too small to read or hit comfortably.
     44px is the HIG minimum; 42px min-height with 10px padding resolved to a
     35px hit box, so the padding goes up rather than the container. */
  .nl{min-height:44px;align-items:center}
  .nl>*{font-size:13px!important;padding:13px 10px!important;line-height:1.1}
  .nl::-webkit-scrollbar{display:none}

  /* One Fleet's tab rail is 810px of content in a 359px viewport — 8 tabs,
     with the approval-queue badge sitting at x=732 and the favourites chip at
     x=780, both off-screen on load. It already scrolls (overflow-x:auto with
     scroll-snap) but had no edge cue, so nothing signalled that five and a
     half tabs existed. Same mask treatment as .nl. */
  .geq-tabstrip{
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 22px),transparent 100%);
    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 22px),transparent 100%);
  }
  .geq-tabstrip>*{min-height:38px;display:inline-flex;align-items:center}

  /* The strip scrolls correctly; flex:0 0 auto keeps each link at its
     intrinsic width — "Fleet Intelligence" needs 129px, "Asset Director"
     103px — instead of shrinking and painting over its neighbour. The strip
     is already overflow-x:auto, so the extra width becomes scroll, not
     overlap. This used to also need min-width:auto!important to undo the old
     blanket body*{min-width:0}; that rule is gone now (see shared.ts
     PHONE_CSS header), so auto is already the default. */
  .nl>*{flex:0 0 auto!important}
  .na{font-size:13px;padding:5px 8px}

  /* Data tables → stacked cards on mobile. First column becomes the card
     title; remaining columns become labeled rows (label comes from the JS-
     injected data-th attribute, see sharedScripts). No page-width overflow,
     no cramped tiny columns, and every onclick/filter handler on the
     original tr/td elements keeps working since nothing is moved — only
     restyled. */
  html,body{overflow-x:hidden;max-width:100vw}
  .pg{max-width:100vw;overflow-x:hidden}

  /* ── DONUT COMPONENT ON PHONE ──────────────────────────────────────────
     The blanket "canvas{min-height:200px;height:auto}" rule above exists so
     desktop-sized chart canvases don't collapse on a narrow screen. A donut
     canvas is the opposite case: it is a fixed square drawn at an explicit
     pixel size with responsive:false, and its total is an HTML overlay pinned
     to the ring box. Stretching the canvas to 200px tall while the ring box
     stays square pushes the ring up and drops the centre readout out the
     bottom, on top of the legend. Exempt it, and tighten the card so three
     donuts don't cost three screens of scrolling. */
  .ly-donut canvas{min-height:0!important;height:auto!important}
  .ly-donut{gap:10px}
  /* Do NOT CSS-scale the ring: the canvas is a fixed-size bitmap drawn at its
     attribute dimensions, so any width/height override resamples it and the
     ring goes soft on a high-DPR phone. Keep it native. */
  .ly-donut-c b{font-size:22px}
  .ly-donut-c i{font-size:10px;margin-top:4px}
  /* .ly-dl-row is display:contents (see base rule) so grid-template-columns
     on the row itself would no-op — this must target the .ly-dl container,
     which is the actual grid, same as the base-rule fix. 2026-09-05. */
  .ly-dl{grid-template-columns:8px auto minmax(12px,1fr) auto 34px!important;column-gap:7px!important;font-size:12.5px}
  .ly-dl-lb{overflow:hidden;text-overflow:ellipsis}
  /* PHONE_CSS gives tbody min-width:max-content so a real table can pan in its
     own axis. That is correct for the decks that keep tables (SSD, board), but
     here the table becomes stacked cards, and max-content then sizes the tbody
     to the widest row it would have had: measured 478px inside a 317px table,
     which clipped every value on the right ("NEO...", "Princess...") and left
     SAVING/MO looking empty. The card transform must win on this deck. */
  table,thead,tbody,tr,td{min-width:0!important}
  table{border-collapse:separate;border-spacing:0 10px;width:100%;background:transparent}
  table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table,tbody,tr,td{display:block;width:100%;box-sizing:border-box}
  tr[data-asset],tbody>tr{
    background:var(--bg2);
    border:1px solid var(--bdr);
    border-right:3px solid var(--gold);
    border-radius:10px;
    padding:12px 14px 8px;
    margin-bottom:10px;
    box-shadow:0 2px 14px rgba(0,0,0,.45);
  }
  td{
    display:flex;justify-content:space-between;align-items:center;gap:12px;
    padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06);
    font-size:13.5px;text-align:left;min-width:0;
  }
  td:last-child{border-bottom:none;padding-bottom:2px}
  td[data-th]::before{
    content:attr(data-th);font-family:var(--sans);font-size:12px;font-weight:600;
    text-transform:none;letter-spacing:0;color:rgba(240,244,255,.6);
    text-align:right;flex-shrink:0;
  }
  tr td:first-child{
    font-size:14.5px;font-weight:700;color:var(--gold-hot);
    border-bottom:1px solid rgba(240,180,80,.22);padding:0 0 8px;margin-bottom:6px;
    justify-content:flex-start;text-align:right;
  }
  td:first-child::before{content:none!important}

  /* Right-hand status/live cluster: shrink, keep it, don't hide it */
  .nav > div:last-child{gap:5px!important}
  .nav > div:last-child > div:first-child{padding:4px 8px!important}
  .nav > div:last-child span[style*="font-size:12px"]{font-size:11px!important}
}

@media(max-width:480px){
  .h1{font-size:18px}
  .kg{grid-template-columns:repeat(2,1fr)}

  /* Section grids still resolved to two ~168px columns at 390px, because the
     existing rules key off repeat(3..6) and 1fr 1fr 1fr and never match a
     plain "1fr 1fr". Two columns at that width is what wraps headings to four
     lines, and it is also why SSD's charts are drawn at 67-98px wide with
     their axis labels cut off. Section grids are reliably either .lx-stg or a
     direct child of .pg; the small label grids inside cards are nested deeper
     and keep their columns, which is correct — they are 2x2 key/value pairs,
     not layout. */
  .pg>[style*="grid-template-columns"],.lx-stg{grid-template-columns:1fr!important}

  /* 2026-08-25 — the rule above assumes section grids are direct children of
     .pg. Since the accordion refactor they are not: the chain is
     .pg > .ly-acc-body.lx-stg > [inline grid] > card > canvas. .lx-stg is now
     the accordion BODY wrapper (already 1 column); the grid one level inside
     it matched nothing. Measured at 390px that left 13/18 CEO charts under
     140px wide — ceo-recovery-bars at 63x27px, coo-loc-stacked at 122x2308px,
     pmv-project-cost at 59px. Also note "1fr 1fr" written literally is the
     most common inline value in the decks (26 uses) and no repeat(N) rule
     ever matched it. */
  .ly-acc-body>[style*="grid-template-columns"],
  .lx-stg>[style*="grid-template-columns"],
  .ly-acc-body>div>[style*="grid-template-columns"]{grid-template-columns:1fr!important}
  .kv{font-size:19px}
  [style*="grid-template-columns:repeat(2"]{grid-template-columns:1fr!important}
  /* Deliberately its own block: :has() is unsupported on older WebKit and an
     invalid selector kills every rule sharing its list. Catches any remaining
     grid that actually holds a chart or a table, at any nesting depth, while
     leaving 2x2 key/value label grids inside cards alone — those are content,
     not layout. */
  .pg [style*="grid-template-columns"]:has(canvas){grid-template-columns:1fr!important}
  .pg [style*="grid-template-columns"]:has(table){grid-template-columns:1fr!important}
  /* Was 26px here. A narrower media query beats the 768px block regardless of
     !important, which is why the mark stayed small after being raised there.
     44px is the size that reads on a phone. */
  .nt img,.nt svg{height:44px!important}
  .na{font-size:12px;padding:5px 7px}
}

@media print{
  @page{size:A4 portrait;margin:10mm 10mm 10mm 10mm}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important;animation:none!important;transition:none!important;box-shadow:none!important}
  html,body{background:var(--bg)!important;margin:0!important;padding:0!important;width:100%!important;height:auto!important;overflow:visible!important}
  .nav-row,.nav,.logo-panel,.print-header,.print-btn-group,.pbi-wrap,.pbi,iframe,footer,.foot,.nt,input[type=text],button:not(.print-keep){display:none!important}
  .pg{display:block!important;page-break-before:avoid!important;break-before:avoid!important;page-break-after:avoid!important;break-after:avoid!important;page-break-inside:auto!important;break-inside:auto!important;padding:8px 10px!important;margin:0!important;border:none!important;width:100%!important;box-sizing:border-box!important;overflow:visible!important;position:relative!important}
  .pg::before,.pg::after{display:none!important;content:none!important}
  table{page-break-inside:auto;break-inside:auto;width:100%!important;table-layout:fixed!important}
  tr{page-break-inside:avoid;break-inside:avoid}
  .kpi,.card,.dc,.swap-card,.intel-banner{page-break-inside:avoid;break-inside:avoid}
  /* A donut canvas is a fixed-size bitmap; max-width:100% resamples it and,
     because the ring box stays square, the paint is lost on the print pass —
     the three composition donuts came out blank. Pin them to native size. */
  canvas{max-width:100%!important;filter:none!important}
  /* Donut rings are fixed bitmaps in an absolutely-positioned box. Left to the
     generic canvas rule they resample; forced to auto they escaped their card
     and two rings printed on top of each other. Pin the whole component. */
  .ly-donut canvas,.ly-donut-ring canvas{max-width:none!important;width:148px!important;height:148px!important}
  .ly-donut-ring{width:148px!important;height:148px!important;position:relative!important;flex:0 0 auto!important}
  .ly-donut{display:flex!important;flex-direction:column!important;align-items:center!important;overflow:visible!important}
  .ly-donut-c{position:absolute!important;inset:0!important}
  .ly-donut,.ly-mlist,.kpi,.card,.intel-banner{break-inside:avoid!important;page-break-inside:avoid!important}
  /* Any card holding a ring must reserve its full height rather than collapse. */
  .pg [style*="background:var(--bg2)"]:has(.ly-donut){min-height:330px!important;overflow:visible!important}
  [style*="grid-template-columns:repeat(3"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(4"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(5"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(6"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(7"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(8"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:1fr 1fr 1fr"]{grid-template-columns:1fr 1fr!important}
  [style*="1.4fr"]{grid-template-columns:1fr 1fr!important}
  [style*="min-height:200px"],[style*="min-height:220px"]{min-height:0!important}
  .kv{font-size:17px!important}
  .kl{font-size:7px!important}
  .h1{font-size:14px!important;margin-bottom:4px!important}
  .eye,.st{font-size:7px!important}
  th{font-size:7px!important;padding:3px 4px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  td{font-size:8px!important;padding:3px 4px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .lead{font-size:9px!important}
  .intel-body{font-size:9px!important;line-height:1.4!important}
  .tag{font-size:7px!important}
  .intel-banner{margin-bottom:6px!important}
  .intel-banner-head{padding:5px 10px 4px 10px!important}
  .intel-banner-body{padding:5px 10px 7px 10px!important}
  .ibr,.iby,.ibb,.ibg,.ibp,.fbox,.intel-banner,.kpi,.card,.dc,.swap-card,.bf{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  a{text-decoration:none!important;color:inherit!important}
}


/* ── Section header + readouts at narrow widths / print ─────────────── */
@media(max-width:768px){
  /* Number and title stay on one line together, title wrapping beside the
     number rather than under it. The trailing rule is dropped: at phone width
     it claimed flex space and pushed the title to its own line, orphaning the
     number — every accordion head then read as two ragged rows. */
  .sec-h{gap:10px;margin-bottom:16px;align-items:flex-start;flex-wrap:nowrap}
  .sec-h::after{display:none}
  .sec-n{font-size:21px;line-height:1.15}
  .sec-t{font-size:16px;white-space:normal;line-height:1.15;flex:1 1 auto;min-width:0}
  .pg>.st::after{display:none}
  .intel-verdict-word{font-size:30px}
  .intel-body{font-size:15px}
}
@media print{
  .sec-n{font-size:14px!important}.sec-t{font-size:12px!important}.sec-h{margin-bottom:8px!important}
  .kv:not([style]){color:#D6A54A!important}
}

/* ── DONUT COMPONENT (lib/charts donut()) ────────────────────────────── */
.ly-donut{display:flex;flex-direction:column;align-items:center;width:100%;gap:8px}
.ly-donut-ring{position:relative;flex-shrink:0}
.ly-donut-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;line-height:1}
.ly-donut-c b{font-family:var(--disp);font-size:24px;font-weight:600;color:var(--txt);letter-spacing:-.01em}
.ly-donut-c i{font-style:normal;font-family:var(--sans);font-size:12px;font-weight:500;text-transform:none;color:var(--txt3);margin-top:5px}
/* Container is the ONE grid; each row is display:contents so its cells become
   direct grid items of the container instead of an independent per-row grid.
   Previously each .ly-dl-row was its own grid, so the "auto" label column
   sized to that row's own text only — "Breakdown" (9 chars) vs "Idle" (4
   chars) produced a different label-column width per row, and every bar in
   the legend started (and often ended) at a different x. One shared grid
   means the label/value columns size once, from the widest cell across ALL
   rows, so every bar in the card lines up. 2026-09-05. */
.ly-dl{display:grid;grid-template-columns:8px auto minmax(16px,1fr) auto 38px;column-gap:8px;row-gap:6px;align-items:center;width:100%;font-size:12.5px}
.ly-dl-row{display:contents}
.ly-dl-sw{width:8px;height:8px;border-radius:2px;display:block}
.ly-dl-lb{color:var(--txt2);white-space:nowrap;min-width:0}
.ly-dl-sub{display:block;font-size:11.5px;line-height:1.3;color:var(--txt3);font-variant-numeric:tabular-nums}
.ly-own,.bp-own{width:100%}
.ly-own[data-view="n"] .ly-own-v[data-v="s"],.ly-own[data-view="s"] .ly-own-v[data-v="n"]{display:none}
.ly-own-tg,.bp-tg{display:inline-flex;margin:0 auto 8px;border:1px solid var(--bdr);border-radius:999px;padding:2px;gap:2px;background:rgba(255,255,255,.03)}
.ly-own-tg button,.bp-tg button{font:inherit;font-size:12px;line-height:1;padding:6px 12px;min-height:28px;border:0;border-radius:999px;background:transparent;color:var(--txt3);cursor:pointer}
.ly-own-tg button[aria-pressed="true"],.bp-tg button[aria-pressed="true"]{background:rgba(240,180,80,.2);color:var(--txt)}
.ly-own>.ly-own-tg{margin:10px auto 0}
.ly-own-tg button:focus-visible,.bp-tg button:focus-visible{outline:2px solid var(--gold-hot,#F0B450);outline-offset:1px}
.ly-dl-bar{height:3px;background:rgba(255,255,255,.07);border-radius:2px;overflow:hidden;display:block}
.ly-dl-bar i{display:block;height:100%;border-radius:2px}
.ly-dl-v{font-family:var(--sans);font-weight:600;color:var(--txt);text-align:left;font-size:13px;font-variant-numeric:tabular-nums}
.ly-dl-p{font-family:var(--sans);color:var(--txt3);text-align:left;font-size:12px;font-variant-numeric:tabular-nums}

/* ── KPI TILE (kpiCard) — accent rail, readout, delta chips ─────────── */
.kpi{border-right:3px solid var(--acc,var(--gold-hot));background:var(--bg2)!important;padding:16px 18px 14px 18px;gap:4px;min-height:112px}
.kpi .kl{font-size:11.5px;letter-spacing:.12em;color:var(--txt3)}
.kpi .kv{font-size:36px;font-weight:600;letter-spacing:-.015em;margin-top:2px}
.kpi .ks{font-size:12.5px;color:var(--txt3);margin-top:2px}
.kpi>div[style*="margin-top:5px"]{margin-top:8px!important}
.kpi>div[style*="margin-top:5px"] span{font-size:11.5px!important;padding:2px 7px!important;border-radius:4px!important}

/* ── METRIC ROWS (health gauge, burn card) ───────────────────────────────
   Same fix as .ly-dl above: one shared grid on the list container, rows are
   display:contents. Previously each .ly-mrow was its own grid, so e.g.
   "Utilisation" (11 chars) and "Iron Law" (8 chars) each sized their own
   label column independently — bars in the same Fleet Health card started
   up to ~28px apart. 2026-09-05. */
.ly-mlist{display:grid;grid-template-columns:auto minmax(24px,1fr) 40px;column-gap:10px;row-gap:7px;align-items:center;width:100%;position:relative;z-index:1}
.ly-mrow{display:contents}
.ly-mrow-l{font-size:12px;color:var(--txt3);text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ly-mrow-b{height:4px;background:rgba(255,255,255,.09);border-radius:2px;overflow:hidden;display:block}
.ly-mrow-b i{display:block;height:100%;border-radius:2px;transition:width .6s cubic-bezier(.4,0,.2,1)}
.ly-mrow-v{font-family:var(--sans);font-size:13px;font-weight:600;text-align:left;font-variant-numeric:tabular-nums}

/* ── AI LAUNCHER ─────────────────────────────────────────────────────────
   Fixed and always on top. Previously receded to 22% opacity while the page
   was scrolling (to avoid covering table rows/legends) and returned to full
   gold when idle — removed per Taher's request 2026-09-05: always full gold,
   scrolling or not. */
.ly-fab{opacity:1;transition:transform .15s ease}
@media print{.ly-fab{display:none!important}}

/* ── PIN OVERLAY ─────────────────────────────────────────────────────── */
.ly-pin-overlay{position:fixed;inset:0;z-index:99999;background:rgba(11,15,23,.97);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;animation:lyPinFadeIn .3s ease}
@keyframes lyPinFadeIn{from{opacity:0}to{opacity:1}}
.ly-pin-card{background:var(--bg2);border:1px solid var(--bdr-gold);border-radius:var(--r-lg);padding:40px 44px;display:flex;flex-direction:column;align-items:center;gap:20px;min-width:320px;max-width:380px;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.ly-pin-card .ly-pin-logo{height:48px;width:auto;margin-bottom:4px}
.ly-pin-card .ly-pin-deck{font-family:var(--disp);font-size:14px;letter-spacing:.02em;color:var(--gold);text-transform:none;text-align:center;font-weight:600}
.ly-pin-card .ly-pin-label{font-family:var(--sans);font-size:13px;color:var(--txt3);text-transform:none;text-align:center}
.ly-pin-dots{display:flex;gap:14px;margin:4px 0}
.ly-pin-dot{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--bdr-gold);background:transparent;transition:background .15s,border-color .15s}
.ly-pin-dot.filled{background:var(--gold-hot);border-color:var(--gold-hot)}
.ly-pin-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ly-pin-card .ly-pin-err{font-family:var(--sans);font-size:13px;color:var(--crim-hot);min-height:14px;text-align:center;animation:lyPinShake .35s ease}
@keyframes lyPinShake{0%,100%{transform:translateX(0)}20%{transform:translateX(6px)}40%{transform:translateX(-6px)}60%{transform:translateX(4px)}80%{transform:translateX(-4px)}}
.ly-pin-hint{font-family:var(--sans);font-size:12px;color:var(--txt4);text-align:center;margin-top:4px}
.ly-lock-btn{font-family:var(--sans);font-size:13px;font-weight:500;padding:6px 12px;border-radius:var(--r-sm);text-decoration:none;white-space:nowrap;background:transparent;color:var(--txt3);border:1px solid var(--bdr-2);cursor:pointer;transition:all .2s;display:none}
.ly-lock-btn.visible{display:inline-flex;align-items:center;gap:6px}
.ly-lock-btn:hover{background:var(--crim-d);color:var(--crim-hot);border-color:rgba(232,68,90,.4)}

/* ── TABLE UTILITY CLASSES ───────────────────────────────────────────── */
.tc{border-collapse:collapse;width:100%;font-size:13.5px}
.tr-sep{border-bottom:1px solid var(--bdr)}
.tr-sep2{border-bottom:1px solid rgba(255,255,255,.05)}
.th-l{padding:8px 10px;text-align:right;color:var(--txt3);font-weight:600;border-bottom:1px solid var(--bdr-2)}
.th-c{padding:8px 10px;text-align:center;color:var(--txt3);font-weight:600;border-bottom:1px solid var(--bdr-2)}
.td-n{padding:8px 10px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--gold-hot);font-variant-numeric:tabular-nums}
.td-d{padding:8px 10px;font-size:13.5px}
.td-s{padding:8px 10px;font-size:13px}
.td-m{padding:8px 10px;font-size:13px;color:var(--txt3)}
.td-g{padding:8px 10px;font-size:13px;color:var(--txt2)}
.td-c{padding:8px 10px;text-align:center}
.td-v{color:var(--gold-hot);font-weight:600}
.td-r{color:var(--crim-hot);font-weight:600}
.td-r2{color:var(--crim-hot);font-weight:700}
.td-a{padding:8px 10px;font-size:13px;color:var(--neutral)}
.td-b{padding:8px 10px}
.td-mo{font-size:12.5px;color:var(--gold-hot);margin-top:3px}
.td-sub{font-size:12.5px;color:var(--txt3);margin-top:2px}
.td-ac{padding:8px 10px;text-align:center;color:var(--neutral)}
.td-mono{padding:8px 10px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--txt2);font-variant-numeric:tabular-nums}
.ly-asset-link{font-family:var(--sans);font-weight:600;color:var(--gold);text-decoration:none;border-bottom:1px dashed rgba(240,180,80,.4);transition:border-color .15s ease,color .15s ease}
.ly-asset-link:hover{color:var(--gold-hot);border-bottom-color:var(--gold-hot)}
.td-w{padding:8px 10px;font-weight:500}
.td-wr{padding:8px 10px;color:var(--crim-hot);font-weight:600}

/* ── MOTION LAYER — quiet ────────────────────────────────────────────── */
.lx-rv{opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease}
.lx-rv.lx-in{opacity:1;transform:none}
.lx-rule{display:none}
@media(hover:hover){
  .lx-lift{transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}
  .lx-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--bdr-gold)!important}
}
.lx-sheen{background:none;-webkit-text-fill-color:currentColor;color:var(--gold-hot);animation:none}
#lx-prog{position:fixed;top:0;right:0;height:2px;width:100%;transform:scaleX(0);transform-origin:right;background:var(--gold-hot);z-index:9999;pointer-events:none;box-shadow:none}
@media print{.lx-rv{opacity:1!important;transform:none!important;transition:none!important}#lx-prog{display:none!important}.pg{animation:none!important}}
@media(prefers-reduced-motion:reduce){
  .lx-rv,.lx-rule,.pg,.kpi,.intel-verdict-word,.intel-greet,.intel-greet-name,.intel-body{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
  .sec-h::after{clip-path:inset(0 0 0 0)!important;transition:none!important}
  .ly-bgmesh{display:none!important}
  .ev-toggle .ev-arrow{transition:none!important}
  #lx-prog{display:none!important}
  .intel-live-dot{animation:none!important}
}

/* ── SECTION RAIL ────────────────────────────────────────────────────── */
#lx-rail{position:fixed;left:16px;top:50%;transform:translateY(-50%);z-index:500;display:flex;flex-direction:column;gap:10px}
#lx-rail a{display:block;width:7px;height:7px;border-radius:50%;background:transparent;border:1px solid rgba(237,241,247,.35);position:relative;transition:background .2s,border-color .2s}
#lx-rail a.on{background:var(--gold-hot);border-color:var(--gold-hot);box-shadow:none;transform:none}
#lx-rail.flash a.on span{opacity:1}
#lx-rail a:hover{border-color:var(--gold-hot)}
#lx-rail a span{position:absolute;left:18px;top:50%;transform:translateY(-50%);white-space:nowrap;font-family:var(--sans);font-size:12px;font-weight:500;text-transform:none;color:var(--gold-hot);background:var(--bg2);border:1px solid var(--bdr-2);border-radius:4px;padding:4px 9px;opacity:0;pointer-events:none;transition:opacity .2s}
#lx-rail a:hover span{opacity:1}
#lx-rail a.on span{color:var(--gold-hot)}
@media(max-width:1100px){#lx-rail{display:none}}
@media(max-width:1550px){
  .nav-live-txt span{font-size:13px}
  .nav-live{padding:5px 9px}
  #tf-trigger{min-width:150px;padding:5px 9px}
}
@keyframes lxPulse{0%,100%{box-shadow:0 0 0 0 rgba(232,68,90,0)}50%{box-shadow:0 0 0 3px rgba(232,68,90,.25)}}
[style*="background:#E8445A18"]{animation:lxPulse 2.4s ease-in-out infinite}
.lx-spark{display:block;margin-top:6px;opacity:.9}
@media print{#lx-rail{display:none!important}.lx-spark{display:none!important}[style*="background:#E8445A18"]{animation:none!important}}
@media(prefers-reduced-motion:reduce){#lx-rail a{transition:none}[style*="background:#E8445A18"]{animation:none!important}}








/* ── PLANNING STUDIO (/plan, 2026-09-23) ───────────────────────────────────
   Five planning modules on one page: Rent-vs-Buy Flip Radar, Capital Renewal
   Planner, Breakdown Forecast, Disposal Timing Room, Working Calendar. Charts
   are inline SVG coloured from these vars, so no canvas-token problem (§3). */
.ps-wrap{max-width:1500px;margin:0 auto;padding:14px 40px 64px}
.ps-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:6px 0 14px}
.ps-hero h1{font-family:var(--disp);font-size:28px;font-weight:600;margin:0;color:var(--txt);letter-spacing:0}
.ps-hero p{margin:4px 0 0;color:var(--txt3);font-size:14px;max-width:80ch;line-height:1.5}
.ps-tabs{display:flex;gap:6px;border-bottom:1px solid var(--bdr);margin-bottom:16px;overflow-x:auto;scrollbar-width:none;position:sticky;top:0;z-index:5;background:var(--bg);padding-top:4px}
.ps-tabs::-webkit-scrollbar{display:none}
.ps-tab{flex:0 0 auto;background:none;border:none;border-bottom:2px solid transparent;color:var(--txt3);font-family:var(--sans);font-size:14px;font-weight:600;padding:10px 14px;cursor:pointer;display:flex;align-items:center;gap:8px;white-space:nowrap}
.ps-tab:hover{color:var(--txt)}
.ps-tab.on{color:var(--gold-hot);border-bottom-color:var(--gold-hot)}
.ps-tab b{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;padding:1px 6px;border-radius:9px;background:rgba(255,255,255,.07);color:var(--txt2)}
.ps-tab.on b{background:rgba(240,180,80,.16);color:var(--gold-hot)}
.ps-panel{display:none}
.ps-panel.on{display:block;animation:fadeUp .35s ease both}
.ps-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:14px}
.ps-kpi{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r-lg);padding:12px 14px;min-width:0}
.ps-kpi .l{font-size:13px;color:var(--txt3);font-weight:500}
.ps-kpi .v{font-family:var(--disp);font-size:26px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums;color:var(--txt);line-height:1.1}
.ps-kpi .s{font-size:13px;color:var(--txt3);margin-top:3px;line-height:1.4}
.ps-kpi.bad .v{color:var(--crim-hot)}.ps-kpi.warn .v{color:var(--gold-hot)}.ps-kpi.good .v{color:var(--emer-hot)}.ps-kpi.info .v{color:var(--sapp-hot)}
.ps-card{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r-lg);padding:14px 16px;margin-bottom:14px;min-width:0}
.ps-card h3{font-family:var(--sans);font-size:15px;font-weight:600;margin:0 0 4px;color:var(--txt)}
.ps-card .sub{font-size:13px;color:var(--txt3);margin:0 0 12px;line-height:1.5}
.ps-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px}
.ps-ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.ps-chip{background:rgba(255,255,255,.04);border:1px solid var(--bdr);border-radius:16px;color:var(--txt2);font-size:13px;padding:5px 12px;cursor:pointer;font-family:var(--sans)}
.ps-chip.on{border-color:var(--gold-a35);background:rgba(240,180,80,.12);color:var(--gold-hot)}
.ps-in{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-sm);color:var(--txt);font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:13px;padding:6px 9px;min-width:0}
.ps-in:focus{outline:none;border-color:var(--gold-a35)}
/* Beat the global input rule (padding 11px 14px, margin-bottom 14px, width 100%). */
.ps-wrap .ps-in{padding:6px 9px;margin:0;width:auto;font-size:13px;font-family:var(--sans);background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);box-shadow:none}
select.ps-in option{background:var(--bg7)}
.ps-lbl{font-size:13px;color:var(--txt3);display:flex;align-items:center;gap:6px}
.ps-btn{background:rgba(240,180,80,.12);border:1px solid var(--gold-a35);color:var(--gold-hot);border-radius:var(--r-sm);font-family:var(--sans);font-size:13px;font-weight:600;padding:6px 12px;cursor:pointer}
.ps-btn:hover{background:rgba(240,180,80,.2)}
.ps-btn.ghost{background:transparent;border-color:rgba(255,255,255,.16);color:var(--txt2)}
.ps-note{font-size:13px;color:var(--txt3);line-height:1.55;margin-top:8px}
.ps-note b{color:var(--txt2);font-weight:600}
.ps-gap{color:var(--txt3);font-style:italic}
.ps-tbl-wrap{overflow-x:auto;max-width:100%}
.ps-tbl{width:100%;border-collapse:collapse;font-size:13px}
.ps-tbl th{text-align:right;font-weight:600;color:var(--txt3);font-size:12px;padding:6px 8px;border-bottom:1px solid var(--bdr);white-space:nowrap}
.ps-tbl td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--txt2);font-variant-numeric:tabular-nums}
.ps-tbl td.n,.ps-tbl th.n{text-align:left}
.ps-tbl tr:hover td{background:rgba(255,255,255,.02)}
.ps-pill{display:inline-block;font-size:12px;font-weight:600;padding:1px 8px;border-radius:9px;white-space:nowrap}
.ps-pill.bad{background:rgba(246,147,161,.14);color:var(--crim-hot)}
.ps-pill.warn{background:rgba(240,180,80,.14);color:var(--gold-hot)}
.ps-pill.good{background:rgba(91,206,129,.14);color:var(--emer-hot)}
.ps-pill.info{background:rgba(126,184,212,.14);color:var(--sapp-hot)}
.ps-pill.mute{background:rgba(255,255,255,.06);color:var(--txt3)}
/* Flip Radar meters */
.ps-meters{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px}
.ps-more{display:block;width:100%;min-height:44px;margin:12px 0 0}
.ps-meter{background:var(--bg5);border:1px solid var(--bdr);border-radius:12px;padding:10px 10px 12px;text-align:center;min-width:0;position:relative}
.ps-meter.past{border-color:rgba(246,147,161,.45);box-shadow:0 0 0 1px rgba(246,147,161,.15),0 0 18px rgba(246,147,161,.12)}
/* Three pulses, then it rests at full strength (2026-10-17 perf pass: 150 looping SVG
   opacity animations repainted on the main thread for as long as /plan stayed open). */
.ps-meter.past svg .arc-over{animation:psPulse 1.6s ease-in-out 3}
@keyframes psPulse{0%,100%{opacity:1}50%{opacity:.45}}
.ps-meter .nm{font-size:13px;font-weight:600;color:var(--txt);overflow-wrap:anywhere;line-height:1.25}
.ps-meter .id{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--txt3);overflow-wrap:anywhere}
.ps-meter .ft{font-size:12px;color:var(--txt3);margin-top:2px;line-height:1.35}
/* Forecast weather grid */
.ps-wx{display:grid;grid-template-columns:150px repeat(13,minmax(0,1fr));gap:3px;align-items:stretch;font-size:12px}
.ps-wx .h{color:var(--txt3);font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:12px;text-align:center;padding:2px 0}
.ps-wx .site{color:var(--txt);font-weight:600;font-size:13px;display:flex;flex-direction:column;justify-content:center;padding-left:6px;min-width:0}
.ps-wx .site small{color:var(--txt3);font-weight:400;font-size:12px}
.ps-wx .c{border-radius:8px;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;border:1px solid transparent;transition:transform .15s}
.ps-wx .c:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.25)}
.ps-wx .c .ic{font-size:18px;line-height:1}
.ps-wx .c .p{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:12px;color:var(--txt)}
.ps-wx .c .sv{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600;color:var(--gold-hot);line-height:1}
.ps-wx .c.w0{background:rgba(91,206,129,.10)}.ps-wx .c.w1{background:rgba(126,184,212,.14)}.ps-wx .c.w2{background:rgba(240,180,80,.18)}.ps-wx .c.w3{background:rgba(246,147,161,.22)}.ps-wx .c.w4{background:rgba(232,68,90,.34)}
/* Calendar heatmap */
.ps-cal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ps-mon{min-width:0}
.ps-mon .t{font-size:13px;font-weight:600;color:var(--txt);display:flex;justify-content:space-between;margin-bottom:4px}
.ps-mon .t span{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:12px;color:var(--txt3);font-weight:400}
.ps-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.ps-day{aspect-ratio:1;border-radius:3px;font-size:11px;font-family:var(--sans);font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center;color:rgba(0,0,0,.6);cursor:default;position:relative}
.ps-day.x{background:transparent}
.ps-leg{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--txt3);margin:4px 0 10px}
.ps-leg i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-left:5px}
.ps-tip{position:fixed;z-index:60;pointer-events:none;background:var(--panel-bg);border:1px solid var(--gold-a35);border-radius:8px;padding:8px 10px;font-size:13px;color:var(--txt2);max-width:280px;line-height:1.45;box-shadow:0 10px 30px rgba(0,0,0,.5);display:none}
.ps-tip b{color:var(--txt)}
.ps-bar{height:8px;border-radius:4px;background:rgba(255,255,255,.06);overflow:hidden;position:relative}
.ps-bar i{position:absolute;right:0;top:0;bottom:0;border-radius:4px}
.ps-step{display:inline-flex;align-items:center;gap:0;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-sm);overflow:hidden}
.ps-step button{background:rgba(255,255,255,.05);border:none;color:var(--txt2);width:24px;height:26px;cursor:pointer;font-size:14px}
.ps-step span{min-width:26px;text-align:center;font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;color:var(--txt)}
.ps-step.hot span{color:var(--gold-hot)}
.ps-svg text{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:11px;fill:var(--txt3)}
.ps-svg .ax{stroke:rgba(255,255,255,.1)}
@media(max-width:1100px){.ps-row{grid-template-columns:1fr}.ps-cal{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
  .ps-wrap{padding:10px 14px 48px}
  .ps-hero h1{font-size:22px}
  .ps-kpi .v{font-size:22px}
  .ps-cal{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ps-wx{grid-template-columns:96px repeat(13,minmax(26px,1fr));overflow-x:auto}
  .ps-wx .c{min-height:44px}.ps-wx .c .ic{font-size:14px}
  .ps-meters{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ── BID SIMULATOR EXTENSIONS (bidPlus.ts, 2026-09-23) ───────────────────── */
.bx-tabbar{overflow-x:auto;scrollbar-width:none;max-width:100%}
.bx-tabbar::-webkit-scrollbar{display:none}
.bx-tabbar .content-tab{flex:0 0 auto;white-space:nowrap}
@media(max-width:760px){.bx-tabbar .content-tab{padding:10px 12px;font-size:13px}}
.bx-card{background:var(--bg2);border:1px solid var(--bdr);border-radius:14px;padding:16px 18px;margin-bottom:14px;min-width:0}
.bx-h{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--txt);margin-bottom:4px}
.bx-sub{font-size:13px;color:var(--txt3);margin-bottom:12px;line-height:1.5}
.bx-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:14px}
.bx-kpi{background:var(--bg2);border:1px solid var(--bdr);border-radius:12px;padding:11px 13px;min-width:0}
.bx-kpi .l{font-size:13px;color:var(--txt3)}
.bx-kpi .v{font-family:var(--disp);font-size:22px;font-weight:700;color:var(--txt);margin-top:3px;font-variant-numeric:tabular-nums}
.bx-kpi .s{font-size:12px;color:var(--txt3);margin-top:2px}
.bx-kpi.good .v{color:var(--emer-hot)}.bx-kpi.bad .v{color:var(--crim-hot)}.bx-kpi.warn .v{color:var(--gold-hot)}.bx-kpi.info .v{color:var(--sapp-hot)}
.bx-empty{padding:40px 16px;text-align:center;color:var(--txt3);font-size:14px}
.bx-warn{background:rgba(240,180,80,.08);border:1px solid rgba(240,180,80,.3);border-radius:10px;padding:9px 12px;color:var(--gold-hot);font-size:13px;margin-bottom:12px}
.bx-btn{background:rgba(240,180,80,.12);border:1px solid var(--gold-a35);color:var(--gold-hot);border-radius:8px;font-size:13px;font-weight:600;padding:7px 14px;cursor:pointer;margin-right:8px}
.bx-btn.ghost{background:transparent;border-color:rgba(255,255,255,.16);color:var(--txt2);margin-right:0;padding:4px 10px}
.bx-btn:disabled{opacity:.5;cursor:default}
.bx-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.bx-row .bx-btn{margin-right:0}
.bx-foot{font-size:12px;color:var(--txt3);margin-top:8px;line-height:1.5}
.bx-gap{color:var(--txt3);font-style:italic;font-size:13px}
.bx-lnk{font-family:var(--sans);font-size:12px;font-weight:600;color:var(--gold-hot);text-decoration:none;border:1px solid var(--gold-a35);border-radius:5px;padding:1px 6px;margin-left:4px;white-space:nowrap}
.bx-lnk:hover{background:rgba(240,180,80,.12)}
.bx-svg text{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:11px;fill:var(--txt3)}
.bx-three-wrap{margin-top:12px;border-top:1px solid rgba(255,255,255,.06);padding-top:10px}
.bx-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.bx-opt{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px 10px}
.bx-opt .l{font-size:12px;color:var(--txt3)}
.bx-opt .v{font-size:18px;font-weight:700;color:var(--txt);margin-top:2px;font-variant-numeric:tabular-nums}
.bx-opt.win{border-color:rgba(91,206,129,.45);background:rgba(91,206,129,.07)}
.bx-opt.win .l,.bx-opt.win .v{color:var(--emer-hot)}
.bx-torn .r{display:grid;grid-template-columns:150px 1fr 90px;gap:10px;align-items:center;margin:7px 0;font-size:13px}
.bx-torn .t{position:relative;height:14px;background:rgba(255,255,255,.04);border-radius:4px}
.bx-torn .t i{position:absolute;top:0;bottom:0;background:linear-gradient(-90deg,var(--emer-hot),var(--gold-hot) 50%,var(--crim-hot));border-radius:4px}
.bx-torn .t b{position:absolute;right:50%;top:-3px;bottom:-3px;width:1px;background:var(--txt3)}
.bx-torn .v{text-align:left;font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:13px;color:var(--txt2)}
.bx-tbl-wrap{overflow-x:auto;max-width:100%}
.bx-t,.bx-cap{width:100%;border-collapse:collapse;font-size:13px}
.bx-t th,.bx-cap th{text-align:right;font-size:12px;font-weight:600;color:var(--txt3);padding:6px 7px;border-bottom:1px solid var(--bdr);white-space:nowrap}
.bx-t td,.bx-cap td{padding:6px 7px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--txt2);font-variant-numeric:tabular-nums}
.bx-t .n,.bx-cap .n{text-align:left}
.bx-cap td.c{text-align:center;font-family:var(--sans);font-size:12px;font-weight:600;border-radius:4px;border:2px solid var(--bg2);min-width:34px;cursor:default}
.bx-cap td.ok{background:rgba(91,206,129,.18);color:var(--emer-hot)}
.bx-cap td.tight{background:rgba(240,180,80,.22);color:var(--gold-hot)}
.bx-cap td.out{background:rgba(246,147,161,.28);color:var(--crim-hot);font-weight:700}
.bx-cliffs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.bx-cliff{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:9px 10px;min-width:0}
.bx-cliff .t{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--txt);margin-bottom:6px;gap:8px}
.bx-cliff .t span{font-weight:400;font-size:12px;color:var(--txt3);white-space:nowrap}
.bx-mapwrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start}
.bx-map .bx-arc{stroke-dasharray:6 8;animation:bxFlow 1.4s linear infinite}
@keyframes bxFlow{to{stroke-dashoffset:-28}}
.bx-map .bx-dest{animation:bxPing 1.8s ease-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes bxPing{0%{opacity:1;stroke-width:3}100%{opacity:0;stroke-width:1;r:34}}
@media(prefers-reduced-motion:reduce){.bx-map .bx-arc,.bx-map .bx-dest{animation:none}}
@media(max-width:860px){.bx-mapwrap{grid-template-columns:1fr}.bx-three{grid-template-columns:1fr}.bx-torn .r{grid-template-columns:110px 1fr 70px}}

/* Tender one-pager popup (bidPlus.ts onePager): white A4 print sheet. A
   NAMED page, so no other deck's print margins change. */
@page op{size:A4;margin:14mm}
body.op-page{page:op}
body.op-page{font-family:Arial,Helvetica,sans-serif;color:#111;font-size:11.5px;margin:0}
body.op-page h1{font-size:18px;margin:0 0 2px}
body.op-page h3{font-size:12.5px;margin:12px 0 4px;border-bottom:1px solid #ccc;padding-bottom:2px}
body.op-page .sub{color:#555;margin-bottom:8px}
body.op-page table{width:100%;border-collapse:collapse;font-size:11px}
body.op-page th,body.op-page td{border-bottom:1px solid #ddd;padding:3px 4px;text-align:right}
body.op-page th{background:#f3f3f3}
body.op-page .k{display:flex;gap:8px;margin:8px 0}
body.op-page .k div{flex:1;border:1px solid #ddd;border-radius:6px;padding:6px}
body.op-page .k b{display:block;font-size:15px}
body.op-page .row{display:flex;gap:12px;align-items:flex-start}
body.op-page .bx-svg text{font-family:Arial}
body.op-page .note{color:#666;font-size:10px;margin-top:8px}
body.op-page{background:#fff!important;padding:14mm}body.op-page .ly-bgmesh{display:none}@media print{body.op-page{padding:0}}

/* ── FLEET COMMAND MAP EXTENSIONS (mapPlus.ts, 2026-09-23) ──────────────────
   Right-column panel content for the Swaps / Burn / Expiry / Replay / Seen
   modes, and the slider bar that sits on the map under the mode switcher. */
#lyp-ctl{position:absolute;left:calc(50% + (var(--lym-ol,0px) - var(--lym-or,0px))/2);top:14px;transform:translateX(-50%);z-index:12;display:none;align-items:center;gap:10px;background:rgba(11,15,23,.94);border:1px solid rgba(240,180,80,.35);border-radius:8px;padding:6px 12px;font-family:var(--sans);font-size:13px;color:rgba(244,248,255,.8);white-space:nowrap;font-variant-numeric:tabular-nums;max-width:calc(100% - 24px)}
#lyp-ctl input[type=range]{width:220px;margin:0;padding:0;accent-color:var(--gold-hot)}
#lyp-ctl select{width:auto;margin:0;padding:3px 6px;font-size:13px;font-family:var(--sans);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:var(--txt);border-radius:5px}
#lyp-ctl b{color:var(--gold-hot);font-weight:600;min-width:64px}
.lyp-play{background:rgba(240,180,80,.15);border:1px solid rgba(240,180,80,.45);color:var(--gold-hot);border-radius:5px;width:32px;height:26px;cursor:pointer;font-size:12px}
.lyp-big{font-family:var(--sans);font-size:28px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.lyp-big small{font-size:14px;font-weight:500;color:rgba(244,248,255,.55);margin-right:3px}
.lyp-tick{font-size:28px}
.lyp-k{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.55);margin-bottom:3px}
.lyp-sub{font-size:13px;color:rgba(244,248,255,.72);line-height:1.5;margin:8px 0 10px}
.lyp-note{font-size:13px;color:rgba(244,248,255,.74);line-height:1.5;border:1px solid rgba(240,180,80,.3);border-radius:6px;padding:7px 9px;margin:8px 0}
.lyp-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lyp-item{border-top:1px solid rgba(255,255,255,.07);padding:8px 0}
.lyp-swap{border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 9px;margin:8px 0;cursor:pointer;transition:border-color .15s,background .15s}
.lyp-swap:hover{border-color:rgba(91,206,129,.4)}
.lyp-swap.on{border-color:rgba(91,206,129,.8);background:rgba(91,206,129,.07)}
.lyp-swh{position:sticky;top:-10px;z-index:2;background:#0A101C;margin:-10px -11px 4px;padding:10px 11px 12px;border-bottom:1px solid rgba(255,255,255,.08);font-family:var(--sans)}
.lyp-swe{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.52);margin-bottom:2px}
.lyp-swm{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:rgba(244,248,255,.72);margin-top:4px}
.lyp-swm span+span:before{content:"·";margin:0 -8px 0 10px;color:rgba(244,248,255,.35)}
#lyp-sw-list{font-family:var(--sans)}
.lyp-swf{margin:16px 0 6px;padding-top:4px;border-top:1px solid rgba(255,255,255,.08);font-family:var(--sans)}
.lyp-fh{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.55);margin:14px 2px 7px}
.lyp-fp{font-size:13px;line-height:1.5;color:rgba(244,248,255,.72);margin:10px 2px 0}
.lyp-lg{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.lyp-lg li{display:grid;grid-template-columns:26px 1fr;gap:9px;align-items:center;font-size:13px;line-height:1.4;color:rgba(244,248,255,.72)}
.lyp-lg b{color:#F4F8FF;font-weight:600}
.lyp-lg i{display:block;justify-self:center}
.lyp-lg-w{width:24px;height:9px;border-radius:5px;background:linear-gradient(-90deg,rgba(64,160,255,.5),#40A0FF)}
.lyp-lg-c{width:24px;height:5px;border-radius:3px;background:linear-gradient(-90deg,#F5B240 0 50%,#40A0FF 50% 100%)}
.lyp-lg-x{font-style:normal;font-size:12px;font-weight:700;color:#0B0F17;background:#ECF1F8;border-radius:9px;padding:0 6px;line-height:16px}
.lyp-lg-b{width:22px;height:11px;border:2px solid rgba(244,248,255,.6);border-bottom:none;border-radius:11px 11px 0 0;box-sizing:border-box}
/* the other modes read like the swap panel (2026-10-08): figure tiles,
   a legend with its own symbols, rows for a moved unit */
.lyp-fgs.n2{grid-template-columns:repeat(2,minmax(0,1fr));margin:10px 0 0}
.lyp-fp0{margin:8px 2px 10px}
.lyp-lg-bub{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,rgba(240,180,80,.6) 0,rgba(240,180,80,.18) 70%,rgba(240,180,80,0) 100%);box-shadow:inset 0 0 0 1.5px rgba(240,180,80,.7)}
.lyp-lg-ir{width:24px;height:9px;border-radius:5px;background:linear-gradient(-90deg,#F0B450 0 33%,#E98743 33% 66%,#E8445A 66% 100%)}
.lyp-lg-arc{width:16px;height:16px;border-radius:50%;border:3px solid rgba(240,180,80,.45);border-top-color:#E8445A;border-left-color:#E8445A;box-sizing:border-box}
.lyp-lg-rg{display:grid!important;grid-template-columns:repeat(2,8px);gap:2px}
.lyp-lg-rg span{width:8px;height:8px;border-radius:50%;border:1.6px solid;box-sizing:border-box}
.lyp-lg-vr{width:16px;height:16px;border-radius:50%;border:1.6px solid #BC9AE5;box-sizing:border-box}
.lyp-lg-vl{width:24px;height:0;border-top:2px dashed #BC9AE5}
.lyp-dl-s{margin-top:5px}
.lyp-dl-s>div{grid-template-columns:62px 1fr}
.lyp-swk{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 9px}
.lyp-swk>div{border:1px solid rgba(255,255,255,.09);border-radius:7px;padding:6px 8px;background:rgba(255,255,255,.025)}
.lyp-swk b{display:block;font-size:14px;color:var(--txt);font-variant-numeric:tabular-nums;white-space:nowrap}
.lyp-swk span{display:block;font-size:12px;color:rgba(244,248,255,.55);margin-top:1px}
.lyp-swl{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:rgba(244,248,255,.7)}
.lyp-swl>span{display:inline-flex;align-items:center;gap:5px}
.lyp-arw{color:rgba(244,248,255,.4)}
.lyp-swall{margin:0 auto 0 0;padding:4px 10px;background:transparent;font-family:inherit;cursor:pointer}
.lyp-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.lyp-dot.b{background:#40AAFF;box-shadow:0 0 0 3px rgba(64,170,255,.22)}
.lyp-ln{display:inline-block;width:16px;height:2px;border-radius:1px;background:rgba(160,176,198,.6);flex:0 0 auto}
.lyp-dot.a{background:#FFB547;box-shadow:0 0 0 3px rgba(255,181,71,.22)}
.lyp-bd{font-size:12px;font-weight:700;color:#FFB547;border:1px solid rgba(255,181,71,.5);border-radius:9px;padding:0 6px;margin-right:2px}
.lyp-rvn{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 4px;box-sizing:border-box;border-radius:15px;color:#06101A;font-size:13px;font-weight:800}
.lyp-rvbar{height:4px;border-radius:2px;background:rgba(255,255,255,.07);margin-top:5px;overflow:hidden}
.lyp-rvbar i{display:block;height:100%;border-radius:2px}
.lyp-rv .lyp-sw-h{padding:10px 12px 4px}
.lyp-rv .lyp-sw-t{font-size:15px;font-weight:600}
.lyp-rv .lyp-sw-r{font-size:13px;color:rgba(244,248,255,.7);margin-top:2px}
.lyp-rv .lyp-sw-s{font-size:15px}
.lyp-rv-f{padding:2px 51px 10px 12px}
.lyp-rv-f .lyp-rvbar{margin-top:2px}
.lyp-rv-m{display:flex;flex-wrap:wrap;gap:3px 12px;margin-top:6px;font-size:12px;color:rgba(244,248,255,.6);font-variant-numeric:tabular-nums}
.lyp-rv-m span.w{color:#FFB547}
.lyp-rvh{display:flex;align-items:baseline;justify-content:space-between;margin:12px 2px 4px}
.lyp-rvh span{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.6)}
.lyp-rvh em{font-style:normal;font-size:12px;color:rgba(244,248,255,.45)}
.lyp-rvopen{margin:10px 0 6px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.lyp-rvopen .lyp-fgs{width:100%}
.lyp-rvback{margin:0;background:transparent;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:7px}
.lyp-rvt{display:flex;align-items:center;gap:9px;font-size:18px;font-weight:600;color:#F4F8FF;line-height:1.2}
.lyp-rvt .lyp-dot{width:11px;height:11px}
.lyp-rvp{font-size:13px;color:rgba(244,248,255,.6)}
.lyp-dot-to{background:transparent;border:2px solid;box-sizing:border-box}
.lyp-ck{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%}
.lyp-ckc{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);border-radius:8px;padding:7px 9px}
.lyp-ckc .lyp-dot{grid-row:1/3;width:10px;height:10px}
.lyp-ckc b{font-size:13px;font-weight:600;color:#F4F8FF;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lyp-ckc span{font-size:12px;color:rgba(244,248,255,.62);font-variant-numeric:tabular-nums;grid-column:2}
.lyp-swr{width:100%;font-size:12px;line-height:1.45;color:rgba(244,248,255,.62)}
.lyp-dot.g{background:#2EF096;box-shadow:0 0 0 3px rgba(46,240,150,.22)}
.lyp-sw{border:1px solid rgba(255,255,255,.08);border-radius:8px;margin:6px 0;cursor:pointer;transition:border-color .15s,background .15s;outline:none;font-family:var(--sans)}
.lyp-sw:hover,.lyp-sw:focus-visible{border-color:rgba(91,206,129,.45);background:rgba(91,206,129,.04)}
.lyp-sw.on{border-color:rgba(91,206,129,.8);background:rgba(91,206,129,.07);cursor:default}
.lyp-sw-h{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:8px 10px}
.lyp-sw-m{min-width:0}
.lyp-sw-t{font-size:13.5px;font-weight:700;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lyp-sw-t span{font-weight:500;color:rgba(244,248,255,.6)}
.lyp-sw-r{display:flex;align-items:center;gap:6px;font-size:12px;color:rgba(244,248,255,.66);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lyp-sw-s{font-size:14px;font-weight:700;color:#5BCE81;white-space:nowrap;font-variant-numeric:tabular-nums}
.lyp-sw-s small{font-size:12px;font-weight:500;color:rgba(244,248,255,.5);margin-right:1px}
.lyp-sw-d{padding:12px 12px 12px;border-top:1px solid rgba(91,206,129,.18);font-family:var(--sans);display:flex;flex-direction:column;gap:12px}
.lyp-rt{position:relative;display:flex;flex-direction:column;gap:10px}
.lyp-rt:before{content:"";position:absolute;right:5px;top:14px;bottom:24px;border-right:1.5px dashed rgba(244,248,255,.22)}
.lyp-rt-s{position:relative;display:grid;grid-template-columns:12px 1fr;gap:10px;align-items:start}
.lyp-rt-d{width:12px;height:12px;border-radius:50%;margin-top:3px;box-sizing:border-box;box-shadow:0 0 0 3px rgba(11,15,23,1)}
.lyp-rt-s.to .lyp-rt-d{background:#0B0F17;border:2.5px solid}
.lyp-rt-b{min-width:0}
.lyp-rt-k{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.5)}
.lyp-rt-v{font-size:15px;font-weight:600;color:#F4F8FF;line-height:1.3;overflow-wrap:anywhere}
.lyp-rt-n{font-size:13px;color:rgba(244,248,255,.72);line-height:1.4;margin-top:1px}
.lyp-tgs{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.lyp-tg{font-size:12px;font-weight:500;color:rgba(244,248,255,.82);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:1px 7px}
.lyp-tg.w{color:#FFB547;border-color:rgba(255,181,71,.4);background:rgba(255,181,71,.08)}
.lyp-fgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.lyp-fg{display:flex;flex-direction:column;gap:2px;min-width:0;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 9px}
.lyp-fg span{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.52)}
.lyp-fg b{font-size:15px;font-weight:700;color:#F4F8FF;font-variant-numeric:tabular-nums;white-space:nowrap}
.lyp-fg b small{font-size:12px;font-weight:500;color:rgba(244,248,255,.55);margin-right:1px}
.lyp-fg em{font-style:normal;font-size:12px;color:rgba(244,248,255,.62);line-height:1.3}
.lyp-fg.g{background:rgba(91,206,129,.08);border-color:rgba(91,206,129,.35)}
.lyp-fg.g b{color:#5BCE81}
.lyp-dl{margin:0;display:flex;flex-direction:column;gap:5px}
.lyp-dl>div{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:13px;line-height:1.4}
.lyp-dl dt{color:rgba(244,248,255,.55)}
.lyp-dl dd{margin:0;color:rgba(244,248,255,.88);overflow-wrap:anywhere}
.lyp-dl b{color:#F4F8FF;font-weight:600}
.lyp-chk{display:flex;flex-wrap:wrap;gap:6px}
.lyp-chk .lyp-pill{font-family:var(--sans);font-weight:600}
.lyp-btn.lyp-btn-w{display:flex;justify-content:center;align-items:center;gap:8px;font-family:var(--sans);font-size:13px;font-weight:600;padding:9px 12px;margin-top:0;border-radius:7px;background:rgba(240,180,80,.08)}
@media(max-width:400px){.lyp-fgs{grid-template-columns:repeat(2,minmax(0,1fr))}.lyp-fgs .lyp-fg.g{grid-column:1/-1}}
.lyp-sw .lyp-no{margin-left:0}
.lyp-sw.on .lyp-no{background:#5BCE81;color:#0B0F17}
.lyp-no{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:rgba(91,206,129,.18);color:#5BCE81;font-size:12px;margin-left:4px}
.lyp-swap.on .lyp-no{background:#5BCE81;color:#0B0F17}
.lyp-kv{display:grid;grid-template-columns:78px 1fr;gap:6px;font-size:13px;line-height:1.45;color:rgba(244,248,255,.78);margin-top:5px}
.lyp-kv>span{color:rgba(244,248,255,.5)}
.lyp-kv b{color:var(--txt);font-weight:600}
.lyp-t{font-size:13px;font-weight:600;color:var(--txt);display:flex;justify-content:space-between;gap:6px;align-items:center}
.lyp-s{font-size:13px;color:rgba(244,248,255,.7);line-height:1.5;margin:3px 0 6px}
.lyp-s b{color:var(--txt);font-weight:600}
.lyp-pill{display:inline-block;border:1px solid;border-radius:10px;padding:1px 8px;font-size:12px;font-weight:600;white-space:nowrap;font-family:var(--sans)}
.lyp-btn{display:inline-block;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--gold-hot);border:1px solid rgba(240,180,80,.45);border-radius:5px;padding:6px 11px;text-decoration:none;margin-top:4px}
.lyp-btn:hover{background:rgba(240,180,80,.12)}
.lya-bar{display:flex;gap:2px;height:10px;border-radius:5px;overflow:hidden;margin:10px 0 8px;background:rgba(255,255,255,.06)}
.lya-bar>span{min-width:3px}
.lya-st{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px 10px;margin-bottom:6px}
.lya-st>div{display:flex;flex-direction:column;gap:1px}
.lya-st b{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}
.lya-st span{font-size:12px;white-space:nowrap;color:rgba(244,248,255,.66)}
.lya-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:7px}
.lya-card{display:flex;flex-direction:column;gap:3px;min-width:0;background:rgba(255,255,255,.03);border:1px solid rgba(240,180,80,.155);border-radius:8px;padding:8px 10px}
.lya-card span{font-size:12px;color:rgba(237,241,247,.66);line-height:1.25}
.lya-card b{font-size:15px;white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15}
.lya-city{color:rgba(244,248,255,.55);white-space:nowrap}
.lyp-tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px;font-family:var(--sans)}
.lyp-tbl th{text-align:right;font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.55);padding:5px 3px;border-bottom:1px solid rgba(255,255,255,.1)}
.lyp-tbl td{padding:6px 3px;border-bottom:1px solid rgba(255,255,255,.05);color:rgba(244,248,255,.85);font-variant-numeric:tabular-nums}
@media(max-width:760px){#lyp-ctl{top:8px;gap:6px;padding:5px 8px;overflow-x:auto;scrollbar-width:none}#lyp-ctl input[type=range]{width:110px}#lyp-ctl select{max-width:120px}}

/* ── FLEET COMMAND MAP: street map credits (MAP_BODY_JS STREETS, 2026-10-05) ── */
#lym-attr{position:absolute;left:calc(var(--lym-ol,0px) + 12px);top:26px;max-width:min(520px,calc(100% - 400px - var(--lym-ol,0px) - var(--lym-or,0px)));transition:left .28s cubic-bezier(.2,.7,.2,1);z-index:45;display:flex;flex-direction:column;align-items:flex-start;gap:4px;pointer-events:none;opacity:0;transition:opacity .4s;font-family:var(--sans,"IBM Plex Sans",sans-serif);font-size:12px}
#lym-attr.on{opacity:1}
#lym-attr>span{pointer-events:auto;background:rgba(10,16,28,.82);border-radius:4px;padding:2px 7px;color:rgba(244,248,255,.72)}
#lym-attr a{color:inherit;text-decoration:none}
#lym-attr a:hover{text-decoration:underline}
.lym-attr-n{color:rgba(240,180,80,.9)!important}
/* ── FLEET COMMAND MAP: zone jump bar (2026-10-06, MAP_BODY_JS CONTROLS) ──
   Left edge of the stage under the mode tabs, over the empty north-west at
   the country view. Phones use #lym-zone-sel in the filter grid instead
   (phone block in shared.ts). */
/* the left-hand panel (2026-10-05): View (status mode), Focus, Zoom to */
/* bottom left, over the Red Sea, above the brand marks (Taher, 2026-10-06) */
#lym-left{position:absolute;bottom:14px;left:calc(var(--lym-ol,0px) + 14px);transition:left .28s cubic-bezier(.2,.7,.2,1);z-index:50;display:flex;flex-direction:row;align-items:flex-end;gap:6px;width:max-content;max-width:calc(100% - 28px);font-family:var(--sans)}
/* one row: Problems only, Select area, Zoom to (opens upward, its button
   stays put under the pointer) */
#lym-left .lym-focus-g>.lym-zones-h{display:none}
#lym-left #lym-focus{flex-direction:row;gap:6px}
#lym-left>div{display:flex;flex-direction:column;gap:5px}
#lym-left .lym-zones-h{text-shadow:0 0 3px #040911,0 0 6px #040911,0 0 10px #040911;color:rgba(240,180,80,.9)}
#lym-left:not(.is-status) .lym-view-g{display:none}
#lym-focus{display:flex;flex-direction:column;gap:5px}
.lym-seg{display:flex;height:30px;border:1px solid rgba(240,180,80,.38);border-radius:var(--r-sm);overflow:hidden;background:rgba(10,16,28,.92)}
.lym-seg>button{flex:1 1 0;border:0;background:transparent;color:rgba(244,248,255,.72);font-family:var(--sans);font-size:13px;font-weight:600;text-transform:none;cursor:pointer;padding:0 10px}
.lym-seg>button+button{border-right:1px solid rgba(240,180,80,.25)}
.lym-seg>button.on{background:rgba(240,180,80,.2);color:var(--gold-hot);box-shadow:inset 0 -2px 0 var(--gold-hot)}
.lym-seg>button:focus-visible,.lym-zone:focus-visible,.lym-btn:focus-visible{outline:2px solid var(--gold-hot);outline-offset:1px}
.lym-ico{display:inline-flex;width:16px;height:16px;flex:0 0 16px}
.lym-ico svg{width:16px;height:16px}
#lym-zones,#lym-left>#lym-zones{display:flex;flex-direction:column-reverse;gap:5px}
.lym-zones-h{font-size:13px;font-weight:600;text-transform:none;color:rgba(240,180,80,.85);padding:0 2px 1px}
.lym-zone{display:flex;align-items:center;gap:7px;height:28px;padding:0 9px;background:rgba(10,16,28,.92);border:1px solid rgba(240,180,80,.28);border-radius:var(--r-sm);color:rgba(244,248,255,.8);font-family:var(--sans);font-size:13px;font-weight:600;text-transform:none;cursor:pointer;text-align:left;box-sizing:border-box}
.lym-zone[hidden]{display:none}
.lym-zone b{margin-left:auto;color:var(--gold-hot);font-weight:600;font-variant-numeric:tabular-nums}
.lym-zone i{font-style:normal;font-size:12px;color:#FF5668;font-variant-numeric:tabular-nums}
.lym-zone i:empty{display:none}
.lym-zone:hover{border-color:rgba(240,180,80,.6);color:var(--txt)}
.lym-zone.on{border-color:var(--gold-hot);background:rgba(240,180,80,.16);color:var(--gold-hot)}
.lym-zone-city{appearance:none;-webkit-appearance:none;height:28px;width:100%;padding:0 24px 0 9px;background:rgba(10,16,28,.92) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%276%27 viewBox=%270 0 10 6%27%3E%3Cpath d=%27M0 0 L5 6 L10 0 Z%27 fill=%27%23F5A623%27/%3E%3C/svg%3E") no-repeat right 9px center;background-size:10px 6px;border:1px solid rgba(240,180,80,.28);border-radius:var(--r-sm);color:rgba(244,248,255,.8);font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;outline:none;box-sizing:border-box}
.lym-zone-city.on{border-color:var(--gold-hot);color:var(--gold-hot)}
#lym-zones.is-min{min-width:0}
#lym-zones.is-min:not(.open)>:not(.lym-zones-h){display:none}
#lym-zones.is-min>.lym-zones-h{display:flex;align-items:center;height:28px;box-sizing:border-box;background:rgba(10,16,28,.92);border:1px solid rgba(240,180,80,.38);border-radius:var(--r-sm);padding:0 10px;cursor:pointer;color:var(--gold-hot);text-shadow:none}
#lym-zones.is-min>.lym-zones-h::after{content:" \25B4"}
#lym-zones.open>.lym-zones-h{border-color:var(--gold-hot);background:rgba(240,180,80,.16)}
#lym-zones.open>.lym-zones-h::after{content:" \25BE"}
#lym-zone-sel{display:none}
.lym-zbody{display:grid;grid-template-columns:auto auto;gap:10px;align-items:start;background:rgba(10,16,28,.96);border:1px solid rgba(240,180,80,.38);border-radius:8px;padding:10px;box-shadow:0 10px 30px rgba(0,0,0,.55)}
.lym-zcol{display:flex;flex-direction:column;gap:5px;min-width:168px}
.lym-zcol-h{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.55);padding:0 2px 3px}
.lym-zcities{display:flex;flex-direction:column;gap:5px;max-height:min(46vh,330px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(240,180,80,.35) transparent;padding-left:2px}
.lym-zone--c{text-transform:none;flex:0 0 auto}
/* map tools (MAP_BODY_JS MAP TOOLS): text toggles in .lym-ctrls, icon
   toggles in the phone filter grid (shown by the phone block) */
.lym-tool{display:inline-flex;align-items:center;gap:7px}
.lym-tool b{font-weight:600;font-size:12px;color:#FF5668;font-variant-numeric:tabular-nums}
.lym-tool b:empty{display:none}
.lym-tool.on{border-color:var(--gold-hot);color:var(--gold-hot);background:rgba(240,180,80,.16)}
.lym-tool--ico{display:none;justify-content:center;width:100%;height:44px;padding:0 6px;background:rgba(11,15,23,.95);border:1px solid rgba(240,180,80,.38);border-radius:6px;color:rgba(240,180,80,.85);font-family:var(--sans);font-size:13px;font-weight:600;text-transform:none;cursor:pointer;box-sizing:border-box;min-width:0;white-space:nowrap;overflow:hidden}
.lym-tool--ico svg{flex:0 0 18px;width:18px;height:18px}
.lym-tool--ico.on{color:var(--gold-hot)}
/* bottom right is navigation: Key, Fit to filters, Whole Kingdom */
.lym-sm{display:none}
.lym-home.is-idle{opacity:.45}
#lym-cols-btn[hidden]{display:none}
#lym-key-btn[aria-expanded="true"]{border-color:var(--gold-hot);color:var(--gold-hot)}
#lym-key{position:absolute;right:calc(var(--lym-or,0px) + 14px);bottom:92px;z-index:60;width:320px;max-width:calc(100% - 28px);max-height:calc(100% - 140px);overflow:auto;background:rgba(10,16,28,.97);border:1px solid rgba(240,180,80,.4);border-radius:8px;padding:10px 12px 12px;box-shadow:0 10px 30px rgba(0,0,0,.6);font-family:var(--sans);font-size:13px;color:rgba(244,248,255,.82);box-sizing:border-box}
#lym-key[hidden]{display:none}
.lym-key-h{display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:600;text-transform:none;color:var(--gold-hot);margin-bottom:4px}
.lym-key-x{background:transparent;border:0;color:rgba(240,180,80,.75);font-size:14px;cursor:pointer;padding:2px 4px}
.lym-key-s{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.55);margin:12px 0 5px}
.lym-key-row{display:flex;align-items:center;gap:9px;line-height:1.45;padding:3px 0}
.lym-key-dot{flex:0 0 10px;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px rgba(4,9,17,.9)}
.lym-key-ring{flex:0 0 12px;width:8px;height:8px;border-radius:50%;border:2px solid;background:#2EE6A8;box-sizing:content-box}
.lym-key-donut{flex:0 0 18px;width:12px;height:12px;border-radius:50%;border:3px solid #2EE6A8;border-right-color:#FF5668;border-top-color:#FAC83A;background:#060A12}
.lym-key-plate{flex:0 0 18px;width:18px;height:18px;border-radius:50%;background:rgba(4,9,17,.75);border:1px solid rgba(240,180,80,.35);box-sizing:border-box}
.lym-key-out{flex:0 0 18px;width:18px;height:18px;border-radius:50%;border:1px solid rgba(240,180,80,.6);box-sizing:border-box}
.lym-key-lead{flex:0 0 18px;height:2px;background:linear-gradient(90deg,rgba(240,180,80,.6) 70%,#F0B450 70%);border-radius:1px}
.lym-key-note{margin-top:10px;padding-top:9px;border-top:1px solid rgba(240,180,80,.18);font-size:13px;line-height:1.5;color:rgba(244,248,255,.68)}
/* one line over the bottom of the map: how to draw a box, the first-visit
   tip, where a phone's area summary went */
#lym-hint{position:absolute;left:calc(50% + (var(--lym-ol,0px) - var(--lym-or,0px))/2);top:14px;transform:translateX(-50%);z-index:55;display:flex;align-items:center;gap:10px;max-width:calc(100% - 28px);padding:7px 12px;background:rgba(10,16,28,.95);border:1px solid rgba(240,180,80,.55);border-radius:20px;font-family:var(--sans);font-size:13px;color:var(--txt);white-space:nowrap;box-shadow:0 6px 20px rgba(0,0,0,.5)}
#lym-hint[hidden]{display:none}
#lym-hint b{color:var(--gold-hot)}
#lym-hint.is-link{cursor:pointer}
.lym-hint-x{background:transparent;border:1px solid rgba(240,180,80,.5);border-radius:12px;color:var(--gold-hot);font-family:var(--sans);font-size:12px;font-weight:600;padding:2px 9px;cursor:pointer}

#lym-view{width:100%}

@media(max-width:760px){#lym-attr{top:auto;bottom:66px;max-width:calc(100% - 24px);flex-direction:column;align-items:flex-start;gap:4px}}

/* ── ONE FLEET MARKET (onefleetMarket.ts, 2026-09-23): rate band + league ── */
.mk-band{display:flex;flex-direction:column;gap:4px}
.mk-rib{transition:fill-opacity .15s}.mk-rib:hover{fill-opacity:.7}
.mk-row{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr) 90px 120px;gap:12px;align-items:center;padding:5px 4px;border-radius:6px}
.mk-row:hover{background:rgba(255,255,255,.03)}
.mk-row .n{font-size:13px;color:var(--txt);font-weight:600;min-width:0}
.mk-row .n small{display:block;font-weight:400;color:var(--txt3);font-size:11.5px}
.mk-row .v{text-align:left;font-family:var(--sans);font-size:12.5px;color:var(--txt2);font-variant-numeric:tabular-nums}
.mk-track{position:relative;height:16px;background:rgba(255,255,255,.04);border-radius:8px}
.mk-track i{position:absolute;top:0;bottom:0}
.mk-track i.z{background:rgba(91,206,129,.22);border-radius:8px}
.mk-track i.f{width:3px;margin-right:-1px;background:#F693A1}
.mk-track i.m{width:3px;margin-right:-1px;background:#7EB8D4}
.mk-track i.r{width:12px;height:12px;top:2px;margin-right:-6px;border-radius:50%;background:#F0B450;box-shadow:0 0 0 2px var(--bg2)}
.mk-track i.r.bad{background:#F693A1}.mk-track i.r.good{background:#5BCE81}.mk-track i.r.warn{background:#F0B450}
.mk-lg{display:grid;grid-template-columns:28px minmax(120px,200px) minmax(0,1fr) 80px;gap:10px;align-items:center;padding:7px 0;border-top:1px solid rgba(255,255,255,.05)}
.mk-lg .k{font-family:var(--sans);font-weight:600;color:var(--txt3);font-variant-numeric:tabular-nums}
.mk-lg .n{font-weight:600;color:var(--txt);font-size:13.5px}
.mk-lg .n small{display:block;font-weight:400;font-size:11.5px;color:var(--txt3)}
.mk-lg .v{text-align:left;font-family:var(--sans);font-weight:700;font-variant-numeric:tabular-nums}
.mk-lg .d{grid-column:2/-1;font-size:11.5px;color:var(--txt3)}
.mk-lgbar{position:relative;height:12px;background:rgba(255,255,255,.04);border-radius:6px}
.mk-lgbar b{position:absolute;right:50%;top:-2px;bottom:-2px;width:1px;background:var(--txt3)}
.mk-lgbar i{position:absolute;top:0;bottom:0;border-radius:6px}
@media(max-width:760px){.mk-row{grid-template-columns:1fr 80px;}.mk-row .mk-track{grid-column:1/-1;grid-row:2}.mk-lg{grid-template-columns:24px 1fr 70px}.mk-lg .mk-lgbar{grid-column:2/-1}}
/* ── One Fleet (2026-10-01) ── */
/* Market on the Polish type scale (stylePolish.ts): row captions 12 (were
   11.5), names and figures 13, figures in the page's sans with tabular
   numerals rather than monospace. */
.mk-row .n,.mk-lg .n{font-size:var(--fs-2)}
.mk-row .n small,.mk-lg .n small,.mk-lg .d{font-size:var(--fs-1);color:var(--ink-muted)}
.mk-row .v,.mk-lg .v{font-family:var(--sans);font-size:var(--fs-2);font-variant-numeric:tabular-nums}

/* ══ PEOPLE (/admin/people; redesign 2026-09-30) ═════════════════════════════
   Taher: "the people page is a mess, too much empty space on either side,
   buttons overlapped, not optimized design, too many buttons". Full width;
   one header (title, summary, search, Add person); People and Activity as
   tabs; one row per person with one actions menu; add and edit in a side
   panel (a full-screen sheet on phones). Page: src/surface/people.ts. */
body.pp-page{margin:0;background:#12151B;background-image:none;color:#EEF1F5;font-family:var(--sans)}
.pp-wrap{max-width:1600px;margin:0 auto;padding:24px 32px 48px;display:flex;flex-direction:column;gap:16px}
.pp-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.pp-back{display:inline-block;margin-bottom:6px;font-size:13px;color:#B5BAC4;text-decoration:none}
.pp-back:hover{color:#F0B450}
.pp-top h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em;color:#F7F4EE}
.pp-sub{margin:4px 0 0;font-size:13.5px;color:#8A909B}
.pp-tools{display:flex;align-items:center;gap:10px}
.pp-search{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:10px;border:1px solid #2C3240;background:#181C24;color:#8A909B;width:280px;box-sizing:border-box}
.pp-search:focus-within{border-color:#F0B450}
.pp-search input{flex:1;min-width:0;width:auto!important;height:100%!important;padding:0!important;margin:0;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#EEF1F5;font:400 14px var(--sans);outline:none}
.pp-btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 16px;border-radius:10px;border:1px solid transparent;font:600 14px var(--sans);cursor:pointer;white-space:nowrap;flex:none}
.pp-btn.gold{background:#F0B450;color:#15110A}
.pp-btn.gold:hover{filter:brightness(1.06)}
.pp-btn.ghost{background:transparent;color:#EEF1F5;border-color:#2C3240}
.pp-btn.ghost:hover{border-color:rgba(240,180,80,.55)}
.pp-btn:disabled{opacity:.5;cursor:default}
.pp-msg{font-size:13.5px}
.pp-msg:empty{display:none}
.pp-msg.ok{color:#7CE8AE}.pp-msg.bad{color:#F6B3BD}
.pp-panel{border:1px solid #262B36;border-radius:14px;background:#171B22;overflow:hidden}
.pp-panel[hidden]{display:none}
.pp-table{width:100%;border-collapse:collapse;font-size:14px}
.pp-table th{text-align:right;padding:12px 16px;font:600 12.5px var(--sans);color:#8A909B;letter-spacing:0;text-transform:none;background:#1B2029;border-bottom:1px solid #262B36;white-space:nowrap}
.pp-table td{padding:12px 16px;border-bottom:1px solid #20252E;color:#D9DCE2;vertical-align:middle;background:transparent!important;font-size:14px;line-height:1.4}
.pp-table tbody tr{cursor:pointer}
.pp-table tbody tr:hover td{background:#1C212A!important}
.pp-table tbody tr:focus-visible{outline:2px solid #F0B450;outline-offset:-2px}
.pp-table tbody tr:last-child td{border-bottom:0}
.pp-person{min-width:240px;white-space:nowrap}
.pp-person>.pp-av,.pp-person>.pp-pbox{vertical-align:middle}
.pp-person>.pp-pbox{margin-right:12px}
.pp-av{width:36px;height:36px;border-radius:50%;flex:none;display:inline-grid;place-items:center;background:rgba(240,180,80,.12);color:#F0B450;font:600 13px var(--sans);text-transform:none}
.pp-pbox{display:inline-flex;flex-direction:column;min-width:0}
.pp-pbox b{font-weight:600;color:#F7F4EE}
.pp-pbox small{font-size:12.5px;color:#8A909B;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-role{overflow-wrap:anywhere}
.pp-tag{display:inline-block;margin-right:8px;padding:2px 8px;border-radius:10px;background:rgba(124,232,174,.1);color:#7CE8AE;font-size:12px}
.pp-proj.none{color:#E9B45C}
.pp-pin{font-family:var(--sans);font-size:13px;font-weight:600;color:#F0B450;font-variant-numeric:tabular-nums;white-space:nowrap}
.pp-table .dim{font-family:var(--sans);color:#9AA0AB;letter-spacing:0}
.pp-seen.dim b{color:#9AA0AB}
.pp-wrap :focus-visible,.pp-drawer :focus-visible,#pp-menu :focus-visible{outline:2px solid #F0B450;outline-offset:2px}
.pp-st{white-space:nowrap}
.pp-st i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:8px;background:#5BCE81}
.pp-st i.off{background:#6F7580}
.pp-act{width:1%;text-align:left}
.pp-more{width:36px;height:36px;border-radius:8px;border:1px solid transparent;background:transparent;color:#B5BAC4;cursor:pointer;display:inline-grid;place-items:center}
@media(max-width:768px){.pp-wrap .pp-btn,.pp-wrap .pp-reqact .pp-btn,.pp-wrap .pp-filters select,.pp-wrap .pp-search input,.pp-wrap #pp-q{min-height:44px;height:44px}.pp-wrap .pp-more{width:44px;height:44px}.pp-back{display:inline-flex;align-items:center;min-height:44px}}
.pp-more:hover,.pp-more:focus-visible{border-color:#2C3240;color:#F7F4EE;background:#20252E;outline:none}
.pp-num{font-variant-numeric:tabular-nums}
.pp-empty{margin:0;padding:24px 16px;color:#8A909B;font-size:14px}
.pp-empty[hidden]{display:none}
.pp-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid #262B36;background:#161A21}
.pp-mail{font-size:12.5px;color:#8A909B}
.pp-mail:empty{display:none}
.pp-mail.ok{color:#7CE8AE}.pp-mail.bad{color:#F6B3BD}
.pp-link{border:0;background:none;padding:0;color:#F0B450;font:500 12.5px var(--sans);cursor:pointer}
.pp-selink{text-decoration:none}
/* Access requests tab (2026-10-07, auth/signup.ts) */
.pp-rqn{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;margin-right:8px;border-radius:11px;background:#F0B450;color:#140E03;font:700 12.5px var(--sans);vertical-align:2px;box-sizing:border-box}
.pp-reqs{border-color:rgba(240,180,80,.45);box-shadow:0 0 0 1px rgba(240,180,80,.08)}
.pp-sech{display:flex;align-items:baseline;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid #262B36;background:rgba(240,180,80,.05)}
.pp-sech h2{margin:0;font:600 16px var(--sans);color:#F7F4EE}
.pp-sech p{margin:0;font-size:13px;color:#8A909B}
/* One page (2026-10-07): last seen in the row, the rest in the editor. */
.pp-seen{white-space:nowrap}
.pp-seen b{display:block;font-weight:500;color:#D9DCE2}
.pp-seen small{display:block;font-size:12.5px;color:#8A909B}
.pp-tag.off{background:rgba(160,166,178,.12);color:#A0A6B2}
.pp-table tr.pp-off .pp-pbox b,.pp-table tr.pp-off .pp-av{opacity:.55}
.pp-actsum{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}
.pp-actsum div{padding:8px 10px;border:1px solid #262B36;border-radius:10px;background:#14181E}
.pp-actsum small{display:block;font-size:12px;color:#8A909B}
.pp-actsum b{display:block;margin-top:2px;font-weight:600;color:#F7F4EE;font-size:13.5px;white-space:nowrap}
#pp-sess{max-height:220px;overflow:auto}
#pp-ret{margin:10px 0 0}
.pp-reqact{width:1%;white-space:nowrap;text-align:left}
.pp-reqact .pp-btn{height:34px;padding:0 14px;margin-right:8px}
.pp-reqtable .pp-co,.pp-reqtable .pp-role{color:#D9DCE2}
/* Sheet edits page (/admin/sheet-edits, surface/sheetEdits.ts), on the pp-* base */
.se-batch{margin-bottom:12px}
.se-bhead{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid #262B36;flex-wrap:wrap}
.se-bhead b{display:block;color:#F7F4EE}
.se-bhead small{color:#8A909B;font-size:12.5px}
.se-bact{display:flex;gap:8px}
.se-undo{height:30px;padding:0 10px;font-size:13px}
.se-h2{margin:8px 0 0;font:600 16px var(--sans);color:#EEF1F5}
#se-recent .pp-table td{white-space:normal;word-break:break-word}
#se-recent{overflow-x:auto}
#se-recent .pp-table td.se-nw,.se-table td.se-nw{white-space:nowrap}
/* phone: each change is a card headed by the asset, other cells labelled */
@media(max-width:768px){
  .pp-table.se-table tbody tr{display:block;padding:12px 12px 8px}
  .pp-table.se-table tbody td{display:flex!important;justify-content:space-between!important;gap:12px;padding:6px 0!important;text-align:left;white-space:normal}
  .pp-table.se-table tbody td[data-th]::before{content:attr(data-th)!important;color:#8A909B;font-size:12px;text-align:right;flex:none}
  .pp-table.se-table tbody td:first-child{justify-content:flex-start!important;margin-bottom:4px}
  .se-bhead{align-items:stretch}.se-bact{width:100%}.se-bact .pp-btn{flex:1}
}
.pp-note{margin:0;padding:14px 16px;font-size:13px;color:#8A909B;border-bottom:1px solid #262B36}
.pp-sess{list-style:none;margin:0;padding:4px 0;display:flex;flex-direction:column;gap:6px;font-size:13px;color:#B5BAC4}
.pp-sess b{color:#F0B450;font-weight:600;margin-left:6px}
.pp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* the one actions menu */
.pp-menu{position:fixed;z-index:50;min-width:190px;padding:6px;border-radius:12px;background:#1E232C;border:1px solid #2C3240;box-shadow:0 16px 40px rgba(0,0,0,.5);display:flex;flex-direction:column}
.pp-menu[hidden]{display:none}
.pp-menu button{height:38px;padding:0 12px;border:0;border-radius:8px;background:none;color:#EEF1F5;font:400 14px var(--sans);text-align:right;cursor:pointer}
.pp-menu button:hover,.pp-menu button:focus-visible{background:#272D38;outline:none}
.pp-menu button.danger{color:#F6B3BD}
/* the editor panel */
.pp-veil{position:fixed;inset:0;z-index:40;background:rgba(5,7,11,.55);opacity:0;transition:opacity .2s ease}
.pp-veil.on{opacity:1}
.pp-veil[hidden],.pp-drawer[hidden]{display:none}
.pp-drawer{position:fixed;top:0;left:0;bottom:0;z-index:45;width:460px;max-width:100vw;background:#171B22;border-right:1px solid #2C3240;box-shadow:20px 0 48px rgba(0,0,0,.45);transform:translateX(-100%);transition:transform .2s ease}
.pp-drawer.on{transform:none}
.pp-drawer form{display:flex;flex-direction:column;height:100%}
.pp-dh{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 24px 16px;border-bottom:1px solid #262B36}
.pp-dh h2{margin:0;font-size:18px;font-weight:600;color:#F7F4EE}
.pp-x{width:36px;height:36px;border-radius:8px;border:0;background:none;color:#B5BAC4;font-size:22px;line-height:1;cursor:pointer;flex:none}
.pp-x:hover{background:#20252E;color:#F7F4EE}
.pp-db{flex:1;overflow-y:auto;padding:4px 24px 16px}
.pp-db fieldset{border:0;margin:0;padding:16px 0;border-bottom:1px solid #20252E;display:flex;flex-direction:column;gap:12px;min-width:0}
.pp-db fieldset:last-of-type{border-bottom:0}
.pp-db legend{float:right;width:100%;padding:0;margin:0 0 12px;font:600 13px var(--sans);color:#F0B450;letter-spacing:0;text-transform:none}
.pp-f{display:flex;flex-direction:column;gap:6px}
.pp-f[hidden]{display:none}
.pp-f span{font-size:13px;color:#B5BAC4;letter-spacing:0;text-transform:none;font-family:var(--sans)}
.pp-f input,.pp-f select,.pp-projadd input,.pp-pinrow input{height:40px;box-sizing:border-box;padding:0 12px;border-radius:8px;border:1px solid #2C3240;background:#12151B;color:#EEF1F5;font:400 14px var(--sans);outline:none;width:100%;min-width:0}
.pp-f input:focus,.pp-f select:focus,.pp-projadd input:focus,.pp-pinrow input:focus{border-color:#F0B450;box-shadow:0 0 0 3px rgba(240,180,80,.15)}
.pp-f input[readonly]{opacity:.6}
.pp-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.pp-check input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:#F0B450}
.pp-check span{display:flex;flex-direction:column;gap:2px}
.pp-check b{font-weight:500;font-size:14px;color:#EEF1F5}
.pp-check small{font-size:12.5px;color:#8A909B}
.pp-projadd,.pp-pinrow{display:flex;gap:8px}
.pp-projadd[hidden]{display:none}
.pp-chips{display:flex;flex-wrap:wrap;gap:8px}
.pp-chips[hidden]{display:none}
.pp-chip{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 12px 0 4px;border-radius:15px;background:rgba(240,180,80,.1);border:1px solid rgba(240,180,80,.35);color:#EEF1F5;font-size:13px}
.pp-chip button{width:24px;height:24px;border-radius:50%;border:0;background:none;color:#B5BAC4;font-size:16px;line-height:1;cursor:pointer}
.pp-chip button:hover{background:rgba(255,255,255,.08);color:#F7F4EE}
.pp-hint{font-size:13px;color:#E9B45C}
.pp-emsg{margin:8px 0 0;font-size:13.5px;color:#F6B3BD}
.pp-emsg:empty{display:none}
.pp-df{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #262B36;background:#161A21}
@media(max-width:1280px){.pp-wrap{padding:20px}.pp-table th,.pp-table td{padding:12px 10px}.pp-table .pp-inv,.pp-table .pp-seen{white-space:normal}.pp-table .pp-inv .pp-link{margin-right:0;display:block}}
/* phone: each person is a three-line card; the editor is a full-screen sheet.
   Up to 768px, where the site-wide phone rules turn every table row into a
   bordered card; these undo that for People. */
@media(max-width:768px){
  .pp-table tbody tr{background:transparent!important;border:0!important;border-bottom:1px solid #20252E!important;border-radius:0!important;margin:0!important;box-shadow:none!important;width:auto!important}
  .pp-table tbody tr:last-child{border-bottom:0!important}
  .pp-table td{justify-content:flex-start!important;width:auto!important;background:transparent!important}
  #pp-rows td.pp-person{display:flex!important;align-items:center;gap:12px;white-space:normal}
  .pp-person>.pp-pbox{margin-right:0}
  .pp-table td::before{content:none!important}
  .pp-wrap{padding:16px 12px 32px;gap:12px}
  .pp-top{flex-direction:column;align-items:stretch}
  .pp-tools{width:100%}
  .pp-search{flex:1;width:auto}
  .pp-table thead{display:none}
  .pp-table,.pp-table tbody{display:block}
  #pp-rows tr{display:grid;grid-template-columns:36px auto auto minmax(0,1fr) auto;column-gap:10px;row-gap:4px;align-items:center;padding:14px 12px;border-bottom:1px solid #20252E}
  #pp-rows td{display:block;padding:0;border:0;font-size:13px;text-align:right}
  #pp-rows .pp-person{grid-column:1/5;grid-row:1;min-width:0}
  #pp-rows .pp-act{grid-column:5;grid-row:1}
  #pp-rows .pp-role{grid-column:2;grid-row:2;color:#B5BAC4}
  #pp-rows .pp-co{grid-column:3;grid-row:2;color:#B5BAC4}
  #pp-rows .pp-seen{grid-column:4/6;grid-row:2;justify-self:end;text-align:left}
  #pp-rows .pp-seen small{display:none}
  #pp-rows .pp-proj{grid-column:2/6;grid-row:3}
  #pp-rows .pp-pin{display:none}
  #pp-rows .pp-tag{display:none}
  #pp-rows tr td:first-child{font-weight:400;color:inherit;margin:0}
  .pp-actsum{grid-template-columns:repeat(3,minmax(0,1fr))}
  #pp-reqrows tr{display:grid;grid-template-columns:36px minmax(0,1fr) auto;column-gap:10px;row-gap:6px;align-items:center;padding:14px 12px;border-bottom:1px solid #20252E}
  #pp-reqrows td{display:block;padding:0;border:0;font-size:13px;text-align:right;color:#B5BAC4}
  #pp-reqrows .pp-person{grid-column:1/-1;display:flex!important;align-items:center;gap:12px;white-space:normal;min-width:0;color:inherit}
  #pp-reqrows .pp-pbox small{white-space:normal;overflow-wrap:anywhere}
  #pp-reqrows tr td:first-child{font-weight:400;margin:0}
  #pp-reqrows .pp-co{grid-column:2}
  #pp-reqrows .pp-role{grid-column:3;justify-self:end}
  #pp-reqrows .pp-st{grid-column:2}
  #pp-reqrows .pp-seen{grid-column:3;justify-self:end}
  #pp-reqrows .pp-reqact{grid-column:1/-1;display:flex!important;gap:8px;width:auto}
  #pp-reqrows .pp-reqact .pp-btn{flex:1;margin:0;height:40px}
  .pp-drawer{width:100%;border-right:0}
  .pp-dh,.pp-db,.pp-df{padding-right:16px;padding-left:16px}
}

/* ── UTILITIES (generated by tools/utilgen.py from deck inline styles, 2026-09-06) ──
   Atomic single-declaration classes. Placed last so, at equal specificity, they win —
   which reproduces the precedence the inline styles they replaced had. Do not hand-edit;
   re-run the generator. ── */
.u-ai-baseline.u-ai-baseline.u-ai-baseline,input.u-ai-baseline.u-ai-baseline.u-ai-baseline,select.u-ai-baseline.u-ai-baseline.u-ai-baseline,textarea.u-ai-baseline.u-ai-baseline.u-ai-baseline,button.u-ai-baseline.u-ai-baseline.u-ai-baseline{align-items:baseline}
.u-ai-center.u-ai-center.u-ai-center,input.u-ai-center.u-ai-center.u-ai-center,select.u-ai-center.u-ai-center.u-ai-center,textarea.u-ai-center.u-ai-center.u-ai-center,button.u-ai-center.u-ai-center.u-ai-center{align-items:center}
.u-ai-flex-start.u-ai-flex-start.u-ai-flex-start,input.u-ai-flex-start.u-ai-flex-start.u-ai-flex-start,select.u-ai-flex-start.u-ai-flex-start.u-ai-flex-start,textarea.u-ai-flex-start.u-ai-flex-start.u-ai-flex-start,button.u-ai-flex-start.u-ai-flex-start.u-ai-flex-start{align-items:flex-start}
.u-ai-stretch.u-ai-stretch.u-ai-stretch,input.u-ai-stretch.u-ai-stretch.u-ai-stretch,select.u-ai-stretch.u-ai-stretch.u-ai-stretch,textarea.u-ai-stretch.u-ai-stretch.u-ai-stretch,button.u-ai-stretch.u-ai-stretch.u-ai-stretch{align-items:stretch}
.u-as-flex-start.u-as-flex-start.u-as-flex-start,input.u-as-flex-start.u-as-flex-start.u-as-flex-start,select.u-as-flex-start.u-as-flex-start.u-as-flex-start,textarea.u-as-flex-start.u-as-flex-start.u-as-flex-start,button.u-as-flex-start.u-as-flex-start.u-as-flex-start{align-self:flex-start}
.u-as-start.u-as-start.u-as-start,input.u-as-start.u-as-start.u-as-start,select.u-as-start.u-as-start.u-as-start,textarea.u-as-start.u-as-start.u-as-start,button.u-as-start.u-as-start.u-as-start{align-self:start}
.u-bdf-blur_4.u-bdf-blur_4.u-bdf-blur_4,input.u-bdf-blur_4.u-bdf-blur_4.u-bdf-blur_4,select.u-bdf-blur_4.u-bdf-blur_4.u-bdf-blur_4,textarea.u-bdf-blur_4.u-bdf-blur_4.u-bdf-blur_4,button.u-bdf-blur_4.u-bdf-blur_4.u-bdf-blur_4{backdrop-filter:blur(4px)}
.u-bg-bg.u-bg-bg.u-bg-bg,input.u-bg-bg.u-bg-bg.u-bg-bg,select.u-bg-bg.u-bg-bg.u-bg-bg,textarea.u-bg-bg.u-bg-bg.u-bg-bg,button.u-bg-bg.u-bg-bg.u-bg-bg{background:var(--bg)}
.u-bg-bg2.u-bg-bg2.u-bg-bg2,input.u-bg-bg2.u-bg-bg2.u-bg-bg2,select.u-bg-bg2.u-bg-bg2.u-bg-bg2,textarea.u-bg-bg2.u-bg-bg2.u-bg-bg2,button.u-bg-bg2.u-bg-bg2.u-bg-bg2{background:var(--bg2)}
.u-bg-gold-a08.u-bg-gold-a08.u-bg-gold-a08,input.u-bg-gold-a08.u-bg-gold-a08.u-bg-gold-a08,select.u-bg-gold-a08.u-bg-gold-a08.u-bg-gold-a08,textarea.u-bg-gold-a08.u-bg-gold-a08.u-bg-gold-a08,button.u-bg-gold-a08.u-bg-gold-a08.u-bg-gold-a08{background:var(--gold-a08)}
.u-bg-gold-hot.u-bg-gold-hot.u-bg-gold-hot,input.u-bg-gold-hot.u-bg-gold-hot.u-bg-gold-hot,select.u-bg-gold-hot.u-bg-gold-hot.u-bg-gold-hot,textarea.u-bg-gold-hot.u-bg-gold-hot.u-bg-gold-hot,button.u-bg-gold-hot.u-bg-gold-hot.u-bg-gold-hot{background:var(--gold-hot)}
.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08,input.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08,select.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08,textarea.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08,button.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08.u-bg-pal-100_116_139_0p08{background:var(--pal-100_116_139_0p08)}
.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72,input.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72,select.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72,textarea.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72,button.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72.u-bg-pal-11_15_23_0p72{background:var(--pal-11_15_23_0p72)}
.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06,input.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06,select.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06,textarea.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06,button.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06.u-bg-pal-126_184_212_0p06{background:var(--pal-126_184_212_0p06)}
.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05,input.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05,select.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05,textarea.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05,button.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05.u-bg-pal-185_149_228_0p05{background:var(--pal-185_149_228_0p05)}
.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06,input.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06,select.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06,textarea.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06,button.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06.u-bg-pal-185_149_228_0p06{background:var(--pal-185_149_228_0p06)}
.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1,input.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1,select.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1,textarea.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1,button.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1.u-bg-pal-185_149_228_0p1{background:var(--pal-185_149_228_0p1)}
.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05,input.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05,select.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05,textarea.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05,button.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05.u-bg-pal-232_68_90_0p05{background:var(--pal-232_68_90_0p05)}
.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06,input.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06,select.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06,textarea.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06,button.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06.u-bg-pal-232_68_90_0p06{background:var(--pal-232_68_90_0p06)}
.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1,input.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1,select.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1,textarea.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1,button.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1.u-bg-pal-232_68_90_0p1{background:var(--pal-232_68_90_0p1)}
.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12,input.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12,select.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12,textarea.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12,button.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12.u-bg-pal-232_68_90_0p12{background:var(--pal-232_68_90_0p12)}
.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15,input.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15,select.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15,textarea.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15,button.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15.u-bg-pal-232_68_90_0p15{background:var(--pal-232_68_90_0p15)}
.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04,input.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04,select.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04,textarea.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04,button.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04.u-bg-pal-240_180_80_0p04{background:var(--pal-240_180_80_0p04)}
.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05,input.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05,select.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05,textarea.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05,button.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05.u-bg-pal-240_180_80_0p05{background:var(--pal-240_180_80_0p05)}
.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06,input.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06,select.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06,textarea.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06,button.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06.u-bg-pal-240_180_80_0p06{background:var(--pal-240_180_80_0p06)}
.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12,input.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12,select.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12,textarea.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12,button.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12.u-bg-pal-240_180_80_0p12{background:var(--pal-240_180_80_0p12)}
.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02,input.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02,select.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02,textarea.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02,button.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02.u-bg-pal-255_255_255_0p02{background:var(--pal-255_255_255_0p02)}
.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025,input.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025,select.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025,textarea.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025,button.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025.u-bg-pal-255_255_255_0p025{background:var(--pal-255_255_255_0p025)}
.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06,input.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06,select.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06,textarea.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06,button.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06.u-bg-pal-255_255_255_0p06{background:var(--pal-255_255_255_0p06)}
.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1,input.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1,select.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1,textarea.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1,button.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1.u-bg-pal-255_255_255_0p1{background:var(--pal-255_255_255_0p1)}
.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78,input.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78,select.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78,textarea.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78,button.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78.u-bg-pal-4_8_20_0p78{background:var(--pal-4_8_20_0p78)}
.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06,input.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06,select.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06,textarea.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06,button.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06.u-bg-pal-82_200_120_0p06{background:var(--pal-82_200_120_0p06)}
.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1,input.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1,select.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1,textarea.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1,button.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1.u-bg-pal-82_200_120_0p1{background:var(--pal-82_200_120_0p1)}
.u-bg-panel-bg.u-bg-panel-bg.u-bg-panel-bg,input.u-bg-panel-bg.u-bg-panel-bg.u-bg-panel-bg,select.u-bg-panel-bg.u-bg-panel-bg.u-bg-panel-bg,textarea.u-bg-panel-bg.u-bg-panel-bg.u-bg-panel-bg,button.u-bg-panel-bg.u-bg-panel-bg.u-bg-panel-bg{background:var(--panel-bg)}
.u-bg-white-a03.u-bg-white-a03.u-bg-white-a03,input.u-bg-white-a03.u-bg-white-a03.u-bg-white-a03,select.u-bg-white-a03.u-bg-white-a03.u-bg-white-a03,textarea.u-bg-white-a03.u-bg-white-a03.u-bg-white-a03,button.u-bg-white-a03.u-bg-white-a03.u-bg-white-a03{background:var(--white-a03)}
.u-bg-white-a05.u-bg-white-a05.u-bg-white-a05,input.u-bg-white-a05.u-bg-white-a05.u-bg-white-a05,select.u-bg-white-a05.u-bg-white-a05.u-bg-white-a05,textarea.u-bg-white-a05.u-bg-white-a05.u-bg-white-a05,button.u-bg-white-a05.u-bg-white-a05.u-bg-white-a05{background:var(--white-a05)}
.u-bd-1_solid_bdr.u-bd-1_solid_bdr.u-bd-1_solid_bdr,input.u-bd-1_solid_bdr.u-bd-1_solid_bdr.u-bd-1_solid_bdr,select.u-bd-1_solid_bdr.u-bd-1_solid_bdr.u-bd-1_solid_bdr,textarea.u-bd-1_solid_bdr.u-bd-1_solid_bdr.u-bd-1_solid_bdr,button.u-bd-1_solid_bdr.u-bd-1_solid_bdr.u-bd-1_solid_bdr{border:1px solid var(--bdr)}
.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2,input.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2,select.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2,textarea.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2,button.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2.u-bd-1_solid_bdr-2{border:1px solid var(--bdr-2)}
.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20,input.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20,select.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20,textarea.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20,button.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20.u-bd-1_solid_gold-a20{border:1px solid var(--gold-a20)}
.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35,input.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35,select.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35,textarea.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35,button.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35.u-bd-1_solid_gold-a35{border:1px solid var(--gold-a35)}
.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2,input.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2,select.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2,textarea.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2,button.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2.u-bd-1_solid_pal-100_116_139_0p2{border:1px solid var(--pal-100_116_139_0p2)}
.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2,input.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2,select.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2,textarea.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2,button.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2.u-bd-1_solid_pal-126_184_212_0p2{border:1px solid var(--pal-126_184_212_0p2)}
.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12,input.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12,select.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12,textarea.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12,button.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12.u-bd-1_solid_pal-185_149_228_0p12{border:1px solid var(--pal-185_149_228_0p12)}
.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2,input.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2,select.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2,textarea.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2,button.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2.u-bd-1_solid_pal-185_149_228_0p2{border:1px solid var(--pal-185_149_228_0p2)}
.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12,input.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12,select.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12,textarea.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12,button.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12.u-bd-1_solid_pal-232_68_90_0p12{border:1px solid var(--pal-232_68_90_0p12)}
.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15,input.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15,select.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15,textarea.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15,button.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15.u-bd-1_solid_pal-232_68_90_0p15{border:1px solid var(--pal-232_68_90_0p15)}
.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2,input.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2,select.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2,textarea.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2,button.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2.u-bd-1_solid_pal-232_68_90_0p2{border:1px solid var(--pal-232_68_90_0p2)}
.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3,input.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3,select.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3,textarea.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3,button.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3.u-bd-1_solid_pal-232_68_90_0p3{border:1px solid var(--pal-232_68_90_0p3)}
.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4,input.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4,select.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4,textarea.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4,button.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4.u-bd-1_solid_pal-232_68_90_0p4{border:1px solid var(--pal-232_68_90_0p4)}
.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3,input.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3,select.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3,textarea.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3,button.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3.u-bd-1_solid_pal-240_180_80_0p3{border:1px solid var(--pal-240_180_80_0p3)}
.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06,input.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06,select.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06,textarea.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06,button.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06.u-bd-1_solid_pal-255_255_255_0p06{border:1px solid var(--pal-255_255_255_0p06)}
.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07,input.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07,select.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07,textarea.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07,button.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07.u-bd-1_solid_pal-255_255_255_0p07{border:1px solid var(--pal-255_255_255_0p07)}
.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1,input.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1,select.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1,textarea.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1,button.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1.u-bd-1_solid_pal-255_255_255_0p1{border:1px solid var(--pal-255_255_255_0p1)}
.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15,input.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15,select.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15,textarea.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15,button.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15.u-bd-1_solid_pal-255_255_255_0p15{border:1px solid var(--pal-255_255_255_0p15)}
.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2,input.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2,select.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2,textarea.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2,button.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2.u-bd-1_solid_pal-82_200_120_0p2{border:1px solid var(--pal-82_200_120_0p2)}
.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25,input.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25,select.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25,textarea.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25,button.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25.u-bd-1_solid_pal-82_200_120_0p25{border:1px solid var(--pal-82_200_120_0p25)}
.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2,input.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2,select.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2,textarea.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2,button.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2.u-bd-5_solid_pal-185_149_228_0p2{border:.5px solid var(--pal-185_149_228_0p2)}
.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18,input.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18,select.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18,textarea.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18,button.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18.u-bd-5_solid_pal-232_68_90_0p18{border:.5px solid var(--pal-232_68_90_0p18)}
.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18,input.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18,select.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18,textarea.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18,button.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18.u-bd-5_solid_pal-240_180_80_0p18{border:.5px solid var(--pal-240_180_80_0p18)}
.u-bd-none.u-bd-none.u-bd-none,input.u-bd-none.u-bd-none.u-bd-none,select.u-bd-none.u-bd-none.u-bd-none,textarea.u-bd-none.u-bd-none.u-bd-none,button.u-bd-none.u-bd-none.u-bd-none{border:none}
.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr,input.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr,select.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr,textarea.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr,button.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr.u-bdb-1_solid_bdr{border-bottom:1px solid var(--bdr)}
.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04,input.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04,select.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04,textarea.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04,button.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04.u-bdb-5_solid_pal-255_255_255_0p04{border-bottom:.5px solid var(--pal-255_255_255_0p04)}
.u-bc-collapse.u-bc-collapse.u-bc-collapse,input.u-bc-collapse.u-bc-collapse.u-bc-collapse,select.u-bc-collapse.u-bc-collapse.u-bc-collapse,textarea.u-bc-collapse.u-bc-collapse.u-bc-collapse,button.u-bc-collapse.u-bc-collapse.u-bc-collapse{border-collapse:collapse}
.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4,input.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4,select.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4,textarea.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4,button.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4.u-bdl-1_solid_pal-240_180_80_0p4{border-right:1px solid var(--pal-240_180_80_0p4)}
.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot,input.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot,select.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot,textarea.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot,button.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot.u-bdl-2_solid_gold-hot{border-right:2px solid var(--gold-hot)}
.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot,input.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot,select.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot,textarea.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot,button.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot.u-bdl-3_solid_gold-hot{border-right:3px solid var(--gold-hot)}
.u-r-0.u-r-0.u-r-0,input.u-r-0.u-r-0.u-r-0,select.u-r-0.u-r-0.u-r-0,textarea.u-r-0.u-r-0.u-r-0,button.u-r-0.u-r-0.u-r-0{border-radius:0}
.u-r-0_8_8_0.u-r-0_8_8_0.u-r-0_8_8_0,input.u-r-0_8_8_0.u-r-0_8_8_0.u-r-0_8_8_0,select.u-r-0_8_8_0.u-r-0_8_8_0.u-r-0_8_8_0,textarea.u-r-0_8_8_0.u-r-0_8_8_0.u-r-0_8_8_0,button.u-r-0_8_8_0.u-r-0_8_8_0.u-r-0_8_8_0{border-radius:8px 0 0 8px}
.u-r-10.u-r-10.u-r-10,input.u-r-10.u-r-10.u-r-10,select.u-r-10.u-r-10.u-r-10,textarea.u-r-10.u-r-10.u-r-10,button.u-r-10.u-r-10.u-r-10{border-radius:10px}
.u-r-14.u-r-14.u-r-14,input.u-r-14.u-r-14.u-r-14,select.u-r-14.u-r-14.u-r-14,textarea.u-r-14.u-r-14.u-r-14,button.u-r-14.u-r-14.u-r-14{border-radius:14px}
.u-r-4.u-r-4.u-r-4,input.u-r-4.u-r-4.u-r-4,select.u-r-4.u-r-4.u-r-4,textarea.u-r-4.u-r-4.u-r-4,button.u-r-4.u-r-4.u-r-4{border-radius:4px}
.u-r-6.u-r-6.u-r-6,input.u-r-6.u-r-6.u-r-6,select.u-r-6.u-r-6.u-r-6,textarea.u-r-6.u-r-6.u-r-6,button.u-r-6.u-r-6.u-r-6{border-radius:6px}
.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr,input.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr,select.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr,textarea.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr,button.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr.u-bdt-1_dashed_bdr{border-top:1px dashed var(--bdr)}
.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr,input.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr,select.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr,textarea.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr,button.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr.u-bdt-1_solid_bdr{border-top:1px solid var(--bdr)}
.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l,input.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l,select.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l,textarea.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l,button.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l.u-bdt-1_solid_gold-l{border-top:1px solid var(--gold-l)}
.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06,input.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06,select.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06,textarea.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06,button.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06.u-bdt-1_solid_pal-255_255_255_0p06{border-top:1px solid var(--pal-255_255_255_0p06)}
.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1,input.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1,select.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1,textarea.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1,button.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1.u-bdt-1_solid_pal-255_255_255_0p1{border-top:1px solid var(--pal-255_255_255_0p1)}
.u-bottom-0.u-bottom-0.u-bottom-0,input.u-bottom-0.u-bottom-0.u-bottom-0,select.u-bottom-0.u-bottom-0.u-bottom-0,textarea.u-bottom-0.u-bottom-0.u-bottom-0,button.u-bottom-0.u-bottom-0.u-bottom-0{bottom:0}
.u-c-bg.u-c-bg.u-c-bg,input.u-c-bg.u-c-bg.u-c-bg,select.u-c-bg.u-c-bg.u-c-bg,textarea.u-c-bg.u-c-bg.u-c-bg,button.u-c-bg.u-c-bg.u-c-bg{color:var(--bg)}
.u-c-crim.u-c-crim.u-c-crim,input.u-c-crim.u-c-crim.u-c-crim,select.u-c-crim.u-c-crim.u-c-crim,textarea.u-c-crim.u-c-crim.u-c-crim,button.u-c-crim.u-c-crim.u-c-crim{color:var(--crim)}
.u-c-crim-hot.u-c-crim-hot.u-c-crim-hot,input.u-c-crim-hot.u-c-crim-hot.u-c-crim-hot,select.u-c-crim-hot.u-c-crim-hot.u-c-crim-hot,textarea.u-c-crim-hot.u-c-crim-hot.u-c-crim-hot,button.u-c-crim-hot.u-c-crim-hot.u-c-crim-hot{color:var(--crim-hot)}
.u-c-gold.u-c-gold.u-c-gold,input.u-c-gold.u-c-gold.u-c-gold,select.u-c-gold.u-c-gold.u-c-gold,textarea.u-c-gold.u-c-gold.u-c-gold,button.u-c-gold.u-c-gold.u-c-gold{color:var(--gold)}
.u-c-gold-a75.u-c-gold-a75.u-c-gold-a75,input.u-c-gold-a75.u-c-gold-a75.u-c-gold-a75,select.u-c-gold-a75.u-c-gold-a75.u-c-gold-a75,textarea.u-c-gold-a75.u-c-gold-a75.u-c-gold-a75,button.u-c-gold-a75.u-c-gold-a75.u-c-gold-a75{color:var(--gold-a75)}
.u-c-gold-a80.u-c-gold-a80.u-c-gold-a80,input.u-c-gold-a80.u-c-gold-a80.u-c-gold-a80,select.u-c-gold-a80.u-c-gold-a80.u-c-gold-a80,textarea.u-c-gold-a80.u-c-gold-a80.u-c-gold-a80,button.u-c-gold-a80.u-c-gold-a80.u-c-gold-a80{color:var(--gold-a80)}
.u-c-gold-hot.u-c-gold-hot.u-c-gold-hot,input.u-c-gold-hot.u-c-gold-hot.u-c-gold-hot,select.u-c-gold-hot.u-c-gold-hot.u-c-gold-hot,textarea.u-c-gold-hot.u-c-gold-hot.u-c-gold-hot,button.u-c-gold-hot.u-c-gold-hot.u-c-gold-hot{color:var(--gold-hot)}
.u-c-good.u-c-good.u-c-good,input.u-c-good.u-c-good.u-c-good,select.u-c-good.u-c-good.u-c-good,textarea.u-c-good.u-c-good.u-c-good,button.u-c-good.u-c-good.u-c-good{color:var(--good)}
.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6,input.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6,select.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6,textarea.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6,button.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6.u-c-pal-148_163_184_0p6{color:var(--pal-148_163_184_0p6)}
.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7,input.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7,select.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7,textarea.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7,button.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7.u-c-pal-185_149_228_0p7{color:var(--pal-185_149_228_0p7)}
.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7,input.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7,select.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7,textarea.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7,button.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7.u-c-pal-240_180_80_0p7{color:var(--pal-240_180_80_0p7)}
.u-c-pal-64748b.u-c-pal-64748b.u-c-pal-64748b,input.u-c-pal-64748b.u-c-pal-64748b.u-c-pal-64748b,select.u-c-pal-64748b.u-c-pal-64748b.u-c-pal-64748b,textarea.u-c-pal-64748b.u-c-pal-64748b.u-c-pal-64748b,button.u-c-pal-64748b.u-c-pal-64748b.u-c-pal-64748b{color:var(--pal-64748b)}
.u-c-sapp.u-c-sapp.u-c-sapp,input.u-c-sapp.u-c-sapp.u-c-sapp,select.u-c-sapp.u-c-sapp.u-c-sapp,textarea.u-c-sapp.u-c-sapp.u-c-sapp,button.u-c-sapp.u-c-sapp.u-c-sapp{color:var(--sapp)}
.u-c-txt.u-c-txt.u-c-txt,input.u-c-txt.u-c-txt.u-c-txt,select.u-c-txt.u-c-txt.u-c-txt,textarea.u-c-txt.u-c-txt.u-c-txt,button.u-c-txt.u-c-txt.u-c-txt{color:var(--txt)}
.u-c-txt2.u-c-txt2.u-c-txt2,input.u-c-txt2.u-c-txt2.u-c-txt2,select.u-c-txt2.u-c-txt2.u-c-txt2,textarea.u-c-txt2.u-c-txt2.u-c-txt2,button.u-c-txt2.u-c-txt2.u-c-txt2{color:var(--txt2)}
.u-c-txt3.u-c-txt3.u-c-txt3,input.u-c-txt3.u-c-txt3.u-c-txt3,select.u-c-txt3.u-c-txt3.u-c-txt3,textarea.u-c-txt3.u-c-txt3.u-c-txt3,button.u-c-txt3.u-c-txt3.u-c-txt3{color:var(--txt3)}
.u-c-txt4.u-c-txt4.u-c-txt4,input.u-c-txt4.u-c-txt4.u-c-txt4,select.u-c-txt4.u-c-txt4.u-c-txt4,textarea.u-c-txt4.u-c-txt4.u-c-txt4,button.u-c-txt4.u-c-txt4.u-c-txt4{color:var(--txt4)}
.u-c-viz-blue.u-c-viz-blue.u-c-viz-blue,input.u-c-viz-blue.u-c-viz-blue.u-c-viz-blue,select.u-c-viz-blue.u-c-viz-blue.u-c-viz-blue,textarea.u-c-viz-blue.u-c-viz-blue.u-c-viz-blue,button.u-c-viz-blue.u-c-viz-blue.u-c-viz-blue{color:var(--viz-blue)}
.u-c-viz-green.u-c-viz-green.u-c-viz-green,input.u-c-viz-green.u-c-viz-green.u-c-viz-green,select.u-c-viz-green.u-c-viz-green.u-c-viz-green,textarea.u-c-viz-green.u-c-viz-green.u-c-viz-green,button.u-c-viz-green.u-c-viz-green.u-c-viz-green{color:var(--viz-green)}
.u-c-viz-neutral.u-c-viz-neutral.u-c-viz-neutral,input.u-c-viz-neutral.u-c-viz-neutral.u-c-viz-neutral,select.u-c-viz-neutral.u-c-viz-neutral.u-c-viz-neutral,textarea.u-c-viz-neutral.u-c-viz-neutral.u-c-viz-neutral,button.u-c-viz-neutral.u-c-viz-neutral.u-c-viz-neutral{color:var(--viz-neutral)}
.u-cur-pointer.u-cur-pointer.u-cur-pointer,input.u-cur-pointer.u-cur-pointer.u-cur-pointer,select.u-cur-pointer.u-cur-pointer.u-cur-pointer,textarea.u-cur-pointer.u-cur-pointer.u-cur-pointer,button.u-cur-pointer.u-cur-pointer.u-cur-pointer{cursor:pointer}
.u-d-block.u-d-block.u-d-block,input.u-d-block.u-d-block.u-d-block,select.u-d-block.u-d-block.u-d-block,textarea.u-d-block.u-d-block.u-d-block,button.u-d-block.u-d-block.u-d-block{display:block}
.u-d-flex.u-d-flex.u-d-flex,input.u-d-flex.u-d-flex.u-d-flex,select.u-d-flex.u-d-flex.u-d-flex,textarea.u-d-flex.u-d-flex.u-d-flex,button.u-d-flex.u-d-flex.u-d-flex{display:flex}
.u-d-grid.u-d-grid.u-d-grid,input.u-d-grid.u-d-grid.u-d-grid,select.u-d-grid.u-d-grid.u-d-grid,textarea.u-d-grid.u-d-grid.u-d-grid,button.u-d-grid.u-d-grid.u-d-grid{display:grid}
.u-d-inline-block.u-d-inline-block.u-d-inline-block,input.u-d-inline-block.u-d-inline-block.u-d-inline-block,select.u-d-inline-block.u-d-inline-block.u-d-inline-block,textarea.u-d-inline-block.u-d-inline-block.u-d-inline-block,button.u-d-inline-block.u-d-inline-block.u-d-inline-block{display:inline-block}
.u-d-none.u-d-none.u-d-none,input.u-d-none.u-d-none.u-d-none,select.u-d-none.u-d-none.u-d-none,textarea.u-d-none.u-d-none.u-d-none,button.u-d-none.u-d-none.u-d-none{display:none}
.u-f-0_0_auto.u-f-0_0_auto.u-f-0_0_auto,input.u-f-0_0_auto.u-f-0_0_auto.u-f-0_0_auto,select.u-f-0_0_auto.u-f-0_0_auto.u-f-0_0_auto,textarea.u-f-0_0_auto.u-f-0_0_auto.u-f-0_0_auto,button.u-f-0_0_auto.u-f-0_0_auto.u-f-0_0_auto{flex:0 0 auto}
.u-f-1.u-f-1.u-f-1,input.u-f-1.u-f-1.u-f-1,select.u-f-1.u-f-1.u-f-1,textarea.u-f-1.u-f-1.u-f-1,button.u-f-1.u-f-1.u-f-1{flex:1}
.u-fd-column.u-fd-column.u-fd-column,input.u-fd-column.u-fd-column.u-fd-column,select.u-fd-column.u-fd-column.u-fd-column,textarea.u-fd-column.u-fd-column.u-fd-column,button.u-fd-column.u-fd-column.u-fd-column{flex-direction:column}
.u-shr-0.u-shr-0.u-shr-0,input.u-shr-0.u-shr-0.u-shr-0,select.u-shr-0.u-shr-0.u-shr-0,textarea.u-shr-0.u-shr-0.u-shr-0,button.u-shr-0.u-shr-0.u-shr-0{flex-shrink:0}
.u-fw2-wrap.u-fw2-wrap.u-fw2-wrap,input.u-fw2-wrap.u-fw2-wrap.u-fw2-wrap,select.u-fw2-wrap.u-fw2-wrap.u-fw2-wrap,textarea.u-fw2-wrap.u-fw2-wrap.u-fw2-wrap,button.u-fw2-wrap.u-fw2-wrap.u-fw2-wrap{flex-wrap:wrap}
.u-ff-sans.u-ff-sans.u-ff-sans,input.u-ff-sans.u-ff-sans.u-ff-sans,select.u-ff-sans.u-ff-sans.u-ff-sans,textarea.u-ff-sans.u-ff-sans.u-ff-sans,button.u-ff-sans.u-ff-sans.u-ff-sans{font-family:var(--sans)}
.u-fs-12.u-fs-12.u-fs-12,input.u-fs-12.u-fs-12.u-fs-12,select.u-fs-12.u-fs-12.u-fs-12,textarea.u-fs-12.u-fs-12.u-fs-12,button.u-fs-12.u-fs-12.u-fs-12{font-size:12px}
.u-fs-13.u-fs-13.u-fs-13,input.u-fs-13.u-fs-13.u-fs-13,select.u-fs-13.u-fs-13.u-fs-13,textarea.u-fs-13.u-fs-13.u-fs-13,button.u-fs-13.u-fs-13.u-fs-13{font-size:13px}
.u-fs-14.u-fs-14.u-fs-14,input.u-fs-14.u-fs-14.u-fs-14,select.u-fs-14.u-fs-14.u-fs-14,textarea.u-fs-14.u-fs-14.u-fs-14,button.u-fs-14.u-fs-14.u-fs-14{font-size:14px}
.u-fs-15.u-fs-15.u-fs-15,input.u-fs-15.u-fs-15.u-fs-15,select.u-fs-15.u-fs-15.u-fs-15,textarea.u-fs-15.u-fs-15.u-fs-15,button.u-fs-15.u-fs-15.u-fs-15{font-size:15px}
.u-fs-16.u-fs-16.u-fs-16,input.u-fs-16.u-fs-16.u-fs-16,select.u-fs-16.u-fs-16.u-fs-16,textarea.u-fs-16.u-fs-16.u-fs-16,button.u-fs-16.u-fs-16.u-fs-16{font-size:16px}
.u-fs-17.u-fs-17.u-fs-17,input.u-fs-17.u-fs-17.u-fs-17,select.u-fs-17.u-fs-17.u-fs-17,textarea.u-fs-17.u-fs-17.u-fs-17,button.u-fs-17.u-fs-17.u-fs-17{font-size:17px}
.u-fs-18.u-fs-18.u-fs-18,input.u-fs-18.u-fs-18.u-fs-18,select.u-fs-18.u-fs-18.u-fs-18,textarea.u-fs-18.u-fs-18.u-fs-18,button.u-fs-18.u-fs-18.u-fs-18{font-size:18px}
.u-fs-20.u-fs-20.u-fs-20,input.u-fs-20.u-fs-20.u-fs-20,select.u-fs-20.u-fs-20.u-fs-20,textarea.u-fs-20.u-fs-20.u-fs-20,button.u-fs-20.u-fs-20.u-fs-20{font-size:20px}
.u-fs-22.u-fs-22.u-fs-22,input.u-fs-22.u-fs-22.u-fs-22,select.u-fs-22.u-fs-22.u-fs-22,textarea.u-fs-22.u-fs-22.u-fs-22,button.u-fs-22.u-fs-22.u-fs-22{font-size:22px}
.u-fs-26.u-fs-26.u-fs-26,input.u-fs-26.u-fs-26.u-fs-26,select.u-fs-26.u-fs-26.u-fs-26,textarea.u-fs-26.u-fs-26.u-fs-26,button.u-fs-26.u-fs-26.u-fs-26{font-size:26px}
.u-fs-28.u-fs-28.u-fs-28,input.u-fs-28.u-fs-28.u-fs-28,select.u-fs-28.u-fs-28.u-fs-28,textarea.u-fs-28.u-fs-28.u-fs-28,button.u-fs-28.u-fs-28.u-fs-28{font-size:28px}
.u-fst-italic.u-fst-italic.u-fst-italic,input.u-fst-italic.u-fst-italic.u-fst-italic,select.u-fst-italic.u-fst-italic.u-fst-italic,textarea.u-fst-italic.u-fst-italic.u-fst-italic,button.u-fst-italic.u-fst-italic.u-fst-italic{font-style:italic}
.u-fw-500.u-fw-500.u-fw-500,input.u-fw-500.u-fw-500.u-fw-500,select.u-fw-500.u-fw-500.u-fw-500,textarea.u-fw-500.u-fw-500.u-fw-500,button.u-fw-500.u-fw-500.u-fw-500{font-weight:500}
.u-fw-600.u-fw-600.u-fw-600,input.u-fw-600.u-fw-600.u-fw-600,select.u-fw-600.u-fw-600.u-fw-600,textarea.u-fw-600.u-fw-600.u-fw-600,button.u-fw-600.u-fw-600.u-fw-600{font-weight:600}
.u-fw-700.u-fw-700.u-fw-700,input.u-fw-700.u-fw-700.u-fw-700,select.u-fw-700.u-fw-700.u-fw-700,textarea.u-fw-700.u-fw-700.u-fw-700,button.u-fw-700.u-fw-700.u-fw-700{font-weight:700}
.u-fw-800.u-fw-800.u-fw-800,input.u-fw-800.u-fw-800.u-fw-800,select.u-fw-800.u-fw-800.u-fw-800,textarea.u-fw-800.u-fw-800.u-fw-800,button.u-fw-800.u-fw-800.u-fw-800{font-weight:800}
.u-gap-10.u-gap-10.u-gap-10,input.u-gap-10.u-gap-10.u-gap-10,select.u-gap-10.u-gap-10.u-gap-10,textarea.u-gap-10.u-gap-10.u-gap-10,button.u-gap-10.u-gap-10.u-gap-10{gap:10px}
.u-gap-12.u-gap-12.u-gap-12,input.u-gap-12.u-gap-12.u-gap-12,select.u-gap-12.u-gap-12.u-gap-12,textarea.u-gap-12.u-gap-12.u-gap-12,button.u-gap-12.u-gap-12.u-gap-12{gap:12px}
.u-gap-14.u-gap-14.u-gap-14,input.u-gap-14.u-gap-14.u-gap-14,select.u-gap-14.u-gap-14.u-gap-14,textarea.u-gap-14.u-gap-14.u-gap-14,button.u-gap-14.u-gap-14.u-gap-14{gap:14px}
.u-gap-16.u-gap-16.u-gap-16,input.u-gap-16.u-gap-16.u-gap-16,select.u-gap-16.u-gap-16.u-gap-16,textarea.u-gap-16.u-gap-16.u-gap-16,button.u-gap-16.u-gap-16.u-gap-16{gap:16px}
.u-gap-3.u-gap-3.u-gap-3,input.u-gap-3.u-gap-3.u-gap-3,select.u-gap-3.u-gap-3.u-gap-3,textarea.u-gap-3.u-gap-3.u-gap-3,button.u-gap-3.u-gap-3.u-gap-3{gap:3px}
.u-gap-4.u-gap-4.u-gap-4,input.u-gap-4.u-gap-4.u-gap-4,select.u-gap-4.u-gap-4.u-gap-4,textarea.u-gap-4.u-gap-4.u-gap-4,button.u-gap-4.u-gap-4.u-gap-4{gap:4px}
.u-gap-5.u-gap-5.u-gap-5,input.u-gap-5.u-gap-5.u-gap-5,select.u-gap-5.u-gap-5.u-gap-5,textarea.u-gap-5.u-gap-5.u-gap-5,button.u-gap-5.u-gap-5.u-gap-5{gap:5px}
.u-gap-6.u-gap-6.u-gap-6,input.u-gap-6.u-gap-6.u-gap-6,select.u-gap-6.u-gap-6.u-gap-6,textarea.u-gap-6.u-gap-6.u-gap-6,button.u-gap-6.u-gap-6.u-gap-6{gap:6px}
.u-gap-7.u-gap-7.u-gap-7,input.u-gap-7.u-gap-7.u-gap-7,select.u-gap-7.u-gap-7.u-gap-7,textarea.u-gap-7.u-gap-7.u-gap-7,button.u-gap-7.u-gap-7.u-gap-7{gap:7px}
.u-gap-8.u-gap-8.u-gap-8,input.u-gap-8.u-gap-8.u-gap-8,select.u-gap-8.u-gap-8.u-gap-8,textarea.u-gap-8.u-gap-8.u-gap-8,button.u-gap-8.u-gap-8.u-gap-8{gap:8px}
.u-gtc-1fr.u-gtc-1fr.u-gtc-1fr,input.u-gtc-1fr.u-gtc-1fr.u-gtc-1fr,select.u-gtc-1fr.u-gtc-1fr.u-gtc-1fr,textarea.u-gtc-1fr.u-gtc-1fr.u-gtc-1fr,button.u-gtc-1fr.u-gtc-1fr.u-gtc-1fr{grid-template-columns:1fr}
.u-gtc-1fr_1fr.u-gtc-1fr_1fr.u-gtc-1fr_1fr,input.u-gtc-1fr_1fr.u-gtc-1fr_1fr.u-gtc-1fr_1fr,select.u-gtc-1fr_1fr.u-gtc-1fr_1fr.u-gtc-1fr_1fr,textarea.u-gtc-1fr_1fr.u-gtc-1fr_1fr.u-gtc-1fr_1fr,button.u-gtc-1fr_1fr.u-gtc-1fr_1fr.u-gtc-1fr_1fr{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.u-gtc-1fr_420.u-gtc-1fr_420.u-gtc-1fr_420,input.u-gtc-1fr_420.u-gtc-1fr_420.u-gtc-1fr_420,select.u-gtc-1fr_420.u-gtc-1fr_420.u-gtc-1fr_420,textarea.u-gtc-1fr_420.u-gtc-1fr_420.u-gtc-1fr_420,button.u-gtc-1fr_420.u-gtc-1fr_420.u-gtc-1fr_420{grid-template-columns:1fr 420px}
.u-gtc-220_1fr.u-gtc-220_1fr.u-gtc-220_1fr,input.u-gtc-220_1fr.u-gtc-220_1fr.u-gtc-220_1fr,select.u-gtc-220_1fr.u-gtc-220_1fr.u-gtc-220_1fr,textarea.u-gtc-220_1fr.u-gtc-220_1fr.u-gtc-220_1fr,button.u-gtc-220_1fr.u-gtc-220_1fr.u-gtc-220_1fr{grid-template-columns:220px 1fr}
.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr,input.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr,select.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr,textarea.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr,button.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr.u-gtc-repeat_2_1fr{grid-template-columns:repeat(2,1fr)}
.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr,input.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr,select.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr,textarea.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr,button.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr.u-gtc-repeat_3_1fr{grid-template-columns:repeat(3,1fr)}
.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr,input.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr,select.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr,textarea.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr,button.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr{grid-template-columns:repeat(4,1fr)}
.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr,input.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr,select.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr,textarea.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr,button.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr.u-gtc-repeat_5_1fr{grid-template-columns:repeat(5,1fr)}
.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr,input.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr,select.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr,textarea.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr,button.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr.u-gtc-repeat_6_1fr{grid-template-columns:repeat(6,1fr)}
.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr,input.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr,select.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr,textarea.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr,button.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr.u-gtc-repeat_auto-fit_minmax_210_1fr{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.u-h-1.u-h-1.u-h-1,input.u-h-1.u-h-1.u-h-1,select.u-h-1.u-h-1.u-h-1,textarea.u-h-1.u-h-1.u-h-1,button.u-h-1.u-h-1.u-h-1{height:1px}
.u-h-100.u-h-100.u-h-100,input.u-h-100.u-h-100.u-h-100,select.u-h-100.u-h-100.u-h-100,textarea.u-h-100.u-h-100.u-h-100,button.u-h-100.u-h-100.u-h-100{height:100px}
.u-h-100pct.u-h-100pct.u-h-100pct,input.u-h-100pct.u-h-100pct.u-h-100pct,select.u-h-100pct.u-h-100pct.u-h-100pct,textarea.u-h-100pct.u-h-100pct.u-h-100pct,button.u-h-100pct.u-h-100pct.u-h-100pct{height:100%}
.u-h-130.u-h-130.u-h-130,input.u-h-130.u-h-130.u-h-130,select.u-h-130.u-h-130.u-h-130,textarea.u-h-130.u-h-130.u-h-130,button.u-h-130.u-h-130.u-h-130{height:130px}
.u-h-14.u-h-14.u-h-14,input.u-h-14.u-h-14.u-h-14,select.u-h-14.u-h-14.u-h-14,textarea.u-h-14.u-h-14.u-h-14,button.u-h-14.u-h-14.u-h-14{height:14px}
.u-h-140.u-h-140.u-h-140,input.u-h-140.u-h-140.u-h-140,select.u-h-140.u-h-140.u-h-140,textarea.u-h-140.u-h-140.u-h-140,button.u-h-140.u-h-140.u-h-140{height:140px}
.u-h-160.u-h-160.u-h-160,input.u-h-160.u-h-160.u-h-160,select.u-h-160.u-h-160.u-h-160,textarea.u-h-160.u-h-160.u-h-160,button.u-h-160.u-h-160.u-h-160{height:160px}
.u-h-220.u-h-220.u-h-220,input.u-h-220.u-h-220.u-h-220,select.u-h-220.u-h-220.u-h-220,textarea.u-h-220.u-h-220.u-h-220,button.u-h-220.u-h-220.u-h-220{height:220px}
.u-h-240.u-h-240.u-h-240,input.u-h-240.u-h-240.u-h-240,select.u-h-240.u-h-240.u-h-240,textarea.u-h-240.u-h-240.u-h-240,button.u-h-240.u-h-240.u-h-240{height:240px}
.u-h-4.u-h-4.u-h-4,input.u-h-4.u-h-4.u-h-4,select.u-h-4.u-h-4.u-h-4,textarea.u-h-4.u-h-4.u-h-4,button.u-h-4.u-h-4.u-h-4{height:4px}
.u-h-5.u-h-5.u-h-5,input.u-h-5.u-h-5.u-h-5,select.u-h-5.u-h-5.u-h-5,textarea.u-h-5.u-h-5.u-h-5,button.u-h-5.u-h-5.u-h-5{height:5px}
.u-h-6.u-h-6.u-h-6,input.u-h-6.u-h-6.u-h-6,select.u-h-6.u-h-6.u-h-6,textarea.u-h-6.u-h-6.u-h-6,button.u-h-6.u-h-6.u-h-6{height:6px}
.u-h-60.u-h-60.u-h-60,input.u-h-60.u-h-60.u-h-60,select.u-h-60.u-h-60.u-h-60,textarea.u-h-60.u-h-60.u-h-60,button.u-h-60.u-h-60.u-h-60{height:60px}
.u-h-7.u-h-7.u-h-7,input.u-h-7.u-h-7.u-h-7,select.u-h-7.u-h-7.u-h-7,textarea.u-h-7.u-h-7.u-h-7,button.u-h-7.u-h-7.u-h-7{height:7px}
.u-h-8.u-h-8.u-h-8,input.u-h-8.u-h-8.u-h-8,select.u-h-8.u-h-8.u-h-8,textarea.u-h-8.u-h-8.u-h-8,button.u-h-8.u-h-8.u-h-8{height:8px}
.u-h-90.u-h-90.u-h-90,input.u-h-90.u-h-90.u-h-90,select.u-h-90.u-h-90.u-h-90,textarea.u-h-90.u-h-90.u-h-90,button.u-h-90.u-h-90.u-h-90{height:90px}
.u-inset-0.u-inset-0.u-inset-0,input.u-inset-0.u-inset-0.u-inset-0,select.u-inset-0.u-inset-0.u-inset-0,textarea.u-inset-0.u-inset-0.u-inset-0,button.u-inset-0.u-inset-0.u-inset-0{inset:0}
.u-jc-center.u-jc-center.u-jc-center,input.u-jc-center.u-jc-center.u-jc-center,select.u-jc-center.u-jc-center.u-jc-center,textarea.u-jc-center.u-jc-center.u-jc-center,button.u-jc-center.u-jc-center.u-jc-center{justify-content:center}
.u-jc-flex-end.u-jc-flex-end.u-jc-flex-end,input.u-jc-flex-end.u-jc-flex-end.u-jc-flex-end,select.u-jc-flex-end.u-jc-flex-end.u-jc-flex-end,textarea.u-jc-flex-end.u-jc-flex-end.u-jc-flex-end,button.u-jc-flex-end.u-jc-flex-end.u-jc-flex-end{justify-content:flex-end}
.u-jc-space-between.u-jc-space-between.u-jc-space-between,input.u-jc-space-between.u-jc-space-between.u-jc-space-between,select.u-jc-space-between.u-jc-space-between.u-jc-space-between,textarea.u-jc-space-between.u-jc-space-between.u-jc-space-between,button.u-jc-space-between.u-jc-space-between.u-jc-space-between{justify-content:space-between}
.u-left-0.u-left-0.u-left-0,input.u-left-0.u-left-0.u-left-0,select.u-left-0.u-left-0.u-left-0,textarea.u-left-0.u-left-0.u-left-0,button.u-left-0.u-left-0.u-left-0{right:0}
.u-ls-0.u-ls-0.u-ls-0,input.u-ls-0.u-ls-0.u-ls-0,select.u-ls-0.u-ls-0.u-ls-0,textarea.u-ls-0.u-ls-0.u-ls-0,button.u-ls-0.u-ls-0.u-ls-0{letter-spacing:0px}
.u-ls-04em.u-ls-04em.u-ls-04em,input.u-ls-04em.u-ls-04em.u-ls-04em,select.u-ls-04em.u-ls-04em.u-ls-04em,textarea.u-ls-04em.u-ls-04em.u-ls-04em,button.u-ls-04em.u-ls-04em.u-ls-04em{letter-spacing:.04em}
.u-ls-05em.u-ls-05em.u-ls-05em,input.u-ls-05em.u-ls-05em.u-ls-05em,select.u-ls-05em.u-ls-05em.u-ls-05em,textarea.u-ls-05em.u-ls-05em.u-ls-05em,button.u-ls-05em.u-ls-05em.u-ls-05em{letter-spacing:.05em}
.u-ls-06em.u-ls-06em.u-ls-06em,input.u-ls-06em.u-ls-06em.u-ls-06em,select.u-ls-06em.u-ls-06em.u-ls-06em,textarea.u-ls-06em.u-ls-06em.u-ls-06em,button.u-ls-06em.u-ls-06em.u-ls-06em{letter-spacing:.06em}
.u-ls-08em.u-ls-08em.u-ls-08em,input.u-ls-08em.u-ls-08em.u-ls-08em,select.u-ls-08em.u-ls-08em.u-ls-08em,textarea.u-ls-08em.u-ls-08em.u-ls-08em,button.u-ls-08em.u-ls-08em.u-ls-08em{letter-spacing:.08em}
.u-ls-12em.u-ls-12em.u-ls-12em,input.u-ls-12em.u-ls-12em.u-ls-12em,select.u-ls-12em.u-ls-12em.u-ls-12em,textarea.u-ls-12em.u-ls-12em.u-ls-12em,button.u-ls-12em.u-ls-12em.u-ls-12em{letter-spacing:.12em}
.u-lh-1.u-lh-1.u-lh-1,input.u-lh-1.u-lh-1.u-lh-1,select.u-lh-1.u-lh-1.u-lh-1,textarea.u-lh-1.u-lh-1.u-lh-1,button.u-lh-1.u-lh-1.u-lh-1{line-height:1}
.u-lh-15.u-lh-15.u-lh-15,input.u-lh-15.u-lh-15.u-lh-15,select.u-lh-15.u-lh-15.u-lh-15,textarea.u-lh-15.u-lh-15.u-lh-15,button.u-lh-15.u-lh-15.u-lh-15{line-height:1.5}
.u-lh-16.u-lh-16.u-lh-16,input.u-lh-16.u-lh-16.u-lh-16,select.u-lh-16.u-lh-16.u-lh-16,textarea.u-lh-16.u-lh-16.u-lh-16,button.u-lh-16.u-lh-16.u-lh-16{line-height:1.6}
.u-lh-165.u-lh-165.u-lh-165,input.u-lh-165.u-lh-165.u-lh-165,select.u-lh-165.u-lh-165.u-lh-165,textarea.u-lh-165.u-lh-165.u-lh-165,button.u-lh-165.u-lh-165.u-lh-165{line-height:1.65}
.u-lh-17.u-lh-17.u-lh-17,input.u-lh-17.u-lh-17.u-lh-17,select.u-lh-17.u-lh-17.u-lh-17,textarea.u-lh-17.u-lh-17.u-lh-17,button.u-lh-17.u-lh-17.u-lh-17{line-height:1.7}
.u-lh-175.u-lh-175.u-lh-175,input.u-lh-175.u-lh-175.u-lh-175,select.u-lh-175.u-lh-175.u-lh-175,textarea.u-lh-175.u-lh-175.u-lh-175,button.u-lh-175.u-lh-175.u-lh-175{line-height:1.75}
.u-lh-18.u-lh-18.u-lh-18,input.u-lh-18.u-lh-18.u-lh-18,select.u-lh-18.u-lh-18.u-lh-18,textarea.u-lh-18.u-lh-18.u-lh-18,button.u-lh-18.u-lh-18.u-lh-18{line-height:1.8}
.u-lh-185.u-lh-185.u-lh-185,input.u-lh-185.u-lh-185.u-lh-185,select.u-lh-185.u-lh-185.u-lh-185,textarea.u-lh-185.u-lh-185.u-lh-185,button.u-lh-185.u-lh-185.u-lh-185{line-height:1.55}
.u-m-0.u-m-0.u-m-0,input.u-m-0.u-m-0.u-m-0,select.u-m-0.u-m-0.u-m-0,textarea.u-m-0.u-m-0.u-m-0,button.u-m-0.u-m-0.u-m-0{margin:0}
.u-m-12_0.u-m-12_0.u-m-12_0,input.u-m-12_0.u-m-12_0.u-m-12_0,select.u-m-12_0.u-m-12_0.u-m-12_0,textarea.u-m-12_0.u-m-12_0.u-m-12_0,button.u-m-12_0.u-m-12_0.u-m-12_0{margin:12px 0}
.u-m-4_0.u-m-4_0.u-m-4_0,input.u-m-4_0.u-m-4_0.u-m-4_0,select.u-m-4_0.u-m-4_0.u-m-4_0,textarea.u-m-4_0.u-m-4_0.u-m-4_0,button.u-m-4_0.u-m-4_0.u-m-4_0{margin:4px 0}
.u-mb-10.u-mb-10.u-mb-10,input.u-mb-10.u-mb-10.u-mb-10,select.u-mb-10.u-mb-10.u-mb-10,textarea.u-mb-10.u-mb-10.u-mb-10,button.u-mb-10.u-mb-10.u-mb-10{margin-bottom:10px}
.u-mb-12.u-mb-12.u-mb-12,input.u-mb-12.u-mb-12.u-mb-12,select.u-mb-12.u-mb-12.u-mb-12,textarea.u-mb-12.u-mb-12.u-mb-12,button.u-mb-12.u-mb-12.u-mb-12{margin-bottom:12px}
.u-mb-14.u-mb-14.u-mb-14,input.u-mb-14.u-mb-14.u-mb-14,select.u-mb-14.u-mb-14.u-mb-14,textarea.u-mb-14.u-mb-14.u-mb-14,button.u-mb-14.u-mb-14.u-mb-14{margin-bottom:14px}
.u-mb-16.u-mb-16.u-mb-16,input.u-mb-16.u-mb-16.u-mb-16,select.u-mb-16.u-mb-16.u-mb-16,textarea.u-mb-16.u-mb-16.u-mb-16,button.u-mb-16.u-mb-16.u-mb-16{margin-bottom:16px}
.u-mb-18.u-mb-18.u-mb-18,input.u-mb-18.u-mb-18.u-mb-18,select.u-mb-18.u-mb-18.u-mb-18,textarea.u-mb-18.u-mb-18.u-mb-18,button.u-mb-18.u-mb-18.u-mb-18{margin-bottom:18px}
.u-mb-2.u-mb-2.u-mb-2,input.u-mb-2.u-mb-2.u-mb-2,select.u-mb-2.u-mb-2.u-mb-2,textarea.u-mb-2.u-mb-2.u-mb-2,button.u-mb-2.u-mb-2.u-mb-2{margin-bottom:2px}
.u-mb-3.u-mb-3.u-mb-3,input.u-mb-3.u-mb-3.u-mb-3,select.u-mb-3.u-mb-3.u-mb-3,textarea.u-mb-3.u-mb-3.u-mb-3,button.u-mb-3.u-mb-3.u-mb-3{margin-bottom:3px}
.u-mb-4.u-mb-4.u-mb-4,input.u-mb-4.u-mb-4.u-mb-4,select.u-mb-4.u-mb-4.u-mb-4,textarea.u-mb-4.u-mb-4.u-mb-4,button.u-mb-4.u-mb-4.u-mb-4{margin-bottom:4px}
.u-mb-5.u-mb-5.u-mb-5,input.u-mb-5.u-mb-5.u-mb-5,select.u-mb-5.u-mb-5.u-mb-5,textarea.u-mb-5.u-mb-5.u-mb-5,button.u-mb-5.u-mb-5.u-mb-5{margin-bottom:5px}
.u-mb-6.u-mb-6.u-mb-6,input.u-mb-6.u-mb-6.u-mb-6,select.u-mb-6.u-mb-6.u-mb-6,textarea.u-mb-6.u-mb-6.u-mb-6,button.u-mb-6.u-mb-6.u-mb-6{margin-bottom:6px}
.u-mb-8.u-mb-8.u-mb-8,input.u-mb-8.u-mb-8.u-mb-8,select.u-mb-8.u-mb-8.u-mb-8,textarea.u-mb-8.u-mb-8.u-mb-8,button.u-mb-8.u-mb-8.u-mb-8{margin-bottom:8px}
.u-ml-12.u-ml-12.u-ml-12,input.u-ml-12.u-ml-12.u-ml-12,select.u-ml-12.u-ml-12.u-ml-12,textarea.u-ml-12.u-ml-12.u-ml-12,button.u-ml-12.u-ml-12.u-ml-12{margin-right:12px}
.u-ml-14.u-ml-14.u-ml-14,input.u-ml-14.u-ml-14.u-ml-14,select.u-ml-14.u-ml-14.u-ml-14,textarea.u-ml-14.u-ml-14.u-ml-14,button.u-ml-14.u-ml-14.u-ml-14{margin-right:14px}
.u-ml-6.u-ml-6.u-ml-6,input.u-ml-6.u-ml-6.u-ml-6,select.u-ml-6.u-ml-6.u-ml-6,textarea.u-ml-6.u-ml-6.u-ml-6,button.u-ml-6.u-ml-6.u-ml-6{margin-right:6px}
.u-ml-8.u-ml-8.u-ml-8,input.u-ml-8.u-ml-8.u-ml-8,select.u-ml-8.u-ml-8.u-ml-8,textarea.u-ml-8.u-ml-8.u-ml-8,button.u-ml-8.u-ml-8.u-ml-8{margin-right:8px}
.u-mt-0.u-mt-0.u-mt-0,input.u-mt-0.u-mt-0.u-mt-0,select.u-mt-0.u-mt-0.u-mt-0,textarea.u-mt-0.u-mt-0.u-mt-0,button.u-mt-0.u-mt-0.u-mt-0{margin-top:0px}
.u-mt-1.u-mt-1.u-mt-1,input.u-mt-1.u-mt-1.u-mt-1,select.u-mt-1.u-mt-1.u-mt-1,textarea.u-mt-1.u-mt-1.u-mt-1,button.u-mt-1.u-mt-1.u-mt-1{margin-top:1px}
.u-mt-10.u-mt-10.u-mt-10,input.u-mt-10.u-mt-10.u-mt-10,select.u-mt-10.u-mt-10.u-mt-10,textarea.u-mt-10.u-mt-10.u-mt-10,button.u-mt-10.u-mt-10.u-mt-10{margin-top:10px}
.u-mt-12.u-mt-12.u-mt-12,input.u-mt-12.u-mt-12.u-mt-12,select.u-mt-12.u-mt-12.u-mt-12,textarea.u-mt-12.u-mt-12.u-mt-12,button.u-mt-12.u-mt-12.u-mt-12{margin-top:12px}
.u-mt-14.u-mt-14.u-mt-14,input.u-mt-14.u-mt-14.u-mt-14,select.u-mt-14.u-mt-14.u-mt-14,textarea.u-mt-14.u-mt-14.u-mt-14,button.u-mt-14.u-mt-14.u-mt-14{margin-top:14px}
.u-mt-2.u-mt-2.u-mt-2,input.u-mt-2.u-mt-2.u-mt-2,select.u-mt-2.u-mt-2.u-mt-2,textarea.u-mt-2.u-mt-2.u-mt-2,button.u-mt-2.u-mt-2.u-mt-2{margin-top:2px}
.u-mt-3.u-mt-3.u-mt-3,input.u-mt-3.u-mt-3.u-mt-3,select.u-mt-3.u-mt-3.u-mt-3,textarea.u-mt-3.u-mt-3.u-mt-3,button.u-mt-3.u-mt-3.u-mt-3{margin-top:3px}
.u-mt-4.u-mt-4.u-mt-4,input.u-mt-4.u-mt-4.u-mt-4,select.u-mt-4.u-mt-4.u-mt-4,textarea.u-mt-4.u-mt-4.u-mt-4,button.u-mt-4.u-mt-4.u-mt-4{margin-top:4px}
.u-mt-5.u-mt-5.u-mt-5,input.u-mt-5.u-mt-5.u-mt-5,select.u-mt-5.u-mt-5.u-mt-5,textarea.u-mt-5.u-mt-5.u-mt-5,button.u-mt-5.u-mt-5.u-mt-5{margin-top:5px}
.u-mt-6.u-mt-6.u-mt-6,input.u-mt-6.u-mt-6.u-mt-6,select.u-mt-6.u-mt-6.u-mt-6,textarea.u-mt-6.u-mt-6.u-mt-6,button.u-mt-6.u-mt-6.u-mt-6{margin-top:6px}
.u-mt-8.u-mt-8.u-mt-8,input.u-mt-8.u-mt-8.u-mt-8,select.u-mt-8.u-mt-8.u-mt-8,textarea.u-mt-8.u-mt-8.u-mt-8,button.u-mt-8.u-mt-8.u-mt-8{margin-top:8px}
.u-maxh-280.u-maxh-280.u-maxh-280,input.u-maxh-280.u-maxh-280.u-maxh-280,select.u-maxh-280.u-maxh-280.u-maxh-280,textarea.u-maxh-280.u-maxh-280.u-maxh-280,button.u-maxh-280.u-maxh-280.u-maxh-280{max-height:280px}
.u-maxh-340.u-maxh-340.u-maxh-340,input.u-maxh-340.u-maxh-340.u-maxh-340,select.u-maxh-340.u-maxh-340.u-maxh-340,textarea.u-maxh-340.u-maxh-340.u-maxh-340,button.u-maxh-340.u-maxh-340.u-maxh-340{max-height:340px}
.u-maxw-130.u-maxw-130.u-maxw-130,input.u-maxw-130.u-maxw-130.u-maxw-130,select.u-maxw-130.u-maxw-130.u-maxw-130,textarea.u-maxw-130.u-maxw-130.u-maxw-130,button.u-maxw-130.u-maxw-130.u-maxw-130{max-width:130px}
.u-maxw-180.u-maxw-180.u-maxw-180,input.u-maxw-180.u-maxw-180.u-maxw-180,select.u-maxw-180.u-maxw-180.u-maxw-180,textarea.u-maxw-180.u-maxw-180.u-maxw-180,button.u-maxw-180.u-maxw-180.u-maxw-180{max-width:180px}
.u-minh-120.u-minh-120.u-minh-120,input.u-minh-120.u-minh-120.u-minh-120,select.u-minh-120.u-minh-120.u-minh-120,textarea.u-minh-120.u-minh-120.u-minh-120,button.u-minh-120.u-minh-120.u-minh-120{min-height:120px}
.u-minh-130.u-minh-130.u-minh-130,input.u-minh-130.u-minh-130.u-minh-130,select.u-minh-130.u-minh-130.u-minh-130,textarea.u-minh-130.u-minh-130.u-minh-130,button.u-minh-130.u-minh-130.u-minh-130{min-height:130px}
.u-minh-140.u-minh-140.u-minh-140,input.u-minh-140.u-minh-140.u-minh-140,select.u-minh-140.u-minh-140.u-minh-140,textarea.u-minh-140.u-minh-140.u-minh-140,button.u-minh-140.u-minh-140.u-minh-140{min-height:140px}
.u-minh-160.u-minh-160.u-minh-160,input.u-minh-160.u-minh-160.u-minh-160,select.u-minh-160.u-minh-160.u-minh-160,textarea.u-minh-160.u-minh-160.u-minh-160,button.u-minh-160.u-minh-160.u-minh-160{min-height:160px}
.u-minh-290.u-minh-290.u-minh-290,input.u-minh-290.u-minh-290.u-minh-290,select.u-minh-290.u-minh-290.u-minh-290,textarea.u-minh-290.u-minh-290.u-minh-290,button.u-minh-290.u-minh-290.u-minh-290{min-height:290px}
.u-minw-0.u-minw-0.u-minw-0,input.u-minw-0.u-minw-0.u-minw-0,select.u-minw-0.u-minw-0.u-minw-0,textarea.u-minw-0.u-minw-0.u-minw-0,button.u-minw-0.u-minw-0.u-minw-0{min-width:0}
.u-minw-100.u-minw-100.u-minw-100,input.u-minw-100.u-minw-100.u-minw-100,select.u-minw-100.u-minw-100.u-minw-100,textarea.u-minw-100.u-minw-100.u-minw-100,button.u-minw-100.u-minw-100.u-minw-100{min-width:100px}
.u-minw-110.u-minw-110.u-minw-110,input.u-minw-110.u-minw-110.u-minw-110,select.u-minw-110.u-minw-110.u-minw-110,textarea.u-minw-110.u-minw-110.u-minw-110,button.u-minw-110.u-minw-110.u-minw-110{min-width:110px}
.u-minw-120.u-minw-120.u-minw-120,input.u-minw-120.u-minw-120.u-minw-120,select.u-minw-120.u-minw-120.u-minw-120,textarea.u-minw-120.u-minw-120.u-minw-120,button.u-minw-120.u-minw-120.u-minw-120{min-width:120px}
.u-minw-150.u-minw-150.u-minw-150,input.u-minw-150.u-minw-150.u-minw-150,select.u-minw-150.u-minw-150.u-minw-150,textarea.u-minw-150.u-minw-150.u-minw-150,button.u-minw-150.u-minw-150.u-minw-150{min-width:150px}
.u-minw-260.u-minw-260.u-minw-260,input.u-minw-260.u-minw-260.u-minw-260,select.u-minw-260.u-minw-260.u-minw-260,textarea.u-minw-260.u-minw-260.u-minw-260,button.u-minw-260.u-minw-260.u-minw-260{min-width:260px}
.u-minw-80.u-minw-80.u-minw-80,input.u-minw-80.u-minw-80.u-minw-80,select.u-minw-80.u-minw-80.u-minw-80,textarea.u-minw-80.u-minw-80.u-minw-80,button.u-minw-80.u-minw-80.u-minw-80{min-width:80px}
.u-ov-hidden.u-ov-hidden.u-ov-hidden,input.u-ov-hidden.u-ov-hidden.u-ov-hidden,select.u-ov-hidden.u-ov-hidden.u-ov-hidden,textarea.u-ov-hidden.u-ov-hidden.u-ov-hidden,button.u-ov-hidden.u-ov-hidden.u-ov-hidden{overflow:hidden}
.u-ovx-auto.u-ovx-auto.u-ovx-auto,input.u-ovx-auto.u-ovx-auto.u-ovx-auto,select.u-ovx-auto.u-ovx-auto.u-ovx-auto,textarea.u-ovx-auto.u-ovx-auto.u-ovx-auto,button.u-ovx-auto.u-ovx-auto.u-ovx-auto{overflow-x:auto}
.u-ovy-auto.u-ovy-auto.u-ovy-auto,input.u-ovy-auto.u-ovy-auto.u-ovy-auto,select.u-ovy-auto.u-ovy-auto.u-ovy-auto,textarea.u-ovy-auto.u-ovy-auto.u-ovy-auto,button.u-ovy-auto.u-ovy-auto.u-ovy-auto{overflow-y:auto}
.u-p-0_4.u-p-0_4.u-p-0_4,input.u-p-0_4.u-p-0_4.u-p-0_4,select.u-p-0_4.u-p-0_4.u-p-0_4,textarea.u-p-0_4.u-p-0_4.u-p-0_4,button.u-p-0_4.u-p-0_4.u-p-0_4{padding:0 4px}
.u-p-10.u-p-10.u-p-10,input.u-p-10.u-p-10.u-p-10,select.u-p-10.u-p-10.u-p-10,textarea.u-p-10.u-p-10.u-p-10,button.u-p-10.u-p-10.u-p-10{padding:10px}
.u-p-10_12.u-p-10_12.u-p-10_12,input.u-p-10_12.u-p-10_12.u-p-10_12,select.u-p-10_12.u-p-10_12.u-p-10_12,textarea.u-p-10_12.u-p-10_12.u-p-10_12,button.u-p-10_12.u-p-10_12.u-p-10_12{padding:10px 12px}
.u-p-10_14.u-p-10_14.u-p-10_14,input.u-p-10_14.u-p-10_14.u-p-10_14,select.u-p-10_14.u-p-10_14.u-p-10_14,textarea.u-p-10_14.u-p-10_14.u-p-10_14,button.u-p-10_14.u-p-10_14.u-p-10_14{padding:10px 14px}
.u-p-10_16.u-p-10_16.u-p-10_16,input.u-p-10_16.u-p-10_16.u-p-10_16,select.u-p-10_16.u-p-10_16.u-p-10_16,textarea.u-p-10_16.u-p-10_16.u-p-10_16,button.u-p-10_16.u-p-10_16.u-p-10_16{padding:10px 16px}
.u-p-11.u-p-11.u-p-11,input.u-p-11.u-p-11.u-p-11,select.u-p-11.u-p-11.u-p-11,textarea.u-p-11.u-p-11.u-p-11,button.u-p-11.u-p-11.u-p-11{padding:11px}
.u-p-11_14.u-p-11_14.u-p-11_14,input.u-p-11_14.u-p-11_14.u-p-11_14,select.u-p-11_14.u-p-11_14.u-p-11_14,textarea.u-p-11_14.u-p-11_14.u-p-11_14,button.u-p-11_14.u-p-11_14.u-p-11_14{padding:11px 14px}
.u-p-12.u-p-12.u-p-12,input.u-p-12.u-p-12.u-p-12,select.u-p-12.u-p-12.u-p-12,textarea.u-p-12.u-p-12.u-p-12,button.u-p-12.u-p-12.u-p-12{padding:12px}
.u-p-12_0.u-p-12_0.u-p-12_0,input.u-p-12_0.u-p-12_0.u-p-12_0,select.u-p-12_0.u-p-12_0.u-p-12_0,textarea.u-p-12_0.u-p-12_0.u-p-12_0,button.u-p-12_0.u-p-12_0.u-p-12_0{padding:12px 0}
.u-p-12_16.u-p-12_16.u-p-12_16,input.u-p-12_16.u-p-12_16.u-p-12_16,select.u-p-12_16.u-p-12_16.u-p-12_16,textarea.u-p-12_16.u-p-12_16.u-p-12_16,button.u-p-12_16.u-p-12_16.u-p-12_16{padding:12px 16px}
.u-p-12_18.u-p-12_18.u-p-12_18,input.u-p-12_18.u-p-12_18.u-p-12_18,select.u-p-12_18.u-p-12_18.u-p-12_18,textarea.u-p-12_18.u-p-12_18.u-p-12_18,button.u-p-12_18.u-p-12_18.u-p-12_18{padding:12px 18px}
.u-p-14.u-p-14.u-p-14,input.u-p-14.u-p-14.u-p-14,select.u-p-14.u-p-14.u-p-14,textarea.u-p-14.u-p-14.u-p-14,button.u-p-14.u-p-14.u-p-14{padding:14px}
.u-p-14_16.u-p-14_16.u-p-14_16,input.u-p-14_16.u-p-14_16.u-p-14_16,select.u-p-14_16.u-p-14_16.u-p-14_16,textarea.u-p-14_16.u-p-14_16.u-p-14_16,button.u-p-14_16.u-p-14_16.u-p-14_16{padding:14px 16px}
.u-p-16.u-p-16.u-p-16,input.u-p-16.u-p-16.u-p-16,select.u-p-16.u-p-16.u-p-16,textarea.u-p-16.u-p-16.u-p-16,button.u-p-16.u-p-16.u-p-16{padding:16px}
.u-p-16_0.u-p-16_0.u-p-16_0,input.u-p-16_0.u-p-16_0.u-p-16_0,select.u-p-16_0.u-p-16_0.u-p-16_0,textarea.u-p-16_0.u-p-16_0.u-p-16_0,button.u-p-16_0.u-p-16_0.u-p-16_0{padding:16px 0}
.u-p-16_20.u-p-16_20.u-p-16_20,input.u-p-16_20.u-p-16_20.u-p-16_20,select.u-p-16_20.u-p-16_20.u-p-16_20,textarea.u-p-16_20.u-p-16_20.u-p-16_20,button.u-p-16_20.u-p-16_20.u-p-16_20{padding:16px 20px}
.u-p-18.u-p-18.u-p-18,input.u-p-18.u-p-18.u-p-18,select.u-p-18.u-p-18.u-p-18,textarea.u-p-18.u-p-18.u-p-18,button.u-p-18.u-p-18.u-p-18{padding:18px}
.u-p-20.u-p-20.u-p-20,input.u-p-20.u-p-20.u-p-20,select.u-p-20.u-p-20.u-p-20,textarea.u-p-20.u-p-20.u-p-20,button.u-p-20.u-p-20.u-p-20{padding:20px}
.u-p-20_0.u-p-20_0.u-p-20_0,input.u-p-20_0.u-p-20_0.u-p-20_0,select.u-p-20_0.u-p-20_0.u-p-20_0,textarea.u-p-20_0.u-p-20_0.u-p-20_0,button.u-p-20_0.u-p-20_0.u-p-20_0{padding:20px 0}
.u-p-2_7.u-p-2_7.u-p-2_7,input.u-p-2_7.u-p-2_7.u-p-2_7,select.u-p-2_7.u-p-2_7.u-p-2_7,textarea.u-p-2_7.u-p-2_7.u-p-2_7,button.u-p-2_7.u-p-2_7.u-p-2_7{padding:2px 7px}
.u-p-2_8.u-p-2_8.u-p-2_8,input.u-p-2_8.u-p-2_8.u-p-2_8,select.u-p-2_8.u-p-2_8.u-p-2_8,textarea.u-p-2_8.u-p-2_8.u-p-2_8,button.u-p-2_8.u-p-2_8.u-p-2_8{padding:2px 8px}
.u-p-30_0.u-p-30_0.u-p-30_0,input.u-p-30_0.u-p-30_0.u-p-30_0,select.u-p-30_0.u-p-30_0.u-p-30_0,textarea.u-p-30_0.u-p-30_0.u-p-30_0,button.u-p-30_0.u-p-30_0.u-p-30_0{padding:30px 0}
.u-p-3_10.u-p-3_10.u-p-3_10,input.u-p-3_10.u-p-3_10.u-p-3_10,select.u-p-3_10.u-p-3_10.u-p-3_10,textarea.u-p-3_10.u-p-3_10.u-p-3_10,button.u-p-3_10.u-p-3_10.u-p-3_10{padding:3px 10px}
.u-p-3_9.u-p-3_9.u-p-3_9,input.u-p-3_9.u-p-3_9.u-p-3_9,select.u-p-3_9.u-p-3_9.u-p-3_9,textarea.u-p-3_9.u-p-3_9.u-p-3_9,button.u-p-3_9.u-p-3_9.u-p-3_9{padding:3px 9px}
.u-p-40.u-p-40.u-p-40,input.u-p-40.u-p-40.u-p-40,select.u-p-40.u-p-40.u-p-40,textarea.u-p-40.u-p-40.u-p-40,button.u-p-40.u-p-40.u-p-40{padding:40px}
.u-p-40_0.u-p-40_0.u-p-40_0,input.u-p-40_0.u-p-40_0.u-p-40_0,select.u-p-40_0.u-p-40_0.u-p-40_0,textarea.u-p-40_0.u-p-40_0.u-p-40_0,button.u-p-40_0.u-p-40_0.u-p-40_0{padding:40px 0}
.u-p-5.u-p-5.u-p-5,input.u-p-5.u-p-5.u-p-5,select.u-p-5.u-p-5.u-p-5,textarea.u-p-5.u-p-5.u-p-5,button.u-p-5.u-p-5.u-p-5{padding:5px}
.u-p-6.u-p-6.u-p-6,input.u-p-6.u-p-6.u-p-6,select.u-p-6.u-p-6.u-p-6,textarea.u-p-6.u-p-6.u-p-6,button.u-p-6.u-p-6.u-p-6{padding:6px}
.u-p-6_10.u-p-6_10.u-p-6_10,input.u-p-6_10.u-p-6_10.u-p-6_10,select.u-p-6_10.u-p-6_10.u-p-6_10,textarea.u-p-6_10.u-p-6_10.u-p-6_10,button.u-p-6_10.u-p-6_10.u-p-6_10{padding:6px 10px}
.u-p-6_8.u-p-6_8.u-p-6_8,input.u-p-6_8.u-p-6_8.u-p-6_8,select.u-p-6_8.u-p-6_8.u-p-6_8,textarea.u-p-6_8.u-p-6_8.u-p-6_8,button.u-p-6_8.u-p-6_8.u-p-6_8{padding:6px 8px}
.u-p-7.u-p-7.u-p-7,input.u-p-7.u-p-7.u-p-7,select.u-p-7.u-p-7.u-p-7,textarea.u-p-7.u-p-7.u-p-7,button.u-p-7.u-p-7.u-p-7{padding:7px}
.u-p-7_10.u-p-7_10.u-p-7_10,input.u-p-7_10.u-p-7_10.u-p-7_10,select.u-p-7_10.u-p-7_10.u-p-7_10,textarea.u-p-7_10.u-p-7_10.u-p-7_10,button.u-p-7_10.u-p-7_10.u-p-7_10{padding:7px 10px}
.u-p-7_14.u-p-7_14.u-p-7_14,input.u-p-7_14.u-p-7_14.u-p-7_14,select.u-p-7_14.u-p-7_14.u-p-7_14,textarea.u-p-7_14.u-p-7_14.u-p-7_14,button.u-p-7_14.u-p-7_14.u-p-7_14{padding:7px 14px}
.u-p-7_8.u-p-7_8.u-p-7_8,input.u-p-7_8.u-p-7_8.u-p-7_8,select.u-p-7_8.u-p-7_8.u-p-7_8,textarea.u-p-7_8.u-p-7_8.u-p-7_8,button.u-p-7_8.u-p-7_8.u-p-7_8{padding:7px 8px}
.u-p-8.u-p-8.u-p-8,input.u-p-8.u-p-8.u-p-8,select.u-p-8.u-p-8.u-p-8,textarea.u-p-8.u-p-8.u-p-8,button.u-p-8.u-p-8.u-p-8{padding:8px}
.u-p-8_0.u-p-8_0.u-p-8_0,input.u-p-8_0.u-p-8_0.u-p-8_0,select.u-p-8_0.u-p-8_0.u-p-8_0,textarea.u-p-8_0.u-p-8_0.u-p-8_0,button.u-p-8_0.u-p-8_0.u-p-8_0{padding:8px 0}
.u-p-8_0_0.u-p-8_0_0.u-p-8_0_0,input.u-p-8_0_0.u-p-8_0_0.u-p-8_0_0,select.u-p-8_0_0.u-p-8_0_0.u-p-8_0_0,textarea.u-p-8_0_0.u-p-8_0_0.u-p-8_0_0,button.u-p-8_0_0.u-p-8_0_0.u-p-8_0_0{padding:8px 0 0}
.u-p-8_10.u-p-8_10.u-p-8_10,input.u-p-8_10.u-p-8_10.u-p-8_10,select.u-p-8_10.u-p-8_10.u-p-8_10,textarea.u-p-8_10.u-p-8_10.u-p-8_10,button.u-p-8_10.u-p-8_10.u-p-8_10{padding:8px 10px}
.u-p-8_12.u-p-8_12.u-p-8_12,input.u-p-8_12.u-p-8_12.u-p-8_12,select.u-p-8_12.u-p-8_12.u-p-8_12,textarea.u-p-8_12.u-p-8_12.u-p-8_12,button.u-p-8_12.u-p-8_12.u-p-8_12{padding:8px 12px}
.u-p-8_16.u-p-8_16.u-p-8_16,input.u-p-8_16.u-p-8_16.u-p-8_16,select.u-p-8_16.u-p-8_16.u-p-8_16,textarea.u-p-8_16.u-p-8_16.u-p-8_16,button.u-p-8_16.u-p-8_16.u-p-8_16{padding:8px 16px}
.u-p-9.u-p-9.u-p-9,input.u-p-9.u-p-9.u-p-9,select.u-p-9.u-p-9.u-p-9,textarea.u-p-9.u-p-9.u-p-9,button.u-p-9.u-p-9.u-p-9{padding:9px}
.u-p-9_14.u-p-9_14.u-p-9_14,input.u-p-9_14.u-p-9_14.u-p-9_14,select.u-p-9_14.u-p-9_14.u-p-9_14,textarea.u-p-9_14.u-p-9_14.u-p-9_14,button.u-p-9_14.u-p-9_14.u-p-9_14{padding:9px 14px}
.u-p-9_8.u-p-9_8.u-p-9_8,input.u-p-9_8.u-p-9_8.u-p-9_8,select.u-p-9_8.u-p-9_8.u-p-9_8,textarea.u-p-9_8.u-p-9_8.u-p-9_8,button.u-p-9_8.u-p-9_8.u-p-9_8{padding:9px 8px}
.u-pb-0.u-pb-0.u-pb-0,input.u-pb-0.u-pb-0.u-pb-0,select.u-pb-0.u-pb-0.u-pb-0,textarea.u-pb-0.u-pb-0.u-pb-0,button.u-pb-0.u-pb-0.u-pb-0{padding-bottom:0}
.u-pt-2.u-pt-2.u-pt-2,input.u-pt-2.u-pt-2.u-pt-2,select.u-pt-2.u-pt-2.u-pt-2,textarea.u-pt-2.u-pt-2.u-pt-2,button.u-pt-2.u-pt-2.u-pt-2{padding-top:2px}
.u-pt-4.u-pt-4.u-pt-4,input.u-pt-4.u-pt-4.u-pt-4,select.u-pt-4.u-pt-4.u-pt-4,textarea.u-pt-4.u-pt-4.u-pt-4,button.u-pt-4.u-pt-4.u-pt-4{padding-top:4px}
.u-pt-6.u-pt-6.u-pt-6,input.u-pt-6.u-pt-6.u-pt-6,select.u-pt-6.u-pt-6.u-pt-6,textarea.u-pt-6.u-pt-6.u-pt-6,button.u-pt-6.u-pt-6.u-pt-6{padding-top:6px}
.u-pt-8.u-pt-8.u-pt-8,input.u-pt-8.u-pt-8.u-pt-8,select.u-pt-8.u-pt-8.u-pt-8,textarea.u-pt-8.u-pt-8.u-pt-8,button.u-pt-8.u-pt-8.u-pt-8{padding-top:8px}
.u-pos-absolute.u-pos-absolute.u-pos-absolute,input.u-pos-absolute.u-pos-absolute.u-pos-absolute,select.u-pos-absolute.u-pos-absolute.u-pos-absolute,textarea.u-pos-absolute.u-pos-absolute.u-pos-absolute,button.u-pos-absolute.u-pos-absolute.u-pos-absolute{position:absolute}
.u-pos-fixed.u-pos-fixed.u-pos-fixed,input.u-pos-fixed.u-pos-fixed.u-pos-fixed,select.u-pos-fixed.u-pos-fixed.u-pos-fixed,textarea.u-pos-fixed.u-pos-fixed.u-pos-fixed,button.u-pos-fixed.u-pos-fixed.u-pos-fixed{position:fixed}
.u-pos-relative.u-pos-relative.u-pos-relative,input.u-pos-relative.u-pos-relative.u-pos-relative,select.u-pos-relative.u-pos-relative.u-pos-relative,textarea.u-pos-relative.u-pos-relative.u-pos-relative,button.u-pos-relative.u-pos-relative.u-pos-relative{position:relative}
.u-pos-sticky.u-pos-sticky.u-pos-sticky,input.u-pos-sticky.u-pos-sticky.u-pos-sticky,select.u-pos-sticky.u-pos-sticky.u-pos-sticky,textarea.u-pos-sticky.u-pos-sticky.u-pos-sticky,button.u-pos-sticky.u-pos-sticky.u-pos-sticky{position:sticky}
.u-rs-vertical.u-rs-vertical.u-rs-vertical,input.u-rs-vertical.u-rs-vertical.u-rs-vertical,select.u-rs-vertical.u-rs-vertical.u-rs-vertical,textarea.u-rs-vertical.u-rs-vertical.u-rs-vertical,button.u-rs-vertical.u-rs-vertical.u-rs-vertical{resize:vertical}
.u-right-0.u-right-0.u-right-0,input.u-right-0.u-right-0.u-right-0,select.u-right-0.u-right-0.u-right-0,textarea.u-right-0.u-right-0.u-right-0,button.u-right-0.u-right-0.u-right-0{left:0}
.u-smt-68.u-smt-68.u-smt-68,input.u-smt-68.u-smt-68.u-smt-68,select.u-smt-68.u-smt-68.u-smt-68,textarea.u-smt-68.u-smt-68.u-smt-68,button.u-smt-68.u-smt-68.u-smt-68{scroll-margin-top:68px}
.u-ta-center.u-ta-center.u-ta-center,input.u-ta-center.u-ta-center.u-ta-center,select.u-ta-center.u-ta-center.u-ta-center,textarea.u-ta-center.u-ta-center.u-ta-center,button.u-ta-center.u-ta-center.u-ta-center{text-align:center}
.u-ta-left.u-ta-left.u-ta-left,input.u-ta-left.u-ta-left.u-ta-left,select.u-ta-left.u-ta-left.u-ta-left,textarea.u-ta-left.u-ta-left.u-ta-left,button.u-ta-left.u-ta-left.u-ta-left{text-align:right}
.u-ta-right.u-ta-right.u-ta-right,input.u-ta-right.u-ta-right.u-ta-right,select.u-ta-right.u-ta-right.u-ta-right,textarea.u-ta-right.u-ta-right.u-ta-right,button.u-ta-right.u-ta-right.u-ta-right{text-align:left}
.u-td-none.u-td-none.u-td-none,input.u-td-none.u-td-none.u-td-none,select.u-td-none.u-td-none.u-td-none,textarea.u-td-none.u-td-none.u-td-none,button.u-td-none.u-td-none.u-td-none{text-decoration:none}
.u-to-ellipsis.u-to-ellipsis.u-to-ellipsis,input.u-to-ellipsis.u-to-ellipsis.u-to-ellipsis,select.u-to-ellipsis.u-to-ellipsis.u-to-ellipsis,textarea.u-to-ellipsis.u-to-ellipsis.u-to-ellipsis,button.u-to-ellipsis.u-to-ellipsis.u-to-ellipsis{text-overflow:ellipsis}
.u-tt-uppercase.u-tt-uppercase.u-tt-uppercase,input.u-tt-uppercase.u-tt-uppercase.u-tt-uppercase,select.u-tt-uppercase.u-tt-uppercase.u-tt-uppercase,textarea.u-tt-uppercase.u-tt-uppercase.u-tt-uppercase,button.u-tt-uppercase.u-tt-uppercase.u-tt-uppercase{text-transform:none;letter-spacing:.01em}
.u-top-0.u-top-0.u-top-0,input.u-top-0.u-top-0.u-top-0,select.u-top-0.u-top-0.u-top-0,textarea.u-top-0.u-top-0.u-top-0,button.u-top-0.u-top-0.u-top-0{top:0}
.u-tr-background_18s.u-tr-background_18s.u-tr-background_18s,input.u-tr-background_18s.u-tr-background_18s.u-tr-background_18s,select.u-tr-background_18s.u-tr-background_18s.u-tr-background_18s,textarea.u-tr-background_18s.u-tr-background_18s.u-tr-background_18s,button.u-tr-background_18s.u-tr-background_18s.u-tr-background_18s{transition:background .18s}
.u-ws-nowrap.u-ws-nowrap.u-ws-nowrap,input.u-ws-nowrap.u-ws-nowrap.u-ws-nowrap,select.u-ws-nowrap.u-ws-nowrap.u-ws-nowrap,textarea.u-ws-nowrap.u-ws-nowrap.u-ws-nowrap,button.u-ws-nowrap.u-ws-nowrap.u-ws-nowrap{white-space:nowrap}
.u-w-1.u-w-1.u-w-1,input.u-w-1.u-w-1.u-w-1,select.u-w-1.u-w-1.u-w-1,textarea.u-w-1.u-w-1.u-w-1,button.u-w-1.u-w-1.u-w-1{width:1px}
.u-w-100.u-w-100.u-w-100,input.u-w-100.u-w-100.u-w-100,select.u-w-100.u-w-100.u-w-100,textarea.u-w-100.u-w-100.u-w-100,button.u-w-100.u-w-100.u-w-100{width:100px}
.u-w-100pct.u-w-100pct.u-w-100pct,input.u-w-100pct.u-w-100pct.u-w-100pct,select.u-w-100pct.u-w-100pct.u-w-100pct,textarea.u-w-100pct.u-w-100pct.u-w-100pct,button.u-w-100pct.u-w-100pct.u-w-100pct{width:100%}
.u-w-160.u-w-160.u-w-160,input.u-w-160.u-w-160.u-w-160,select.u-w-160.u-w-160.u-w-160,textarea.u-w-160.u-w-160.u-w-160,button.u-w-160.u-w-160.u-w-160{width:160px}
.u-w-24.u-w-24.u-w-24,input.u-w-24.u-w-24.u-w-24,select.u-w-24.u-w-24.u-w-24,textarea.u-w-24.u-w-24.u-w-24,button.u-w-24.u-w-24.u-w-24{width:24px}
.u-w-28.u-w-28.u-w-28,input.u-w-28.u-w-28.u-w-28,select.u-w-28.u-w-28.u-w-28,textarea.u-w-28.u-w-28.u-w-28,button.u-w-28.u-w-28.u-w-28{width:28px}
.u-w-28pct.u-w-28pct.u-w-28pct,input.u-w-28pct.u-w-28pct.u-w-28pct,select.u-w-28pct.u-w-28pct.u-w-28pct,textarea.u-w-28pct.u-w-28pct.u-w-28pct,button.u-w-28pct.u-w-28pct.u-w-28pct{width:28%}
.u-w-40.u-w-40.u-w-40,input.u-w-40.u-w-40.u-w-40,select.u-w-40.u-w-40.u-w-40,textarea.u-w-40.u-w-40.u-w-40,button.u-w-40.u-w-40.u-w-40{width:40px}
.u-w-min_470_100pct.u-w-min_470_100pct.u-w-min_470_100pct,input.u-w-min_470_100pct.u-w-min_470_100pct.u-w-min_470_100pct,select.u-w-min_470_100pct.u-w-min_470_100pct.u-w-min_470_100pct,textarea.u-w-min_470_100pct.u-w-min_470_100pct.u-w-min_470_100pct,button.u-w-min_470_100pct.u-w-min_470_100pct.u-w-min_470_100pct{width:min(470px,100%)}
.u-z-2.u-z-2.u-z-2,input.u-z-2.u-z-2.u-z-2,select.u-z-2.u-z-2.u-z-2,textarea.u-z-2.u-z-2.u-z-2,button.u-z-2.u-z-2.u-z-2{z-index:2}
.u-z-90.u-z-90.u-z-90,input.u-z-90.u-z-90.u-z-90,select.u-z-90.u-z-90.u-z-90,textarea.u-z-90.u-z-90.u-z-90,button.u-z-90.u-z-90.u-z-90{z-index:90}
.u-z-99999.u-z-99999.u-z-99999,input.u-z-99999.u-z-99999.u-z-99999,select.u-z-99999.u-z-99999.u-z-99999,textarea.u-z-99999.u-z-99999.u-z-99999,button.u-z-99999.u-z-99999.u-z-99999{z-index:99999}

/* ── VISUAL REFRESH 2026-09-06 (Taher-approved direction) ─────────────────
   1) Card titles read as instrument labels, not tracked-out SaaS eyebrows.
   2) Hero row (Monthly Burn + 3 donuts + Fleet Health) gets real hierarchy:
      the four supporting gauges recede (flat, sunk, hairline-only); Fleet
      Health is the one elevated instrument, pinned to the row's end via the CSS
      order property regardless of DOM position so ceo/coo/pmv all resolve to the
      same layout even though each writes the row in a different order. ── */
.u-fs-12.u-tt-uppercase.u-c-txt2:not(.u-ff-mono):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.u-fs-12.u-tt-uppercase.u-c-txt3:not(.u-ff-mono):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.u-fs-12.u-tt-uppercase.u-c-txt4:not(.u-ff-mono):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.u-fs-13.u-tt-uppercase.u-c-txt2:not(.u-ff-mono):not(.u-fw-600):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.u-fs-13.u-tt-uppercase.u-c-txt3:not(.u-ff-mono):not(.u-fw-600):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.u-fs-13.u-tt-uppercase.u-c-txt4:not(.u-ff-mono):not(.u-fw-600):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.u-fs-14.u-tt-uppercase.u-c-txt2:not(.u-ff-mono):not(.u-fw-600):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.u-fs-14.u-tt-uppercase.u-c-txt3:not(.u-ff-mono):not(.u-fw-600):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.u-fs-14.u-tt-uppercase.u-c-txt4:not(.u-ff-mono):not(.u-fw-600):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.gauge-title,
.mh-lbl{
  text-transform:none;
  letter-spacing:0;
  font-weight:500;
}
.u-fs-12.u-tt-uppercase.u-c-txt2:not(.u-ff-mono):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]),
.u-fs-12.u-tt-uppercase.u-c-txt3:not(.u-ff-mono):not(.u-fw-700):not([class*="u-bg-"]):not([class*="u-bd-1_solid_pal"]){ font-size:13px; }
.gauge-title{ font-size:15px; font-weight:600; color:var(--txt); }

.hero-row{
  grid-template-columns:.85fr .85fr .85fr .85fr 1.7fr!important;
  gap:14px!important;
}
.hero-row > *{ order:0; }
.hero-row .gauge-card--primary{ order:5; }
.hero-row > *:not(.gauge-card--primary){
  border-radius:2px;
  background:var(--bg);
  border:none;
  border-bottom:2px solid var(--bdr);
  box-shadow:none;
}
/* burnCard renders a nested .gauge-card (pmv wraps it, ceo/coo call it direct) —
   style whichever element is the real box, at any nesting depth, so both markup
   shapes end up identical instead of the wrapper's own box competing with it. */
.hero-row .gauge-card:not(.gauge-card--primary){
  border-radius:2px;
  background:var(--bg);
  border:none;
  border-bottom:2px solid var(--bdr);
  box-shadow:none;
  height:100%;
}
.hero-row .gauge-card--primary{
  border:none;
  border-top:3px solid var(--gold-hot);
  background:radial-gradient(120% 100% at 50% 0%, rgba(214,165,74,.13), var(--bg) 55%);
  box-shadow:0 24px 60px rgba(0,0,0,.55);
  transform:scale(1.02);
  position:relative;
  z-index:2;
}
.hero-row .gauge-card--primary .gauge-title{ font-size:17px; letter-spacing:.01em; }
@media(max-width:1100px){
  .hero-row{ grid-template-columns:repeat(2,1fr)!important; }
  .hero-row .gauge-card--primary{ grid-column:1/-1; transform:none; }
}

/* ── SEMANTIC COMPONENTS (2026-09-06) ───────────────────────────────────────
   Added after the all-caps session, where restyling "all card titles" meant
   matching four different utility-class permutations (u-fs-12 vs u-fs-13,
   different letter-spacing and margin utilities) and silently missing ~60 of
   them because the selector only covered one font size.

   Use these instead of utility soup for the two most-repeated patterns.
   Restyling every card title is now ONE rule, not a selector-matching exercise.

     <div class="ly-card-title">Fleet Status</div>
     <div class="ly-card">…</div>

   Utility classes remain fine for genuine one-offs. These exist because these
   two patterns are used ~90 and ~43 times respectively. ── */
.ly-card-title{
  font-family:var(--sans);
  font-size:13px;
  font-weight:500;
  letter-spacing:.01em;
  text-transform:none;
  color:var(--txt3);
  margin-bottom:5px;
}
.ly-card-title--tight{margin-bottom:4px}
.ly-card-title--loose{margin-bottom:8px}
.ly-card-title--center{text-align:center;width:100%}

.ly-card{
  background:var(--bg2);
  border:1px solid var(--bdr);
  border-radius:var(--r-lg);
  padding:11px 13px;
  box-sizing:border-box;
  min-width:0;
}
.ly-card--pad16{padding:13px 15px}
.ly-card--col{display:flex;flex-direction:column}
.ly-card--click{cursor:pointer}

/* The largest single band left on every CFO screen sat at the very bottom —
   40-46px — because the last block keeps its margin on top of the section's
   own padding. Measured at cfo-s7 (963 of 1003px), cfo-s6 (763 of 803) and
   cfo-s1 (582 of 829). The section already provides that separation. */
.pg > *:last-child{margin-bottom:0!important}
/* Row-to-row margins inside a section were set for the old looser rhythm. */
.pg > [class*="u-mb-14"],.pg > [class*="u-mb-16"]{margin-bottom:10px}
.pg > [class*="u-mb-20"],.pg > [class*="u-mb-24"]{margin-bottom:12px}

/* Utility-class card padding. The inline-style equivalents were tightened
   earlier; these were not, and at 16/16 they were the single largest consumer
   of vertical space on CFO (384px across the deck). Scoped to cards — elements
   carrying a surface AND a border — so plain padded blocks are untouched. */
.pg [class*="u-bg-bg2"][class*="u-bd-"][class*="u-p-16"]{padding:11px 14px}
.pg [class*="u-bg-bg2"][class*="u-bd-"][class*="u-p-14"]{padding:10px 13px}
.pg [class*="u-bg-bg2"][class*="u-bd-"][class*="u-p-18"]{padding:12px 15px}
.pg [class*="u-bg-bg2"][class*="u-bd-"][class*="u-p-20"]{padding:13px 16px}

/* Grid children default to min-width:auto, which is what let a wide table push
   its track past the container and scroll the whole page sideways. Constraining
   the track alone just clips the table, so the element wrapping a table becomes
   its own scroll region — the overflow stays inside the card where it belongs. */
.pg [class*="u-d-grid"] > *{min-width:0}
.pg [class*="u-d-grid"] *:has(> table){overflow-x:auto;-webkit-overflow-scrolling:touch}
.pg [class*="u-d-grid"] *:has(> table)::-webkit-scrollbar{height:6px}
.pg [class*="u-d-grid"] *:has(> table)::-webkit-scrollbar-thumb{background:var(--bdr-2);border-radius:3px}

/* Typography pass (2026-10-08, Taher: the map swap text "looks like an old
   computer font"). The generated u-ff-mono utility keeps its name, but what it
   marks (eyebrows, figures, captions, form labels, SAR values, footers) is
   reading text, so it reads in the deck sans with tabular figures. Written as
   an override here, not an edit of the generated line above, so re-running
   tools/utilgen.py does not bring monospace back. The tracking the decks gave
   it to suit monospace comes out; text that carries u-tt-uppercase reads in
   sentence case (no all caps, Taher, c4df2a53) with the eyebrow's .01em. */
.u-ff-mono.u-ff-mono.u-ff-mono.u-ff-mono:not(.u-tt-uppercase){letter-spacing:0}
.u-ff-mono.u-ff-mono.u-ff-mono.u-ff-mono.u-tt-uppercase{text-transform:none;letter-spacing:.01em}

/* ── AI launcher: labelled pill, label swaps on hover ────────────────────
   Was collapsed to a 46px disc showing only the starburst mark, which read as
   decoration — nobody knows what the star does. Reverted 2026-09-07: the pill
   is always labelled "Lightyear AI" (the text node lives in each deck's
   markup), and on hover it swaps to "Ask anything" so the affordance is
   explicit. The swap is CSS-only — font-size:0 on hover hides the static text
   node, ::after prints the prompt — so no deck file has to carry two labels.
   min-width holds the pill steady so the two strings don't resize it. #btt
   still stacks above this at bottom:86px. */
.ly-fab{
  transition:transform .15s ease,box-shadow .15s ease;
  min-width:152px;justify-content:center;white-space:nowrap;
}
.ly-fab svg{flex:0 0 auto}
.ly-fab:hover{font-size:0!important}
.ly-fab:hover::after{
  content:"Ask anything";
  font-size:14px;font-weight:600;letter-spacing:.03em;font-family:var(--sans);
}

/* Periodic sheen — a light band crosses the pill once every 7s, so the button
   reads as live without pulsing at the reader the whole time. Deliberately
   transform-only on an out-of-flow ::before: transform composites on the GPU,
   where a box-shadow or left/opacity breathe would repaint the pill on every
   frame forever (that pattern is what put 89 of 111 animations on the
   non-composited list in the One Fleet audit). The band idles off-canvas for
   86% of the cycle, so the animation only actually moves for ~1s in 7. The
   pseudo-element is absolutely positioned and childless, so the transform
   creates no containing block anything else depends on. Paused on hover — the
   label is swapping to "Ask anything" and doesn't need competition — and off
   entirely under prefers-reduced-motion. */
.ly-fab{overflow:hidden}
.ly-fab::before{
  content:"";position:absolute;top:0;right:0;width:36%;height:100%;
  background:linear-gradient(-100deg,transparent 0%,rgba(255,255,255,.5) 50%,transparent 100%);
  transform:translateX(170%);
  animation:lyFabSheen 7s cubic-bezier(.35,0,.25,1) infinite;
  pointer-events:none;will-change:transform;
}
@keyframes lyFabSheen{
  0%,86%{transform:translateX(170%)}
  100%{transform:translateX(-450%)}
}
.ly-fab:hover::before{animation-play-state:paused;opacity:0}
@media (prefers-reduced-motion:reduce){.ly-fab::before{animation:none;opacity:0}}

@media print{.ly-fab,#btt{display:none!important}}

/* ── LIVE BLOCK (src/surface/center.ts) ──────────────────────────────────────
   Appended, not pasted: CENTER_CSS stays co-located with the HTML and JS it
   styles. It lives in the shared sheet rather than an inline deck block so it
   is cached with everything else instead of inlined on every deck render, and
   so the presentation lint stays honest - an inline CSS block inside a deck is
   the thing that gate exists to stop. Everything here is .cx-* namespaced. */

.cx{border-bottom:1px solid rgba(230,161,51,.14);background:linear-gradient(-180deg,rgba(13,20,33,.7),rgba(11,15,23,0))}
.cx-in{max-width:1680px;margin:0 auto;padding:26px 40px 30px}
.cx[data-lens]{border:1px solid rgba(255,255,255,.07);border-radius:16px;margin:0 0 22px;background:linear-gradient(-160deg,rgba(18,23,31,.85),rgba(11,15,23,.6))}
.cx[data-lens] .cx-in{padding:24px 28px 26px}
.cx-top{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:center}
.cx-dial{display:grid;grid-template-columns:232px auto;gap:22px;align-items:center}
.cx-dial svg{width:232px;height:232px;display:block}
.cx-dial .trk{fill:none;stroke:rgba(255,255,255,.055);stroke-width:15}
.cx-dial .arc{fill:none;stroke-width:15;stroke-linecap:round;transition:stroke-dashoffset 1.3s cubic-bezier(.2,.8,.2,1)}
.cx-dial .arc.h{stroke:#F0B450;filter:drop-shadow(0 0 6px rgba(240,180,80,.35))}
.cx-dial .arc.q{stroke:#7EB8D4;filter:drop-shadow(0 0 6px rgba(126,184,212,.3))}
.cx-dial .arc.d{stroke:#5BCE81;filter:drop-shadow(0 0 6px rgba(91,206,129,.35))}
.cx-legs{display:flex;flex-direction:column;gap:14px}
.cx-leg{display:grid;grid-template-columns:12px auto;gap:12px;align-items:start}
.cx-leg i{width:12px;height:12px;border-radius:50%;margin-top:9px}
.cx-leg b{display:block;font-family:var(--sans);font-size:28px;font-weight:600;line-height:1;letter-spacing:-.02em;color:#F4F8FF;font-variant-numeric:tabular-nums}
.cx-leg b small{font-size:14px;font-weight:500;color:rgba(244,248,255,.62);margin-right:2px}
.cx-leg span{display:block;font-size:12px;text-transform:none;color:rgba(244,248,255,.58);margin-top:6px}
.cx-leg.h b{color:#F0B450}.cx-leg.q b{color:#7EB8D4}.cx-leg.d b{color:#5BCE81}
.cx-lead{min-width:0}
.cx-vow{position:fixed;right:50%;bottom:34px;transform:translate(50%,14px);z-index:9900;
  padding:13px 20px;border-radius:11px;border:1px solid rgba(230,161,51,.42);
  background:linear-gradient(-150deg,rgba(24,20,10,.97),rgba(11,15,23,.97));
  box-shadow:0 18px 48px rgba(0,0,0,.58);font-size:13px;color:#F4F8FF;max-width:min(92vw,460px);
  opacity:0;pointer-events:none;transition:opacity .38s ease,transform .38s cubic-bezier(.3,.72,.28,1)}
.cx-vow.on{opacity:1;transform:translate(50%,0)}
.cx-vow b{font-family:var(--sans);color:#F0B450;font-variant-numeric:tabular-nums}
.cx-kept{margin-top:13px;padding:11px 15px;border-radius:10px;
  border:1px solid rgba(91,206,129,.26);background:linear-gradient(-150deg,rgba(91,206,129,.09),rgba(91,206,129,.015));
  font-size:13px;color:#F4F8FF;line-height:1.5;display:none}
.cx-kept.on{display:block}
.cx-kept b{font-family:var(--sans);color:#5BCE81;font-variant-numeric:tabular-nums}
.cx-kept i{display:block;font-style:normal;font-size:12px;color:rgba(244,248,255,.62);margin-top:4px}
.cx-vow i{display:block;font-style:normal;font-size:12px;color:rgba(244,248,255,.5);margin-top:5px;line-height:1.5}
@media(prefers-reduced-motion:reduce){.cx-vow{transition:none}}
.cx-head{display:flex;justify-content:space-between;align-items:center;margin:-6px 0 18px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}
.cx-head .lbl{font-family:var(--sans);font-size:12px;font-weight:600;text-transform:none;color:#F0B450}
.cx-head .lbl i{font-style:normal;margin-left:8px;opacity:.8}
.cx-head .r{display:flex;align-items:center;gap:12px;font-family:var(--sans);font-size:13px}
.cx-head .conf{border:1px solid rgba(255,255,255,.14);border-radius:4px;padding:3px 8px;color:rgba(244,248,255,.6);letter-spacing:.01em;font-size:12px}
.cx-vw{display:flex;align-items:baseline;gap:16px;margin-bottom:10px}
.cx-vw b{font-family:'IBM Plex Sans Condensed','Inter',sans-serif;font-weight:700;font-size:40px;letter-spacing:.02em;line-height:1}
.cx-vw span{font-size:12px;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.62)}
.cx-vw span em{font-style:normal;color:#F0B450;margin-right:8px}
.cx-verdict{font-family:'IBM Plex Sans Condensed','Inter',sans-serif;font-weight:600;font-size:28px;line-height:1.18;letter-spacing:-.005em;color:#F4F8FF;max-width:1040px}
.cx-rest{font-size:15px;line-height:1.6;color:rgba(244,248,255,.6);max-width:980px;margin-top:12px}
.cx-meta{font-size:12px;color:rgba(244,248,255,.55);margin-top:8px;font-family:var(--sans)}
.cx-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.cx-chip{font-family:var(--sans);font-size:12px;font-weight:500;padding:4px 9px;border-radius:4px;border:1px solid rgba(255,255,255,.1);color:rgba(244,248,255,.62);white-space:nowrap}
.cx-chip.bad{color:#F693A1;border-color:rgba(232,68,90,.35);background:rgba(232,68,90,.07)}
.cx-chip.good{color:#7CE8AE;border-color:rgba(61,220,132,.3);background:rgba(61,220,132,.06)}

/* flow */
.cx-flow{margin-top:30px;display:grid;grid-template-columns:repeat(5,1fr);position:relative}
.cx-flow::before{content:"";position:absolute;right:8%;left:8%;top:14px;height:2px;background:rgba(255,255,255,.08)}
.cx-node{position:relative;text-align:center}
.cx-node i{display:block;width:30px;height:30px;border-radius:50%;margin:0 auto;border:2px solid rgba(255,255,255,.14);background:#111828;position:relative;z-index:1}
.cx-node i::after{content:"";position:absolute;inset:7px;border-radius:50%;background:rgba(255,255,255,.14)}
.cx-node.red i{border-color:rgba(232,68,90,.6)}.cx-node.red i::after{background:#E8445A}
.cx-node.gold i{border-color:rgba(240,180,80,.7)}.cx-node.gold i::after{background:#F0B450}
.cx-node.green i{border-color:rgba(91,206,129,.7)}.cx-node.green i::after{background:#5BCE81;box-shadow:0 0 12px rgba(91,206,129,.5)}
.cx-node.dim i{opacity:.5}
.cx-node b{display:block;font-family:var(--sans);font-size:18px;font-weight:600;margin-top:12px;color:#F4F8FF;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.cx-node.red b{color:#F693A1}.cx-node.gold b{color:#F0B450}.cx-node.green b{color:#5BCE81}.cx-node.dim b{color:rgba(244,248,255,.62)}
.cx-node span{display:block;font-size:12px;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.62);margin-top:4px}
.cx-node em{display:block;font-style:normal;font-size:12px;color:rgba(244,248,255,.62);margin-top:2px}
.cx-flow .lit{position:absolute;right:8%;top:14px;height:2px;background:linear-gradient(-90deg,#E8445A,#F0B450 60%,#5BCE81);width:0;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}

/* cards */
.cx-hd{display:flex;align-items:baseline;justify-content:space-between;margin:34px 0 14px}
.cx-hd h2{font-family:'IBM Plex Sans Condensed','Inter',sans-serif;font-weight:600;font-size:13px;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.55);margin:0}
.cx-hd a{font-size:13px;color:#F0B450;text-decoration:none;border-bottom:1px solid rgba(240,180,80,.35);padding-bottom:1px}
.cx-hd a:hover{border-color:#F0B450}
/* On PMV the Decision Queue launcher at the top of the deck is the way into the queue; the block's own decide-now list would repeat it. */
#cx[data-lens="pmv"] .cx-hd,#cx[data-lens="pmv"] .cx-cards{display:none!important}
.cx-toggle{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.cx-toggle:hover{color:#F0B450}
.cx-chev{display:inline-block;font-style:normal;font-size:12px;color:rgba(244,248,255,.62);transition:transform .2s ease}
.cx-toggle[aria-expanded="true"] .cx-chev{transform:rotate(-90deg)}
.cx-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cx-card{position:relative;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:linear-gradient(-160deg,rgba(18,23,31,.9),rgba(13,17,24,.9));padding:18px 18px 16px;min-height:212px;display:flex;flex-direction:column;transition:border-color .15s,background .15s}
.cx-card:hover{border-color:rgba(240,180,80,.35)}
.cx-card.done{border-color:rgba(91,206,129,.35);background:linear-gradient(-160deg,rgba(91,206,129,.08),rgba(13,17,24,.9))}
.cx-card.done.def{border-color:rgba(126,184,212,.35);background:linear-gradient(-160deg,rgba(126,184,212,.08),rgba(13,17,24,.9))}
.cx-eyebrow{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.01em;text-transform:none;color:rgba(244,248,255,.55);font-family:var(--sans)}
.cx-eyebrow .x{color:#E8445A}
.cx-asset{margin-top:10px;font-size:15px;font-weight:600;color:#F4F8FF;line-height:1.25}
.cx-asset small{display:block;font-weight:400;font-size:12px;color:rgba(244,248,255,.5);margin-top:3px}
.cx-dir{font-size:13px;line-height:1.5;color:rgba(244,248,255,.68);margin-top:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cx-num{margin-top:auto;padding-top:14px;display:flex;align-items:baseline;justify-content:space-between}
.cx-num b{font-family:var(--sans);font-size:28px;font-weight:600;color:#F0B450;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cx-num b.red{color:#E8445A}
.cx-num b small{font-family:var(--sans);font-size:12px;color:rgba(244,248,255,.62);font-weight:400;margin-right:5px}
.cx-num span{font-size:12px;color:rgba(244,248,255,.62);font-family:var(--sans)}
.cx-btns{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:12px}
.cx-btns button,.cx-btns a{height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);color:#F4F8FF;font:500 13px var(--sans);cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:all .12s;padding:0 12px}
.cx-btns button:hover,.cx-btns a:hover{border-color:rgba(255,255,255,.3)}
.cx-btns .ok{background:#F0B450;border-color:#F0B450;color:#14100A;font-weight:600}
.cx-btns .ok:hover{filter:brightness(1.06)}
.cx-btns .ro{grid-column:1/-1;color:rgba(244,248,255,.62);cursor:default;border-style:dashed}
.cx-form{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cx-form select,.cx-form input{height:34px;padding:0 10px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#111828;color:#F4F8FF;font:13px var(--sans);outline:0}
.cx-form select:focus,.cx-form input:focus{border-color:rgba(240,180,80,.6)}
.cx-form select option{background:#12171F}
.cx-form .go{grid-column:1/-1;height:36px;border-radius:8px;border:0;background:#F0B450;color:#14100A;font:600 13px var(--sans);text-transform:none;cursor:pointer}
.cx-form .go.def{background:#7EB8D4}
.cx-form .go:disabled{opacity:.5}
.cx-form .cancel{grid-column:1/-1;height:28px;background:none;border:0;color:rgba(244,248,255,.62);font-size:12px;cursor:pointer}
.cx-err{grid-column:1/-1;font-size:12px;color:#E8445A}
.cx-done{margin-top:auto;padding-top:14px}
.cx-done b{display:block;font-size:13px;letter-spacing:.01em;text-transform:none;color:#5BCE81}
.cx-card.def .cx-done b{color:#7EB8D4}
.cx-done span{display:block;font-size:12px;color:rgba(244,248,255,.5);margin-top:4px}
.cx-skel{height:212px;border-radius:14px;border:1px solid rgba(255,255,255,.05);background:rgba(255,255,255,.02)}
@media (max-width:1180px){.cx-top{grid-template-columns:1fr}.cx-cards{grid-template-columns:1fr 1fr}.cx-flow{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:760px){.cx-in{padding:18px 16px}.cx-dial{grid-template-columns:1fr}.cx-cards{grid-template-columns:1fr}.cx-verdict{font-size:22px}}


/* ── LIGHTYEAR AI CONSOLE (2026-10-12) ───────────────────────────────────────
   Launcher and panel of the AI chat on the six role decks (lyConsole.ts).
   Dark glass, a gold edge that fades down the panel, a faint sapphire grid
   behind the conversation, and the Lightyear L with its beam as the mark.
   Static: nothing here animates but the existing .ly-fab sheen (transform) and
   the typing dots. Sentence case throughout; reading text is 14px. */
.lyc-mark{display:block;flex:0 0 auto;width:68%;height:68%;background:url(data:image/webp;base64,UklGRkwdAABXRUJQVlA4WAoAAAAQAAAAiwAAnwAAQUxQSNgKAAABv8egbSRH5/CHfe0LgIjI4S95lG2eZgp5kGNeTihqG8mZcr/lj7hLRyCi/xOAbGtaaWMtAR9oZWttfUhgAWIGkijekwyQRJlemEQfwXFB0o1d2YpXMcmy1LiKnNzoohzBG7ZdhyRp+3esdUVktd33tN09tm0bPX3btm2bY9vTGNu3xrbamLaqKjOutT5UVmZlZFbc94MPETEBNKWE7ILr7gqRgrhs3hoKY8qDoRiIYJTvpxBKBdBYDIRpw5FQECiVcIpCciRQFNSGZClF0YgJhVDBIVAIMzKhMKZbBYpiUtl+KFoQVG5ZUTYKYuDtEoVQAkDZi4FHBUSKgOiQ3Uwohp7a0Q8fSCgGVj7odz7NpRiw/+xhUqYIiiI39y0jhSBDaDOlCIon76lgShF0suEDEKUIBhGhTEE0FUSKwm4ZQjEUxh5PUXTMohQEx1WEYhjiide4UAzVpl/jUgyC4CVcKIYO7kIRVJk5xkEogmmY2P45pxiW2GbBZqUYBva+vb3di4GyzUF0foWC6GRJpTAgmhYCKSE4FAJv26OTrkVANj4akKJQRnEKgSpb7EygGBjsiUm1Xn/HTsgoius3oBTGtxYFKw7yphYILxT89+L/65biIEphVAXdohCIAgN2f//Xej9RgbZtTvnOb743q5cTAZh06o/PPOeHx43TXk00wvADv3XhdRd+/8ih9OYSBJJdv3rxHXdc9KXd+4FKr6UCjHvfeQ8/+uB5758MqNBLq7jR78Qz/vnKqw/+7cQhICr0zqJE2PmYRxaveuueH+yegAq9tCYZTDnu+O0Hty+d95FRQBB6ZwkC/fd836FbwMrLj+sLqvTSIQA7/uSInYD5c64FgtA7SxAY/J7Za9ohPnLVravQIPTKokQ45PgjJwNLLz5cISi9s2oGE06YuWsAnpo9GUiEXlnUnAF7n37YKGDlvdc82I4qvXMgwk4zD98e4I0rZr8KQWmFkj/RCEOOn3lwApQfuuaWdQTMaYmxLmmQBCLJISccPgFTlt589b8guJF36Ql34Ld1lRuiAZh8/KydBeDxK298B1Fz8l8W8HqkDVhl9Xyt5yQIDD3lpINGEgPrHrj83g6CG00oXPajsO0TUWrx5K3bJNJPawrx5EcIPRPcYOfTjpsBMfDy9bOBIDRnEnmGLR+nNlm/RGJ45XGNNe14b4+oZjD+hGP3T6iklO++7O52QhCaVnhzPVPuxb07CILLytfEa7F97qtP1I1wxMxjBpORsOSWq/4NwWlmJQy4h1sjoRZ3QErU6AnztxOtSVQi7HjUSTtBORUeun7uSlTMaXJjRUiTCzcTuxMFvE8NHnnleWqWAAw76j17DSBmbay/+dJ/RIIbLdC4bbGWOxPpLhoYZxK6SVH23RatJiFAutfJx06Fjj7wypxrXkHUnNYotoCMVTeiDkictL8HeAmpYjz/NP98UaiqAZjw5Qc2C2VN2HT/tXduIDF3WqUHXT75IB7H1EFs8PYu0I+qCk+i7gASBAaddNGS9vaNWRJ4de6Nz0Jwo5Uaz/x7p4eUc1fj4Mlb52FYNTNBAESJsOepx02Gipfa2297zwDQILRcXbPqlkyICrgs34ZSFrrE9Y8KBqhEGHvorH3bsCwElp51gEBQWrFxg4krHhB81Z5krO3CwCP6CIhE2g6aefAYqJDCY1ffDAShNTsdK3EcFzBdd8bsPx6BaZb8piOCGpNOOW1nyFwDm++6+N5IUKF1J2lG17jJRJly/N2gCDNG9gnRS9/5xhDMPIX5s294EoLR0t1VcDJ2HR3Fsiy4QuDkhU569PohRFGId19/6zpUzGnxImL4Ya8vPsNTNEHpaps+/r0/fZ6oAsvmXvYUBDd6wchTd3PGzWOHiVCj/u1bo3EXXNbv+zqi5vSOMVx/zsXjUOqsSECgoh2jjUhvmAEuqvS4Kby872bxFhYdVAChuiHSM6aVS168IDot2a1KoPsrOhDtOG2kCz1q+uKs12nZEqo8uMH0kdtDxF8DSP/6QQ89YvLCsSsSsu5E8iRIg5zXl56xVJzH6D4JttcPp442pSc9rt9rYVoBQUKXCq3U2fDJDe4uQ9ZWC4ml5bM+gAs9vfTbczV6RvVhA13yovHIPqP6N0bZ+SW6vnGbGn9Zp+sBBn5oj1M99IDLxvJtL/8BYCCT32+qdspYcmu6UnbfAmkEmFap2l7WW56FFVfByxNc6zPemPUSn+wHbV9K+qTk25BdhIYrVS0CKdXnp9mYJEp9uLzTXhpF9UqXRPIiiLiqNKp2BzMICrhQv4NA5kAC0iW3gdccpTkNj6V7KsR6wMRRmtBi/6dwmtXQH/32T16pZ1PnMFOa0cJQC06zmsYLfr76r6nVVk7P/u7vP54lTSCEPZymraSPffBtGHXhJsCtmgvvncOfPp0luTNueNWsaSrpo0dvTjOxCSvdRakICW7tX708sRHPDjbNmcBalGYVLMHcSpv/OCKDVctSANfll1+p7pOSKJIrR0mjN4uC4GjGCx+yxNcfuO9nspG/ROPUu1IDp78nuaKd0EGzehwEAqYQFV33xpJLGAyEuL+pIHyeGPIkO/UjpC7gMXfq2xyLEhj3flAyfqFpyUYChAxX1JFTLMmL0/Z0W9t7v/IuhJisTPIGg3GMrB+IIEx1yyzrQuIYLvDs9Cx4LgRY16lbU/3bu6M5U8CZrDhA4JMaIVQBYcxMEj/2ypScCpEZi8tBMew9t5LvBJCQcPgUlOobAdZ1g7CVUY5H/8k0BzEAJGNLAdxl5q0lyZNnGzOgjFKhewXldEyrgLP78FWokEMHEMoGJpx2W1qhoVKHkMy/KiFuewaiNSAIh2N0G4zdT1hJTjsRRAE3p+FutcEbnxavbH37x4RaPQM2UHPGk38OlgudmdLVsYA37IPjo9Z2+OMbbOe7R1aoUbKRHybBayNV8vopAuAqgtDw8W1O94qxNEn8i8PLaS14Oh7vMwSpCYviuZCKA8oiJ4+d1JqVE0kzaHelzg46djwihtryG4DIM3dieahVbdvxXqkAKtQbwGlqrwjdayPOmZ9YNeHIJP3Qrih1J3xuONJUjkoSVDUkgYZuzOheMznskfcT6oPBgaZ2kSyLZhazyIBtkZ4TqQG7h49tokezrKlEgvT/0M0nbb/z9qffen5jnKoVEuLRVL6mPaND8GZxRnn05NOHXf3oPx699JCTfkQOs3QTg4VS5Sv0pGRtX/lC3yYR1u5Ln+ONLJpZZ2UHgjbM9bX3fXA/NO0hIAnfaQ6n8khWfmkXJKiqpOVBgRzq0F8PA6qJ9EA59m0KoZO+NmBRBcCVf/UvS2NUAGEEFelGvKMuYcBpW5nmzg1GjGLDkhRAHFlKoy2jqydCNx3jDvNQR+C9NGMbpZU2auIeSBcQkoYd8i4TQOhaJQ6dUpE6wE0lbxmb/qlLlrW9mEW6FW/YvoOr1B5JaYX2hAVGbpMkgIGTx4x6RUqvfXdn06azO5UAVAwgJafzO6SOiofOP9EKH+IIMkQBZ5HhubhqUbBaxEcOXUOLnINS1dl4IU4uVak58Q8/cm+ILeFvf9uJUAVPUPLp1KlM+QSt8ePvx6WKgJEXrwPMWkSWGVUTJ78fHR+1Dk1aRJJQ1Y0cjyo5Ld2NPJdp7ZaQa29touS7fwtz1Mn5kxvFW1RAnbwnQms2iYuM3O/R36QVuYSOZVju5q0O3oJMnr1GUyH3VlA4IE4SAAAwSwCdASqMAKAAPjEUiUMiISEU/AXcIAMEtgBqJwC/M+qswL278gPyO+XKwv1v7r/vN/kOg0oryveUP99/efyz+fP+K/vHsZ/SX+e9wT9NP8j/Uv8P/vv8B3IP2y/AD4AfzH+0f77/B/v/8tn+b/bf3H+gB/TP8j/7vaZ/3fsR/3f/fewZ+u/phftn8F37V/t38B/8z/uX/c/P/5APQA9ADsef619HPmF/nfEX8W+l/tH5H/2LPP/af83+Wn9G5kfVb6hH43/Kv87+YnFPZr/n/916iPqt85/zv61fsp6U3+B6GfWj/Ufk78Fv59/oftm+T/8v4Xn03/HewF/H/6z/qf7h+5P+n+lv+P/5n+b/cr/Re1P8p/vv/J/zPwB/xv+af6H+8/5L/yf4b///+v7vfZ1+yHsX/pm16WTGK0bsEq8/cw9LT1iwYii50wyLsp+GmLK3dyc9EpUlDefr3sdrsvvoKOFwflwkv4NEBPXG9yyRvPodja0vyAhgIJ+WfRan6xHcu/vNuwZhx6728wBB7sAF/4ismKc8wlGZ8jsuvdXZqpPa6DINEbV+asvV9v1fYYBgwzGKXWhvp9WV27bkR/y2TbJAfBH5PXwYlRZtYrIAAV9MOp/21YWpc4orXn1b+jB3f00U4uh7YNcBRM1gWyi71loStjoGcyVfhLopSTpkrl93ABWSUwtR4u97hXRQb4UP7HzAtehbiB7fq9Hghlsl7f6i1hk7lk/6NB5TF1xDgWi9y7iP9bUF+PopX/iIGApH7Nh3w+OC8j+Rx3R2Xm8dOS1ZPc3ErAJH6jUE3UgAAP7/YBthHPhc8OztkLZR/55C+eJTcukBJ+fzMc0igbs4yhtKL4mclaN5WCXAohWsSG9lBKV8g9qKbd/HTr7Ps/hsX5oGWMA+c7HeiuHXJR9NpDZKmCTmFbDUHu1I5Pk03mVQXf0Y9H+NCw78Uh/FA64V4CzfNMpVJexXEDwMi/XDNkSH4Uz6AW3d9xN0okXWy93FK5ykX5FUnQKtFpZj79zq1AaKyPvfjd6eVKpRmhmZ89TWqg+noIT/+yN8e69EIAICrhGn1vQySVQIKAzFavO9zZzOF53iIf1nIipMzdouZ3iUQxWYzMT+pTOVgJqwKv24nnSbnIwPOiGicg31jJt31n7n6dlRlQ0Qg4TlSo0niWBSiYV9Yr6WqtQY24xaF8VtG+ZP/TUW38YEiCmIYIjwBmSYBsSjufDc1xgpCVmt4Hh6BGz91HfGeD0zmvIeXsB0SH4XsRiUT5V6K5p4AeF4fycVW88BXmQb6Iov+mIJKkEmLhDWoO1V42gAADrGDDysz8Le4vTEmvXAN4fS25zu6FnjXfhWR+sNysmTX/MT9/b3r9gUi5tDIt5hH17krOhBQ+N+APPY107YyHeXQ8j4fEG1M4nuK/VJSg+RqSf5Hwvk2UxRq6HO50LiHhZk4155Bc70Rtsm7n0do3Et00ZBocx43lrxab4NJmbIlgXjS7eTWwg1wb6K0Eh1Rze/wRpWhQorN4SbOlYtArSO3v9fnBbYMXpE2OTDK2TsyzjJLdBmvg32/PxCrnzpVp/Wok0Uyu8ZNZ3VYEbcJqHtb2tTTk3uF8eWSN41WoO8fAPlJqiNyZBkLebPCcZXo+cJ7Wozmfyb/R43R8jeMT80RGBXi+7+rlfn+NwmWu6yLs/cHQ1y/CLp6k5qMt5WF4dQbBwi9C7wCHCE2IxpQYLb+Bm/JEDqF6kzvj/83tvofJU8VqnYgpE4k0kXOZyzC2hGe+BFkPKKyv7MUdPhS895CtAf7kuFpg7ljYmeUKEcrdHHgB4L2P/lxRfeC4oSz8lzfHmHzxaw2Nvm2J4WEmpY/4+Vrlsi+QK19USrwlk2r361hcYO8tfqygJW+wnIeSKcLh56nsgpafL4GEHJ+sN4o+rFWPsn7BcLDPOxv/MRLnIl5Vdi6ABDNuWSHhg7LQrf43KLL1xfqvCZHIBjK+AtufSdSDNV9q4mYKvWHhOstW4LnANRkNdxr+FlXHVHjmeT7q6c9YWCZV7uMOfZlOAs2epwOgQ2v7Q0geKw8HDOQONWChanIhFZ0ARKcF7X4TZ+JHJ6XhkH1DpjdbJ1mAGVk/ehasEi6jkkQcqHhLmzAXJxl7Z59ktKk25/pdZRdOqAH2Z7Uc7w37OahvjPFqua4iMN2jbDt/jd1VXnE1qWnyep+KbVtJViWcC0dRu4cTNqiP+jy1BT27ZcIJx9TK5IJ1DsrYGTmIk1KweAsNtBQTyfOCVEUH8/cCe4PBVfWPdHpd9KRAqciJ5K7KAxyFEoBqGcQKIAmPPBAY9T+Gf6LLIj4uPcmXqFnza8DqaIhSYLekciAJp3x8HehlXQh8NUCZdm0kI0XP+sS+08ZKL/nxN3ztTlK8uaUpBu6XMhf39BXn3xTONMAY7IpXnKyY78u6D/jTv0leFVt9MAKHcO+CTkiWJTD+Go601Oe/ySooiRMxVfrfeFzh+HE1NyG5CSSssYupk3TXpPxsM7eFVlzFDtX8kERq2GrZHB70yaUfEESSPcfYIFHRzExk6AcipjvBMVDefv/6N/EP2uGzyMb+4Gf2U6S18JEdk+rmaQKZDOyMwoOTYGSyJFGmeoGQIOuz+rawOGqsuPRc4spSIJvyAoYHpDihPEaodjv9PKOcM37Ry4NdtxRqLHiZM/nBKbudb63A3OXY/Am8F54ibl93zLkFRDqueahoMeCLEgKGgEc9ThWTlJlY6Ou+qsYnsxOBAWNDt6NVA74GSHdt3/01dZHLYEikQHT7IWnga2JiZz0NnAKBxzuR75eQUm9bTyEJ+D6xeMtGMUjfCfodl66/uNA1p25AqQ9/2G8NHna53bUV9Qgo2S6kMqOqQAHsLrl/jBhOKY39dHTiDXAA5HvxnVGOwWgQMxidOXtepgHO7K2V3829qQGc+EcpK9ZRb+a6VU8IlnvOY5ZRxTzUeYgA2iBSU8OZy+vJbkDB2tI0GSiKo7hfeiawupUB/KxOhuTnIR9jXO/qZPVbHypcysDZCv5APi1Nw+lbF4zwbc+nUvmVnzWVb21QARXsOk3RoVcH8GyJ+6J+4CjKKZaEQD4ae7r1wrrVTnsYHTLVp89OVL9VRQPDTlouj3YBYeDQVEdg9/3mbOX5X9buN/9fba327729s0qE729IGbd7BM1O9eACH60LV4ragECutfKb4A6RloInRp9NrpNOA2mto/wdspuGphjoNISFS52+HzF14hR0S/0tf0WN3HFzZmYAH5Jl5mFmSJrHGVkAbe6YB7JxW+96CmTr6mxfgv9RFTir/yjHfNSnLKeWS6L9Z5+YrwJ520uqIfJ4S0LIvXyq8OkTWS9QcRopFKf2wA8ckisN5Zf4Q/XPrH4//bH8UdfLIdUe0CA4zsm2wCVIUy2RSx1B96HeNFDA+VPSOm3BveuVjzUGmY4Qa+VJStYyucZPBbgqqagufZmpkwe6lPuT//yyxHSmSnezepUfHTNzWpOJ8ztXZfzHyYAfQUy005p98UazhQjbDvnRUG1ihzy/jedPHYElxxSur5KoBaRf1SumgaG0KI4sQhvThTW5QFt2Tge+j8LJ9bn9yenItLHNPEaed2Aglwk1HR9fFMxiaJohNntFWYH7pje46wObN0WX8MAEXUH+vlSB+dRzrtj2Jsd94CXCzmC2FitRpuUmRHBrqt49O1VUMD7cTPDbZf3wcFkn/LLsv/5uZTQZ5iC+KQtdOJcMzxbIEwHfvrau1NoMxgOpfgilkuYUk96oozl/9dXQ++oXUFFy+40TCniLYUNMmbOlSYmpUFtxJzYj5nFpqp1Zr9pYjRT52x1wyZfSz6bpHyaSJDRnKOA6IEDkk+0S9MHaez2TYVx/fcdWo5t6OFGQNPdCNsMa6+xbBHZKvW9Ehu7BBdOr29/SsoIGkjPJspTX0h1+Qo71/GVb2XNDyBrq0zLvwwPwIt5n7fm2mGJqz9EOXMHd1lXj3MtGRSohYikpayBYLfAdkapHaGKIUNsFuBdLfgLCUNKt+Q6naVWjKm2Rl4CKcwJSAGYPt7o76U0RIGvJpPs8KmiJPDkCroqy5kmXikpmLkxH/jwqo6XtpiXg6HGvHdRJQXb1Im1stNI8X+3Z1J46D88XsnHh5BJSp/eHd/7ILRErsS67U6CRueR7x4h789oyVrjDp3cGUuuMjrqSAsrMaqFeL3HLgHMwA/Wal/+8ORgK7QAzUDvzDD//5R5GnVF1d/hG/MZRK/GpOxHP6iP0P52zhb8R0M8An2l4nArMRUpTRq9gR861kgQcsqxob6FBqcaOzB1XcdN8kEOalxgiOoIqHPDOnyV3UrfKTCQeoSeSfzuHZld8Wc2pdlc6IIyyepg69+nsvIYVlYbfneMbXJe+alCGejXyAuG4nM58p3X4io4FU0/6669krkz5jbtY6RKI4zV8Y9GcFQPeo6k9KeXMKa2M9P0EoWUx6Te/VNjZ+4jzXNxMHxaY9n4wTdHX8dtomGWfFk0A/gg74/xvYujyHDuqEVitsu3glkb7t7QIMjhBpcWBzFkNVwrQ+VKaEKnfeRM1tCd+iYAu1Qc5LgyCCLmt6Lrkbb3P+L4iexe0AbeRWwA023u4/7aCRuBi95HDz93+wQ8O3JC2UQxywC7lR9HoEPaiJ/YI0gWeXIgsCP+wMzGT4ASQdFsgH2FjsV8aMzh7bBjiZHhVN70i+qNh560dOH2LX7YuDeef67lsZKjGqujmtxZrs5cw92e4rOwk5JZZyOmblQ6/+bpaBR/2SYQhPziJASveZWvCvVTU2DloOHM4E8U16wArsWPjNLWNk19bNalJ2L7pUnxeNwAUU0KClzD8W7j9cIVJKvO+vDiqlpviqCbYbamguVnsx8DQfzbHWBcqMVpwzOrxiT/ioEMO/ugYEeWtaNfaFu6pkJ0KGS7Zks81KPBh/s4Nmmrvy+mEZ4Nkpl91+sfaB+G+FgrcXbVWde2PXNhgNyRNn9raX5r8bTCBR9NDvtF6AI9sWeEDXJYYZhJJKeJCc8nrRxENPmlH/lRX6Do1z2kYC4FlArSNsu/UoWWABDG+uU3FgvQi2Yz75o2/e67rb1doTG/zjw5nDIVhtqoVCHldpeN5+sgogjVi2Tb5gNyhf+4sB5fKnLDn4gOZtWkE3RkF9zNXmHhCgujf/+tkblm8P6iQjdRawZX1NFGAdSrHubJqkjZpJFQs0miMIDJie4OzlgtHI+XLZ7QPmc3+qze8PXTQsF4AiJdhdBv18lGlzd5zyYoXnYteHgp2yVLDFyazXTivxSKqfxNaWCu/zQLN91xiNI1sWLfMocjhPmQtsNQsizSmMXJK/UxKDf080WEPNIFRTvXPPiLdETbE1o3iL5Kh/SxKR9VJTkSC70qBnTkHnXSvCTCW+qBoyHpNs0sXGAoDEtSpv5eW6wXRpvIwJtblgJ4IevtUXlkDRNOac/hv1RwS8VwPukoYCS8MNNySs32wlfvzu8ZF7rg0sT/QbFK7T1lNqtxA1QUGzEy56iF0Wr0GGKR6HayBMMojkN6xD4f4QFXlL+qqblsTjqbHGEwmOGyPt02lO0a7lK8aktcNXefBUW8mRT2cMFilE18WYNz8For63RN5BuaAYROGoK5kEiv/r2Rb18paWabMmxMxjdBvjwWqXGyktirbIS6X8WFZ9Tk67D/wkno5E6MiB+80pOri7e545d/6YoThI1N5m+j5OVHxR1stpAGoHybYdp0cK/nnOW8t2dINBn6IbaAlVNHS/mXhkNvBSk6edOABZMCr+dDBzhlxJgeLgXVlP+nRifx/Z11yOFsuMQhJM3kfACHxjjf6ZhAU2vxBdGbPc1i5+INyJZtLNJm6YCYi+wYf5f5Fp7R1bw2NlWgZ865VF75FpPK7UlcK0efPlCPqJ+l4P2nMSxO8+aU1/IVvG9hMw/e2QOuDv0vHvwbYf9CjFUELjHUrvwCN9pASizNh0EIHQDBTYEXlshksCNKEhdkUeF1JeDc8IcECxOROF+MYX5zyj/z7Y30nlB+NyqjB2eKm7eoZvbPhQtCH87m9pKWFZr0zGd/V9aIWeKd6ZtwcerBc/Sa6w/mBwmZX5ZJMgQXvEccpQrD72RAAv93neHivhmJr8yyoQAOt8Q2irvJgFkd8Eev5ApLpegL47dOkI2quK8/PpC7wV+i4JOw5zSG3CKMs4sZQGO2Z77r0sK698PtuL8X2m5512cm9ZTkFobuSTtXbf/BB43xje4AAA=) 31% 50%/contain no-repeat}

.lyc-fab{position:fixed;left:28px;bottom:28px;z-index:9000;display:flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;min-width:178px;padding:6px 6px 6px 22px;border-radius:999px;cursor:pointer;user-select:none;white-space:nowrap;color:#F4F8FF;font:600 14px/1 var(--sans);letter-spacing:.02em;background:linear-gradient(-145deg,#1D2B47 0%,#0B1220 72%);border:1px solid rgba(240,180,80,.62);box-shadow:0 0 0 3px rgba(240,180,80,.08),0 10px 30px rgba(0,0,0,.55),0 0 26px rgba(240,180,80,.24)}
.lyc-fab:hover{transform:scale(1.04);border-color:#FFE4A8}
.lyc-fab:focus-visible{outline:2px solid #FFE4A8;outline-offset:3px}
.lyc-fab-mark{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:none;border:0}
.lyc-fab-mark svg,.lyc-chip svg{display:block;overflow:visible;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
.lyc-fab-t,.lyc-fab-h{font:600 14px/1 var(--sans);letter-spacing:.02em}
.lyc-fab-h{display:none;color:#FFE4A8}
.lyc-fab:hover .lyc-fab-t{display:none}
.lyc-fab:hover .lyc-fab-h{display:inline}
.lyc-fab:hover::after,.lyc-fab.lyc-fab:hover::after{content:none!important}
.lyc-fab::before{background:linear-gradient(-100deg,transparent 0%,rgba(255,228,168,.28) 50%,transparent 100%)}
/* Icon-only on phones and small tablets (Taher, 2026-10-12: the labelled pill shows on laptops too): the disc is the mark, centred with no label gap. */
@media (max-width:768px){
  .lyc-fab{min-width:0;width:48px;height:48px;gap:0;padding:0;border-radius:50%}
  .lyc-fab-t,.lyc-fab-h,.lyc-fab:hover .lyc-fab-h{display:none}
  .lyc-fab-mark{width:100%;height:100%;border:0;background:none}
}

.lyc-panel{position:fixed;top:0;left:-420px;width:min(400px,100vw);height:100vh;height:100dvh;z-index:8999;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background:linear-gradient(-180deg,#101A2C 0%,#0A101C 100%);border-right:1px solid rgba(240,180,80,.3);box-shadow:14px 0 48px rgba(0,0,0,.65);transition:left .3s cubic-bezier(.4,0,.2,1)}
.lyc-panel::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(126,184,212,.05) 1px,transparent 1px),linear-gradient(-90deg,rgba(126,184,212,.05) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(180deg,#000 0,transparent 60%);mask-image:linear-gradient(180deg,#000 0,transparent 60%)}
.lyc-panel::after{content:"";position:absolute;right:0;top:0;bottom:0;width:2px;pointer-events:none;background:linear-gradient(-180deg,#FFE4A8 0%,#F0B450 38%,rgba(240,180,80,0) 100%)}
.lyc-panel>*{position:relative;z-index:1}

.lyc-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px 14px 14px;border-bottom:1px solid;border-image:linear-gradient(90deg,rgba(240,180,80,.65),rgba(240,180,80,.04)) 1}
.lyc-id{display:flex;align-items:center;gap:12px;min-width:0}
.lyc-chip{flex:0 0 auto;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:none;border:0}
.lyc-title{font:700 17px/1.2 var(--sans);color:#FFE4A8;letter-spacing:.02em}
.lyc-sub{margin-top:2px;font:400 12px/1.3 var(--sans);color:#9BADC7}
.lyc-x{flex:0 0 auto;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;color:#9BADC7;background:rgba(255,255,255,.03);border:1px solid rgba(240,180,80,.22)}
.lyc-x:hover,.lyc-x:focus-visible{color:#FFE4A8;border-color:rgba(240,180,80,.6);background:rgba(240,180,80,.1)}

.lyc-msgs{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.lyc-typing{display:none;flex:0 0 auto;padding:0 16px 10px}
#ly-panel .ly-bubble-ai{background:rgba(126,184,212,.07);border:1px solid rgba(126,184,212,.2);border-right:2px solid #F0B450;border-radius:12px 4px 12px 12px}
#ly-panel .ly-bubble-user{background:rgba(240,180,80,.12);border:1px solid rgba(240,180,80,.38);color:#FFE4A8;border-radius:4px 12px 12px 12px}
#ly-panel .ly-bubble-ai,#ly-panel .ly-bubble-user,#ly-panel .ly-para{unicode-bidi:plaintext;text-align:start}
#ly-panel .lyc-typing-b{padding:10px 16px}
#ly-panel .ly-msg-ai{flex-direction:column;align-items:flex-start;gap:6px}
#ly-panel .ly-play-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 10px 6px 13px;border-radius:999px;cursor:pointer;color:#9FD0E8;font:600 13px/1 var(--sans);background:rgba(126,184,212,.08);border:1px solid rgba(126,184,212,.38)}
#ly-panel .ly-play-btn svg{flex:0 0 auto}
#ly-panel .ly-play-btn:hover,#ly-panel .ly-play-btn:focus-visible{color:#FFE4A8;background:rgba(240,180,80,.1);border-color:rgba(240,180,80,.6)}
#ly-panel .ly-play-btn.ly-playing{color:#0B1220;background:#F0B450;border-color:#F0B450}
@media (max-width:480px){#ly-panel .ly-play-btn{min-height:40px;padding:8px 11px 8px 14px}}

.lyc-dock{flex:0 0 auto;padding:12px 16px 14px;background:rgba(7,12,22,.88);border-top:1px solid rgba(240,180,80,.22)}
.lyc-row{display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;gap:8px;align-items:end}
.lyc-input{box-sizing:border-box;width:100%;min-height:44px;max-height:120px;margin:0;padding:11px 14px;resize:none;outline:none;border-radius:10px;font:400 14px/20px var(--sans);color:var(--txt,#F4F8FF);background:rgba(255,255,255,.05);border:1px solid rgba(240,180,80,.28)}
.lyc-input::placeholder{color:#7F8DA3}
.lyc-input:focus{border-color:#F0B450;box-shadow:0 0 0 3px rgba(240,180,80,.16)}
.lyc-btn{box-sizing:border-box;width:44px;height:44px;margin:0;padding:0;display:flex;align-items:center;justify-content:center;border-radius:10px;cursor:pointer}
.lyc-mic{color:#F0B450;background:rgba(255,255,255,.05);border:1px solid rgba(240,180,80,.28)}
.lyc-mic:hover,.lyc-mic:focus-visible{border-color:#F0B450;background:rgba(240,180,80,.1)}
.lyc-send{color:#0B1220;border:0;background:linear-gradient(-180deg,#FFE4A8 0%,#F0B450 100%)}
.lyc-send:hover,.lyc-send:focus-visible{background:linear-gradient(-180deg,#FFF0CC 0%,#F6C36A 100%)}
.lyc-foot{margin-top:10px;text-align:center;font:400 12px/1.3 var(--sans);color:#8794AA}
/* Phones: the panel is the full width, so the floating tool buttons would show through the input row. */
@media (max-width:480px){html:has(#ly-panel[style*="right: 0"]) :is(#ly-toolbelt,#btt,.ly-toolbelt-btn){display:none!important}}
/* Phones: the panel is full width, so the floating tool buttons would show through the input row. */
@media (max-width:480px){html:has(#ly-panel[style*="right: 0"]) :is(#ly-toolbelt,#btt,.ly-toolbelt-btn){display:none!important}}
@media (prefers-reduced-motion:reduce){.lyc-panel{transition:none}}
@media print{.lyc-panel{display:none!important}}


/* ══ MOBILE TIER v2 — REBUILT ON UTILITY CLASSES (2026-09-08) ═══════════════
   The mobile tier above this block keys every grid rule off inline style
   attributes: [style*="grid-template-columns:repeat(4"] and friends. The
   utility-class refactor moved the decks to .u-d-grid .u-gtc-repeat_4_1fr and
   removed inline grid styles entirely, so from that commit onward NOT ONE of
   those selectors matched anything. The responsive layer read as present in
   source and was dead at runtime. The dated patches in its comments
   ("2026-08-14", "2026-08-25") were extending a strategy the refactor had
   already invalidated, which is why each one appeared to fix nothing.

   Measured at 390x844, Pixel 7 UA, accordions expanded, before this block:

     deck   grid cols <125px   canvases <210px (min)   clipped text nodes
     pmv    19                 14  (59px)              33
     cfo    15                  8  (53px)              22
     ceo    15                 18  (48px)              12
     coo    13                 14  (33px)              11

   .u-gtc-repeat_5_1fr resolved to five 69px tracks. That single value is the
   overlapping SAR figures on the CEO value band and the truncated card titles
   ("Waste Decompositio") in the field reports.

   .ly-dl and .ly-mlist are deliberately NOT touched. They read as "tiny
   columns" to a measuring script but they are key/value content, not layout,
   and they render correctly multi-column — site shows 306 of them and exactly
   one clipped node. Collapsing them would be a regression.
   ══════════════════════════════════════════════════════════════════════════ */

@media(max-width:768px){
  /* Three tracks or more is not a phone layout. Everything folds to two. */
  .u-gtc-repeat_3_1fr,.u-gtc-repeat_4_1fr,.u-gtc-repeat_5_1fr,
  .u-gtc-repeat_6_1fr,.u-gtc-repeat_7_1fr,
  .u-gtc-1fr_1fr_1fr,.u-gtc-1fr_1fr_1fr_1fr,

  /* Fixed-track pairings. The fixed rail (180/220/280/420px) is a desktop side
     panel; at 390px it either starves the content column or drives the grid
     past the viewport. These stack outright rather than fold. */
  .u-gtc-180_1fr_1fr,.u-gtc-220_1fr,.u-gtc-1fr_280,.u-gtc-1fr_420,
  .u-gtc-13fr_07fr,.u-gtc-16fr_04fr,.u-gtc-2fr_1fr,

  /* THE clipping fix. A grid or flex item defaults to min-width:auto, so an
     unbreakable value ("SAR 186.3M", a card title) refuses to shrink below its
     own content and spills across the neighbouring track instead of wrapping.
     Every one of the 78 clipped nodes measured across the four decks was this,
     not a font-size problem. minmax(0,1fr) above fixes the track; this fixes
     the item inside it. */
  .pg .u-d-grid>*{min-width:0}

  /* Flex rows wrap; they do NOT get min-width:0. First pass applied min-width:0
     to flex children too and it "fixed" the overflow by crushing items instead
     of wrapping them — measured the PMV MV/Ops/Maint/Comp strip at 6-8px per
     cell and the CFO REPLACE/DISPOSE badges clipped at 52px of 60px needed.
     Wrapping is what these rows actually want at 390px. .u-f-1 keeps min-width:0
     because it is the truncating column by design. */
  .pg .u-d-flex:not(.u-fd-column){flex-wrap:wrap}
  /* Column flex must NOT wrap. A column container with wrap and a height cap
     (.u-maxh-280 on the CEO risk list and the COO swap list) wraps its items
     into new COLUMNS instead of new rows — measured card right edges at 673px
     on ceo and 1662px on coo, off the side of a 390px screen. Column direction
     already stacks; wrapping it is only ever a bug. */
  .pg .u-d-flex.u-fd-column{flex-wrap:nowrap!important}
  .pg .u-f-1{min-width:0}
  /* break-word, NOT anywhere. Both break a word that cannot fit, but anywhere
     also lets the box shrink to its narrowest character when the browser
     computes min-content, which is how a 138px card ended up rendering
     "Bulldoz / er" and "Mini Excava / tor" with room to spare. break-word
     breaks only as a genuine last resort and leaves intrinsic sizing alone. */
  .pg .ly-card-title,.pg [class*="u-fs-"]{overflow-wrap:break-word}
}

@media(max-width:480px){
  /* Two tracks is the floor for content cards — 171px each at 390px, which
     measures clean. Charts and tables are the exception and are handled in
     their own blocks below. */
  /* auto-fit, not a flat repeat(2). A flat two-column rule assumes the grid sits
     at page width: 171px per track at 390px, which measures clean. Nested one
     card deeper the container is 320px, the same rule yields 138px, and the
     compliance chips inside broke mid-word ("Bulldoz / er"). A 170px floor
     keeps two columns at page width and collapses to one inside a nested card,
     which is the behaviour that was intended in both places. */
  .u-gtc-repeat_2_1fr,.u-gtc-1fr_1fr{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}
  /* 2026-09-29 (audit V-08): a few side-by-side blocks carry a paragraph or a
     scrolling list per column (Pareto + Data Confidence, 12-Month Recoverable
     + Monthly Waste, 7-Day Critical List + Supplier Obligations). The 170px
     two-track floor above crams those into ~170px columns. .ly-stack-sm opts a
     block out: grids go one column, flex rows go vertical. Opt-in and scoped,
     never a blanket min-width rule. */
  .ly-stack-sm{grid-template-columns:minmax(0,1fr)!important;flex-direction:column!important;align-items:stretch!important}
  .ly-stack-sm>.u-ta-right{text-align:right!important}
}

/* :has() lives in its own blocks on purpose: an unsupported selector
   invalidates every rule sharing its list, and these two are load-bearing. */
@media(max-width:480px){
  .pg [class*="u-gtc-"]:has(canvas){grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:480px){
  .pg [class*="u-gtc-"]:has(table){grid-template-columns:minmax(0,1fr)!important}
}

/* ── NAV — no horizontal scroll (directive 2026-09-08) ──────────────────────
   .nl was flex-wrap:nowrap and .nav carried overflow-x:auto, so on a 390px
   viewport the tail of the link row (Fleet Intelligence, One Fleet, Work
   Orders — measured right edges 412px to 481px) was reachable only by swiping
   a scroller with a hidden scrollbar. .nav-row already wrapped; .nl never did,
   so the wrap did nothing. Links wrap now and the scroller is off. */
@media(max-width:768px){
  .nav{overflow-x:visible!important;height:auto!important;padding:6px 12px!important;
       grid-template-columns:auto 1fr auto}
  .nl{flex-wrap:wrap!important;row-gap:4px;height:auto!important}
  .nav-row{height:auto!important}
  .nav-row.nav-more::after{display:none!important}
}
/* NAV phone rows (2026-09-29, Taher: "the banner has a lot of empty space").
   Measured at 390 on every deck: the name chip and map already sit on row 1,
   so the action cluster's row held only the two-line LIVE box, 53px of
   header with 250px of nothing beside it. The clock becomes one line (dot +
   time; "LIVE" from 390px up, the date is on desktop) and follows the links
   on their row. flex-wrap does the rest: where the links need the whole
   width (COO, CFO) the clock drops below them, as before, just shorter. */
@media(max-width:768px){
  .nl{flex:1 1 auto!important;width:auto!important;padding-left:2px!important}
  .nav>div.nav-actions{order:4!important;flex:0 0 auto!important;margin-right:auto}
  /* Tool pages (Parts, Vendor, Market, Field Ops, Plan) keep the name chip in
     this cluster, which then measured 392px wide at 390 and pushed the chip
     14px off-screen. Capped at the row so it wraps instead (2026-10-01). */
  .nav>div.nav-actions{max-width:100%;row-gap:6px}
  .nav .nav-live{padding:4px 7px;gap:5px;min-height:0}
  .nav .nav-live-txt{flex-direction:row;gap:5px;line-height:1.2}
  .nav .nav-live-txt span{font-size:13px}
  .nav .nav-live-dd{display:none}
}
/* NAV phone fold (2026-10-08, visual audit S-1): the nav's inline script adds
   .ly-nfold when the header would be taller than one row of links, and a More
   button after the links. Folded, the links row is one line (the rest clip
   below it) and the clock and tools wait behind More; open, everything shows
   as before. Header 112 px on every deck instead of 112-239. */
.ly-nmore{display:none}
@media(max-width:760px){
  nav.nav.ly-nfold .nl{flex:1 1 220px!important;flex-wrap:wrap!important;min-width:0!important;max-height:44px;overflow:hidden!important}
  nav.nav.ly-nfold.ly-nopen .nl{max-height:none}
  nav.nav.ly-nfold:not(.ly-nopen)>div.nav-actions{display:none!important}
  nav.nav.ly-nfold .ly-nmore{display:inline-flex;order:3;flex:0 0 auto;align-items:center;align-self:flex-start;
    min-height:44px;padding:0 12px;border:1px solid var(--bdr-2);border-radius:var(--r-sm);
    background:var(--white-a03);color:var(--txt2);font-family:var(--sans);font-size:13px;font-weight:600;
    letter-spacing:.02em;white-space:nowrap;cursor:pointer}
  nav.nav.ly-nfold.ly-nopen .ly-nmore{color:var(--gold-hot);border-color:rgba(240,180,80,.4)}
}
/* NAV at 769-1280px (2026-09-29, audit V-05). The desktop grid
   (auto 1fr auto) kept one 68px row and let .nav scroll with a hidden
   scrollbar, so at 1024 COO lost LIVE / Map / Print and Site lost Bid Sim /
   Print off the right edge with nothing to scroll by. Flex-wrap renders the
   same single row whenever it fits; when it doesn't, the action cluster
   (LIVE, Map, tools, name chip) drops to a second right-aligned row instead
   of leaving the screen. */
@media(min-width:769px){
  .nav{display:flex;flex-wrap:wrap;align-items:center;column-gap:0;row-gap:0;
       height:auto;min-height:68px}
  .nl{height:68px;flex:0 1 auto}
  /* basis 0 + min-width:min-content: the row breaks only when the cluster
     cannot fit even with the map mark squeezed to 32px, which is what the
     grid did (COO at 1440 rendered the mark at 46px, PMV at 1280 at 36px). */
  .nav-actions{flex:1 1 0;min-width:min-content;min-height:52px}
  .nav-map{min-width:32px}
}

/* Table card layout lives in PHONE_CSS (shared.ts), not here: /report renders a
   standalone document that never links this stylesheet, and page() emits
   PHONE_CSS unconditionally. One definition, every surface. */

/* ── DECK-LOCAL LAYOUTS ─────────────────────────────────────────────────────
   Two grids predate the utility classes and carry their own names, so the
   .u-gtc-* rules above never see them.

   .ss-row (site) is grid-template-columns:110px 1.1fr 1.4fr 1.3fr auto. The
   110px rail plus four content tracks cannot fit 390px, so .ss-act was landing
   at right:552px. Stacked.

   .bd-wfstage (board) explicitly opted into overflow-x:auto with 58px fixed
   columns below 640px — a horizontal scroller, which is out under the no-swipe
   directive. Columns flex to fit instead and the value labels wrap. */
@media(max-width:480px){
  .ss-row{grid-template-columns:minmax(0,1fr)!important;gap:6px!important;padding:12px 14px!important}
  .ss-act{flex-wrap:wrap}
  .bd-wfstage{overflow-x:visible!important;gap:5px!important;padding:34px 10px 52px!important}
  .bd-wfcol{flex:1 1 0!important;min-width:0!important}
  .bd-wfval{font-size:9.5px!important;white-space:normal!important;line-height:1.2;top:-26px}
}

/* ── FAB STACK ──────────────────────────────────────────────────────────────
   Measured .ly-fab as a 152x42 pill at bottom-right — 39% of a 390px screen,
   permanently over section content, with #btt 42px above it and the PWA
   prompt (.lypwa, 366x86) under both. At phone width the pill collapses to a
   52px circle: the star still reads, and it stops covering two fifths of every
   line it passes over. min-width beats the 152px floor set above. */
@media(max-width:480px){
  .ly-fab{
    min-width:0!important;width:52px;height:52px;padding:0!important;
    border-radius:50%!important;font-size:0!important;
    left:14px!important;right:auto!important;
  }
  .ly-fab::after,.ly-fab:hover::after{content:none!important}
  .ly-fab svg{width:22px;height:22px}
  #btt{left:14px!important;bottom:92px!important;width:44px;height:44px}
  /* Last card in a section was landing under the stack. */
  .pg:last-of-type{padding-bottom:96px}
}

/* ── FAINT FLOATING BUTTONS ON PHONES (2026-10-03, Taher: "let them faint
   until someone presses them") ──────────────────────────────────────────────
   The toolbelt, back-to-top and the Lightyear AI star stay where they are but
   rest faint, so the text under them reads; they come up full while pressed
   or focused. Opacity on the buttons themselves, not a page fade (rules §4). */
@media(max-width:760px){
  html .ly-toolbelt-btn,html .ly-fab,html #btt{opacity:.8;transition:opacity .15s ease,transform .15s ease}
  html .ly-toolbelt-btn:active,html .ly-toolbelt-btn:focus-visible,
  html .ly-fab:active,html .ly-fab:focus-visible,html #btt:active,html #btt:focus-visible{opacity:1}
}
/* Phones (2026-10-03, Taher: "actually circles and aligned on same vertical"):
   every floating button is a 44 px circle, the star included (it was a 52 px
   circle up to 480 px and a 168 px pill from 481 to 760; back-to-top was
   42x44). Two columns, 14 px from each edge, bottoms level, 10 px apart:
   left the command and time-travel buttons, right back-to-top over the star.
   The collapsed star kept the 8 px gap for its hidden label and sat 4 px left
   of centre: gap 0. One Fleet keeps its own column positions (its cart bar). */
@media(max-width:760px){
  html .ly-toolbelt-btn,html #btt,html .ly-fab{width:44px!important;height:44px!important;min-width:0!important;min-height:0!important;padding:0!important;border-radius:50%!important;box-sizing:border-box!important;align-items:center!important;justify-content:center!important}
  html .ly-fab{gap:0!important;font-size:0!important}
  html .ly-fab::after,html .ly-fab:hover::after{content:none!important}
  html .ly-fab svg{width:20px;height:20px}
  html:not(:has(.geq-wrap)) #ly-toolbelt{right:14px!important;bottom:calc(14px + env(safe-area-inset-bottom,0px))!important;gap:10px!important}
  html:not(:has(.geq-wrap)) .ly-fab{left:14px!important;right:auto!important;bottom:calc(14px + env(safe-area-inset-bottom,0px))!important}
  html:not(:has(.geq-wrap)) #btt{left:14px!important;right:auto!important;bottom:calc(68px + env(safe-area-inset-bottom,0px))!important}
}

/* ── PULSE (/pulse) — morning brief ──────────────────────────────────────────
   Lives here rather than in pulse.ts so a global visual change reaches Pulse
   like every other surface. All colour comes from the :root custom properties
   above; nothing in this block hardcodes a hex. */

.pl-top{display:flex;align-items:center;gap:14px;flex-wrap:nowrap;
  border-bottom:1px solid rgba(214,165,74,.28);padding-bottom:7px}
.pl-h1{font-size:17px;font-weight:800;margin:0;letter-spacing:.02em;color:var(--gold-hot);flex:0 0 auto}
.pl-sub{font-size:12px;color:var(--txt4);margin-right:auto;flex:0 0 auto;white-space:nowrap}
.pl-dq{padding:4px 10px;border:1px solid rgba(243,134,149,.45);background:var(--crim-d);
  border-radius:6px;font-size:12px;line-height:1.4;flex:0 1 auto;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.pl-dq b{color:var(--crim);text-transform:none;letter-spacing:.01em}
.pl-h2{font-size:12px;font-weight:700;letter-spacing:.01em;text-transform:none;
  color:var(--txt4);margin:26px 0 11px;font-family:var(--sans)}
.pl-cb{border:1px solid rgba(120,150,200,.18);border-radius:8px;margin-bottom:9px;
  overflow:hidden;background:var(--panel-bg)}
.pl-cbh{display:flex;align-items:center;gap:8px;padding:6px 11px;font-size:12px;
  font-weight:700;border-bottom:1px solid rgba(120,150,200,.14)}
.pl-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
.pl-cnt{margin-right:auto;font-family:var(--sans);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--txt4)}
.pl-cr{display:grid;grid-template-columns:92px 1fr 110px 150px;gap:8px;align-items:center;
  padding:5px 11px;font-size:12px;border-top:1px solid rgba(120,150,200,.07)}
.pl-cr:first-of-type{border-top:none}
.pl-an{color:var(--gold-hot);font-size:12px;font-weight:600}
.pl-ds{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-lo{color:var(--txt4);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-wt{font-family:var(--sans);font-size:12px;font-weight:600;text-align:left;font-variant-numeric:tabular-nums}
.pl-more{color:var(--txt4);font-style:italic;display:block}
.pl-empty{border:1px dashed rgba(120,150,200,.3);border-radius:8px;padding:16px 14px;
  font-size:13px;color:var(--txt3);line-height:1.55}
/* ONE SCREEN, NO SCROLL. The whole premise is a glance before the first
   meeting — a page you scroll is a report, not a pulse. The wrapper owns the
   viewport height and clips; only the exception list scrolls, inside its own
   cell. Every ancestor of a scrolling child needs min-height:0, or grid rows
   refuse to shrink below content height and the page grows a scrollbar anyway. */
/* body carries a global padding-bottom:96px to clear the floating action and
   back-to-top buttons. On a 100dvh page that padding is added to a full
   viewport, so the page overflowed by exactly 96px. Scoped off here only —
   Pulse has no FAB. Degrades to the old 96px scroll if :has is unsupported. */
body:has(> .pl-wrap){padding-bottom:0}
.pl-wrap{height:100dvh;max-width:none;margin:0;padding:10px 14px 12px;
  display:grid;grid-template-rows:auto 1fr;gap:8px;overflow:hidden;min-height:0}
.pl-board{display:grid;grid-template-columns:minmax(230px,.8fr) 1fr 1fr 1.25fr;
  grid-template-rows:1fr 1fr;gap:8px;min-height:0}
.pl-cell{min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column}
/* Exceptions are the reason the screen exists, so they get the widest cell and
   the only scrollbar. */
.pl-cell--exc{grid-column:span 2}
.pl-scroll{flex:1;min-height:0;overflow-y:auto;padding-left:4px}
.pl-cell--gauge{padding:0;border:none;background:none}
.pl-cell--gauge>*{flex:1;min-height:0}
/* Chart.js defaults to a 2:1 aspect ratio, which in a tall grid cell renders a
   short chart pinned to the top with dead space beneath. The cell chain is made
   to flex down to the canvas and the aspect lock is released in JS (see
   pulse.ts), because Chart.js sizes the canvas itself — CSS alone cannot do it. */
.pl-cell--chart>div{min-height:0}
.pl-cell--chart>div:has(canvas){flex:1;display:flex;min-height:0;margin-bottom:0!important}
.pl-cell--chart div:has(> canvas){flex:1;min-height:0;position:relative}
.pl-cell--chart canvas{max-height:none!important}
.pl-cell--chart .st{margin:0 0 6px;flex:0 0 auto}
.pl-card{border:1px solid rgba(120,150,200,.18);border-radius:10px;padding:11px 13px;
  background:var(--panel-bg)}
.pl-ct{font-size:11px;font-weight:700;letter-spacing:.01em;text-transform:none;
  color:var(--txt3);font-family:var(--sans);margin-bottom:9px;flex:0 0 auto}
.pl-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:3px 0;font-size:12.5px}
.pl-row--sep{border-top:1px solid rgba(120,150,200,.16);margin-top:4px;padding-top:7px}
.pl-rl{color:var(--txt3)}
.pl-rv{font-weight:700;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.pl-rv--dim{color:var(--txt4);font-weight:400}
/* Below tablet width a fixed viewport would mean unreadable 8px type, so the
   no-scroll rule is dropped rather than the legibility. */
@media(max-width:1000px){
  .pl-wrap{height:auto;overflow:visible;padding:14px}
  .pl-board{grid-template-columns:1fr;grid-template-rows:none}
  .pl-cell--exc{grid-column:span 1}
  .pl-cell,.pl-cell--chart>div:last-child{min-height:240px}
  .pl-scroll{overflow:visible}
}
.pl-mc{border:1px solid rgba(120,150,200,.18);border-radius:8px;padding:12px 13px;
  background:var(--panel-bg)}
.pl-mcl{font-size:11px;letter-spacing:.01em;text-transform:none;color:var(--txt4);
  font-family:var(--sans);font-weight:600;margin-bottom:7px}
.pl-mcv{font-size:19px;font-weight:700;letter-spacing:-.01em}
.pl-mcs{font-size:12px;margin-top:5px;font-family:var(--sans);color:var(--txt3)}
.pl-dl{font-weight:700}
.pl-foot{margin-top:34px;padding-top:13px;border-top:1px solid rgba(120,150,200,.16);
  font-size:12px;color:var(--txt4);line-height:1.7}
.pl-foot a{color:var(--gold-hot);text-decoration:none}
.pl-foot a:hover{text-decoration:underline}
/* No horizontal scroll on mobile: the four-column change row collapses to a
   stack rather than overflowing the viewport. */
@media(max-width:760px){
  .pl-wrap{padding:16px 14px 60px}
  .pl-cr{grid-template-columns:1fr;gap:2px;padding:9px 12px}
  .pl-wt,.pl-lo{text-align:right}
}
/* ── Fleet X-ray (2026-10-01) ── */
/* /xray page (src/xray/page.ts) and report (src/xray/render.ts), plus the
   Command Centre entry (.xr-cc, homepage.ts). Obsidian surfaces, one gold
   accent; semantic fills from the LY_TOKENS mirror (--fill-*). Prints on
   white: the report is meant to be handed over on paper. */
body.xr-page{background:var(--bg)}
.xr-wrap{max-width:1180px;margin:0 auto;padding:28px 32px 72px;display:flex;flex-direction:column;gap:18px;box-sizing:border-box}
.xr-top h1{margin:6px 0 0;font-size:30px;font-weight:700;letter-spacing:-.02em;color:#F7F4EE;line-height:1.15}
.xr-eyebrow{font-family:var(--sans);font-size:12px;font-weight:600;text-transform:none;color:var(--gold-hot)}
.xr-intro{margin:10px 0 0;max-width:760px;font-size:15px;line-height:1.6;color:var(--txt2)}
.xr-who{margin:6px 0 0;font-size:12.5px;color:var(--txt4)}
.xr-step{display:flex;gap:16px;padding:20px 22px;border-radius:16px;background:var(--panel-bg);border:1px solid rgba(255,255,255,.07)}
.xr-step[hidden]{display:none}
.xr-has-report .xr-top>:not(.pp-back){display:none}
.xr-gets{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0}
.xr-gets li{font-size:12.5px;color:var(--txt2);padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07)}
.xr-done .xr-gets{display:none}
.xr-map:not(.xr-map--all) .xr-mr--opt,.xr-map:not(.xr-map--all) .xr-mg--opt{display:none}
.xr-linkbtn{margin-top:10px;padding:0;border:0;background:none;color:var(--gold-hot);font:500 13px var(--sans);cursor:pointer}
.xr-linkbtn:hover{text-decoration:underline}
.xr-linkbtn[hidden]{display:none}
.xr-summary{margin:0;padding:16px 20px;border-radius:14px;background:linear-gradient(-90deg,rgba(240,180,80,.08),rgba(240,180,80,.02));border:1px solid rgba(240,180,80,.2);font-size:15.5px;line-height:1.6;color:#F2EEE6}
.xr-act .xr-act-v--opp{color:#9CCBE3}
.xr-act .xr-act-v--dec{color:var(--txt2)}
.xr-sn{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--gold-l);color:var(--gold-hot);font:700 14px var(--sans);font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1px var(--gold-a35)}
.xr-sb{flex:1;min-width:0}
.xr-sb h2{margin:3px 0 12px;font-size:18px;font-weight:650;color:#F2EEE6}
.xr-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:170px;padding:24px;border-radius:14px;border:1.5px dashed rgba(240,180,80,.38);background:rgba(240,180,80,.035);cursor:pointer;text-align:center;transition:border-color .2s,background .2s}
.xr-drop:hover,.xr-drop:focus-visible,.xr-drop.xr-over{border-color:var(--gold-hot);background:rgba(240,180,80,.08);outline:none}
.xr-drop-i{color:var(--gold-hot)}
.xr-drop-t{font-size:16px;font-weight:600;color:#F2EEE6}
.xr-drop-s{font-size:13px;color:var(--txt3);max-width:560px;line-height:1.5}
.xr-filebar{display:none;align-items:center;gap:12px;flex-wrap:wrap}
.xr-done .xr-drop{display:none}
.xr-done .xr-filebar{display:flex}
.xr-done .xr-sb h2{margin-bottom:8px}
.xr-fname{font-weight:650;color:#F2EEE6;overflow-wrap:anywhere}
.xr-fmeta{font-family:var(--sans);font-size:13px;font-variant-numeric:tabular-nums;color:var(--txt3)}
.xr-sheet{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--txt3)}
.xr-sheet[hidden]{display:none}
.xr-filebar .pp-btn{margin-right:auto}
.xr-small{font-size:12.5px;line-height:1.55;color:var(--txt3);margin:6px 0}
.xr-msum{margin:12px 0 4px;padding:12px 14px;border-radius:12px;background:rgba(126,184,212,.06);border:1px solid rgba(126,184,212,.16)}
.xr-msum-h{margin:0;font-size:14px;color:var(--txt)}
.xr-miss{margin:8px 0 0;padding-right:18px;font-size:13px;line-height:1.55;color:var(--txt2)}
.xr-miss li{margin:3px 0}
.xr-miss b{color:#F2EEE6;font-weight:600}
.xr-map{display:grid;grid-template-columns:1fr 1fr;gap:6px 22px;margin-top:10px}
.xr-mg h3,.xr-vp h3,.xr-sec h3{margin:16px 0 8px;font-family:var(--sans);font-size:12px;font-weight:600;text-transform:none;color:var(--txt4)}
.xr-mr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 104px;align-items:center;gap:4px 10px;padding:8px 0;border-top:1px solid rgba(255,255,255,.05)}
.xr-mr .xr-cf{justify-self:end}
.xr-ml{display:flex;align-items:center;gap:8px;min-width:0;font-size:13.5px;color:var(--txt)}
.xr-ml b{font-weight:550}
.xr-req{flex:none;font:600 12px var(--sans);text-transform:none;color:var(--gold-hot);background:var(--gold-a08);padding:2px 6px;border-radius:5px}
.xr-msel,.xr-vsel,.xr-sheet select{min-width:0;width:100%;height:34px;padding:0 8px;border-radius:8px;border:1px solid #2C3240;background:#181C24;color:#EEF1F5;font:400 13px var(--sans)}
.xr-sheet select{width:auto}
.xr-msel:focus,.xr-vsel:focus{border-color:var(--gold-hot);outline:none}
.xr-cf{font:600 12px var(--sans);padding:3px 7px;border-radius:6px;white-space:nowrap}
.xr-cf--exact{color:#5BCE81;background:rgba(91,206,129,.1)}
.xr-cf--alias{color:#7EB8D4;background:rgba(126,184,212,.1)}
.xr-cf--likely{color:#F0B450;background:rgba(240,180,80,.12)}
.xr-cf--none{color:var(--txt4);background:rgba(255,255,255,.04)}
.xr-minfo{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--txt3);min-width:0}
.xr-minfo:empty{display:none}
.xr-mfill{font-family:var(--sans);font-weight:600;font-variant-numeric:tabular-nums;color:var(--txt2)}
.xr-msamp{overflow-wrap:anywhere;color:var(--txt4)}
.xr-mwarn{color:#E6CE6B}
.xr-vals{display:grid;grid-template-columns:1fr 1fr;gap:4px 22px;margin-top:10px}
.xr-vals[hidden]{display:none}
.xr-vr{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.1fr);align-items:center;gap:10px;padding:6px 0;border-top:1px solid rgba(255,255,255,.05);font-size:13px}
.xr-vv{overflow-wrap:anywhere;color:var(--txt)}
.xr-vc{font-family:var(--sans);font-size:12px;font-variant-numeric:tabular-nums;color:var(--txt4);white-space:nowrap}
.xr-vok{font-size:12.5px;color:var(--txt3)}
.xr-dim{color:var(--txt4)}
.xr-runbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.07)}
.xr-runbtn{height:46px;padding:0 26px;font-size:15px}
.xr-msg{font-size:14px;line-height:1.5;border-radius:12px}
.xr-msg:empty{display:none}
.xr-msg--info{padding:12px 16px;background:rgba(126,184,212,.08);border:1px solid rgba(126,184,212,.2);color:var(--txt)}
.xr-msg--bad{padding:12px 16px;background:rgba(229,72,77,.08);border:1px solid rgba(229,72,77,.3);color:#F6C3C8}
.xr-out[hidden],#xr-steps[hidden]{display:none}
/* Report */
.xr-report{display:flex;flex-direction:column;gap:18px}
.xr-rhead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:6px}
.xr-rtitle{margin:6px 0 0;font-size:28px;font-weight:700;letter-spacing:-.02em;color:#F7F4EE;overflow-wrap:anywhere}
.xr-rsub{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--txt3);max-width:760px}
.xr-rbtns{display:flex;gap:10px;flex-wrap:wrap}
.xr-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.xr-kpi{padding:16px 18px;border-radius:14px;background:var(--panel-bg);border:1px solid rgba(255,255,255,.07);min-width:0}
.xr-kpi-l{font:600 11px var(--sans);letter-spacing:.01em;text-transform:none;color:var(--txt4)}
.xr-kpi-v{margin-top:8px;font-size:28px;font-weight:700;letter-spacing:-.02em;color:#F7F4EE;font-variant-numeric:tabular-nums;line-height:1.1}
.xr-kpi-s{margin-top:6px;font-size:12.5px;line-height:1.45;color:var(--txt3)}
.xr-kpi--good{border-color:rgba(91,206,129,.28);background:linear-gradient(-180deg,rgba(91,206,129,.07),rgba(91,206,129,0)),var(--panel-bg)}
.xr-kpi--good .xr-kpi-v{color:#7FDFA0}
.xr-kpi--risk .xr-kpi-v{color:#F0B450}
.xr-kpi--gap .xr-kpi-v{font-size:18px}
.xr-sec{padding:20px 22px;border-radius:16px;background:var(--panel-bg);border:1px solid rgba(255,255,255,.07);min-width:0}
.xr-sec h2{margin:0;font-size:19px;font-weight:650;letter-spacing:-.01em;color:#F2EEE6}
.xr-lead{margin:6px 0 4px;font-size:13.5px;line-height:1.55;color:var(--txt3);max-width:820px}
.xr-sec h3:first-child{margin-top:4px}
.xr-acts{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column}
.xr-act{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:14px;align-items:start;padding:14px 0;border-top:1px solid rgba(255,255,255,.06)}
.xr-act:first-child{border-top:0}
.xr-act-n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--gold-l);color:var(--gold-hot);font:700 13px var(--sans);font-variant-numeric:tabular-nums}
.xr-act-t{font-size:15px;font-weight:600;color:#F2EEE6;line-height:1.45}
.xr-act-w{margin-top:4px;font-size:13px;line-height:1.5;color:var(--txt3)}
.xr-act-v{text-align:left;font-size:20px;font-weight:700;color:#7FDFA0;font-variant-numeric:tabular-nums;white-space:nowrap}
.xr-act-v small{display:block;margin-top:2px;font-size:11.5px;font-weight:500;color:var(--txt4)}
.xr-act-v--rec{color:var(--txt2);font-size:15px}
.xr-chip{display:inline-block;margin:2px 6px 2px 0;padding:2px 8px;border-radius:999px;font:500 11px var(--sans);vertical-align:2px;color:var(--txt2);background:rgba(255,255,255,.06);white-space:nowrap}
.xr-chip--firm{color:#7FDFA0;background:rgba(91,206,129,.1)}
.xr-chip--provisional{color:#E6CE6B;background:rgba(230,206,107,.1)}
.xr-chip--estimate{color:#7EB8D4;background:rgba(126,184,212,.1)}
.xr-grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;margin-top:6px}
.xr-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:rgba(255,255,255,.05);gap:2px}
.xr-seg{display:block;height:100%}
.xr-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:12.5px;color:var(--txt3)}
.xr-lg{display:inline-flex;align-items:center;gap:6px}
.xr-lg i{display:inline-block;width:9px;height:9px;border-radius:2px}
.xr-lg b{color:var(--txt);font-weight:600;font-variant-numeric:tabular-nums}
.xr-c-own{background:#3987E5}.xr-c-rent{background:#CF9B28}.xr-c-lease{background:#D55181}
.xr-c-good{background:#22A06B}.xr-c-idle{background:#E98E36}.xr-c-crit{background:#E5484D}
.xr-c-a1{background:#1FA2A8}.xr-c-a2{background:#3987E5}.xr-c-a3{background:#9085E9}.xr-c-a4{background:#D95926}.xr-c-unk{background:#64748B}
.xr-tblwrap{overflow-x:auto;margin-top:8px}
.xr-tbl{width:100%;border-collapse:collapse;font-size:13px}
.xr-tbl th{text-align:right;font:600 12px var(--sans);text-transform:none;color:var(--txt4);padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.08)}
.xr-tbl tbody th{font:500 13px var(--sans);letter-spacing:0;text-transform:none;color:var(--txt2)}
.xr-tbl td{padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.05);color:var(--txt);vertical-align:top}
.xr-tbl td small{color:var(--txt4)}
.xr-tbl--tight td,.xr-tbl--tight th{padding:7px 8px}
.xr-num{text-align:left!important;font-variant-numeric:tabular-nums;white-space:nowrap}
.xr-id{font-family:var(--sans);font-size:13px;font-weight:600;white-space:nowrap;color:var(--txt2)}
.xr-why{color:var(--txt3);font-size:12.5px}
.xr-total th,.xr-total td{font-weight:700;color:#F2EEE6;border-top:1px solid rgba(255,255,255,.12)}
.xr-notes p{margin:0 0 8px;font-size:13px;line-height:1.55;color:var(--txt3)}
.xr-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 6px}
.xr-stat{padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06);min-width:0}
.xr-stat-v{font-size:22px;font-weight:700;color:#F7F4EE;font-variant-numeric:tabular-nums}
.xr-stat-l{margin-top:4px;font-size:12.5px;font-weight:600;color:var(--txt2)}
.xr-stat-s{margin-top:4px;font-size:12px;line-height:1.45;color:var(--txt4)}
.xr-gap{display:inline-block;font:600 12px var(--sans);color:#E6CE6B;background:rgba(230,206,107,.1);padding:2px 8px;border-radius:6px}
.xr-gapwhy{display:inline;margin-right:8px;font-size:12.5px;color:var(--txt3)}
.xr-gapline{margin:8px 0;font-size:13px}
.xr-none{font-size:13px;color:var(--txt4)}
.xr-dq{padding:6px 0}
.xr-dq-v{font-size:54px;font-weight:700;letter-spacing:-.03em;color:#F7F4EE;line-height:1}
.xr-dq-v small{font-size:22px;color:var(--txt3);margin-right:2px}
.xr-dq-l{margin-top:4px;font-size:13px;color:var(--txt3)}
.xr-dq-bar{margin-top:12px;height:8px;border-radius:4px;background:rgba(255,255,255,.06);overflow:hidden}
.xr-dq-bar span{display:block;height:100%;background:linear-gradient(-90deg,#CF9B28,#F0B450)}
.xr-fixes{list-style:none;margin:0;padding:0}
.xr-fixes li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.05);font-size:13.5px;color:var(--txt)}
.xr-fixes li:first-child{border-top:0}
.xr-fixes b{font-weight:600;color:#F2EEE6}
.xr-fix-n{font:600 12px var(--sans);font-variant-numeric:tabular-nums;color:var(--gold-hot);padding-top:1px}
.xr-det{margin-top:14px}
.xr-det summary{cursor:pointer;font-size:13px;color:var(--txt2)}
.xr-bms{display:grid;grid-template-columns:1fr 1fr;gap:6px 28px;margin-top:10px}
.xr-bm{padding:10px 0;border-top:1px solid rgba(255,255,255,.05)}
.xr-bm-l{font-size:13px;color:var(--txt);margin-bottom:6px}
.xr-bm-r{display:grid;grid-template-columns:44px minmax(0,1fr) 92px;align-items:center;gap:8px;margin-top:3px}
.xr-bm-k{font:600 12px var(--sans);color:var(--txt4)}
.xr-bm-t{height:8px;border-radius:4px;background:rgba(255,255,255,.05);overflow:hidden}
.xr-bm-t i{display:block;height:100%;border-radius:4px}
.xr-bm-you{background:#F0B450}
.xr-bm-them{background:#64748B}
.xr-bm-v{text-align:left;font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--txt2);white-space:nowrap}
.xr-foot{margin-top:4px;font-size:12px;line-height:1.6;color:var(--txt4);text-align:center}
.xr-timing{margin-top:4px}
/* Command Centre entry */
.xr-cc{position:relative;display:flex;align-items:center;gap:14px;width:calc(100% - 64px);max-width:1616px;margin:0 auto clamp(8px,1.4vh,16px);box-sizing:border-box;padding:10px 14px 10px 44px;border-radius:14px;text-decoration:none;color:inherit;background:linear-gradient(-90deg,rgba(240,180,80,.07),rgba(240,180,80,0) 60%),rgba(9,12,18,.62);border:1px solid rgba(240,180,80,.18)}
.xr-cc:hover,.xr-cc:focus-visible{border-color:rgba(240,180,80,.45);outline:none}
.xr-cc .cc-ic{width:36px;height:36px}
.xr-cc .cc-go{top:50%;margin-top:-8px;left:16px}
.xr-cc-tx{display:flex;align-items:baseline;gap:4px 12px;flex-wrap:wrap;min-width:0}
.xr-cc-nm{font-size:15px;font-weight:650;color:#F2EEE6}
.xr-cc-us{font-size:13px;color:var(--txt3)}
@media(max-width:900px){
  .xr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .xr-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .xr-map,.xr-vals,.xr-grid2,.xr-bms{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:760px){
  .xr-wrap{padding:18px 16px 56px;gap:14px}
  .xr-top h1{font-size:24px}
  .xr-step{padding:16px 14px;gap:12px}
  .xr-sn{width:26px;height:26px;font-size:12px}
  .xr-sec{padding:16px 14px}
  .xr-kpi{padding:13px 14px}
  .xr-kpi-v{font-size:22px}
  .xr-act{grid-template-columns:26px minmax(0,1fr);gap:10px}
  .xr-act-v{grid-column:2;text-align:right;font-size:18px}
  .xr-act-v small{display:inline;margin-right:6px}
  .xr-rtitle{font-size:22px}
  .xr-mr{grid-template-columns:minmax(0,1fr) auto}
  .xr-summary{font-size:14.5px;padding:14px 16px}
  .xr-mr .xr-msel{grid-column:1/-1;grid-row:2}
  .xr-vr{grid-template-columns:minmax(0,1fr) auto}
  .xr-vr .xr-vsel,.xr-vr .xr-vok{grid-column:1/-1}
  /* Tables take the house phone card layout (style.ts, max-width 768px);
     a phone shows the first five of each list. */
  .xr-tbl tbody tr:nth-child(n+6){display:none}
  .xr-tbl tbody th{display:block;text-align:right;padding:0 0 6px}
  .xr-num{white-space:normal}
  .xr-cc{width:calc(100% - 32px);padding:10px 12px 10px 40px}
  .xr-cc-us{display:none}
  .xr-rbtns{width:100%}
  .xr-rbtns .pp-btn{flex:1}
}
@media print{
  /* Paper: dark text on white. The text tokens are re-pointed for the report
     only, so every var(--txt*) in the block follows. A4 is narrower than the
     768px phone breakpoint, so the house card layout for tables is undone. */
  body.xr-page{background:#fff!important;color:#111;--txt:#111;--txt2:#333;--txt3:#444;--txt4:#666;--panel-bg:#fff}
  .xr-top,#xr-steps,.xr-msg,.xr-rbtns,.pp-back,.xr-det{display:none!important}
  .xr-wrap{padding:0;max-width:none}
  .xr-sec,.xr-kpi,.xr-stat,.xr-summary{background:#fff!important;border-color:#d8dbe0!important;box-shadow:none!important}
  .xr-kpi,.xr-stat,.xr-act,.xr-fixes li,.xr-bm,.xr-tbl tr,.xr-summary{break-inside:avoid}
  .xr-sec h2,.xr-sec h3{break-after:avoid}
  .xr-summary,.xr-rtitle,.xr-sec h2,.xr-kpi-v,.xr-stat-v,.xr-act-t,.xr-dq-v,.xr-total th,.xr-total td,.xr-fixes b,.xr-miss b,.xr-tbl td,.xr-lg b{color:#111!important}
  .xr-act-v,.xr-kpi--good .xr-kpi-v{color:#1a7f45!important}
  .xr-act .xr-act-v--rec,.xr-act .xr-act-v--dec{color:#333!important}
  .xr-act .xr-act-v--opp{color:#1f5f8b!important}
  .xr-kpi--risk .xr-kpi-v{color:#9a6400!important}
  .xr-chip{background:#f1f3f5!important;color:#333!important;border:1px solid #dde1e6}
  .xr-gap{color:#7a5d00!important;background:#fff6d6!important}
  .xr-act-n,.xr-sn{background:#fff3dc!important;color:#8a5a00!important}
  .xr-tbl th{color:#555!important}
  .xr-tbl td,.xr-tbl th{border-color:#e3e5e9!important}
  .xr-bar,.xr-bm-t,.xr-dq-bar,.xr-lg i{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .xr-tbl{display:table!important}
  .xr-tbl thead{display:table-header-group!important;position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important}
  .xr-tbl tbody{display:table-row-group!important}
  .xr-tbl tr,.xr-tbl tbody>tr,.xr-tbl tbody tr:nth-child(n+6){display:table-row!important;background:none!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important}
  .xr-tbl td,.xr-tbl th,.xr-tbl tr td:first-child{display:table-cell!important;width:auto!important;padding:6px 8px!important;margin:0!important;font-size:12px!important;font-weight:400;border-bottom:1px solid #e3e5e9!important;text-align:right}
  .xr-tbl .xr-num{text-align:left!important}
  .xr-tbl td::before{content:none!important}
  .xr-tbl td,.xr-tbl th,.xr-id{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important}
}

/* ═══ v3 · TOKENS ════════════════════════════════════════════════════════ */
:root{
  --ly-fs-micro:12px;
  --ly-fs-caption:13px;
  --ly-fs-body:14px;
  --ly-fs-lead:15px;
  --ly-fs-title:15px;
  --ly-fs-section:22px;
  --ly-fs-stat:28px;
  --ly-gap:12px;
  --ly-pad-card:14px 16px;
  --ly-r-card:12px;
  --ly-r-ctl:8px;
  --ly-r-chip:6px;
  --r-sm:6px;
  --r:8px;
  --r-lg:12px;
  --ly-hair:1px solid var(--bdr);
  --ly-surface-raise:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,0) 60%);
  --shadow:0 1px 0 rgba(255,255,255,.035) inset,0 12px 28px -20px rgba(0,0,0,.9);
  --sans:'IBM Plex Sans','IBM Plex Sans Arabic',system-ui,sans-serif;
  --disp:'IBM Plex Sans Condensed','IBM Plex Sans','IBM Plex Sans Arabic',system-ui,sans-serif;
}

/* ═══ v3 · BASE ══════════════════════════════════════════════════════════ */
body{
  font-size:15px;
  line-height:1.5;
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse 70% 40% at 10% -8%,rgba(214,165,74,.06) 0%,transparent 70%),
    linear-gradient(-180deg,#0E1626 0%,#0B1220 45%,#09101C 100%);
}
.ly-bgmesh{opacity:.35}
::-webkit-scrollbar-thumb{background:#2A3752;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--gold-d)}
:root{scrollbar-color:#2A3752 var(--bg)}

/* The one text floor. u-fs-12 is the single largest carrier of sub-13px text
   (348 call sites: captions, notes, legends, table notes). Remapped here, at
   the utilities' own specificity, rather than edited in the generated block. */
.u-fs-12.u-fs-12.u-fs-12,input.u-fs-12.u-fs-12.u-fs-12,select.u-fs-12.u-fs-12.u-fs-12,textarea.u-fs-12.u-fs-12.u-fs-12,button.u-fs-12.u-fs-12.u-fs-12{font-size:13px}
.u-fs-11.u-fs-11.u-fs-11,.u-fs-10.u-fs-10.u-fs-10,.u-fs-9.u-fs-9.u-fs-9{font-size:12px}
.u-lh-15.u-lh-15.u-lh-15{line-height:1.55}

/* Inline-style safety net, deck sections only (.pg; the Fleet Command Map's
   console styling lives outside and is untouched). ~2,900 inline styles are
   documented debt (docs/VISUAL_AUDIT.md); until they are migrated to classes,
   these hold the floor: no inline text under 12px, sentence text at 12px
   steps to 13px (uppercase micro labels may stay at 12), and the code face is
   reserved for raw technical dumps, so inline JetBrains Mono (and the
   u-ff-mono utility) renders in Plex Sans with tabular figures unless the
   element opts out with data-mono. Modals, the contact card and the AI panel sit outside
   .pg and get the same net (typography pass, 2026-10-08). */
.pg [style*="font-size:9px"],.pg [style*="font-size:9.5px"],.pg [style*="font-size:10px"],.pg [style*="font-size:10.5px"],.pg [style*="font-size:11px"],.pg [style*="font-size:11.5px"]{font-size:12px!important}
.pg [style*="font-size:12px"]:not([style*="uppercase"]){font-size:13px!important}
.pg [style*="JetBrains Mono"]:not([data-mono]),.pg [style*="font-family:var(--mono"]:not([data-mono]),.pg [style*="font-family:monospace"]:not([data-mono]),.pg [style*="'Inter'"]{font-family:var(--sans)!important;font-variant-numeric:tabular-nums}
:is(.lx-modal,#tf-card,#ly-panel) :is([style*="JetBrains Mono"],[style*="font-family:var(--mono"],[style*="font-family:monospace"]):not([data-mono]){font-family:var(--sans)!important;font-variant-numeric:tabular-nums}
:is(.pg,.lx-modal,#ly-panel) .u-ff-mono.u-ff-mono.u-ff-mono:not([data-mono]){font-family:var(--sans);font-variant-numeric:tabular-nums}
.nav-live-txt span{font-family:var(--sans);font-variant-numeric:tabular-nums}
.pg .sw-alt{font-size:12px}
/* Phone card-tables: the field label above each value, in the UI face. */
html table[data-cards] td::before{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:0}
.mh-val{font-family:var(--sans);font-weight:600}
:is(.pg,.lx-modal,#ly-panel) .u-ff-mono.u-ff-mono.u-ff-mono.u-fs-12:not(.u-tt-uppercase){letter-spacing:0}
:is(.pg,.lx-modal,#ly-panel) .u-ff-mono.u-ff-mono.u-ff-mono.u-tt-uppercase{font-weight:600;letter-spacing:.01em}

/* ═══ v3 · SECTIONS ══════════════════════════════════════════════════════ */
@media(min-width:769px){
  .pg{padding:20px 56px 22px}
  .pg:first-of-type{padding-top:8px;padding-bottom:20px}
  #ceo-s1,#cfo-s1,#coo-s1,#pmv-s1,#site-s1{padding-top:14px!important}
  #ceo-s1{padding-bottom:20px!important}
  .pg > [class*="u-mb-14"],.pg > [class*="u-mb-16"]{margin-bottom:12px}
  .pg > [class*="u-mb-20"],.pg > [class*="u-mb-24"]{margin-bottom:12px}
}
.pg{border-bottom:1px solid rgba(148,163,184,.08)}
/* A section rendered inside another (HR 11 and 12 sit in 10's body) takes
   its parent's gutter, not a second one. */
.pg .pg{padding-right:0;padding-left:0;border-bottom:0}

/* Section header. The number reads as a document reference, not a headline:
   a small gold chip, then the title. The title carries the weight. */
.sec-h{align-items:center;gap:14px;margin:0 0 12px}
.sec-n{
  font-family:var(--sans);font-size:12px;font-weight:600;line-height:1;
  letter-spacing:.08em;color:var(--gold-hot);
  padding:6px 8px;border:1px solid rgba(240,180,80,.34);border-radius:var(--ly-r-chip);
  background:rgba(240,180,80,.07);align-self:center;
}
.sec-t{font-family:var(--sans);font-size:var(--ly-fs-section);font-weight:600;letter-spacing:-.012em;line-height:1.2;color:var(--txt)}
.sec-h::after{background:linear-gradient(-90deg,rgba(148,163,184,.26),rgba(148,163,184,0));height:1px}
.pg>.st{font-family:var(--sans);font-size:var(--ly-fs-section);font-weight:600;letter-spacing:-.012em}
.pg>.st::after{background:linear-gradient(-90deg,rgba(148,163,184,.26),rgba(148,163,184,0))}
.st{font-size:14px;font-weight:600;color:var(--txt2)}
.eye{font-size:12px;letter-spacing:.01em;text-transform:none}
.lead{font-size:15px;line-height:1.6}

/* ═══ v3 · CARDS ═════════════════════════════════════════════════════════
   Every bordered surface card resolves to one radius, one padding, one
   border. The utility cards are matched on their class signature (surface +
   border + padding); the inline card() helpers emit .ly-panel. Containers that
   carry no padding utility (KPI strips, table shells) keep padding 0. */
.ly-card,.ly-panel,
.pg [class*="u-bg-bg2"][class*="u-bd-1_solid"][class*="u-p-1"],
.pg [class*="u-bg-bg2"][class*="u-bd-1_solid"][class*="u-p-2"]{
  border-radius:var(--ly-r-card)!important;
  padding:var(--ly-pad-card);
  border-color:var(--bdr);
  background-image:var(--ly-surface-raise);
}
.ly-panel{background-color:var(--bg2);border:1px solid var(--bdr);box-sizing:border-box;min-width:0}
.pg [class*="u-bg-bg2"][class*="u-bd-1_solid"]{border-radius:var(--ly-r-card)}
.pg [class*="u-d-grid"][class*="u-gap-10"],.pg [class*="u-d-grid"][class*="u-gap-12"],.pg [class*="u-d-grid"][class*="u-gap-14"]{gap:var(--ly-gap)}
@media(max-width:768px){
  .ly-card,.ly-panel,
  .pg [class*="u-bg-bg2"][class*="u-bd-1_solid"][class*="u-p-1"],
  .pg [class*="u-bg-bg2"][class*="u-bd-1_solid"][class*="u-p-2"]{padding:14px 14px}
  .pg [class*="u-d-grid"][class*="u-gap-10"],.pg [class*="u-d-grid"][class*="u-gap-12"],.pg [class*="u-d-grid"][class*="u-gap-14"]{gap:12px}
}

/* Column cards that centred everything floated their title mid-card whenever
   the grid row stretched them. Title first, then the body centred in the
   height that is left. */
.pg [class*="u-bg-bg2"][class*="u-fd-column"][class*="u-jc-center"]{justify-content:flex-start!important}
.pg [class*="u-bg-bg2"][class*="u-fd-column"][class*="u-jc-center"] > .ly-card-title:first-child + *{margin-top:auto;margin-bottom:auto}

/* Card title: a heading, not a faint label. Sentence case, primary ink. */
.ly-card-title{font-family:var(--sans);font-size:var(--ly-fs-title);font-weight:600;letter-spacing:-.003em;line-height:1.35;color:var(--txt);margin-bottom:12px}
.ly-card-title--tight{margin-bottom:10px}
.ly-card-title--loose{margin-bottom:14px}
.ly-card-title .u-c-gold-hot,.ly-card-title .ly-card-sub{font-size:13px;font-weight:500;color:var(--gold-hot);letter-spacing:0}
.ly-card-sub{display:block;margin:-8px 0 12px;font-size:13px;line-height:1.5;color:var(--txt3)}
/* Meta line beside a card title (counts, totals): sans, not a code font. */
.u-d-flex > .ly-card-title ~ .u-ff-mono.u-ff-mono.u-ff-mono,.u-d-flex > .ly-card-title ~ span.u-ff-mono{font-family:var(--sans);font-size:13px;letter-spacing:0;font-weight:500}

/* Callouts */
.ib{font-size:14px;line-height:1.6;border-radius:var(--ly-r-card);padding:14px 18px}
.fbox{border-radius:var(--ly-r-card)}

/* ═══ v3 · STAT TILES ════════════════════════════════════════════════════
   One contract for every "number with a label": label (13px, sentence case,
   muted) / value (28px, semibold, proportional figures) / context (13px).
   Left-aligned so a wide tile reads as a stat block, not a number floating in
   space. Accent is a 2px top rule; the value keeps text ink unless the tile
   is critical, warning or positive (.ly-stat--crit / --warn / --good). */
.ly-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;background:var(--bg2);background-image:var(--ly-surface-raise);border:1px solid var(--bdr);border-radius:var(--ly-r-card);overflow:hidden;margin:0 0 var(--ly-gap)}
.ly-stats--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ly-stats--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ly-stats--gap{gap:var(--ly-gap);background:none;border:0;border-radius:0;overflow:visible}
/* Dividers are hairline shadows on each cell's left and top edge; the strip
   clips the ones on its outer edge, so the grid reads right at any wrap. */
.ly-stat{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;padding:16px 20px 16px;text-align:right;box-shadow:inset 0 2px 0 var(--c,transparent),1px 0 0 var(--bdr),0 -1px 0 var(--bdr);cursor:default;transition:background-color .15s ease}
.ly-stats--gap > .ly-stat{background:var(--bg2);background-image:var(--ly-surface-raise);border:1px solid var(--bdr);border-radius:var(--ly-r-card);box-shadow:inset 0 2px 0 var(--c,transparent)}
.ly-stat[onclick],.ly-stat[data-ly-click],.ly-stat[data-scroll]{cursor:pointer}
.ly-stat[onclick]:hover,.ly-stat[data-ly-click]:hover,.ly-stat[data-scroll]:hover{background-color:rgba(255,255,255,.025)}
.ly-stat:focus-visible{outline:2px solid var(--gold-hot);outline-offset:-2px}
.ly-stat-v[role=button]{cursor:pointer;border-radius:4px}
.ly-stat-v[role=button]:focus-visible{outline:2px solid var(--gold-hot);outline-offset:3px}
.ly-stat-l{font-family:var(--sans);font-size:13px;font-weight:500;line-height:1.35;color:var(--txt3);letter-spacing:0;text-transform:none;display:flex;align-items:center;gap:7px}
.ly-stat-l::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c,var(--txt4));flex-shrink:0}
.ly-stat-v{font-family:var(--sans);font-size:var(--ly-fs-stat);font-weight:600;line-height:1.1;letter-spacing:-.015em;color:var(--txt);font-variant-numeric:proportional-nums;white-space:nowrap}
.ly-stat--crit .ly-stat-v{color:var(--crim-hot)}
.ly-stat--warn .ly-stat-v{color:var(--gold-hot)}
.ly-stat--good .ly-stat-v{color:var(--good)}
.ly-stat .lx-spark{align-self:stretch}
/* Not defensible yet (claimed, unverified): muted figure and a dashed inner
   outline, so it never reads at the weight of a banked or identified value. */
.ly-stat--muted .ly-stat-v{color:var(--txt3);font-weight:500}
.ly-stat--muted{outline:1px dashed rgba(148,163,184,.32);outline-offset:-7px}
.ly-stat--muted .ly-stat-l::before{background:var(--txt4)}
.ly-stat-s{font-family:var(--sans);font-size:13px;line-height:1.45;color:var(--txt3)}
.ly-stat-b{margin-top:4px}
@media(max-width:1100px){.ly-stats--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){
  .ly-stats,.ly-stats--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ly-stat{padding:14px 14px}
  .ly-stat-v{font-size:22px;white-space:normal}
}

/* Critical tiles: a steady hairline ring in the critical fill, not a breathing
   glow. Motion is reserved for things that are changing. */
.ly-crit-pulse::after{box-shadow:inset 0 0 0 1px rgba(229,72,77,.38)!important;animation:none!important;opacity:1!important}

/* Utility-built accent tiles (tinted fill + tinted border + 2-3px coloured top
   rule; ~22 across CEO, COO, PMV, Site) join the tile contract: neutral card
   surface, hairline sides, the coloured top rule kept at 2px as the accent. */
.pg [class*="u-bdt-3_solid_"][class*="u-r-"],.pg [class*="u-bdt-2_solid_"][class*="u-r-"]{
  background-color:var(--bg2);background-image:var(--ly-surface-raise);
  border-right-color:var(--bdr);border-left-color:var(--bdr);border-bottom-color:var(--bdr);
  border-top-width:2px;border-radius:var(--ly-r-card);
}
.pg [class*="u-bdt-3_solid_"][class*="u-r-"][class*="u-p-1"],.pg [class*="u-bdt-2_solid_"][class*="u-r-"][class*="u-p-1"]{padding:16px 20px}

/* kpiCard() tiles join the same contract. */
.kpi{border-right:0!important;border:1px solid var(--bdr);border-radius:var(--ly-r-card);background:var(--bg2)!important;background-image:var(--ly-surface-raise)!important;padding:16px 20px!important;gap:4px;min-height:0;box-shadow:inset 0 2px 0 var(--acc,transparent),var(--shadow)}
.kpi.kpi--acc{background:var(--bg2)!important;border-color:var(--bdr)}
.kpi .kl{font-size:13px!important;font-weight:500;letter-spacing:0!important;text-transform:none!important;color:var(--txt3)}
.kpi .kv{font-family:var(--sans);font-size:var(--ly-fs-stat)!important;font-weight:600;letter-spacing:-.015em;font-variant-numeric:proportional-nums;color:var(--txt)}
.kpi.kpi--acc .kv{color:var(--txt)}
.kpi .ks{font-size:13px!important;color:var(--txt3)}
.kg{gap:var(--ly-gap)}
.kpi-delta{font-family:var(--sans);font-size:12px;font-weight:600;border-radius:var(--ly-r-chip);padding:2px 7px}

/* Gauge cards (Monthly Burn, Fleet Health) and the hero row. */
.gauge-title{font-size:15px;font-weight:600;color:var(--txt);text-transform:none;letter-spacing:0}
.hero-row{gap:var(--ly-gap)!important}
/* Five equal cards: Fleet Health no longer takes a double column. */
@media(min-width:1360px){.hero-row{grid-template-columns:repeat(5,minmax(0,1fr))!important}}
/* 1101-1359 px (landscape tablets, small laptops): five across left ~200 px
   cards and cut the donut legends ("Disp…"); the cards take ~240 px each and
   Fleet Health its own row (tablet pass, 2026-10-09). */
@media(min-width:1101px) and (max-width:1359px){.hero-row{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important}.hero-row .gauge-card--primary{grid-column:1/-1}}
.hero-row > *:not(.gauge-card--primary),
.hero-row .gauge-card:not(.gauge-card--primary){
  border-radius:var(--ly-r-card);
  background:var(--bg2);
  background-image:var(--ly-surface-raise);
  border:1px solid var(--bdr);
  box-shadow:none;
}
.hero-row > .gauge-card:not(.gauge-card--primary),.hero-row > [class*="u-bg-bg2"]{padding:14px 14px}
.hero-row .gauge-card--primary{
  border:1px solid rgba(240,180,80,.30);
  border-top:2px solid var(--gold-hot);
  border-radius:var(--ly-r-card);
  background:radial-gradient(120% 90% at 50% 0%,rgba(214,165,74,.10),var(--bg2) 60%);
  box-shadow:0 18px 44px -24px rgba(0,0,0,.9);
  transform:none;
}
.burn-formula,.burn-incomplete-hint{font-family:var(--sans);font-size:12px;letter-spacing:0;line-height:1.45;color:var(--txt4)}
.burn-annual-l,.burn-fuel-l{font-size:13px;color:var(--txt3)}
.burn-annual-v,.burn-fuel-v{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:14px}
.burn-fuel-n{font-size:12px}
.ly-mlist{row-gap:9px}
/* The label holds its width and the bar gives way first: a shrinking label
   column cut "Productive" to "Produ..." in the five-up hero burn card. */
.ly-mrow-l{min-width:max-content}
/* In the five-up hero cards the row is ~115-150px: the figure column takes
   its own width and the bar gives way down to 12px, so label, bar and figure
   always fit. */
.hero-row .ly-mlist{grid-template-columns:auto minmax(12px,1fr) auto;column-gap:8px}
.ly-mrow-l{font-size:13px;color:var(--txt2)}
.ly-mrow-v{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:13px}
.ly-mrow-b{height:5px;border-radius:3px;background:rgba(148,163,184,.14)}

/* Donut component: centre readout and legend. */
.ly-donut{gap:16px}
.ly-donut-c b{font-family:var(--sans);font-size:26px;font-weight:600;letter-spacing:-.015em;font-variant-numeric:proportional-nums}
.ly-donut-c i{font-size:12px;font-weight:500;color:var(--txt3)}
.ly-donut-ring--empty::before{content:"";position:absolute;inset:5px;border-radius:50%;border:16px solid rgba(148,163,184,.12)}
.ly-dl{font-size:13px;row-gap:8px;column-gap:10px;grid-template-columns:10px auto minmax(16px,1fr) auto 40px}
.ly-dl-sw{width:10px!important;height:10px!important;border-radius:3px!important}
.ly-dl-lb{font-size:13px;color:var(--txt2)}
.ly-dl-v{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}
.ly-dl-p{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--txt3)}
.ly-dl-bar{height:4px!important;border-radius:2px!important;background:rgba(148,163,184,.14)!important}
/* In the five-up hero row a card is ~210px and the share bar has no room: the
   label ran into it. The percentage already carries the share, so the bar
   steps out there. (Not a container query: inline-size containment collapsed
   the shrink-to-fit legend wrappers on CEO/COO to zero width.) */
.hero-row .ly-dl{grid-template-columns:10px minmax(0,1fr) auto 38px;column-gap:6px}
.hero-row .ly-dl-bar{display:none!important}
.hero-row .ly-dl-lb{overflow:hidden;text-overflow:ellipsis}
.hero-row .ly-donut{width:100%}
/* Hero row: every card reads top-down, title first, and the ring sits in the
   remaining height, so five cards of different content share one top line. */
.hero-row > [class*="u-bg-bg2"]{justify-content:flex-start!important}
.hero-row > [class*="u-bg-bg2"] > .ly-card-title{margin-bottom:14px}
.hero-row > [class*="u-bg-bg2"] > .ly-donut{flex:1;justify-content:center}

/* ═══ v3 · TABLES ════════════════════════════════════════════════════════
   IBM Carbon's data-table proportions, which is the family this app is set
   in: sentence-case 13px semibold headers on a tinted band, 14px body, rows
   ~46px, hairline rules, a hover row. Identifiers in the sans at 13px, 600. */
table{font-size:14px}
th,.th-l,.th-c{
  font-family:var(--sans);font-size:13px;font-weight:600;line-height:1.3;
  letter-spacing:0!important;text-transform:none;color:var(--txt2);
  padding:10px 12px;background:rgba(148,163,184,.055);
  border-bottom:1px solid var(--bdr-2)!important;vertical-align:bottom;
}
thead th:first-child{border-top-right-radius:var(--ly-r-ctl)}
thead th:last-child{border-top-left-radius:var(--ly-r-ctl)}
td{font-size:14px;line-height:1.42;padding:7px 12px;color:var(--txt2);border-bottom:1px solid rgba(148,163,184,.09)}
.td-n,.td-d,.td-s,.td-m,.td-g,.td-c,.td-a,.td-b,.td-ac,.td-w,.td-wr{padding:7px 12px;font-size:14px}
.td-mono{padding:7px 12px;font-size:13px;letter-spacing:0}
.td-sub{font-size:13px;line-height:1.4;margin-top:1px}
.td-mo{font-size:13px}
.tc{font-size:14px}
tbody tr:nth-child(even) td{background:rgba(255,255,255,.012)}
tr:hover td{background:rgba(148,163,184,.07)!important}
.ly-asset-link{font-family:var(--sans);font-size:13px;font-weight:600;border-bottom-color:rgba(240,180,80,.35);white-space:nowrap}
/* Figures and asset IDs stay on one line. The half-width-card density below
   is the one place an ID may break at its hyphens. */
.td-mono,.td-n{white-space:nowrap}
/* A table in a half-width card (two-column grid) gets the compact density:
   seven columns at 14px with roomy padding outgrew a ~540px card at laptop
   widths. Full-width tables keep the reading density above. */
@media(min-width:769px){
  [class*="u-gtc-1fr_1fr"] table td,[class*="u-gtc-1fr_1fr"] table th,
  [class*="u-gtc-repeat_2_1fr"] table td,[class*="u-gtc-repeat_2_1fr"] table th{padding:8px 10px;font-size:13px}
  [class*="u-gtc-1fr_1fr"] table th,[class*="u-gtc-repeat_2_1fr"] table th{font-size:12px}
  [class*="u-gtc-1fr_1fr"] table .ly-asset-link,[class*="u-gtc-repeat_2_1fr"] table .ly-asset-link{font-size:12.5px}
  [class*="u-gtc-1fr_1fr"] table :is(.ly-asset-link,.td-mono),[class*="u-gtc-repeat_2_1fr"] table :is(.ly-asset-link,.td-mono){white-space:normal}
  /* A chip in a half-width table may wrap; its dot then sits on the first
     line, not the middle of the block. */
  [class*="u-gtc-1fr_1fr"] table :is(.tag,.tg,.tr,.ta,.tb,.tp),[class*="u-gtc-repeat_2_1fr"] table :is(.tag,.tg,.tr,.ta,.tb,.tp){white-space:normal;line-height:1.25;padding:3.5px 9px;align-items:flex-start;text-align:right}
  [class*="u-gtc-1fr_1fr"] table :is(.tag,.tg,.tr,.ta,.tb,.tp)::before,[class*="u-gtc-repeat_2_1fr"] table :is(.tag,.tg,.tr,.ta,.tb,.tp)::before{margin-top:4.5px}
}
/* Scroll boxes around tables were sized for the old 36px rows; at v3 row height
   280px showed two and a half rows and cut the third in half. */
.u-maxh-280.u-maxh-280.u-maxh-280{max-height:480px}

/* Action-table cells: the asset identifier over its description, so a row
   leads with what it is; the figure column sets the number large and the unit
   small; secondary flags are pills under the directive. */
.ly-cell-asset{padding:7px 12px;min-width:140px}
.ly-cell-id{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--gold-hot);white-space:nowrap}
.ly-cell-sub{font-size:13px;line-height:1.35;color:var(--txt3);margin-top:1px}
.ly-cell-asset .ly-cell-sub{color:var(--txt);font-weight:500;font-size:14px}
.ly-cell-num{white-space:nowrap}
.ly-days{font-family:var(--sans);font-size:17px;font-weight:600;line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.ly-days small{font-size:12px;font-weight:500;margin-right:4px;letter-spacing:0;opacity:.8}
.ly-days--crit{color:var(--crim-hot)}
.ly-days--warn{color:var(--gold-hot)}
.ly-cell-directive{font-size:13.5px;line-height:1.45;color:var(--txt2)}
.ly-cell-flags{display:inline-flex;flex-wrap:wrap;gap:6px;margin:0 8px 0 0;vertical-align:middle}
/* Tier A: the location wraps at ~220px so the directive gets the width and
   reads on one or two lines instead of three. */
#pmv-tierA-body .td-m{max-width:220px;width:220px}
.ly-col-directive{width:48%}
.ly-col-directive--b{width:38%}
#pmv-tierB-body td:nth-child(6){max-width:200px;width:200px}
#pmv-tierB-body td:nth-child(3){max-width:150px}
@media(min-width:1280px){.ly-stats--7{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(min-width:769px) and (max-width:1279px){.ly-stats--7{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ly-stats--7 .ly-stat-v{font-size:24px}

/* WATCH: the counts sit as a compact strip beside the explanation, instead of
   one number centred across the full card width. */
.ly-watch{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.ly-watch-stats{flex:0 1 auto;display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(150px,190px);margin:0}
.ly-watch-note{flex:1 1 320px;font-size:14px;line-height:1.6;color:var(--txt2)}

/* ═══ v3 · CHIPS & PILLS ═════════════════════════════════════════════════
   One chip: 24px tall, 12px semibold sans, 6px radius, tinted fill + matching
   hairline, a status dot. Action codes keep their CSS uppercase (lint rule)
   with tracking so they read as codes rather than shouting. */
.tag,.tg,.tr,.ta,.tb,.tp{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--sans);font-size:12px;font-weight:600;line-height:1;
  letter-spacing:.02em;padding:5px 9px;border-radius:var(--ly-r-chip);
  white-space:nowrap;box-shadow:none!important;vertical-align:middle;
}
.tag::before,.tg::before,.tr::before,.ta::before,.tb::before,.tp::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9;flex-shrink:0}
.tag--green,.tg{background:rgba(34,160,107,.14);color:#6FD39B;border:1px solid rgba(34,160,107,.36)}
.tag--red,.tr{background:rgba(229,72,77,.13);color:#F59AA2;border:1px solid rgba(229,72,77,.38)}
.tag--amber,.ta{background:rgba(207,155,40,.14);color:#F2C46C;border:1px solid rgba(207,155,40,.38)}
.tag--blue,.tb{background:rgba(57,135,229,.14);color:#8DBBF0;border:1px solid rgba(57,135,229,.38)}
.tag--purple,.tp{background:rgba(144,133,233,.15);color:#BDB4F5;border:1px solid rgba(144,133,233,.38)}

/* Generic action/status pill used across the decks and the queue. */
.ly-pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:var(--ly-r-chip);font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.01em;text-transform:none;white-space:nowrap;line-height:1;color:var(--pc,var(--txt2));background:color-mix(in srgb,var(--pc,#94A3B8) 13%,transparent);border:1px solid color-mix(in srgb,var(--pc,#94A3B8) 34%,transparent)}
.ly-pill i{font-style:normal;font-size:12px;line-height:1;opacity:.95}
.ly-pill--sentence{text-transform:none;letter-spacing:0}

/* ═══ v3 · CONTROLS ══════════════════════════════════════════════════════ */
.ly-btn{font-family:var(--sans);font-size:13.5px;font-weight:600;border-radius:var(--ly-r-ctl);min-height:36px;padding:0 16px}
input[type=text],input[type=search],input[type=number],select,textarea{border-radius:var(--ly-r-ctl);font-size:14px}

/* ═══ v3 · NAV ═══════════════════════════════════════════════════════════ */
.nav-row{background:rgba(9,15,27,.94);border-bottom:1px solid var(--bdr)}
.na{color:var(--txt3)}
/* COO carries eight deck links and overflowed at 1440 even before v3 (live:
   user chip clipped by 49px). Below 1600 the links and the logo panel give
   back the space instead of the chip being pushed off-screen. */
@media(max-width:1600px){.na{padding:0 9px}.logo-panel{width:252px;padding:0 18px 0 12px;gap:10px}}
.nav-tool{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:0;padding:6px 11px;border-radius:var(--ly-r-ctl)}
.nav-live{border-radius:var(--ly-r-ctl)}
.nav-live-txt span{font-size:13px}
#tf-trigger{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:0;border-radius:var(--ly-r-ctl)}
#tf-trigger .tf-role{font-size:13px;letter-spacing:0;font-weight:500}
.pol-link{border-radius:var(--ly-r-card);font-size:14px}
.pol-link-k{font-family:var(--sans);font-size:12px;letter-spacing:.01em;text-transform:none;font-weight:600}

/* ═══ v3 · SITUATION BRIEF ═══════════════════════════════════════════════ */
.intel-banner{border-radius:var(--ly-r-card);box-shadow:0 18px 50px -28px rgba(0,0,0,.95);background:var(--bg2);background-image:var(--ly-surface-raise)}
.intel-banner-head{padding:11px 24px}
.intel-label{font-size:13px;letter-spacing:.01em}
.intel-class-tag{font-family:var(--sans);font-size:12px;border-radius:var(--ly-r-chip)}
.intel-ai-ts{font-family:var(--sans);font-size:12.5px;letter-spacing:0}
.ly-seal-txt{font-family:var(--sans);font-size:11px;letter-spacing:.08em}
.ly-seal-txt b{font-size:11px;letter-spacing:0}
.intel-slbl{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.08em}
.intel-greet{font-size:15px}
.ev-toggle{font-family:var(--sans);font-size:13px;letter-spacing:0}
.ev-chip{font-family:var(--sans);font-size:12.5px}
.ev-k{font-size:11.5px}
.ly-handoff-lbl,.ly-handoff-deck{font-family:var(--sans);font-size:11.5px}
.ly-handoff-what{font-family:var(--sans);font-size:13px}
.ly-handoff-who{font-size:13px}
.intel-attr{font-size:13px}

/* ═══ v3 · MODALS / FOOTERS ═════════════════════════════════════════════ */
footer{font-size:13px}
.mh-h{font-family:var(--sans);font-size:12px;letter-spacing:.06em}
.mh-t{font-size:14px}

/* Charts: a canvas container never collapses below a readable plot. The chart
   layer sizes horizontal bars per category; this is the CSS floor for the
   rest. Doughnuts are excluded (fixed-size rings). */
.ly-chart{position:relative;min-height:240px}
.ly-chart--tall{min-height:320px}
.ly-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:12px;font-size:13px;color:var(--txt2)}
.ly-legend span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.ly-legend i{width:10px;height:10px;border-radius:3px;background:var(--c);flex-shrink:0}
/* Hand-built legend item: swatch in the painted colour, label in text ink
   (text never wears the series colour). Sits in the decks' existing flex rows. */
.ly-lg{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--txt2);white-space:nowrap}
.ly-lg i{display:inline-block;width:10px;height:10px;border-radius:3px;flex-shrink:0}
.ly-lg + .ly-lg{margin-right:6px}
.ly-spend-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}
.ly-spend-row .ly-lg{white-space:normal;min-width:0;line-height:1.3}
.ly-spend-row>span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.ly-chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--txt3);border:1px dashed rgba(148,163,184,.18);border-radius:var(--ly-r-ctl)}
*:not([class*="u-pos-"]) > .ly-chart-empty{position:static;min-height:120px}

/* ═══ v3 · LIVE BLOCK (surface/center.ts) ══════════════════════════════
   CENTER_CSS sits earlier in the sheet; these bring its type onto the system:
   sans labels at 12-13px instead of 10-11px mono, sans figures. */
.cx[data-lens]{border-radius:var(--ly-r-card);border-color:var(--bdr);background:var(--bg2);background-image:var(--ly-surface-raise)}
.cx-leg b{font-family:var(--sans);letter-spacing:-.02em;font-variant-numeric:proportional-nums}
.cx-leg span{font-size:12px;letter-spacing:.01em;color:var(--txt3)}
.cx-head .lbl{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.01em}
.cx-head .r{font-family:var(--sans);font-size:12.5px;letter-spacing:0}
.cx-head .conf{font-size:11.5px;letter-spacing:.06em;border-radius:var(--ly-r-chip)}
.cx-vw b,.cx-verdict{font-family:var(--sans)}
.cx-verdict{font-size:28px;letter-spacing:-.015em}
.cx-rest{font-size:15px;color:var(--txt3)}
.cx-meta{font-family:var(--sans);font-size:12.5px;color:var(--txt4)}
.cx-chip{font-family:var(--sans);font-size:12.5px;font-weight:500;border-radius:var(--ly-r-chip);padding:5px 10px;color:var(--txt3);border-color:var(--bdr-2)}
.cx-chip.bad{color:#F59AA2;border-color:rgba(229,72,77,.38);background:rgba(229,72,77,.10)}
.cx-chip.good{color:#6FD39B;border-color:rgba(34,160,107,.36);background:rgba(34,160,107,.10)}
.cx-node i{background:var(--bg2)}
.cx-node b{font-family:var(--sans);font-size:20px}
.cx-node span{font-size:12px;letter-spacing:.01em}
.cx-node em{font-size:12px;color:var(--txt4)}
.cx-kept{font-size:14px;border-radius:var(--ly-r-ctl)}
.cx-kept b,.cx-vow b,.cx-num b{font-family:var(--sans)}
.cx-kept i,.cx-vow i{font-size:12.5px}
.cx-vow{font-size:13.5px}
.cx-hd h2{font-family:var(--sans);font-size:13px;letter-spacing:.01em}
.cx-card{border-radius:var(--ly-r-card);background:var(--bg2)}
.cx-eyebrow{font-family:var(--sans);font-size:12px;letter-spacing:.01em}
.cx-asset small{font-size:13px}
.cx-dir{font-size:13.5px}
.cx-num b small{font-family:var(--sans);font-size:12px}
.cx-num span{font-family:var(--sans);font-size:12.5px}
.cx-btns button,.cx-btns a,.cx-form .go{font-family:var(--sans);font-size:13px}
.cx-form select,.cx-form input{font-family:var(--sans);font-size:13px;background:var(--bg5)}
.cx-form .cancel,.cx-err{font-size:12.5px}

/* ═══ v3 · GOVERNANCE BLOCK (core/govern.ts; CEO, COO, PMV) ════════════ */
.gv-h{font-size:13px;font-weight:600;color:var(--txt3);margin:4px 0 10px}
.gv-trs{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:var(--ly-gap)}
.gv-tr{background:var(--bg2);background-image:var(--ly-surface-raise);border:1px solid var(--bdr);border-radius:var(--ly-r-card);padding:14px 16px}
.gv-tr-l{font-size:13px;font-weight:500;color:var(--txt3)}
.gv-tr-row{display:flex;align-items:baseline;gap:10px;margin-top:6px;flex-wrap:wrap}
.gv-tr-v{font-size:20px;font-weight:600;color:var(--txt);letter-spacing:-.01em}
.gv-tr-d{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.gv-tr-eta{font-size:12.5px;color:var(--gold-hot);margin-top:6px}
.gv-tr-eta--dim{color:var(--txt4)}
.gv-syn{margin-bottom:var(--ly-gap);border-right:3px solid var(--gold-hot)!important}
.gv-syn-h{font-size:14px;font-weight:600;color:var(--txt);margin-bottom:10px}
.gv-syn-h span{font-weight:400;color:var(--txt4)}
.gv-syn-i{display:flex;gap:10px;font-size:14px;line-height:1.55;color:var(--txt2);margin:7px 0}
.gv-syn-x{color:var(--crim-hot);font-weight:700;flex-shrink:0}
.gv-syn-ok{color:var(--good);font-weight:700;flex-shrink:0}
.gv-syn-d{font-size:14px;font-weight:600;line-height:1.6;color:var(--gold-hot);margin-top:12px;padding-top:12px;border-top:1px solid var(--bdr)}
.gv-reg{padding:18px 20px}
.gv-num{text-align:left!important;white-space:nowrap;font-weight:600;font-variant-numeric:tabular-nums}
.gv-num--sar{color:var(--gold-hot)}
.gv-wo{font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--gold-hot);background:rgba(240,180,80,.10);border:1px solid rgba(240,180,80,.40);border-radius:var(--ly-r-chip);padding:5px 10px;cursor:pointer;white-space:nowrap}
.gv-wo:hover{background:rgba(240,180,80,.18)}
.gv-dq{margin-top:12px;font-size:13px;line-height:1.6;color:var(--txt3)}
.gv-dq-n{color:var(--gold-hot);font-weight:700}
.gv-dq a{color:var(--info);text-decoration:none;border-bottom:1px dotted var(--info)}
.gv-empty{font-size:14px;color:var(--txt3)}
.gv-empty--ok{color:var(--good)}
.gv-link{display:block;font-size:14px;font-weight:600;color:var(--gold-hot);text-decoration:none}
.gv-link:hover{border-color:rgba(240,180,80,.4)}

/* ═══ v3 · PLANNING STUDIO (/plan) ═════════════════════════════════════
   82% of this page's text measured under 13px. Same floor as the decks. */
.ps-tab b{font-family:var(--sans);font-size:12px}
.ps-kpi .s,.ps-lbl,.ps-note,.ps-leg,.ps-tip{font-size:13px}
.ps-in,.ps-wrap .ps-in{font-family:var(--sans);font-size:14px}
@media(max-width:640px){.ps-in,.ps-wrap .ps-in{font-size:16px;min-height:44px}}
.ps-tbl th{font-size:13px;color:var(--txt2)}
.ps-pill{font-size:12px;padding:3px 9px;border-radius:var(--ly-r-chip)}
.ps-meter .nm{font-size:14px}
.ps-meter .id{font-size:12px}
.ps-meter .ft{font-size:13px;line-height:1.45}
.ps-meter text{font-family:var(--sans)!important}
.ps-wx{font-size:13px}
.ps-wx .h,.ps-wx .c .p,.ps-mon .t span,.ps-step span{font-family:var(--sans)}
.ps-wx .h{font-size:12px}
.ps-wx .site small{font-size:12.5px}
.ps-wx .c .p{font-size:12.5px}
.ps-wx .c .sv{font-family:var(--sans);font-size:11.5px}
.ps-mon .t span{font-size:12.5px}
.ps-day{font-family:var(--sans);font-size:11px}
.ps-step span{font-size:13px}
.ps-svg text{font-family:var(--sans);font-size:12px}

/* ═══ v3 · PHONE & TABLET ═════════════════════════════════════════════
   The desktop scale above is unscoped and comes after the base layer's own
   phone rules, so it would override them. The phone sizes are restated here,
   after it. */
@media(max-width:768px){
  .sec-h{gap:10px;margin-bottom:16px;align-items:flex-start}
  /* A slimmer chip gives the title back its width; top-aligned with the
     first line when the title wraps. */
  .sec-n{align-self:flex-start;padding:3px 3px;letter-spacing:0;font-size:12px}
  /* Phone titles keep the base layer's condensed face: the wider sans wrapped
     twice as many headers at 360px. */
  .sec-t{font-size:16px;line-height:1.15;font-family:var(--disp);letter-spacing:.01em}
  .pg>.st{font-size:17px}
  /* The base phone rule forces a five-column legend grid with !important;
     with the share bar hidden in the hero row, four columns keep each row
     aligned (601-768px, where PHONE_CSS does not restore it). */
  .hero-row .ly-dl{grid-template-columns:10px minmax(0,1fr) auto 38px!important}
  .ly-watch-stats{flex:1 1 100%;grid-auto-flow:row;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
}
@media(max-width:760px){.cx-verdict{font-size:22px}}
@media(max-width:600px){
  .ly-mrow-l{font-size:12px}
  .hero-row > .gauge-card:not(.gauge-card--primary),.hero-row > [class*="u-bg-bg2"]{padding:16px 12px}
}
/* Print keeps the page surface. */
@media print{html,body{background:var(--bg)!important}}

/* ── Field Capture (2026-10-01) ── */
/* The approval inbox (/field/proposals, on the pp-page shell) and the
   data-debt counter on Field Operations (src/field/burnCard.ts). */
.fi-burn{display:flex;flex-direction:column;gap:12px}
.fi-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.fi-tile{background:#171B22;border:1px solid #262B36;border-radius:12px;padding:12px 14px}
.fi-tile b{display:block;font:700 26px var(--sans);color:#F7F4EE;line-height:1.1}
.fi-tile span{display:block;margin-top:4px;font-size:13px;color:#A9AFB9}
.fi-cov{background:#171B22;border:1px solid #262B36;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.fi-covt{font-size:13px;font-weight:600;color:#D9DCE2}
.fi-covr{display:grid;grid-template-columns:minmax(150px,240px) minmax(0,1fr) auto;align-items:center;gap:12px;font-size:13px;color:#D9DCE2}
.fi-covb{position:relative;height:10px;border-radius:5px;background:#262B36;overflow:hidden;display:flex}
.fi-covb i{display:block;height:100%}
.fi-now{background:#5BCE81}
.fi-lift{background:repeating-linear-gradient(-135deg,#F0B450 0 6px,#A47C2E 6px 12px)}
.fi-covn{font-variant-numeric:tabular-nums;color:#A9AFB9;white-space:nowrap}
.fi-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fi-all{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#D9DCE2;cursor:pointer;min-height:40px}
.fi-all input,.fi-cb input{width:20px;height:20px;accent-color:#F0B450;cursor:pointer}
.fi-acts{display:flex;gap:8px;flex-wrap:wrap}
.fi-table td.fi-cb{width:36px}
.fi-table td.fi-new{color:#F7F4EE;font-weight:600}
.fi-table tbody tr{cursor:default}
.fi-badge{display:inline-block;margin-right:8px;padding:1px 8px;border-radius:10px;font-size:12px;font-weight:600}
.fi-badge.ok{background:rgba(91,206,129,.16);color:#7CE8AE}
.fi-badge.bad{background:rgba(246,179,189,.16);color:#F6B3BD}
.fi-warn{color:#F6B3BD!important}
.fi-ph{margin-right:8px;font-size:12.5px;font-weight:600}
.fi-empty{padding:14px 16px;margin:0}
.fi-prev[hidden]{display:none}
.fi-fo{margin:6px 0 4px}
.fi-foh{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.fi-foh h3{margin:0;font-size:14px;font-weight:600;color:inherit}
.fi-fo .fi-cov{background:var(--bg2);border-color:var(--bdr);margin-bottom:14px}
@media(max-width:760px){
  .fi-covr{grid-template-columns:1fr auto;row-gap:4px}
  .fi-covr .fi-covb{grid-column:1 / -1;grid-row:2}
  .fi-acts{width:100%}.fi-acts .pp-btn{flex:1 1 auto}
  .pp-table.se-table.fi-table tbody td.fi-cb{justify-content:flex-start!important}
}

/* ── Today (2026-10-01) ── */
.tdy-page{padding-bottom:40px;font-size:15px;line-height:1.5}
.tdy-page a{text-decoration:none}
.tdy-top{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;height:58px;padding:0 28px;
  background:rgba(11,18,32,.97);border-bottom:1px solid var(--bdr)}
.tdy-brand{display:flex;align-items:center;gap:10px;color:var(--txt)}
.tdy-mark{width:22px;height:22px;flex:none}
.tdy-wm{font-weight:600;font-size:13px;letter-spacing:.01em;text-transform:none;color:var(--gold-hot);line-height:1.15}
.tdy-wm small{display:block;font-weight:400;font-size:13px;letter-spacing:.01em;text-transform:none;color:var(--txt4)}
.tdy-nav{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}
.tdy-nav::-webkit-scrollbar{display:none}
.tdy-nav a{flex:none;padding:7px 12px;border-radius:8px;font-size:13px;color:var(--txt3);transition:background .12s,color .12s}
.tdy-nav a:hover{background:var(--bg3);color:var(--txt)}
.tdy-short{display:none}
.tdy-nav a.on{color:var(--gold-hot);background:var(--gold-l);box-shadow:inset 0 0 0 1px var(--gold-a25)}
.tdy-who{display:flex;align-items:center;gap:16px}
.tdy-id{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.tdy-id b{font-weight:500;font-size:13px}
.tdy-id span{font-size:13px;color:var(--txt4)}
.tdy-who a{font-size:13px;color:var(--txt3);padding:6px 10px;border-radius:8px}
.tdy-who a:hover{background:var(--bg3);color:var(--txt)}

.tdy-wrap{max-width:1320px;margin:0 auto;padding:30px 32px 24px}
.tdy-hero{margin-bottom:28px}
.tdy-date{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--txt4)}
.tdy-greet{margin:8px 0 0;font-size:28px;font-weight:600;letter-spacing:-.015em;line-height:1.15;color:var(--txt)}
.tdy-sentence{margin:10px 0 0;max-width:78ch;font-size:18px;line-height:1.55;color:var(--txt2)}
.tdy-scope{margin:10px 0 0;font-size:13px;color:var(--info)}
.tdy-pulse{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}
.tdy-kpi{position:relative;display:flex;flex-direction:column;gap:4px;padding:16px 18px 15px;border:1px solid var(--bdr);border-radius:14px;
  background:linear-gradient(-180deg,rgba(255,255,255,.025),rgba(255,255,255,0)),var(--bg2);overflow:hidden}
.tdy-kpi::before{content:"";position:absolute;right:0;top:0;left:0;height:2px;background:var(--k,var(--gold-hot));opacity:.8}
.tdy-kpi--burn{--k:var(--gold-hot)}.tdy-kpi--risk{--k:var(--crim)}.tdy-kpi--health{--k:var(--good)}.tdy-kpi--dq{--k:var(--info)}
.tdy-kl{font-size:13px;font-weight:500;letter-spacing:.01em;text-transform:none;color:var(--txt4)}
.tdy-kvr{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.tdy-kspark{width:96px;height:28px;flex:none;overflow:visible;margin-bottom:4px}
.tdy-kspark polyline{fill:none;stroke:var(--txt4);stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.tdy-kspark circle{fill:var(--txt3)}
.tdy-kspark--good circle{fill:var(--good)}.tdy-kspark--bad circle{fill:var(--crim-hot)}
.tdy-kv{font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--txt);font-variant-numeric:tabular-nums}
.tdy-kv small{font-size:15px;font-weight:500;color:var(--txt4);letter-spacing:0}
.tdy-d{font-size:13px;font-weight:500;color:var(--txt3)}
.tdy-d--good{color:var(--good)}.tdy-d--bad{color:var(--crim-hot)}.tdy-d--gap{color:var(--txt4);font-style:italic;font-weight:400}
.tdy-ks{font-size:13px;line-height:1.4;color:var(--txt4)}

.tdy-cols{display:grid;grid-template-columns:minmax(0,1fr) 392px;gap:28px;align-items:start}
.tdy-sec{margin-bottom:34px}
.tdy-sech{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:14px}
.tdy-h2{margin:0;font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--txt)}
.tdy-card .tdy-h2{font-size:18px}
.tdy-h3{margin:22px 0 10px;font-size:15px;font-weight:600;color:var(--txt3)}
.tdy-cards--fyi .tdy-item{background:var(--bg5)}
.tdy-sub2{flex-basis:100%;margin:2px 0 0;font-size:13px;line-height:1.5;color:var(--txt3);max-width:80ch}
.tdy-left{font-size:13px;font-weight:600;color:var(--gold-hot);padding:3px 10px;border-radius:12px;background:var(--gold-l)}
.tdy-left:empty{display:none}
.tdy-quiet{margin:6px 0 0;font-size:15px;color:var(--txt3)}
.tdy-note{margin:10px 0 0;font-size:13px;color:var(--txt4)}
.tdy-fine{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--txt4)}
.tdy-lnk{color:var(--gold-hot);font-size:13px;border-bottom:1px solid var(--gold-a35)}
.tdy-lnk:hover{border-bottom-color:var(--gold-hot)}

.tdy-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tdy-item{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:4px 16px;padding:16px 16px 16px 20px;
  border:1px solid var(--bdr);border-radius:14px;background:var(--bg2);transition:border-color .15s,opacity .2s}
.tdy-item::before{content:"";position:absolute;right:0;top:14px;bottom:14px;width:3px;border-radius:3px 0 0 3px;background:var(--acc,var(--gold-hot))}
.tdy-item--risk{--acc:var(--crim)}.tdy-item--value{--acc:var(--gold-hot)}.tdy-item--rec{--acc:var(--info)}.tdy-item--watch{--acc:var(--txt4)}
.tdy-item:hover{border-color:var(--bdr-2)}
.tdy-rank{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--txt3);font-variant-numeric:tabular-nums;
  border:1px solid var(--bdr-2);margin-top:1px}
.tdy-rank--rec{color:var(--info);border-color:var(--sky-a20)}
.tdy-body{min-width:0}
.tdy-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.tdy-ty{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.01em;text-transform:none;padding:3px 8px;border-radius:6px;
  color:var(--c,var(--txt2));background:color-mix(in srgb,var(--c,#fff) 12%,transparent);border:1px solid color-mix(in srgb,var(--c,#fff) 30%,transparent)}
.tdy-ty--RENEW{--c:#F2C46D}.tdy-ty--SERVICE{--c:var(--good)}.tdy-ty--SWAP,.tdy-ty--EXIT_LEASE{--c:var(--info)}.tdy-ty--TERMINATE{--c:var(--crim-hot)}
.tdy-ty--DISPOSE,.tdy-ty--REPLACE,.tdy-ty--CONVERT{--c:var(--gold-hot)}.tdy-ty--INVESTIGATE{--c:#A9B4C6}
.tdy-item--rec .tdy-ty{--c:var(--info)}
.tdy-an{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--gold-hi)}
.tdy-an:hover{text-decoration:underline}
.tdy-what{margin-top:6px;font-size:13px;color:var(--txt3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tdy-why{margin:6px 0 0;font-size:15px;line-height:1.5;color:var(--txt2)}
.tdy-meta{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:9px;font-size:13px;color:var(--txt4)}
.tdy-meta b{font-weight:500;color:var(--txt2)}
.tdy-meta b.tdy-hot{color:var(--crim-hot)}
.tdy-sar{text-align:left;white-space:nowrap}
.tdy-sar b{display:block;font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--txt);font-variant-numeric:tabular-nums}
.tdy-sar small{display:block;font-size:13px;color:var(--txt4)}
.tdy-sar--gap b{color:var(--txt4)}
.tdy-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:13px}
.tdy-b{height:36px;padding:0 15px;border-radius:9px;border:1px solid var(--bdr-2);background:transparent;color:var(--txt);font:500 13px var(--sans);cursor:pointer;
  transition:background .12s,border-color .12s}
.tdy-b:hover{background:var(--bg3);border-color:rgba(255,255,255,.26)}
.tdy-b--pri{background:var(--gold-hot);border-color:var(--gold-hot);color:#1A1206;font-weight:600}
.tdy-b--pri:hover{background:var(--gold-bright);border-color:var(--gold-bright)}
.tdy-acts .tdy-lnk{margin-right:6px}
.tdy-rs{margin-top:10px;padding:12px 14px;border-radius:11px;background:var(--bg3);border:1px solid var(--bdr)}
.tdy-rs[hidden]{display:none}
.tdy-rq{margin:0 0 8px;font-size:13px;color:var(--txt3)}
.tdy-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
.tdy-chips .tdy-rq{margin:0 0 0 4px}
.tdy-b.is-open{border-color:var(--gold-hot);background:var(--bg3)}
.tdy-chip{height:40px;padding:0 13px;border-radius:17px;border:1px solid var(--bdr-2);background:var(--bg2);color:var(--txt2);font:500 13px var(--sans);cursor:pointer}
.tdy-chip:hover{border-color:var(--gold-a50);color:var(--txt)}
.tdy-chip.on{border-color:var(--gold-hot);color:var(--gold-hot);background:var(--gold-l)}
.tdy-chip--go{background:var(--gold-hot);border-color:var(--gold-hot);color:#1A1206;font-weight:600}
.tdy-chip:disabled,.tdy-b:disabled{opacity:.55;cursor:default}
.tdy-chip.busy{opacity:.8}
.tdy-in{width:100%;height:36px;padding:0 11px;border-radius:8px;border:1px solid var(--bdr-2);background:var(--bg);color:var(--txt);font:15px var(--sans);outline:0}
.tdy-in:focus{border-color:var(--gold-a60)}
.tdy-err{margin:8px 0 0;font-size:13px;color:var(--crim-hot)}
.tdy-err[hidden]{display:none}
.tdy-done-l{margin-top:12px;font-size:13px;font-weight:500;color:var(--good)}
.tdy-done-l::first-letter{text-transform:none}
.tdy-item.is-done{opacity:.78}
.tdy-item.is-done::before{background:var(--good)}
.tdy-item.is-done .tdy-rank{color:var(--good);border-color:rgba(91,206,129,.45);background:var(--emer-d)}
.tdy-more{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:14px 18px;border:1px dashed var(--bdr-2);border-radius:14px;
  font-size:13px;color:var(--txt3);transition:border-color .12s,color .12s}
.tdy-more b{color:var(--txt);font-weight:600}
.tdy-more span:last-child{color:var(--gold-hot);white-space:nowrap}
.tdy-more:hover{border-color:var(--gold-a50);color:var(--txt2)}
.tdy-record .tdy-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tdy-item--rec{grid-template-columns:minmax(0,1fr);padding:14px 18px 14px 16px}
.tdy-item--rec .tdy-rank{display:none}
.tdy-item--rec .tdy-why{font-size:13px;color:var(--txt3)}
.tdy-item--rec .tdy-acts{margin-top:10px}
.tdy-item--rec .tdy-b{height:40px;padding:0 12px;font-size:13px}
.tdy-rcs{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 12px}
.tdy-rc{font-size:13px;color:var(--txt3);padding:4px 10px;border-radius:14px;border:1px solid var(--sky-a20);background:var(--sky-a07)}
.tdy-rc b{color:var(--info);font-weight:600}

.tdy-side{display:flex;flex-direction:column;gap:16px}
.tdy-card{padding:18px 20px;border:1px solid var(--bdr);border-radius:16px;background:var(--bg2)}
.tdy-card .tdy-sub2{margin:4px 0 10px}
.tdy-mom{background:linear-gradient(-160deg,rgba(240,180,80,.08),rgba(240,180,80,0) 55%),var(--bg2);border-color:var(--gold-a25)}
.tdy-mom-top{display:flex;align-items:flex-end;gap:12px;margin-top:10px}
.tdy-big{font-size:40px;font-weight:600;line-height:.95;letter-spacing:-.03em;color:var(--gold-hot);font-variant-numeric:tabular-nums}
.tdy-mom-top span{font-size:13px;line-height:1.35;color:var(--txt2)}
.tdy-mom-top em{font-style:normal;color:var(--txt4);font-size:13px}
.tdy-nudge{margin:10px 0 0;font-size:13px;color:var(--gold-hi)}
.tdy-prog{height:8px;margin-top:14px;border-radius:4px;background:var(--bg-track);overflow:hidden}
.tdy-prog i{display:block;height:100%;min-width:4px;border-radius:4px;background:linear-gradient(-90deg,var(--gold),var(--gold-hot));transition:width .4s ease}
.tdy-stats{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:10px;font-size:13px;color:var(--txt3)}
.tdy-stats b{color:var(--txt);font-weight:600}
.tdy-sparkh{display:flex;justify-content:space-between;margin-top:14px;font-size:13px;color:var(--txt4)}
.tdy-spark{display:block;width:100%;height:30px;margin-top:4px}
.tdy-bar{fill:var(--gold-hot)}.tdy-bar0{fill:rgba(255,255,255,.09)}
.tdy-bank{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--emer-d);border:1px solid rgba(91,206,129,.22)}
.tdy-bank b{display:block;margin-top:2px;font-size:28px;font-weight:600;letter-spacing:-.015em;color:var(--good);font-variant-numeric:tabular-nums}
.tdy-bank small{display:block;font-size:13px;color:var(--txt3)}
.tdy-kv2{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;margin:12px 0 0;font-size:13px}
.tdy-kv2 dt{color:var(--txt3)}
.tdy-kv2 dd{margin:0;text-align:left;color:var(--txt);font-weight:500;font-variant-numeric:tabular-nums}
.tdy-cl{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.tdy-cg{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:baseline}
.tdy-cgn{font-family:var(--sans);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;text-align:left;color:var(--txt2)}
.tdy-cg--bad .tdy-cgn{color:var(--crim-hot)}.tdy-cg--good .tdy-cgn{color:var(--good)}.tdy-cg--info .tdy-cgn{color:var(--info)}
.tdy-cgl{font-size:13px;color:var(--txt2)}
.tdy-ids{display:block;margin-top:2px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--txt4)}
.tdy-ids a{display:inline-block;white-space:nowrap;color:var(--gold-hi);margin-left:8px}
.tdy-moves{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--bdr)}
.tdy-moves .tdy-kl{flex-basis:100%;margin-bottom:2px}
.tdy-mv{font-size:13px;color:var(--txt3);padding:4px 9px;border-radius:7px;border:1px solid var(--bdr-2)}
.tdy-mv b{color:var(--txt);font-weight:600}
.tdy-mv--bad{border-color:rgba(243,134,149,.4)}.tdy-mv--good{border-color:rgba(91,206,129,.4)}
.tdy-due{margin:12px 0 0;font-size:13px;color:var(--txt2)}
.tdy-due b{color:var(--gold-hot)}
.tdy-debt-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.tdy-debt-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:15px;color:var(--txt)}
.tdy-debt-h b{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.tdy-debt-h small{font-weight:400;color:var(--txt4);font-size:13px}
.tdy-meter{height:5px;margin-top:6px;border-radius:3px;background:var(--bg-track);overflow:hidden}
.tdy-meter i{display:block;height:100%;border-radius:3px;background:var(--info);opacity:.75}
.tdy-debt-u{margin:6px 0 0;font-size:13px;line-height:1.45;color:var(--txt2)}
.tdy-debt-u em{font-style:normal;color:var(--info)}
.tdy-debt-t{margin:3px 0 0;font-size:13px;color:var(--txt4)}
.tdy-debt .tdy-lnk{display:inline-block;margin-top:14px;font-size:13px}

.tdy-glance{margin-top:6px}
.tdy-gwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--bdr);border-radius:16px;background:var(--bg2)}
.tdy-grid{min-width:880px;padding:6px 8px 8px}
.tdy-grow{display:grid;gap:6px;align-items:stretch;padding:5px 4px}
.tdy-grow--h{padding-bottom:3px;border-bottom:1px solid var(--bdr)}
.tdy-gh{font-size:13px;font-weight:500;letter-spacing:.01em;text-transform:none;color:var(--txt4);padding:6px 6px 4px;line-height:1.25}
.tdy-gh--t{text-align:left}
.tdy-gk{display:flex;flex-direction:column;justify-content:center;padding:4px 6px;min-width:0}
.tdy-gk b{font-size:15px;font-weight:600;color:var(--txt)}
.tdy-gk small{font-size:13px;color:var(--txt4)}
.tdy-grow--h .tdy-gk{font-size:13px;letter-spacing:.01em;text-transform:none;color:var(--txt4)}
.tdy-gc{display:flex;flex-direction:column;justify-content:center;padding:7px 9px;border-radius:8px;background:rgba(240,180,80,calc(var(--h,0) * .36));min-width:0}
.tdy-gc b{font-family:var(--sans);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--txt)}
.tdy-gc small{font-size:13px;color:var(--txt2)}
.tdy-gc--0{color:var(--txt4);background:rgba(255,255,255,.02);align-items:center}
.tdy-gc--t{background:transparent;text-align:left;align-items:flex-end}
.tdy-x{font-style:normal;font-weight:700;color:#FFB3BE}
.tdy-ga{border-top:1px solid rgba(255,255,255,.04)}
.tdy-ga>summary{list-style:none;cursor:pointer;border-radius:10px}
.tdy-ga>summary::-webkit-details-marker{display:none}
.tdy-ga>summary:hover{background:rgba(255,255,255,.025)}
.tdy-ga>summary .tdy-gk b::after{content:" \203A";color:var(--txt4);font-weight:400}
.tdy-ga[open]>summary .tdy-gk b::after{content:" \2039";color:var(--gold-hot)}
.tdy-sites{list-style:none;margin:0 0 8px;padding:6px 18px 10px 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px 18px}
.tdy-sites li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;padding:7px 10px;border-radius:8px;background:rgba(255,255,255,.025)}
.tdy-sites span{font-size:13px;color:var(--txt2);min-width:0;overflow-wrap:anywhere} /* full name, wraps (2026-10-08) */
.tdy-sites b{font-family:var(--sans);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--txt)}
.tdy-sites small{grid-column:1/-1;font-size:13px;color:var(--txt4)}
.tdy-foot{display:block;margin-top:30px;padding:16px 0 0;border-top:1px solid var(--bdr);font-size:13px;line-height:1.6;letter-spacing:0;color:var(--txt4);max-width:100ch}
.tdy-toast{position:fixed;right:50%;bottom:24px;transform:translateX(50%);z-index:60;padding:10px 16px;border-radius:10px;background:var(--bg4);border:1px solid var(--bdr-2);
  color:var(--txt);font-size:13px;opacity:0;pointer-events:none;transition:opacity .18s}
.tdy-toast.on{opacity:1}

/* Command Center door and deck-nav entry */
.cc-today{display:flex;align-items:center;gap:16px;margin:0 0 10px;padding:9px 18px;border-radius:14px;border:1px solid var(--gold-a35);text-decoration:none;
  background:linear-gradient(-100deg,rgba(240,180,80,.13),rgba(240,180,80,.03) 60%),var(--bg2);color:var(--txt);transition:border-color .15s,background .15s}
.cc-today:hover{border-color:var(--gold-hot)}
.cc-today-k{flex:none;font-size:13px;font-weight:600;letter-spacing:.01em;text-transform:none;color:#1A1206;background:var(--gold-hot);padding:4px 10px;border-radius:6px}
.cc-today-t{display:flex;flex-direction:column;min-width:0}
.cc-today *{text-decoration:none}
.cc-today-t b{font-size:15px;font-weight:600;color:var(--txt);line-height:1.3}
.cc-today-t span{font-size:13px;color:var(--txt3);line-height:1.35}
.cc-today-go{margin-right:auto;flex:none;color:var(--gold-hot);font-size:15px;font-weight:500;white-space:nowrap}
.na.na-today,.na.na-today-t{color:var(--gold-hot)}
/* COO and Site Manager rows are at their one-row width budget at desktop
   widths (measured 2026-10-01: the link wraps them to two rows at 1440), so
   there the link shows only where the nav already wraps (phone). */
@media(min-width:761px){.na.na-today-t{display:none}}

@media(max-width:1100px){
  .tdy-cols{grid-template-columns:minmax(0,1fr) 340px;gap:20px}
  .tdy-pulse{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1100px){
  .tdy-record .tdy-cards{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:760px){
  /* Phone width (2026-10-16, Taher: "do Today too"): an 8 px gutter like the decks, a
     shorter two-row header and a tighter hero, so the first figures sit higher. */
  .tdy-top{grid-template-columns:1fr auto;grid-template-rows:46px 40px;height:auto;gap:0 10px;padding:0 8px}
  .tdy-nav{grid-column:1/-1;grid-row:2;align-self:center;margin:0 -4px}
  .tdy-id{display:none}
  .tdy-wrap{padding:12px 8px 20px}
  .tdy-hero{margin-bottom:20px}
  .tdy-greet{margin-top:4px;font-size:22px}
  .tdy-sentence{margin-top:6px;font-size:15px;line-height:1.5}
  .tdy-pulse{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
  .tdy-kpi{padding:12px 12px}
  .tdy-kv{font-size:22px}
  .tdy-ks{display:none}
  .tdy-kspark{display:none}
  .tdy-cols{display:flex;flex-direction:column;gap:0}
  .tdy-main,.tdy-side{display:contents}
  .tdy-seven{order:1}.tdy-mom{order:2}.tdy-chg{order:3}.tdy-record{order:4}.tdy-debt{order:5}
  .tdy-card{margin-bottom:18px}
  .tdy-sec{margin-bottom:26px}
  .tdy-item{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"h sar" "what what" "why why" "meta meta" "acts acts" "rs rs" "done done" "note note";
    gap:2px 10px;padding:14px 16px 14px 14px}
  .tdy-body{display:contents}
  .tdy-rank{display:none}
  .tdy-h{grid-area:h}.tdy-sar{grid-area:sar}.tdy-what{grid-area:what}.tdy-why{grid-area:why}.tdy-meta{grid-area:meta}
  .tdy-acts{grid-area:acts}.tdy-rs{grid-area:rs}.tdy-done-l{grid-area:done}.tdy-note{grid-area:note}
  .tdy-sar b{font-size:18px}
  .tdy-what{white-space:normal}
  .tdy-b{flex:1 1 0;height:44px;min-width:0;padding:0 8px}
  .tdy-acts .tdy-lnk{flex-basis:100%;margin:4px 0 0;text-align:center;border-bottom:0;padding:6px 0}
  .tdy-chip{height:44px}
  .tdy-in{height:42px;font-size:18px}
  .tdy-more{flex-direction:column;align-items:flex-start}
  .tdy-long{display:none}
  .tdy-short{display:inline}
  .tdy-grid{min-width:0}
  .tdy-grow{grid-template-columns:minmax(0,1fr) auto!important}
  .tdy-grow>.tdy-gc:not(.tdy-gc--t),.tdy-grow>.tdy-gh:not(.tdy-gh--t){display:none}
  .tdy-gwrap{overflow-x:visible}
  .cc-today{flex-wrap:wrap;gap:8px 12px;padding:12px 14px}
  .cc-today-go{margin-right:0}
}

/* ── Site (2026-10-01) ── */
/* Scope strip: whose projects this page shows, and the asset quick-open. Same
   shape as the Asset Director's Decision Queue strip (.qlx). */
.site-scope{display:flex;align-items:center;gap:16px 20px;flex-wrap:wrap;position:relative;overflow:hidden;
  background:linear-gradient(-90deg,rgba(240,180,80,.11),rgba(240,180,80,.03) 55%,rgba(14,18,25,.7));
  border:1px solid var(--gold-a35);border-radius:12px;padding:12px 20px 12px 16px;margin-bottom:12px}
.site-scope::before{content:"";position:absolute;right:0;top:0;bottom:0;width:3px;background:var(--gold-hot)}
.site-scope-id{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1 1 320px}
.site-scope-k{font-family:var(--sans);font-size:var(--fs-1,12px);font-weight:600;color:var(--gold-hot);white-space:nowrap}
.site-scope-t{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:var(--fs-3,15px);color:var(--ink,var(--txt));line-height:1.35}
.site-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bdr-2);background:rgba(255,255,255,.04);
  border-radius:999px;padding:3px 11px;font-size:var(--fs-2,13px);font-weight:600;color:var(--ink,var(--txt));max-width:100%;overflow-wrap:anywhere}
.site-chip b{font-family:var(--sans);font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--fs-1,12px);color:var(--ink-muted,var(--txt3))}
.site-scope-n{font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3))}
.site-open{display:flex;gap:8px;align-items:center;flex:1 1 380px;min-width:0}
.site-open input{flex:1 1 auto;min-width:0;background:var(--bg);color:var(--ink,var(--txt));border:1px solid var(--bdr-2);border-radius:10px;
  padding:0 13px;min-height:44px;font-family:var(--sans);font-size:var(--fs-3,15px)}
.site-open input:focus{outline:none;border-color:var(--gold-a50)}
.site-open input::placeholder{color:var(--txt4)}
.site-open button,.site-open a{min-height:44px;border-radius:10px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-size:var(--fs-3,15px);font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer}
.site-open button{background:var(--gold-hot);color:#14100A;border:none}
.site-open a{background:transparent;color:var(--ink-2,var(--txt2));border:1px solid var(--bdr-2)}
.site-pick{display:flex;align-items:center;gap:8px;flex:1 1 100%;font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3));
  border-top:1px solid rgba(255,255,255,.06);padding-top:10px}
.site-pick select{min-height:40px;max-width:100%;flex:0 1 360px;background:var(--bg);color:var(--ink,var(--txt));border:1px solid var(--bdr-2);
  border-radius:8px;padding:0 10px;font-family:var(--sans);font-size:var(--fs-3,15px)}
.site-pick a{color:var(--gold-hot);text-decoration:none;font-weight:600;white-space:nowrap}
.site-note{flex:1 1 100%;font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3));line-height:1.5}
.site-note b{color:var(--gold-hot);font-weight:600}
@media(max-width:640px){
  .site-scope{padding:12px 17px 12px 14px}
  .site-open{flex:1 1 100%;flex-wrap:wrap}
  .site-open input{flex:1 1 100%}
  .site-open button,.site-open a{flex:1 1 0}
  .site-pick{flex-wrap:wrap}.site-pick select{flex:1 1 100%}
}

/* Every asset number is a doorway to the machine's card (Field voice, 2026-08-22). */
.alink{color:var(--gold-hot);text-decoration:none;border-bottom:1px dotted var(--gold-a50)}
.alink:hover{color:var(--gold-bright);border-bottom-color:var(--gold-bright)}

/* Section lede under a sec-h. */
.site-lede{font-size:var(--fs-3,15px);line-height:1.55;color:var(--ink-muted,var(--txt3));margin:-2px 0 14px;max-width:960px}
.site-lede b{color:var(--ink,var(--txt));font-weight:600}

/* What to do today: four short lines, each a door into its section. */
.site-todo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.site-todo .ib{margin-bottom:0;cursor:pointer}
@media(max-width:768px){.site-todo{grid-template-columns:minmax(0,1fr)}}

/* Shift sheet: documents due within 7 days, one group per project. */
.ss-site{border:1px solid rgba(232,68,90,.22);border-radius:12px;background:rgba(232,68,90,.035);margin-bottom:10px;overflow:hidden}
/* Compact list (2026-10-08): one row per project; two columns of rows on a
   wide screen, and an open project takes the full width. */
.ss-list{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
.ss-list .ss-site{margin-bottom:0}
.ss-list .ss-site summary{padding:8px 14px;min-height:44px}
@media(min-width:1100px){.ss-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ss-list .ss-site[open]{grid-column:1/-1}}
.ss-more{margin-top:8px}
.ss-more>summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 4px;color:var(--gold-hot);font-weight:600;font-size:var(--fs-2,13px)}
.ss-more>summary::-webkit-details-marker{display:none}
.ss-more>summary::before{content:"\25B8";margin-left:8px}
.ss-more[open]>summary::before{content:"\25BE"}
.ss-site summary{list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;padding:13px 16px;cursor:pointer;user-select:none;min-height:48px;box-sizing:border-box}
.ss-site summary::-webkit-details-marker{display:none}
.ss-site summary::before{content:"\25B8";color:var(--txt4);font-size:var(--fs-1,12px);width:10px}
.ss-site[open] summary::before{content:"\25BE"}
.ss-name{font-weight:600;color:var(--ink,var(--txt));overflow-wrap:anywhere}
.ss-cnt{font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3))}
.ss-exp{font-size:var(--fs-1,12px);font-weight:600;color:var(--crim-hot);background:var(--crim-d);border:1px solid rgba(232,68,90,.38);border-radius:6px;padding:3px 9px}
.ss-old{font-size:var(--fs-1,12px);font-weight:600;color:var(--sem-warn,var(--gold-hot));background:var(--gold-l);border:1px solid var(--gold-a35);border-radius:6px;padding:3px 9px}
.ss-worst{margin-right:auto;font-size:var(--fs-1,12px);color:var(--ink-muted,var(--txt3))}
.ss-row{display:grid;grid-template-columns:150px minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,1.3fr) auto;gap:14px;align-items:center;padding:10px 16px;border-top:1px solid rgba(255,255,255,.05);font-size:var(--fs-3,15px)}
.ss-row.done{opacity:.55}
.ss-id{font-family:var(--sans);font-size:var(--fs-2,13px);color:var(--crim-hot);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ss-desc{color:var(--ink-2,var(--txt2))}
.ss-flags{display:flex;gap:5px;flex-wrap:wrap}
.ss-op{color:var(--ink-muted,var(--txt3));font-size:var(--fs-2,13px)}.ss-op a{color:var(--sapp)}.ss-op i{color:var(--txt4)}
.ss-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ss-act button{min-height:36px;padding:0 12px;border-radius:8px;border:1px solid var(--bdr-2);background:rgba(255,255,255,.03);color:var(--ink,var(--txt));
  font:500 var(--fs-2,13px) var(--sans);cursor:pointer;white-space:nowrap}
.ss-act .ss-wo{border-color:var(--gold-a50);color:var(--gold-hot)}
.ss-act button:disabled{opacity:.5;cursor:default}
.ss-st{font-size:var(--fs-1,12px);color:var(--good);white-space:nowrap}
.ss-st.err{color:var(--crim-hot)}
/* Phone: plate and machine on one line, then flags, operator and the two
   actions full width (beats the older one-column rule in style.ts). */
@media(max-width:900px){
  .ss-site .ss-row{grid-template-columns:auto minmax(0,1fr)!important;gap:8px 12px!important;padding:12px 14px!important}
  .ss-site .ss-id{grid-column:1;overflow:visible;text-overflow:clip}.ss-site .ss-desc{grid-column:2;text-align:left}
  .ss-site .ss-flags,.ss-site .ss-op,.ss-site .ss-act{grid-column:1/-1}
  .ss-site .ss-act{flex-wrap:wrap}
  .ss-site .ss-act button{flex:1 1 0;min-height:44px}
  .ss-site .ss-st{flex:1 1 100%}
  .ss-worst{margin-right:0;flex:1 1 100%}
}

/* Tier A summary strip and search boxes. */
.site-search{width:100%;box-sizing:border-box;background:rgba(255,255,255,.04);border:1px solid var(--bdr-2);border-radius:8px;
  padding:0 12px;min-height:42px;color:var(--ink,var(--txt));font-size:var(--fs-3,15px);font-family:var(--sans);margin-bottom:10px}
.site-search:focus{outline:none;border-color:var(--gold-a50)}
.site-tbl-box{border:1px solid var(--bdr);border-radius:12px;background:var(--bg2);overflow:hidden}
.site-tbl-cap{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06);font-size:var(--fs-2,13px);font-weight:600;color:var(--ink-2,var(--txt2))}
.site-tbl-box .site-scroll{max-height:420px;overflow:auto}
.site-tbl-box thead th{position:sticky;top:0;z-index:2;background:var(--panel-bg)}
.site-tbl-box tr.is-exp td{background:rgba(232,68,90,.04)}
.site-days-exp{color:var(--sem-crit,var(--crim-hot));font-weight:700;font-family:var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.site-days-old{color:var(--sem-warn,var(--gold-hot));font-weight:700;font-family:var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.site-scrap{font-size:var(--fs-1,12px);color:var(--crim-hot);margin-top:3px}
@media(max-width:480px){.site-tbl-box .site-scroll{max-height:none}}

/* Empty and not-ready states. */
.site-empty{max-width:720px;margin:28px auto;border:1px solid var(--bdr-2);border-radius:14px;background:var(--bg2);padding:26px 26px 24px;text-align:right}
.site-empty h1{font-family:var(--disp);font-size:var(--fs-5,22px);font-weight:600;color:var(--ink,var(--txt));margin:0 0 10px;line-height:1.2}
.site-empty p{font-size:var(--fs-3,15px);line-height:1.6;color:var(--ink-2,var(--txt2));margin:0 0 10px}
.site-empty p.sub{font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3))}
.site-empty .site-chip{margin:2px 0 2px 4px}
/* Scoped view: the Fleet Command Map reads fleet-wide history, so it is not offered. */
html[data-site-scoped] .nav-map,html[data-site-scoped] .nav-map+.nav-sep{display:none!important}
/* ── /Site ── */

/* ── Scope (2026-10-01) ── */
/* A scoped page (Work Orders, Fleet Intelligence, Site) never offers the
   Fleet Command Map: it plots the whole register. */
html[data-ly-scoped] .nav-map,html[data-ly-scoped] .nav-map+.nav-sep{display:none!important}
.sc-strip{margin-bottom:16px}
.xshell .sc-strip{margin-top:2px}

/* Work Orders: one shell for the deck and the Field Ops tab. */
.wo-shell{max-width:1440px;margin:0 auto;padding:20px 24px 40px;color:var(--ink,var(--txt))}
.wo-shell--embed{padding:0;max-width:none}
.wo-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.wo-h1{font-family:var(--disp);font-size:var(--fs-6,28px);font-weight:600;line-height:1.15;margin:0 0 6px;color:var(--ink,var(--txt))}
.wo-lede{margin:0;max-width:760px;font-size:var(--fs-3,15px);line-height:1.55;color:var(--ink-muted,var(--txt3))}
.wo-jump{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:10px;background:var(--gold-hot);color:#14100A;
  font-size:var(--fs-3,15px);font-weight:600;text-decoration:none;white-space:nowrap}
.wo-i{display:none;place-items:center;width:22px;height:22px;min-height:22px;margin-right:6px;padding:0;vertical-align:middle;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:transparent;color:var(--gold-hot);font:600 13px var(--sans);cursor:pointer}
.wo-h2{font-family:var(--disp);font-size:var(--fs-4,18px);font-weight:600;margin:0;color:var(--ink,var(--txt))}

.wo-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.wo-kpi{position:relative;background:var(--bg2);border:1px solid var(--bdr);border-radius:12px;padding:14px 16px 13px;overflow:hidden;min-width:0}
.wo-kpi::before{content:"";position:absolute;right:0;top:0;bottom:0;width:3px;background:var(--wo-tone,var(--bdr-2))}
.wo-kpi--warn{--wo-tone:var(--sem-warn,#F7894A)}.wo-kpi--info{--wo-tone:var(--sem-info,#7EB8D4)}
.wo-kpi--good{--wo-tone:var(--sem-good,#5BCE81)}.wo-kpi--gold{--wo-tone:var(--gold-hot)}
.wo-kpi-l{font-size:var(--fs-2,13px);font-weight:500;color:var(--ink-muted,var(--txt3));margin-bottom:6px}
.wo-kpi-v{font-family:var(--disp);font-size:var(--fs-6,28px);font-weight:600;line-height:1.1;color:var(--ink,var(--txt));font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wo-kpi-s{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:var(--fs-1,12px);line-height:1.4;color:var(--ink-muted,var(--txt3))}
.wo-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;background:var(--bg2);border:1px solid var(--bdr);border-radius:12px;padding:14px 16px;margin-bottom:16px}

.wo-reg{background:var(--bg2);border:1px solid var(--bdr);border-radius:12px;margin-bottom:16px;overflow:hidden}
.wo-reg-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px 8px}
.wo-reg-n{font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3))}
.wo-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 16px 12px}
.wo-chips{display:flex;gap:6px;flex-wrap:wrap}
.wo-chip{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--bdr-2);background:transparent;color:var(--ink-2,var(--txt2));
  font:500 var(--fs-2,13px) var(--sans);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.wo-chip b{font-weight:600;color:var(--ink-muted,var(--txt3));font-variant-numeric:tabular-nums}
.wo-chip.on{border-color:var(--gold-a50,rgba(240,180,80,.5));background:var(--gold-l);color:var(--gold-hot)}
.wo-chip.on b{color:var(--gold-hot)}
.wo-search{flex:1 1 260px;min-width:0;min-height:40px;box-sizing:border-box;background:var(--bg);border:1px solid var(--bdr-2);border-radius:8px;
  padding:0 12px;color:var(--ink,var(--txt));font:var(--fs-3,15px) var(--sans)}
.wo-search:focus,.wo-input:focus,.wo-f input:focus,.wo-f textarea:focus{outline:none;border-color:var(--gold-a50,rgba(240,180,80,.5))}
.wo-tbl-wrap{overflow-x:auto;border-top:1px solid var(--bdr)}
.wo-table{width:100%;border-collapse:collapse;font-size:var(--fs-2,13px)}
.wo-table th{position:sticky;top:0;background:var(--panel-bg);text-align:right;font-weight:600;font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3));
  padding:10px 12px;border-bottom:1px solid var(--bdr-2);white-space:nowrap}
.wo-table td{padding:10px 12px;border-bottom:1px solid rgba(148,163,184,.08);vertical-align:middle;color:var(--ink-2,var(--txt2))}
.wo-table .wo-num{text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap}
.wo-num small{font-size:var(--fs-1,12px);color:var(--ink-muted,var(--txt3));margin-right:1px}
.wo-row{cursor:pointer}
.wo-row:hover td{background:rgba(240,180,80,.04)}
.wo-row[hidden],.wo-detail-row[hidden]{display:none}
.wo-id{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:var(--fs-1,12px);color:var(--ink-muted,var(--txt3))}
.wo-type{display:inline-block;padding:2px 8px;border-radius:6px;background:rgba(255,255,255,.05);font-size:var(--fs-1,12px);color:var(--ink-2,var(--txt2));white-space:nowrap}
.wo-c-asset{font-family:var(--sans);font-weight:600;white-space:nowrap}
.wo-c-desc{color:var(--ink,var(--txt));font-weight:500;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wo-c-loc{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wo-gap{color:var(--ink-faint,var(--txt4));font-style:italic}
.wo-pri{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-1,12px);font-weight:600;white-space:nowrap}
.wo-pri::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.wo-pri--critical{color:var(--sem-crit,#F693A1)}.wo-pri--high{color:var(--sem-warn,#F7894A)}
.wo-pri--medium{color:var(--sem-info,#7EB8D4)}.wo-pri--low{color:var(--ink-muted,var(--txt3))}
.wo-st{min-height:34px;background:var(--bg);border:1px solid var(--bdr-2);border-radius:8px;padding:0 8px;font:600 var(--fs-2,13px) var(--sans);cursor:pointer;color:var(--ink,var(--txt))}
.wo-st--open{color:var(--sem-warn,#F7894A)}.wo-st--in_progress{color:var(--sem-info,#7EB8D4)}
.wo-st--resolved{color:var(--sem-good,#5BCE81)}.wo-st--cancelled{color:var(--ink-muted,var(--txt3))}
.wo-st option{color:var(--ink,var(--txt));background:var(--bg2)}
.wo-more{min-height:34px;padding:0 12px;border-radius:8px;border:1px solid var(--bdr-2);background:transparent;color:var(--ink-2,var(--txt2));font:500 var(--fs-2,13px) var(--sans);cursor:pointer;white-space:nowrap}
.wo-none td{padding:36px 16px;text-align:center;font-size:var(--fs-3,15px);color:var(--ink-muted,var(--txt3))}
.wo-nomatch{padding:24px 16px;text-align:center;font-size:var(--fs-3,15px);color:var(--ink-muted,var(--txt3))}
.wo-table .sr-only,.wo-shell .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wo-det{padding:14px 16px!important;background:rgba(240,180,80,.035)!important;border-bottom:1px solid rgba(240,180,80,.14)!important}
.wo-d-line{font-size:var(--fs-3,15px);color:var(--ink-2,var(--txt2));line-height:1.6;margin-bottom:12px;white-space:normal}
.wo-d-k{display:inline-block;margin-left:8px;font-size:var(--fs-2,13px);font-weight:600;color:var(--gold-hot)}
.wo-d-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.wo-f{display:flex;flex-direction:column;gap:5px;min-width:0}
.wo-f span{font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3))}
.wo-f input,.wo-f textarea{background:var(--bg);border:1px solid var(--bdr-2);color:var(--ink,var(--txt));border-radius:8px;padding:8px 10px;
  font:var(--fs-3,15px) var(--sans);width:100%;box-sizing:border-box;min-height:40px}
.wo-f-wide{margin-bottom:10px}
.wo-d-act{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.wo-btn{min-height:40px;padding:0 16px;border-radius:8px;border:1px solid var(--gold-a50,rgba(240,180,80,.5));background:var(--gold-l);color:var(--gold-hot);
  font:600 var(--fs-3,15px) var(--sans);cursor:pointer}
.wo-btn--req{border-color:rgba(91,206,129,.42);background:rgba(91,206,129,.10);color:var(--sem-good,#5BCE81)}
.wo-req-ok{font-size:var(--fs-2,13px);color:var(--sem-good,#5BCE81)}
.wo-msg{font-size:var(--fs-2,13px)}
.wo-tone-muted{color:var(--ink-muted,var(--txt3))}.wo-tone-good{color:var(--sem-good,#5BCE81)}.wo-tone-bad{color:var(--sem-crit,#F693A1)}
.wo-d-meta{font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3))}
.wo-hist{margin-top:8px;border-top:1px dashed var(--bdr-2);padding-top:8px;font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3));line-height:1.7}
.wo-h-t{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:var(--fs-1,12px);margin-left:8px}
.wo-h-s{color:var(--gold-hot)}

.wo-form{background:var(--bg2);border:1px solid var(--gold-a35,rgba(240,180,80,.35));border-radius:12px;padding:18px 18px 16px}
.wo-form-lede{margin:6px 0 14px;font-size:var(--fs-2,13px);color:var(--ink-muted,var(--txt3));line-height:1.5}
.wo-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.wo-span2{grid-column:span 2}
.wo-lbl{display:block;margin-bottom:6px;font-size:var(--fs-2,13px);font-weight:500;color:var(--ink-2,var(--txt2))}
.wo-input{width:100%;box-sizing:border-box;min-height:44px;background:var(--bg);border:1px solid var(--bdr-2);color:var(--ink,var(--txt));
  border-radius:8px;padding:8px 12px;font:var(--fs-3,15px) var(--sans)}
.wo-ta{min-height:88px;resize:vertical;line-height:1.5}
.wo-form-act{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.wo-submit{min-height:44px;padding:0 22px;border:none;border-radius:10px;background:var(--gold-hot);color:#14100A;font:600 var(--fs-3,15px) var(--sans);cursor:pointer}
.wo-submit:disabled{opacity:.6;cursor:default}
.wo-form-msg{font-size:var(--fs-3,15px)}
.wo-form-msg[hidden]{display:none}

@media(max-width:1100px){
  .wo-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wo-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wo-d-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Phone: one card per order. The header row goes, each cell carries its
   own label, and the asset, machine and status lead. */
@media(max-width:760px){
  .wo-shell{padding:14px 16px 32px}
  .wo-shell--embed{padding:0}
  /* First screen (Taher, 2026-10-16): the title and a compact Raise button share a row, the intro folds behind (i). */
  .wo-shell{padding-right:8px;padding-left:8px}
  .wo-head{flex-wrap:nowrap;align-items:center;margin-bottom:12px}.wo-jump{flex:0 0 auto;min-height:38px;padding:0 14px;font-size:14px}
  .wo-h1{margin:0}
  .wo-i{display:inline-grid!important}
  .wo-head .wo-lede{display:none}.wo-head.open .wo-lede{display:block;margin-top:6px}
  .wo-head.open{flex-wrap:wrap}
  .wo-h1{font-size:var(--fs-5,22px)}
  .wo-kpis{gap:8px}
  .wo-kpi{padding:12px 12px 11px}
  .wo-kpi-v{font-size:var(--fs-5,22px)}
  .wo-bars{grid-template-columns:minmax(0,1fr)}
  .wo-tools{padding:0 12px 12px}.wo-search{flex:1 1 100%}
  .wo-tbl-wrap{overflow:visible}
  .wo-table thead{display:none}
  .wo-table,.wo-table tbody{display:block}
  .wo-table tr.wo-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:"asset pri" "desc desc" "type id" "loc loc" "sav date" "st more";
    gap:8px 12px;padding:14px;border-bottom:1px solid var(--bdr);align-items:center}
  .wo-table tr.wo-row[hidden]{display:none}
  .wo-table tr.wo-row td{display:flex;align-items:baseline;gap:8px;padding:0;border:none;min-width:0;max-width:none;
    white-space:normal;text-align:right;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  .wo-table tr.wo-row td::before{content:attr(data-l);flex:0 0 auto;font-size:var(--fs-1,12px);color:var(--ink-muted,var(--txt3));font-family:var(--sans);font-weight:500}
  .wo-table tr.wo-row td.wo-c-asset::before,.wo-table tr.wo-row td.wo-c-desc::before,.wo-table tr.wo-row td.wo-c-pri::before,
  .wo-table tr.wo-row td.wo-c-st::before,.wo-table tr.wo-row td.wo-c-more::before{display:none}
  .wo-table tr.wo-row td.wo-c-asset{grid-area:asset;font-size:var(--fs-3,15px)}
  .wo-table tr.wo-row td.wo-c-pri{grid-area:pri;justify-content:flex-end}
  .wo-table tr.wo-row td.wo-c-desc{grid-area:desc;font-size:var(--fs-4,18px);font-weight:600;color:var(--ink,var(--txt))}
  .wo-table tr.wo-row td.wo-c-type{grid-area:type}
  .wo-table tr.wo-row td.wo-c-id{grid-area:id;justify-content:flex-end}
  .wo-table tr.wo-row td.wo-c-loc{grid-area:loc}
  .wo-table tr.wo-row td.wo-c-sav{grid-area:sav}
  .wo-table tr.wo-row td.wo-c-date{grid-area:date;justify-content:flex-end}
  .wo-table tr.wo-row td.wo-c-st{grid-area:st;align-items:stretch}
  .wo-table tr.wo-row td.wo-c-more{grid-area:more;align-items:stretch}
  .wo-table tr.wo-row .wo-st,.wo-table tr.wo-row .wo-more{min-height:44px;width:100%;font-size:var(--fs-3,15px)}
  .wo-table tr.wo-detail-row{display:block}
  .wo-table tr.wo-detail-row[hidden]{display:none}
  .wo-table tr.wo-detail-row td{display:block}
  .wo-table .wo-none td{display:block}
  .wo-d-grid{grid-template-columns:minmax(0,1fr)}
  .wo-d-act .wo-btn{flex:1 1 100%;min-height:44px}
  .wo-form{padding:16px 14px}
  .wo-form-grid{grid-template-columns:minmax(0,1fr)}
  .wo-span2{grid-column:auto}
  .wo-submit{flex:1 1 100%}
}
/* ── /Scope ── */

/* ── Polish (2026-10-01) ── */
:root{
  --fs-1:13px;
  --fs-2:13px;
  --fs-3:15px;
  --fs-4:18px;
  --fs-5:22px;
  --fs-6:28px;
  --fs-7:40px;
  --fs-eyebrow:11px;
  --ink:#F7F9FC;
  --ink-2:rgba(237,241,247,.88);
  --ink-muted:rgba(237,241,247,.60);
  --ink-faint:rgba(237,241,247,.55);
  --sem-good:#5BCE81;
  --sem-warn:#F7894A;
  --sem-crit:#F693A1;
  --sem-info:#7EB8D4;
  --sem-good-fill:#22A06B;
  --sem-warn-fill:#E98E36;
  --sem-crit-fill:#E5484D;
  --sem-info-fill:#3987E5;
  --chart-1:#3987E5;
  --chart-2:#CF9B28;
  --chart-3:#1FA2A8;
  --chart-4:#9085E9;
  --chart-5:#D95926;
  --chart-6:#22A06B;
  --chart-7:#D55181;
  --chart-8:#64748B;
  --ly-fs-micro:var(--fs-1);
  --ly-fs-caption:var(--fs-2);
  --ly-fs-body:var(--fs-3);
  --ly-fs-lead:var(--fs-3);
  --ly-fs-title:var(--fs-3);
  --ly-fs-section:var(--fs-5);
  --ly-fs-stat:var(--fs-6);
}

/* ═══ TYPE SCALE · generated utilities ══════════════════════════════════
   Same triple-class specificity as tools/utilgen.py output (and v3's own
   remap), later in the sheet, so these win without touching the generated
   block. Uppercase micro labels keep 12. */
.u-fs-9.u-fs-9.u-fs-9,.u-fs-10.u-fs-10.u-fs-10,.u-fs-105.u-fs-105.u-fs-105,.u-fs-11.u-fs-11.u-fs-11,.u-fs-115.u-fs-115.u-fs-115{font-size:var(--fs-1)}
.u-fs-125.u-fs-125.u-fs-125,button.u-fs-125.u-fs-125.u-fs-125{font-size:var(--fs-2)}
.u-fs-14.u-fs-14.u-fs-14,.u-fs-15.u-fs-15.u-fs-15,.u-fs-16.u-fs-16.u-fs-16{font-size:var(--fs-3)}
button.u-fs-14.u-fs-14.u-fs-14,select.u-fs-14.u-fs-14.u-fs-14,input.u-fs-14.u-fs-14.u-fs-14{font-size:var(--fs-3)}
.u-fs-17.u-fs-17.u-fs-17,.u-fs-18.u-fs-18.u-fs-18,.u-fs-19.u-fs-19.u-fs-19{font-size:var(--fs-4)}
.u-fs-20.u-fs-20.u-fs-20,.u-fs-22.u-fs-22.u-fs-22,.u-fs-24.u-fs-24.u-fs-24{font-size:var(--fs-5)}
.u-fs-26.u-fs-26.u-fs-26,.u-fs-28.u-fs-28.u-fs-28,.u-fs-32.u-fs-32.u-fs-32{font-size:var(--fs-6)}
.u-fs-12.u-fs-12.u-fs-12.u-tt-uppercase,.u-fs-11.u-fs-11.u-fs-11.u-tt-uppercase{font-size:var(--fs-1)}

/* ═══ TYPE SCALE · inline styles (deck sections) ═════════════════════════
   v3 already floors inline text at 12 and lifts sentence 12 to 13. The rest
   of the off-scale inline sizes step to their nearest token. */
.pg [style*="font-size:12.5px"],.pg [style*="font-size:13.5px"]{font-size:var(--fs-2)!important}
.pg [style*="font-size:14px"],.pg [style*="font-size:14.5px"],.pg [style*="font-size:15.5px"],.pg [style*="font-size:16px"]{font-size:var(--fs-3)!important}
.pg [style*="font-size:16.5px"],.pg [style*="font-size:17px"],.pg [style*="font-size:18.5px"],.pg [style*="font-size:19px"]{font-size:var(--fs-4)!important}
.pg [style*="font-size:20px"],.pg [style*="font-size:21px"],.pg [style*="font-size:23px"],.pg [style*="font-size:24px"]{font-size:var(--fs-5)!important}
.pg [style*="font-size:26px"],.pg [style*="font-size:30px"],.pg [style*="font-size:32px"]{font-size:var(--fs-6)!important}

/* ═══ TYPE SCALE · components ════════════════════════════════════════════ */
/* micro (12) */
.nav .nav-live-txt span{font-size:var(--fs-2)}
@media(max-width:768px){.mh-lbl{font-size:var(--fs-1)}}
.ev-k,.ly-handoff-deck,.cx-head .conf,.ps-wx .c .sv,.ps-day,
.ly-seal-txt b,.burn-fuel-n,.burn-formula,.burn-incomplete-hint,.nav-live-txt span{font-size:var(--fs-1)}
.ly-seal-txt{font-size:var(--fs-1)}
/* eyebrows (11, sentence case; typography pass 2026-10-08) */
.mh-h,.intel-slbl,.ly-handoff-lbl,.lx-modal-eyebrow,.rpt-eyebrow,.lf-lbl,.tf-lbl,.cmdk-grp,#ly-tt-panel .tt-hd{font-family:var(--sans);font-size:var(--fs-eyebrow)}
/* small (13) */
.ly-dl,.ly-dl-lb,.ly-dl-v,.ly-dl-p,.intel-ai-ts,.ev-chip,.gv-wo,.gv-tr-eta,.cx-meta,.cx-chip,.cx-num span,.cx-kept i,
.cx-form .cancel,.cx-err,.ps-wx .site small,.ps-wx .c .p,.ps-mon .t span,.ly-btn,
.cx-vow,.cx-dir,.burn-annual-l,.burn-fuel-l,.burn-fuel-v,.ly-mrow-l,.ly-mrow-v,.ly-spend-row,.intel-attr{font-size:var(--fs-2)}
[class*="u-gtc-1fr_1fr"] table .ly-asset-link,[class*="u-gtc-repeat_2_1fr"] table .ly-asset-link{font-size:var(--fs-2)}
/* body (15) */
.ib,.gv-syn-i,.gv-syn-h,.gv-syn-d,.gv-empty,.gv-link,.ly-watch-note,.mh-plain,.pol-link,.cx-kept,.cx-rest,
.ly-cell-asset .ly-cell-sub,.ly-cell-directive,.burn-annual-v,.intel-greet,.intel-body,.mh-t{font-size:var(--fs-3)}
input[type=text],input[type=search],input[type=number],select,textarea{font-size:var(--fs-3)}
table,td,.td-n,.td-d,.td-s,.td-m,.td-g,.td-c,.td-a,.td-b,.td-ac,.td-w,.td-wr,.tc{font-size:var(--fs-3)}
/* lead (18) */
.ly-days,.intel-greet-name,.intel-s1,.hero-row .gauge-card--primary .gauge-title{font-size:var(--fs-4)}
/* title (22) */
.cx-node b,.gv-tr-v,.ly-stats--7 .ly-stat-v{font-size:var(--fs-5)}
/* stat (28) */
.cx-n b,.intel-verdict-word,.cx-verdict{font-size:var(--fs-6)}

/* The nav: body size where there is room, small below it (the nav must fit
   at 1024, audit V-05). */
.na{font-size:var(--fs-2)}
@media(min-width:1600px){.na{font-size:var(--fs-3)}}

/* Dense tables step down a size below 1280px, as half-width cards already do
   at every width: the body size is for full-width reading tables. */
@media(max-width:1279px){
  table,td,.td-n,.td-d,.td-s,.td-m,.td-g,.td-c,.td-a,.td-b,.td-ac,.td-w,.td-wr,.tc,.ly-cell-directive,.ly-cell-asset .ly-cell-sub{font-size:var(--fs-2)}
}
@media(min-width:769px){
  [class*="u-gtc-1fr_1fr"] table td,[class*="u-gtc-repeat_2_1fr"] table td{font-size:var(--fs-2)}
  [class*="u-gtc-1fr_1fr"] table th,[class*="u-gtc-repeat_2_1fr"] table th{font-size:var(--fs-1)}
}

/* ═══ HIERARCHY ══════════════════════════════════════════════════════════
   The figure is the loudest thing on a tile: largest, brightest, tabular.
   The label is quiet ink; the context line sits between them. */
.ly-stat-v,.kpi .kv,.gv-tr-v,.cx-leg b,.cx-node b,.ly-donut-c b,.xk-v,.ly-days{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
td,th,.td-mono,.ly-dl-v,.ly-dl-p,.ly-mrow-v,.gv-num,.sb-num,.burn-annual-v,.burn-fuel-v,.kpi-delta{font-variant-numeric:tabular-nums}
.ly-stat-v,.kpi .kv{color:var(--ink);letter-spacing:-.02em}
.ly-stat-l,.kpi .kl,.gv-tr-l,.burn-annual-l,.burn-fuel-l{color:var(--ink-muted);font-weight:500}
.ly-stat-s,.kpi .ks{color:var(--ink-muted)}
.ly-stat--crit .ly-stat-v{color:var(--sem-crit)}
.ly-stat--good .ly-stat-v{color:var(--sem-good)}
.ly-donut-c b{font-size:var(--fs-6);color:var(--ink);letter-spacing:-.02em}
.ly-donut-c--long b{font-size:var(--fs-5)}
.ly-donut-c i{font-size:var(--fs-1);color:var(--ink-muted);margin-top:6px}
.ly-card-title{color:var(--ink)}
.ly-card-sub{color:var(--ink-muted)}
.gauge-status{font-size:var(--fs-2)}

/* ═══ CONTRAST FLOORS (audit V-17) ═══════════════════════════════════════ */
.ly-handoff-arrow{color:var(--sem-crit)!important;opacity:1}
.cx-node span,.cx-node em,.cx-meta{color:var(--ink-muted)}
.cx-kept i{color:var(--ink-muted)}
.cx-node b[style*="rgba(244,248,255,.4"],.cx-node b[style*="rgba(244, 248, 255, 0.4"]{color:var(--ink-muted)!important}
.ly-dl-p{color:var(--ink-muted)!important}
.kpi-hint{color:rgba(240,180,80,.62)}

/* ═══ STATUS COLOUR ══════════════════════════════════════════════════════
   Warning wears amber, not the gold accent. Applied where the colour is a
   status (chips, deadlines, health bands), never where gold is the accent. */
.tag--amber,.ta{background:rgba(233,142,54,.14);color:#FFB985;border-color:rgba(233,142,54,.40)}
.ly-days--warn{color:var(--sem-warn)}
.ly-stat--warn .ly-stat-v{color:var(--sem-warn)}
.ly-stat--warn{--c:var(--sem-warn)!important}
.hg-bar--warn{background:var(--sem-warn)!important}
.hg-v--warn{color:var(--sem-warn)!important}

/* ═══ DELTA CHIP (shared.ts deltaChip) ═══════════════════════════════════
   One trend chip everywhere: arrow, magnitude, window. Good / bad is decided
   by the measure's direction (lower-is-better for costs and counts of
   problems), not by the arrow. Flat and "no comparison" are grey. */
.ly-delta{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--ly-r-chip,6px);
  font:600 var(--fs-1)/1 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:0;white-space:nowrap;vertical-align:middle;
  color:var(--ink-2);background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.26)}
.ly-delta b{font-weight:600}
.ly-delta i{font-style:normal;font-weight:500;color:var(--ink-muted)}
.ly-delta--good{color:#7FE0A3;background:rgba(34,160,107,.14);border-color:rgba(34,160,107,.38)}
.ly-delta--bad{color:#F7A3AE;background:rgba(229,72,77,.13);border-color:rgba(229,72,77,.40)}
.ly-delta--good i,.ly-delta--bad i{color:inherit;opacity:.85}
.ly-delta svg{display:block;flex-shrink:0}
.kpi-deltas{gap:6px;margin-top:6px}

/* ═══ BULLET / TARGET BAR (shared.ts bulletBar) ══════════════════════════
   A measure against its target: the bar is the value, the tick is the
   target, the band behind is the range. Reads at a glance whether a figure
   is short of or past where it should be. */
.ly-bullet{display:flex;flex-direction:column;gap:6px;min-width:0;width:100%}
.ly-bullet-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}
.ly-bullet-l{font-size:var(--fs-2);color:var(--ink-2);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ly-bullet-v{font-size:var(--fs-3);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.ly-bullet-v small{font-size:var(--fs-1);font-weight:500;color:var(--ink-muted);margin-right:4px}
.ly-bullet-t{position:relative;height:10px;border-radius:5px;background:rgba(148,163,184,.14);overflow:visible}
.ly-bullet-band{position:absolute;top:0;bottom:0;right:0;border-radius:5px;background:rgba(148,163,184,.10)}
.ly-bullet-f{position:absolute;top:2px;bottom:2px;right:2px;border-radius:3px;background:var(--bc,var(--sem-info-fill));max-width:calc(100% - 4px);transition:width .6s cubic-bezier(.4,0,.2,1)}
.ly-bullet-k{position:absolute;top:-4px;bottom:-4px;width:2px;margin-right:-1px;border-radius:1px;background:var(--ink)}
.ly-bullet-s{display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-1);color:var(--ink-muted);font-variant-numeric:tabular-nums}
.ly-bullet-s b{font-weight:600;color:var(--ink-2)}
.ly-bullet--good{--bc:var(--sem-good-fill)}
.ly-bullet--warn{--bc:var(--sem-warn-fill)}
.ly-bullet--crit{--bc:var(--sem-crit-fill)}
.ly-bullets{display:grid;gap:14px}
.ly-bullets--2{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
.ly-bullets--3{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px}
.ly-bullets--4{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:20px}
@media(max-width:1100px){.ly-bullets--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.ly-bullets--2,.ly-bullets--3{grid-template-columns:1fr}}
@media(max-width:480px){.ly-bullets--4{grid-template-columns:1fr}}
/* Phone: the 90-day projection cards (CEO, CFO, PMV) are four utility-grid tracks; the 768 fold rule in style.ts lost its declaration, so at 390 px each track was 80 px and words broke mid-letter ("Leakag e"). Two columns. */
@media(max-width:560px){html .u-d-grid.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr.u-gtc-repeat_4_1fr{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* PMV data-quality strip: heading, the headline measure, four components. */
.ly-dq-strip{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(220px,1fr) minmax(0,2.6fr);gap:24px;align-items:center;margin-top:10px;padding:16px 20px;cursor:pointer;
  background:var(--bg2);background-image:var(--ly-surface-raise);border:1px solid var(--bdr);border-radius:var(--ly-r-card,12px);transition:border-color .15s}
.ly-dq-strip:hover{border-color:rgba(126,184,212,.4)}
.ly-dq-strip:focus-visible{outline:2px solid var(--gold-hot);outline-offset:2px}
.ly-dq-sub{font-size:var(--fs-2);color:var(--ink-muted);line-height:1.45}
.ly-dq-more{margin-top:6px;font-size:var(--fs-2);font-weight:600;color:var(--sem-info)}
.ly-dq-main .ly-bullet-v{font-size:var(--fs-4)}
/* Where to fill (2026-10-08): the fixes that raise decision-ready, biggest gain first. */
.ly-fill{min-width:0}
.ly-fill-h{font-size:var(--fs-1);font-weight:700;letter-spacing:.01em;text-transform:none;color:var(--ink-muted);margin-bottom:6px}
.ly-fill-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:3px;padding:5px 0}
.ly-fill-row + .ly-fill-row{border-top:1px solid rgba(255,255,255,.05)}
.ly-fill-t{font-size:var(--fs-2);color:var(--ink);line-height:1.35;min-width:0}
.ly-fill-t b{color:var(--sem-info);font-weight:700;margin-left:2px}
.ly-fill-n{font-size:var(--fs-2);font-weight:700;color:var(--gold-hot);text-align:left;white-space:nowrap}
.ly-fill-n small{display:block;font-size:var(--fs-1);font-weight:500;color:var(--ink-muted)}
.ly-fill-bar{grid-column:1 / -1;height:4px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden}
.ly-fill-bar i{display:block;height:100%;border-radius:3px;background:var(--gold-hot)}
.ly-fill--all{margin-top:14px}
.ly-fill-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-2);margin:4px 0 6px}
.ly-fill-tbl th{font-size:var(--fs-1);color:var(--ink-muted);font-weight:600;text-align:right;padding:4px 6px;border-bottom:1px solid rgba(255,255,255,.08)}
.ly-fill-tbl td{padding:5px 6px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--ink)}
@media(max-width:1100px){.ly-dq-strip{grid-template-columns:1fr 1fr}.ly-dq-strip > .ly-bullets,.ly-dq-strip > .ly-fill{grid-column:1 / -1}}
@media(max-width:600px){.ly-dq-strip{grid-template-columns:1fr;gap:16px;padding:14px}}

/* Five-up stat strip (COO breakdown summary). */
@media(min-width:1101px){.ly-stats--5{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* Pareto card side column: concentration and data confidence as bars. */
.ly-pareto-side{flex:0 0 260px;display:flex;flex-direction:column;gap:12px;min-width:0}
@media(max-width:768px){.ly-pareto-side{flex-basis:auto;width:100%}}

/* ═══ SPARKLINE (lx-spark v3: area, end point, delta) ════════════════════ */
.lx-spark{margin-top:12px;font-family:var(--sans);font-size:var(--fs-1);font-weight:500;color:var(--ink-muted);font-variant-numeric:tabular-nums;text-align:right;opacity:1}
.lx-spark-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;white-space:nowrap}
.lx-spark-h > span:first-child{color:var(--ink-muted)}
.lx-spark svg{display:block;overflow:visible}
.lx-spark-z{display:inline-flex;align-items:center;gap:6px}
.lx-spark-z > b{color:var(--ink);font-weight:600;font-size:var(--fs-2)}
.lx-spark-f{display:flex;justify-content:space-between;gap:6px;margin-top:4px;white-space:nowrap}
.lx-spark-c{margin-top:2px;color:var(--ink-muted)}
.lx-spark-none{color:var(--ink-muted)}
.hg-spark{overflow:visible}
.hg-trend{font-size:var(--fs-1);font-weight:600}

/* ═══ CHARTS ═════════════════════════════════════════════════════════════ */
.ly-legend,.ly-lg{font-size:var(--fs-2)}
.ly-chart-empty{color:var(--ink-muted)}

/* ═══ NO ALL CAPS (Taher, 2026-10-08: "all caps is not allowed for names or
   description or whatever, it is not professional") ════════════════════════
   Every text-transform:uppercase in the stylesheets is gone; labels read in
   sentence case. These catch the casing a deck still asks for in its own
   inline style or deck-local style block (the .ly-eyebrow copies), with the caps
   tracking brought back to normal. */
/* ═══ FULL NAMES (Taher, 2026-10-08: "why are texts truncated, there is
   obviously space for the full name") ═══════════════════════════════════
   PMV "same machine, different suppliers": the supplier cells were capped
   at 130 px with an ellipsis in a 1,294 px table; they now take the room
   and wrap only when the table is narrow. */
#pmv-s5 td.u-to-ellipsis{max-width:none!important;white-space:normal!important;overflow-wrap:anywhere}
[style*="text-transform:uppercase"],[style*="text-transform: uppercase"],.ly-eyebrow{text-transform:none!important;letter-spacing:.01em!important}
/* Donut legend rows that link to their evidence (lib/charts donut rowAttrs,
   CEO Recoverable by lever). Hover only where there is a hover (a phone kept
   the last tapped row lit, 2026-10-08). */
a.ly-dl-row--go{text-decoration:none;color:inherit;cursor:pointer}
a.ly-dl-row--go .ly-dl-lb{text-decoration:underline dotted rgba(240,180,80,.55);text-underline-offset:3px}
@media(hover:hover){a.ly-dl-row--go:hover .ly-dl-lb{color:var(--gold-hot)}}
/* Nav clock on one line (Taher, 2026-10-08: "clock and date are on different
   lines, they can surely fit in one"): "Oct 8 · 11:28 PM" from 769 px up.
   Phones keep the time alone, as before (the date there wrapped the opened
   More row: header 151 to 182 px at 390). */
.nav-live-txt{flex-direction:row!important;align-items:baseline;gap:0!important;line-height:1.2!important}
.nav-live-dd:not(:empty)::after{content:" · ";white-space:pre;color:var(--txt3)}
/* A SAR figure in the hole ("SAR 24.8M") is wider than a count: one step
   down so it stays inside the 148 px ring at every width. */
.ly-donut-c--xl b{font-size:19px!important}
/* Phones, half-width hero cards: a SAR donut's legend drops the share (the
   ring shows it) and the "SAR " before each figure (the line in the ring says
   SAR), so a full label ("Depreciation") keeps its room. */
@media(max-width:760px){html .hero-row .ly-donut--sar .ly-dl,html[data-lytab] .hero-row .ly-donut--sar .ly-dl{grid-template-columns:10px minmax(0,1fr) auto!important;column-gap:6px!important}html .hero-row .ly-donut--sar .ly-dl-p{display:none!important}html .hero-row .ly-donut--sar .ly-dl-cur{display:none}}
/* The ownership Spend ring keeps its share column on phones (Taher, 2026-10-11:
   "spend toggle shows money only, not percentages"). */
@media(max-width:760px){html .hero-row .ly-donut--sar.ly-donut--share .ly-dl,html[data-lytab] .hero-row .ly-donut--sar.ly-donut--share .ly-dl{grid-template-columns:10px minmax(0,1fr) auto auto!important}html .hero-row .ly-donut--sar.ly-donut--share .ly-dl-p{display:block!important}}
@media(max-width:600px){html body .hero-row .ly-donut--sar.ly-donut--share .ly-dl,html[data-lytab] body .hero-row .ly-donut--sar.ly-donut--share .ly-dl{grid-template-columns:10px minmax(0,1fr) auto auto!important}}
/* Hero row on one grid (Taher, 2026-10-08: "some are not aligned with each
   other (neighboring donuts)"). Every card reads from the top: titles on one
   22 px line at the same height (the primary card's 2 px gold rule is taken
   off its padding), every donut ring 12 px under its title, and the two
   gauges (Monthly Burn 104 px, Fleet Health 112 px) dropped by half their
   height difference to the 148 px ring, so every ring and gauge shares one
   centre line. A ring no longer floats to the middle of what is left (it
   moved with the legend's row count); a footnote sits on the card floor. */
.hero-row>*{justify-content:flex-start!important}
.hero-row>*:not(.gauge-card--primary){padding-top:14px!important}
.hero-row>.gauge-card--primary,.hero-row .gauge-card--primary{padding-top:13px!important}
.hero-row .gauge-title,.hero-row>*>.ly-card-title{line-height:22px!important;min-height:22px;margin:0!important;flex:0 0 auto}
.hero-row>*>.ly-card-title+.ly-donut{margin-top:12px!important;margin-bottom:0!important}
/* The ownership ring sits in .ly-own, so it gets the same 12 px; its Machines | Spend switch is under it, out of the ring's way (2026-10-11). */
.hero-row>*>.ly-card-title+.ly-own{margin:12px 0 0!important}
.hero-row>[class*="u-bg-bg2"]>.ly-donut{flex:0 0 auto!important;justify-content:flex-start!important}
.hero-row>[class*="u-bg-bg2"]>.ly-donut~div{margin-top:auto!important;padding-top:6px}
.hero-row .gauge-card .gauge-title+.gauge-svg{margin-top:26px}
.hero-row .gauge-card--primary .gauge-title+.gauge-svg{margin-top:22px}
/* Gauge v2 (Taher, 2026-10-08: the Fleet Health gauge "looks too thin and
   dull"): the band word under both gauges is a pill in the band colour, a
   dot before it, the weight of the donuts' centre figures beside it. */
.gauge-card .gauge-status{display:inline-flex;align-items:center;gap:7px;align-self:center;padding:3px 10px 3px 12px;border-radius:999px;line-height:18px;font-weight:700;background:color-mix(in srgb,var(--sc) 15%,transparent);border:1px solid color-mix(in srgb,var(--sc) 42%,transparent)}
.gauge-card .gauge-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sc);flex:0 0 7px}
/* A donut with one non-zero part is a figure, not a ring (lib/charts donut):
   the figure in the ring's box on a faint disc, one line naming the part. */
.ly-donut-ring--one{border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.035) 0 62%,rgba(255,255,255,.07) 62.5% 63.5%,transparent 64%)}
.ly-donut-one{display:flex;align-items:baseline;justify-content:center;gap:7px;max-width:100%;font-size:13px;line-height:1.4;color:var(--txt2);text-align:right}
.ly-donut-one>i{flex:0 0 8px;width:8px;height:8px;border-radius:2px;align-self:center}
.ly-donut-one b{color:var(--txt);font-weight:600}
.ly-donut-one a{color:inherit;text-decoration:underline dotted rgba(240,180,80,.55);text-underline-offset:3px}
/* The line in a donut's hole wraps to balanced lines inside the 112 px hole
   at every width ("SAR net, 12 months" ran 5 px over the ring at 1440). */
.ly-donut-c i{max-width:80px;white-space:normal;text-wrap:balance;text-align:center;line-height:1.25}
/* ═══ PHONE PASS 6 (2026-10-08, for the BIHG Group CEO review) ═══════════ */
/* Donut legends read the same on every deck at every width: swatch, the
   label left-aligned straight after it, value and share on the right. The
   hero cards centre their text and the label inherited it on CEO, CFO and
   PMV (it floated between the swatch and the value). */
.ly-dl .ly-dl-lb{text-align:start}
@media(max-width:600px){
  /* Hero legend on phones: one grid everywhere (swatch, label, value, share). */
  html body .hero-row .ly-dl,html[data-lytab] body .hero-row .ly-dl,html body .hero-row .ly-donut--sar .ly-dl,html[data-lytab] body .hero-row .ly-donut--sar .ly-dl{grid-template-columns:10px minmax(0,1fr) auto auto!important;column-gap:5px!important}
  /* A SAR ring keeps its share off at half width (the ring shows it, and a
     full "Depreciation" needs the room at 360 px). */
  html body .hero-row .ly-donut--sar .ly-dl,html[data-lytab] body .hero-row .ly-donut--sar .ly-dl{grid-template-columns:10px minmax(0,1fr) auto!important}
  /* The line in the hole wraps to two balanced lines inside the ring
     ("SAR net, / 12 months") and the figure steps down, so both sit inside
     the 112 px hole with room to spare. */
  .ly-donut-c b{font-size:24px!important}
  .ly-donut-c--xl b{font-size:18px!important}
  .ly-donut-c i{max-width:76px;white-space:normal;text-wrap:balance;text-align:center;line-height:1.25;font-size:11px!important;margin-top:4px!important}
  /* An odd card out on a two-across hero row takes the whole row, its
     content centred (COO and Site "Idle by Owner"). The full-width primary
     gauge is not counted. */
  .hero-row>:not(.gauge-card--primary):nth-child(odd of :not(.gauge-card--primary,script,style,template)):nth-last-child(1 of :not(.gauge-card--primary,script,style,template)){grid-column:1/-1!important;align-items:center}
  .hero-row>:not(.gauge-card--primary):nth-child(odd of :not(.gauge-card--primary,script,style,template)):nth-last-child(1 of :not(.gauge-card--primary,script,style,template)) .ly-dl{max-width:300px;margin-inline:auto}
  /* Floating buttons stay floating (Taher): 40 px, fainter at rest, 8 px
     from the edge; full strength while pressed, focused or hovered. */
  html .ly-toolbelt-btn,html #btt,html .ly-fab{width:40px!important;height:40px!important}
  html .ly-fab svg{width:18px;height:18px}
  html .ly-toolbelt-btn,html .ly-fab,html #btt{opacity:.26}
  html .ly-toolbelt-btn:active,html .ly-toolbelt-btn:focus-visible,html .ly-fab:active,html .ly-fab:focus-visible,html #btt:active,html #btt:focus-visible{opacity:1}
  html:not(:has(.geq-wrap)) #ly-toolbelt{right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;gap:8px!important}
  html:not(:has(.geq-wrap)) .ly-fab{left:8px!important;bottom:calc(8px + env(safe-area-inset-bottom,0px))!important}
  html:not(:has(.geq-wrap)) #btt{left:8px!important;bottom:calc(56px + env(safe-area-inset-bottom,0px))!important}
  /* The page ends clear of the stack (two 40 px buttons, 8 px apart, 8 px
     up): the last line can scroll above them. */
  body:not(:has(> .pl-wrap)){padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))!important}
}
@media(max-width:380px){html body .hero-row .ly-dl-lb{font-size:11px!important}html body .hero-row .ly-dl,html[data-lytab] body .hero-row .ly-dl{column-gap:4px!important}}
/* Phones, and touch tablets up to 1366 px (Taher, 2026-10-09). */
@media(max-width:600px),(pointer:coarse) and (max-width:1366px){
  html .ly-toolbelt-btn,html .ly-fab,html #btt{transition:opacity .2s ease!important}
  html .ly-toolbelt-btn.ly-scr,html .ly-fab.ly-scr,html #btt.ly-scr{opacity:0!important;pointer-events:none}
}
@media(max-width:600px) and (hover:hover){
  html .ly-toolbelt-btn:hover,html .ly-fab:hover,html #btt:hover{opacity:1}
}

/* Health modal figures on the deck sans (typography pass, 2026-10-08). The
   base rules sit in style.ts's health-modal block; set here so that block
   stays untouched. */
.hm-ring span,.hm-wt,.hm-pct{font-family:var(--sans);font-variant-numeric:tabular-nums}
.hm-pct{font-size:var(--fs-3)}
.hm-wt{font-weight:500}

/* Tablet pass (2026-10-09, 768-1359 px). Measured on live at 768x1024,
   820x1180, 1024x768 and 1180x820. */
/* Pareto block: text beside the bars only when both fit; at 768 the bars
   took 696 px and squeezed the text to 98 px, cut by the section edge. */
@media(max-width:1100px){html .ly-stack-sm:has(>.ly-pareto-side){flex-direction:column;align-items:stretch}html .ly-stack-sm>.ly-pareto-side{flex-basis:auto;width:100%}}
@media(max-width:1359px){
  /* Section titles wrap, never "…" (Board, 820 px). */
  .sec-t{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
  /* Today and Work Orders: machine and project names wrap in full. */
  html .tdy-what{white-space:normal}
  html .wo-c-loc{white-space:normal;max-width:none}
}
/* People: the table scrolls inside its panel instead of being cut at the
   panel edge (820-1180 px). */
html .pp-panel{overflow-x:auto}
/* No text under 13 px (skeptic review 2026-10-17): the classes that fix their own 11-12 px. */
.ly-pill,.sw-alt,.sec-n,.dtc-bt,.dtc-chip,.dtc-y,.tag,.rq-grade,.off-n,.pmv-ol-c,.lv-go,.lyc-sub,.lyc-foot,.dtr-cap,.br-pill,.br-place-meta,.tier-ix,.lx-spark,.ly-dl-v,.ly-dl-p,.ly-help{font-size:13px!important}

/* ── Brief card v2 (2026-10-02, src/decks/briefCard.ts) ── */
.lyb{--lyb-serif:'IBM Plex Serif',Georgia,serif;--lyb-gold:#D6A54A;--lyb-gold-hi:#F3C263;--lyb-line:rgba(255,255,255,.08);--lyb-line2:rgba(255,255,255,.16);
  position:relative;overflow:hidden;margin:0 0 16px;padding:18px 32px 0;background:#111A2B;border:1px solid var(--lyb-line);border-top:2px solid var(--lyb-gold);border-radius:14px;color:#EDF1F7;font-family:var(--sans)}
.lyb-mast{display:flex;align-items:center;gap:14px;padding-bottom:10px;border-bottom:1px solid var(--lyb-line2);font:600 13px var(--sans);letter-spacing:.01em;text-transform:none;color:rgba(237,241,247,.62)}
.lyb-eye{color:var(--lyb-gold)}
.lyb-period::before,.lyb-date::before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;vertical-align:middle;margin:0 0 2px 14px;opacity:.7}
.lyb-date:empty{display:none}
.lyb-by{margin-right:auto;display:inline-flex;align-items:center;gap:7px;color:inherit}
.lyb-by .nr-face{display:block;flex:0 0 auto}
.lyb-verdict{margin-right:18px;display:inline-flex;align-items:center;gap:8px;color:var(--lyb-vc)}
.lyb-verdict i{width:8px;height:8px;border-radius:50%;background:var(--lyb-vc)}
.lyb-greet{margin:16px 0 0;font:500 30px/1.2 var(--lyb-serif);color:#EDF1F7;text-transform:none;letter-spacing:-.005em}
/* The reader's name in its own face (Taher, 2026-10-02: "special color and font for the names"). */
.lyb-name{font:italic 700 1.12em/1 'Playfair Display',var(--lyb-serif);letter-spacing:.005em;white-space:nowrap;color:#F3C263;
  background:linear-gradient(-100deg,#FFE4A8 0%,#F3C263 38%,#D6A54A 72%,#F0B450 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.lyb-head{margin:8px 0 0;font:700 clamp(28px,2.6vw,40px)/1.14 var(--lyb-serif);letter-spacing:-.012em;color:#FFFFFF;text-wrap:pretty;text-transform:none}
.lyb-standfirst{margin:10px 0 0;text-wrap:pretty;font:400 18px/1.5 var(--lyb-serif);color:rgba(237,241,247,.86)}
.lyb-cols{display:grid;grid-template-columns:1fr 1fr 1.25fr;margin-top:16px;border-top:3px double var(--lyb-line2)}
.lyb-col{padding:14px 22px 16px;min-width:0}
.lyb-col:first-child{padding-right:0}
.lyb-col--means,.lyb-col--move{border-right:1px solid var(--lyb-line)}
.lyb-col--move{padding-left:0}
.lyb-k{display:flex;align-items:center;gap:10px;font:700 13px var(--sans);letter-spacing:.01em;text-transform:none;color:rgba(237,241,247,.74);margin:0 0 8px}
.lyb-col--move .lyb-k{color:var(--lyb-gold)}
.lyb-num{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;font:600 32px/1 var(--disp);letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:#FFFFFF}
.lyb-num--money{color:var(--lyb-gold-hi)}
.lyb-num small{font:500 14px var(--sans);color:rgba(237,241,247,.66)}
.lyb-dir{font:600 14px var(--sans)}
.lyb-dir--up{color:#F693A1}.lyb-dir--down{color:#5BCE81}
.lyb-cap{margin:5px 0 0;font:600 13px var(--sans);letter-spacing:.01em;text-transform:none;color:rgba(237,241,247,.74)}
.lyb-col p{margin:8px 0 0;font-size:15px;line-height:1.5;color:rgba(237,241,247,.86)}
.lyb-col--move p{margin-top:0;font:600 17px/1.45 var(--sans);color:#FFFFFF}
.lyb-when{font:700 13px var(--sans);letter-spacing:.01em;color:#1a1205;background:var(--lyb-gold);border-radius:4px;padding:3px 7px}
.lyb-ev{display:inline-flex;align-items:center;min-height:44px;margin-top:2px;font:600 13px var(--sans);color:var(--lyb-gold);text-decoration:none;border-bottom:1px solid rgba(214,165,74,.35)}
.lyb-ev:hover{border-bottom-color:var(--lyb-gold)}
.lyb-why{display:none}
.lyb-asset{white-space:nowrap;color:#7EB8D4;text-decoration:none;border-bottom:1px solid currentColor;font-variant-numeric:tabular-nums}
@media (max-width:1100px){
  .lyb-cols{grid-template-columns:1fr 1fr}
  .lyb-col--move{grid-column:1 / -1;padding-right:0;border-right:0!important;border-top:1px solid var(--lyb-line)}
}
@media (max-width:760px){
  .lyb{padding:14px 16px 2px;border-radius:12px}
  /* Masthead on two lines: the reader and the verdict, then the period. */
  .lyb-mast{flex-wrap:wrap;row-gap:6px;gap:10px;font-size:13px}
  .lyb-period{order:3;flex-basis:100%;letter-spacing:.01em}
  .lyb-period::before{display:none}
  .lyb-date{display:none}
  .lyb-greet{font-size:24px;margin-top:12px}
  .lyb-head{font-size:23px;line-height:1.2}
  .lyb-standfirst{font-size:16px}
  .lyb-cols{grid-template-columns:1fr;margin-top:12px}
  .lyb-col,.lyb-col:first-child{padding:12px 0}
  .lyb-col--means,.lyb-col--move{border-right:0;border-top:1px solid var(--lyb-line)}
  .lyb-num{font-size:28px}
  .lyb-col--means{display:none}
  .lyb--open .lyb-col--means{display:block}
  /* "What it means" opens in place: a full-width row with a plus that turns to a minus. */
  .lyb-why{display:block;margin:0}
  .lyb-why button{display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;min-height:44px;height:auto;box-shadow:none;background:none;border:0;border-top:1px solid var(--lyb-line);border-radius:0;padding:0;color:var(--lyb-gold);font:700 11px var(--sans);letter-spacing:.01em;text-transform:none;cursor:pointer;text-align:right}
  .lyb-why button::after{content:"+";font:400 22px/1 var(--sans);letter-spacing:0;color:var(--lyb-gold)}
  .lyb--open .lyb-why button::after{content:"−"}
  /* The row sits above the text it opens; the label is the row's, so the column's own is hidden. */
  .lyb-cols>.lyb-col:first-child{order:1}.lyb-why{order:2}.lyb-col--means{order:3}.lyb-col--move{order:4}
  .lyb-col--means{border-top:0;padding-top:0}
  .lyb-col--means .lyb-k{display:none}
  .lyb-col--move{border-top:1px solid var(--lyb-line)}
  .lyb-col--move p{font-size:16px}
}
/* Compact card (CardOpts.compact, CFO deck 2026-10-07): the same parts with
   tighter type and spacing, about 120 px shorter at 1440. */
@media (min-width:761px){
  .lyb--compact{padding-top:12px}
  .lyb--compact .lyb-mast{padding-bottom:8px}
  .lyb--compact .lyb-greet{margin-top:10px;font-size:21px}
  .lyb--compact .lyb-head{margin-top:4px;font-size:clamp(22px,1.75vw,27px);line-height:1.18}
  .lyb--compact .lyb-standfirst{margin-top:6px;font-size:15px;line-height:1.45}
  .lyb--compact .lyb-cols{margin-top:10px}
  .lyb--compact .lyb-col{padding-top:10px;padding-bottom:12px}
  .lyb--compact .lyb-k{margin-bottom:5px}
  .lyb--compact .lyb-num{font-size:24px}
  .lyb--compact .lyb-cap{margin-top:3px}
  .lyb--compact .lyb-col p{margin-top:5px;font-size:13.5px;line-height:1.45}
  .lyb--compact .lyb-col--move p{margin-top:0;font-size:15px}
  .lyb--compact .lyb-ev{margin-top:6px}
}
@media (max-width:760px){
  .lyb--compact .lyb-greet{font-size:20px;margin-top:10px}
  .lyb--compact .lyb-head{font-size:20px}
  .lyb--compact .lyb-standfirst{font-size:15px}
  .lyb--compact .lyb-num{font-size:24px}
}
@media print{.lyb .nr-face{display:none}.lyb{break-inside:avoid}.lyb-why{display:none!important}.lyb-col--means{display:block!important}}
/* /ai/preview page (briefPreview.ts) */
.bpv{max-width:1240px;margin:0 auto;padding:18px 16px 60px}
.bpv h1{font:600 22px var(--sans);margin:6px 0 4px}
.bpv .sub{color:var(--txt3);font-size:14px;margin:0 0 22px;max-width:90ch}
.bpv h3{font:600 12px var(--sans);letter-spacing:.01em;text-transform:none;color:var(--txt3);margin:34px 0 10px}
.bpv .note{background:#141D2F;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:14px 16px;font-size:14px;color:var(--txt2);margin:0 0 14px}
.bpv .bad{color:#F693A1}
.bpv code{font-size:12px}

/* ── UI3 (2026-10-01) ── */
/* Owner contact card (#tf-card, navBar in shared.ts). At 360px every
   credential and the footer wrapped onto two lines (measured: 3 of 3
   credentials and the footer at 1440 and 1024). 440px holds each on one
   line; on a phone the card is the viewport less 16px each side, where
   wrapping is allowed. Credentials move to the sans face like the decks'
   body text; every size is a Polish step (12/13/15). */
#tf-card{width:min(440px,calc(100vw - 32px));max-width:calc(100vw - 32px);box-sizing:border-box}
#tf-card .tf-name{font-size:var(--fs-3)}
#tf-card .tf-title{font-size:var(--fs-1)}
#tf-card .tf-creds{font-family:var(--sans);font-size:var(--fs-2);letter-spacing:0;line-height:1.55;margin-top:4px;color:var(--ink-2)}
#tf-card .tf-lbl{font-size:var(--fs-1)}
#tf-card .tf-val{font-size:var(--fs-2)}
#tf-card .tf-val--lg{font-size:var(--fs-3)}
#tf-card .tf-copy{font-size:var(--fs-2)}
#tf-card .tf-foot{font-size:var(--fs-1)}

/* ── PHONE TAP TARGETS (2026-10-08, visual audit S-15) ──────────────────────
   Asset IDs and phone numbers in tables and lists, "See the evidence" and
   Today's asset links were 17-21 px tall tap targets. The hit area grows by
   an absolutely placed ::after (8 px above and below, 4 px each side) to
   ~34 px, so nothing moves and the dashed underline stays under the text. */
@media(max-width:760px){
  a.ly-asset-link,a.alink,a.lyb-ev,a.lyb-asset,a.tdy-an,.fo-t td a,td a[href^="tel:"],.alink~a[href^="tel:"]{position:relative}
  a.ly-asset-link::after,a.alink::after,a.lyb-ev::after,a.lyb-asset::after,a.tdy-an::after,.fo-t td a::after,td a[href^="tel:"]::after,.alink~a[href^="tel:"]::after{
    content:"";position:absolute;right:-4px;left:-4px;top:-8px;bottom:-8px}
  /* the Site deck's ID cell clips (ellipsis): room inside it for the hit
     area, given back by the negative margin so the row does not grow */
  .ss-id:has(>a.alink){padding-top:8px;padding-bottom:8px;margin-top:-8px;margin-bottom:-8px}
}

/* Phone long-table cap drawn by CSS (2026-10-10): the same cut the deck script makes (5 rows on a
   chaptered deck, 12 elsewhere) is in place at first paint, so the page no longer shrinks after
   load. The script still adds the "Show all" button and sets data-ly-open while expanded. */
@media(max-width:768px){
  html[data-lytab] table:not([data-ly-open]) tbody:has(> tr:nth-child(7)) > tr:nth-child(n+6){display:none!important}
  html:not([data-lytab]) table:not([data-ly-open]) tbody:has(> tr:nth-child(15)) > tr:nth-child(n+13){display:none!important}
}

/* Keyboard focus on the cards that act as buttons (deck script adds tabindex and role). */
[role="button"][tabindex]:focus-visible,.gauge-card:focus-visible{outline:2px solid var(--gold-hot);outline-offset:3px;border-radius:10px}
.ly-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Motion that ignored reduced-motion (2026-10-10 audit). */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* iPhone widths (2026-10-17). At 320 to 345 px the logo and the name chip added up to 324 px of a 320 px row, so
   the chip dropped to a second row and every deck header grew from 112 to 162 px. Tighter gutters bring them back
   onto one row. The role line under the name read 12 px; phones get 13. */
@media(max-width:345px){
  html body nav.nav{padding-right:8px;padding-left:8px;column-gap:4px}
  html body nav.nav .nt{padding:0 6px 0 4px}
  html body nav.nav .ly-hdr-right{gap:6px}
}
@media(max-width:760px){html body #tf-trigger .tf-role{font-size:13px}}
/* 769 to 1030 px (a phone held sideways is 812 to 956; an iPad upright is 820 to 834): the nav keeps about 270 px for
   the logo, and the action cluster (Today, Tour, clock, Report, Bid Simulator, Print, name) is 750 px wide at its
   narrowest, so Print and the name chip ran off the right edge. Let the cluster wrap inside what is left. */
@media(min-width:769px) and (max-width:1030px){
  html body nav.nav .nav-actions{min-width:0;flex-wrap:wrap;row-gap:4px}
}

html[dir=rtl] :is(#ly-map-stage,#ly-map-modes,#lyp-ctl,#lym-left,#lym-key,#lym-hint,.lym-ctrls,.bx-map,.bx-mapwrap,.xr-map,.leaflet-container){direction:ltr}
html[dir=rtl] :is(#ly-site-modal,#ly-map-tip){direction:rtl}
html[dir=rtl] #ly-map-modal select{background-position:left 9px center!important}
html[dir=rtl] :is(svg.ly-spark-svg,svg.hg-spark){transform:scaleX(-1)}
html[dir=rtl] svg:is([viewBox="0 0 180 112"],[viewBox="0 0 180 120"],[viewBox="0 0 180 100"]){transform:scaleX(-1)}
html[dir=rtl] svg:is([viewBox="0 0 180 112"],[viewBox="0 0 180 120"],[viewBox="0 0 180 100"]) text{transform-box:fill-box;transform-origin:center;transform:scaleX(-1)}
