/* Estate Hold'em — v2 visual pass. Night-time estate: sodium streetlight amber, concrete, felt. */
:root{--bg:#0f1216;--bg2:#151a20;--panel:#1a2027;--panel2:#222a32;--line:#2e3842;--text:#efe9df;--muted:#97a1aa;--amber:#f2a33a;--amber2:#ffc66b;--red:#e0483f;--green:#3fbf7f;--blue:#5aa0e6;
  --cw:clamp(34px,4.4vw,56px);--ch:calc(var(--cw)*1.4);--r:14px;--safe-b:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 ui-rounded,"SF Pro Rounded",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden}
.sky{position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(900px 420px at 78% -120px,rgba(242,163,58,.22),transparent 65%),
  radial-gradient(700px 300px at 10% -80px,rgba(90,160,230,.10),transparent 60%),
  var(--skyline) bottom center/1600px 260px repeat-x,
  linear-gradient(#0b0e12,#11161b 60%,#0f1216)}
a{color:var(--amber2)}
.muted{color:var(--muted)}.small{font-size:12.5px}
header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:linear-gradient(rgba(12,15,19,.96),rgba(12,15,19,.82));border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:0;z-index:10;gap:10px}
.brand{display:flex;align-items:baseline;gap:8px;font-weight:900;font-size:19px;color:var(--text);text-decoration:none;letter-spacing:.2px;min-width:0}
.brand .spade{color:var(--amber);text-shadow:0 0 14px rgba(242,163,58,.6)}
.brand small{font-weight:500;color:var(--muted);font-size:12px;font-style:italic;white-space:nowrap}
nav{display:flex;gap:6px;align-items:center}
.navlink{color:var(--text);text-decoration:none;font-weight:700;padding:8px 10px;border-radius:10px}
.navlink:hover{background:rgba(255,255,255,.06)}
.me{display:flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:3px 12px 3px 3px;color:var(--text);font-weight:800;cursor:pointer}
.me .bal{color:var(--amber2)}
.mini-ava{display:inline-flex;width:30px;height:30px;border-radius:50%;overflow:hidden;background:#11161a;border:2px solid var(--line);align-items:center;justify-content:center;flex:none}
.mini-ava svg{width:100%;height:100%}.mini-ava.empty{border-style:dashed;opacity:.5}
.emo{font-size:20px;line-height:1}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);color:var(--text);cursor:pointer;text-decoration:none;font-size:22px;font-weight:800;padding:0}
main{flex:1;width:100%;max-width:1160px;margin:0 auto;padding:16px}
footer{padding:12px 16px calc(12px + var(--safe-b));font-size:12.5px;color:var(--muted);text-align:center;border-top:1px solid rgba(255,255,255,.05)}
footer p{margin:4px 0}
button,.btn{font:inherit;font-weight:800;border-radius:12px;padding:11px 16px;cursor:pointer;background:var(--panel2);color:var(--text);border:1px solid var(--line);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;transition:transform .08s,filter .15s}
button:hover,.btn:hover{filter:brightness(1.12)}button:active{transform:scale(.97)}
button:disabled{opacity:.45;cursor:not-allowed;filter:none;transform:none}
.primary{background:linear-gradient(#ffb94f,#e48c1c);color:#1d1305;border-color:#b8730f;box-shadow:0 4px 14px rgba(242,163,58,.25),inset 0 1px 0 rgba(255,255,255,.35)}
.danger{background:#3a1f1f;border-color:#6b2c2c;color:#ffb3ad}.ghost{background:transparent}
.sm{min-height:34px;padding:6px 10px;font-size:12.5px}
.grow{flex:1}.big-btn{min-height:52px;font-size:16px;width:100%}
input,select{font:inherit;background:#0d1115;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-height:44px;width:100%}
input:focus,select:focus,button:focus-visible{outline:2px solid var(--amber);outline-offset:1px}
.lbl{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted);font-weight:700;margin:8px 0}
.check{display:flex;gap:10px;align-items:flex-start;margin:14px 0;font-size:14px}.check input{width:22px;height:22px;min-height:0;flex:none;accent-color:var(--amber)}
.card{background:linear-gradient(180deg,rgba(34,42,50,.92),rgba(26,32,39,.94));border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
h1,h2,h3{margin:.15em 0 .45em;line-height:1.15}h2{font-size:20px}h3{font-size:16px}
h2.section{margin:22px 0 10px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.three>*{flex:1;min-width:90px}
.spacer{flex:1}
.notice{font-size:13px;color:var(--muted);border-left:3px solid var(--amber);padding:9px 12px;background:rgba(20,25,30,.8);border-radius:10px;margin:16px 0}
.testbanner{background:repeating-linear-gradient(45deg,#3a2c12,#3a2c12 12px,#2e2410 12px,#2e2410 24px);border:1px solid #6d5320;color:#ffd58a;padding:8px 12px;border-radius:12px;font-weight:800;text-align:center;margin-bottom:12px;font-size:13px}
.big{font-size:34px;font-weight:900;color:var(--amber2);letter-spacing:-.5px}
.ok{color:var(--green)}.bad{color:var(--red)}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;word-break:break-all}
#toast{position:fixed;left:50%;bottom:calc(96px + var(--safe-b));transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}
#toast div{background:#262d35;border:1px solid var(--line);padding:10px 16px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.5);font-weight:700;animation:toastin .25s ease-out}
#toast div.err{border-color:#7a3530;background:#3a2222}
@keyframes toastin{from{transform:translateY(10px);opacity:0}}
.modal{position:fixed;inset:0;background:rgba(5,7,9,.72);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;animation:fade .18s}
.modal .card{max-width:460px;width:100%;max-height:92dvh;overflow:auto;animation:rise .25s cubic-bezier(.2,.9,.3,1.1)}
@keyframes fade{from{opacity:0}}@keyframes rise{from{transform:translateY(24px);opacity:.3}}
.gatehead{display:flex;gap:12px;align-items:center}.gatehead .spade{font-size:38px;color:var(--amber);text-shadow:0 0 18px rgba(242,163,58,.6)}
.gatehead h2{margin:0}.gatehead p{margin:2px 0 0}
.avagrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px}
.avagrid button{padding:0;aspect-ratio:1;border-radius:50%;overflow:hidden;border:3px solid transparent;background:#0d1115;min-height:0}
.avagrid button svg{width:100%;height:100%;display:block}
.avagrid button.sel{border-color:var(--amber);box-shadow:0 0 0 3px rgba(242,163,58,.25);transform:scale(1.05)}

/* ---------- lobby ---------- */
.hero{position:relative;display:flex;align-items:center;gap:20px;padding:26px;border-radius:22px;margin-bottom:14px;overflow:hidden;border:1px solid #3d3423;
  background:radial-gradient(500px 260px at 85% 10%,rgba(242,163,58,.28),transparent 70%),linear-gradient(135deg,#2a2216,#171c22 60%)}
.hero:before{content:"";position:absolute;inset:auto 0 0 0;height:110px;background:var(--skyline) bottom center/1100px 180px repeat-x;opacity:.55;pointer-events:none}
.herotext{position:relative;flex:1;max-width:560px}
.kicker{margin:0;color:var(--amber2);font-weight:900;letter-spacing:2px;text-transform:uppercase;font-size:12px}
.hero h1{font-size:clamp(30px,5vw,46px);letter-spacing:-1px}
.joinrow{display:flex;gap:8px;margin-top:10px}.joinrow input{flex:1}
.herocards{position:relative;display:flex;--cw:64px;margin-right:20px}
.herocards .c{transform:rotate(-10deg) translateY(6px);box-shadow:0 14px 30px rgba(0,0,0,.6)}.herocards .c+.c{transform:rotate(9deg) translateX(-14px)}
.wallet .streak{display:flex;gap:6px;margin:6px 0 12px}.streak i{flex:1;text-align:center;font-style:normal;font-size:11px;font-weight:800;padding:4px 0;border-radius:8px;background:#0d1115;border:1px solid var(--line);color:var(--muted)}
.streak i.on{background:linear-gradient(#ffb94f,#e48c1c);color:#1d1305;border-color:#b8730f}
.venue{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--text);position:relative;overflow:hidden;min-height:150px;transition:transform .15s}
.venue:hover{transform:translateY(-2px)}
.venue:before{content:"";position:absolute;inset:0;opacity:.35;pointer-events:none;background:radial-gradient(260px 120px at 100% 0,var(--vc),transparent 70%)}
.v-corner{--vc:#2a7a5d}.v-marlow{--vc:#2b6f8f}.v-topfloor{--vc:#8f2b3c}
.vtop{display:flex;justify-content:space-between;align-items:center}.vtop h3{margin:0}
.blinds{font-weight:900;color:var(--amber2);background:rgba(0,0,0,.3);padding:3px 10px;border-radius:999px;font-size:13px}
.seatsrow{display:flex;gap:4px;align-items:center}.seatsrow .mini-ava{width:28px;height:28px}
.vfoot{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.go{font-weight:900;color:var(--amber2)}
.skeleton{background:linear-gradient(90deg,#1a2027,#222a32,#1a2027);background-size:200% 100%;animation:sk 1.2s infinite}@keyframes sk{to{background-position:-200% 0}}
.installbar{position:fixed;left:12px;right:12px;bottom:calc(12px + var(--safe-b));z-index:40;display:flex;gap:12px;align-items:center;background:#1f262e;border:1px solid #3d3423;border-radius:18px;padding:12px;box-shadow:0 14px 40px rgba(0,0,0,.6);transform:translateY(140%);transition:transform .35s cubic-bezier(.2,.9,.3,1.1);max-width:520px;margin:0 auto}
.installbar.show{transform:none}
.installbar img{width:46px;height:46px;border-radius:12px}.installbar div{flex:1;display:flex;flex-direction:column;font-size:13px}.installbar strong{font-size:15px}
.installbar svg{vertical-align:-3px;color:var(--blue)}.installbar .x{min-height:36px;width:36px;padding:0;background:transparent;border:0;color:var(--muted)}

/* ---------- shop ---------- */
.shophead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.walletpill{font-weight:900;font-size:20px;color:var(--amber2);background:var(--panel2);border:1px solid var(--line);padding:8px 16px;border-radius:999px}
.packs{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.pack{text-align:center;position:relative;display:flex;flex-direction:column;gap:6px;align-items:center}
.pack h3{margin:4px 0 0}.pack .chips{font-size:20px;font-weight:900;color:var(--amber2)}
.pack .tag{position:absolute;top:10px;right:10px;background:var(--amber);color:#1d1305;font-size:11px;font-weight:900;border-radius:999px;padding:3px 9px}
.pack.tier3{border-color:#6d5320;box-shadow:0 0 0 1px rgba(242,163,58,.25),0 10px 30px rgba(0,0,0,.3)}
.stackart{height:56px;display:flex;align-items:flex-end;justify-content:center;gap:2px}
.stackart i{width:26px;height:var(--h,26px);border-radius:50%;background:radial-gradient(circle at 50% 40%,#ffd58a 0 30%,#e48c1c 31% 45%,#fff 46% 52%,#e48c1c 53%);box-shadow:0 3px 0 #8a520c,0 6px 10px rgba(0,0,0,.4)}
.stackart i:nth-child(2n){background:radial-gradient(circle at 50% 40%,#bfe3d1 0 30%,#2f8f5b 31% 45%,#fff 46% 52%,#2f8f5b 53%);box-shadow:0 3px 0 #1b5a37,0 6px 10px rgba(0,0,0,.4);transform:translateY(-6px)}
.stackart i:nth-child(3n){background:radial-gradient(circle at 50% 40%,#d5c3ff 0 30%,#6a3fa0 31% 45%,#fff 46% 52%,#6a3fa0 53%);box-shadow:0 3px 0 #3b2060,0 6px 10px rgba(0,0,0,.4);transform:translateY(-12px)}
.meter{position:relative;background:#0d1115;border:1px solid var(--line);border-radius:10px;height:30px;margin:8px 0;overflow:hidden}
.meter span{position:relative;z-index:1;font-size:12.5px;font-weight:800;line-height:30px;padding:0 10px}.meter i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#3a2c12,#6d5320)}
.checkoutline{display:flex;justify-content:space-between;font-size:18px;padding:12px;background:#0d1115;border-radius:12px;margin:8px 0}
table.simple{width:100%;border-collapse:collapse;font-size:13px}table.simple td,table.simple th{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left}
.prose{max-width:780px;margin:0 auto}

/* ---------- cards ---------- */
.c{width:var(--cw);height:var(--ch);border-radius:calc(var(--cw)*.12);background:linear-gradient(160deg,#fffdf8,#f1ece1);color:#16181b;position:relative;flex:none;
  box-shadow:0 2px 0 rgba(0,0,0,.15),0 6px 14px rgba(0,0,0,.45);font-weight:900;line-height:1;backface-visibility:hidden}
.c .r{position:absolute;left:8%;top:6%;font-size:calc(var(--cw)*.42);letter-spacing:-1px}
.c .s{position:absolute;left:9%;top:38%;font-size:calc(var(--cw)*.3)}
.c .pip{position:absolute;right:8%;bottom:4%;font-size:calc(var(--cw)*.62);opacity:.92}
.c.red{color:#cc1f1a}
.c.back{background:radial-gradient(circle at 50% 50%,rgba(255,198,107,.35) 0 18%,transparent 19%),repeating-linear-gradient(45deg,#9b3b18 0 5px,#7a2e14 5px 10px),#7a2e14;border:3px solid #f6efe0}
.c.back:after{content:"♠";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,230,190,.85);font-size:calc(var(--cw)*.4)}
.c.win{box-shadow:0 0 0 3px var(--amber2),0 0 22px rgba(255,198,107,.8);transform:translateY(-5px);transition:transform .25s}
.c.dim{filter:brightness(.55) saturate(.6);transition:filter .3s}

/* ---------- table ---------- */
body.at-table footer{display:none}
body.at-table main{max-width:1280px;padding:10px 12px}
.tview{display:grid;grid-template-columns:1fr 300px;gap:14px;align-items:start}
.tmain{min-width:0;display:flex;flex-direction:column;gap:10px}
.tbar{display:flex;align-items:center;gap:10px}.tbar .tt{flex:1;min-width:0}.tbar h2{margin:0;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tbar #tinfo{font-size:12.5px}
.sheettabs{display:none;gap:6px}.sheettabs button{width:42px;min-height:40px;padding:0;font-size:18px}.sheettabs button.on{border-color:var(--amber)}
.scene{position:relative;border-radius:26px;padding:6px;background:radial-gradient(70% 60% at 50% 0%,rgba(242,163,58,.18),transparent 70%)}
.scene:before{content:"";position:absolute;left:50%;top:-6%;width:46%;height:28%;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 0,rgba(255,190,100,.32),transparent 70%);pointer-events:none;filter:blur(6px)}
.felt{position:relative;width:100%;aspect-ratio:16/10;max-height:calc(100dvh - 250px);min-height:340px;margin:0 auto;--felt1:#2f8a67;--felt2:#1d5d45;--felt3:#123a2c}
.venue-marlow .felt{--felt1:#2f7f96;--felt2:#1d5466;--felt3:#11313d}
.venue-topfloor .felt{--felt1:#94364a;--felt2:#622030;--felt3:#3a121c}
.venue-home .felt{--felt1:#3b7d5a;--felt2:#26553d;--felt3:#163423}
.rail{position:absolute;inset:7% 4.5%;border-radius:999px;background:linear-gradient(180deg,#5a3a22,#3a2414 55%,#2a190d);box-shadow:0 22px 50px rgba(0,0,0,.7),0 0 0 2px #1b0f07,inset 0 2px 0 rgba(255,220,170,.25)}
.cloth{position:absolute;inset:calc(7% + 16px) calc(4.5% + 16px);border-radius:999px;overflow:hidden;
  background:radial-gradient(ellipse 60% 55% at 50% 38%,var(--felt1),var(--felt2) 60%,var(--felt3) 100%);
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.35),inset 0 0 0 7px rgba(255,255,255,.04),inset 0 10px 50px rgba(0,0,0,.55)}
.cloth:before{content:"";position:absolute;inset:0;opacity:.18;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
.cloth:after{content:"";position:absolute;inset:6%;border-radius:999px;border:2px dashed rgba(255,255,255,.07)}
.logo{position:absolute;left:50%;top:70%;transform:translate(-50%,-50%);text-align:center;color:rgba(255,255,255,.075);font-weight:900;white-space:nowrap;line-height:1.1}
.logo span{font-size:clamp(14px,2.4vw,28px);letter-spacing:6px;display:block}.logo small{font-size:clamp(9px,1vw,12px);letter-spacing:5px}
.felt.offline{filter:grayscale(.6) brightness(.8)}
.deck{position:absolute;left:50%;top:22%;transform:translate(-50%,-50%);--cw:calc(clamp(34px,4.4vw,56px)*.7);opacity:.0;pointer-events:none}
.deck .c{position:absolute;left:0;top:0}
.center{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:1;width:70%}
.board{display:flex;gap:clamp(4px,.6vw,8px);min-height:var(--ch);perspective:600px}
.pot{display:flex;align-items:center;gap:6px;background:rgba(0,0,0,.42);padding:4px 14px 4px 6px;border-radius:999px;font-weight:900;color:var(--amber2);font-size:15px;opacity:0;transition:opacity .25s;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.pot.on{opacity:1}
.chipico{width:18px;height:18px;border-radius:50%;flex:none;background:radial-gradient(circle,#ffd58a 0 32%,#e48c1c 33% 50%,#fff 51% 58%,#e48c1c 59%);box-shadow:0 2px 0 #8a520c}
.status{font-size:13px;font-weight:700;color:#e3f3ea;background:rgba(0,0,0,.3);padding:4px 12px;border-radius:999px;text-align:center;max-width:100%}
.status.result{background:rgba(20,14,4,.75);color:var(--amber2);box-shadow:0 0 0 1px rgba(242,163,58,.4),0 0 24px rgba(242,163,58,.25);font-size:14px}
/* seats */
.seat{position:absolute;transform:translate(-50%,-50%);width:clamp(110px,14vw,156px);display:flex;flex-direction:column;align-items:center;z-index:3;--p:1}
.seat .hole{display:flex;gap:3px;height:calc(var(--cw)*.82*1.4);margin-bottom:-14px;z-index:0;--cw:calc(clamp(34px,4.4vw,56px)*.82)}
.seat .hole .c:first-child{transform:rotate(-6deg)}.seat .hole .c:last-child{transform:rotate(6deg) translateY(2px)}
.seat.you .hole{--cw:clamp(44px,5.2vw,64px);height:calc(var(--cw)*1.4);margin-bottom:-18px}
.seat .plate{position:relative;z-index:1;display:flex;align-items:center;gap:8px;width:100%;background:linear-gradient(180deg,rgba(26,32,39,.97),rgba(14,18,22,.97));border:2px solid #34404b;border-radius:999px;padding:4px 12px 4px 4px;box-shadow:0 8px 20px rgba(0,0,0,.5);transition:border-color .2s,box-shadow .2s}
.seat .ava{position:relative;width:44px;height:44px;flex:none}
.seat .ava .face{position:absolute;inset:3px;border-radius:50%;overflow:hidden;background:#0d1115;display:flex;align-items:center;justify-content:center}
.seat .ava .face svg{width:100%;height:100%}
.seat .ava .ring{position:absolute;inset:0;border-radius:50%;background:transparent}
.seat.turn .ava .ring{background:conic-gradient(var(--amber) calc(var(--p)*360deg),rgba(255,255,255,.08) 0)}
.seat.turn.hurry .ava .ring{background:conic-gradient(var(--red) calc(var(--p)*360deg),rgba(255,255,255,.08) 0)}
.seat .info{min-width:0;flex:1;line-height:1.15}
.seat .nm{font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seat .st{font-weight:900;color:var(--amber2);font-size:13px}
.seat .dealer{display:none;position:absolute;right:-8px;top:-8px;background:radial-gradient(circle at 40% 35%,#fff,#d8d2c4);color:#111;font-weight:900;border-radius:50%;width:24px;height:24px;font-size:12px;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,.6)}
.seat.dealerOn .dealer{display:flex}
.seat .tag{margin-top:4px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.6px;min-height:18px;padding:0 8px;border-radius:999px;line-height:18px;color:#d5ebe0}
.seat .tag[data-a="fold"]{color:#c9b0ad}.seat .tag[data-a="allin"]{background:var(--red);color:#fff}.seat .tag[data-a="raise"],.seat .tag[data-a="bet"]{background:rgba(242,163,58,.9);color:#1d1305}
.seat .tag[data-a="call"],.seat .tag[data-a="check"]{background:rgba(0,0,0,.4)}
.seat .hint{font-size:11.5px;font-weight:800;color:var(--amber2);min-height:0;text-shadow:0 1px 2px #000}
.seat.top .tag{order:-1;margin:0 0 4px}.seat.top .hint{order:-2}
.seat.turn .plate{border-color:var(--amber);box-shadow:0 0 0 3px rgba(242,163,58,.25),0 0 26px rgba(242,163,58,.45)}
.seat.you .plate{border-color:#4a86b8}.seat.you.turn .plate{border-color:var(--amber)}
.seat.folded .plate,.seat.folded .hole{opacity:.45}.seat.away .plate{opacity:.6}
.seat.winner .plate{border-color:var(--green);box-shadow:0 0 0 3px rgba(63,191,127,.25),0 0 30px rgba(63,191,127,.55)}
.seat.allin .plate{border-color:var(--red)}
.seat.empty{width:auto}
.sitbtn{flex-direction:column;gap:0;border-radius:50%;width:62px;height:62px;padding:0;border:2px dashed rgba(255,255,255,.25);background:rgba(0,0,0,.35);color:#d5ebe0;font-size:12px}
.sitbtn span{font-size:22px;line-height:1}.sitbtn:hover{border-color:var(--amber);color:var(--amber2)}
.emptyseat{width:44px;height:44px;border-radius:50%;border:2px dashed rgba(255,255,255,.12)}
.bubble{position:absolute;bottom:100%;left:50%;transform:translate(-50%,6px) scale(.7);opacity:0;background:#fff;color:#111;border-radius:14px;padding:5px 11px;font-size:13px;font-weight:800;white-space:nowrap;pointer-events:none;transition:all .2s cubic-bezier(.3,1.6,.5,1);z-index:5;box-shadow:0 6px 16px rgba(0,0,0,.4)}
.bubble.show{opacity:1;transform:translate(-50%,-4px) scale(1)}
.seat.top .bubble{bottom:auto;top:100%}
.winpop{position:absolute;top:-6px;left:50%;transform:translateX(-50%);font-weight:900;color:var(--green);font-size:18px;text-shadow:0 2px 6px #000;animation:winpop 3s ease-out forwards;pointer-events:none;z-index:6}
@keyframes winpop{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}15%{opacity:1;transform:translate(-50%,-10px) scale(1.15)}25%{transform:translate(-50%,-14px) scale(1)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-30px)}}
/* bets & flying chips */
.bet{position:absolute;transform:translate(-50%,-50%);display:none;align-items:center;gap:5px;background:rgba(0,0,0,.5);border-radius:999px;padding:3px 10px 3px 4px;font-weight:900;color:var(--amber2);font-size:13px;z-index:2;white-space:nowrap}
.bet.on{display:flex}.bet.big .chipico{box-shadow:0 2px 0 #8a520c,0 -3px 0 #e48c1c,0 -5px 0 #8a520c}
#fx{position:absolute;inset:0;pointer-events:none;z-index:8}
.flychips{position:absolute;display:flex;align-items:center;will-change:transform,opacity}
.flychips i{width:16px;height:16px;border-radius:50%;margin-left:-8px;background:radial-gradient(circle,#ffd58a 0 32%,#e48c1c 33% 50%,#fff 51% 58%,#e48c1c 59%);box-shadow:0 2px 0 #8a520c}
.flychips i:nth-child(2){background:radial-gradient(circle,#bfe3d1 0 32%,#2f8f5b 33% 50%,#fff 51% 58%,#2f8f5b 59%);box-shadow:0 2px 0 #1b5a37;transform:translateY(-3px)}
.flychips.big i{width:22px;height:22px;margin-left:-10px}
.flychips b{margin-left:6px;color:var(--green);font-size:14px;text-shadow:0 1px 3px #000}
.spark{position:absolute;width:8px;height:12px;border-radius:2px;will-change:transform,opacity}
/* actions */
.actions{display:flex;flex-direction:column;gap:8px;background:linear-gradient(180deg,rgba(30,37,44,.97),rgba(20,25,30,.98));border:1px solid var(--line);border-radius:18px;padding:10px;min-height:64px;justify-content:center}
.actions.myturn{border-color:#6d5320;box-shadow:0 0 0 1px rgba(242,163,58,.2),0 -6px 30px rgba(242,163,58,.08)}
.mainbtns{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px}.mainbtns:has(> :nth-child(2):last-child){grid-template-columns:1fr 1fr}
.act{min-height:54px;font-size:16px;border-radius:14px;flex-direction:column;gap:0;line-height:1.1}
.act b{font-size:14px}
.act.fold{background:linear-gradient(#4a2323,#331818);border-color:#6b2c2c;color:#ffc9c3}
.act.check,.act.call{background:linear-gradient(#2a6f52,#1d5640);border-color:#2f8f5b;color:#e9fff3}
.act.raise{background:linear-gradient(#ffb94f,#e48c1c);color:#1d1305;border-color:#b8730f}
.raiserow{display:flex;flex-direction:column;gap:8px}
.presets{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.presets button{min-height:38px;padding:4px;font-size:13px;border-radius:10px}.presets .allinp{color:#ffb3ad;border-color:#6b2c2c}
.slider{display:flex;gap:8px;align-items:center}.slider input[type=range]{flex:1;accent-color:var(--amber);min-height:36px;padding:0;background:transparent;border:0}.slider .amt{width:110px;flex:none;min-height:40px;text-align:center;font-weight:800}
.prebtns{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.prebtns .muted{font-size:13px}
.pre.on{border-color:var(--amber);background:#3a2c12;color:var(--amber2)}
/* side */
.tside{display:flex;flex-direction:column;gap:12px}
.sheetgrab{display:none}
.log{font-size:12.5px;max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:3px;font-family:ui-monospace,Menlo,monospace;color:#c9ced3}.log div.chat{color:#ffd58a}
#fair{margin-top:8px}
.quick{display:flex;flex-wrap:wrap;gap:6px}.quick button{min-height:36px;padding:5px 10px;font-size:13px;font-weight:700;border-radius:999px}
.invite{display:flex;gap:8px;align-items:center;background:#0d1115;border:1px solid var(--line);border-radius:12px;padding:6px 6px 6px 10px;margin-bottom:10px}.invite .mono{flex:1}
.invite button{min-height:36px}
.kick{margin-top:8px}
@media (hover:none){button:hover,.btn:hover{filter:none}}

/* ---------- mobile ---------- */
@media (max-width:860px){
  .tview{grid-template-columns:1fr}
  .sheettabs{display:flex}
  .tside{position:fixed;left:0;right:0;bottom:0;z-index:30;max-height:62dvh;overflow:auto;background:#141a20;border-top:1px solid var(--line);border-radius:22px 22px 0 0;padding:8px 12px calc(16px + var(--safe-b));transform:translateY(105%);transition:transform .3s cubic-bezier(.2,.9,.3,1);box-shadow:0 -20px 50px rgba(0,0,0,.6)}
  .tside.open{transform:none}
  .tside .panel{display:none;box-shadow:none;background:transparent;border:0;padding:6px 0}
  .tside[data-show=chat] [data-panel=chat],.tside[data-show=log] [data-panel=log],.tside[data-show=table] [data-panel=table]{display:block}
  .sheetgrab{display:block;width:44px;height:5px;border-radius:3px;background:#3a444e;margin:4px auto 6px;cursor:pointer}
}
@media (max-width:700px){
  :root{--cw:clamp(30px,8.6vw,44px)}
  header{padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top))}
  .brand small,.brand .bt{display:none}.brand .spade{font-size:26px}
  .navlink{padding:8px 6px;font-size:14px}.me .nm{display:none}.me{padding-right:10px}
  main{padding:12px}
  .hero{padding:20px 18px 70px;flex-direction:column;align-items:stretch}.herocards{position:absolute;right:6px;top:18px;--cw:42px;opacity:.85}
  .hero h1{font-size:32px}.herotext{max-width:none}
  body.at-table main{padding:4px 6px 0;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
  body.at-table .tview{flex:1;display:flex;flex-direction:column;min-height:0}
  body.at-table .tmain{flex:1;min-height:0}
  body.at-table .scene{flex:1;min-height:0;display:flex}
  .prebtns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.prebtns .muted{grid-column:1/-1;text-align:center}
  .seat.north .hole{order:3;margin:-10px 0 0}.seat.north .tag{order:4;margin:2px 0 0}
  .hero:before{opacity:.25}
  body.at-table header{display:none}
  .tview{gap:6px}
  .tbar{padding:max(4px,env(safe-area-inset-top)) 4px 0}
  .scene{padding:0;border-radius:0}
  .felt{aspect-ratio:auto;height:auto;flex:1;min-height:380px;max-height:none}
  .rail{inset:5% 9%;border-radius:46%/30%}.cloth{inset:calc(5% + 12px) calc(9% + 12px);border-radius:46%/30%}.cloth:after{border-radius:46%/30%}
  .logo{top:66%}.logo span{letter-spacing:3px}
  .center{width:86%;top:47%}
  .seat{width:clamp(92px,27vw,122px)}
  .seat .plate{padding:3px 8px 3px 3px;gap:5px}.seat .ava{width:36px;height:36px}
  .seat .nm{font-size:12px}.seat .st{font-size:12px}
  .seat .hole{--cw:clamp(24px,6.6vw,32px)}
  .seat.you .hole{--cw:clamp(44px,13vw,58px)}
  .seat.you{width:clamp(130px,40vw,170px)}
  .actions{position:sticky;bottom:0;border-radius:18px 18px 0 0;padding:10px 10px calc(10px + var(--safe-b));margin:0 -6px;border-left:0;border-right:0;border-bottom:0}
  .presets button{font-size:12px}
  #toast{bottom:calc(150px + var(--safe-b))}
}
@media (max-width:860px) and (orientation:landscape) and (max-height:520px){
  body.at-table header{display:none}
  .tview{grid-template-columns:1fr}
  .felt{aspect-ratio:auto;height:calc(100dvh - 120px);min-height:250px;max-height:none}
  .tmain{display:grid;grid-template-columns:1fr 250px;grid-template-rows:auto 1fr;gap:6px}
  .tbar{grid-column:1/-1}.actions{grid-column:2;grid-row:2;align-self:end;position:static;border-radius:16px;margin:0}
  .presets{grid-template-columns:repeat(3,1fr)}.mainbtns{grid-template-columns:1fr}
  .act{min-height:44px}
}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.pack button{width:100%}
.tside .row select{width:auto;flex:1;min-width:90px}

/* ---------- v3: friends, presence & invites ---------- */
.friendsnav{position:relative;display:inline-flex;align-items:center;gap:6px}
.friendsnav svg{display:none}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:11px;font-weight:900;line-height:1;box-shadow:0 0 0 2px var(--bg)}
.badge[hidden]{display:none}
.friendsnav .badge{position:absolute;top:0;right:-4px}
.cnt{margin-left:6px;font-size:11px;font-weight:900;color:var(--muted);background:rgba(255,255,255,.07);border-radius:999px;padding:1px 7px}
.tabs .badge{margin-left:6px;position:static;box-shadow:none}
.linkbtn{width:100%;margin-top:6px;border:0;color:var(--amber2);font-weight:700;min-height:40px}
.mini-ava.lg{width:44px;height:44px}
.bigava{display:inline-flex;width:72px;height:72px;border-radius:50%;overflow:hidden;background:#0d1115;border:3px solid #3d3423;box-shadow:0 0 0 4px rgba(242,163,58,.12),0 10px 26px rgba(0,0,0,.5);flex:none}
.bigava svg{width:100%;height:100%}.bigava.xl{width:128px;height:128px;border-width:4px}
.kicker+h1{margin-top:2px}
.fhead{display:flex;align-items:flex-end;justify-content:space-between;margin:4px 0 12px}.fhead h1{margin:0;font-size:clamp(28px,4vw,38px);letter-spacing:-.5px}
.mecard h2{margin:0 0 2px}
.mecard{background:radial-gradient(420px 200px at 100% 0,rgba(242,163,58,.18),transparent 70%),linear-gradient(180deg,rgba(34,42,50,.92),rgba(26,32,39,.94));border-color:#3d3423}
.handlebtn{min-height:30px;padding:2px 10px;font-size:13.5px;border-radius:999px;background:rgba(0,0,0,.3);color:var(--amber2);font-weight:800}
.codebox{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 10px;padding:10px 12px;border-radius:14px;background:#0d1115;border:1px dashed #6d5320}
.codebox div{display:flex;flex-direction:column}
.code{font-family:ui-monospace,Menlo,monospace;letter-spacing:4px;font-size:22px;font-weight:900;color:var(--amber2)}
.lcard .code{font-size:inherit;letter-spacing:2px}
.reccard{display:flex;gap:12px;align-items:center;margin-top:14px;padding:12px;border-radius:14px;background:rgba(242,163,58,.08);border:1px solid #6d5320}
.reccard div{display:flex;flex-direction:column}.reccard .ico{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;background:var(--amber);color:#1d1305;flex:none}
.reccard.done{background:rgba(63,191,127,.07);border-color:#2a5d45}.reccard.done .ico{background:var(--green);color:#06210f}
.tabs{display:flex;gap:6px;margin:18px 0 10px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.tabs button{border-radius:999px;min-height:40px;padding:6px 16px;white-space:nowrap;background:rgba(26,32,39,.8)}
.tabs button.on{background:linear-gradient(#ffb94f,#e48c1c);color:#1d1305;border-color:#b8730f}.tabs button.on .cnt{color:#1d1305;background:rgba(0,0,0,.12)}
.flist{display:flex;flex-direction:column;gap:2px}
.listhead{margin:2px 4px 6px;text-transform:uppercase;letter-spacing:1px;font-weight:800;font-size:11px}
.frow{display:flex;align-items:center;gap:12px;padding:8px;border-radius:14px;transition:background .15s}
.frow:hover{background:rgba(255,255,255,.035)}
.frow.off{opacity:.55}
label.frow{cursor:pointer}
.avwrap{position:relative;padding:0;border:0;background:none;min-height:0;border-radius:50%;flex:none;display:inline-flex}
.pdot{position:absolute;right:-1px;bottom:-1px;width:14px;height:14px;border-radius:50%;background:#59636c;border:3px solid #1d242b}
.pdot.on{background:var(--green)}.pdot.at{background:var(--amber);box-shadow:0 0 10px rgba(242,163,58,.8)}
.fi{flex:1;min-width:0;display:flex;flex-direction:column}.fi strong,.fi span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fi .at{color:var(--amber2);font-weight:800}.fi .on{color:var(--green);font-weight:800}
.fa{display:flex;gap:6px;align-items:center;flex:none}
.fr{font-size:12px;font-weight:800;color:var(--green)}
.tick{width:24px;height:24px;min-height:0;accent-color:var(--amber);flex:none}
.emptystate{text-align:center;padding:22px 10px}.emptystate p{margin:4px 0}.emptystate .btn{margin-top:10px}
.emptyart{display:block;font-size:40px;color:var(--amber);opacity:.5;text-shadow:0 0 20px rgba(242,163,58,.4)}
.prefix{display:flex;align-items:center;background:#0d1115;border:1px solid var(--line);border-radius:12px;padding-left:12px}
.prefix span{color:var(--amber2);font-weight:900}.prefix input{border:0;background:transparent}
.monoin{font-family:ui-monospace,Menlo,monospace;letter-spacing:2px;text-transform:uppercase}
.reccode{display:flex;flex-direction:column;gap:2px;margin:12px 0;padding:14px;border-radius:14px;background:#0d1115;border:1px dashed var(--amber);text-align:center}
.reccode strong{font-size:17px;margin-bottom:8px}
.reccode code{font-family:ui-monospace,Menlo,monospace;font-size:clamp(18px,5.2vw,24px);font-weight:900;letter-spacing:2px;color:var(--amber2);user-select:all;word-break:break-all}
.modal .col{display:flex;flex-direction:column;gap:8px;margin:14px 0 6px}
.pcard{text-align:center;display:flex;flex-direction:column;align-items:center}.pcard h2{margin:10px 0 0}.pcard p{margin:2px 0}
.pstat{display:flex;align-items:center;gap:6px;min-height:20px}.pstat .pdot{position:static;border-width:0;width:10px;height:10px}
.tcenter{text-align:center}
/* invite landing */
.landing{display:flex;justify-content:center;padding:18px 0 30px}
.lcard{position:relative;overflow:hidden;max-width:500px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 22px 22px;border-color:#3d3423;
  background:radial-gradient(420px 260px at 50% -40px,rgba(242,163,58,.28),transparent 70%),linear-gradient(180deg,rgba(34,42,50,.95),rgba(20,25,30,.97))}
.lcard h1{font-size:clamp(24px,5vw,32px);letter-spacing:-.5px;margin:4px 0 2px}
.lcard .big-btn{margin-top:14px}.lcard .btn{width:100%}
.lglow{position:absolute;left:50%;top:-60px;width:320px;height:320px;transform:translateX(-50%);background:radial-gradient(circle,rgba(255,190,100,.25),transparent 65%);pointer-events:none;filter:blur(4px)}
.lcard .bigava{animation:floaty 5s ease-in-out infinite}
@keyframes floaty{50%{transform:translateY(-6px)}}
.lpoints{list-style:none;padding:0;margin:16px 0 0;text-align:left;width:100%;display:flex;flex-direction:column;gap:8px;font-size:13.5px;color:var(--muted)}
.lpoints li{padding-left:24px;position:relative}.lpoints li:before{content:"♠";position:absolute;left:4px;color:var(--amber)}
/* notifications */
#notes{position:fixed;top:calc(64px + env(safe-area-inset-top,0px));right:14px;z-index:70;display:flex;flex-direction:column;gap:10px;width:min(370px,calc(100vw - 20px))}
.note{position:relative;overflow:hidden;display:flex;gap:12px;align-items:flex-start;padding:12px 38px 12px 12px;border-radius:18px;background:linear-gradient(180deg,#262e37,#1b2128);border:1px solid #3d3423;box-shadow:0 18px 40px rgba(0,0,0,.6),0 0 0 1px rgba(242,163,58,.08);animation:notein .4s cubic-bezier(.2,.9,.3,1.2)}
.note.n-invite{border-color:var(--amber);box-shadow:0 18px 40px rgba(0,0,0,.6),0 0 30px rgba(242,163,58,.25)}
.note.n-ok{border-color:#2a5d45}
.note.out{animation:noteout .25s ease-in forwards}
.note .nb{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.note .nb strong{font-size:14.5px}
.note .row{margin-top:8px;gap:8px}.note .row button{flex:1}
.note .x{position:absolute;right:6px;top:6px;width:30px;min-height:30px;padding:0;border:0;background:transparent;color:var(--muted)}
.note .ttl{position:absolute;left:0;bottom:0;height:3px;background:var(--amber);width:100%;transform-origin:left;animation:ttl linear forwards}
@keyframes ttl{to{transform:scaleX(0)}}
@keyframes notein{from{transform:translateX(30px) scale(.96);opacity:0}}
@keyframes noteout{to{transform:translateX(30px);opacity:0}}
/* table: invite button */
.invbtn{width:auto;padding:0 12px;gap:6px;font-size:14px}
.invfull{width:100%;margin-top:12px}
.seat .plate[role=button]{cursor:pointer}
.seat:not(.you) .plate[role=button]:hover{border-color:#5a6875}
@media (max-width:860px){.invbtn .lbltxt{display:none}.invbtn{width:42px;padding:0;min-height:40px}}
@media (max-width:700px){
  .friendsnav svg{display:block}.friendsnav .lbltxt{display:none}.friendsnav{padding:8px}
  #notes{top:auto;bottom:calc(14px + var(--safe-b));right:10px;left:10px;width:auto}
  body.at-table #notes{top:calc(8px + env(safe-area-inset-top,0px));bottom:auto}
  @keyframes notein{from{transform:translateY(30px);opacity:0}}
  .modal.sheetm,.modal.pc,.modal.rec{align-items:flex-end;padding:0}
  .modal.sheetm .card,.modal.pc .card,.modal.rec .card{border-radius:22px 22px 0 0;padding-bottom:calc(18px + var(--safe-b));max-height:88dvh}
  .codebox .code{font-size:19px;letter-spacing:3px}
  .frow{gap:10px;padding:8px 4px}
  .fa .sm{padding:6px 10px}
  .bigava.xl{width:112px;height:112px}
}
@media (max-width:700px){
  .tbar{gap:6px;max-width:100%;min-width:0}
  .tbar .iconbtn,.sheettabs button,.invbtn{width:38px;min-height:38px;height:38px}
  .sheettabs{gap:5px}
  .fpage{display:flex;flex-direction:column}
  .fpage>.grid{display:contents}
  .fpage .mecard{order:1}.fpage .tabs{order:2}.fpage .flistcard{order:3}.fpage .addcard{order:4;margin-top:14px}.fpage .notice{order:5}
  .mecard .bigava{width:56px;height:56px}
  .mecard .codebox{margin:12px 0 8px}
  .mecard .invite{margin:0}.mecard .invite .mono{display:none}.mecard .invite button{flex:1}
  .mecard .invite{padding:0;background:none;border:0}
}
.sheetm .flist{max-height:min(52dvh,420px);overflow:auto;margin:6px 0 12px}
@media (max-width:700px){.tabs button{padding:6px 12px;font-size:14px}.tabs{gap:5px}}
.modal .card{background:linear-gradient(180deg,#242c35,#1a2027)}

/* ---------- v4: weekly league ---------- */
.leaguenav{display:inline-flex;align-items:center;gap:6px}.leaguenav svg{display:none}
.cdown{display:flex;flex-direction:column;align-items:flex-end;background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:14px;padding:6px 14px;line-height:1.2}
.cdown strong{font-size:20px;color:var(--amber2);font-variant-numeric:tabular-nums}
.lg2{grid-template-columns:1.25fr 1fr}
.rankcard{position:relative;overflow:hidden;--tc:#9aa3ab;border-color:color-mix(in srgb,var(--tc) 45%,var(--line));
  background:radial-gradient(420px 220px at 0% 0%,color-mix(in srgb,var(--tc) 26%,transparent),transparent 70%),linear-gradient(180deg,rgba(34,42,50,.95),rgba(22,27,33,.97))}
.rankcard.t1{--tc:#d08a4e}.rankcard.t2{--tc:#ffc66b}.rankcard.t3{--tc:#5fd39a}.rankcard.t4{--tc:#b9a4ff}
.rankcard:after{content:"";position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--tc) 18%,transparent),transparent 70%);pointer-events:none}
.rc-top{display:flex;gap:16px;align-items:center}
.rc-top .crest{filter:drop-shadow(0 8px 18px rgba(0,0,0,.5)) drop-shadow(0 0 14px color-mix(in srgb,var(--tc) 40%,transparent));flex:none}
.rankcard .kicker{color:var(--tc)}
.rc-pts{display:flex;align-items:baseline;gap:6px}.rc-pts strong{font-size:clamp(38px,6vw,52px);font-weight:900;letter-spacing:-1.5px;line-height:1;font-variant-numeric:tabular-nums}.rc-pts span{color:var(--muted);font-weight:800}
.rc-rank{font-size:18px;font-weight:900;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:4px}
.titlechip{font-size:11px;font-weight:900;letter-spacing:.6px;text-transform:uppercase;background:rgba(0,0,0,.35);border:1px solid var(--line);padding:3px 9px;border-radius:999px;color:var(--amber2)}
.zone{margin:14px 0 10px;padding:10px 12px;border-radius:12px;font-weight:800;font-size:13.5px;background:rgba(0,0,0,.25);border:1px solid var(--line)}
.zone.z-promotion{background:rgba(63,191,127,.12);border-color:#2a5d45;color:#9ff0c6}
.zone.z-relegation{background:rgba(224,72,63,.12);border-color:#6b2c2c;color:#ffb3ad}
.zone.z-unranked{color:var(--muted)}
.zone.z-held{display:flex;flex-direction:column;gap:2px;background:rgba(242,163,58,.1);border-color:#6d5320;color:var(--amber2)}.zone.z-held span{font-weight:600;color:var(--muted);font-size:12.5px}
.rc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rc-stats div{display:flex;flex-direction:column;background:#0d1115;border:1px solid var(--line);border-radius:12px;padding:8px 10px}.rc-stats strong{font-size:18px;font-variant-numeric:tabular-nums}
.amber{color:var(--amber2)}
.handsbar{position:relative;height:26px;border-radius:999px;background:#0d1115;border:1px solid var(--line);overflow:hidden;margin:12px 0}
.handsbar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,color-mix(in srgb,var(--tc) 50%,#000),var(--tc));opacity:.75}
.handsbar span{position:relative;z-index:1;display:block;text-align:center;line-height:24px;font-size:12px;font-weight:900;text-shadow:0 1px 2px #000}
.ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:4px}
.ladder div{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;font-weight:800;color:var(--muted);opacity:.45;padding:6px 0;border-radius:10px}
.ladder div.past{opacity:.75}.ladder div.on{opacity:1;color:var(--text);background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc) 50%,transparent)}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.badge-c{font-size:11.5px;font-weight:800;padding:4px 10px;border-radius:999px;background:linear-gradient(#3a2c12,#2a200d);border:1px solid #6d5320;color:var(--amber2)}
.badges.big .badge-c{font-size:13px;padding:6px 12px}
.rules .lpoints{margin-top:6px}.rules .lpoints li{line-height:1.45}
.lglist{display:flex;flex-direction:column}
.lhead{display:flex;gap:12px;padding:0 10px 6px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.lhead span:first-child{width:28px}.lhead span:last-child{width:60px;text-align:right}.lhead .grow{flex:1;padding-left:56px}
.lrow{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:14px}
.lrow:nth-child(even){background:rgba(255,255,255,.02)}
.lrow.me{background:linear-gradient(90deg,rgba(242,163,58,.16),rgba(242,163,58,.04));box-shadow:inset 0 0 0 1px #6d5320}
.rk{width:28px;text-align:center;font-weight:900;color:var(--muted);font-variant-numeric:tabular-nums}
.rk.p1,.rk.p2,.rk.p3{color:#1d1305;border-radius:50%;height:28px;line-height:28px}
.rk.p1{background:radial-gradient(circle at 35% 30%,#fff1c2,#f2a33a);box-shadow:0 0 12px rgba(242,163,58,.5)}.rk.p2{background:radial-gradient(circle at 35% 30%,#fff,#a9b3bd)}.rk.p3{background:radial-gradient(circle at 35% 30%,#ffd9b8,#c07a3f)}
.lp{width:60px;text-align:right;font-weight:900;font-size:16px;color:var(--amber2);font-variant-numeric:tabular-nums}
.lh{width:44px;text-align:right}
.you{font-size:10px;font-weight:900;text-transform:uppercase;background:var(--amber);color:#1d1305;border-radius:999px;padding:1px 6px;vertical-align:2px}
.tchip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:800;color:var(--muted);width:90px}
.zline{margin:6px 10px;padding:4px 0;font-size:11px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:var(--muted);border-top:1px dashed var(--line)}
.zline.up{color:var(--green);border-color:#2a5d45}.zline.down{color:#ff9d95;border-color:#6b2c2c}
.lrow.z-promotion .rk:not(.p1):not(.p2):not(.p3){color:var(--green)}
.hrow{display:flex;align-items:center;gap:12px;padding:8px 6px;border-bottom:1px solid rgba(255,255,255,.04)}
.hrow .oc{font-size:12.5px;font-weight:800;color:var(--muted);display:flex;gap:6px;align-items:center}.hrow .oc b{font-size:15px}
.hrow.o-promoted .oc{color:var(--green)}.hrow.o-relegated .oc,.hrow.o-inactive .oc{color:#ff9d95}.hrow.o-held .oc{color:var(--amber2)}
.hrow .rw{width:84px;text-align:right;font-weight:900;color:var(--amber2)}
h3.mt{margin-top:18px}
.champs{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04)}.champs>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.champ{display:inline-flex;align-items:center;gap:6px;background:#0d1115;border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 4px}.champ .mini-ava{width:24px;height:24px}
.leaguestrip{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text);margin-top:14px;border-color:#3d3423;background:radial-gradient(360px 120px at 0 50%,rgba(242,163,58,.14),transparent 70%),linear-gradient(180deg,rgba(34,42,50,.92),rgba(26,32,39,.94))}
.leaguestrip:hover{filter:brightness(1.08)}
@media (max-width:860px){.lg2{grid-template-columns:1fr}}
@media (max-width:700px){
  .leaguenav svg{display:block}.leaguenav .lbltxt{display:none}.leaguenav{padding:8px}
  .lgpage .fhead{flex-direction:column;align-items:flex-start;gap:8px}.cdown{flex-direction:row;align-items:baseline;gap:8px;align-self:stretch;justify-content:center}
  .rc-top .crest{width:72px;height:72px}
  .rc-stats strong{font-size:16px}
  .lrow{gap:9px;padding:7px 6px}.lh{display:none}.lhead .tchip{display:none}
  .tchip{width:auto}.tchip span{display:none}
  .hrow .rw{width:auto}.hrow{flex-wrap:wrap}
  .leaguestrip .go{display:none}
}
@media (max-width:420px){.navlink{padding:8px 5px;font-size:13.5px}nav{gap:3px}}
@media (max-width:700px){
  .hrow{display:grid;grid-template-columns:40px 1fr auto;grid-template-areas:"c f r" "c o o";column-gap:10px;row-gap:2px}
  .hrow .crest{grid-area:c}.hrow .fi{grid-area:f}.hrow .rw{grid-area:r}.hrow .oc{grid-area:o}
}

/* ---------- v5: clubs ---------- */
.navico{display:inline-flex;align-items:center;gap:6px}.navico svg{display:none}
.clubsnav{position:relative}
@media (max-width:700px){.navico svg{display:block}.navico .lbltxt{display:none}.navico{padding:8px}}
@media (max-width:380px){.navico,.leaguenav,.friendsnav{padding:7px 5px}.me .nm{display:none}}
.clpage{--ca:#f2a33a;--cb:#3a2410}
.clpage .fhead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:6px 0 14px}
.clpage .fhead h1{margin:2px 0 0}
.clubgrid{margin-bottom:14px}
.clubcard{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text);position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--ca) 35%,var(--line));
  background:radial-gradient(340px 140px at 0 0,color-mix(in srgb,var(--ca) 20%,transparent),transparent 70%),linear-gradient(180deg,rgba(34,42,50,.92),rgba(26,32,39,.94));transition:transform .15s,filter .15s}
.clubcard:hover{transform:translateY(-2px);filter:brightness(1.07)}
.clubcard h3{margin:0 0 3px;font-size:18px}.clubcard .go{font-size:28px;color:var(--ca);font-weight:900}
.clubcard .badge{position:static}
.ccrest{display:inline-flex;flex:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}
.ccrest.xl{margin:0 auto 6px;display:flex;justify-content:center}
.rolechip{display:inline-block;font-size:11px;font-weight:900;letter-spacing:.6px;text-transform:uppercase;padding:1px 8px;border-radius:999px;background:#0d1115;border:1px solid var(--line);color:var(--muted)}
.rolechip.r-owner{color:#1a1206;background:var(--amber2);border-color:var(--amber2)}.rolechip.r-admin{color:var(--ca,var(--amber2));border-color:color-mix(in srgb,var(--ca,#f2a33a) 60%,transparent)}
.clubempty{text-align:center;margin-bottom:14px}.crestrow{display:flex;justify-content:center;gap:10px;margin:6px 0 10px}
.crestrow svg:nth-child(2),.crestrow svg:nth-child(3){transform:translateY(-6px)}
.lpoints.compact{margin:6px 0 0;padding-left:18px}.lpoints.compact li{margin:5px 0;font-size:13.5px;color:var(--muted)}
.clubnote{border-left-color:var(--ca,var(--amber))}
.clbanner{display:flex;align-items:center;gap:16px;padding:18px;border-radius:22px;position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--ca) 45%,var(--line));
  background:radial-gradient(520px 220px at 12% 0,color-mix(in srgb,var(--ca) 30%,transparent),transparent 70%),linear-gradient(135deg,color-mix(in srgb,var(--cb) 85%,#0f1216),#12161b 75%);box-shadow:0 14px 40px rgba(0,0,0,.35)}
.clbanner:after{content:"";position:absolute;inset:auto 0 0 0;height:60px;background:var(--skyline) bottom/auto 60px repeat-x;opacity:.35;pointer-events:none}
.clbanner>*{position:relative;z-index:1}
.clbanner h1{margin:2px 0 4px;font-size:30px;letter-spacing:-.5px;line-height:1.1}
.clbanner .kicker{color:var(--ca)}
.clbanner .back{flex:none;align-self:flex-start}
.clbanner.mini{padding:14px;border-radius:18px}.clbanner.mini h3{margin:2px 0;font-size:20px}.clbanner.mini:after{height:40px;background-size:auto 40px}
.oncount{display:inline-flex;align-items:center;gap:5px}.oncount .pdot{position:static}
.clinv{margin:12px 0;display:flex;align-items:center;gap:10px}.clinv .mono{flex:1;min-width:0}
.clinv .code{font-family:ui-monospace,Menlo,monospace;letter-spacing:2px;color:var(--ca);font-size:16px}
#club-root .tabs button.on{border-color:var(--ca);color:var(--text);box-shadow:inset 0 -2px 0 var(--ca)}
.ctables{margin-top:4px}.ctable{min-height:0;border-color:color-mix(in srgb,var(--ca) 30%,var(--line))}
.ctable .blinds{color:var(--ca)}.ctable .vfoot .row{gap:6px;margin:0}
.mini-ava.emptyseat{background:transparent;border-style:dashed}
.newct h3{margin:0 0 4px}.newct .row.three{gap:8px}
.feed{padding:6px 10px}
.fitem{display:flex;gap:10px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.05)}.fitem:last-child{border-bottom:0}
.fico{width:26px;text-align:center;font-size:17px;flex:none;padding-top:4px}
.ftxt{font-size:14.5px}.ftxt strong{color:var(--text)}
.reacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.react{min-height:32px;padding:3px 10px;border-radius:999px;font-size:15px;background:#0d1115;gap:5px}
.react span{font-size:12px;font-weight:900;color:var(--muted)}
.react.on{border-color:var(--ca);background:color-mix(in srgb,var(--ca) 18%,#0d1115)}.react.on span{color:var(--text)}
.react:active{transform:scale(.92)}
.podium{display:flex;align-items:flex-end;justify-content:center;gap:10px;margin:10px 0 6px}
.pod{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 8px 0;border-radius:14px 14px 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--ca) 20%,transparent),transparent);width:96px;text-align:center}
.pod strong{font-size:13px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pod i{font-style:normal;font-weight:900;font-size:22px;color:var(--ca);padding:6px 0}
.pod.p1{order:2;padding-top:4px}.pod.p1 i{font-size:30px;padding-bottom:18px}.pod.p2{order:1}.pod.p3{order:3}
.lboard .lrow{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px}
.lboard .lrow.me{background:color-mix(in srgb,var(--ca) 14%,transparent);outline:1px solid color-mix(in srgb,var(--ca) 40%,transparent)}
.lboard .rk{width:30px;text-align:center;font-weight:900}.lboard .nm{display:flex;flex-direction:column;min-width:0}.lboard .pt{color:var(--ca);font-size:17px}
.crestpick{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.crestpick button,.themepick button{padding:4px;min-height:0;background:#0d1115;border-radius:12px}
.crestpick button.sel{border-color:var(--amber);box-shadow:0 0 0 3px rgba(242,163,58,.25)}
.themepick{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.themepick button{display:flex;justify-content:flex-start;gap:8px;padding:8px;font-size:12.5px;text-align:left}
.themepick i{width:22px;height:22px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--ca),var(--cb));border:2px solid rgba(255,255,255,.25)}
.themepick button.sel{border-color:var(--ca);box-shadow:0 0 0 3px color-mix(in srgb,var(--ca) 30%,transparent)}
.createm .card{max-width:520px}.cpreview{margin:6px 0 4px}
.clland{border-color:color-mix(in srgb,var(--ca) 45%,var(--line))}.clland .lglow{background:radial-gradient(closest-side,color-mix(in srgb,var(--ca) 40%,transparent),transparent)}
.clland .kicker{color:var(--ca)}.faces{display:flex;justify-content:center;margin:10px 0 14px}.faces .mini-ava{margin-left:-8px;border-color:#151a20;width:34px;height:34px}.faces .mini-ava:first-child{margin-left:0}
.clland .muted .mini-ava{width:22px;height:22px;vertical-align:middle}
.reportlink{color:var(--muted);font-size:13px;min-height:36px;margin-top:6px}.reportlink:hover{color:var(--red)}
.reasons{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.reason{justify-content:flex-start;text-align:left;font-weight:700;background:#0d1115}.reason.sel{border-color:var(--red);background:rgba(224,72,63,.12)}
.clubacts{border-top:1px solid var(--line);margin-top:6px;padding-top:6px;display:flex;flex-direction:column;gap:8px}.clubacts .row{margin:0}
.ncrest{display:inline-flex;flex:none}
.clubstrip{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text);margin-top:14px}
.clubstrip .csx{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(242,163,58,.12);color:var(--amber2)}.clubstrip .csx svg{width:24px;height:24px}
.clubstrip .grow{display:flex;flex-direction:column}.clubstrip .go{font-size:26px;color:var(--amber);font-weight:900}
.clubgone{max-width:520px;margin:40px auto;text-align:center}
@media (max-width:700px){
  .clbanner{padding:14px;gap:12px;border-radius:18px}.clbanner h1{font-size:22px}.clbanner .ccrest svg{width:64px;height:64px}
  .clinv{flex-wrap:wrap}.clinv .mono{display:none}
  .crestpick{grid-template-columns:repeat(6,1fr);gap:4px}.themepick{grid-template-columns:repeat(2,1fr)}
  .clpage .fhead{align-items:center}
  .modal.reportm{align-items:flex-end;padding:0}
  .pod{width:84px}
  .clubstrip .go{display:none}
}
#club-root .tabs button.on{background:linear-gradient(color-mix(in srgb,var(--ca) 80%,#fff),var(--ca));color:#121417;border-color:var(--ca);box-shadow:none}
