:root{color-scheme:dark;--bg-primary:#0a0e17;--bg-secondary:#121826;--bg-card:#12182699;--bg-card-hover:#1e293bcc;--bg-glass:#ffffff08;--bg-glass-hover:#ffffff14;--text-primary:#fff;--text-secondary:#94a3b8;--text-muted:#78879b;--accent-gold:#fc0;--accent-gold-light:#ffe566;--accent-green:#0f6;--accent-green-light:#6fa;--accent-red:#f36;--accent-red-light:#f68;--accent-blue:#38f;--accent-blue-light:#6af;--focus-ring:#60a5fa;--suit-spades:#e2e8f0;--suit-hearts:#f36;--suit-diamonds:#38f;--suit-clubs:#0f6;--border-color:#ffffff0f;--border-highlight:#ffcc004d;--shadow-sm:0 2px 4px #0006;--shadow-md:0 8px 16px #0009;--shadow-lg:0 16px 32px #000c;--shadow-glow:0 0 20px #0f63;--shadow-glow-gold:0 0 30px #ffcc0040;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--transition:all .3s cubic-bezier(.4, 0, .2, 1);--touch-target:44px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-display:"Avenir Next", Avenir, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-signature:"Snell Roundhand", "Segoe Script", "Brush Script MT", cursive}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg-primary);width:100%;overflow-x:hidden}button,.btn,.stage-tab,.suit-btn,.pick-card,.selected-card-slot{touch-action:manipulation}html body :where(a[href],button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;transition-property:color,background-color,border-color,box-shadow,transform,opacity}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;width:100%;max-width:100%;min-height:100vh;line-height:1.6;overflow-x:hidden}@supports (overflow-x:clip){html,body{overflow-x:clip}}html.app-modal-open{overscroll-behavior:none;overflow:hidden}body.app-modal-open{overscroll-behavior:none;width:100%;position:fixed;inset:0;overflow:hidden}main,.container,.main-layout,.left-column,.right-column,.panel{min-width:0;max-width:100%}body:before{content:"";z-index:-1;background:radial-gradient(circle at 20% 20%,#f59e0b0d 0%,#0000 50%),radial-gradient(circle at 80% 80%,#10b9810a 0%,#0000 50%),radial-gradient(circle,#3b82f608 0%,#0000 60%);width:200%;height:200%;animation:30s ease-in-out infinite bgFloat;position:fixed;top:-50%;left:-50%}@keyframes bgFloat{0%,to{transform:translate(0)rotate(0)}33%{transform:translate(1%,-1%)rotate(1deg)}66%{transform:translate(-1%,1%)rotate(-1deg)}}.mt-16{margin-top:16px}.flex-center{justify-content:center;align-items:center;display:flex}.mr-6{margin-right:6px}.is-hidden,[hidden]{display:none!important}.clipboard-proxy{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:-9999px;left:-9999px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.u-width-0{width:0%!important;min-width:0!important}.u-width-1{width:1%!important}.u-width-2{width:2%!important}.u-width-3{width:3%!important}.u-width-4{width:4%!important}.u-width-5{width:5%!important}.u-width-6{width:6%!important}.u-width-7{width:7%!important}.u-width-8{width:8%!important}.u-width-9{width:9%!important}.u-width-10{width:10%!important}.u-width-11{width:11%!important}.u-width-12{width:12%!important}.u-width-13{width:13%!important}.u-width-14{width:14%!important}.u-width-15{width:15%!important}.u-width-16{width:16%!important}.u-width-17{width:17%!important}.u-width-18{width:18%!important}.u-width-19{width:19%!important}.u-width-20{width:20%!important}.u-width-21{width:21%!important}.u-width-22{width:22%!important}.u-width-23{width:23%!important}.u-width-24{width:24%!important}.u-width-25{width:25%!important}.u-width-26{width:26%!important}.u-width-27{width:27%!important}.u-width-28{width:28%!important}.u-width-29{width:29%!important}.u-width-30{width:30%!important}.u-width-31{width:31%!important}.u-width-32{width:32%!important}.u-width-33{width:33%!important}.u-width-34{width:34%!important}.u-width-35{width:35%!important}.u-width-36{width:36%!important}.u-width-37{width:37%!important}.u-width-38{width:38%!important}.u-width-39{width:39%!important}.u-width-40{width:40%!important}.u-width-41{width:41%!important}.u-width-42{width:42%!important}.u-width-43{width:43%!important}.u-width-44{width:44%!important}.u-width-45{width:45%!important}.u-width-46{width:46%!important}.u-width-47{width:47%!important}.u-width-48{width:48%!important}.u-width-49{width:49%!important}.u-width-50{width:50%!important}.u-width-51{width:51%!important}.u-width-52{width:52%!important}.u-width-53{width:53%!important}.u-width-54{width:54%!important}.u-width-55{width:55%!important}.u-width-56{width:56%!important}.u-width-57{width:57%!important}.u-width-58{width:58%!important}.u-width-59{width:59%!important}.u-width-60{width:60%!important}.u-width-61{width:61%!important}.u-width-62{width:62%!important}.u-width-63{width:63%!important}.u-width-64{width:64%!important}.u-width-65{width:65%!important}.u-width-66{width:66%!important}.u-width-67{width:67%!important}.u-width-68{width:68%!important}.u-width-69{width:69%!important}.u-width-70{width:70%!important}.u-width-71{width:71%!important}.u-width-72{width:72%!important}.u-width-73{width:73%!important}.u-width-74{width:74%!important}.u-width-75{width:75%!important}.u-width-76{width:76%!important}.u-width-77{width:77%!important}.u-width-78{width:78%!important}.u-width-79{width:79%!important}.u-width-80{width:80%!important}.u-width-81{width:81%!important}.u-width-82{width:82%!important}.u-width-83{width:83%!important}.u-width-84{width:84%!important}.u-width-85{width:85%!important}.u-width-86{width:86%!important}.u-width-87{width:87%!important}.u-width-88{width:88%!important}.u-width-89{width:89%!important}.u-width-90{width:90%!important}.u-width-91{width:91%!important}.u-width-92{width:92%!important}.u-width-93{width:93%!important}.u-width-94{width:94%!important}.u-width-95{width:95%!important}.u-width-96{width:96%!important}.u-width-97{width:97%!important}.u-width-98{width:98%!important}.u-width-99{width:99%!important}.u-width-100{width:100%!important}@keyframes fadeInSimple{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);backdrop-filter:blur(20px);transition:var(--transition);padding:24px}.panel:hover{border-color:#ffffff1f}.panel-title{font-family:var(--font-display);color:var(--text-primary);align-items:center;gap:10px;margin-bottom:20px;font-size:1.15rem;font-weight:600;display:flex}.panel-heading{min-width:0;font:inherit;line-height:inherit;color:inherit;letter-spacing:0}.panel-title .icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;display:flex}.panel-title .icon.gold{color:var(--accent-gold);background:#f59e0b26}.panel-title .icon.green{color:var(--accent-green);background:#10b98126}.panel-title .icon.blue{color:var(--accent-blue);background:#3b82f626}.panel-title .icon.red{color:var(--accent-red);background:#ef444426}.btn-scan-pill{appearance:none;min-height:var(--touch-target);color:#bfdbfe;font-family:var(--font-sans);white-space:nowrap;cursor:pointer;background:#3b82f624;border:1px solid #60a5fa80;border-radius:6px;flex:none;justify-content:center;align-items:center;gap:6px;margin-left:auto;padding:7px 10px;font-size:.78rem;font-weight:700;line-height:1;transition:background-color .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.btn-scan-pill:hover{color:#dbeafe;background:#3b82f62e;border-color:#60a5fa9e}.btn-scan-pill:active{transform:translateY(1px)}.btn-scan-pill:focus-visible{outline-offset:2px;outline:2px solid #60a5fae6}.scan-pill-icon{flex:0 0 18px;width:18px;height:18px;display:block}@media (max-width:480px){.btn-scan-pill{min-height:var(--touch-target);padding:8px 10px}}@media (hover:none) and (pointer:coarse){.btn-scan-pill{min-height:44px;padding:10px 12px}}.btn-ai{border-radius:var(--radius-md);color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6,#a855f7);border:none;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:16px;padding:14px 20px;font-size:1rem;font-weight:700;transition:all .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #6366f166}.btn-ai .ai-copy{min-width:0}.btn-ai:hover{transform:translateY(-2px);box-shadow:0 6px 30px #8b5cf699}.btn-ai:active{transform:scale(.98)}.btn-ai .ai-icon{font-size:1.3em}.btn-ai .ai-badge{letter-spacing:.5px;background:#fff3;border-radius:10px;padding:2px 8px;font-size:.65rem;font-weight:500}.btn-ai:after{content:"";background:linear-gradient(45deg,#0000,#ffffff1a,#0000);width:200%;height:200%;animation:3s ease-in-out infinite aiShimmer;position:absolute;top:-50%;left:-50%}@keyframes aiShimmer{0%{transform:translate(-100%)rotate(45deg)}to{transform:translate(100%)rotate(45deg)}}.btn-ai.loading{opacity:.7;pointer-events:none}@media (max-width:480px){.btn-ai{margin-top:14px;padding:13px 16px;font-size:.95rem}.btn-ai .ai-badge{display:none}}.card-selection-area{margin-bottom:20px}.card-selection-label{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.85rem;font-weight:500;display:flex}.selected-cards{align-items:center;gap:12px;min-height:90px;margin-bottom:16px;display:flex}.selected-card-slot,.pick-card{appearance:none;text-align:center;padding:0;font-family:inherit}.selected-card-slot:focus-visible,.pick-card:focus-visible{outline-offset:2px;z-index:12;outline:3px solid #60a5fa}.selected-card-slot{border-radius:var(--radius-md);width:64px;min-width:56px;height:88px;min-height:76px;color:var(--text-muted);transition:var(--transition);cursor:pointer;will-change:transform,opacity;border:2px dashed #ffffff26;justify-content:center;align-items:center;font-size:1.5rem;display:flex;position:relative}.selected-card-slot:hover{border-color:#f59e0b66}.selected-card-slot.filled{cursor:pointer;background:0 0;border:2px solid #0000}.selected-card-slot.filled:hover{transform:translateY(-4px)}.selected-card-slot.is-placing .poker-card{animation:.26s cubic-bezier(.2,.9,.25,1.15) cardPlace}.selected-card-slot.is-clearing{pointer-events:none;animation:.18s forwards slotClear}.selected-card-slot.is-clearing .poker-card{animation:.18s forwards cardClear}.selected-card-slot.active-slot{border-color:var(--accent-gold);color:var(--accent-gold);animation:1.5s ease-in-out infinite slotPulse;box-shadow:0 0 15px #fc06}@keyframes slotPulse{0%,to{transform:scale(1);box-shadow:0 0 10px #fc03}50%{transform:scale(1.02);box-shadow:0 0 25px #fc09,inset 0 0 10px #ffcc004d}}@keyframes cardPlace{0%{opacity:.4;transform:scale(.82)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes cardClear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.86)translateY(6px)}}@keyframes slotClear{to{opacity:0;transform:scale(.93)}}.poker-card{border-radius:var(--radius-sm);cursor:pointer;width:64px;height:88px;transition:var(--transition);user-select:none;box-shadow:var(--shadow-sm);background:linear-gradient(145deg,#1e293b,#0f172a);border:1px solid #ffffff1a;flex-direction:column;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;animation:.4s cubic-bezier(.34,1.56,.64,1) forwards popIn;display:flex;position:relative}@keyframes popIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.poker-card .rank{text-shadow:0 0 10px;font-size:1.25rem;font-weight:800;line-height:1}.poker-card .suit{filter:drop-shadow(0 0 8px);margin-top:4px;font-size:1.4rem;line-height:1}.poker-card.spades{color:var(--suit-spades)}.poker-card.hearts{color:var(--suit-hearts)}.poker-card.diamonds{color:var(--suit-diamonds)}.poker-card.clubs{color:var(--suit-clubs)}.poker-card:hover{box-shadow:var(--shadow-md),0 0 20px currentColor;border-color:currentColor;transform:translateY(-4px)scale(1.05)}.poker-card.selected{opacity:.3;pointer-events:none;transform:scale(.95)}.suit-filter{gap:6px;margin-bottom:12px;display:flex}.suit-btn{border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);text-align:center;min-height:var(--touch-target);flex:1;padding:8px;font-size:1.2rem}.suit-btn:hover{background:var(--bg-glass-hover)}.suit-btn:focus-visible,.stage-tab:focus-visible{outline-offset:2px;outline:3px solid #60a5fa}.suit-btn.active{border-color:var(--accent-gold);background:#f59e0b1a}.suit-btn.spades.active{border-color:var(--suit-spades);background:#e2e8f01a}.suit-btn.hearts.active{border-color:var(--suit-hearts);background:#f43f5e1a}.suit-btn.diamonds.active{border-color:var(--suit-diamonds);background:#3b82f61a}.suit-btn.clubs.active{border-color:var(--suit-clubs);background:#22c55e1a}.card-picker-grid{grid-template-columns:repeat(13,1fr);gap:4px;display:grid}.pick-card{aspect-ratio:.72;min-height:var(--touch-target);cursor:pointer;transition:var(--transition);background:linear-gradient(#ffffff0d,#ffffff03);border:1px solid #ffffff0d;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:.75rem;font-weight:700;display:flex;box-shadow:inset 0 1px 1px #ffffff1a}.pick-card .pick-rank{font-size:.85rem}.pick-card .pick-suit{filter:drop-shadow(0 0 4px);font-size:.95rem}.pick-card:hover{background:#ffffff1a;border-color:currentColor;transform:scale(1.08);box-shadow:0 0 15px}.pick-card.selecting{animation:.12s forwards pickCommit}.pick-card.picked{opacity:.15;pointer-events:none;filter:grayscale();transform:scale(.9)}.pick-card.spades{color:var(--suit-spades)}.pick-card.hearts{color:var(--suit-hearts)}.pick-card.diamonds{color:var(--suit-diamonds)}.pick-card.clubs{color:var(--suit-clubs)}@keyframes pickCommit{0%{filter:saturate();transform:scale(1)}to{filter:saturate(160%);transform:scale(.9)}}.opponent-selector{background:var(--bg-glass);border-radius:var(--radius-md);align-items:center;gap:12px;margin-bottom:20px;padding:16px;display:flex}.opponent-selector label{color:var(--text-secondary);white-space:nowrap;font-size:.9rem;font-weight:500}.opponent-slider{-webkit-appearance:none;appearance:none;height:var(--touch-target);--opponent-progress:0%;cursor:pointer;background:0 0;outline:none;flex:1}.opponent-slider.opponent-progress-1{--opponent-progress:0%}.opponent-slider.opponent-progress-2{--opponent-progress:14.2857%}.opponent-slider.opponent-progress-3{--opponent-progress:28.5714%}.opponent-slider.opponent-progress-4{--opponent-progress:42.8571%}.opponent-slider.opponent-progress-5{--opponent-progress:57.1429%}.opponent-slider.opponent-progress-6{--opponent-progress:71.4286%}.opponent-slider.opponent-progress-7{--opponent-progress:85.7143%}.opponent-slider.opponent-progress-8{--opponent-progress:100%}.opponent-slider::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--accent-gold) 0%,var(--accent-gold) var(--opponent-progress),#ffffff1a var(--opponent-progress),#ffffff1a 100%);border-radius:3px;height:6px}.opponent-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-gold);cursor:pointer;width:22px;height:22px;transition:var(--transition);border-radius:50%;margin-top:-8px;box-shadow:0 0 10px #f59e0b4d}.opponent-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 0 16px #f59e0b80}.opponent-slider::-moz-range-track{background:#ffffff1a;border:0;border-radius:3px;height:6px}.opponent-slider::-moz-range-progress{background:var(--accent-gold);border-radius:3px;height:6px}.opponent-slider::-moz-range-thumb{background:var(--accent-gold);cursor:pointer;border:0;border-radius:50%;width:22px;height:22px;box-shadow:0 0 10px #f59e0b4d}.opponent-slider:focus-visible{outline-offset:2px;outline:2px solid #ffcc00e6}.opponent-count{color:var(--accent-gold);text-align:center;min-width:30px;font-size:1.5rem;font-weight:700}.situation-panel{overflow:hidden}.situation-content[hidden]{display:none!important}.situation-toggle-btn{color:var(--text-secondary);cursor:pointer;transition:var(--transition);white-space:nowrap;min-height:var(--touch-target);background:#ffffff0a;border:1px solid #ffffff24;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:7px 10px;font-size:.76rem;font-weight:600;display:inline-flex}.situation-toggle-btn:hover{color:var(--text-primary);border-color:#ffffff42}.situation-toggle-btn.active{color:var(--accent-gold);background:#ffcc001f;border-color:#ffcc0073}.situation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field-group{flex-direction:column;gap:8px;display:flex}.field-label{color:var(--text-secondary);font-size:.82rem;font-weight:500}.field-help{color:var(--text-muted);font-size:.72rem;line-height:1.5}.field-error{color:var(--accent-red-light)}.field-group select,.field-group input{border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:var(--transition);background:#ffffff0a;outline:none;padding:11px 12px;font-size:.92rem}.field-group select[aria-invalid=true],.field-group input[aria-invalid=true]{border-color:var(--accent-red-light)}.field-group select:focus,.field-group input:focus{border-color:#ffcc0073;box-shadow:0 0 0 3px #ffcc0014}.field-group select[aria-invalid=true]:focus,.field-group input[aria-invalid=true]:focus{border-color:var(--accent-red-light);box-shadow:0 0 0 3px #ff658426}.field-group select[aria-invalid=true]:focus-visible,.field-group input[aria-invalid=true]:focus-visible{outline-offset:1px;outline:2px solid #ff6584bf}@media (max-width:768px){.field-group select,.field-group input{font-size:16px}}.input-prefix{align-items:center;gap:8px;display:flex}.prefix-chip{text-align:center;border-radius:var(--radius-sm);min-width:42px;color:var(--accent-gold);letter-spacing:.04em;background:#ffcc001a;border:1px solid #ffcc0026;flex:none;padding:10px 8px;font-size:.78rem;font-weight:700}.situation-hint{color:var(--text-muted);margin-top:14px;font-size:.8rem;line-height:1.6}.action-buttons{gap:10px;margin-top:16px;display:flex}.action-buttons[hidden]{display:none!important}.action-buttons.is-hidden{visibility:hidden;opacity:0;pointer-events:none;display:none!important}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);font-size:.9rem;font-weight:600;font-family:var(--font-sans);min-height:var(--touch-target);border:none;align-items:center;gap:8px;padding:12px 24px;display:flex}.btn-clear-inline{min-height:var(--touch-target);padding:7px 12px;font-size:.78rem}.btn-primary{background:linear-gradient(135deg,var(--accent-gold-light),var(--accent-gold));color:#000;border:none;flex:1;font-weight:800;box-shadow:0 0 15px #fc06,inset 0 2px 4px #ffffff80}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 25px #fc09,inset 0 2px 4px #ffffff80}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.3;cursor:not-allowed;box-shadow:none;background:var(--bg-glass);color:var(--text-muted);transform:none}.btn-secondary{background:var(--bg-glass);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.results-panel{position:sticky;top:24px}.result-empty{text-align:center;color:var(--text-muted);padding:30px 20px}.result-empty .empty-icon{opacity:.3;margin-bottom:16px;font-size:3rem}.result-empty p{font-size:.9rem;line-height:1.7}.analysis-error{text-align:center;background:#ef444414;border:1px solid #ef444461;border-radius:8px;flex-direction:column;align-items:center;gap:10px;margin:18px 0;padding:18px;display:flex}.analysis-error strong{color:#fca5a5;font-size:.98rem}.analysis-error p{max-width:420px;color:var(--text-secondary);font-size:.88rem;line-height:1.65}.analysis-error-action{min-height:var(--touch-target);padding:8px 14px}.range-edit-btn{color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;margin-top:6px;padding:5px 10px;font-size:.72rem}.range-edit-btn:hover{background:#ffffff1a}.range-edit-btn:focus-visible{outline-offset:2px;outline:3px solid #60a5fa}.preflop-section{content-visibility:auto;contain-intrinsic-size:auto 900px;margin-bottom:32px}.preflop-section>.panel-title,.preflop-context,.preflop-grid-viewport,.preflop-legend{width:min(100%,780px);margin-inline:auto}.preflop-grid-viewport{position:relative}.preflop-grid-wrapper{width:100%;padding:4px;overflow-x:auto}.preflop-grid{aspect-ratio:1;min-width:600px;max-width:780px;margin-inline:auto}.preflop-grid.is-load-error{color:#fde68a;cursor:pointer;text-align:center;border:1px dashed #fbbf2473;border-radius:8px;justify-content:center;align-items:center;min-width:100%;max-width:100%;padding:24px;display:flex}.preflop-grid.is-load-error:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.stage-progress{background:var(--bg-glass);border-radius:var(--radius-md);align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;display:flex}.stage-dot{width:10px;height:10px;transition:var(--transition);background:#ffffff1a;border-radius:50%}.stage-dot.completed{background:var(--accent-green);box-shadow:0 0 8px #10b98166}.stage-dot.current{background:var(--accent-gold);animation:1.5s infinite dotPulse;box-shadow:0 0 8px #f59e0b66}.stage-dot.pending{background:#ffffff1a}.stage-line{background:#ffffff0f;flex:1;height:2px;position:relative}.stage-line.completed{background:var(--accent-green)}.stage-name{color:var(--text-muted);font-size:.72rem;font-weight:500}.stage-name.active{color:var(--accent-gold)}.stage-name.completed{color:var(--accent-green)}@keyframes dotPulse{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.install-fab{color:#062012;letter-spacing:.01em;cursor:pointer;background:linear-gradient(135deg,#34d399,#10b981);border:1px solid #fff3;border-radius:12px;justify-content:center;align-items:center;width:min(420px,100%);min-height:48px;margin:14px auto 0;padding:12px 16px;font-size:.92rem;font-weight:700;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 10px 24px #10b98159}.install-fab:active{transform:translateY(1px);box-shadow:0 6px 16px #10b98147}.board-texture-panel{background:#00000040;border:1px solid #ffffff0d;border-radius:12px;margin-top:16px;padding:14px 16px;animation:.3s fadeInSimple}.texture-header{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.85rem;display:flex}.texture-title{color:var(--text-secondary)}.texture-title span{color:var(--text-primary);font-weight:500}.texture-score{font-family:var(--font-sans);color:var(--text-muted)}.texture-score span{color:var(--text-primary);font-weight:600}.texture-bar-track{background:#ffffff1a;border-radius:3px;height:6px;margin-bottom:14px;overflow:hidden}.texture-bar-fill{border-radius:3px;width:0%;height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1),background-color .3s}.texture-bar-fill.success{background:var(--success)}.texture-bar-fill.info{background:var(--info)}.texture-bar-fill.warning{background:var(--warning)}.texture-bar-fill.danger{background:var(--danger)}.texture-badges{flex-wrap:wrap;gap:8px;display:flex}.texture-badge{color:var(--text-secondary);background:#ffffff1a;border-radius:12px;padding:3px 10px;font-size:.75rem}.texture-badge.success{color:#34d399;background:#10b98126}.texture-badge.info{color:#60a5fa;background:#3b82f626}.texture-badge.warning{color:#fbbf24;background:#f59e0b26}.texture-badge.danger{color:#f87171;background:#ef444426}.container{max-width:1280px;margin:0 auto;padding:0 24px}.header{text-align:center;padding:48px 0 32px;position:relative}.header h1{font-family:var(--font-display);letter-spacing:-.5px;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px #a5b4fc4d);-webkit-background-clip:text;background-clip:text;justify-content:center;align-items:center;gap:12px;margin-bottom:12px;font-size:3.2rem;font-weight:800;display:flex}.spade-icon{background:linear-gradient(135deg,#fff,#cbd5e1,#94a3b8);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px #ffffff26);-webkit-background-clip:text;background-clip:text;font-size:3.6rem;animation:3s ease-in-out infinite float-spade}@keyframes float-spade{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.header p{color:var(--text-secondary);letter-spacing:.5px;font-size:1.05rem;font-weight:400}.signature-line{opacity:.92;justify-content:center;align-items:center;gap:7px;width:100%;margin-top:28px;margin-left:auto;margin-right:auto;line-height:1;display:flex}.signature-prefix{color:#94a3b8cc;letter-spacing:.04em;font-size:1rem;font-weight:400}.signature-name{font-family:var(--font-signature);letter-spacing:.03em;text-align:left;color:#e6eafff2;text-shadow:0 0 2px #ffffff52,0 0 20px #6067ff59,0 0 44px #6067ff2e;white-space:nowrap;min-width:8.3ch;font-size:2.05rem}.signature-cursor{background:#d0d6ffe6;border-radius:1px;width:2px;height:1.45rem;animation:.8s step-end infinite typeCursorBlink;box-shadow:0 0 10px #7880ffb8}.signature-line.typing-done .signature-cursor{opacity:0;animation:none}@keyframes typeCursorBlink{0%,45%{opacity:1}50%,to{opacity:0}}.main-layout{grid-template-columns:1fr 380px;gap:24px;margin-bottom:32px;display:grid}.main-layout>*{min-width:0}@media (max-width:1024px){.main-layout{grid-template-columns:1fr}}.stage-tabs{background:var(--bg-glass);border-radius:var(--radius-md);gap:4px;margin-bottom:20px;padding:4px;display:flex}.stage-tab{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);font-size:.85rem;font-weight:500;font-family:var(--font-sans);min-height:var(--touch-target);background:0 0;border:none;flex:1;padding:10px 8px}.stage-tab:hover{color:var(--text-secondary);background:var(--bg-glass-hover)}.stage-tab.active{color:var(--accent-gold);background:#f59e0b26;font-weight:600}.stage-tab .count{opacity:1;margin-left:4px;font-size:.7rem;display:inline-block}.footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border-color);flex-direction:column;align-items:center;gap:10px;margin-top:40px;padding:32px 0;font-size:.8rem;display:flex}.github-link{color:var(--text-secondary);opacity:.75;width:var(--touch-target);height:var(--touch-target);justify-content:center;align-items:center;transition:opacity .3s;display:inline-flex}.github-link:hover,.github-link:focus-visible{opacity:1}@media (max-width:768px){.header h1{flex-direction:column;gap:6px;font-size:1.8rem}.spade-icon{font-size:2.2rem}.header p{font-size:.88rem}.signature-line{gap:6px;margin-top:18px}.signature-prefix{font-size:.9rem}.signature-name{min-width:7.9ch;font-size:1.7rem}.signature-cursor{height:1.2rem}.header{padding:24px 0 16px}.container{padding:0 12px}.panel{padding:14px}.main-layout{flex-direction:column;gap:16px;padding-bottom:0;display:flex}.left-column,.right-column,.results-panel{width:100%;min-width:0}.right-column{order:2;margin-top:15px}.results-panel{position:static}.card-picker-grid{grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:3px;width:100%;min-width:0;max-width:620px;margin-inline:auto}.pick-card{aspect-ratio:.78;border-radius:7px;min-height:46px;font-size:.74rem}.pick-card .pick-rank{font-size:.85rem}.pick-card .pick-suit{font-size:.9rem}.selected-cards{flex-wrap:wrap;justify-content:center;gap:8px;min-height:82px}.selected-card-slot,.poker-card{width:58px;height:80px}.card-selection-label{flex-direction:row;align-items:center;gap:8px}.card-selection-label span{white-space:nowrap}.btn.btn-clear-inline{width:auto;min-height:var(--touch-target);flex-shrink:0;justify-content:center;margin-left:auto;padding:6px 12px;font-size:.76rem}.stage-progress{gap:4px;max-width:100%;margin-bottom:12px;padding:8px 12px;overflow:hidden}.stage-name{white-space:normal;text-align:center;min-width:0;font-size:.65rem}.stage-line{min-width:12px}.suit-btn{min-height:44px;padding:10px;font-size:1.3rem}.stage-tabs{gap:2px;margin-bottom:12px;padding:3px}.stage-tab{min-height:44px;padding:10px 6px;font-size:.82rem}.action-buttons{-webkit-backdrop-filter:blur(20px);padding:12px 16px max(12px,env(safe-area-inset-bottom));z-index:100;background:#0a0e17f2;border-top:1px solid #ffffff1a;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin:0;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 30px #00000080}@supports (backdrop-filter:blur(0)){.action-buttons{backdrop-filter:blur(20px)}}.action-buttons .btn{justify-content:center;min-width:0}.btn{border-radius:12px;min-height:50px;padding:14px 16px;font-size:.95rem}main.container{scroll-padding-bottom:calc(24px + env(safe-area-inset-bottom));padding-bottom:24px}body.hand-ready main.container{padding-bottom:calc(96px + env(safe-area-inset-bottom));scroll-padding-bottom:calc(112px + env(safe-area-inset-bottom))}.opponent-selector{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:12px;padding:12px;display:grid}.opponent-selector label,.opponent-count{white-space:nowrap}.situation-grid{grid-template-columns:1fr;gap:12px}.panel-title{flex-wrap:wrap;align-items:flex-start;row-gap:8px}.situation-toggle-btn{margin-left:0;padding:6px 9px;font-size:.72rem}.input-prefix{gap:6px}.prefix-chip{min-width:40px}.opponent-slider{height:var(--touch-target)}.opponent-slider::-webkit-slider-thumb{width:28px;height:28px;margin-top:-11px}.opponent-slider::-moz-range-thumb{width:28px;height:28px}.preflop-section.panel{padding:14px 0 16px}.panel-title{padding:0 10px}.preflop-section>.panel-title{width:auto;margin-inline:14px;padding:0}.preflop-context{width:auto;margin:0 14px 10px}.preflop-grid-wrapper{width:100%;padding:4px 14px 10px;overflow-x:auto}.preflop-grid{gap:2px;min-width:596px;max-width:none}.preflop-legend{width:auto;margin:12px 14px 0}.footer{padding:20px 20px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--border-color);width:100%;margin-top:20px}}@media (max-width:480px){.header h1{flex-direction:column;gap:4px;font-size:1.5rem}.spade-icon{font-size:1.8rem}.header p{font-size:.8rem}.signature-name{min-width:7.5ch;font-size:1.42rem}.signature-prefix{font-size:.82rem}.signature-cursor{height:1.08rem}.header{padding:20px 0 12px}.container{padding:0 8px}.panel{padding:12px}.main-layout{gap:14px}.card-picker-grid{grid-template-columns:repeat(7,1fr);gap:2px}.pick-card{border-radius:6px;min-height:44px}.pick-card .pick-rank{font-size:.8rem}.pick-card .pick-suit{font-size:.82rem}.selected-cards{gap:6px;min-height:68px}.stage-progress{gap:4px;padding:8px}.selected-card-slot,.poker-card{width:52px;height:72px}.poker-card .rank{font-size:.9rem}.poker-card .suit{font-size:.95rem}.stage-tab{padding:8px 4px;font-size:.78rem}.stage-tab .count{font-size:.62rem}.card-selection-label{font-size:.8rem}.opponent-selector{grid-template-columns:minmax(0,1fr) auto}.opponent-selector label{grid-column:1/-1}.panel-title{align-items:center;margin-bottom:14px;font-size:1rem}.situation-toggle-btn{text-align:center;justify-content:center;width:100%;padding:6px 8px;font-size:.68rem}.panel-title .icon{width:28px;height:28px;font-size:.85rem}.action-buttons{padding:10px 12px max(10px,env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) minmax(96px,auto);gap:8px}.btn{width:100%}}@media (max-width:360px){.card-picker-grid{grid-template-columns:repeat(6,1fr);gap:1px}}@supports (padding-top:env(safe-area-inset-top)){.header{padding-top:calc(20px + env(safe-area-inset-top))}.container{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}@media (hover:none) and (pointer:coarse){.pick-card:hover,.selected-card-slot.filled:hover{transform:none}.pick-card:active{background:var(--bg-glass-hover);transform:scale(.92)}.btn:active{transform:scale(.97)}.selected-card-slot:active{transform:scale(.95)}.suit-btn:active{transform:scale(.92)}}@media (prefers-reduced-motion:reduce){.selected-card-slot,.poker-card,.pick-card,.ai-panel,.ai-refresh-btn.spinning .ai-header-icon,.btn-ai:after{transition:none!important;animation:none!important}}body.app-loading{overflow:hidden}body.app-loading .header,body.app-loading main{opacity:0;pointer-events:none;transform:translateY(18px)scale(.992)}body .header,body main{transition:opacity .48s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1)}body.app-ready .header,body.app-ready main{opacity:1;transform:none}.app-boot{z-index:4000;background:radial-gradient(circle at top,#3388ff24,#0000 38%),radial-gradient(circle at bottom,#00ff661a,#0000 32%),linear-gradient(#09111d,#0a0e17);justify-content:center;align-items:center;padding:24px;transition:opacity .38s,visibility .38s;display:flex;position:fixed;inset:0}.app-boot.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.app-update{top:max(14px,env(safe-area-inset-top));z-index:1500;width:min(430px,100vw - 32px);color:var(--text-primary);-webkit-backdrop-filter:blur(18px);background:#0f172af5;border:1px solid #60a5fa61;border-radius:16px;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;padding:14px;animation:.24s cubic-bezier(.22,1,.36,1) appUpdateEnter;display:grid;position:fixed;right:16px;box-shadow:0 18px 48px #0000006b}@supports (backdrop-filter:blur(0)){.app-update{backdrop-filter:blur(18px)}}.app-update[hidden]{display:none}.app-update__icon{color:#93c5fd;background:#3b82f629;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.app-update__copy{min-width:0}.app-update__copy strong{font-size:.92rem;line-height:1.35;display:block}.app-update__copy p{color:var(--text-secondary);margin:3px 0 0;font-size:.78rem;line-height:1.5}.app-update__actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.app-update__actions button{min-height:var(--touch-target);font:700 .82rem/1 var(--font-sans);cursor:pointer;border-radius:10px;padding:8px 14px}.app-update__later{color:var(--text-secondary);background:#ffffff0f;border:1px solid #ffffff29}.app-update__apply{color:#fff;background:linear-gradient(135deg,#3b82f6,#6366f1);border:1px solid #93c5fd9e}.app-update__actions button:disabled{cursor:wait;opacity:.62}@keyframes appUpdateEnter{0%{opacity:0;transform:translateY(-10px)scale(.98)}to{opacity:1;transform:none}}.app-boot__glow{filter:blur(10px);background:radial-gradient(circle,#ffcc0024 0%,#ffcc000a 42%,#0000 72%);border-radius:50%;width:52vw;max-width:420px;height:52vw;max-height:420px;animation:2.8s ease-in-out infinite bootGlow;position:absolute}.app-boot__inner{backdrop-filter:blur(18px);background:linear-gradient(#121826d6,#0a0e17eb);border:1px solid #ffffff14;border-radius:24px;justify-items:center;gap:14px;min-width:min(100%,320px);padding:32px 28px;display:grid;position:relative;box-shadow:0 30px 80px #00000073,inset 0 1px #ffffff0d}.app-boot__mark{width:68px;height:68px;color:var(--accent-gold);background:linear-gradient(135deg,#fc03,#3388ff2e);border-radius:20px;place-items:center;font-size:2rem;animation:1.9s ease-in-out infinite bootFloat;display:grid;box-shadow:0 12px 30px #ffcc001f}.app-boot__title{font-family:var(--font-display);letter-spacing:.02em;font-size:1.15rem;font-weight:700}.app-boot__subtitle{max-width:20rem;color:var(--text-secondary);text-align:center;font-size:.92rem}.app-boot__bar{background:#ffffff14;border-radius:999px;width:min(220px,100%);height:6px;position:relative;overflow:hidden}.app-boot__bar span{border-radius:inherit;background:linear-gradient(90deg,#fc00,#ffcc00f2,#66aaffe6);width:38%;animation:1.15s cubic-bezier(.4,0,.2,1) infinite bootSweep;position:absolute;inset:0 auto 0 -38%;box-shadow:0 0 18px #ffcc0059}@keyframes bootSweep{0%{transform:translate(0)}to{transform:translate(360%)}}@keyframes bootFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes bootGlow{0%,to{opacity:.7;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}@media (max-width:640px){.app-update{top:max(10px,env(safe-area-inset-top));width:auto;padding:12px;left:10px;right:10px}.app-update__actions button{flex:1}.app-boot__inner{width:min(100%,340px);padding:28px 22px}.app-boot__title{font-size:1.05rem}.app-boot__subtitle{font-size:.88rem}}@media (prefers-reduced-motion:reduce){body .header,body main,.app-boot,.app-update{transition:none;animation:none}.app-boot__glow,.app-boot__mark,.app-boot__bar span{animation:none}}