*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --primary:#FFC900;
  --primary-light:#FFD633;
  --primary-dark:#D4A800;
  --primary-bg:rgba(255,201,0,0.06);
  --bg:#0A0A0A;
  --surface:#141414;
  --surface2:#1A1A1A;
  --border:#2A2A2A;
  --border-light:#222222;
  --text:#F0F0F0;
  --text2:#999999;
  --text3:#666666;
  --shadow:0 1px 3px rgba(0,0,0,0.3),0 1px 2px rgba(0,0,0,0.2);
  --shadow-lg:0 4px 16px rgba(0,0,0,0.4),0 2px 4px rgba(0,0,0,0.2);
  --radius:10px;
  --radius-sm:6px;
  --c-allin:#dc2626;
  --c-call:#22c55e;
  --c-raise:#f59e0b;
  --c-check:#3b82f6;
  --c-fold:#525252;
  --c-allin-bg:rgba(220,38,38,0.85);
  --c-call-bg:rgba(34,197,94,0.85);
  --c-raise-bg:rgba(245,158,11,0.85);
  --c-check-bg:rgba(59,130,246,0.85);
}
body{background:var(--bg);color:var(--text);font-family:'Inter',system-ui,sans-serif;min-height:100vh;display:flex;flex-direction:column;}

/* HEADER */
.header{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:100;flex-wrap:wrap;}
.logo{font-size:20px;font-weight:700;color:var(--primary);letter-spacing:0.15em;white-space:nowrap;text-transform:uppercase;}
.logo span{color:var(--text3);font-weight:400;font-size:14px;margin-left:6px;letter-spacing:0.15em;text-transform:uppercase;}
.searchBox{flex:1;max-width:400px;position:relative;}
.searchBox input{width:100%;padding:10px 14px 10px 38px;font-family:'Inter',sans-serif;font-size:14px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface2);color:var(--text);outline:none;transition:all .2s;}
.searchBox input:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px rgba(110,86,227,0.12);}
.searchBox::before{content:'';position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239b9bae' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3E%3C/svg%3E") center/contain no-repeat;}
.headerBtn{padding:6px 12px;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text2);transition:all .15s;white-space:nowrap;}
.headerBtn:hover{border-color:var(--primary);color:var(--primary);}
.headerBtn.danger{color:#dc2626;border-color:#fecaca;}
.headerBtn.danger:hover{background:#fef2f2;border-color:#dc2626;}
.headerBtn.import{background:var(--primary);color:#0A0A0A;border-color:var(--primary);font-weight:700;}
.headerBtn.import:hover{background:var(--primary-light);}

/* LAYOUT */
.layout{display:flex;flex:1;overflow:hidden;}

/* SIDEBAR */
.sidebar{width:300px;min-width:300px;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column;height:calc(100vh - 61px);}
/* Action bar (Polarize dark theme — 50% larger) */
.actionBar{background:#141414;border:1px solid #2A2A2A;border-radius:var(--radius);padding:15px;margin-bottom:20px;display:flex;gap:6px;overflow-x:auto;align-items:stretch;}
.actionBar .ab-info{padding:12px 18px;display:flex;flex-direction:column;justify-content:center;gap:3px;border-right:1px solid #2A2A2A;margin-right:6px;min-width:135px;}
.actionBar .ab-info .ab-title{font-size:16px;font-weight:700;color:#F0F0F0;white-space:nowrap;}
.actionBar .ab-info .ab-sub{font-size:14px;font-weight:500;color:#666;white-space:nowrap;}
.ab-pos{padding:9px 12px;border-radius:8px;background:#1A1A1A;min-width:120px;cursor:pointer;transition:all .15s;border:1px solid #2A2A2A;flex-shrink:0;}
.ab-pos:hover{background:#222;border-color:rgba(255,201,0,0.2);}
.ab-pos.active{border-color:var(--primary);background:rgba(255,201,0,0.08);}
.ab-pos.hero{border-color:var(--primary);background:rgba(255,201,0,0.1);}
.ab-pos .ab-pos-head{display:flex;justify-content:space-between;align-items:baseline;gap:9px;margin-bottom:6px;}
.ab-pos .ab-pos-name{font-size:18px;font-weight:800;color:#F0F0F0;font-family:'JetBrains Mono',monospace;}
.ab-pos .ab-pos-stack{font-size:16px;font-weight:700;color:#999;font-family:'JetBrains Mono',monospace;}
.ab-pos .ab-pos-ko{font-size:13px;font-weight:600;color:#22c55e;margin-bottom:6px;font-family:'JetBrains Mono',monospace;}
.ab-pos .ab-acts{display:flex;flex-direction:column;gap:3px;}
.ab-act{padding:5px 9px;border-radius:4px;font-size:15px;font-weight:700;cursor:pointer;transition:all .12s;font-family:'JetBrains Mono',monospace;color:rgba(240,240,240,0.65);background:rgba(255,255,255,0.04);}
.ab-act:hover{background:rgba(255,255,255,0.1);color:#F0F0F0;}
.ab-act.active{background:var(--primary);color:#0A0A0A;}
.ab-act.act-fold{color:#666;}
.ab-act.act-fold.active{background:#444;color:#ccc;}
.ab-act.act-allin{color:#dc2626;}
.ab-act.act-allin.active{background:#dc2626;color:#fff;}
.ab-act.act-call{color:#22c55e;}
.ab-act.act-call.active{background:#22c55e;color:#0A0A0A;}
.ab-act.act-raise{color:#f59e0b;}
.ab-act.act-raise.active{background:#f59e0b;color:#0A0A0A;}
.ab-act.act-check{color:#3b82f6;}
/* Sidebar spot list (fallback for multi-hand views) */
.drillNav{display:none;flex:1;overflow-y:auto;padding:12px;}
.drillTitle{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text3);padding:4px 12px 8px;}
.drillCard{padding:14px 16px;margin-bottom:6px;border-radius:var(--radius);cursor:pointer;border:1px solid var(--border-light);background:var(--surface);transition:all .15s;display:flex;align-items:center;gap:12px;}
.drillCard:hover{border-color:var(--primary-light);background:var(--primary-bg);}
.drillCard.active{border-color:var(--primary);background:rgba(255,201,0,0.12);color:#FFC900;}
.drillCard .dc-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;flex-shrink:0;}
.drillCard .dc-icon.rfi{background:rgba(34,197,94,0.15);color:#22c55e;}
.drillCard .dc-icon.vs_allin{background:rgba(220,38,38,0.15);color:#dc2626;}
.drillCard .dc-icon.bvb{background:rgba(59,130,246,0.15);color:#3b82f6;}
.drillCard .dc-icon.vs_raise{background:rgba(249,115,22,0.15);color:#f97316;}
.drillCard.active .dc-icon{background:rgba(255,201,0,0.2);color:#FFC900;}
.drillCard .dc-body{flex:1;min-width:0;}
.drillCard .dc-label{font-size:14px;font-weight:600;}
.drillCard .dc-sub{font-size:11px;font-weight:500;color:var(--text3);margin-top:2px;}
.drillCard.active .dc-sub{color:#999;}
.drillCard .dc-count{font-size:11px;font-weight:700;color:var(--text3);font-family:'JetBrains Mono',monospace;}
.drillCard.active .dc-count{color:#999;}
.drillBack{display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--primary);cursor:pointer;border-radius:var(--radius-sm);margin-bottom:8px;transition:background .12s;}
.drillBack:hover{background:var(--primary-bg);}
.drillBack svg{width:14px;height:14px;}
/* Spot list */
.spotList{padding:4px 0;}
.spotItem{padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:15px;font-weight:500;color:var(--text);transition:all .12s;display:flex;align-items:center;gap:8px;}
.spotItem:hover{background:var(--primary-bg);color:var(--primary);}
.spotItem.active{background:var(--primary);color:#fff;}
.spotItem .pos-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--surface2);color:var(--text2);min-width:32px;text-align:center;font-family:'JetBrains Mono',monospace;}
.spotItem.active .pos-badge{background:rgba(255,255,255,0.2);color:#fff;}
.spotItem .spot-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Tree tabs */
.treeTabs{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-light);position:sticky;top:0;background:var(--surface);z-index:5;}
.treeSelect{flex:1;padding:8px 10px;font-size:13px;font-weight:600;font-family:'Inter',sans-serif;background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;appearance:auto;text-transform:uppercase;}
.treeSelect:focus{outline:none;border-color:var(--primary);}
.treeBtnDel{padding:4px 8px;font-size:11px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text3);cursor:pointer;transition:all .15s;}
.treeBtnDel:hover{color:#dc2626;border-color:#dc2626;}

/* Hand sub-tabs */
.handTabs{display:none;padding:4px 12px;border-bottom:1px solid var(--border-light);overflow-y:auto;background:var(--surface2);gap:3px;flex-direction:column;max-height:calc(100vh - 200px);}
.handTabs.show{display:flex;}
.handTab{padding:5px 10px;font-size:13px;font-weight:600;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text2);transition:all .15s;white-space:nowrap;font-family:'JetBrains Mono',monospace;}
.handTab:hover{border-color:var(--primary-light);color:var(--primary);}
.handTab .del-tree{font-size:10px;margin-left:4px;color:var(--text3);cursor:pointer;opacity:0;transition:opacity .15s;}
.handTab:hover .del-tree{opacity:1;}
.handTab .del-tree:hover{color:#dc2626;}
.handTab.active{background:var(--primary);color:#fff;border-color:var(--primary);}

/* Spot counter */
.spotCount{display:none;}

/* Poker Table (Speed Racer style) */
.tableWrapper{display:flex;flex-direction:column;align-items:center;margin-bottom:20px;width:100%;}
.pokerTable{width:100%;aspect-ratio:340/210;background:radial-gradient(ellipse at 50% 45%,#1a5c2a 0%,#144921 25%,#0f3818 50%,#0a2a12 75%,#06200c 100%);border-radius:50%;position:relative;border:4px solid #2a1a08;box-shadow:0 0 0 8px #3d2a14,0 0 0 11px #2a1a0a,0 0 0 14px #4a3520,0 0 0 16px #1a0f05,0 0 50px rgba(0,0,0,.8),inset 0 0 80px rgba(0,0,0,.4);}
.seat{width:82px;height:56px;background:linear-gradient(180deg,#2a2a30 0%,#1a1a20 50%,#141418 100%);border-radius:8px;position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #3a3a42;font-size:12px;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.6),0 1px 0 rgba(255,255,255,.06) inset;transform:translate(-50%,-50%);z-index:2;transition:all .2s;}
.seat .s-pos{font-size:12px;font-weight:800;color:#fff;font-family:'JetBrains Mono',monospace;}
.seat .s-stack{font-size:10px;font-weight:600;color:rgba(255,255,255,0.6);font-family:'JetBrains Mono',monospace;}
.seat .s-ko{font-size:9px;font-weight:700;color:#4ade80;font-family:'JetBrains Mono',monospace;}
.seat.hero{border:3px solid var(--primary);box-shadow:0 0 20px rgba(255,201,0,0.3),0 4px 14px rgba(0,0,0,.6);}
.dealerBtn{position:absolute;width:22px;height:22px;border-radius:50%;background:linear-gradient(180deg,#f5f5f5 0%,#d4d4d4 100%);border:2px solid #999;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;color:#1a1a1a;font-family:'JetBrains Mono',monospace;z-index:3;box-shadow:0 2px 6px rgba(0,0,0,.4);transform:translate(-50%,-50%);}
.tableBet{position:absolute;transform:translate(-50%,-50%);font-size:10px;font-weight:700;color:#ffd54f;background:rgba(0,0,0,.55);border-radius:8px;padding:1px 5px;white-space:nowrap;z-index:2;font-family:'JetBrains Mono',monospace;}
.tablePot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:700;color:#fff;background:rgba(255,255,255,.15);border-radius:10px;padding:2px 8px;white-space:nowrap;z-index:2;font-family:'JetBrains Mono',monospace;}
.seat.folded{opacity:.35;}

/* MAIN */
.main{flex:1;overflow-y:auto;padding:32px;height:calc(100vh - 61px);}
.main.empty{display:flex;align-items:center;justify-content:center;}
.emptyState{text-align:center;color:var(--text3);}
.emptyState h2{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--text2);}
.emptyState p{font-size:14px;margin-bottom:4px;}

/* Spot header */
.spotHeader{margin-bottom:24px;}
.spotHeader h1{font-size:24px;font-weight:800;letter-spacing:-0.5px;color:var(--text);}
.spotMeta{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;}
.metaTag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:var(--radius-sm);background:var(--surface2);color:var(--text2);font-family:'JetBrains Mono',monospace;}
.metaTag.stack{border-left:3px solid var(--primary);}
.metaTag.bounty{border-left:3px solid var(--c-allin);}

/* Legend */
.legendBar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:12px 16px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border-light);}
.legendItem{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text2);transition:opacity .15s;}
.legendItem[data-idx]{cursor:pointer;border-radius:var(--radius-sm);padding:2px 6px;}
.legendItem[data-idx]:hover{background:rgba(255,255,255,.06);}
.legendDot{width:14px;height:14px;border-radius:3px;}
.legendDot.allin{background:var(--c-allin);}
.legendDot.call{background:var(--c-call);}
.legendDot.raise{background:var(--c-raise);}
.legendDot.check{background:var(--c-check);}
.legendDot.fold{background:var(--c-fold);}

/* Side-by-side layout */
.rangeTableRow{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;}
.rangeCol{flex:1;min-width:0;}
.tableCol{flex:1;min-width:0;}
.tableCol .tableWrapper{margin:0;}

/* Range Grid */
.rangeGrid{display:grid;grid-template-columns:repeat(13,1fr);gap:2px;max-width:620px;}
.rCell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:3px;cursor:default;position:relative;font-family:'JetBrains Mono',monospace;transition:transform .15s .1s;z-index:1;min-width:0;}
.rCell:hover{transform:scale(2.0);z-index:50;box-shadow:var(--shadow-lg);border-radius:6px;}
.rCell .hand{font-size:12px;font-weight:700;line-height:1;}
.rCell .freq{font-size:9px;font-weight:600;opacity:0.85;}
.rCell .ev{font-size:10px;font-weight:500;opacity:0.75;}
.rCell.c-allin{background:var(--c-allin-bg);color:#fff;}
.rCell.c-call{background:var(--c-call-bg);color:#052e16;}
.rCell.c-raise{background:var(--c-raise-bg);color:#431407;}
.rCell.c-check{background:var(--c-check-bg);color:#1e3a5f;}
.rCell.c-fold{background:#1A1A1A;color:#777;}
.rCell.c-mixed{color:#F0F0F0;}

/* Stats */
.statsBar{display:flex;gap:16px;margin-top:16px;flex-wrap:wrap;}
.statCard{padding:12px 16px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border-light);min-width:120px;}
.statCard .label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:0.5px;}
.statCard .value{font-size:20px;font-weight:800;color:var(--text);font-family:'JetBrains Mono',monospace;margin-top:2px;}
.statCard .value.green{color:#22c55e;}
.statCard .value.gold{color:#FFC900;}

/* Drop overlay */
.dropOverlay{display:none;position:fixed;inset:0;background:rgba(110,86,227,0.08);border:3px dashed var(--primary);z-index:9999;align-items:center;justify-content:center;backdrop-filter:blur(2px);}
.dropOverlay.show{display:flex;}
.dropOverlay .dropMsg{background:var(--surface);padding:32px 48px;border-radius:16px;box-shadow:var(--shadow-lg);text-align:center;}
.dropOverlay .dropMsg h2{font-size:20px;font-weight:700;color:var(--primary);margin-bottom:8px;}
.dropOverlay .dropMsg p{font-size:14px;color:var(--text2);}

/* Toast */
.toast{position:fixed;bottom:24px;right:24px;padding:12px 20px;border-radius:var(--radius);background:var(--text);color:#fff;font-size:13px;font-weight:600;box-shadow:var(--shadow-lg);z-index:10000;opacity:0;transform:translateY(10px);transition:all .3s;}
.toast.show{opacity:1;transform:translateY(0);}
.toast.error{background:#dc2626;}

/* Spot PNG */
.spotPng{width:100%;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);margin-top:8px;}
.spotPngWrap{text-align:center;}
.spotPngWrap .no-png{font-size:11px;color:var(--text3);padding:20px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface2);}

/* Interface tab */
.ifaceOverlay{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.5);align-items:center;justify-content:center;backdrop-filter:blur(2px);}
.ifaceOverlay.show{display:flex;}
.ifacePanel{background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg);max-width:700px;width:95%;max-height:90vh;overflow-y:auto;padding:32px;}
.ifacePanel h2{font-size:20px;font-weight:800;margin-bottom:20px;color:var(--text);}
.ifacePanel .iface-close{position:absolute;top:16px;right:20px;font-size:20px;cursor:pointer;color:var(--text3);background:none;border:none;}
.ifaceSection{margin-bottom:24px;padding:16px;border-radius:var(--radius);border:1px solid var(--border-light);background:var(--surface2);}
.ifaceSection h3{font-size:14px;font-weight:700;margin-bottom:12px;color:var(--text);}
.ifaceSection p{font-size:12px;color:var(--text2);margin-bottom:8px;}
.ifaceRow{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start;}
.ifaceUpload{flex:1;min-width:200px;border:2px dashed var(--border);border-radius:var(--radius);padding:24px;text-align:center;cursor:pointer;transition:all .2s;background:var(--surface);}
.ifaceUpload:hover{border-color:var(--primary);background:var(--primary-bg);}
.ifaceUpload.has-file{border-color:#22c55e;background:rgba(34,197,94,0.06);}
.ifaceUpload .up-icon{font-size:24px;margin-bottom:8px;}
.ifaceUpload .up-label{font-size:13px;font-weight:600;color:var(--text);}
.ifaceUpload .up-sub{font-size:11px;color:var(--text3);margin-top:4px;}
.ifaceUpload .up-preview{max-width:100%;max-height:120px;border-radius:var(--radius-sm);margin-top:8px;}
.ifaceRadio{display:flex;gap:8px;margin-top:8px;}
.ifaceRadio label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);transition:all .15s;}
.ifaceRadio label:hover{border-color:var(--primary);color:var(--primary);}
.ifaceRadio input[type=radio]{accent-color:var(--primary);}
.ifaceRadio label.selected{border-color:var(--primary);background:var(--primary-bg);color:var(--primary);}
.ifaceBtn{padding:10px 24px;font-family:'Inter',sans-serif;font-size:14px;font-weight:700;border-radius:var(--radius);cursor:pointer;border:none;background:var(--primary);color:#fff;transition:all .15s;}
.ifaceBtn:hover{background:var(--primary-dark);}
.ifaceBtn:disabled{opacity:.5;cursor:not-allowed;}
.ifaceValidation{margin-top:8px;font-size:11px;font-weight:600;}
.ifaceValidation.ok{color:#22c55e;}
.ifaceValidation.error{color:#EF4444;}
.iface-label{font-size:11px;font-weight:600;color:var(--text3);display:block;margin-bottom:3px;text-transform:uppercase;letter-spacing:0.03em;}
.iface-stack-input{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--surface);border:1px solid var(--border);border-radius:4px;}
.iface-stack-input span{font-size:11px;font-weight:700;color:var(--text2);font-family:'JetBrains Mono',monospace;min-width:30px;}
.iface-stack-input input{width:60px;padding:2px 4px;font-size:12px;font-family:'JetBrains Mono',monospace;border:none;background:transparent;color:var(--text);outline:none;text-align:right;}
.iface-tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:2px solid var(--border);}
.iface-tab{padding:10px 24px;font-size:14px;font-weight:700;cursor:pointer;color:var(--text3);border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;font-family:'Inter',sans-serif;}
.iface-tab:hover{color:var(--text);}
.iface-tab.active{color:var(--primary);border-bottom-color:var(--primary);}
.iface-tab-content{display:none;}
.iface-tab-content.active{display:block;}
.bulk-file-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-light);background:var(--surface);margin-bottom:8px;transition:all .15s;}
.bulk-file-card:hover{border-color:var(--primary);}
.bulk-file-card .bfc-name{flex:1;font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bulk-file-card .bfc-info{font-size:11px;color:var(--text3);}
.bulk-file-card .bfc-remove{cursor:pointer;color:var(--text3);font-size:16px;border:none;background:none;padding:0 4px;transition:color .15s;}
.bulk-file-card .bfc-remove:hover{color:#ef4444;}

/* ═══ DRILL TRAINER ═══ */
.drillOverlay{display:none;position:fixed;inset:0;z-index:300;background:var(--bg);flex-direction:column;overflow:hidden;}
.drillOverlay.show{display:flex;}
.drill-screen{display:none;flex:1;flex-direction:column;overflow:hidden;}
.drill-screen.active{display:flex;}
/* Settings */
.drill-settings{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:20px;}
.drill-settings-bar{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;max-width:700px;width:100%;}
.drill-sg{display:flex;flex-direction:column;gap:5px;}
.drill-sg-label{font-size:9px;font-weight:600;letter-spacing:2px;color:var(--text3);text-transform:uppercase;font-family:'JetBrains Mono',monospace;}
.drill-sg-opts{display:flex;gap:4px;flex-wrap:wrap;}
.drill-sopt{font-family:'JetBrains Mono',monospace;font-size:10px;padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text3);cursor:pointer;transition:all .15s;}
.drill-sopt:hover{color:var(--text);}
.drill-sopt.active{border-color:var(--primary);background:rgba(255,201,0,.12);color:var(--primary);}
.drill-sopt.pos-btn{font-size:13px;font-weight:800;letter-spacing:1px;padding:5px 12px;}
.drill-sopt.pos-btn.disabled{opacity:.2;cursor:not-allowed;pointer-events:none;}
.drill-start-btn{font-size:18px;font-weight:800;letter-spacing:3px;padding:12px 48px;border-radius:10px;background:var(--primary);border:none;color:var(--bg);cursor:pointer;transition:all .2s;text-transform:uppercase;}
.drill-start-btn:hover{transform:translateY(-2px);box-shadow:0 0 28px rgba(255,201,0,.3);}
.drill-start-btn:disabled{opacity:.3;cursor:not-allowed;transform:none;box-shadow:none;}
.drill-hint{font-size:9px;font-weight:600;color:var(--text3);letter-spacing:1px;font-family:'JetBrains Mono',monospace;}
/* Drill header */
.drill-hdr{height:50px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--surface);flex-shrink:0;}
.drill-hdr-left{display:flex;align-items:center;gap:18px;}
.drill-hdr-right{display:flex;align-items:center;gap:14px;}
.drill-streak{display:flex;align-items:center;gap:4px;font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--primary);}
.drill-gscore{font-family:'JetBrains Mono',monospace;font-size:11px;display:flex;align-items:center;gap:4px;}
.drill-gscore .gc{color:#22c55e;font-weight:600;}.drill-gscore .gm{color:var(--text3);}.drill-gscore .gp{color:var(--primary);font-size:12px;font-weight:600;margin-left:2px;}
.drill-timer-wrap{display:flex;align-items:center;gap:6px;}
.drill-timer-bg{width:80px;height:6px;background:var(--surface2);border-radius:3px;overflow:hidden;}
.drill-timer-fill{height:100%;width:100%;background:var(--primary);border-radius:3px;transition:width .05s linear;}
.drill-timer-text{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text3);min-width:28px;}
/* Drill body */
.drill-play-body{display:flex;flex:1;overflow:hidden;}
.drill-play-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;}
.drill-spot-ctx{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;}
.drill-pos-pill{font-size:16px;font-weight:800;padding:6px 16px;border-radius:8px;border:1px solid;background:rgba(255,255,255,.04);}
.drill-spot-arrow{font-size:13px;font-weight:700;color:var(--text3);letter-spacing:2px;}
.drill-ctx-sub{font-size:12px;color:var(--text3);font-family:'JetBrains Mono',monospace;text-align:center;}
/* Oval table */
.drill-oval-wrap{position:relative;width:1000px;height:540px;margin:0 auto;flex-shrink:0;}
.drill-oval{width:100%;height:100%;background:radial-gradient(ellipse at 50% 45%,#1a5c2a 0%,#144921 25%,#0f3818 50%,#0a2a12 75%,#06200c 100%);border-radius:50%;position:relative;border:4px solid #2a1a08;box-shadow:0 0 0 8px #3d2a14,0 0 0 11px #2a1a0a,0 0 0 14px #4a3520,0 0 0 16px #1a0f05,0 0 50px rgba(0,0,0,.8),inset 0 0 80px rgba(0,0,0,.4);}
.drill-oval::before{content:'';position:absolute;inset:16px;border-radius:50%;border:2px solid rgba(200,170,100,.12);pointer-events:none;box-shadow:inset 0 0 30px rgba(0,0,0,.2);}
.drill-oval::after{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 35% 25%,rgba(255,255,255,.04) 0%,transparent 40%),radial-gradient(ellipse at 65% 70%,rgba(0,0,0,.15) 0%,transparent 40%);pointer-events:none;}
.drill-oval-center{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;}
.drill-oval-pot{font-family:'JetBrains Mono',monospace;font-size:18px;font-weight:600;color:rgba(255,255,255,.35);letter-spacing:1px;}
.drill-oval-ante{font-family:'JetBrains Mono',monospace;font-size:11px;color:rgba(255,255,255,.3);letter-spacing:1px;}
/* Hero area below table (Speed Racer style) */
.drill-hero-area{display:flex;flex-direction:column;align-items:center;gap:4px;margin:12px 0 4px;}
.drill-oval-cards{display:flex;gap:12px;}
.drill-hero-pos{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:700;letter-spacing:3px;color:rgba(255,255,255,.45);text-transform:uppercase;}
.drill-hero-ctx{font-family:'JetBrains Mono',monospace;font-size:12px;color:rgba(255,255,255,.3);letter-spacing:1px;text-transform:uppercase;}
.drill-blinds-info{position:absolute;top:8px;right:16px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1px;color:rgba(255,255,255,.4);}
.drill-blinds-info span.lbl{color:#c0392b;font-weight:700;}.drill-blinds-info span.ante{color:#d4a017;font-weight:700;}
.drill-bottom-score{text-align:center;font-family:'JetBrains Mono',monospace;font-size:16px;color:rgba(255,255,255,.3);margin-top:8px;letter-spacing:2px;}
/* Hero cards — speed racers style */
.drill-card{width:58px;height:82px;background:linear-gradient(160deg,#faf6ee 0%,#f0eadc 40%,#e8e0d0 100%);border-radius:6px;border:1.5px solid #bbb;box-shadow:0 3px 12px rgba(0,0,0,.5),0 1px 0 rgba(255,255,255,.8) inset;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:4px 0 0;position:relative;font-family:'JetBrains Mono',monospace;overflow:hidden;animation:drillCardDeal .4s cubic-bezier(.34,1.56,.64,1) both;}
.drill-card:nth-child(2){animation-delay:.07s;}
.drill-card.dc-red{color:#c0392b;}.drill-card.dc-black{color:#1a1a1a;}
@keyframes drillCardDeal{from{opacity:0;transform:rotateY(90deg) scale(.7) translateY(10px);}to{opacity:1;transform:rotateY(0) scale(1) translateY(0);}}
.drill-card-rank{font-size:20px;font-weight:900;line-height:1;}
.drill-card-suit{font-size:42px;line-height:1;margin-top:-4px;}
.drill-card-corner{display:none;}.drill-card-corner-bot{display:none;}
/* Seats — rectangular FT88 style */
.drill-seat{position:absolute;transform:translate(-50%,-50%);width:100px;height:68px;background:linear-gradient(180deg,#2a2a30 0%,#1a1a20 50%,#141418 100%);border-radius:10px;border:2px solid #3a3a42;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-size:13px;letter-spacing:1px;gap:2px;box-shadow:0 4px 14px rgba(0,0,0,.6),0 1px 0 rgba(255,255,255,.06) inset;z-index:2;transition:all .2s;}
.drill-seat .ds-name{font-size:14px;font-weight:700;letter-spacing:1.5px;line-height:1;color:#fff;}
.drill-seat .ds-action{font-size:8px;font-family:'JetBrains Mono',monospace;letter-spacing:1px;color:transparent;padding:2px 6px;border-radius:3px;text-transform:uppercase;margin-top:1px;font-weight:700;}
.drill-seat .ds-cards{display:flex;gap:4px;margin-bottom:2px;height:36px;align-items:center;}
.drill-seat .ds-minicard{width:24px;height:34px;border-radius:4px;background:repeating-linear-gradient(45deg,#1a1f3a,#1a1f3a 2px,#222840 2px,#222840 4px);border:1px solid #2a3050;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;line-height:1;flex-direction:column;box-shadow:0 2px 4px rgba(0,0,0,.4);}
.drill-seat .ds-minicard:first-child{transform:rotate(-4deg);}.drill-seat .ds-minicard:last-child{transform:rotate(4deg);}
.drill-seat .ds-minicard.face{background:linear-gradient(145deg,#f5f0e8,#ede8dc);border-color:#999;animation:miniFlip .3s cubic-bezier(.34,1.56,.64,1);}
.drill-seat .ds-minicard.face.mc-red{color:#c0392b;}.drill-seat .ds-minicard.face.mc-black{color:#111;}
@keyframes miniFlip{from{transform:rotateY(90deg) scale(.7);}50%{transform:rotateY(20deg) scale(.9);}to{transform:rotateY(0) scale(1);}}
/* Seat states */
.drill-seat.is-hero{border:3px solid var(--primary)!important;box-shadow:0 0 20px rgba(245,208,0,.5),0 0 40px rgba(245,208,0,.2),0 4px 14px rgba(0,0,0,.6)!important;background:linear-gradient(180deg,#2a2200 0%,#1a1700 50%,#141100 100%)!important;color:var(--primary)!important;animation:heroGlow 1.5s ease-in-out infinite;z-index:5;transform:translate(-50%,-50%) scale(1.12);}
@keyframes heroGlow{0%,100%{box-shadow:0 0 24px rgba(245,208,0,.7),0 0 48px rgba(245,208,0,.3);}50%{box-shadow:0 0 32px rgba(245,208,0,1),0 0 64px rgba(245,208,0,.5);}}
.drill-seat.action-allin{border-color:#e74c3c;box-shadow:0 0 16px rgba(231,76,60,.55),0 4px 12px rgba(0,0,0,.6);animation:allinPulse 1.5s ease-in-out infinite;}
.drill-seat.action-allin .ds-action{background:#e74c3c;color:#fff;}
@keyframes allinPulse{0%,100%{box-shadow:0 0 16px rgba(231,76,60,.55),0 4px 12px rgba(0,0,0,.6);}50%{box-shadow:0 0 28px rgba(231,76,60,.8),0 0 6px rgba(231,76,60,.3),0 4px 12px rgba(0,0,0,.6);}}
.drill-seat.action-raise{border-color:#f39c12;box-shadow:0 0 16px rgba(243,156,18,.55),0 4px 12px rgba(0,0,0,.6);}
.drill-seat.action-raise .ds-action{background:#f39c12;color:#000;}
.drill-seat.action-call{border-color:#2ecc71;box-shadow:0 0 14px rgba(46,204,113,.4);}
.drill-seat.action-call .ds-action{background:#2ecc71;color:#000;}
.drill-seat.action-limp{border-color:#3498db;box-shadow:0 0 16px rgba(52,152,219,.45),0 4px 12px rgba(0,0,0,.6);}
.drill-seat.action-limp .ds-action{background:#3498db;color:#fff;}
.drill-seat.action-fold{border-color:#555;opacity:.45;}
.drill-seat.action-fold .ds-action{background:#555;color:#fff;}
.drill-seat.action-fold .ds-minicard{animation:foldToss .5s cubic-bezier(.16,1,.3,1) forwards;}
@keyframes foldToss{to{opacity:0;transform:rotate(15deg) translateY(-12px) scale(.7);}}
/* Stack below seat */
.drill-seat-stack{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);white-space:nowrap;font-family:'JetBrains Mono',monospace;font-size:13px;color:rgba(255,220,100,.85);font-weight:700;letter-spacing:.5px;}
/* Bounty badge above seat */
.drill-bounty-badge{position:absolute;top:-20px;left:50%;transform:translateX(-50%);background:rgba(15,60,30,.92);color:#4ade80;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;padding:2px 8px;border-radius:5px;border:1px solid rgba(74,222,128,.35);white-space:nowrap;z-index:5;letter-spacing:.3px;text-shadow:0 0 4px rgba(74,222,128,.3);pointer-events:none;}
.drill-bounty-badge.big{background:rgba(20,80,40,.95);border-color:rgba(74,222,128,.7);color:#86efac;font-size:13px;padding:3px 10px;}
/* Dealer button */
.drill-dealer{position:absolute;top:-8px;right:-6px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#f0e8d0,#d4c8a0);color:#111;font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:center;border:2px solid #c8a84e;box-shadow:0 2px 8px rgba(0,0,0,.8),0 0 6px rgba(200,168,78,.3);z-index:10;}
/* Felt bet chips */
.drill-bet{position:absolute;transform:translate(-50%,-50%);font-family:'JetBrains Mono',monospace;font-size:14px;color:#bfa;opacity:.9;white-space:nowrap;pointer-events:none;background:rgba(30,50,30,.7);padding:3px 8px 3px 30px;border-radius:5px;border:1px solid rgba(60,100,60,.35);z-index:1;animation:chipDrop .3s cubic-bezier(.34,1.56,.64,1) both;}
.drill-bet::before{content:'';position:absolute;left:4px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#f0c050,#c89830,#a07820);border:2px dashed rgba(255,255,255,.25);box-shadow:0 1px 4px rgba(0,0,0,.5);}
.drill-bet:empty{display:none;}
@keyframes chipDrop{from{opacity:0;transform:translate(-50%,-50%) translateY(-8px) scale(.8);}to{opacity:.85;transform:translate(-50%,-50%) translateY(0) scale(1);}}
/* Action buttons — speed racers gradient style */
/* FT88 sequence animation */
@keyframes seqReveal{from{opacity:0}to{opacity:1}}
.seq-reveal{animation:seqReveal .35s ease-out;}
.drill-seat-stack{transition:opacity .15s ease;}
.drill-action-btns{display:flex;gap:12px;justify-content:center;margin-top:14px;width:100%;max-width:700px;flex-wrap:nowrap;transition:opacity .2s ease;}
.drill-action-btn{flex:1;min-width:0;padding:16px 12px;font-family:'JetBrains Mono',monospace;font-size:16px;font-weight:800;letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;border-radius:10px;box-shadow:0 4px 0 rgba(0,0,0,.6),0 8px 20px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.1);transition:all .08s ease-out,transform .12s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;align-items:center;gap:3px;animation:btnAppear .3s cubic-bezier(.34,1.56,.64,1) both;}
.drill-action-btn:nth-child(2){animation-delay:.04s;}.drill-action-btn:nth-child(3){animation-delay:.08s;}.drill-action-btn:nth-child(4){animation-delay:.12s;}
.drill-action-btn:hover{filter:brightness(1.15);transform:translateY(-2px);box-shadow:0 6px 0 rgba(0,0,0,.5),0 10px 24px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.12);}
.drill-action-btn:active{box-shadow:0 1px 0 rgba(0,0,0,.5),0 2px 6px rgba(0,0,0,.4);transform:scale(.97);}
@keyframes btnAppear{from{opacity:0;transform:scale(.85) translateY(8px);}to{opacity:1;transform:scale(1) translateY(0);}}
.drill-action-btn .act-size{font-size:11px;opacity:.65;font-weight:600;letter-spacing:1px;}
.drill-action-btn .key-hint{font-size:9px;opacity:.35;letter-spacing:.5px;}
.drill-action-btn.btn-fold{background:linear-gradient(180deg,#3a3a3a 0%,#252525 100%);color:#999;}
.drill-action-btn.btn-call{background:linear-gradient(180deg,#1a6e30 0%,#104a1e 100%);color:#80ffaa;}
.drill-action-btn.btn-check{background:linear-gradient(180deg,#1a5280 0%,#0e3858 100%);color:#80ccff;}
.drill-action-btn.btn-raise{background:linear-gradient(180deg,#b06000 0%,#7a4200 100%);color:#ffd080;}
.drill-action-btn.btn-allin{background:linear-gradient(180deg,#a01818 0%,#6a0e0e 100%);color:#ffaaaa;}
.drill-action-btn.btn-limp{background:linear-gradient(180deg,#1a5280 0%,#0e3858 100%);color:#80ccff;}
/* Sidebar */
.drill-play-sidebar{width:300px;border-left:1px solid var(--border);padding:18px;overflow-y:auto;display:flex;flex-direction:column;gap:18px;}
.drill-ds-title{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--text3);text-transform:uppercase;margin-bottom:8px;}
.drill-info-row{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:15px;padding:4px 0;}
.drill-info-row .lbl{color:var(--text3);}.drill-info-row .val{font-weight:600;}
.drill-ps-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.drill-ps-label{font-size:14px;font-weight:700;color:var(--text3);width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.drill-ps-bar-wrap{flex:1;height:8px;background:var(--surface2);border-radius:4px;overflow:hidden;}
.drill-ps-bar{height:100%;border-radius:4px;transition:width .3s;}
.drill-ps-pct{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--text3);min-width:38px;text-align:right;}
/* Feedback */
.drill-feedback{position:relative;margin-top:8px;text-align:center;pointer-events:none;z-index:310;opacity:0;transition:opacity .3s;}
.drill-feedback.show{opacity:1;}
.drill-fb-result{font-size:20px;font-weight:800;text-align:center;margin-bottom:6px;}
.drill-fb-details{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.drill-fb-pill{font-size:12px;font-weight:600;padding:4px 10px;border-radius:5px;background:var(--surface2);border:1px solid var(--border);}
.drill-fb-pill.best{border-color:#22c55e;color:#22c55e;}.drill-fb-pill.ok{border-color:var(--primary);color:var(--primary);}.drill-fb-pill.fold{border-color:var(--text3);color:var(--text3);}.drill-fb-pill.wrong{border-color:#ef4444;color:#ef4444;}
.drill-fb-ev{font-size:8px;margin-left:4px;opacity:.7;}
.drill-timeout-flash{position:fixed;inset:0;background:rgba(245,158,11,.1);pointer-events:none;z-index:310;opacity:0;transition:opacity .15s;}
.drill-timeout-flash.show{opacity:1;}
/* Summary */
.drill-summary-body{flex:1;overflow-y:auto;padding:30px;display:flex;flex-direction:column;align-items:center;gap:20px;}
.drill-summary-hero{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;}
.drill-ssc{text-align:center;min-width:80px;}
.drill-ssc-val{font-size:24px;font-weight:800;font-family:'JetBrains Mono',monospace;}
.drill-ssc-label{font-size:9px;font-weight:600;color:var(--text3);letter-spacing:1px;text-transform:uppercase;margin-top:2px;}
.drill-pbd-grid{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.drill-pbd-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px;min-width:140px;text-align:center;}
.drill-pbd-pos{font-size:12px;font-weight:800;}
.drill-pbd-pct{font-size:18px;font-weight:800;font-family:'JetBrains Mono',monospace;}
.drill-pbd-bar-wrap{height:4px;background:var(--surface2);border-radius:2px;overflow:hidden;margin:4px 0;}
.drill-pbd-bar{height:100%;border-radius:2px;}
.drill-pbd-detail{font-size:9px;color:var(--text3);}
.drill-statRow{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:10px;padding:1px 0;}
.drill-timeBar{height:4px;background:var(--surface2);border-radius:2px;overflow:hidden;margin:2px 0 6px;}
.drill-timeFill{height:100%;border-radius:2px;}
/* Hotkey modal */
.drill-hk-modal{display:none;position:fixed;inset:0;z-index:320;background:rgba(0,0,0,.6);align-items:center;justify-content:center;}
.drill-hk-modal.show{display:flex;}
.drill-hk-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;width:280px;}
.drill-hk-title{font-size:14px;font-weight:800;letter-spacing:2px;color:var(--primary);margin-bottom:12px;text-transform:uppercase;}

/* Responsive */
@media(max-width:900px){.sidebar{width:240px;min-width:240px;}.main{padding:20px;}.rangeGrid{max-width:100%;}}
@media(max-width:640px){.layout{flex-direction:column;}.sidebar{width:100%;min-width:0;height:auto;max-height:40vh;}.main{height:auto;}}
