/* GOB components, scoped under .gob. Loaded only with a .gob root.
   Requires gob-tokens.css. Frame stage sizes (.gob-frame) are for the handoff
   previews; a live root sizes to its container. */
/* ==========================================================================
   GOB — The Office + Franchise Shell · components.css
   Requires tokens.css. Every colour, type size, spacing step, radius, shadow,
   z-layer and duration here is a token. Literal px values that remain are
   component dimensions (widths/heights/offsets) and are listed in components.md.
   Density: the root element carries .gob-1280 or .gob-1920 (see layout.md).
   ========================================================================== */
.gob,.gob *{box-sizing:border-box}
/* Margin and padding reset stays on shell chrome. Resetting #franchise-container
   wiped the existing card padding and clipped Bebas titles at the left edge. */
.gob .top,.gob .top *,
.gob .rail,.gob .rail *,
.gob .pg-head,.gob .pg-head *,
.gob .gob-settings-host,.gob .gob-settings-host *{margin:0;padding:0}
.gob{position:relative;overflow:hidden;background:var(--bg);color:var(--text-87);font-family:var(--font-body);font-size:var(--fs-13);line-height:var(--lh-body);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
.gob.gob-1280.gob-frame{width:1280px;height:720px}
.gob.gob-1920.gob-frame{width:1920px;height:1080px}
.gob .top a,.gob .rail a,.gob .pg-head a,.gob .gob-settings-host a{color:inherit;text-decoration:none;cursor:pointer}
.gob .top a:hover,.gob .rail a:hover,.gob .pg-head a:hover,.gob .gob-settings-host a:hover{color:var(--text-100)}
.gob .top button,.gob .rail button,.gob .pg-head button,.gob .gob-settings-host button,.gob.gob-settings-host button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:left}
.gob .top b,.gob .rail b,.gob .pg-head b,.gob .gob-settings-host b{font-weight:inherit}
/* links */
.gob .nm{color:var(--text-100);font-weight:var(--fw-semibold);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color var(--dur-hover)}
.gob .nm:hover,.gob .nm.is-hover{text-decoration-color:var(--text-60)}
.gob .lnk{display:inline-flex;align-items:center;gap:var(--dsp-4);color:var(--text-60);font-size:var(--fs-12);font-weight:var(--fw-semibold);white-space:nowrap;transition:color var(--dur-hover)}
.gob .lnk::after{content:'→';transition:transform var(--dur-hover)}
.gob .lnk:hover,.gob .lnk.is-hover{color:var(--text-100)}
.gob .lnk:hover::after,.gob .lnk.is-hover::after{transform:translateX(2px)}
/* app shell */
.gob .app{display:grid;grid-template-rows:var(--top-h) minmax(0,1fr);grid-template-columns:var(--rail-w) minmax(0,1fr);height:100%}
.gob .top{grid-column:1/-1;display:flex;align-items:center;gap:var(--dsp-24);padding:0 var(--space-16) 0 0;background:var(--bg-chrome);border-bottom:1px solid var(--line);position:relative}
.gob .top-id{display:flex;align-items:center;gap:var(--space-12);height:100%}
.gob.gob-1280 .top-id{padding-left:var(--space-16)}
.gob.gob-1920 .top-id{padding-left:var(--space-22);min-width:calc(var(--rail-w) - 22px)}
.gob .top-name{font:var(--fw-bold) var(--fs-22)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-4);color:var(--text-100)}
.gob .top-stats{display:flex;align-items:center;gap:var(--dsp-20)}
.gob .ts{display:flex;flex-direction:column;gap:var(--space-2)}
.gob .ts b{font:var(--fw-bold) var(--fs-20)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-3);color:var(--text-100)}
.gob .ts span{font-size:var(--fs-10);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-8);text-transform:uppercase;color:var(--text-60)}
.gob .top-div{width:1px;height:26px;background:var(--line-strong)}
.gob .top-sp{flex:1}
.gob .advance{height:var(--dsz-40);min-width:138px;padding:0 var(--space-20);border-radius:var(--radius-10);background:var(--green)!important;color:var(--bg)!important;font:var(--fw-bold) var(--fs-18)/var(--lh-1) var(--font-display)!important;letter-spacing:var(--tracking-btn);border:1px solid var(--white-28)!important;box-shadow:var(--shadow-advance);text-align:center!important;white-space:nowrap}
.gob .advance:hover{filter:brightness(1.06);transform:translateY(-1px)}
/* tournament tier top bar */
.gob .top.is-tier{background:linear-gradient(90deg,var(--bg-chrome) 0%,color-mix(in srgb,var(--tier-metal) 10%,transparent) 38%,color-mix(in srgb,var(--tier-metal) 4%,transparent) 70%,var(--bg-chrome) 100%),var(--bg-chrome)}
.gob .top.is-tier::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,var(--tier-metal) 30%,var(--tier-metal-hi) 50%,var(--tier-metal) 70%,transparent)}
.gob .lockup{display:inline-flex;align-items:center;gap:var(--space-10)}
.gob .lk-txt{display:flex;flex-direction:column;line-height:var(--lh-94)}
.gob .lk-l1{font:var(--fw-bold) var(--fs-18)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-4);color:var(--text-100)}
.gob .lk-l2{font:var(--fw-regular) var(--fs-11)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-26);color:var(--tier-metal-hi);margin-top:var(--space-3)}
/* rail */
.gob .rail{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-12) var(--space-10);background:var(--bg-chrome);border-right:1px solid var(--line)}
.gob .rail-i{position:relative;display:flex;align-items:center;gap:var(--space-12);height:44px;border-radius:var(--radius-10);color:var(--text-60);font:var(--fw-bold) var(--fs-16)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-6);transition:color var(--dur-hover)}
.gob.gob-1280 .rail-i{justify-content:center}
.gob.gob-1280 .rail-i span{display:none}
.gob.gob-1920 .rail-i{padding:0 var(--space-14)}
.gob .rail-i svg{width:22px;height:22px;flex:none}
.gob .rail-i:hover{background:var(--white-6);color:var(--text-100)}
.gob .rail-i.on{background:var(--navy);color:var(--text-100);box-shadow:inset 0 1px 0 var(--line-strong)}
.gob .rail-i em{font:var(--fw-bold) var(--fs-11)/var(--lh-1) var(--font-body);font-style:normal;background:var(--badge);color:var(--badge-ink);border-radius:var(--radius-9);min-width:18px;height:18px;display:grid;place-items:center;padding:0 var(--space-5)}
.gob.gob-1280 .rail-i em{position:absolute;top:4px;right:4px;min-width:16px;height:16px;font-size:var(--fs-10)}
.gob.gob-1920 .rail-i em{margin-left:auto}
.gob .rail-sp{flex:1}
.gob .rail-i.exit{color:var(--text-38)}
/* main */
.gob .main{position:relative;min-height:0;overflow-x:hidden;overflow-y:auto;padding:var(--page-pad);background:linear-gradient(160deg,var(--white-2p2) 0%,transparent 40%),var(--bg-page)}
.gob .main::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(132deg,transparent 0 102px,var(--white-1p2) 102px 103px,transparent 103px 208px)}
.gob .main>*{position:relative;z-index:var(--z-raised)}
.gob .main>.pg-head{z-index:var(--z-sticky-head)}
/* atoms */
.gob .logo{display:inline-grid;place-items:center;flex:none;border-radius:var(--radius-logo);background:linear-gradient(160deg,color-mix(in oklab,var(--tc) 100%,var(--white) 14%),var(--tc));color:var(--white);font-family:var(--font-display);font-weight:var(--fw-bold);line-height:var(--lh-1);box-shadow:var(--shadow-logo);padding-top:.08em}
/* Player headshots are square. A circle crops a head to its inscribed disc and
   throws away the shoulders, which is what made them read as too small. This badge
   runs 28–36px, where `.portrait`'s 10px would eat a third of the side and land back
   near a circle, so it takes the corner that reads the same weight at this size. */
.gob .av{display:inline-grid;place-items:center;flex:none;border-radius:var(--radius-6);overflow:hidden;background:var(--surface-3);color:var(--text-60);font-weight:var(--fw-bold);letter-spacing:var(--tracking-2);box-shadow:inset 0 0 0 1px var(--line-strong)}
.gob .portrait{flex:none;border-radius:var(--radius-10);overflow:hidden;background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--line-strong)}
.gob .portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block}
.gob .chip{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:var(--dsz-34);height:var(--dsz-20);padding:0 var(--space-6);border-radius:var(--radius-6);font:var(--fw-bold) var(--fs-11)/var(--lh-1) var(--font-body);letter-spacing:var(--tracking-1);white-space:nowrap}
/* colour-law: positive-data */
.gob .chip.up{color:var(--delta-up);background:color-mix(in srgb,var(--delta-up) 11%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--delta-up) 32%,transparent)}
/* ▼ is neutral, never red (Jamie, 2026-10-01). */
.gob .chip.down{color:var(--text-87);background:var(--white-6);box-shadow:inset 0 0 0 1px var(--line)}
.gob .chip.flat{color:var(--text-60);background:var(--white-5);box-shadow:inset 0 0 0 1px var(--line-strong)}
.gob .t-red{color:var(--tier-red)}.gob .t-yellow{color:var(--tier-yellow)}.gob .t-green{color:var(--tier-green)}.gob .t-blue{color:var(--tier-blue)}
.gob .tdig{font:var(--fw-bold) var(--fs-20)/var(--lh-1) var(--font-display)}
.gob .grade{font:var(--fw-bold) var(--fs-18)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-2)}
.gob .stars{letter-spacing:var(--tracking-1px);color:var(--text-87);font-size:.92em}
.gob .stars i{font-style:normal;color:var(--white-18)}
.gob .wl{display:inline-flex;align-items:center;height:var(--dsz-22);padding:0 var(--space-9);border-radius:var(--radius-6);font:var(--fw-bold) var(--fs-16)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-10);padding-top:var(--space-2)}
.gob .meter{height:var(--dsz-6);border-radius:var(--radius-4);background:var(--white-7);overflow:hidden}
.gob .meter i{display:block;height:100%;background:var(--white-62);border-radius:var(--radius-4)}
/* Diverging pill: zero in the centre, filling right for positive and left for
   negative. `--v` is the magnitude 0–1; `.neg` flips the fill. Shared by Prep ›
   Scouting and Team › Team Attributes, which both read the −20…+20 measures. */
.gob .dv{position:relative;display:inline-block;width:100%;height:6px;margin:0;vertical-align:middle;border-radius:var(--radius-2);background:var(--white-4)}
.gob .dv::before{content:'';position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--white-25)}
.gob .dv i{position:absolute;top:0;bottom:0;left:50%;width:calc(var(--v) * 50%);border-radius:var(--radius-2);background:var(--white-55)}
.gob .dv.neg i{left:auto;right:50%;background:var(--white-25)}
.gob .spread{display:flex;gap:var(--space-2);height:var(--dsz-6)}
.gob .spread i{border-radius:var(--radius-2)}
.gob .spread i:nth-child(1){background:var(--white-75)}.gob .spread i:nth-child(2){background:var(--white-45)}.gob .spread i:nth-child(3){background:var(--white-22)}.gob .spread i:nth-child(4){background:var(--red)}
.gob .sp-key{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-12);font-size:var(--fs-11);color:var(--text-60)}
.gob .sp-key b{color:var(--text-87);font-weight:var(--fw-bold);margin-right:var(--space-3)}
.gob .sp-key .bad b,.gob .sp-key .bad{color:var(--red)}
/* arrival motion — never blocks pointer events */
.gob .arriving .ar-card{animation:arCard var(--dur-arrive-card) var(--ease-out) both}
.gob .arriving .ar-item{animation:arItem var(--dur-arrive-item) var(--ease-out) both;animation-delay:calc(var(--delay-arrive-items) + var(--i,0)*var(--stagger))}
.gob .arriving .ar-pop{animation:arPop var(--dur-pop) var(--ease-pop) both;animation-delay:calc(var(--delay-chips) + var(--i,0)*var(--stagger-chip))}
@keyframes arCard{from{opacity:0;transform:translateY(10px) scale(.985)}}
@keyframes arItem{from{opacity:0;transform:translateY(6px)}}
@keyframes arPop{from{opacity:0;transform:scale(.55)}}

.gob .office{display:flex;flex-direction:column;gap:var(--dsp-8);height:100%;min-height:0;width:100%;max-width:none;margin:0}
.gob .office-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--col-gap);flex:1 1 auto;min-height:0;align-items:stretch}
.gob .office-col{display:flex;flex-direction:column;gap:var(--dsp-12);min-height:0}
.gob .office-h{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-12);padding:0 var(--space-2);height:var(--dsz-22)}
.gob .office-h h2{font:var(--fw-bold) var(--fs-20)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-7);color:var(--text-87);display:flex;gap:var(--space-8);align-items:baseline}
.gob .office-h h2 i{font-style:normal;color:var(--text-38);font-size:var(--fs-15)}
.gob .office-h span{font-size:var(--fs-11);color:var(--text-60);font-weight:var(--fw-medium)}
.gob .card{background:linear-gradient(180deg,var(--white-4),var(--white-1p8));border:1px solid var(--line);border-radius:var(--radius-14);box-shadow:var(--shadow-card);padding:var(--dsp-14) var(--dsp-16);display:flex;flex-direction:column;gap:var(--dsp-10);min-width:0}
.gob .card-h{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-10)}
.gob .card-h h3{font:var(--fw-bold) var(--fs-16)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-8);color:var(--text-60)}
.gob .meta{font-size:var(--fs-11);color:var(--text-60);font-weight:var(--fw-medium);white-space:nowrap}
.gob .sub-h{font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-10);text-transform:uppercase;color:var(--text-38);margin-top:var(--dsp-4)}
.gob .card-f{display:flex;justify-content:flex-end;gap:var(--space-16);margin-top:auto;padding-top:var(--space-2)}
/* to-do */
.gob .todo-list{display:flex;flex-direction:column;gap:var(--dsp-8)}
.gob .todo{display:flex;align-items:center;gap:var(--dsp-12);width:100%;min-height:var(--dsz-50);padding:var(--dsp-10) var(--dsp-12);border-radius:var(--radius-10);background:var(--white-3p5);box-shadow:inset 0 0 0 1px var(--line);transition:background var(--dur-hover),box-shadow var(--dur-hover),transform var(--dur-hover)}
.gob .todo:hover,.gob .todo.is-hover{background:var(--white-7);box-shadow:inset 0 0 0 1px var(--white-20);transform:translateY(-1px)}
.gob .cbox{width:var(--dsz-18);height:var(--dsz-18);flex:none;border-radius:var(--radius-5);box-shadow:inset 0 0 0 1.5px var(--white-40);display:grid;place-items:center;color:var(--bg)}
.gob .cbox svg{width:78%;height:78%}
.gob .td-t{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;flex:1}
.gob .td-l{font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--text-87)}
.gob .td-m{font-size:var(--fs-11);color:var(--text-60)}
.gob .td-m2{font-size:var(--fs-11);color:var(--text-38);margin-top:var(--space-2)}
.gob .td-adv{align-self:flex-start;font:var(--fw-bold) var(--fs-11)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-12);color:var(--text-60);padding:var(--space-4) var(--space-6) var(--space-3);border-radius:var(--radius-4);box-shadow:inset 0 0 0 1px var(--line-strong);white-space:nowrap}
.gob .td-c{width:16px;height:16px;flex:none;color:var(--text-38);transition:transform var(--dur-hover),color var(--dur-hover)}
.gob .todo:hover .td-c,.gob .todo.is-hover .td-c{color:var(--text-100);transform:translateX(2px)}
.gob .todo:hover .td-l,.gob .todo.is-hover .td-l{color:var(--text-100)}
.gob .todo.done{background:transparent;box-shadow:inset 0 0 0 1px var(--white-5)}
.gob .todo.done .cbox{background:var(--text-38);box-shadow:none}
.gob .todo.done .td-l{color:var(--text-38);text-decoration:line-through;text-decoration-color:var(--white-25)}
.gob .todo.done .td-m{color:var(--text-38)}
.gob .note-list{display:flex;flex-direction:column}
.gob .note{display:flex;align-items:center;gap:var(--dsp-10);padding:var(--dsp-8) var(--dsp-4);border-top:1px solid var(--line);color:var(--text-60);font-size:var(--fs-12)}
.gob .note:first-child{border-top:0}
.gob .nt-b{width:5px;height:5px;border-radius:var(--radius-round);background:var(--text-38);flex:none}
.gob .nt-l{flex:1;min-width:0}
.gob .nt-l em{font-style:normal;color:var(--text-38)}
.gob .note:hover .lnk{color:var(--text-100)}
.gob .more{margin-top:var(--space-2)}
/* result */
.gob .res-k{display:flex;align-items:center;gap:var(--dsp-10)}
.gob .res-k .res-when{font-size:var(--fs-11);color:var(--text-60);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-6);text-transform:uppercase;flex:1}
.gob .res-score{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto minmax(0,1fr);align-items:center;gap:var(--dsp-12)}
.gob .rs-team{display:flex;align-items:center;gap:var(--dsp-10);min-width:0}
.gob .rs-team.r{justify-content:flex-end;text-align:right}
.gob .rs-n{font:var(--fw-bold) var(--fs-22)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-3);color:var(--text-100);white-space:nowrap}
.gob .rs-team.r .rs-n{color:var(--text-60)}
.gob .rs-n em{font-style:normal;font-size:.8em;color:var(--text-60);margin-right:var(--space-4)}
.gob .rs-pts{font:var(--fw-bold) var(--fs-48)/var(--lh-9) var(--font-display);color:var(--text-100);letter-spacing:var(--tracking-1)}
.gob .rs-pts.them{color:var(--text-60)}
.gob .rs-dash{font:var(--fw-regular) var(--fs-28)/var(--lh-1) var(--font-display);color:var(--text-38)}
.gob .res-hl{font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--text-87);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.gob .res-hl:hover{text-decoration-color:var(--white-50)}
.gob .potg{display:flex;align-items:center;gap:var(--dsp-12);padding-top:var(--dsp-10);border-top:1px solid var(--white-10)}
.gob .pg-id{display:flex;flex-direction:column;gap:var(--space-3);flex:1;min-width:0}
.gob .eyebrow{font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-10);text-transform:uppercase;color:var(--text-60)}
.gob .pg-n{font-size:var(--fs-16)}
.gob .pg-p{font-size:var(--fs-11);color:var(--text-60);display:flex;align-items:center;gap:var(--space-6)}
.gob .pg-p .tdig{font-size:var(--fs-16)}
.gob .pg-line{display:flex;gap:var(--dsp-16)}
.gob .pg-line div,.gob .pg-extra div{display:flex;flex-direction:column;align-items:center}
.gob .pg-line b{font:var(--fw-bold) var(--fs-32)/var(--lh-9) var(--font-display);color:var(--text-100)}
.gob .pg-line span,.gob .pg-extra span{font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-8);color:var(--text-60)}
.gob .pg-extra{display:flex;gap:var(--dsp-20);justify-content:flex-end;margin-top:calc(var(--dsp-4)*-1)}
.gob .pg-extra b{font:var(--fw-bold) var(--fs-18)/var(--lh-1) var(--font-display);color:var(--text-87)}
/* moved */
.gob .mv-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dsp-8)}
.gob .mv-cell{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--dsp-10) var(--dsp-12);border-radius:var(--radius-10);background:var(--white-3);box-shadow:inset 0 0 0 1px var(--line);transition:background var(--dur-hover)}
.gob .mv-cell:hover{background:var(--white-6p5)}
.gob .mv-l{font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-8);text-transform:uppercase;color:var(--text-60);white-space:nowrap}
.gob .mv-v{display:flex;align-items:center;gap:var(--space-8)}
.gob .mv-v>b{font:var(--fw-bold) var(--fs-28)/var(--lh-9) var(--font-display);color:var(--text-100)}
.gob .mv-list{display:flex;flex-direction:column}
.gob .mv-p{display:flex;align-items:center;gap:var(--dsp-10);padding:var(--dsp-8) var(--space-2);border-top:1px solid var(--line)}
.gob .mv-p:first-child{border-top:0}
.gob .mv-pn{flex:1;display:flex;align-items:baseline;gap:var(--space-8);min-width:0;font-size:var(--fs-13)}
.gob .mv-pn>span:last-child{color:var(--text-60);font-size:var(--fs-12)}
.gob .mv-ft{display:flex;align-items:center;gap:var(--space-6)}
.gob .mv-ft i{font-style:normal;color:var(--text-38);font-size:var(--fs-12)}
/* wire */
.gob .wr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--dsp-10);padding:var(--dsp-8) var(--space-2);border-top:1px solid var(--line)}
.gob.gob-1920 .wr{grid-template-columns:auto auto minmax(0,1fr) auto}
.gob .office-wire .card-h+.wr{border-top:0}
.gob .wr .chip{min-width:var(--dsz-24);padding:0}
.gob .wr-b{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.gob .wr-1{display:flex;align-items:baseline;gap:var(--space-8);font-size:var(--fs-13);white-space:nowrap}
.gob .wr-1 .wr-m{font-size:var(--fs-11);color:var(--text-60)}
.gob .wr-2{font-size:var(--fs-12);color:var(--text-87)}
.gob .wr.dn .wr-2{color:var(--text-87)}
.gob .wr-tag{font:var(--fw-bold) var(--fs-16)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-4);color:var(--text-87)}
.gob .wr.up .wr-tag{color:var(--delta-up)}
/* next */
.gob .nx-top{display:flex;justify-content:space-between;gap:var(--space-10)}
.gob .nx-m{display:flex;align-items:center;gap:var(--dsp-12)}
.gob .nx-m>div{display:flex;flex-direction:column;gap:var(--space-3)}
.gob .nx-at{font:var(--fw-regular) var(--fs-14)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-12);color:var(--text-60)}
.gob .nx-name{font:var(--fw-bold) var(--fs-32)/var(--lh-9) var(--font-display);letter-spacing:var(--tracking-2);color:var(--text-100)}
.gob .nx-name:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.gob .nx-sub{font-size:var(--fs-12);color:var(--text-60)}
.gob .nx-rt{display:flex;align-items:center;gap:var(--dsp-16);padding:var(--dsp-8) var(--dsp-12);border-radius:var(--radius-10);background:var(--white-3);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--fs-11);color:var(--text-60);font-weight:var(--fw-semibold)}
.gob .nx-rt>span:first-child{flex:1;letter-spacing:var(--tracking-8);text-transform:uppercase;font-size:var(--fs-10)}
.gob .nx-rt>span{display:flex;align-items:center;gap:var(--space-6)}
.gob .ptw{display:flex;align-items:center;gap:var(--dsp-10);padding:var(--dsp-6) var(--space-2);border-top:1px solid var(--line)}
.gob .sub-h+.ptw{border-top:0}
.gob .ptw .nm{font-size:var(--fs-13)}
.gob .ptw-r{flex:1;font-size:var(--fs-11);color:var(--text-60)}
.gob .ptw b{font:var(--fw-bold) var(--fs-22)/var(--lh-1) var(--font-display);color:var(--text-100)}
.gob .ptw em{font-style:normal;font-size:var(--fs-10);font-weight:var(--fw-bold);color:var(--text-60);letter-spacing:var(--tracking-6);width:var(--dsz-28)}
.gob .ldr-tiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--dsp-8)}
.gob .ldr{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--dsp-10) var(--dsp-12);border-radius:var(--radius-10);background:var(--white-3);box-shadow:inset 0 0 0 1px var(--line)}
.gob .ldr .eyebrow{font-size:var(--fs-10)}
.gob .ldr-v{display:flex;align-items:baseline;gap:var(--space-6)}
.gob .ldr-v b{font:var(--fw-bold) var(--fs-32)/var(--lh-9) var(--font-display);color:var(--text-100)}
.gob .ldr-v em{font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-bold);color:var(--text-60)}
.gob .five{display:flex;flex-direction:column}
.gob .f5{display:grid;grid-template-columns:auto minmax(0,1fr) var(--dsz-30) var(--dsz-26) var(--dsz-64);align-items:center;gap:var(--dsp-10);padding:var(--dsp-6) var(--space-2);border-top:1px solid var(--line);font-size:var(--fs-13)}
.gob .f5:first-child{border-top:0}
.gob .f5-p{font-size:var(--fs-11);color:var(--text-60);font-weight:var(--fw-semibold)}
.gob .f5 .tdig{text-align:center}
.gob .f5-s{text-align:right;color:var(--text-87);font-weight:var(--fw-semibold)}
.gob .f5-s em{font-style:normal;color:var(--text-60);font-size:var(--fs-10);margin-left:var(--space-3)}
/* tournament next card — broadcast tier */
.gob .office-next.tier{position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--tier-metal) 50%,transparent);background:radial-gradient(120% 70% at 50% 0%,color-mix(in srgb,var(--tier-metal) 18%,transparent),transparent 60%),linear-gradient(180deg,var(--surface-tier-top),var(--surface-tier-bottom));box-shadow:var(--shadow-tier)}
.gob .office-next.tier::before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(132deg,transparent 0 22px,color-mix(in srgb,var(--tier-metal-hi) 3.5%,transparent) 22px 23px)}
.gob .office-next.tier>*{position:relative}
.gob .tn-band{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);padding-bottom:var(--dsp-10);border-bottom:1px solid color-mix(in srgb,var(--tier-metal) 35%,transparent)}
.gob .tn-round{font:var(--fw-bold) var(--fs-40)/var(--lh-85) var(--font-display);letter-spacing:var(--tracking-3);color:var(--text-100);text-shadow:0 0 24px color-mix(in srgb,var(--tier-metal-hi) 35%,transparent)}
.gob .tn-vs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--dsp-12);padding:var(--dsp-6) 0}
.gob .tn-side{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);text-align:center}
.gob .tn-lg{position:relative}
.gob .tn-seed{position:absolute;left:-8px;top:-8px;width:var(--dsz-22);height:var(--dsz-22);border-radius:var(--radius-round);background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--tier-metal);color:var(--tier-metal-hi);font:var(--fw-bold) var(--fs-13)/var(--lh-1) var(--font-display);display:grid;place-items:center;padding-top:var(--space-1)}
.gob .tn-name{font:var(--fw-bold) var(--fs-28)/var(--lh-9) var(--font-display);letter-spacing:var(--tracking-3);color:var(--text-100)}
.gob .tn-side:hover .tn-name{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.gob .tn-rec{font-size:var(--fs-11);color:var(--text-60)}
.gob .tn-x{font:var(--fw-bold) var(--fs-24)/var(--lh-1) var(--font-display);color:var(--tier-metal-hi);letter-spacing:var(--tracking-8)}
.gob .tn-when{display:flex;justify-content:space-between;gap:var(--space-10);padding:var(--dsp-8) var(--dsp-12);border-radius:var(--radius-10);background:color-mix(in srgb,var(--tier-metal) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tier-metal) 28%,transparent);font-size:var(--fs-12);color:var(--text-87);font-weight:var(--fw-semibold)}
.gob .tn-when span:last-child{color:var(--text-60);font-weight:var(--fw-medium)}
/* snapshot */
.gob .sn-row{display:flex;align-items:baseline;justify-content:space-between}
.gob .sn-l{font-size:var(--fs-12);color:var(--text-60);font-weight:var(--fw-medium)}
.gob .sn-v{font:var(--fw-bold) var(--fs-22)/var(--lh-1) var(--font-display);color:var(--text-100)}
.gob .sn-v i{font-style:normal;color:var(--text-38);font-size:.75em}
.gob .sn-g{display:flex;flex-direction:column;gap:var(--space-6)}
.gob .msr{display:flex;align-items:center;gap:var(--dsp-10);padding:var(--dsp-6) var(--space-2);border-top:1px solid var(--line);font-size:var(--fs-13)}
.gob .sub-h+.msr{border-top:0}
.gob .msr>span:first-child{flex:1;color:var(--text-87)}
.gob .msr:hover>span:first-child{color:var(--text-100);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--white-50)}
.gob .msr b{font:var(--fw-bold) var(--fs-20)/var(--lh-1) var(--font-display);color:var(--text-87)}
/* season preview (empty state) */
.gob .sp-card{gap:var(--dsp-12)}
.gob .sp-k{display:flex;align-items:center;gap:var(--space-10)}
.gob .sp-tag{font:var(--fw-bold) var(--fs-14)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-12);color:var(--text-100);padding:var(--space-5) var(--space-9) var(--space-4);border-radius:var(--radius-6);background:color-mix(in srgb,var(--team-primary) 55%,transparent);box-shadow:inset 0 0 0 1px var(--white-18)}
.gob .sp-title{font:var(--fw-bold) var(--fs-28)/var(--lh-95) var(--font-display);color:var(--text-100);letter-spacing:var(--tracking-2)}
.gob .sp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dsp-8)}

.gob .office-col>*,.gob .d2-prev>*,.gob .d2-side>*,.gob .d2-front>*{flex-shrink:0}
.gob .f5-n{display:flex;align-items:center;gap:var(--space-8);min-width:0}
.gob .f5-tag{font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-6);text-transform:uppercase;color:var(--text-60);padding:var(--space-2) var(--space-6);border-radius:var(--radius-4);box-shadow:inset 0 0 0 1px var(--line-strong);white-space:nowrap}
.gob .office-next.tier{gap:var(--dsp-8)}
.gob .office-next.tier .tn-vs{padding:0}

.gob.gob-1280 .card{gap:var(--space-8);padding:var(--space-12) var(--space-14)}
.gob.gob-1280 .office-col{gap:var(--space-10)}
.gob.gob-1280 .rs-pts{font-size:var(--fs-40)}
.gob.gob-1280 .potg{padding-top:var(--space-8)}
.gob.gob-1280 .mv-cell{padding:var(--space-7) var(--space-10);gap:var(--space-4)}
.gob.gob-1280 .mv-v>b{font-size:var(--fs-24)}
.gob.gob-1280 .mv-p{padding:var(--space-5) var(--space-2)}
.gob.gob-1280 .wr{padding:var(--space-5) var(--space-2)}
.gob .office-wire .card-h .lnk{margin-left:auto}
.gob .office-wire .card-h .meta{margin-left:auto}
.gob.gob-1920 .f5{padding:var(--dsz-4) var(--space-2)}
.gob.gob-1920 .msr{padding:var(--dsz-4) var(--space-2)}
.gob.gob-1920 .office-next,.gob.gob-1920 .office-snap{gap:var(--dsp-8)}
.gob .d2-prev{gap:var(--dsp-6)}
.gob.gob-1280 .rs-pts{font-size:var(--fs-36)}.gob.gob-1280 .wr{padding:var(--space-4) var(--space-2)}.gob.gob-1280 .mv-p{padding:var(--space-4) var(--space-2)}.gob.gob-1280 .office-h{height:20px}.gob.gob-1280 .office-wire{gap:var(--space-6)}

/* ── Round 2: shell, states, settings, gameplay ── */
/* rail */
.gob .rail{gap:var(--space-2)}
.gob .rail-div{height:1px;background:var(--line);margin:var(--space-6) var(--space-4)}
.gob .rail-div.q{margin:var(--space-8) var(--space-4) var(--space-6);background:var(--white-5)}
.gob .rail-i.util{height:40px;color:var(--text-60)}
.gob .rail-i.util svg{width:20px;height:20px}
.gob .rail-i.open{background:var(--white-10);color:var(--text-100);box-shadow:inset 0 0 0 1px var(--line-strong)}
.gob .rail-i.exit{height:36px;color:var(--text-38);font-size:var(--fs-14)}
.gob .rail-i.exit svg{width:18px;height:18px}
.gob .rail-i.exit:hover{color:var(--text-87);background:var(--white-4)}
.gob .rail-i em.urgent{box-shadow:0 0 0 2px color-mix(in srgb,var(--badge) 35%,transparent);animation:badgePulse var(--dur-pulse) ease-out infinite}
@keyframes badgePulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--badge) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.gob .rail-i em.urgent{animation:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--badge) 50%,transparent)}}
.gob.gob-1920 .rail{padding:var(--space-14) var(--space-12)}
/* top bar */
.gob .top-stats .ts-tier{flex-direction:row;align-items:center;gap:var(--space-8)}
.gob .top.is-tier{background:radial-gradient(420px 90px at 38% 50%,color-mix(in oklab,var(--tier-metal) 13%,transparent),transparent 70%),var(--bg-chrome)}
.gob .top.is-tier::after{height:1px;background:linear-gradient(90deg,transparent 5%,var(--tier-metal) 30%,var(--tier-metal-hi) 45%,var(--tier-metal) 60%,transparent 90%);opacity:.8}
.gob .top.is-tier .ts-tier span{color:var(--tier-metal-hi)}
.gob .adv-wrap{display:flex;align-items:center;gap:var(--space-14)}
.gob .adv-hint{font-size:var(--fs-12);color:var(--text-60);font-weight:var(--fw-semibold);white-space:nowrap}
.gob .adv-hint::after{content:' →'}
.gob .adv-hint:hover{color:var(--text-100)}
.gob .advance{transition:transform var(--dur-press),filter var(--dur-hover),box-shadow var(--dur-hover);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8)}
.gob .advance:active,.gob .advance.is-press{transform:translateY(1px) scale(.985);filter:brightness(.94);box-shadow:inset 0 2px 4px var(--black-25)!important}
.gob .advance.is-hover{filter:brightness(1.06);transform:translateY(-1px)}
.gob .advance.is-loading{filter:saturate(.55) brightness(.82);cursor:progress;transform:none;box-shadow:inset 0 1px 0 var(--white-20)!important}
.gob .advance.is-disabled{background:var(--white-6)!important;color:var(--text-38)!important;border-color:var(--white-12)!important;box-shadow:none!important;cursor:not-allowed;filter:none;transform:none}
.gob .adv-lock{display:inline-flex;width:15px;height:15px}
.gob .adv-lock svg{width:100%;height:100%}
/* to-do gated/locked */
.gob .td-gate{display:inline-flex;align-items:center;gap:var(--space-5);font:var(--fw-bold) var(--fs-11)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-10);color:var(--text-87);padding:var(--space-4) var(--space-7) var(--space-3);border-radius:var(--radius-4);box-shadow:inset 0 0 0 1px var(--white-40);background:transparent;white-space:nowrap;align-self:flex-start}
.gob .td-gate svg{width:11px;height:11px;margin-top:-1px}
.gob .todo.gated{box-shadow:inset 0 0 0 1px var(--white-40)}
.gob .todo.gated .cbox{box-shadow:inset 0 0 0 1.5px var(--white-62)}
.gob .todo.locked .td-l{color:var(--text-60)}
.gob .todo.locked .cbox{box-shadow:inset 0 0 0 1.5px var(--white-20)}
.gob .todo.locked .td-adv{opacity:.5}
.gob .res-season{font:var(--fw-bold) var(--fs-14)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-8);color:var(--text-87);padding-bottom:var(--dsp-8);border-bottom:1px solid var(--line)}
.gob .res-next{display:flex;align-items:center;gap:var(--space-8);padding:var(--dsp-8) var(--dsp-10);border-radius:var(--radius-8);background:var(--white-3p5);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--fs-12)}
.gob .res-next>span{font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-10);text-transform:uppercase;color:var(--text-60)}
.gob .res-next b{font-weight:var(--fw-semibold);color:var(--text-87);flex:1}
.gob .res-next i{font-style:normal;color:var(--text-60);font-weight:var(--fw-semibold)}
.gob .res-next:hover i{color:var(--text-100)}
.gob .nx-lbl{color:var(--text-87);font-weight:var(--fw-bold)}
.gob .sp-title:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
/* final standings */
.gob .st-t{display:flex;flex-direction:column}
.gob .st-r{display:grid;grid-template-columns:var(--dsz-18) minmax(0,1fr) var(--dsz-52) var(--dsz-60);align-items:center;gap:var(--dsp-10);padding:var(--dsp-6) var(--dsp-8);border-top:1px solid var(--line);font-size:var(--fs-12);color:var(--text-87)}
.gob .st-r>span:nth-child(n+3){text-align:right}
.gob .st-r>span:first-child{color:var(--text-38);font-weight:var(--fw-bold)}
.gob .st-hd{font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-8);text-transform:uppercase;color:var(--text-38);border-top:0;padding-top:0}
.gob .st-hd>span{color:var(--text-38)!important}
.gob .st-r.me{background:color-mix(in srgb,var(--navy) 35%,transparent);border-radius:var(--radius-6);border-top-color:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--navy-hi) 35%,transparent)}
.gob .st-r.me+.st-r{border-top-color:transparent}
.gob .st-n{display:flex;align-items:center;gap:var(--space-8);min-width:0}
.gob .st-n em{font-style:normal;font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-6);text-transform:uppercase;color:var(--text-60)}
.gob a.st-r:not(.st-hd):hover{background:var(--white-5)}
/* signing */
.gob .sg-pts{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--dsp-10) var(--dsp-12);border-radius:var(--radius-10);background:var(--white-3);box-shadow:inset 0 0 0 1px var(--line)}
.gob .sg-pv b{font:var(--fw-bold) var(--fs-40)/var(--lh-9) var(--font-display);color:var(--text-100)}
.gob .sg-pv i{font-style:normal;font:var(--fw-bold) var(--fs-18)/var(--lh-1) var(--font-display);color:var(--text-38);margin-left:var(--space-4)}
.gob .sg-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--dsp-8)}
.gob .sg-t{grid-template-columns:auto minmax(0,1fr) auto}
.gob.gob-1920 .sg-t{grid-template-columns:auto auto minmax(0,1fr) auto}
.gob .sg-t .chip{min-width:var(--dsz-40);padding:0 var(--space-5)}
.gob .sg-t:first-of-type{border-top:0}
/* page (section) with sub-tabs */
.gob .main.scroll{overflow-y:auto;overflow-x:hidden;padding-top:0}
.gob .main.scroll::-webkit-scrollbar{width:10px}.gob .main.scroll::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--radius-6);border:2px solid transparent;background-clip:padding-box}.gob .main.scroll::-webkit-scrollbar-track{background:transparent}
.gob .pg-head{position:sticky;top:0;z-index:var(--z-sticky-head);height:var(--dsz-118);padding-top:var(--page-pad);display:flex;flex-direction:column;gap:var(--space-12);background:linear-gradient(180deg,var(--bg-page-solid) 85%,var(--bg-page))}
.gob .pg-title{display:flex;align-items:baseline;gap:var(--space-14)}
.gob .pg-title h1{font:var(--fw-bold) var(--fs-32)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-4);color:var(--text-100)}
.gob .pg-title .crumb{font-size:var(--fs-12);color:var(--text-60)}
.gob .subtabs{display:flex;gap:var(--space-6)}
/* .pg-head button and .pg-head * outrank a bare .stab (font, background, padding). */
.gob .pg-head .stab{position:relative;display:grid;place-items:center;height:40px;min-width:118px;padding:0 var(--space-20);clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);background:var(--white-6);color:var(--white-55)!important;font:var(--fw-bold) var(--fs-16)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-4);text-align:center;transition:background var(--dur-hover),color var(--dur-hover)}
.gob .stab:hover,.gob .stab.is-hover{background:var(--white-11);color:var(--white-90)!important}
.gob .stab.on{background:var(--white-9);color:var(--white)!important}
.gob .stab.on::before{content:'';position:absolute;left:10px;right:0;top:0;height:2px;background:var(--white-70)}
.gob .rtab{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-13);background:var(--white-2);border-radius:var(--radius-12)}
.gob .rtab th{position:sticky;top:var(--dsz-118);z-index:var(--z-sticky);height:36px;padding:0 var(--space-12);text-align:center;font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-8);text-transform:uppercase;color:var(--text-60);background:linear-gradient(180deg,var(--surface-th-top),var(--surface-th-bottom));border-bottom:1px solid var(--line-strong)}
.gob .rtab th:first-child{border-top-left-radius:12px}.gob .rtab th:last-child{border-top-right-radius:12px}
.gob .rtab th.l,.gob .rtab td.l{text-align:left}
.gob .rtab td{height:var(--dsz-44);padding:0 var(--space-12);text-align:center;border-bottom:1px solid var(--line);color:var(--text-87)}
.gob .rtab tr:nth-child(even) td{background:var(--white-1p2)}
.gob .rtab tbody tr:hover td{background:var(--white-5)}
.gob .rtab .pl{display:flex;align-items:center;gap:var(--space-10)}
.gob .rtab .dim{color:var(--text-60)}
.gob .en{display:flex;align-items:center;gap:var(--space-8);justify-content:center}
.gob .en i{display:block;width:56px;height:5px;border-radius:var(--radius-3);background:var(--white-7);overflow:hidden}
.gob .en i b{display:block;height:100%;border-radius:var(--radius-3)}
.gob .en span{width:24px;text-align:right;color:var(--text-60);font-size:var(--fs-12)}
.gob .rtab .st-sep td{height:28px;font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-10);text-transform:uppercase;color:var(--text-38);text-align:left;background:transparent!important}
/* settings panel */
.gob .set-scrim{position:absolute;left:var(--rail-w);top:var(--top-h);right:0;bottom:0;background:var(--scrim);z-index:var(--z-scrim)}
.gob .settings{position:absolute;left:var(--rail-w);top:var(--top-h);bottom:0;width:440px;z-index:var(--z-panel);display:flex;flex-direction:column;background:var(--surface-panel);border-right:1px solid var(--line-strong);box-shadow:var(--shadow-panel);animation:setIn var(--dur-panel) var(--ease-out) both}
@keyframes setIn{from{transform:translateX(-24px);opacity:0}}
.gob .set-h{flex:none;display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 var(--space-20) 0 var(--space-24);border-bottom:1px solid var(--line)}
.gob .set-h h2{font:var(--fw-bold) var(--fs-28)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-4);color:var(--text-100)}
.gob .set-x{appearance:none;background:transparent;border:0;padding:0;width:32px;height:32px;border-radius:var(--radius-8);display:grid!important;place-items:center;color:var(--text-60)!important;font-size:var(--fs-22)!important;text-align:center!important}
.gob .set-x:hover{background:var(--white-7);color:var(--text-100)!important}
.gob .set-b{flex:1;display:flex;flex-direction:column;gap:var(--space-24);padding:var(--space-20) var(--space-24);min-height:0;overflow-y:auto;overscroll-behavior:contain}
.gob .set-b::-webkit-scrollbar{width:10px}.gob .set-b::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--radius-6);border:2px solid transparent;background-clip:padding-box}.gob .set-b::-webkit-scrollbar-track{background:transparent}
.gob .set-s{display:flex;flex-direction:column;gap:var(--space-16)}
.gob .set-s h3{font:var(--fw-bold) var(--fs-16)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-10);color:var(--text-60);display:flex;justify-content:space-between;align-items:baseline}
.gob .set-s h3 span{font:var(--fw-medium) var(--fs-11)/var(--lh-1) var(--font-body);letter-spacing:0;color:var(--text-38)}
.gob .aud-list{display:flex;flex-direction:column;border-radius:var(--radius-10);background:var(--white-3p5);box-shadow:inset 0 0 0 1px var(--line)}
.gob .aud{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);height:48px;padding:0 var(--space-16)}
.gob .aud+.aud{border-top:1px solid var(--line)}
.gob .aud .tgl{appearance:none;border:0;padding:0;cursor:pointer}
.gob .aud-l{font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--text-87)}
.gob .aud.is-off .aud-l{color:var(--text-60)}
.gob .aud-note{font-size:var(--fs-12);color:var(--text-38)}
.gob .slider{position:relative;height:18px;display:flex;align-items:center;cursor:pointer}
.gob .slider::before{content:'';position:absolute;left:0;right:0;height:4px;border-radius:var(--radius-2);background:var(--white-10)}
.gob .slider i{position:absolute;left:0;height:4px;border-radius:var(--radius-2);background:var(--white-72)}
.gob .slider b{position:absolute;width:14px;height:14px;margin-left:-7px;border-radius:var(--radius-round);background:var(--white);box-shadow:0 1px 4px var(--black-50),0 0 0 3px transparent;transition:box-shadow var(--dur-hover)}
.gob .slider:hover b,.gob .slider.is-hover b{box-shadow:0 1px 4px var(--black-50),0 0 0 5px var(--white-12)}
.gob .slider.is-drag b{box-shadow:0 1px 4px var(--black-50),0 0 0 7px color-mix(in srgb,var(--navy) 55%,transparent)}
.gob .cs-grid{display:flex;flex-wrap:wrap;gap:var(--space-12)}
.gob .cs{flex:1 1 auto;min-width:max-content;display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-12) var(--space-16);border-radius:var(--radius-10);background:var(--white-3p5);box-shadow:inset 0 0 0 1px var(--line)}
.gob .cs b{font:var(--fw-bold) var(--fs-24)/var(--lh-9) var(--font-display);color:var(--text-100)}
.gob .cs span{font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-6);text-transform:uppercase;color:var(--text-60);line-height:var(--lh-1p25)}
.gob .cs-rec b{display:flex;align-items:baseline;gap:var(--space-6);white-space:nowrap}
.gob .cs-rec i{font-style:normal;color:var(--text-38)}
.gob .cs-rec em{font-style:normal}
.gob .acct{display:grid;grid-template-columns:84px minmax(0,1fr);gap:var(--space-6) var(--space-12);font-size:var(--fs-13)}
.gob .acct span{color:var(--text-60)}
.gob .acct b{color:var(--text-87);font-weight:var(--fw-semibold)}
.gob .btn-ghost{height:42px;min-width:138px;padding:0 var(--space-18);border-radius:var(--radius-10);background:var(--white-5)!important;border:1px solid var(--white-18)!important;color:var(--text-87)!important;font:var(--fw-bold) var(--fs-17)/var(--lh-1) var(--font-display)!important;letter-spacing:var(--tracking-btn-sm);text-align:center!important;box-shadow:inset 0 1px 0 var(--line);align-self:flex-start;transition:background var(--dur-hover),transform var(--dur-press)}
.gob .btn-ghost:hover{background:var(--white-10)!important;transform:translateY(-1px)}
.gob .set-f{flex:none;display:flex;justify-content:space-between;align-items:center;height:44px;padding:0 var(--space-24);border-top:1px solid var(--line);font-size:var(--fs-11);color:var(--text-38);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-3)}
.gob .set-f-l{display:flex;align-items:center;gap:var(--space-12);min-width:0}
.gob .set-f .conn{display:flex;align-items:center;gap:var(--space-6);color:var(--text-60)}
.gob .set-f .conn i{width:6px;height:6px;border-radius:var(--radius-round);background:var(--text-60)}
.gob .set-f .conn.off i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--white-40)}
.gob .set-note{font-size:var(--fs-12);color:var(--text-38)}
/* toggle switch */
.gob .tgl{width:36px;height:20px;border-radius:var(--radius-10);background:var(--white-12);position:relative;flex:none;box-shadow:inset 0 0 0 1px var(--line-strong);transition:background var(--dur-toggle)}
.gob .tgl::after{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:var(--radius-round);background:var(--switch-knob-off);transition:transform var(--dur-toggle)}
.gob .tgl.on{background:var(--navy);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--navy-hi) 45%,transparent)}
.gob .tgl.on::after{transform:translateX(16px);background:var(--white)}
/* gameplay */
.gob .gp{position:absolute;inset:0;background:repeating-linear-gradient(135deg,var(--placeholder-a) 0 14px,var(--placeholder-b) 14px 28px)}
.gob .gp-court{position:absolute;left:0;right:0;top:0;bottom:0;display:grid;place-items:center;font:var(--fw-medium) var(--fs-13)/var(--lh-1) ui-monospace,Menlo,monospace;color:var(--white-30);letter-spacing:var(--tracking-4)}
.gob .sb{position:absolute;left:50%;top:14px;transform:translateX(-50%);display:flex;align-items:stretch;height:52px;border-radius:var(--radius-12);background:var(--surface-scoreboard);box-shadow:var(--shadow-scoreboard);overflow:visible}
.gob .sb-t{display:flex;align-items:center;gap:var(--space-10);padding:0 var(--space-16)}
.gob .sb-t b{font:var(--fw-bold) var(--fs-20)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-5);color:var(--text-87)}
.gob .sb-t strong{font:var(--fw-bold) var(--fs-34)/var(--lh-1) var(--font-display);color:var(--text-100);min-width:40px;text-align:center}
.gob .sb-c{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 var(--space-18);border-left:1px solid var(--line);border-right:1px solid var(--line)}
.gob .sb-c b{font:var(--fw-bold) var(--fs-22)/var(--lh-1) var(--font-display);color:var(--text-100)}
.gob .sb-c span{font-size:var(--fs-10);font-weight:var(--fw-bold);letter-spacing:var(--tracking-10);color:var(--text-60)}
.gob .sb-snd{position:relative;display:flex;align-items:center;padding:0 var(--space-8);border-left:1px solid var(--line)}
.gob .sb-snd button{width:30px;height:30px;border-radius:var(--radius-7);display:grid!important;place-items:center;color:var(--text-38)!important;text-align:center!important}
.gob .sb-snd button svg{width:17px;height:17px}
.gob .sb-snd button:hover,.gob .sb-snd button.open{color:var(--text-100)!important;background:var(--line)}
.gob .snd-pop{position:absolute;right:-6px;top:calc(100% + 8px);width:250px;padding:var(--space-12) var(--space-14);border-radius:var(--radius-12);background:var(--surface-popover);box-shadow:var(--shadow-popover);display:flex;flex-direction:column;gap:var(--space-10);z-index:var(--z-popover)}
.gob .snd-pop::before{content:'';position:absolute;right:16px;top:-5px;width:10px;height:10px;transform:rotate(45deg);background:var(--surface-popover);box-shadow:-1px -1px 0 var(--white-12)}
.gob .snd-r{display:grid;grid-template-columns:48px minmax(0,1fr) 26px;align-items:center;gap:var(--space-10);font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--text-87)}
.gob .snd-r span:last-child{text-align:right;color:var(--text-60)}
.gob .snd-m{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--text-87);padding-bottom:var(--space-8);border-bottom:1px solid var(--line)}
.gob .calm.arriving .ar-pop{animation:arItem var(--dur-arrive-item) ease both;animation-delay:calc(var(--delay-chips-calm) + var(--i,0)*var(--stagger-chip))}
.gob .calm.arriving .ar-card{animation-duration:var(--dur-arrive-item)}
.gob .td-tags{display:flex;gap:var(--space-6);margin-top:var(--space-5)}
.gob .td-tags .td-adv,.gob .td-tags .td-gate{align-self:auto}
.gob.gob-1280 .office-next.tier .tn-round{font-size:var(--fs-32)}
.gob.gob-1280 .office-next.tier .tn-name{font-size:var(--fs-22)}
.gob.gob-1280 .office-next.tier .tn-when{padding:var(--space-6) var(--space-10);font-size:var(--fs-11)}
.gob.gob-1280 .office-next.tier .tn-rec .grade{font-size:var(--fs-13)}
.gob.gob-1280 .office-next.tier .ptw{padding:var(--space-4) var(--space-2)}
.gob.gob-1280 .office-snap .sn-g{gap:var(--space-4)}
.gob.gob-1280 .office-next.tier{gap:var(--space-6)}.gob.gob-1280 .office-next.tier .tn-band{padding-bottom:var(--space-6)}.gob.gob-1280 .office-next.tier .tn-side{gap:var(--space-4)}

/* Office stays full width of .main until an ultra-wide viewport. */
@media (min-width:2400px){
  .gob .office{max-width:2200px;margin-inline:auto}
}
/* ── keyboard focus ── */
.gob a:focus-visible,.gob button:focus-visible,.gob .slider:focus-visible,.gob .tgl:focus-visible{outline:2px solid var(--white);outline-offset:2px}
.gob .advance:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.gob .rail-i:focus-visible,.gob .todo:focus-visible,.gob .note:focus-visible,.gob .wr:focus-visible,.gob .mv-cell:focus-visible{outline-offset:-2px;border-radius:var(--radius-10)}
.gob .stab:focus-visible{outline:none;background:var(--white-11);color:var(--white)!important;box-shadow:inset 0 -2px 0 var(--white)}
.gob .slider:focus-visible b{box-shadow:0 1px 4px var(--black-50),0 0 0 5px var(--white-35)}
/* ── reduced motion: final states, no movement ── */
@media (prefers-reduced-motion:reduce){.gob *,.gob *::before,.gob *::after{animation:none!important;transition:none!important}}
/* ── preview harness (frames/*.html only — not part of the product) ── */
.gob-preview{margin:0;min-height:100vh;display:grid;place-items:center;background:var(--black);padding:var(--space-24)}

/* Leave-with-edits confirm (gobLeaveConfirm.js). Three actions, one hierarchy:
   the save across the top, the two ways out of the question beneath it. */
.gob .gob-leave-confirm .gob-modal-backdrop{background:var(--scrim)}
.gob .gob-leave-confirm .lc-box{position:relative;z-index:1;width:min(460px,calc(100vw - 40px));box-sizing:border-box;padding:var(--space-24) var(--space-24) var(--space-24);border-radius:var(--radius-card);background:var(--surface-popover);box-shadow:var(--shadow-popover)}
.gob .gob-leave-confirm .lc-t{margin:0;font:var(--fw-bold) var(--fs-28)/var(--lh-1) var(--font-display);letter-spacing:var(--tracking-4);color:var(--text-100)}
.gob .gob-leave-confirm .lc-c{margin:var(--space-10) 0 0;font:var(--fw-regular) var(--fs-14)/var(--lh-body) var(--font-body);color:var(--text-60)}
.gob .gob-leave-confirm .lc-c:empty{display:none}
.gob .gob-leave-confirm .lc-a{display:flex;flex-direction:column;gap:var(--space-10);margin-top:var(--space-24)}
.gob .gob-leave-confirm .lc-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10)}
.gob .gob-leave-confirm .lc-save,.gob .gob-leave-confirm .lc-btn{appearance:none;display:flex!important;align-items:center;justify-content:center;width:100%;min-width:0;height:var(--dsz-44);padding:0 var(--space-16);border-radius:var(--radius-10);font:var(--fw-bold) var(--fs-18)/var(--lh-1) var(--font-display)!important;letter-spacing:var(--tracking-btn);white-space:nowrap;text-align:center!important;cursor:pointer;transition:transform var(--dur-press) var(--ease-out),filter var(--dur-hover),background var(--dur-hover),border-color var(--dur-hover)}
.gob .gob-leave-confirm .lc-save{border:0;background:var(--orange)!important;color:var(--bg)!important} /* colour-law: saved */
.gob .gob-leave-confirm .lc-save:hover{filter:brightness(1.06);transform:translateY(-1px)}
.gob .gob-leave-confirm .lc-save:disabled{background:var(--white-6)!important;color:var(--text-38)!important;cursor:not-allowed;transform:none;filter:none}
.gob .gob-leave-confirm .lc-btn{height:var(--dsz-40);background:transparent!important;border:1px solid var(--white-28)!important;color:var(--text-100)!important}
.gob .gob-leave-confirm .lc-btn:hover{background:var(--white-7)!important;transform:translateY(-1px)}
.gob .gob-leave-confirm .lc-save:active,.gob .gob-leave-confirm .lc-btn:active{transform:translateY(1px)}
/* Demo stop screen and full-game-save notice (gobDemo.js): the leave-confirm look,
   positioned here so it also works on pages without the legacy modal sheet (Home Base). */
.gob.gob-demo-host{position:static;overflow:visible;background:none}
.gob .gob-demo-stop{position:fixed;inset:0;z-index:10020;display:flex;align-items:center;justify-content:center}
.gob .gob-demo-stop .gob-modal-backdrop{position:absolute;inset:0}
.gob .gob-demo-stop a.lc-btn{text-decoration:none}
