/* The Floor, rebuilt (docs/design/FLOOR.md). Loaded last, so it overrides the
   older Floor styles (many inline, hence !important).
   Three things on the page: your desk (money + Start/Stop), your rules in one
   line, and what is happening (requests; risks and tickets beside them).
   Everything else opens on demand. Type 13 · 16 · 20 · 31 · 39; 8px rhythm. */
:root { --fx-hover:rgba(239,233,219,.04); --fx-rule:rgba(239,233,219,.06); --fx-pad:40px; }

/* ── Top bar: brand, pages, money, you. ───────────────────────────────── */
.topBar { border-bottom:1px solid var(--fx-rule)!important; gap:32px!important; padding:0 var(--fx-pad)!important; }
.fx-nav { display:flex!important; align-self:stretch; align-items:stretch; gap:24px; }
#nav>button,#nav>a { width:auto!important; min-height:0!important; padding:0!important; border-radius:0!important; background:transparent!important; color:var(--mute)!important; font-size:16px!important; font-weight:400!important; justify-content:center; }
#nav>button:hover,#nav>a:hover { color:var(--ivory)!important; }
#nav>[aria-current] { color:var(--ivory)!important; box-shadow:inset 0 -2px 0 var(--pre); }
.topBar .searchBar { width:40px!important; flex:none; border:0!important; background:transparent!important; }
.topBar .searchBar>span:not(.searchBar-icon) { display:none!important; }
.topBar .searchBar-icon { width:100%!important; border-left:0!important; }
.topBar>div[style*="flex:1"]:first-of-type { display:none; }
.topBar .experience-icon { border-color:transparent; background:transparent; }
.walletControl { border:0!important; background:transparent!important; }
.walletLabel { font-size:13px!important; }
#bankTop { font-size:16px!important; font-weight:600!important; }
.walletAddPart { border-left:0!important; background:transparent!important; font-size:13px!important; font-weight:600!important; }
.signedInControl,#tourUser { border-color:transparent!important; background:transparent!important; }
#rulesDrawerBtn { display:none!important; }

/* ── Rules panel (docs/design/FLOOR.md §Rules panel). Closed until asked
   for. A head that never scrolls away (title, saved state, close, presets),
   then sections that each open on their own: a 16px title on the left, its
   current setting on the right, rows of label + field on a 56px rhythm. ── */
@media(min-width:768px){
  .ruleSidebar { position:fixed!important; top:64px; bottom:0; left:0; z-index:90; width:440px!important; max-width:100vw; padding:0 32px 48px!important; overflow-y:auto; overscroll-behavior:contain; background:var(--panel)!important; border-right:0!important; box-shadow:24px 0 80px rgba(0,0,0,.55); transform:translateX(-105%); transition:transform var(--t-base) var(--e-out); scrollbar-width:thin; scrollbar-color:var(--line2) transparent; }
  #app.rulesOpen .ruleSidebar { transform:none; }
  .teamDrawer { left:440px!important; top:64px!important; }
}
.fx-panel-head { position:sticky; top:0; z-index:3; margin:0 -32px; padding:24px 32px 8px; background:var(--panel); box-shadow:0 1px 0 var(--fx-rule); }
.ruleHeading { display:flex; align-items:center; gap:12px; margin:0 0 8px!important; padding:0!important; min-height:40px; }
.ruleHeading>span:first-child { font:600 25px/32px var(--serif); letter-spacing:-.01em; color:var(--ivory); }
.ruleCustom { background:transparent!important; padding:0!important; font-size:13px!important; font-weight:400!important; color:var(--pre)!important; }
.ruleHint { margin-left:auto; font-size:13px!important; }
.mobileRulesClose { display:inline-grid!important; width:40px; height:40px; margin:0 -8px 0 0; place-items:center; border:0; border-radius:8px; background:transparent; color:var(--mute); font-size:25px; line-height:1; cursor:pointer; }
.mobileRulesClose:hover { color:var(--ivory); background:var(--fx-hover); }
#presets { display:flex!important; gap:24px!important; margin:0!important; }
#presets button { flex:none!important; background:transparent!important; border:0!important; color:var(--mute)!important; font-size:16px!important; font-weight:400!important; padding:12px 0!important; border-radius:0!important; }
#presets button:hover { color:var(--ivory)!important; }
#presets button[aria-pressed='true'] { color:var(--ivory)!important; box-shadow:inset 0 -2px 0 var(--pre); }
.gs-entry { display:flex!important; width:100%; border:0!important; background:transparent!important; padding:8px 0 12px!important; color:var(--dim); font-size:13px; }
.gs-entry:hover { color:var(--ivory); }
.gs-entry-sub { font-size:13px; }
.ruleGroup { border-top:1px solid var(--fx-rule)!important; padding:0!important; }
.fx-panel-head+.ruleGroup { border-top:0!important; }
.ruleGroup>summary,.teamRuleButton { min-height:64px!important; padding:0!important; font-size:16px!important; font-weight:600!important; white-space:nowrap; }
.ruleGroup>summary:hover,.teamRuleButton:hover { background:transparent!important; color:var(--pre); }
.ruleSummary { margin-left:auto; font-size:13px!important; max-width:220px!important; color:var(--dim)!important; font-weight:400!important; overflow:hidden; text-overflow:ellipsis; }
.ruleBody { padding:0 0 16px!important; }
.ruleRow { min-height:56px!important; padding:0!important; gap:16px!important; }
.ruleLabel { font-size:16px!important; color:var(--dim)!important; }
.ruleHint2,.ruleSub { font-size:13px!important; }
.ruleSection { padding:0 0 8px!important; }
.ruleSectionLabel { padding:16px 0 4px!important; }
.ruleSectionLabel,.ruleAdvanced>summary { font-size:13px!important; font-weight:600!important; letter-spacing:0!important; text-transform:none!important; color:var(--mute)!important; }
.ruleAdvanced>summary { min-height:56px!important; padding:0!important; }
.ruleSectionLabel span { font-size:13px!important; }
.ruleValue,.editable { min-height:40px!important; min-width:64px; padding:0 12px!important; border:0!important; border-radius:8px!important; background:var(--panel2)!important; font-size:16px!important; font-weight:600!important; }
.ruleValue:hover,.editable:hover { background:var(--chip)!important; }
.ruleRange { display:flex; align-items:center; gap:8px; color:var(--mute); }
.ruleGroup .editable { display:inline-flex!important; align-items:center; justify-content:center; }
.ruleRow--meter>.limitMeter { margin-top:0!important; }
/* Sports: the first thing you choose. */
.fx-sports { margin-left:auto; }
#sportsHost #sportsBtn { height:40px!important; padding:0 16px!important; border-radius:8px!important; font-size:16px!important; font-weight:600!important; background:var(--ivory)!important; color:var(--vault)!important; }
/* Games: one per line in a bounded list, not a wall of chips. */
#gamesRules #desktopScheduleHost { max-height:320px; overflow-y:auto; margin:0 -8px; scrollbar-width:thin; scrollbar-color:var(--line2) transparent; }
#gamesRules #chips { display:flex!important; flex-direction:column!important; align-items:stretch!important; flex-wrap:nowrap!important; gap:0!important; padding:0!important; overflow:visible!important; mask-image:none!important; -webkit-mask-image:none!important; }
#gamesRules .gchip { display:flex!important; width:100%; height:48px!important; justify-content:flex-start; gap:8px; padding:0 8px!important; border-radius:8px!important; background:transparent!important; font-size:16px!important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#gamesRules .gchip:hover { background:var(--fx-hover)!important; }
#gamesRules .gchip>span:last-child { margin-left:auto; }
#gamesRules .gchip .num { font-size:13px!important; min-width:64px; color:var(--mute)!important; }
#gamesRules .gchip.off { opacity:.5; }
#gamesRules #chips>span { padding:12px 8px!important; font-size:13px!important; }

/* ── Your desk: the money and the switch, nothing else. ───────────────── */
.feedPane { min-width:0; }
.fx-hero { flex:none; padding:32px var(--fx-pad) 0; }
.fx-title { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.fx-title .house-avatar { width:32px!important; height:32px!important; }
.fx-title .house-tagline { display:none; }
.fx-title .house-type h1 { font-size:20px!important; }
.fx-title .floor-heading-right { display:flex; align-items:center; gap:16px; }
.feed-health,.lifecycle-health,.fx-title [data-price-status] { font-size:13px!important; }
.fx-band { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) 240px; gap:32px; align-items:end; margin-top:32px; }
.fx-kpi { min-width:0; }
.fx-label,#wonFilledLabel { font-size:13px!important; letter-spacing:0!important; font-weight:400!important; color:var(--mute)!important; margin:0 0 8px!important; }
#expText { font:600 39px/1 var(--serif)!important; letter-spacing:-.02em; }
.fx-kpi .num,.pnlTotal { font-size:31px!important; font-weight:600!important; line-height:1!important; font-family:var(--sans)!important; }
#expSub,#mtmLine,.fx-note { font-size:13px!important; color:var(--mute)!important; margin:8px 0 0!important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fx-note .num,#avgMargin { font-size:13px!important; font-weight:400!important; color:var(--dim)!important; display:inline!important; }
#wonN { color:var(--ivory)!important; } #filledN { color:var(--felt)!important; }
.pnlLive { display:block!important; margin:0!important; padding:0!important; border:0!important; }
.pnlLive[hidden] { display:none!important; }
.pnlLabel { display:none!important; }
.fx-control .deskActions { padding:0!important; }
#modeBtn { margin:0!important; min-height:52px; border-radius:12px!important; font-size:16px!important; }
.desk-status { justify-content:center; padding-top:8px!important; font-size:13px!important; }
.desk-status #engLabel { font-size:13px!important; color:var(--dim); }
#p95Line { font-size:13px!important; text-align:center; margin:4px 0 0!important; }
#p95Line:empty { display:none; }
.deskFeedback { font-size:13px; }

/* Your rules in one sentence; any part opens the panel where it is set. */
.fx-rules { display:flex; align-items:baseline; gap:16px; margin-top:32px; padding:16px 0; border-block:1px solid var(--fx-rule); }
.fx-rules-label { flex:none; font-size:13px; color:var(--mute); }
.fx-rules-brief { flex:1; min-width:0; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; }
.fx-rule { border:0; background:none; padding:0; font:400 16px/24px var(--sans); color:var(--ivory); cursor:pointer; text-decoration:underline dotted; text-decoration-color:rgba(149,141,123,.5); text-underline-offset:5px; }
.fx-rule:hover { color:var(--pre); }
.fx-dot { color:var(--mute); }
.fx-rules-edit { flex:none; border:0; background:none; padding:0; font:600 13px/24px var(--sans); color:var(--gold); cursor:pointer; }
.fx-rules-edit:hover { color:var(--ivory); }

/* ── What is happening: one line per request. ─────────────────────────── */
.feedMeta { border:0!important; min-height:56px!important; padding:8px var(--fx-pad) 0!important; }
.feedMeta>span.num { font-size:13px!important; }
#feedFilter { gap:24px!important; }
#feedFilter button { background:transparent!important; color:var(--mute)!important; font-size:16px!important; font-weight:400!important; padding:12px 0!important; border-radius:0!important; }
#feedFilter button:hover { color:var(--ivory)!important; }
#feedFilter button[aria-pressed='true'] { color:var(--ivory)!important; box-shadow:inset 0 -2px 0 var(--pre); }
#noticeDock { padding:8px var(--fx-pad) 0!important; }
.coachCard { margin:8px var(--fx-pad) 0!important; border:0!important; background:var(--goldT)!important; border-radius:8px!important; padding:12px 16px!important; }
.coachCopy,.coachAction { font-size:13px!important; line-height:20px!important; }
#haltBanner,#autoHaltBar,#preBanner { border:0!important; margin-left:var(--fx-pad)!important; margin-right:var(--fx-pad)!important; }
.feed-columns { display:grid; grid-template-columns:72px minmax(0,1fr) 96px 132px; gap:16px; padding:16px calc(var(--fx-pad) + 8px) 8px; font-size:13px; font-weight:400; letter-spacing:0; color:var(--mute); }
.feed-columns>span:nth-child(n+3) { text-align:right; }
#feed { padding:0 calc(var(--fx-pad) - 8px) 32px!important; }
.pcard.request-row { grid-template-columns:72px minmax(0,1fr) 96px 132px!important; gap:16px!important; align-items:baseline!important; padding:12px 8px!important; border:0!important; border-radius:8px!important; box-shadow:0 1px 0 var(--fx-rule); cursor:default; }
.request-row:hover { background:var(--fx-hover)!important; }
.request-emblem,.request-meta,.request-unit,.request-fair,.decision-detail,.request-more { display:none!important; }
.fx-time { font-size:13px; color:var(--mute); font-variant-numeric:tabular-nums; white-space:nowrap; }
.request-body { min-width:0; display:flex; align-items:baseline; gap:12px; white-space:nowrap; overflow:hidden; }
.fx-legs { flex:none; font-size:13px; color:var(--mute); }
.fx-picks { min-width:0; overflow:hidden; text-overflow:ellipsis; font-size:16px; color:var(--ivory); }
.fx-more { color:var(--mute); }
.request-row[data-live-skip] .fx-picks { color:var(--dim); }
.request-price { text-align:right; }
.request-amount { font-size:16px!important; font-weight:600; line-height:24px; }
.request-decision { text-align:right; white-space:nowrap; }
.decision-stamp { border:0!important; background:transparent!important; padding:0!important; font-size:13px!important; font-weight:600; letter-spacing:0!important; text-transform:lowercase; }
.decision-stamp::first-letter { text-transform:uppercase; }

/* ── Beside it: biggest risks and newest tickets. ─────────────────────── */
.bookRail { background:var(--vault)!important; border-left:1px solid var(--fx-rule)!important; gap:40px!important; padding:32px 24px!important; }
#bookHead { display:none!important; }
.bookRail .railcard { background:transparent!important; border:0!important; border-radius:0!important; padding:0!important; }
.railHead { margin-bottom:12px; }
.railHead>span:first-child { font-size:16px!important; font-weight:600!important; letter-spacing:0!important; color:var(--ivory)!important; }
.railHead .railMeta,.railHead>a { font-size:13px!important; }
.sm-top { grid-template-columns:56px minmax(0,1fr) auto; padding:6px 0; }
.sm-dim,.sm-name,.sm-loss,.sm-gain { font-size:13px; }
.sm-name { font-weight:400; }
.sm-actions { gap:24px; }
.sm-open,.sm-link { border:0!important; background:transparent!important; padding:8px 0!important; font-size:13px; }
.sm-open { color:var(--gold); }
#dangerRows { gap:0!important; }
#dangerRows>[data-tk] { border:0!important; border-radius:8px!important; padding:12px 8px!important; margin:0 -8px; box-shadow:0 1px 0 var(--fx-rule); }
#dangerRows>[data-tk]:hover { background:var(--fx-hover); }
#dangerRows>[data-tk]>div:first-child>span:first-child { display:inline-block; background:transparent!important; padding:0!important; font-size:13px!important; letter-spacing:0!important; font-weight:600!important; text-transform:lowercase; }
#dangerRows>[data-tk]>div:first-child>span:first-child::first-letter { text-transform:uppercase; }
#dangerRows>[data-tk]>div:first-child>span:first-child[style*='var(--gold)'] { color:var(--pre)!important; }
#dangerRows>[data-tk] [style*='font-size'] { font-size:13px!important; }
#dangerRows>[data-tk]>div:nth-child(2) { font-size:16px!important; }
#dangerRows>[data-tk]:nth-child(n+4) { display:none; }

/* ── Smaller desks ────────────────────────────────────────────────────── */
@media(min-width:768px) and (max-width:1279px){
  :root { --fx-pad:24px; }
  .fx-band { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .fx-control { grid-column:1 / -1; display:grid; grid-template-columns:240px 1fr; align-items:center; gap:16px; }
  .fx-control .deskActions { display:flex; align-items:center; gap:16px; }
  .desk-status { padding-top:0!important; }
  .fx-nav { gap:16px; }
  #nav>button,#nav>a { font-size:13px!important; }
  .bookRail { padding:24px 16px!important; }
}
@media(min-width:768px) and (max-width:1023px){
  .bookRail { display:none!important; }
}

/* ── Phone monitor ────────────────────────────────────────────────────── */
@media(max-width:767px){
  .mobileTop .experience-icon,.mobileTop button,.mobileTop a { border-color:transparent!important; background:transparent!important; }
  .mobile-house { border:0!important; padding:8px 0!important; background-image:none!important; }
  .mobile-house .house-tagline { display:none; }
  .mobile-house .house-type h1 { font-size:25px!important; }
  .mobile-house .house-avatar { width:40px; height:40px; }
  #mScheduleSection,.mobileSection,.mobileHero,.mobileCard { border:0!important; background:transparent!important; box-shadow:none!important; padding-left:0!important; padding-right:0!important; }
  .mobileSection h2,.mobileHeroLabel,.mobileCardLabel { font-size:13px!important; letter-spacing:0!important; font-weight:400!important; color:var(--mute)!important; }
  .mobileHeroValue { font-size:39px!important; }
  .mobileCardValue { font-size:20px!important; }
  .mobile-search { border:0!important; background:var(--panel)!important; font-size:16px!important; }
  .mobile-ticket-link,#mobileDesk>.financial-open { border:0!important; background:transparent!important; padding:12px 0!important; font-size:16px!important; color:var(--ivory); text-align:left; box-shadow:0 1px 0 var(--fx-rule); border-radius:0!important; }
  #app.rulesOpen .ruleSidebar { background:var(--vault)!important; }
}

/* Older Floor rules that target these IDs directly. */
#nav.fx-nav { display:flex!important; grid-template-columns:none!important; gap:24px!important; }
#tourBookCard { background:transparent!important; border:0!important; border-radius:0!important; padding:0!important; box-shadow:none!important; }
#tourBookCard>.fx-label { font-size:13px!important; letter-spacing:0!important; color:var(--mute)!important; }
.feed-columns { padding-left:var(--fx-pad)!important; padding-right:var(--fx-pad)!important; }
.feed-columns>span:nth-child(2) { text-align:left!important; }
@media(min-width:768px) and (max-width:1279px){ #nav.fx-nav { gap:16px!important; } }
#tourBookCard>div.fx-label:first-child { font-size:13px!important; letter-spacing:0!important; font-weight:400!important; color:var(--mute)!important; margin:0 0 8px!important; }
.fx-band { align-items:start; }
.fx-control { align-self:center; }
@media(min-width:768px){
  #app.rulesOpen::after { content:''; position:fixed; inset:64px 0 0; z-index:89; background:rgba(8,7,4,.55); }
}
.pcard.request-row .request-decision { grid-column:auto!important; display:block!important; text-align:right!important; }
.desk-status { white-space:nowrap; }
.pnl-stale { display:block; margin-top:4px; color:var(--gold); cursor:help; }
#mtmLine { overflow:visible!important; }
#gamesRules .gchip .bprice,#gamesRules #chips>span { display:none!important; }
#gamesRules .gchip>span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#gamesRules .gchip>span:not(.num) { flex:0 1 auto; font-weight:400; color:var(--ivory); }
#gamesRules .gchip>span:last-child { flex:none; margin-left:auto; padding-left:8px; color:var(--mute); }
@media(max-width:767px){ #gamesRules { display:none!important; } #sportsHost #sportsBtn { font-size:16px!important; } }
