/* NEON RIVER / AFTER DARK — color and identity, independent of the responsive table geometry. */
:root{
  color-scheme:dark;
  --bg:#090c14;
  --ink:#f3f5ff;
  --muted:#9aa6c0;
  --lime:#9dff00;
  --felt:#006c49;
  --purple:#9757ff;
  --border:#2a3145;
  --surface:#141927;
  --surface-raised:#1c2335;
  --cyan:#36e9d0;
}
body{background:var(--bg);color:var(--ink)}
::selection{background:#9757ff;color:white}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline-color:var(--cyan)}
.topbar{height:76px;background:#0e121d;border-color:#252b3c}
.brand{font-size:32px;letter-spacing:-.8px;color:#f5f7ff;gap:6px}
.brand>span:not(.brand-icon){color:var(--lime)}
.brand .brand-icon{border-radius:7px;background:var(--purple);color:white;box-shadow:none}
.brand small{color:#a4aec5;letter-spacing:4px}
.table-meta{color:#a4aec5;letter-spacing:1.6px;font-size:9px}
.divider{color:#4b5670}
.live-dot{background:var(--lime);box-shadow:none}
.icon-button{color:#c5cde1;border-color:#343c52;background:transparent;border-radius:7px}
.icon-button:hover{background:#242b3d}
main{padding-top:26px}
.intro{margin-bottom:24px}
.intro .eyebrow{color:var(--cyan);font-size:9px;letter-spacing:2.1px}
.intro h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:48px;font-weight:800;line-height:.98;letter-spacing:-.5px;margin-top:9px}
.intro em{color:var(--lime);font-style:italic}
.session{gap:12px}
.session .chip-icon{background:var(--purple);color:white;border-color:#d0adff;box-shadow:0 0 0 3px #9757ff15}
.session small{color:#a4aec5;letter-spacing:1.5px}
.session strong{font-size:36px;color:white}
.play-money{border-color:#343c52;color:#7f8da9}
.table-toolbar{background:#141a29;color:#a9b5cd;border-top:3px solid var(--lime);border-radius:9px 9px 0 0;font-weight:600}
.table-toolbar b{color:white}
.table-toolbar .pill{background:#292239;color:#ba98ed;border-radius:3px}
.arena{background:#0c1420}
.arena:before{opacity:.35;background-size:36px 36px}
.rail{border-color:#222a3b;background:#101724;box-shadow:0 0 0 2px #7851aa,inset 0 0 0 3px #0a101c,0 14px 28px #0007}
.felt{background:radial-gradient(ellipse at 50% 35%,#087a54 0%,#006244 60%,#004732 100%);border-color:#15e796;box-shadow:inset 0 8px 24px #001d2266}
.felt-line{border-color:#61ffc127}
.table-watermark{opacity:.055;color:#b8ffdf;font-style:italic;font-size:64px}
.table-caption{color:#79dfb0;opacity:.4;letter-spacing:3.2px}
.dealer{color:#e2eaf8}
.dealer-avatar{background:#1b263b;border-color:#56637f;color:var(--cyan)}
.dealer small{color:#98a9c3}
.dealer-status{color:var(--cyan)}
.pot-label{color:#a6e4ca;letter-spacing:2px}
.pot-value{color:var(--lime);font-weight:800;font-size:33px}
.mini-chip{background:var(--lime);outline-color:var(--lime);border-color:#3c681b}
.card{background:#fcfdff;color:#18253b;box-shadow:0 3px 0 #bcc8d7,0 5px 10px #0003;border-radius:4px}
.card.red{color:#e62e5a}
.card.empty{background:#003e3466;border-color:#57d6a960;box-shadow:none}
.card.back{background:repeating-linear-gradient(135deg,#773adb 0px,#773adb 3px,#6530bf 3px,#6530bf 6px);border-color:#b398e8;color:#e8dcff;box-shadow:0 2px 0 #351666}
.street{color:#b2e8d4;border-color:#6cc9ac66;background:#004c3b55}
.portrait{border-color:#111b2c;box-shadow:0 0 0 1px #68758c}
.seat.active .portrait{box-shadow:0 0 0 3px var(--lime),0 0 17px #9dff0033}
.seat-label{background:#0b1724f2;border-color:#5b718477;border-radius:5px;color:#f3f7ff}
.seat-name{font-weight:800}
.seat-name small{font-size:6px;letter-spacing:.8px;color:#8b9bb7}
.seat-chips{color:#b6c9e4;font-variant-numeric:tabular-nums}
.seat-0 .seat-label{background:#111c29;border-color:#93d856}
.seat-0 .seat-chips{color:var(--lime)}
.seat-action{color:#b4ccc9}
.seat.active .seat-action{color:var(--lime)}
.button-marker{background:#f5f7ff;color:#1b2438}
.table-note{color:#6d8993}
.table-note span{color:var(--cyan)}
.action-panel{background:var(--surface);border-color:#30394f;border-radius:0 0 9px 9px}
.turn-dot{background:var(--lime);box-shadow:0 0 0 4px #9dff0010}
.turn-info strong{color:#f4f7ff;font-size:15px;font-weight:700}
.turn-info small{color:#9ba9c3}
.hand-strength{background:#262040;color:#caabff;border:1px solid #7350a455;border-radius:4px}
.raise-row>span{color:#9aa9c2}
.raise-row b{color:white;font-variant-numeric:tabular-nums}
.raise-row input{accent-color:var(--lime)}
.bet-presets button{color:#afbdd5;border-color:#3a455c;background:#1d2638;border-radius:4px}
.bet-presets button:hover{background:#303b52;color:white;border-color:#7381a0}
.actions>button{border-radius:5px;font-size:13px}
.fold{background:#252c3d;color:#d0d8e9}
.fold:hover{background:#363e52}
.call{background:#5541b9;color:white}
.call:hover{background:#6851d7}
.raise{background:var(--lime);color:#102100;box-shadow:none}
.raise:hover{background:#b5ff40;color:#102100}
.actions kbd{border-color:#96a3bd44;color:inherit}
.text-button{color:#a5b4d2}
.text-button:hover{color:white}
.under-table{color:#7c8aa6}
.room-card{background:#1b1831;border:1px solid #4e376b;border-top:3px solid var(--purple);border-radius:8px}
.room-card:after{opacity:.08;color:#ae74ff;right:-18px;top:5px}
.room-card .eyebrow{color:#b28bff;font-size:8px;letter-spacing:1.8px}
.room-card h2{color:#f5f0ff;font-style:italic;font-size:38px;line-height:.96;letter-spacing:.2px}
.room-card>p{color:#a69bbd;line-height:1.7}
.rival-list{border-color:#413450}
.rival-list>div{font-size:10px}
.rival-list b{color:#ebe6f7}
.rival-list>div>span:last-child{color:#a69bbd}
.rival-dot.jade{background:#27ed9b}.rival-dot.rio{background:#ff6848}.rival-dot.nova{background:#a46aff}.rival-dot.ace{background:#35b7ff}
.opponent-settings{border-color:#453651}
.opponent-settings>label:first-child{color:#c4abd9;letter-spacing:1.5px;font-size:8px}
.difficulty-switch{background:#100e20;border:1px solid #49335f;border-radius:5px;padding:3px}
.difficulty-switch button{color:#b2a0c9;border-radius:3px}
.difficulty-switch button:hover{background:#302343;color:white}
.difficulty-switch button[aria-pressed="true"]{background:#8848f3;color:white;box-shadow:none}
.opponent-settings #difficulty-description{color:#b3a7c9}
.opponent-settings>small{color:#b3a1c8}
.ai-toggle{color:#eee8fb}
.toggle-track{background:#4b3f63}
.toggle-track:after{background:#e6e3f1}
.ai-toggle input:checked+.toggle-track{background:#79bf18}
.ai-status{color:#aa9dc4}
.ai-status:before{color:#9d86bd}
.ai-status.connected:before{color:var(--lime)}
.ai-setup-info{color:#c5a1ff}
.ai-setup-info:hover{color:white}
.ai-setup-details{background:#100e20;border-color:#54406c}
.opponent-settings .ai-setup-details p{color:#c4b6d8}
.table-talk-card{background:#12282d;border-color:#28515a;border-left:3px solid var(--cyan);border-radius:7px}
.talk-header>span{color:var(--cyan);letter-spacing:1.6px}
.talk-header small{color:#80a9b2}
.table-talk-card p{color:#d9f2ee}
.table-talk-card b{color:var(--cyan)}
.table-talk-card span{color:#c6e0e0}
.feed-card{background:#121824;border-color:#2c374b;border-radius:7px}
.feed-heading{border-color:#2a3448;color:#e6ecfa}
.feed-heading>span{background:#16362c;color:#7fe5ac;border-radius:3px}
.feed-heading:after{color:#93a4c2}
#feed{scrollbar-color:#3c4b65 transparent}
.feed-entry{border-color:#252e40;color:#8c9db9}
.feed-entry:before{background:#4a5b78}
.feed-entry:last-child{color:#dce7fb}
.feed-entry:last-child:before{background:var(--lime)}
.table-announcement{background:#101928f5;border-color:#8add31;box-shadow:0 8px 22px #0007}
.table-announcement strong{color:var(--lime)}
.table-announcement span{color:#cad8e9}
.table-announcement.loss{border-color:#9f6de2}
.table-announcement.loss strong{color:#c6a1ff}
.table-announcement.fold{border-color:#7895af}
.table-announcement.fold strong{color:#d3e7f5}
.mucked-cards{color:#a9c1d0;border-color:#6a899a99}
.flying-chips{background:var(--lime);color:#1b2e02;border-color:#527319;box-shadow:0 3px 0 #4f7b0a,0 5px 9px #0004}
.hand-explanation{background:#131b28;border-color:#33445b;border-top:2px solid var(--cyan);border-radius:7px}
.explanation-heading>span{color:var(--cyan)}
.explanation-heading h3{color:#f3f7ff}
.explanation-heading>small{color:#7f99b5}
.hand-explanation p{color:#acbdd6}
.recap-hand{background:#1e293c;border-radius:5px}
.recap-hand b{color:#eef4ff}
.recap-hand>div>span{color:#a5b7d3}
.recap-hand.recap-winner{background:#173e2b;box-shadow:inset 0 0 0 1px #4b963f}
.recap-hand b small{color:var(--lime)}
.hand-explanation .explanation-note{border-color:#2f4056;color:#8fa4be}
.pot-explanation{border-color:#2f4056}
.pot-explanation>b{color:var(--cyan)}
footer{border-color:#252e41;color:#667c9f}
footer b{color:var(--purple)}
dialog{background:#171c2b;color:var(--ink);border-color:#3e4961;box-shadow:0 24px 100px #0009}
dialog::backdrop{background:#030611da;backdrop-filter:blur(7px)}
dialog p,dialog li{color:#aab7ce}
dialog h2{color:#f1f5ff}
dialog .eyebrow{color:var(--cyan)}
dialog .rankings{background:#242c40;color:#bac8e1}
.close,.close-settings:not(.settings-done){color:#dce7fb;border-color:#46516b}
#mobile-settings-content .opponent-settings{border-color:#3d4660}
#mobile-settings-content #difficulty-label{color:#c1a0e8}
#mobile-settings-content #difficulty-description{color:#b9c4d9}
#mobile-settings-content #difficulty-note{color:#a4b2cb}
#mobile-settings-content .ai-setup-details p{color:#c4b6d8}
@media(min-width:851px){
  .room-card h2{font-size:38px;margin:12px 0}
  .room-card>p{font-size:10px}
}
@media(max-width:1100px){.intro h1{font-size:43px}}
@media(max-width:850px){.topbar{height:72px}.intro h1{font-size:40px}}
@media(max-width:700px), (max-width:950px) and (max-height:500px){
  .topbar{height:52px;background:#0e121d}
  .brand{font-size:23px;gap:3px}
  .brand .brand-icon{border-radius:5px}
  main{padding-top:4px}
  .intro{margin:0}
  .intro:before{content:'ALL NERVE. NO LIMIT.';color:var(--cyan);letter-spacing:1px}
  .session strong{font-size:25px}
  .session .chip-icon{box-shadow:none}
  .mobile-settings{background:#1c2435;border-color:#3a455e;color:#dce5f7;border-radius:6px}
  .mobile-settings:hover{background:#2c374e}
  .table-toolbar{border-top-width:2px;border-radius:8px 8px 0 0}
  .table-toolbar .mobile-street{background:#253620;color:#b7e98a}
  .rail{box-shadow:0 0 0 1px #8057b4,inset 0 0 0 2px #0a101c,0 12px 20px #0005}
  .pot-value{font-size:27px}
  .action-panel{border-radius:0 0 8px 8px}
  .turn-info strong{font-size:12px}
  .raise-row input::-webkit-slider-runnable-track{background:#354359}
  .raise-row input::-webkit-slider-thumb{background:var(--lime);border-color:#141927;box-shadow:0 0 0 1px #9dff0080}
  .raise-row input::-moz-range-track{background:#354359}
  .raise-row input::-moz-range-thumb{background:var(--lime);border-color:#141927}
  .bet-presets button{background:#202a3e;border-color:#3a4660;color:#c5d1e6}
  .actions>button{font-size:13px}
  .table-talk-card{background:#12282d}
  .sidebar .feed-card{background:#121824}
  .table-announcement strong,.table-announcement.fold strong{color:var(--lime)}
  .table-announcement.loss strong{color:#c6a1ff}
  .table-announcement.fold strong{color:#d3e7f5}
  #settings-dialog{background:#171c2b}
}
@media(max-width:360px){.brand{font-size:20px}.intro:before{letter-spacing:.5px}.actions>button{font-size:12px}}
@media(max-width:700px) and (max-height:600px){.pot-value{font-size:23px}}
@media(min-width:701px) and (max-width:950px) and (max-height:500px){.topbar{height:48px}.action-panel{border-radius:8px}}
.community.suspense .pot-value{filter:drop-shadow(0 0 8px #9dff0066)}
.arena.hand-loss .seat-0 .seat-label{border-color:var(--purple)}
@keyframes winningRail{0%,100%{filter:none}35%{filter:drop-shadow(0 0 15px #9dff0077)}}
@keyframes winningCards{0%,100%{filter:none}35%,65%{filter:drop-shadow(0 0 8px #9dff00)}}
