@import"https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600;700&family=Inter:wght@300;400;500;600;700;800;900&family=Outfit:wght@400;500;600;700;800&display=swap";: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: #475569;--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;--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}*{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,.preflop-cell{touch-action:manipulation}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;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}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}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .4s ease forwards}.slide-up{animation:slideUp .5s ease forwards}@keyframes countUp{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.count-animate{animation:countUp .4s cubic-bezier(.34,1.56,.64,1) forwards}.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:Outfit,sans-serif;font-size:1.15rem;font-weight:600;color:var(--text-primary);margin-bottom:20px;display:flex;align-items:center;gap:10px}.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)}.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{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)}.poker-card.mini{width:48px;height:66px;font-size:.85rem;border-radius:6px}.poker-card.mini .rank{font-size:.9rem}.poker-card.mini .suit{font-size:.95rem}.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}.suit-btn:hover{background:var(--bg-glass-hover)}.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:6px;border-radius:3px;background:#ffffff1a;outline:none}.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)}.opponent-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 0 16px #f59e0b80}.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}.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:Inter,sans-serif;display:flex;align-items:center;gap:8px;min-height:var(--touch-target)}.btn-clear-inline{padding:7px 12px;font-size:.78rem;min-height:36px}.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}#resultContent.result-enter .win-rate-display,#resultContent.result-enter .rate-bars,#resultContent.result-enter .decision-panel.visible,#resultContent.result-enter .advice-card,#resultContent.result-enter .current-hand-info,#resultContent.result-enter .hand-distribution,#resultContent.result-enter .btn-ai{opacity:0;transform:translateY(14px);animation:resultRise .36s ease forwards}#resultContent.result-enter .rate-bars{animation-delay:.06s}#resultContent.result-enter .decision-panel.visible,#resultContent.result-enter .advice-card{animation-delay:.12s}#resultContent.result-enter .current-hand-info,#resultContent.result-enter .hand-distribution{animation-delay:.18s}#resultContent.result-enter .btn-ai{animation-delay:.22s}@keyframes resultRise{to{opacity:1;transform:translateY(0)}}.result-empty{text-align:center;padding:60px 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}.win-rate-display{text-align:center;padding:24px 0;margin-bottom:20px;position:relative}.win-rate-number{font-family:Outfit,sans-serif;font-size:4.8rem;font-weight:900;line-height:1;margin-bottom:8px;transition:all .5s ease;text-shadow:0 0 30px currentColor}.win-rate-number.excellent{color:var(--accent-green)}.win-rate-number.good{color:var(--accent-green-light)}.win-rate-number.medium{color:var(--accent-gold)}.win-rate-number.weak{color:var(--accent-red-light)}.win-rate-number.bad{color:var(--accent-red)}.win-rate-label{font-size:.9rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:2px}.rate-bars{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.rate-bar{display:flex;align-items:center;gap:12px}.rate-bar-label{font-size:.8rem;color:var(--text-secondary);width:32px;text-align:right;font-weight:600}.rate-bar-track{flex:1;height:8px;background:#ffffff0a;border-radius:4px;overflow:hidden;box-shadow:inset 0 1px 3px #00000080}.rate-bar-fill{height:100%;border-radius:4px;transition:width .8s cubic-bezier(.25,.46,.45,.94);min-width:4px;position:relative}.rate-bar-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:barShine 2s infinite linear}@keyframes barShine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.rate-bar-fill.win{background:linear-gradient(90deg,#00b347,var(--accent-green));box-shadow:0 0 10px var(--accent-green)}.rate-bar-fill.tie{background:linear-gradient(90deg,#2266cc,var(--accent-blue));box-shadow:0 0 10px var(--accent-blue)}.rate-bar-fill.lose{background:linear-gradient(90deg,#cc1144,var(--accent-red));box-shadow:0 0 10px var(--accent-red)}.rate-bar-value{font-size:.85rem;font-weight:600;min-width:48px;text-align:left}.rate-bar-value.win{color:var(--accent-green)}.rate-bar-value.tie{color:var(--accent-blue)}.rate-bar-value.lose{color:var(--accent-red)}.decision-panel{display:none;padding:18px;border-radius:var(--radius-md);margin-bottom:20px;background:linear-gradient(135deg,#ffcc0024,#3388ff14),#ffffff05;border:1px solid rgba(255,204,0,.18);box-shadow:0 10px 30px #00000038}.decision-panel.visible{display:block}.decision-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;color:var(--accent-gold);font-weight:700;margin-bottom:8px}.decision-action{font-family:Outfit,sans-serif;font-size:1.35rem;font-weight:700;color:var(--text-primary);margin-bottom:6px}.decision-summary{font-size:.84rem;color:var(--text-secondary);line-height:1.6}.decision-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.decision-metric{padding:12px;border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid rgba(255,255,255,.05)}.decision-metric span{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:6px}.decision-metric strong{display:block;font-size:1rem;font-weight:700;color:var(--text-primary)}.decision-note{margin-top:14px;font-size:.82rem;color:var(--text-secondary);line-height:1.65}.advice-card{padding:16px;border-radius:var(--radius-md);margin-bottom:20px;display:flex;align-items:center;gap:12px;transition:var(--transition)}.advice-card.excellent{background:#10b9811a;border:1px solid rgba(16,185,129,.2)}.advice-card.good{background:#34d3991a;border:1px solid rgba(52,211,153,.2)}.advice-card.medium{background:#f59e0b1a;border:1px solid rgba(245,158,11,.2)}.advice-card.weak{background:#f871711a;border:1px solid rgba(248,113,113,.2)}.advice-card.bad{background:#ef44441a;border:1px solid rgba(239,68,68,.2)}.advice-emoji{font-size:1.5rem}.advice-text{font-size:.9rem;font-weight:500;color:var(--text-primary)}.current-hand-info{padding:16px;background:var(--bg-glass);border-radius:var(--radius-md);margin-bottom:20px}.current-hand-label{font-size:.8rem;color:var(--text-muted);margin-bottom:6px;font-weight:500}.current-hand-name{font-size:1.2rem;font-weight:700;color:var(--accent-gold)}.current-hand-name-en{font-size:.8rem;color:var(--text-muted);margin-top:2px}.hand-distribution{margin-top:16px}.hand-dist-title{font-size:.85rem;color:var(--text-secondary);margin-bottom:12px;font-weight:500}.hand-dist-item{display:flex;align-items:center;gap:10px;padding:6px 0}.hand-dist-name{font-size:.78rem;color:var(--text-secondary);width:80px;text-align:right}.hand-dist-bar{flex:1;height:6px;background:#ffffff0a;border-radius:3px;overflow:hidden}.hand-dist-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent-gold),var(--accent-gold-light));transition:width .6s ease}.hand-dist-pct{font-size:.75rem;color:var(--text-muted);width:40px;text-align:right;font-weight:500}.preflop-section{margin-bottom:32px}.preflop-grid-wrapper{overflow-x:auto;padding:4px}.preflop-grid{display:grid;grid-template-columns:repeat(13,1fr);gap:3px;min-width:600px}.preflop-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;font-size:.7rem;font-weight:600;cursor:pointer;transition:var(--transition);position:relative;border:1px solid transparent}.preflop-cell:hover{transform:scale(1.15);z-index:10;box-shadow:var(--shadow-md);border-color:#ffffff4d}.preflop-cell .cell-label{font-size:.68rem;font-weight:700;line-height:1}.preflop-cell .cell-rate{font-size:.55rem;opacity:.8;line-height:1;margin-top:2px}.preflop-cell.tier-1{background:#10b98199;color:#fff}.preflop-cell.tier-2{background:#10b98159;color:#d1fae5}.preflop-cell.tier-3{background:#34d39933;color:#a7f3d0}.preflop-cell.tier-4{background:#f59e0b40;color:#fde68a}.preflop-cell.tier-5{background:#f59e0b1f;color:#fcd34d}.preflop-cell.tier-6{background:#ef44441f;color:#fca5a5}.preflop-cell.tier-7{background:#ef44440f;color:#94a3b8}.preflop-cell.pair{border-left:2px solid rgba(245,158,11,.4)}.legend{display:flex;align-items:center;gap:16px;margin-top:16px;flex-wrap:wrap;justify-content:center}.legend-item{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-muted)}.legend-color{width:14px;height:14px;border-radius:3px}.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)}}.tooltip{position:fixed;background:#0f172af2;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);padding:10px 14px;font-size:.8rem;color:var(--text-primary);pointer-events:none;z-index:900;backdrop-filter:blur(10px);box-shadow:var(--shadow-lg);transition:opacity .15s,transform .15s;max-width:200px;animation:fadeSlideUp .2s cubic-bezier(.34,1.56,.64,1)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tooltip .tt-hand{font-weight:700;font-size:.9rem}.tooltip .tt-rate{color:var(--accent-gold);font-weight:600;margin-top:4px}.tooltip .tt-type{color:var(--text-muted);font-size:.72rem;margin-top:2px}.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(0,0,0,.2);border-top-color:#000;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.calculating{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:12px;padding:22px 8px;color:var(--text-secondary);font-size:.9rem}.calculating .progress-text{text-align:center;color:var(--accent-gold);font-size:.9rem;font-weight:600}.skeleton-shell{border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md);background:#ffffff05;padding:16px;display:flex;flex-direction:column;gap:12px}.skeleton{border-radius:8px;position:relative;overflow:hidden;background:#94a3b81f}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);animation:skeletonShimmer 1.35s infinite}.skeleton-rate{height:64px;width:42%;align-self:center}.skeleton-bars{display:flex;flex-direction:column;gap:10px}.skeleton-bar{height:11px;width:100%}.skeleton-card{height:44px;width:100%}@keyframes skeletonShimmer{to{transform:translate(100%)}}.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:40px;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:Inter,system-ui,sans-serif;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:Outfit,sans-serif;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:Dancing Script,Brush Script MT,cursive;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:Inter,sans-serif}.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:.7}.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}@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(8,1fr);width:100%;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:32px;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-layout{padding-bottom:24px;transition:padding-bottom .25s ease}body.hand-ready .main-layout{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:8px}.opponent-slider::-webkit-slider-thumb{width:28px;height:28px}.win-rate-number{font-size:3.2rem}.win-rate-display{padding:16px 0;margin-bottom:12px}.rate-bars{gap:10px;margin-bottom:16px}.decision-panel{padding:14px;margin-bottom:16px}.decision-metrics{grid-template-columns:1fr 1fr;gap:8px}.decision-action{font-size:1.15rem}.preflop-section.panel{padding:14px 4px}.panel-title{padding:0 10px}.preflop-grid-wrapper{padding:4px 10px 10px;overflow-x:hidden}.preflop-grid{min-width:unset;gap:2px}.preflop-cell{font-size:.6rem;border-radius:4px}.preflop-cell .cell-rate{display:none}.preflop-cell .cell-label{font-size:.55rem}.legend{justify-content:flex-start;flex-wrap:wrap;overflow:visible;gap:8px;padding:0 10px 4px}.legend-item{font-size:.68rem;white-space:normal}.footer{padding:24px 20px calc(80px + env(safe-area-inset-bottom));margin-top:24px;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}.win-rate-number{font-size:2.8rem}.rate-bar-label{font-size:.72rem;width:24px}.rate-bar-value{font-size:.78rem;min-width:40px}.advice-card{padding:12px;gap:8px}.advice-emoji{font-size:1.2rem}.advice-text{font-size:.82rem}.current-hand-info{padding:12px}.current-hand-name{font-size:1.05rem}.hand-dist-name{width:65px;font-size:.72rem}.hand-dist-pct{font-size:.68rem;width:35px}.preflop-cell{font-size:.5rem}.preflop-cell .cell-label{font-size:.48rem}.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:1fr;gap:10px;padding:10px 12px max(10px,env(safe-area-inset-bottom))}.btn{width:100%}.legend{padding:0 4px 4px}}@media(max-width:360px){.card-picker-grid{grid-template-columns:repeat(6,1fr)}}@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{transform:none}.preflop-cell:hover{transform:none;box-shadow:none}.selected-card-slot.filled:hover{transform:none}.pick-card:active{transform:scale(.92);background:var(--bg-glass-hover)}.preflop-cell:active{transform:scale(.95);opacity:.8}.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,.rate-bar-fill,.win-rate-number,.advice-card,.ai-panel,.btn-ai:after{animation:none!important;transition:none!important}}.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}.ai-panel-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);z-index:998;animation:fadeInSimple .25s ease}@keyframes fadeInSimple{0%{opacity:0}to{opacity:1}}.ai-panel{position:fixed;bottom:0;left:0;right:0;max-height:min(82vh,82dvh);background:linear-gradient(180deg,#1a1f36,#0f1225);border-top-left-radius:20px;border-top-right-radius:20px;z-index:999;display:flex;flex-direction:column;box-shadow:0 -10px 50px #6366f14d;border-top:1px solid rgba(139,92,246,.4);animation:aiPanelSlideUp .35s cubic-bezier(.34,1.56,.64,1)}@keyframes aiPanelSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:769px){.ai-panel{left:50%;transform:translate(-50%);max-width:680px;bottom:20px;border-radius:16px;max-height:70vh;border:1px solid rgba(139,92,246,.4)}@keyframes aiPanelSlideUp{0%{transform:translate(-50%) translateY(30px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}}.ai-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.ai-panel-title{display:flex;align-items:center;gap:10px;min-width:0}.ai-avatar{font-size:1.6rem;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:12px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #6366f166}.ai-panel-title strong{display:block;font-size:1rem;color:#fff}.ai-subtitle{display:block;font-size:.72rem;color:#8b5cf6cc;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-close-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);width:36px;height:36px;border-radius:10px;font-size:1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.ai-close-btn:hover{background:#ef444433;color:#ef4444}.ai-panel-body{padding:20px;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}.ai-message{font-size:.92rem;line-height:1.8;color:var(--text-secondary)}.ai-content{display:none}.ai-content.visible{display:block;animation:fadeInSimple .3s ease}.ai-content h3,.ai-content h4{color:#a78bfa;margin:16px 0 8px;font-size:1rem}.ai-content p{margin:8px 0}.ai-content strong{color:#e2e8f0}.ai-content ul,.ai-content ol{padding-left:20px;margin:8px 0}.ai-content li{margin:4px 0}.ai-content code{background:#8b5cf626;padding:2px 6px;border-radius:4px;font-size:.85em;color:#c4b5fd}.ai-content blockquote{border-left:3px solid #6366f1;padding-left:12px;margin:12px 0;color:var(--text-muted);font-style:italic}.ai-typing{display:block;padding:4px 0 10px}.ai-waiting-card{position:relative;display:grid;gap:14px;padding:16px;border-radius:18px;border:1px solid rgba(139,92,246,.22);background:radial-gradient(circle at top right,rgba(168,85,247,.16),transparent 36%),linear-gradient(180deg,#202646f5,#12172bfa);box-shadow:inset 0 1px #ffffff0a,0 16px 40px #060a1857;overflow:hidden}.ai-waiting-card:after{content:"";position:absolute;inset:-40% auto auto -30%;width:70%;height:180%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);transform:rotate(18deg);animation:aiWaitingSweep 2.8s ease-in-out infinite}.ai-waiting-orb{width:52px;height:52px;border-radius:16px;color:#f5f3ff;background:linear-gradient(135deg,#6366f1,#8b5cf6 55%,#c084fc);box-shadow:0 12px 30px #8b5cf652;animation:aiWaitingPulse 1.9s ease-in-out infinite}.ai-waiting-copy{display:grid;gap:6px}.ai-waiting-copy strong{font-size:1rem;color:#f8fafc;letter-spacing:.01em}.ai-waiting-copy span{color:#e2e8f0b8;font-size:.88rem;line-height:1.6}.ai-waiting-dots{display:flex;gap:7px;align-items:center;padding-top:2px}.ai-waiting-dots span{width:8px;height:8px;border-radius:999px;background:linear-gradient(180deg,#c4b5fd,#8b5cf6);box-shadow:0 0 12px #8b5cf673;animation:typingDot 1.15s ease-in-out infinite}.ai-waiting-bars{display:grid;gap:8px}.ai-waiting-bars span{display:block;height:10px;border-radius:999px;background:linear-gradient(90deg,#94a3b81f,#c4b5fd57,#94a3b81f);background-size:180% 100%;animation:aiWaitingBar 1.6s ease-in-out infinite}.ai-waiting-bars span:nth-child(1){width:76%}.ai-waiting-bars span:nth-child(2){width:92%;animation-delay:.18s}.ai-waiting-bars span:nth-child(3){width:64%;animation-delay:.36s}.ai-waiting-dots span:nth-child(2){animation-delay:.2s}.ai-waiting-dots span:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{transform:scale(.6);opacity:.3}30%{transform:scale(1);opacity:1}}@keyframes aiWaitingPulse{0%,to{transform:translateY(0) scale(1);box-shadow:0 12px 30px #8b5cf647}50%{transform:translateY(-2px) scale(1.03);box-shadow:0 18px 36px #6366f161}}@keyframes aiWaitingBar{0%{background-position:100% 50%;opacity:.55}50%{background-position:0% 50%;opacity:1}to{background-position:100% 50%;opacity:.55}}@keyframes aiWaitingSweep{0%{transform:translate(-120%) rotate(18deg);opacity:0}20%{opacity:1}to{transform:translate(240%) rotate(18deg);opacity:0}}.ai-typing.hidden{display:none}@media(max-width:768px){.ai-panel{max-height:min(84vh,84dvh);padding-bottom:env(safe-area-inset-bottom)}.ai-panel-header{padding:14px 16px 12px}.ai-panel-body{padding:16px 16px max(18px,env(safe-area-inset-bottom))}}@media(max-width:480px){.btn-ai{margin-top:14px;padding:13px 16px;font-size:.95rem}.btn-ai .ai-badge{display:none}.ai-avatar{width:40px;height:40px;font-size:1.45rem}.ai-panel-title strong{font-size:.96rem}.ai-subtitle{font-size:.68rem}.ai-close-btn{width:40px;height:40px;flex-shrink:0}.ai-message{font-size:.88rem;line-height:1.75}.ai-waiting-card{padding:14px;gap:12px;border-radius:16px}.ai-waiting-orb{width:48px;height:48px;border-radius:14px}.ai-waiting-copy strong{font-size:.95rem}.ai-waiting-copy span{font-size:.82rem}.ai-waiting-bars span{height:9px}}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-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:Outfit,Inter,sans-serif;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-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{transition:none}.app-boot__glow,.app-boot__mark,.app-boot__bar span{animation:none}}.scanner-modal{position:fixed;inset:0;z-index:3200;width:100vw;height:100vh;margin:0;padding:0;border:none;background:var(--bg-primary, #0a0e17);flex-direction:column}.scanner-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--bg-secondary, #121826);border-bottom:1px solid var(--border-color)}.scanner-header h3{margin:0;font-size:1.1rem;color:var(--text-primary);font-weight:500}.btn-close-scanner{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;line-height:1;padding:4px}.scanner-body{flex:1;display:flex;flex-direction:column;position:relative;background:#000}.video-container{flex:1;position:relative;overflow:hidden;background:#000;display:flex;justify-content:center;align-items:center}#scannerVideo{width:100%;height:100%;object-fit:contain}.scanner-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;pointer-events:none}.scanner-frame{width:85%;height:60%;max-width:400px;max-height:400px;border:2px solid rgba(16,185,129,.8);border-radius:12px;box-shadow:0 0 0 4000px #0006;position:relative}.scanner-frame:after{content:"\5c06\6251\514b\724c\5bf9\51c6\6b64\6846";position:absolute;bottom:20px;left:0;width:100%;text-align:center;color:#ffffffb3;font-size:.9rem;letter-spacing:1px}.scanner-controls{padding:24px;background:var(--bg-card);display:flex;flex-direction:column;gap:16px;align-items:center;border-top:1px solid var(--border-color)}.btn-scan-capture{width:100%;max-width:320px;padding:14px;font-size:1.1rem;border-radius:20px}.scanner-status{color:var(--text-secondary);font-size:.9rem;text-align:center;min-height:1.5rem}.btn-scan-pill{margin-left:auto;flex-shrink:0;border:1px solid rgba(59,130,246,.35);background:#3b82f61a;color:var(--accent-blue);font-size:.76rem;font-weight:600;padding:7px 12px;border-radius:999px;cursor:pointer;transition:var(--transition);white-space:nowrap;display:flex;align-items:center;gap:4px}.btn-scan-pill:hover{background:#3b82f62e;border-color:#3b82f68c;color:#60a5fa}.btn-scan-pill:active{transform:scale(.95)}
