:root{--bg-primary: #0a0e17;--bg-secondary: #121826;--bg-card: rgba(18, 24, 38, .6);--bg-card-hover: rgba(30, 41, 59, .8);--bg-glass: rgba(255, 255, 255, .03);--bg-glass-hover: rgba(255, 255, 255, .08);--text-primary: #ffffff;--text-secondary: #94a3b8;--text-muted: #78879b;--accent-gold: #ffcc00;--accent-gold-light: #ffe566;--accent-green: #00ff66;--accent-green-light: #66ffaa;--accent-red: #ff3366;--accent-red-light: #ff6688;--accent-blue: #3388ff;--accent-blue-light: #66aaff;--focus-ring: #60a5fa;--suit-spades: #e2e8f0;--suit-hearts: #ff3366;--suit-diamonds: #3388ff;--suit-clubs: #00ff66;--border-color: rgba(255, 255, 255, .06);--border-highlight: rgba(255, 204, 0, .3);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .4);--shadow-md: 0 8px 16px rgba(0, 0, 0, .6);--shadow-lg: 0 16px 32px rgba(0, 0, 0, .8);--shadow-glow: 0 0 20px rgba(0, 255, 102, .2);--shadow-glow-gold: 0 0 30px rgba(255, 204, 0, .25);--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}*{margin:0;padding:0;box-sizing:border-box}html{width:100%;overflow-x:hidden;overflow-x:clip;background:var(--bg-primary)}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);min-height:100vh;width:100%;max-width:100%;overflow-x:hidden;overflow-x:clip;line-height:1.6;-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}html.app-modal-open{overflow:hidden;overscroll-behavior:none}body.app-modal-open{position:fixed;inset:0;width:100%;overflow:hidden;overscroll-behavior:none}main,.container,.main-layout,.left-column,.right-column,.panel{min-width:0;max-width:100%}body:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 20% 20%,rgba(245,158,11,.05) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(16,185,129,.04) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(59,130,246,.03) 0%,transparent 60%);z-index:-1;animation:bgFloat 30s ease-in-out infinite}@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{display:flex;align-items:center;justify-content:center}.mr-6{margin-right:6px}.is-hidden,[hidden]{display:none!important}.clipboard-proxy{position:fixed;left:-9999px;top:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.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;animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}}.panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;backdrop-filter:blur(20px);transition:var(--transition)}.panel:hover{border-color:#ffffff1f}.panel-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--text-primary);margin-bottom:20px;display:flex;align-items:center;gap:10px}.panel-heading{min-width:0;font:inherit;line-height:inherit;color:inherit;letter-spacing:0}.panel-title .icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1rem}.panel-title .icon.gold{background:#f59e0b26;color:var(--accent-gold)}.panel-title .icon.green{background:#10b98126;color:var(--accent-green)}.panel-title .icon.blue{background:#3b82f626;color:var(--accent-blue)}.panel-title .icon.red{background:#ef444426;color:var(--accent-red)}.btn-scan-pill{appearance:none;margin-left:auto;min-height:var(--touch-target);padding:7px 10px;border:1px solid rgba(96,165,250,.5);border-radius:6px;background:#3b82f624;color:#bfdbfe;display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;font-family:var(--font-sans);font-size:.78rem;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.btn-scan-pill:hover{border-color:#60a5fa9e;background:#3b82f62e;color:#dbeafe}.btn-scan-pill:active{transform:translateY(1px)}.btn-scan-pill:focus-visible{outline:2px solid rgba(96,165,250,.9);outline-offset:2px}.scan-pill-icon{width:18px;height:18px;flex:0 0 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{width:100%;margin-top:16px;padding:14px 20px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,#6366f1,#8b5cf6,#a855f7);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease;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{font-size:.65rem;padding:2px 8px;background:#fff3;border-radius:10px;font-weight:500;letter-spacing:.5px}.btn-ai:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);animation:aiShimmer 3s ease-in-out infinite}@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{font-size:.85rem;color:var(--text-secondary);font-weight:500;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.selected-cards{display:flex;gap:12px;margin-bottom:16px;min-height:90px;align-items:center}.selected-card-slot,.pick-card{appearance:none;padding:0;font-family:inherit;text-align:center}.selected-card-slot:focus-visible,.pick-card:focus-visible{outline:3px solid #60a5fa;outline-offset:2px;z-index:12}.selected-card-slot{width:64px;height:88px;min-width:56px;min-height:76px;border:2px dashed rgba(255,255,255,.15);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1.5rem;transition:var(--transition);position:relative;cursor:pointer;will-change:transform,opacity}.selected-card-slot:hover{border-color:#f59e0b66}.selected-card-slot.filled{border:2px solid transparent;background:none;cursor:pointer}.selected-card-slot.filled:hover{transform:translateY(-4px)}.selected-card-slot.is-placing .poker-card{animation:cardPlace .26s cubic-bezier(.2,.9,.25,1.15)}.selected-card-slot.is-clearing{animation:slotClear .18s ease forwards;pointer-events:none}.selected-card-slot.is-clearing .poker-card{animation:cardClear .18s ease forwards}.selected-card-slot.active-slot{border-color:var(--accent-gold);box-shadow:0 0 15px #fc06;animation:slotPulse 1.5s ease-in-out infinite;color:var(--accent-gold)}@keyframes slotPulse{0%,to{box-shadow:0 0 10px #fc03;transform:scale(1)}50%{box-shadow:0 0 25px #fc09,inset 0 0 10px #ffcc004d;transform:scale(1.02)}}@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{width:64px;height:88px;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;cursor:pointer;transition:var(--transition);position:relative;user-select:none;background:linear-gradient(145deg,#1e293b,#0f172a);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-sm);animation:popIn .4s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes popIn{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.poker-card .rank{font-size:1.25rem;line-height:1;font-weight:800;text-shadow:0 0 10px currentColor}.poker-card .suit{font-size:1.4rem;line-height:1;margin-top:4px;filter:drop-shadow(0 0 8px currentColor)}.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{transform:translateY(-4px) scale(1.05);box-shadow:var(--shadow-md),0 0 20px currentColor;border-color:currentColor}.poker-card.selected{opacity:.3;pointer-events:none;transform:scale(.95)}.suit-filter{display:flex;gap:6px;margin-bottom:12px}.suit-btn{flex:1;border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-secondary);padding:8px;border-radius:var(--radius-sm);font-size:1.2rem;cursor:pointer;transition:var(--transition);text-align:center;min-height:var(--touch-target)}.suit-btn:hover{background:var(--bg-glass-hover)}.suit-btn:focus-visible,.stage-tab:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}.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{display:grid;grid-template-columns:repeat(13,1fr);gap:4px}.pick-card{aspect-ratio:.72;min-height:var(--touch-target);border:1px solid rgba(255,255,255,.05);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);background:linear-gradient(180deg,#ffffff0d,#ffffff03);font-size:.75rem;font-weight:700;gap:1px;box-shadow:inset 0 1px 1px #ffffff1a}.pick-card .pick-rank{font-size:.85rem}.pick-card .pick-suit{font-size:.95rem;filter:drop-shadow(0 0 4px currentColor)}.pick-card:hover{background:#ffffff1a;border-color:currentColor;transform:scale(1.08);box-shadow:0 0 15px currentColor}.pick-card.selecting{animation:pickCommit .12s ease forwards}.pick-card.picked{opacity:.15;pointer-events:none;transform:scale(.9);filter:grayscale(100%)}.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%{transform:scale(1);filter:saturate(100%)}to{transform:scale(.9);filter:saturate(160%)}}.opponent-selector{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:16px;background:var(--bg-glass);border-radius:var(--radius-md)}.opponent-selector label{font-size:.9rem;color:var(--text-secondary);font-weight:500;white-space:nowrap}.opponent-slider{flex:1;-webkit-appearance:none;appearance:none;height:var(--touch-target);background:transparent;outline:none;cursor:pointer}.opponent-slider::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:#ffffff1a}.opponent-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--accent-gold);cursor:pointer;box-shadow:0 0 10px #f59e0b4d;transition:var(--transition);margin-top:-8px}.opponent-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 0 16px #f59e0b80}.opponent-slider::-moz-range-track{height:6px;border:0;border-radius:3px;background:#ffffff1a}.opponent-slider::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;background:var(--accent-gold);cursor:pointer;box-shadow:0 0 10px #f59e0b4d}.opponent-slider:focus-visible{outline:2px solid rgba(255,204,0,.9);outline-offset:2px}.opponent-count{font-size:1.5rem;font-weight:700;color:var(--accent-gold);min-width:30px;text-align:center}.situation-panel{overflow:hidden}.situation-content[hidden]{display:none!important}.situation-toggle-btn{margin-left:auto;flex-shrink:0;border:1px solid rgba(255,255,255,.14);background:#ffffff0a;color:var(--text-secondary);font-size:.76rem;font-weight:600;padding:7px 10px;border-radius:999px;cursor:pointer;transition:var(--transition);white-space:nowrap;min-height:var(--touch-target);display:inline-flex;align-items:center;justify-content:center}.situation-toggle-btn:hover{color:var(--text-primary);border-color:#ffffff42}.situation-toggle-btn.active{color:var(--accent-gold);border-color:#ffcc0073;background:#ffcc001f}.situation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field-group{display:flex;flex-direction:column;gap:8px}.field-label{font-size:.82rem;color:var(--text-secondary);font-weight:500}.field-help{font-size:.72rem;color:var(--text-muted);line-height:1.5}.field-group select,.field-group input{width:100%;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#ffffff0a;color:var(--text-primary);padding:11px 12px;font-size:.92rem;outline:none;transition:var(--transition)}.field-group select:focus,.field-group input:focus{border-color:#ffcc0073;box-shadow:0 0 0 3px #ffcc0014}.input-prefix{display:flex;align-items:center;gap:8px}.prefix-chip{flex:0 0 auto;min-width:42px;text-align:center;padding:10px 8px;border-radius:var(--radius-sm);background:#ffcc001a;border:1px solid rgba(255,204,0,.15);color:var(--accent-gold);font-size:.78rem;font-weight:700;letter-spacing:.04em}.situation-hint{margin-top:14px;font-size:.8rem;color:var(--text-muted);line-height:1.6}.action-buttons{display:flex;gap:10px;margin-top:16px}.action-buttons[hidden]{display:none!important}.action-buttons.is-hidden{display:none!important;visibility:hidden;opacity:0;pointer-events:none}.btn{border:none;padding:12px 24px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;transition:var(--transition);font-family:var(--font-sans);display:flex;align-items:center;gap:8px;min-height:var(--touch-target)}.btn-clear-inline{padding:7px 12px;font-size:.78rem;min-height:var(--touch-target)}.btn-primary{flex:1;background:linear-gradient(135deg,var(--accent-gold-light),var(--accent-gold));color:#000;box-shadow:0 0 15px #fc06,inset 0 2px 4px #ffffff80;border:none;font-weight:800}.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;transform:none;box-shadow:none;background:var(--bg-glass);color:var(--text-muted)}.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;padding:30px 20px;color:var(--text-muted)}.result-empty .empty-icon{font-size:3rem;margin-bottom:16px;opacity:.3}.result-empty p{font-size:.9rem;line-height:1.7}.analysis-error{display:flex;flex-direction:column;align-items:center;gap:10px;margin:18px 0;padding:18px;border:1px solid rgba(239,68,68,.38);border-radius:8px;background:#ef444414;text-align:center}.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{margin-top:6px;padding:5px 10px;font-size:.72rem;color:var(--text-secondary);background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer}.range-edit-btn:hover{background:#ffffff1a}.range-edit-btn:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}.preflop-section{margin-bottom:32px;content-visibility:auto;contain-intrinsic-size:auto 900px}.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%;overflow-x:auto;padding:4px}.preflop-grid{min-width:600px;max-width:780px;margin-inline:auto;aspect-ratio:1}.preflop-grid.is-load-error{display:flex;min-width:100%;max-width:100%;align-items:center;justify-content:center;padding:24px;border:1px dashed rgba(251,191,36,.45);border-radius:8px;color:#fde68a;cursor:pointer;text-align:center}.preflop-grid.is-load-error:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.stage-progress{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;background:var(--bg-glass);border-radius:var(--radius-md)}.stage-dot{width:10px;height:10px;border-radius:50%;background:#ffffff1a;transition:var(--transition)}.stage-dot.completed{background:var(--accent-green);box-shadow:0 0 8px #10b98166}.stage-dot.current{background:var(--accent-gold);box-shadow:0 0 8px #f59e0b66;animation:dotPulse 1.5s ease infinite}.stage-dot.pending{background:#ffffff1a}.stage-line{flex:1;height:2px;background:#ffffff0f;position:relative}.stage-line.completed{background:var(--accent-green)}.stage-name{font-size:.72rem;color:var(--text-muted);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{display:flex;align-items:center;justify-content:center;width:min(420px,100%);margin:14px auto 0;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:linear-gradient(135deg,#34d399,#10b981);color:#062012;font-weight:700;font-size:.92rem;letter-spacing:.01em;min-height:48px;padding:12px 16px;box-shadow:0 10px 24px #10b98159;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.install-fab:active{transform:translateY(1px);box-shadow:0 6px 16px #10b98147}.install-guide{position:fixed;left:12px;right:12px;bottom:max(14px,env(safe-area-inset-bottom));z-index:120;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#0f172af2;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:12px;box-shadow:0 12px 30px #00000059}.install-guide-title{font-weight:700;color:var(--text-primary);margin-bottom:4px}.install-guide p{margin:0;color:var(--text-secondary);font-size:.82rem;line-height:1.55}.install-guide-steps{margin:10px 0 0;padding-left:18px;color:var(--text-primary);font-size:.79rem;line-height:1.5;display:flex;flex-direction:column;gap:4px}.install-guide-hint{margin:10px 0 0;padding:8px 10px;border-radius:9px;border:1px solid rgba(52,211,153,.35);background:#10b9811f;color:#99f6e4;font-size:.75rem;line-height:1.45}.install-guide-actions{margin-top:10px;display:flex;gap:8px}.install-guide-actions .btn{flex:1;justify-content:center;min-height:var(--touch-target);padding:8px 10px}@media(min-width:769px){.install-guide{width:min(440px,calc(100vw - 24px));left:50%;right:auto;transform:translate(-50%)}}.board-texture-panel{margin-top:16px;padding:14px 16px;background:#00000040;border-radius:12px;border:1px solid rgba(255,255,255,.05);animation:fadeInSimple .3s ease}.texture-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.85rem}.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{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden;margin-bottom:14px}.texture-bar-fill{height:100%;width:0%;border-radius:3px;transition:width .6s cubic-bezier(.34,1.56,.64,1),background-color .3s ease}.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{display:flex;flex-wrap:wrap;gap:8px}.texture-badge{font-size:.75rem;padding:3px 10px;border-radius:12px;background:#ffffff1a;color:var(--text-secondary)}.texture-badge.success{background:#10b98126;color:#34d399}.texture-badge.info{background:#3b82f626;color:#60a5fa}.texture-badge.warning{background:#f59e0b26;color:#fbbf24}.texture-badge.danger{background:#ef444426;color:#f87171}.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);font-size:3.2rem;font-weight:800;margin-bottom:12px;letter-spacing:-.5px;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 15px rgba(165,180,252,.3));display:flex;align-items:center;justify-content:center;gap:12px}.spade-icon{background:linear-gradient(135deg,#fff,#cbd5e1,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:3.6rem;filter:drop-shadow(0 0 15px rgba(255,255,255,.15));animation:float-spade 3s ease-in-out infinite}@keyframes float-spade{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.header p{color:var(--text-secondary);font-size:1.05rem;font-weight:400;letter-spacing:.5px}.signature-line{margin-top:28px;display:flex;align-items:center;justify-content:center;gap:7px;margin-left:auto;margin-right:auto;width:100%;line-height:1;opacity:.92}.signature-prefix{font-size:1rem;color:#94a3b894;letter-spacing:.04em;font-weight:400}.signature-name{font-family:var(--font-signature);font-size:2.05rem;letter-spacing:.03em;min-width:8.3ch;text-align:left;color:#e6eafff2;text-shadow:0 0 2px rgba(255,255,255,.32),0 0 20px rgba(96,103,255,.35),0 0 44px rgba(96,103,255,.18);white-space:nowrap}.signature-cursor{width:2px;height:1.45rem;background:#d0d6ffe6;border-radius:1px;box-shadow:0 0 10px #7880ffb8;animation:typeCursorBlink .8s steps(1,end) infinite}.signature-line.typing-done .signature-cursor{opacity:0;animation:none}@keyframes typeCursorBlink{0%,45%{opacity:1}50%,to{opacity:0}}.main-layout{display:grid;grid-template-columns:1fr 380px;gap:24px;margin-bottom:32px}.main-layout>*{min-width:0}@media(max-width:1024px){.main-layout{grid-template-columns:1fr}}.stage-tabs{display:flex;gap:4px;background:var(--bg-glass);border-radius:var(--radius-md);padding:4px;margin-bottom:20px}.stage-tab{flex:1;border:none;background:transparent;color:var(--text-muted);padding:10px 8px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:var(--transition);font-family:var(--font-sans);min-height:var(--touch-target)}.stage-tab:hover{color:var(--text-secondary);background:var(--bg-glass-hover)}.stage-tab.active{background:#f59e0b26;color:var(--accent-gold);font-weight:600}.stage-tab .count{display:inline-block;font-size:.7rem;margin-left:4px;opacity:1}.footer{text-align:center;padding:32px 0;color:var(--text-muted);font-size:.8rem;border-top:1px solid var(--border-color);margin-top:40px;display:flex;flex-direction:column;align-items:center;gap:10px}.github-link{color:var(--text-secondary);opacity:.75;transition:opacity .3s ease;width:var(--touch-target);height:var(--touch-target);display:inline-flex;align-items:center;justify-content:center}.github-link:hover,.github-link:focus-visible{opacity:1}@media(max-width:768px){.header h1{font-size:1.8rem;flex-direction:column;gap:6px}.spade-icon{font-size:2.2rem}.header p{font-size:.88rem}.signature-line{margin-top:18px;gap:6px}.signature-prefix{font-size:.9rem}.signature-name{font-size:1.7rem;min-width:7.9ch}.signature-cursor{height:1.2rem}.header{padding:24px 0 16px}.container{padding:0 12px}.panel{padding:14px}.main-layout{display:flex;flex-direction:column;gap:16px;padding-bottom:0}.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));width:100%;max-width:620px;margin-inline:auto;min-width:0;gap:3px}.pick-card{aspect-ratio:.78;font-size:.74rem;min-height:46px;border-radius:7px}.pick-card .pick-rank{font-size:.85rem}.pick-card .pick-suit{font-size:.9rem}.selected-cards{gap:8px;min-height:82px;flex-wrap:wrap;justify-content:center}.selected-card-slot,.poker-card{width:58px;height:80px}.card-selection-label{flex-direction:row;gap:8px;align-items:center}.card-selection-label span{white-space:nowrap}.btn.btn-clear-inline{width:auto;flex-shrink:0;justify-content:center;min-height:var(--touch-target);padding:6px 12px;font-size:.76rem;margin-left:auto}.stage-progress{overflow:hidden;padding:8px 12px;gap:4px;margin-bottom:12px;max-width:100%}.stage-name{font-size:.65rem;white-space:normal;text-align:center;min-width:0}.stage-line{min-width:12px}.suit-btn{padding:10px;font-size:1.3rem;min-height:44px}.stage-tabs{gap:2px;padding:3px;margin-bottom:12px}.stage-tab{padding:10px 6px;font-size:.82rem;min-height:44px}.action-buttons{position:fixed;bottom:0;left:0;right:0;background:#0a0e17f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px 16px max(12px,env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.1);z-index:100;margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;box-shadow:0 -10px 30px #00000080}.action-buttons .btn{min-width:0;justify-content:center}.btn{padding:14px 16px;font-size:.95rem;min-height:50px;border-radius:12px}main.container{padding-bottom:24px}body.hand-ready main.container{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.opponent-selector{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:12px;gap:10px;margin-bottom:12px}.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{font-size:.72rem;padding:6px 9px;margin-left:0}.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{min-width:596px;max-width:none;gap:2px}.preflop-legend{width:auto;margin:12px 14px 0}.footer{padding:20px 20px calc(20px + env(safe-area-inset-bottom));margin-top:20px;border-top:1px solid var(--border-color);width:100%}.install-guide{bottom:calc(86px + env(safe-area-inset-bottom))}}@media(max-width:480px){.header h1{font-size:1.5rem;flex-direction:column;gap:4px}.spade-icon{font-size:1.8rem}.header p{font-size:.8rem}.signature-name{font-size:1.42rem;min-width:7.5ch}.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{min-height:44px;border-radius:6px}.pick-card .pick-rank{font-size:.8rem}.pick-card .pick-suit{font-size:.82rem}.selected-cards{gap:6px;min-height:68px}.stage-progress{padding:8px;gap:4px}.selected-card-slot,.poker-card{width:52px;height:72px}.poker-card .rank{font-size:.9rem}.poker-card .suit{font-size:.95rem}.stage-tab{font-size:.78rem;padding:8px 4px}.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{font-size:1rem;margin-bottom:14px;align-items:center}.situation-toggle-btn{font-size:.68rem;padding:6px 8px;width:100%;justify-content:center;text-align:center}.panel-title .icon{width:28px;height:28px;font-size:.85rem}.action-buttons{grid-template-columns:minmax(0,1fr) minmax(96px,auto);gap:8px;padding:10px 12px max(10px,env(safe-area-inset-bottom))}.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{transform:scale(.92);background:var(--bg-glass-hover)}.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{animation:none!important;transition:none!important}}body.app-loading{overflow:hidden}body.app-loading .header,body.app-loading main{opacity:0;transform:translateY(18px) scale(.992);pointer-events:none}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{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top,rgba(51,136,255,.14),transparent 38%),radial-gradient(circle at bottom,rgba(0,255,102,.1),transparent 32%),linear-gradient(180deg,#09111d,#0a0e17);transition:opacity .38s ease,visibility .38s ease}.app-boot.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.app-update{position:fixed;top:max(14px,env(safe-area-inset-top));right:16px;z-index:1500;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;width:min(430px,calc(100vw - 32px));padding:14px;border:1px solid rgba(96,165,250,.38);border-radius:16px;background:#0f172af5;color:var(--text-primary);box-shadow:0 18px 48px #0000006b;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:appUpdateEnter .24s cubic-bezier(.22,1,.36,1)}.app-update[hidden]{display:none}.app-update__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#3b82f629;color:#93c5fd}.app-update__copy{min-width:0}.app-update__copy strong{display:block;font-size:.92rem;line-height:1.35}.app-update__copy p{margin:3px 0 0;color:var(--text-secondary);font-size:.78rem;line-height:1.5}.app-update__actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px}.app-update__actions button{min-height:var(--touch-target);padding:8px 14px;border-radius:10px;font:700 .82rem/1 var(--font-sans);cursor:pointer}.app-update__later{border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:var(--text-secondary)}.app-update__apply{border:1px solid rgba(147,197,253,.62);background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff}.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{position:absolute;width:52vw;height:52vw;max-width:420px;max-height:420px;border-radius:50%;background:radial-gradient(circle,rgba(255,204,0,.14) 0%,rgba(255,204,0,.04) 42%,transparent 72%);filter:blur(10px);animation:bootGlow 2.8s ease-in-out infinite}.app-boot__inner{position:relative;display:grid;gap:14px;justify-items:center;min-width:min(100%,320px);padding:32px 28px;border:1px solid rgba(255,255,255,.08);border-radius:24px;background:linear-gradient(180deg,#121826d6,#0a0e17eb);box-shadow:0 30px 80px #00000073,inset 0 1px #ffffff0d;backdrop-filter:blur(18px)}.app-boot__mark{display:grid;place-items:center;width:68px;height:68px;border-radius:20px;background:linear-gradient(135deg,#fc03,#3388ff2e);color:var(--accent-gold);font-size:2rem;box-shadow:0 12px 30px #ffcc001f;animation:bootFloat 1.9s ease-in-out infinite}.app-boot__title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.02em}.app-boot__subtitle{max-width:20rem;color:var(--text-secondary);font-size:.92rem;text-align:center}.app-boot__bar{position:relative;width:min(220px,100%);height:6px;border-radius:999px;background:#ffffff14;overflow:hidden}.app-boot__bar span{position:absolute;inset:0 auto 0 -38%;width:38%;border-radius:inherit;background:linear-gradient(90deg,#fc00,#ffcc00f2,#66aaffe6);box-shadow:0 0 18px #ffcc0059;animation:bootSweep 1.15s cubic-bezier(.4,0,.2,1) infinite}@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{transform:scale(.96);opacity:.7}50%{transform:scale(1.04);opacity:1}}@media(max-width:640px){.app-update{top:max(10px,env(safe-area-inset-top));left:10px;right:10px;width:auto;padding:12px}.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}}
