:root{--a-bg:var(--gi-bg);--a-panel:var(--gi-surface);--a-panel2:var(--gi-surface-2);--a-line:var(--gi-line);--a-strong:var(--gi-line-strong);--a-hot:var(--gi-accent);--a-hot2:var(--gi-accent-2);--a-text:var(--gi-text);--a-mute:var(--gi-text-dim);--a-faint:var(--gi-text-mute);--a-good:var(--gi-good);--a-red:var(--gi-bad)}
*{box-sizing:border-box}.acct-body{margin:0;min-height:100vh;color:var(--a-text);background:radial-gradient(900px 460px at 85% -10%,rgba(255,90,31,.11),transparent 62%),radial-gradient(850px 520px at 4% 18%,rgba(27,92,64,.11),transparent 64%),#06090b;font-family:var(--gi-font);overflow-x:hidden}.acct-body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.24;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 78%)}
.acct-header{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:9px clamp(18px,4vw,54px);border-bottom:1px solid var(--a-line);background:rgba(6,9,11,.86);backdrop-filter:blur(18px);position:sticky;top:0;z-index:20}.acct-brand{display:flex;align-items:center;text-decoration:none}.acct-brand img{width:142px;height:auto;display:block}.acct-header nav{display:flex;align-items:center;gap:4px}.acct-header nav a,.acct-link-button{color:var(--a-mute);text-decoration:none;font:700 12px/1 var(--gi-font-cond);letter-spacing:.09em;text-transform:uppercase;border:1px solid transparent;background:none;border-radius:7px;cursor:pointer;padding:10px 12px}.acct-header nav a:hover,.acct-link-button:hover{color:var(--a-text);background:var(--a-panel);border-color:var(--a-line)}.acct-header nav a:last-of-type{border-color:var(--a-strong);color:var(--a-text)}.acct-header form{margin:0}.acct-shell{position:relative;z-index:1;max-width:1380px;margin:auto;padding:clamp(28px,5vw,70px) clamp(18px,4vw,54px)}.acct-footer{position:relative;z-index:1;display:flex;justify-content:center;gap:10px;color:var(--a-faint);padding:28px 20px;border-top:1px solid var(--a-line);font-size:11px}.acct-footer span{color:var(--a-hot);font:800 11px var(--gi-font-cond);letter-spacing:.12em}.acct-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--a-hot);font:800 11px var(--gi-font-mono);letter-spacing:.16em;text-transform:uppercase}.live-pip{width:7px;height:7px;border-radius:50%;background:var(--a-hot);box-shadow:0 0 0 5px rgba(255,90,31,.1),0 0 16px rgba(255,90,31,.65);animation:livepulse 1.8s ease-in-out infinite}@keyframes livepulse{50%{opacity:.48;box-shadow:0 0 0 9px rgba(255,90,31,0)}}
.auth-page .acct-shell{padding-top:clamp(26px,4vw,58px)}.auth-atmosphere{position:fixed;inset:64px 0 0;pointer-events:none;overflow:hidden;z-index:0}.auth-atmosphere:before{content:"";position:absolute;width:780px;height:780px;right:-260px;top:-220px;border:1px solid rgba(255,255,255,.035);border-radius:50%;box-shadow:0 0 0 70px rgba(255,255,255,.012),0 0 0 150px rgba(255,255,255,.008)}.auth-atmosphere i{position:absolute;display:block;border:1px solid rgba(234,242,238,.06)}.auth-atmosphere i:nth-child(1){width:180px;height:104px;border-radius:52%;right:9%;top:17%;transform:rotate(-22deg)}.auth-atmosphere i:nth-child(1):after{content:"";position:absolute;left:50%;top:9px;bottom:9px;border-left:1px solid rgba(234,242,238,.09)}.auth-atmosphere i:nth-child(2){width:110px;height:110px;border-radius:50%;left:-25px;bottom:12%;background:repeating-linear-gradient(20deg,transparent 0 18px,rgba(255,255,255,.025) 19px 20px)}.auth-atmosphere i:nth-child(3){width:110px;height:110px;transform:rotate(45deg);right:31%;bottom:-70px}
.auth-wrap{min-height:calc(100vh - 196px);display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.68fr);gap:clamp(34px,6vw,88px);align-items:center}.auth-story{min-width:0}.auth-story h1,.dash-hero h1{font-family:var(--gi-font-cond);font-size:clamp(55px,7.1vw,104px);font-weight:800;line-height:.87;letter-spacing:-.025em;text-transform:uppercase;margin:17px 0 22px;max-width:850px}.auth-story h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1px rgba(234,242,238,.58);text-shadow:0 8px 34px rgba(0,0,0,.6)}.auth-story>p{max-width:720px;color:var(--a-mute);font-size:clamp(15px,1.5vw,19px);line-height:1.58}.sport-ribbon{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0 20px}.sport-ribbon span{padding:7px 11px;color:var(--a-faint);background:rgba(16,22,27,.72);border:1px solid var(--a-line);border-radius:999px;font:800 10px var(--gi-font-cond);letter-spacing:.1em}.sport-ribbon span.is-hot{color:#120702;background:var(--a-hot);border-color:var(--a-hot2);box-shadow:0 0 22px rgba(255,90,31,.2)}
.auth-liveboard{position:relative;max-width:790px;overflow:hidden;border:1px solid var(--a-strong);border-radius:16px;background:linear-gradient(145deg,rgba(16,22,27,.91),rgba(7,11,14,.94));box-shadow:0 25px 80px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.04)}.liveboard-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--a-line);color:var(--a-mute);font:800 10px var(--gi-font-mono);letter-spacing:.1em}.liveboard-head span{display:flex;align-items:center;gap:7px}.liveboard-head i{width:6px;height:6px;border-radius:50%;background:var(--a-good);box-shadow:0 0 10px var(--a-good)}.liveboard-head strong{color:var(--a-hot);font:800 10px var(--gi-font-mono)}.live-field{position:relative;height:176px;overflow:hidden;background:linear-gradient(180deg,rgba(9,35,24,.52),rgba(6,20,15,.86)),repeating-linear-gradient(90deg,transparent 0 calc(10% - 1px),rgba(244,251,247,.11) calc(10% - 1px) 10%)}.live-field:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 21px,rgba(255,255,255,.018) 22px)}.yard{position:absolute;z-index:1;top:10px;color:rgba(244,251,247,.18);font:800 17px var(--gi-font-cond)}.y20{left:18%}.y30{left:38%}.y40{left:58%}.y50{left:78%}.line-scrimmage{position:absolute;z-index:1;left:12%;top:0;bottom:0;width:2px;background:rgba(53,194,224,.5);box-shadow:0 0 12px rgba(53,194,224,.3)}.route-map{position:absolute;z-index:2;inset:0;width:100%;height:100%}.route{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:7 8;opacity:.74}.route-a{stroke:var(--a-hot);animation:routescan 4.5s linear infinite}.route-b{stroke:#35c2e0;opacity:.38}.player{stroke:#07100c;stroke-width:3}.player.offense{fill:var(--a-hot)}.player.defense{fill:#b7c7c3}.football{fill:#fff;filter:drop-shadow(0 0 8px var(--a-hot));animation:ballpulse 1.4s ease-in-out infinite}@keyframes routescan{to{stroke-dashoffset:-60}}@keyframes ballpulse{50%{r:9;opacity:.55}}.play-call{position:absolute;z-index:3;right:15px;bottom:13px;display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(255,90,31,.35);border-radius:7px;background:rgba(6,9,11,.82);font:700 10px var(--gi-font-mono);text-transform:uppercase}.play-call b{color:var(--a-hot)}.play-call span{color:var(--a-mute)}.liveboard-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--a-line)}.liveboard-stats span{display:grid;gap:2px;padding:11px 13px;color:var(--a-faint);font-size:10px;border-right:1px solid var(--a-line)}.liveboard-stats span:last-child{border:0}.liveboard-stats b{color:var(--a-text);font:800 10px var(--gi-font-cond);letter-spacing:.08em}
.auth-card,.acct-panel{background:linear-gradient(155deg,rgba(23,31,38,.93),rgba(10,15,19,.96));border:1px solid var(--a-strong);border-radius:17px;box-shadow:0 30px 90px rgba(0,0,0,.6),inset 0 1px rgba(255,255,255,.055)}.auth-card{position:relative;padding:clamp(25px,3.2vw,42px);overflow:hidden}.auth-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,var(--a-hot),rgba(255,90,31,0) 76%)}.auth-card h2,.acct-panel h2{font-family:var(--gi-font-cond);font-size:clamp(27px,3vw,38px);margin:9px 0 7px;text-transform:uppercase}.auth-card-intro{color:var(--a-mute);font-size:13px;line-height:1.5;margin:0 0 22px}.auth-card form,.connect-form{display:grid;gap:13px}.auth-card label,.connect-form label{display:grid;gap:7px;color:var(--a-mute);font:800 10px var(--gi-font-cond);text-transform:uppercase;letter-spacing:.12em}.auth-card input,.connect-form input,.connect-form select,.connect-form textarea{width:100%;border:1px solid var(--a-line);background:#080d11;color:var(--a-text);border-radius:7px;padding:12px 13px;font:500 14px var(--gi-font);outline:none}.auth-card input:hover,.connect-form input:hover,.connect-form select:hover,.connect-form textarea:hover{border-color:var(--a-strong)}.auth-card input:focus,.connect-form input:focus,.connect-form select:focus,.connect-form textarea:focus{border-color:var(--a-hot);box-shadow:0 0 0 3px rgba(255,90,31,.15)}.acct-button{display:flex;align-items:center;justify-content:space-between;border:1px solid #ff8557;border-radius:8px;padding:13px 15px;background:linear-gradient(180deg,var(--a-hot2),var(--a-hot));color:#160703;text-decoration:none;font:900 12px var(--gi-font-cond);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;box-shadow:0 10px 30px rgba(255,90,31,.18)}.acct-button b{font-size:18px}.acct-button:hover{filter:brightness(1.08);box-shadow:0 12px 36px rgba(255,90,31,.27)}.auth-switch{color:var(--a-faint);font-size:12px;margin:17px 0 0}.auth-switch a{color:var(--a-hot)}.acct-alert,.acct-success{border:1px solid rgba(255,77,94,.38);background:rgba(255,77,94,.09);color:#ffaaa5;border-radius:8px;padding:11px 13px;margin:0 0 15px;font-size:12px}.acct-success{border-color:rgba(47,208,122,.35);background:rgba(47,208,122,.08);color:#9df2bd}
.trust-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.trust-row span,.secure-chip,.mode-chip{border:1px solid var(--a-line);background:var(--a-panel);border-radius:999px;padding:8px 11px;color:var(--a-mute);font:700 10px var(--gi-font-mono);text-transform:uppercase}.dash-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px}.dash-hero h1{font-size:clamp(42px,7vw,74px);margin:10px 0 4px}.dash-hero p{color:var(--a-mute);margin:0}.plan-badge{min-width:210px;padding:18px;border-left:3px solid var(--a-hot);background:var(--a-panel);display:grid;gap:4px}.plan-badge small,.metric-grid small{color:var(--a-faint);font:800 10px var(--gi-font-mono);letter-spacing:.13em}.plan-badge strong{color:var(--a-hot);font:900 24px var(--gi-font-cond)}.plan-badge span,.metric-grid span{color:var(--a-faint);font-size:11px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.metric-grid article{display:grid;gap:5px;padding:20px;border:1px solid var(--a-line);border-radius:12px;background:var(--a-panel)}.metric-grid strong{font:900 30px var(--gi-font-cond);color:var(--a-text)}.admin-metrics{grid-template-columns:repeat(4,1fr)}.dash-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.acct-panel{padding:24px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.panel-heading h2{margin:8px 0}.connection-list{display:grid;gap:10px}.connection-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--a-line);border-radius:10px;background:#080d11}.venue-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;background:rgba(255,90,31,.12);color:var(--a-hot);font:900 20px var(--gi-font-cond)}.connection-row>div:nth-child(2){display:grid;gap:3px}.connection-row span{color:var(--a-mute);font-size:12px}.mode-chip{padding:6px 8px}.danger-link{border:0;background:none;color:#d9847f;cursor:pointer}.empty-vault{min-height:160px;border:1px dashed var(--a-strong);border-radius:10px;display:grid;place-content:center;text-align:center;gap:7px;color:var(--a-faint)}.connect-panel>p,.connect-form>small{color:var(--a-faint);font-size:12px;line-height:1.5}.connect-form select{appearance:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{text-align:left;padding:12px;border-bottom:1px solid var(--a-line);font-size:13px}.admin-table th{color:var(--a-faint);font:800 10px var(--gi-font-mono);letter-spacing:.09em}.admin-table td:first-child{display:grid;gap:3px}.admin-table small{color:var(--a-faint)}.table-wrap{overflow:auto}
.partner-panel{margin-bottom:18px}.panel-copy{max-width:850px;color:var(--a-mute);line-height:1.55}.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.partner-card{position:relative;display:grid;grid-template-rows:1fr auto auto;gap:12px;min-height:235px;padding:18px;border:1px solid var(--a-line);border-radius:12px;background:linear-gradient(155deg,var(--a-panel),#080d11)}.partner-priority{position:absolute;right:14px;top:12px;color:#33424d;font:900 32px var(--gi-font-cond)}.partner-main>span{color:var(--a-hot);font:800 10px var(--gi-font-mono);letter-spacing:.08em;text-transform:uppercase}.partner-main h3{font:900 24px var(--gi-font-cond);margin:8px 0}.partner-main p{color:var(--a-text);font-size:13px;line-height:1.45;margin:0 34px 8px 0}.partner-main small{color:var(--a-faint)}.partner-apply{color:var(--a-hot);font-weight:800;font-size:12px;text-decoration:none}.partner-card form{display:grid;grid-template-columns:1fr auto;gap:7px}.partner-card select,.partner-card button{border:1px solid var(--a-strong);border-radius:7px;background:#080d11;color:var(--a-text);padding:9px}.partner-card button{cursor:pointer;color:var(--a-hot);font-weight:800}
@media(max-width:1000px){.partner-grid{grid-template-columns:repeat(2,1fr)}.auth-wrap{grid-template-columns:minmax(0,1fr) 350px;gap:30px}.auth-story h1{font-size:60px}}
@media(max-width:760px){.acct-header{padding:8px 14px;min-height:58px}.acct-brand img{width:122px}.acct-header nav a:nth-child(-n+2){display:none}.acct-shell{padding:24px 16px}.auth-wrap,.dash-grid,.partner-grid{grid-template-columns:1fr}.auth-wrap{gap:22px;align-items:start}.auth-story h1{font-size:clamp(43px,13vw,62px);margin:13px 0 14px}.auth-story>p{font-size:14px;line-height:1.5}.sport-ribbon{margin:17px 0 0}.auth-liveboard{display:none}.auth-card{padding:23px 20px}.dash-hero{align-items:stretch;flex-direction:column}.plan-badge{width:100%}.metric-grid,.admin-metrics{grid-template-columns:1fr}.connection-row{grid-template-columns:auto 1fr}.connection-row .mode-chip,.connection-row form{grid-column:2}.acct-panel{padding:18px}.acct-footer{display:block;text-align:center}.acct-footer span{display:block;margin-bottom:5px}}
@media(max-width:420px){.sport-ribbon span:nth-child(n+4){display:none}.acct-header nav a{padding:9px}.auth-story h1{font-size:42px}.auth-card h2{font-size:28px}}
.security-panel{margin-top:18px}.security-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.security-form .acct-button{min-height:44px}
.revenue-panel{margin-bottom:18px}.revenue-mix{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}.revenue-mix article{display:grid;gap:5px;padding:16px;border:1px solid var(--a-line);border-radius:10px;background:#080d11}.revenue-mix small{color:var(--a-faint);font:800 10px var(--gi-font-mono)}.revenue-mix strong{color:var(--a-good);font:900 28px var(--gi-font-cond)}.revenue-mix span{color:var(--a-faint);font-size:11px}
@media(max-width:1000px){.revenue-mix{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.security-form,.revenue-mix{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.live-pip,.route-a,.football{animation:none!important}}
.daily-claim{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 18px;padding:20px 22px;border:1px solid rgba(47,208,122,.4);border-radius:14px;background:linear-gradient(135deg,rgba(47,208,122,.11),rgba(255,90,31,.06))}.daily-claim>div{display:grid;gap:6px}.daily-claim strong{font:900 25px var(--gi-font-cond);text-transform:uppercase}.daily-claim p{margin:0;color:var(--a-mute);font-size:12px}.book-launch{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:22px}.book-launch h2{margin-bottom:4px}.book-launch p{margin:0;color:var(--a-mute)}.book-launch .acct-button,.book-hero .acct-button{flex:0 0 auto}.book-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.book-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-bottom:18px}.insight-list{display:grid;gap:10px;margin-top:18px}.insight-list article{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:13px;border:1px solid var(--a-line);border-radius:10px;background:#080d11}.insight-list span{color:var(--a-hot);font:900 12px var(--gi-font-mono)}.insight-list p{margin:0;color:var(--a-text);font-size:13px;line-height:1.5}.note-list{display:grid;gap:9px;margin-top:18px;max-height:360px;overflow:auto}.note-list article{padding:12px;border-left:2px solid var(--a-hot);background:#080d11}.note-list p{margin:0 0 5px;color:var(--a-text);font-size:13px;line-height:1.45}.note-list small{color:var(--a-faint);font-size:10px}.book-history{margin-top:18px}.book-history .table-wrap{margin-top:12px}
@media(max-width:900px){.book-grid,.book-metrics{grid-template-columns:1fr 1fr}.daily-claim,.book-launch{align-items:stretch;flex-direction:column}}
@media(max-width:560px){.book-grid,.book-metrics{grid-template-columns:1fr}}

/* ---- notice page + unverified banner -------------------------------------
   One card for every "here is what happens next" outcome. Deliberately plain:
   the forgot-password flow must render an identical page whether or not the
   address exists, so this cannot carry case-specific decoration. */
.notice-wrap{display:grid;place-items:center;min-height:60vh;padding:var(--gi-sp-6) var(--gi-sp-4)}
.notice-card{max-width:440px;width:100%;padding:34px 30px;text-align:center;
  border:1px solid var(--gi-line);border-radius:var(--gi-r-lg);
  background:linear-gradient(180deg,var(--gi-surface),var(--gi-bg-2));
  box-shadow:var(--gi-shadow-3)}
.notice-mark{display:block;width:34px;height:34px;margin:0 auto 18px;
  background:linear-gradient(135deg,var(--gi-accent),var(--gi-accent-2));
  clip-path:polygon(0 0,62% 0,100% 50%,62% 100%,0 100%,38% 50%);
  box-shadow:var(--gi-glow-accent)}
.notice-card h1{margin:0 0 10px;font:700 24px/1.2 var(--gi-font-cond);
  letter-spacing:.01em;color:var(--gi-chalk)}
.notice-card p{margin:0;color:var(--gi-text-dim);font-size:var(--gi-fs-sm);line-height:1.6}
.notice-cta{display:inline-block;margin-top:22px;padding:11px 22px;
  border-radius:var(--gi-r-sm);background:var(--gi-accent);color:var(--gi-accent-ink);
  font:700 var(--gi-fs-sm)/1 var(--gi-font);text-decoration:none}
.notice-cta:hover{background:var(--gi-accent-2)}

/* Unverified-email banner on the dashboard. Amber, not red: the account works,
   it just is not confirmed yet. */
.verify-banner{display:flex;align-items:center;gap:var(--gi-sp-3);flex-wrap:wrap;
  margin-bottom:var(--gi-sp-4);padding:13px 16px;
  border:1px solid rgba(255,197,61,.34);border-radius:var(--gi-r-md);
  background:rgba(255,197,61,.08)}
.verify-banner b{color:var(--gi-warn);font:700 var(--gi-fs-sm)/1.3 var(--gi-font)}
.verify-banner span{color:var(--gi-text-dim);font-size:var(--gi-fs-xs);flex:1 1 220px}
.verify-banner button{padding:8px 14px;border:1px solid rgba(255,197,61,.45);
  border-radius:var(--gi-r-sm);background:rgba(255,197,61,.14);color:var(--gi-warn);
  font:700 var(--gi-fs-xs)/1 var(--gi-font);cursor:pointer}
.verify-banner button:hover{background:rgba(255,197,61,.22)}

/* ---- wordmark --------------------------------------------------------------
   The sign-in page is the first thing a prospective customer sees, so it
   cannot carry the old logo. logo-wordmark.svg draws the letters GRIDIRON as
   vector paths -- there is no string in it to swap -- so the account flow uses
   live text instead, matching the landing page exactly (same tokens, same
   condensed face, same accent on the second word). The SVG is left untouched
   for the app shell until a real replacement mark is drawn. */
.acct-wordmark {
  font: 800 15px/1 var(--gi-font-cond);
  letter-spacing: .1em;
  color: var(--a-text);
  white-space: nowrap;
}
.acct-wordmark em { font-style: normal; color: var(--a-hot); }
.acct-brand { gap: 9px; }
.acct-brand:before {
  content: "";
  width: 19px; height: 19px; flex: 0 0 auto;
  background: linear-gradient(135deg, var(--a-hot), var(--a-hot2));
  clip-path: polygon(0 0, 62% 0, 100% 50%, 62% 100%, 0 100%, 38% 50%);
}
@media (max-width: 760px) { .acct-wordmark { font-size: 13px; } }

/* ---- today's usage ---------------------------------------------------------
   A limit somebody only discovers by hitting it feels like a fault in the
   product. Shown as remaining rather than used, because "3 left" is a number
   you can plan around and "2 used" is one you have to do arithmetic on. */
.usage-strip {
  margin: 0 0 18px;
  padding: 18px 20px;
  border: 1px solid var(--a-line);
  border-radius: 14px;
  background: var(--a-panel);
}
.usage-strip__head {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px;
  margin-bottom: 15px;
}
.usage-strip__head small { color: var(--a-faint); font-size: 11px; line-height: 1.5; }
.usage-bars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.usage-bar {
  display: grid; gap: 6px;
  padding: 14px;
  border: 1px solid var(--a-line);
  border-radius: 10px;
  background: #080d11;
}
.usage-bar small { color: var(--a-faint); font: 800 10px var(--gi-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.usage-bar strong { color: var(--a-text); font: 900 26px var(--gi-font-cond); line-height: 1; }
.usage-bar strong em { font-style: normal; font-size: 14px; color: var(--a-faint); }
.usage-bar > span:last-child { color: var(--a-faint); font-size: 11px; }
.usage-meter { display: block; height: 4px; border-radius: 3px; background: rgba(244,251,247,.09); overflow: hidden; }
.usage-meter i { display: block; height: 100%; background: var(--a-hot); }
/* Spent and locked read differently on purpose: one comes back tomorrow, the
   other needs a plan change, and telling them apart is the whole point. */
.usage-bar.is-spent strong { color: var(--a-hot); }
.usage-bar.is-locked { opacity: .62; }
.usage-bar.is-locked strong { color: var(--a-faint); font-size: 20px; }
@media (max-width: 1000px) { .usage-bars { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .usage-bars { grid-template-columns: 1fr; } }

/* ---- subscription page + legal pages -------------------------------------- */
.plans-banner{margin:0 0 16px;padding:13px 16px;border:1px solid var(--a-strong);border-radius:12px;background:var(--a-panel);color:var(--a-mute);line-height:1.5}
.plans-banner.is-good{border-color:rgba(47,208,122,.5);color:var(--a-text)}
.plans-banner.is-bad{border-color:rgba(255,77,94,.55);color:var(--a-text)}
.plans-banner.is-test{border-color:rgba(255,197,61,.55);color:#FFC53D;font:800 12px var(--gi-font-mono);letter-spacing:.06em}
.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 12px}
.plan-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:26px 22px 22px;border:1px solid var(--a-strong);border-radius:16px;background:linear-gradient(155deg,rgba(23,31,38,.93),rgba(10,15,19,.96))}
.plan-card.is-best{border-color:var(--a-hot);box-shadow:0 0 0 1px rgba(255,90,31,.35),0 18px 50px -22px rgba(255,90,31,.5)}
.plan-card h3{margin:0;font:800 15px var(--gi-font-cond);letter-spacing:.14em;text-transform:uppercase;color:var(--a-mute)}
.plan-flag{align-self:flex-start;padding:4px 9px;border-radius:99px;background:rgba(255,90,31,.14);color:var(--a-hot2);font:800 10px var(--gi-font-mono);letter-spacing:.08em}
.plan-price{display:flex;align-items:baseline;gap:8px}
.plan-price strong{font:900 46px/1 var(--gi-font-cond);color:var(--a-text)}
.plan-price span{color:var(--a-faint)}
.plan-was{color:var(--a-mute);font-size:13px;min-height:20px}
.plan-was s{color:var(--a-faint)}
.plan-card form{margin-top:auto;padding-top:8px}
.plan-card .acct-button[disabled]{opacity:.5;cursor:not-allowed}
.plans-fine{max-width:850px;color:var(--a-faint);font-size:12.5px;line-height:1.55;margin:0 0 22px}
.plans-fine a{color:var(--a-mute)}
@media(max-width:860px){.plans-grid{grid-template-columns:1fr}}
.legal-doc{max-width:860px;margin:0 auto;padding:clamp(22px,4vw,44px)}
.legal-doc h1{margin:.2em 0 .1em}
.legal-doc h2{margin:1.6em 0 .4em;font:800 17px var(--gi-font-cond);letter-spacing:.06em;text-transform:uppercase}
.legal-doc p{color:var(--a-mute);line-height:1.65;margin:.5em 0}
.legal-updated{color:var(--a-faint)!important;font-size:12.5px}
.legal-nav{margin-top:2em!important;padding-top:1em;border-top:1px solid var(--a-line)}
.legal-nav a,.acct-footer a{color:var(--a-mute)}
.auth-legal{margin:10px 0 0;color:var(--a-faint);font-size:12px;line-height:1.5}
.auth-legal a{color:var(--a-mute)}

/* Signed-in header on phones. Brand + Dashboard + My book + Sign out came to
   ~430px, so "Sign out" was pushed off a 390px screen on every account page.
   Tighter spacing, and let it wrap rather than clip on the narrowest phones. */
@media(max-width:480px){
  .acct-header{gap:6px;row-gap:0;flex-wrap:wrap}
  .acct-header nav{gap:0;flex-wrap:wrap;justify-content:flex-end}
  .acct-header nav a,.acct-link-button{padding:12px 8px;letter-spacing:.05em}
}
