:root{--bg-main:#0b0f19;--bg-card:#151d30;--bg-card-hover:#1c263e;--border-color:#94a3b82e;--text-main:#f8fafc;--text-muted:#94a3b8;--color-gold:#e8b84b;--color-gold-light:#f5d17a;--accent-cyan:#9455f4;--accent-cyan-dark:#7c3aed;--accent-violet:#7c3aed;--accent-violet-light:#9455f4;--color-ontime:#10b981;--color-early:#f59e0b;--color-late:#f97316;--color-miss:#ef4444;--font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-heading:"Poppins", "Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}.ui-icon{vertical-align:middle;flex-shrink:0;display:inline-block}html,body{background-color:var(--bg-main);color:var(--text-main);font-family:var(--font-family);touch-action:manipulation;flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}.app-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);z-index:10;background:#0f172ad9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.brand{align-items:center;gap:.75rem;display:flex}.brand-logo{object-fit:contain;width:auto;height:36px;display:block}.brand-icon{background:linear-gradient(135deg,#9455f4,#7c3aed);border-radius:8px;padding:.2rem .5rem;font-size:1.6rem;display:inline-block}.brand-info h1{letter-spacing:-.01em;font-size:1.15rem;font-weight:700;font-family:var(--font-heading);color:var(--color-gold)}.brand-info p{color:var(--text-muted);font-size:.75rem}.nav-tabs{border:1px solid var(--border-color);background:#0f172a;border-radius:10px;align-items:center;gap:.2rem;padding:.25rem;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:.45rem .9rem;font-size:.85rem;font-weight:600;transition:all .2s}.tab-btn.active{background:var(--bg-card);color:var(--accent-cyan);box-shadow:0 2px 8px #0006}.tab-btn.btn-config-tab{color:#c4b5fd;background:linear-gradient(135deg,#7c3aed33,#7c3aed4d);border:1px solid #7c3aed80;margin-left:.35rem;font-weight:700;box-shadow:0 1px 8px #7c3aed38}.tab-btn.btn-config-tab:hover{color:#fff;background:linear-gradient(135deg,#7c3aed59,#7c3aed85);border-color:#9455f4;transform:translateY(-1px);box-shadow:0 0 14px #7c3aed80}.tab-text-short{display:none}.tab-text-full{display:inline}.header-actions{align-items:center;gap:.75rem;display:flex}.tempo-pill{border:1px solid var(--border-color);color:var(--accent-cyan);font-variant-numeric:tabular-nums;letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none;background:#0f172a;border-radius:20px;align-items:center;padding:.38rem .85rem;font-size:.88rem;font-weight:700;transition:all .18s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 1px 4px #0000004d}.tempo-pill:hover{color:#c4b5fd;background:#172033;border-color:#9455f499;transform:translateY(-1px);box-shadow:0 0 14px #7c3aed4d}.tempo-pill:active{background:#7c3aed33;transform:translateY(0)}.btn-config-main{color:#f8fafc;cursor:pointer;background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid #7c3aed59;border-radius:10px;align-items:center;gap:.4rem;padding:.42rem .95rem;font-size:.85rem;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 2px 8px #0006}.btn-config-main:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);background:linear-gradient(135deg,#27354f,#1e293b);transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed40}.header-controls{align-items:center;gap:1rem;display:flex}.tempo-box{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;align-items:center;gap:.5rem;padding:.35rem .75rem;display:flex}.tempo-box label{color:var(--text-muted);text-transform:uppercase;font-size:.75rem;font-weight:600}.tempo-stepper{align-items:center;gap:.3rem;display:flex}.btn-step{border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;background:#1e293b;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:.9rem;font-weight:700;transition:background .15s;display:flex}.btn-step:hover{background:#334155}.tempo-val{color:var(--accent-cyan);text-align:center;font-variant-numeric:tabular-nums;min-width:38px;font-size:1.05rem;font-weight:800}.tempo-slider{width:80px;accent-color:var(--accent-cyan);cursor:pointer}.btn-subdivision-toggle{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:.45rem;padding:.45rem .8rem;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.btn-subdivision-toggle:hover{color:#e2e8f0;background:#1e293b;border-color:#7c3aed80}.btn-subdivision-toggle.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#7c3aed26;box-shadow:0 0 12px #7c3aed4d}.subdiv-icon{font-size:1rem;font-weight:800}.btn-mic-toggle{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .8rem;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.btn-mic-toggle.active{border-color:var(--color-ontime);color:var(--color-ontime);background:#10b98126}.midi-status-badge{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);white-space:nowrap;border-radius:8px;align-items:center;gap:.45rem;padding:.45rem .8rem;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.midi-status-badge.connected{color:var(--accent-cyan);background:#7c3aed1f;border-color:#7c3aed99}.midi-status-badge.target-hit{border-color:var(--color-ontime);color:var(--color-ontime);background:#10b98140;transform:scale(1.04);box-shadow:0 0 12px #10b98199}.midi-status-badge.wrong-note{border-color:var(--color-early);color:var(--color-early);background:#f59e0b26}.main-content{flex-direction:column;flex:1;gap:1rem;width:100%;max-width:1200px;margin:0 auto;padding:1rem 1.25rem;display:flex}.status-bar{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.level-indicator h2{font-size:1.05rem;font-weight:700;font-family:var(--font-heading);color:var(--color-gold)}.level-dropdown{border:1px solid var(--border-color);color:var(--accent-cyan);cursor:pointer;background:#1e293b;border-radius:6px;outline:none;padding:.25rem .5rem;font-size:.8rem;font-weight:700;transition:all .15s}.level-dropdown:hover,.level-dropdown:focus{border-color:var(--accent-cyan);background:#27354f}.level-indicator p{color:var(--text-muted);font-size:.8rem}.measure-counter{flex-direction:column;align-items:center;display:flex}.measure-badge{text-transform:uppercase;color:var(--text-muted);font-size:.75rem;font-weight:600}.measure-text{color:var(--text-main);letter-spacing:.02em;font-size:1.25rem;font-weight:800}.beat-dots{align-items:center;gap:.5rem;display:flex}.beat-dot{border:1px solid var(--border-color);width:32px;height:32px;color:var(--text-muted);background:#1e293b;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;transition:all .1s;display:flex}.beat-dot.accent-dot{border-color:#7c3aed66}.beat-dot.pulsing{background:var(--accent-cyan);color:#0b0f19;transform:scale(1.15);box-shadow:0 0 16px #7c3aedcc}.beat-dot.pulsing.accent-dot{background:#9455f4;box-shadow:0 0 20px #7c3aed}.streak-counter{color:var(--color-ontime);text-align:right;min-width:90px;font-size:.85rem;font-weight:700}.highway-wrapper{background:#000;border:1px solid #7c3aed59;border-radius:16px;align-items:center;height:200px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 35px #000c,0 8px 30px #00000080}#rhythm-canvas{width:100%;height:100%;display:block}.mic-monitor-bar{background:#1e293bb3;border:1px dashed #f59e0b66;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 1rem;font-size:.8rem;display:flex}.mic-warning{color:#fbbf24;align-items:center;gap:.4rem;display:flex}.mic-meter-controls{align-items:center;gap:.75rem;display:flex}.vu-meter-track{border:1px solid var(--border-color);background:#0f172a;border-radius:4px;width:90px;height:8px;overflow:hidden}.vu-meter-fill{background:linear-gradient(90deg,#10b981,#f59e0b,#ef4444);width:0%;height:100%;transition:width 50ms linear}.play-controls{justify-content:center;align-items:center;gap:1rem;display:flex}.btn-main-action{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:12px;align-items:center;gap:.5rem;padding:.85rem 2rem;font-size:1.05rem;font-weight:700;transition:all .2s;display:flex;box-shadow:0 4px 15px #2563eb66}.btn-main-action:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2563eb99}.btn-main-action:active{transform:translateY(0)}.btn-stop-action{color:#f87171;cursor:pointer;background:#1e293b;border:1.5px solid #ef444473;border-radius:12px;align-items:center;gap:.5rem;padding:.85rem 1.6rem;font-size:1.05rem;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.btn-stop-action:hover:not(:disabled){color:#fca5a5;background:#ef44442e;border-color:#ef4444;transform:translateY(-2px);box-shadow:0 4px 14px #ef444459}.btn-stop-action:active:not(:disabled){transform:translateY(0)}.btn-stop-action:disabled{opacity:.35;cursor:not-allowed;border-color:var(--border-color);color:var(--text-muted)}.tactile-pad-wrapper{touch-action:none;flex-direction:column;gap:.5rem;margin-top:auto;display:flex}.tactile-pad{border:2px solid var(--accent-cyan);color:var(--text-main);cursor:pointer;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:linear-gradient(#1e293b,#0f172a);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;padding:1.5rem 1rem;transition:all 60ms;display:flex;box-shadow:0 8px 24px #0009,inset 0 2px 4px #ffffff1a}.tactile-pad:hover{background:linear-gradient(#24324a,#131c33)}.tactile-pad.active,.tactile-pad:active{background:linear-gradient(#7c3aed,#5b21b6);border-color:#ddd6fe;transform:scale(.985);box-shadow:0 0 30px #7c3aedcc,inset 0 4px 12px #0006}.tactile-pad-icon{font-size:2.2rem}.tactile-pad-text{letter-spacing:.05em;text-transform:uppercase;font-size:1.25rem;font-weight:800}.tactile-pad.is-idle{border-color:var(--color-gold)}.tactile-pad.is-running{border-color:var(--accent-cyan)}.sheet-backdrop{display:none!important}.btn-close-sheet{display:none}.practice-selector{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;flex-direction:column;gap:1.25rem;padding:1.25rem;display:flex}.practice-selector-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.practice-selector-header h3{font-size:1.05rem;font-weight:700;font-family:var(--font-heading);color:var(--color-gold)}.practice-selector-subtitle{color:var(--text-muted);margin-top:.15rem;font-size:.78rem}.quick-filter-btns{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.patterns-group-container{border:1px solid var(--border-color);background:#0f172aa6;border-radius:12px;flex-direction:column;gap:.85rem;padding:1rem;display:flex}.group-header{border-bottom:1px solid #94a3b81f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-bottom:.55rem;display:flex}.group-header-info{align-items:center;gap:.5rem;line-height:1.2;display:flex}.group-icon{flex-shrink:0;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:1.15rem;line-height:1;display:inline-flex}.group-title{font-size:.95rem;font-weight:700;font-family:var(--font-heading);color:var(--color-gold);line-height:1.2}.group-count{color:var(--accent-cyan);background:#7c3aed1f;border:1px solid #7c3aed40;border-radius:6px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.btn-group-toggle{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:#1e293b;border-radius:6px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;transition:all .15s}.btn-group-toggle:hover{color:#f8fafc;background:#27354f;border-color:#7c3aed80}.patterns-subgroup-wrap{flex-direction:column;gap:.5rem;display:flex}.subgroup-title{color:#f1f5f9;border-left:3px solid #7c3aed;align-items:center;gap:.5rem;padding:.15rem .25rem .15rem .5rem;font-size:.8rem;font-weight:700;display:flex}.subgroup-desc{color:#94a3b8;font-size:.72rem;font-weight:400}.patterns-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.6rem;display:grid}.pattern-card{border:2px solid var(--border-color);cursor:pointer;background:#0f172a;border-radius:12px;justify-content:center;align-items:center;height:84px;min-height:80px;padding:.5rem .35rem;transition:all .18s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.pattern-card:hover{background:#172033;border-color:#7c3aed80;transform:translateY(-2px)}.pattern-card.selected{border-color:var(--accent-cyan);background:#7c3aed14;box-shadow:0 0 12px #7c3aed40}.pattern-svg-wrap{justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:visible}.pattern-card svg,.pattern-svg-wrap svg{color:#f8fafc;width:auto;max-width:100%;height:62px;max-height:100%;transition:color .15s;display:block}.pattern-card.selected svg{color:var(--accent-cyan)}.pattern-name{text-align:center;color:#f8fafc;font-size:.72rem;font-weight:700}.pattern-badge{color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;background:#94a3b81f;border-radius:4px;padding:.06rem .35rem;font-size:.56rem;font-weight:700}.pattern-card.selected .pattern-badge{color:var(--accent-cyan);background:#7c3aed26}.pattern-desc{color:var(--text-muted);text-align:center;font-size:.58rem;line-height:1.15}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#0b0f19d9;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.report-card{background:#141c2e;border:1px solid #7c3aed4d;border-radius:20px;flex-direction:column;gap:1.5rem;width:100%;max-width:580px;padding:2rem;display:flex;box-shadow:0 20px 50px #000c,0 0 30px #7c3aed26}.report-header{text-align:center;flex-direction:column;align-items:center;gap:.5rem;width:100%;display:flex}.report-header-top{justify-content:space-between;align-items:center;width:100%;display:flex}.report-badge{color:var(--accent-cyan);text-transform:uppercase;background:#7c3aed26;border-radius:20px;padding:.25rem .75rem;font-size:.75rem;font-weight:700}.report-header h2{font-size:1.45rem;font-weight:800;font-family:var(--font-heading);color:var(--color-gold)}.star-rating{letter-spacing:.2rem;font-size:2.2rem}.score-summary{border:1px solid var(--border-color);background:#0d1322;border-radius:14px;justify-content:space-around;align-items:center;padding:1.25rem;display:flex}.score-circle{flex-direction:column;align-items:center;display:flex}.score-number{color:var(--color-ontime);font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:900}.score-label{color:var(--text-muted);text-transform:uppercase;font-size:.75rem;font-weight:600}.score-meta{color:var(--text-muted);flex-direction:column;gap:.4rem;font-size:.85rem;display:flex}.score-meta strong{color:var(--text-main)}.diagnostic-section{flex-direction:column;gap:.75rem;display:flex}.diagnostic-section h3{font-size:.95rem;font-weight:700;font-family:var(--font-heading);color:var(--color-gold)}.tendency-bar{border:1px solid var(--border-color);background:#0f172a;border-radius:8px;height:16px;display:flex;overflow:hidden}.bar-segment{height:100%;transition:width .6s}.bar-ontime{background-color:var(--color-ontime)}.bar-early{background-color:var(--color-early)}.bar-late{background-color:var(--color-late)}.bar-miss{background-color:var(--color-miss)}.tendency-legend{color:var(--text-muted);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem;font-size:.78rem;display:grid}.legend-item{align-items:center;gap:.4rem;display:flex}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.dot-ontime{background:var(--color-ontime)}.dot-early{background:var(--color-early)}.dot-late{background:var(--color-late)}.dot-miss{background:var(--color-miss)}.pedagogical-box{color:#e2e8f0;background:#7c3aed14;border:1px solid #7c3aed33;border-radius:12px;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;font-size:.85rem;line-height:1.45;display:flex}.pedagogical-icon{flex-shrink:0;font-size:1.25rem}.report-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.btn{cursor:pointer;border:none;border-radius:10px;padding:.7rem 1.25rem;font-size:.9rem;font-weight:700;transition:all .15s}.btn-primary{color:#fff;background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 4px 12px #2563eb66}.btn-primary:hover{transform:translateY(-2px)}.btn-secondary{color:var(--text-main);border:1px solid var(--border-color);background:#1e293b}.btn-secondary:hover{background:#334155}@keyframes popIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.animate-pop{animation:.25s cubic-bezier(.16,1,.3,1) forwards popIn}.btn-settings-toggle{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .8rem;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.config-modal-card{background:#0f172a;border:1px solid #7c3aed47;border-radius:16px;flex-direction:column;gap:.85rem;width:92%;max-width:440px;padding:1.15rem 1.35rem;display:flex;box-shadow:0 25px 60px -15px #000000d9,0 0 25px #7c3aed1f}.cfg-header{border-bottom:1px solid #94a3b81f;justify-content:space-between;align-items:center;padding-bottom:.65rem;display:flex}.cfg-title-wrap{align-items:center;gap:.5rem;display:flex}.cfg-title-icon{font-size:1.25rem}.cfg-title{font-size:1.05rem;font-weight:700;font-family:var(--font-heading);color:var(--color-gold);letter-spacing:-.01em}.cfg-body{flex-direction:column;gap:.65rem;display:flex}.cfg-block{border:1px solid var(--border-color);background:#151d30;border-radius:12px;flex-direction:column;gap:.5rem;padding:.7rem .85rem;display:flex}.cfg-block.cfg-row{flex-direction:row;justify-content:space-between;align-items:center;padding:.6rem .85rem}.cfg-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.cfg-label{color:#e2e8f0;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;display:flex}.cfg-tempo-bar{justify-content:space-between;align-items:center;width:100%;display:flex}.cfg-tempo-stepper{align-items:center;gap:.4rem;display:flex}.cfg-btn-step{border:1px solid var(--border-color);color:#cbd5e1;cursor:pointer;background:#1e293b;border-radius:6px;padding:.25rem .55rem;font-size:.75rem;font-weight:700;transition:all .15s}.cfg-btn-step:hover{color:var(--accent-cyan);border-color:var(--accent-cyan);background:#334155}.cfg-tempo-readout{justify-content:center;align-items:baseline;gap:.2rem;min-width:68px;display:flex}.cfg-tempo-readout span:first-child{color:var(--accent-cyan);font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800;line-height:1}.cfg-bpm-unit{color:var(--text-muted);font-size:.7rem;font-weight:600}.cfg-slider-line{align-items:center;width:100%;padding:.15rem 0;display:flex}.cfg-slider{width:100%;accent-color:var(--accent-cyan);cursor:pointer;height:4px}.cfg-slider-sm{max-width:130px;height:4px}.cfg-toggle-pill{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:#1e293b;border-radius:20px;padding:.35rem .8rem;font-size:.78rem;font-weight:600;transition:all .15s}.cfg-toggle-pill:hover{color:#f8fafc;background:#27354f}.cfg-toggle-pill.active{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#7c3aed26;box-shadow:0 0 10px #7c3aed40}.cfg-device-label{color:#cbd5e1;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;display:flex}.cfg-mic-subpanel{background:#0b0f19a6;border:1px dashed #94a3b833;border-radius:8px;flex-direction:column;gap:.45rem;margin-top:.25rem;padding:.5rem .65rem;display:flex}.cfg-meter-row,.cfg-sens-row{align-items:center;gap:.6rem;display:flex}.cfg-subtext{color:var(--text-muted);min-width:65px;font-size:.72rem}.cfg-vu-track{border:1px solid var(--border-color);background:#0b0f19;border-radius:3px;flex:1;height:6px;overflow:hidden}.cfg-vu-fill{background:linear-gradient(90deg,#10b981,#f59e0b,#ef4444);width:0%;height:100%;transition:width 50ms linear}.cfg-sens-pct{color:var(--accent-cyan);text-align:right;font-variant-numeric:tabular-nums;min-width:32px;font-size:.72rem;font-weight:700}.cfg-midi-badge{color:var(--text-muted);border:1px solid var(--border-color);text-overflow:ellipsis;white-space:nowrap;background:#1e293b;border-radius:6px;max-width:180px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;overflow:hidden}.cfg-midi-badge.connected{color:var(--accent-cyan);background:#7c3aed1f;border-color:#7c3aed80}.cfg-btn-action{border:1px solid var(--border-color);color:#e2e8f0;cursor:pointer;background:#1e293b;border-radius:6px;padding:.28rem .75rem;font-size:.75rem;font-weight:600;transition:all .15s}.cfg-btn-action:hover{color:var(--accent-cyan);border-color:var(--accent-cyan);background:#27354f}.cfg-footer{border-top:1px solid #94a3b81a;justify-content:flex-end;padding-top:.4rem;display:flex}.btn-cfg-done{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:8px;padding:.45rem 1.4rem;font-size:.85rem;font-weight:700;transition:all .15s;box-shadow:0 2px 8px #2563eb59}.btn-cfg-done:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb80}.auth-backdrop{-webkit-backdrop-filter:blur(10px);z-index:2000;background:#050812f0;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.auth-modal-card{text-align:center;background:#0f172a;border:1px solid #7c3aed73;border-radius:20px;width:100%;max-width:440px;padding:2.2rem 1.85rem;position:relative;overflow:hidden;box-shadow:0 25px 60px #000c,0 0 35px #7c3aed40}.auth-lock-circle{color:#a78bfa;background:#7c3aed26;border:1.5px solid #7c3aed80;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 1.1rem;display:flex}.auth-lock-icon svg{width:26px;height:26px}.auth-title{color:#fff;letter-spacing:-.01em;margin:0 0 .5rem;font-size:1.45rem;font-weight:800}.auth-subtitle{color:var(--text-muted);margin:0 0 1.5rem;font-size:.84rem;line-height:1.45}.auth-form{text-align:left;flex-direction:column;gap:1.15rem;display:flex}.auth-input-group{flex-direction:column;gap:.45rem;display:flex}.auth-label{color:#cbd5e1;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}.auth-input-wrap{align-items:center;display:flex;position:relative}.auth-password-input{color:#fff;box-sizing:border-box;background:#1e293b;border:1.5px solid #94a3b84d;border-radius:12px;width:100%;padding:.75rem 2.85rem .75rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s cubic-bezier(.16,1,.3,1)}.auth-password-input:focus{background:#192437;border-color:#7c3aed;outline:none;box-shadow:0 0 0 3px #7c3aed47}.auth-password-input.is-invalid{border-color:#ef4444;animation:.45s ease-in-out shake}.auth-toggle-pwd{color:#94a3b8;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.3rem;transition:color .15s;display:flex;position:absolute;right:.75rem}.auth-toggle-pwd:hover,.auth-toggle-pwd.active{color:#fff}.auth-error-msg{color:#f87171;margin-top:.2rem;font-size:.78rem;font-weight:600}.btn-auth-submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:12px;width:100%;padding:.85rem 1.5rem;font-family:inherit;font-size:.98rem;font-weight:700;transition:all .2s;box-shadow:0 4px 16px #7c3aed66}.btn-auth-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #7c3aed99}.btn-auth-submit:active:not(:disabled){transform:translateY(0)}.btn-auth-submit:disabled{opacity:.65;cursor:not-allowed}.auth-footer-note{color:#94a3b8;border-top:1px solid #94a3b826;margin-top:1.25rem;padding-top:.85rem;font-size:.74rem;line-height:1.45}.btn-cfg-logout{color:#fca5a5;cursor:pointer;background:#ef44441a;border:1px solid #ef444459;border-radius:8px;padding:.42rem .85rem;font-family:inherit;font-size:.78rem;font-weight:700;transition:all .15s}.btn-cfg-logout:hover{color:#fff;background:#ef444438;border-color:#ef4444}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}.latency-card{background:#141c2e;border:1px solid #7c3aed4d;border-radius:20px;flex-direction:column;gap:1.2rem;width:100%;max-width:660px;max-height:90vh;padding:1.75rem;display:flex;overflow-y:auto;box-shadow:0 20px 50px #000c,0 0 30px #7c3aed26}.latency-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.latency-header-icon{font-size:1.8rem}.latency-header h2{font-size:1.25rem;font-weight:800;font-family:var(--font-heading);color:var(--color-gold)}.latency-header p{color:var(--text-muted);font-size:.78rem}.btn-close-modal{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.25rem .5rem;font-size:1.25rem;transition:all .15s}.btn-close-modal:hover{color:#fff;background:#1e293b}.latency-info-box{color:#cbd5e1;background:#7c3aed14;border:1px solid #7c3aed33;border-radius:10px;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;font-size:.8rem;line-height:1.4;display:flex}.latency-rows-list{flex-direction:column;gap:.75rem;display:flex}.latency-row{border:1px solid var(--border-color);background:#0f172a;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;transition:all .2s;display:flex}.latency-row.flash-active{border-color:var(--color-ontime);background:#10b98126;transform:scale(1.01);box-shadow:0 0 16px #10b9814d}.device-meta{flex:1;align-items:center;gap:.75rem;min-width:210px;display:flex}.device-icon{font-size:1.5rem}.device-texts{flex-direction:column;display:flex}.device-name{color:#f1f5f9;font-size:.9rem;font-weight:700}.device-desc{color:var(--text-muted);font-size:.72rem}.device-controls{align-items:center;gap:.75rem;display:flex}.stepper-group{align-items:center;gap:.35rem;display:flex}.btn-step-mini{border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;background:#1e293b;border-radius:6px;justify-content:center;align-items:center;width:28px;height:26px;font-size:.75rem;font-weight:700;transition:background .15s;display:flex}.btn-step-mini:hover{color:var(--accent-cyan);background:#334155}.latency-slider{width:110px;accent-color:var(--accent-cyan);cursor:pointer}.latency-val-badge{text-align:right;min-width:65px;color:var(--accent-cyan);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:800}.latency-footer{border-top:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding-top:.5rem;display:flex}.auto-calibrate-banner{background:linear-gradient(135deg,#7c3aed33,#6366f133);border:1px solid #7c3aed66;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:flex}.banner-texts{flex-direction:column;flex:1;gap:.25rem;min-width:240px;display:flex}.banner-badge{color:var(--accent-cyan);text-transform:uppercase;background:#7c3aed33;border-radius:12px;width:fit-content;padding:.2rem .6rem;font-size:.7rem;font-weight:800}.banner-texts h3{font-size:1.05rem;font-weight:700;font-family:var(--font-heading);color:var(--color-gold)}.banner-texts p{color:#cbd5e1;font-size:.8rem}.btn-cal-mini{color:var(--accent-cyan);cursor:pointer;white-space:nowrap;background:#7c3aed1f;border:1px solid #7c3aed59;border-radius:6px;padding:.35rem .65rem;font-size:.75rem;font-weight:700;transition:all .15s}.btn-cal-mini:hover{background:var(--accent-cyan);color:#0b0f19;transform:translateY(-1px)}.cal-wizard-card{background:#101626;border:1px solid #7c3aed66;border-radius:20px;flex-direction:column;gap:1.25rem;width:100%;max-width:680px;max-height:92vh;padding:1.75rem;display:flex;overflow-y:auto;box-shadow:0 25px 60px #000000d9,0 0 35px #7c3aed33}.cal-wizard-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.cal-icon-large{font-size:2rem}.cal-wizard-header h2{font-size:1.3rem;font-weight:800;font-family:var(--font-heading);color:var(--color-gold)}.cal-wizard-header p{color:var(--text-muted);font-size:.8rem}.cal-section-label{color:#cbd5e1;margin-bottom:.75rem;font-size:.9rem;font-weight:700;display:block}.device-picker-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;display:grid}.device-pick-card{border:2px solid var(--border-color);text-align:center;cursor:pointer;background:#0d1220;border-radius:12px;flex-direction:column;align-items:center;gap:.35rem;padding:.85rem;transition:all .15s;display:flex}.device-pick-card:hover{background:#141c30;border-color:#7c3aed80}.device-pick-card.selected{border-color:var(--accent-cyan);background:#7c3aed1f;box-shadow:0 0 14px #7c3aed40}.device-pick-icon{font-size:1.7rem}.device-pick-name{color:#f1f5f9;font-size:.85rem;font-weight:700}.device-pick-desc{color:var(--text-muted);font-size:.7rem}.device-pick-offset{color:var(--accent-cyan);margin-top:.25rem;font-size:.75rem;font-weight:800}.cal-instructions-box{color:#cbd5e1;background:#7c3aed14;border:1px solid #7c3aed33;border-radius:12px;align-items:flex-start;gap:.75rem;margin-top:1rem;padding:.9rem 1rem;font-size:.82rem;line-height:1.45;display:flex}.cal-instructions-box p{margin-top:.2rem}.cal-running-stage{flex-direction:column;align-items:center;gap:1.25rem;padding:1rem 0;display:flex}.cal-pulse-circle{border:4px solid var(--accent-cyan);text-align:center;background:radial-gradient(circle,#7c3aed,#4c1d95);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:150px;height:150px;transition:transform 80ms,box-shadow 80ms;display:flex;box-shadow:0 0 25px #7c3aed66}.cal-pulse-circle.pulsing{border-color:#ddd6fe;transform:scale(1.12);box-shadow:0 0 45px #7c3aed}.cal-beat-number{color:#fff;font-size:2.4rem;font-weight:900;line-height:1}.cal-beat-sub{color:#ede9fe;max-width:120px;margin-top:.25rem;font-size:.7rem;font-weight:600}.cal-progress-wrapper{flex-direction:column;align-items:center;gap:.5rem;width:100%;display:flex}.cal-progress-dots{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.cal-dot{border:1px solid var(--border-color);width:44px;height:44px;color:var(--text-muted);background:#1e293b;border-radius:8px;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;transition:all .15s;display:flex}.cal-dot.current{border-color:var(--accent-cyan);color:var(--accent-cyan);transform:scale(1.05)}.cal-dot.recorded{border-color:var(--color-ontime);color:var(--color-ontime);background:#10b98133}.cal-progress-text{color:#cbd5e1;font-size:.85rem;font-weight:600}.cal-tap-zone{border:2px dashed var(--accent-cyan);cursor:pointer;background:linear-gradient(#1e293b,#0d1220);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;width:100%;padding:1.5rem 1rem;transition:all 80ms;display:flex}.cal-tap-zone:hover{background:linear-gradient(#24324a,#131c33)}.cal-tap-zone.hit-active{background:#7c3aed40;border-color:#ddd6fe;transform:scale(.985);box-shadow:0 0 25px #7c3aedcc}.cal-tap-icon{font-size:2rem}.cal-tap-title{font-size:1rem;font-weight:800;font-family:var(--font-heading);color:var(--color-gold);text-align:center}.cal-tap-hint{color:var(--text-muted);font-size:.75rem}.cal-results-body{flex-direction:column;gap:1.25rem;display:flex}.cal-recommendation-box{background:#0a0f1d;border:1px solid #7c3aed4d;border-radius:16px;flex-wrap:wrap;justify-content:space-around;align-items:center;gap:1.25rem;padding:1.5rem;display:flex}.cal-offset-result{flex-direction:column;align-items:center;display:flex}.cal-offset-number{color:var(--color-ontime);font-variant-numeric:tabular-nums;font-size:3rem;font-weight:900;line-height:1}.cal-offset-label{text-transform:uppercase;color:var(--text-muted);margin-top:.4rem;font-size:.75rem;font-weight:700}.cal-meta-stats{color:var(--text-muted);flex-direction:column;gap:.45rem;font-size:.85rem;display:flex}.cal-meta-stats strong{color:#f8fafc}.cal-consistency-box{color:#e2e8f0;background:#7c3aed14;border:1px solid #7c3aed33;border-radius:12px;align-items:flex-start;gap:.75rem;padding:.9rem 1.1rem;font-size:.85rem;line-height:1.45;display:flex}.cal-consistency-icon{flex-shrink:0;font-size:1.3rem}.cal-samples-list{flex-direction:column;gap:.5rem;display:flex}.cal-samples-chips{flex-wrap:wrap;gap:.4rem;display:flex}.cal-sample-chip{border:1px solid var(--border-color);color:#cbd5e1;background:#1e293b;border-radius:6px;padding:.25rem .55rem;font-size:.75rem}.cal-wizard-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:.75rem;padding-top:.5rem;display:flex}@media (width<=768px){html,body{overscroll-behavior:none;-webkit-overflow-scrolling:auto;width:100%;height:100vh;max-height:100dvh;position:fixed;overflow:hidden}.main-content{flex:auto;justify-content:space-between;gap:.45rem;max-width:100%;height:auto;min-height:0;padding:.4rem .6rem .55rem;overflow:hidden}.app-header{height:auto;min-height:unset;-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);z-index:50;background:#0f172af2;border-radius:16px;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:.38rem .4rem;margin:.35rem .6rem 0;padding:.45rem .65rem;display:flex;box-shadow:0 4px 20px #00000080}.brand{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.brand-logo{object-fit:contain;max-width:88px;height:26px}.brand-info{display:none}.nav-tabs{scrollbar-width:none;background:#0b0f19;border:1px solid #94a3b826;border-radius:999px;align-items:center;gap:.2rem;max-width:calc(100% - 92px);height:34px;margin-left:auto;padding:.18rem;transition:opacity .2s;display:flex;overflow-x:auto}.nav-tabs::-webkit-scrollbar{display:none}body.is-running .nav-tabs{display:none}.tab-btn{white-space:nowrap;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;height:28px;padding:.28rem .55rem;font-size:.74rem;font-weight:700;line-height:1;display:inline-flex}.tab-btn .tab-text-full{display:none}.tab-btn .tab-text-short{display:inline}.tab-btn.btn-config-tab{align-items:center;gap:.2rem;height:28px;margin-left:.05rem;padding:.28rem .52rem;display:inline-flex}.tab-btn.btn-config-tab svg{width:14px;height:14px;margin-right:0!important}.header-actions{border-top:1px solid #94a3b81f;flex-basis:100%;justify-content:space-between;align-items:center;gap:.38rem;width:100%;padding-top:.32rem;display:flex}.tempo-pill{white-space:nowrap;cursor:pointer;background:#0b0f19;border-color:#7c3aed59;border-radius:999px;flex:1 1 0;justify-content:center;align-items:center;min-width:0;height:32px;padding:.25rem .45rem;font-size:.78rem;font-weight:700;display:inline-flex}.tempo-pill-bpm{opacity:.85;margin-left:2px;font-size:.66rem;display:inline}.btn-stop-header,.btn-stop-mobile{flex:1.15 1 0;gap:.35rem;height:32px;padding:.25rem .65rem;font-size:.78rem}.btn-stop-header svg,.btn-stop-mobile svg{width:13px;height:13px}.status-bar{border:1px solid var(--border-color);background:#0f172a;border-radius:12px;flex-flow:row;flex-shrink:0;justify-content:space-between;align-items:center;gap:.35rem;height:44px;min-height:44px;max-height:44px;padding:.35rem .6rem;display:flex}.level-indicator{align-items:center;min-width:0;display:flex}.level-indicator h2,.level-indicator p{display:none}.level-dropdown{text-overflow:ellipsis;white-space:nowrap;background:#1e293b;border-radius:8px;max-width:clamp(140px,46vw,220px);height:30px;padding:.2rem .5rem;font-size:.76rem;font-weight:700;overflow:hidden}.measure-counter{flex-direction:row;flex-shrink:0;align-items:center;gap:.25rem;display:flex}.measure-badge{display:none}.measure-text{color:var(--text-main);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:800}.beat-dots{display:none!important}.streak-counter{white-space:nowrap;min-width:auto;color:var(--color-ontime);background:#10b9811f;border:1px solid #10b98140;border-radius:8px;flex-shrink:0;padding:.2rem .45rem;font-size:.74rem;font-weight:800}.highway-wrapper{background:#000;border:1px solid #7c3aed73;border-radius:14px;flex:140px;align-items:center;height:auto;min-height:125px;max-height:165px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 25px #000000e6,0 4px 16px #0009}#rhythm-canvas{width:100%;height:100%}.play-controls{flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;margin:.25rem 0;display:flex}.btn-main-action{border-radius:10px;padding:.45rem 1rem;font-size:.85rem}.btn-stop-action{border-radius:10px;padding:.45rem .95rem;font-size:.85rem}.tactile-pad-wrapper{flex-direction:column;flex:155px;width:100%;height:auto;min-height:135px;max-height:190px;margin-top:0;display:flex}.tactile-pad{background:linear-gradient(#18233a,#0d1322);border-radius:16px;justify-content:center;gap:.35rem;width:100%;height:100%;padding:.85rem 1rem;transition:all 80ms}.tactile-pad.is-idle{border:2px solid var(--color-gold);animation:2.5s ease-in-out infinite pulseIdleBorder;box-shadow:0 0 16px #e8b84b40,inset 0 0 12px #e8b84b14}@keyframes pulseIdleBorder{0%,to{border-color:#e8b84bb3;box-shadow:0 0 12px #e8b84b33}50%{border-color:#e8b84b;box-shadow:0 0 22px #e8b84b73}}.tactile-pad.is-idle .tactile-pad-text{color:var(--color-gold);letter-spacing:.04em;font-size:1.05rem;font-weight:800}.tactile-pad.is-idle .tactile-pad-icon{color:var(--color-gold)}.tactile-pad.is-running{border:2px solid var(--accent-cyan);box-shadow:0 0 16px #7c3aed4d,inset 0 0 12px #7c3aed1a}.tactile-pad.is-running .tactile-pad-text{color:#f8fafc;font-size:1.1rem;font-weight:800}.tactile-pad-icon svg{width:32px;height:32px}.tactile-pad-hint{color:var(--text-muted);text-align:center;font-size:.75rem;line-height:1.25}.practice-selector{z-index:100;-webkit-overflow-scrolling:touch;background:#111827;border:1px solid #7c3aed73;border-bottom:none;border-radius:20px 20px 0 0;width:100%;max-height:78dvh;padding:1rem .85rem 1.75rem;animation:.25s cubic-bezier(.16,1,.3,1) forwards slideUpSheet;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -10px 40px #000000e6}@keyframes slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-backdrop{-webkit-backdrop-filter:blur(4px);z-index:95;background:#020617bf;inset:0;position:fixed!important}.practice-selector-header{gap:.5rem}.practice-selector-title-wrap{justify-content:space-between;align-items:flex-start;gap:.5rem;width:100%;display:flex}.practice-selector-header h3{font-size:.92rem}.practice-selector-subtitle{font-size:.7rem}.btn-close-sheet{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:.35rem .85rem;font-size:.78rem;font-weight:700;box-shadow:0 2px 8px #7c3aed66;display:inline-flex!important}.patterns-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:.45rem}.pattern-card{height:70px;min-height:68px;padding:.35rem .2rem}.pattern-card svg,.pattern-svg-wrap svg{height:50px}.modal-backdrop{padding:.75rem}.report-card,.config-modal-card,.latency-card,.cal-wizard-card{gap:.85rem;width:96%;max-height:90dvh;padding:1.15rem 1rem;overflow-y:auto}.score-summary{padding:.75rem}.score-number{font-size:2rem}.tendency-legend{grid-template-columns:1fr 1fr;gap:.35rem;font-size:.72rem}.device-controls{justify-content:space-between;width:100%}.latency-slider{width:100%;max-width:120px}}.tab-btn.btn-share-tab{color:var(--color-gold-light);background:linear-gradient(135deg,#e8b84b29,#e8b84b42);border:1px solid #e8b84b73;margin-left:.2rem;font-weight:700;box-shadow:0 1px 8px #e8b84b26}.tab-btn.btn-share-tab:hover{color:#fff;border-color:var(--color-gold);background:linear-gradient(135deg,#e8b84b47,#e8b84b6b);transform:translateY(-1px);box-shadow:0 0 14px #e8b84b66}.student-mode-badge{color:#34d399;white-space:nowrap;background:#10b98124;border:1px solid #10b98166;border-radius:7px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.8rem;font-weight:700;display:inline-flex}.meter-pill{color:var(--color-gold-light);border-color:#e8b84b52}.meter-pill:hover:not(.is-locked){color:#fff;border-color:#e8b84ba6;box-shadow:0 0 14px #e8b84b47}.tempo-pill.is-locked{cursor:default;opacity:.92}.tempo-pill.is-locked:hover{transform:none;box-shadow:0 1px 4px #0000004d}.cfg-meter-group{border:1px solid var(--border-color);background:#0b0f19;border-radius:10px;align-items:center;gap:.25rem;padding:.2rem;display:inline-flex}.cfg-meter-btn{color:var(--text-muted);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:7px;padding:.3rem .7rem;font-size:.8rem;font-weight:700;transition:all .15s}.cfg-meter-btn:hover{color:#f8fafc;background:#1e293b}.cfg-meter-btn.active{color:#c4b5fd;border-color:var(--accent-cyan);background:#7c3aed38;box-shadow:0 0 10px #7c3aed4d}.cfg-student-lock-banner{color:#f8fafc;background:#e8b84b1a;border:1px solid #e8b84b4d;border-radius:10px;align-items:center;gap:.55rem;padding:.65rem .8rem;font-size:.78rem;line-height:1.4;display:flex}.cfg-student-lock-banner svg{color:var(--color-gold);flex-shrink:0}.pattern-card.disabled-by-meter{opacity:.32;cursor:not-allowed;background:#090d16;border-style:dashed}.pattern-card.disabled-by-meter:hover{border-color:var(--border-color);background:#090d16;transform:none}.meter-limit-badge{color:var(--color-gold);pointer-events:none;background:#0f172aeb;border:1px solid #e8b84b66;border-radius:4px;padding:.05rem .32rem;font-size:.58rem;font-weight:700;position:absolute;bottom:4px;right:5px}.student-figures-strip{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.45rem;display:flex}.student-fig-pill{background:#0f172a;border:1px solid #7c3aed59;border-radius:8px;align-items:center;gap:.3rem;padding:.15rem .5rem .15rem .3rem;display:inline-flex}.student-fig-svg{justify-content:center;align-items:center;height:24px;display:inline-flex}.student-fig-svg svg{width:auto;height:24px;color:var(--accent-cyan)}.student-fig-label{color:#cbd5e1;font-size:.7rem;font-weight:600}.student-speedup-hint{text-align:center;color:var(--text-muted);background:#e8b84b14;border:1px dashed #e8b84b4d;border-radius:10px;padding:.55rem .85rem;font-size:.78rem}.student-speedup-hint strong{color:var(--color-gold-light)}.share-modal-card{max-width:500px}.share-title-input,.share-url-input{border:1px solid var(--border-color);width:100%;color:var(--text-main);font-family:var(--font-family);-webkit-user-select:text;user-select:text;background:#0b0f19;border-radius:8px;outline:none;padding:.55rem .75rem;font-size:.84rem;transition:border-color .15s}.share-title-input:focus,.share-url-input:focus{border-color:var(--accent-cyan)}.share-url-input{color:#c4b5fd;cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.76rem}.share-summary-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;display:flex}.share-mode-tag{color:var(--color-gold-light);background:#e8b84b24;border:1px solid #e8b84b59;border-radius:6px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.share-meta-pills{flex-wrap:wrap;gap:.4rem;display:flex}.share-meta-pill{border:1px solid var(--border-color);color:var(--text-muted);background:#0b0f19;border-radius:6px;padding:.25rem .55rem;font-size:.75rem}.share-meta-pill strong{color:#f8fafc}.share-figures-preview{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:.4rem;max-height:150px;padding:.2rem 0;display:grid;overflow-y:auto}.share-figure-chip{background:#0b0f19;border:1px solid #7c3aed4d;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.3rem .25rem;display:flex}.share-figure-svg{justify-content:center;align-items:center;height:36px;display:flex}.share-figure-svg svg{width:auto;height:34px;color:var(--accent-cyan)}.share-figure-name{color:#cbd5e1;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.62rem;line-height:1.1;overflow:hidden}.share-lock-note{color:var(--text-muted);background:#7c3aed14;border-radius:8px;align-items:flex-start;gap:.45rem;padding:.45rem .6rem;font-size:.73rem;line-height:1.35;display:flex}.share-lock-note svg{color:var(--accent-cyan);flex-shrink:0;margin-top:1px}.share-footer{gap:.6rem}.btn-copy-link{align-items:center;gap:.4rem;display:inline-flex}.btn-copy-link.copied{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 12px #10b98173}@media (width<=768px){.tab-btn.btn-share-tab{align-items:center;gap:.2rem;height:28px;margin-left:.05rem;padding:.28rem .52rem;display:inline-flex}.tab-btn.btn-share-tab svg{width:14px;height:14px;margin-right:0!important}.student-mode-badge{border-radius:999px;height:28px;padding:.25rem .5rem;font-size:.72rem}body.is-student-mode .level-indicator h2{white-space:nowrap;text-overflow:ellipsis;max-width:115px;font-size:.78rem;display:block;overflow:hidden}}.tempo-pill.mode-pill{color:var(--text-muted);border-color:#94a3b840;gap:.32rem;padding:.25rem .65rem}.tempo-pill.mode-pill svg{color:var(--text-muted);transition:color .15s}.mode-pill-val{color:#cbd5e1;white-space:nowrap;font-size:.8rem;font-weight:700}.tempo-pill.mode-pill.is-active-cr{border-color:var(--color-gold);background:#e8b84b24;box-shadow:0 0 12px #e8b84b33}.tempo-pill.mode-pill.is-active-cr svg,.tempo-pill.mode-pill.is-active-cr .mode-pill-val{color:var(--color-gold-light)}.cfg-cr-subpanel{background:#0b0f19a6;border:1px dashed #e8b84b4d;border-radius:8px;flex-direction:column;gap:.5rem;margin-top:.2rem;padding:.55rem .7rem;display:flex}.cfg-subtext-label{color:#cbd5e1;font-size:.76rem;font-weight:600}@media (width<=768px){.tempo-pill.mode-pill{gap:.25rem;padding:.25rem .45rem}.mode-pill-val{font-size:.76rem}}.live-dot{background:#f59e0b;border-radius:50%;flex-shrink:0;width:9px;height:9px;animation:1.8s ease-in-out infinite livePulse;display:inline-block;box-shadow:0 0 8px #f59e0bb3}.live-dot.is-online{background:#10b981;box-shadow:0 0 10px #10b981d9}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.25)}}.student-live-pill{color:#6ee7b7;white-space:nowrap;background:#10b98124;border:1px solid #10b98173;border-radius:8px;align-items:center;gap:.4rem;padding:.32rem .65rem;font-size:.76rem;font-weight:700;display:inline-flex}.tab-btn.btn-switch-teacher{color:var(--color-gold-light);background:#e8b84b1f;border:1px solid #e8b84b66;align-items:center;gap:.25rem;padding:.35rem .7rem;font-size:.78rem;font-weight:700;display:inline-flex}.tab-btn.btn-switch-teacher:hover{border-color:var(--color-gold);color:#fff;background:#e8b84b3d;transform:translateY(-1px)}.teacher-live-banner{background:linear-gradient(135deg,#10b9811f,#7c3aed29);border:1px solid #10b98161;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex;box-shadow:0 6px 20px #00000059}.teacher-live-info{align-items:center;gap:.65rem;display:flex}.teacher-live-texts{flex-direction:column;gap:.1rem;display:flex}.teacher-live-title-row{align-items:center;gap:.45rem;display:flex}.teacher-live-tag{letter-spacing:.04em;color:#6ee7b7;background:#10b9812e;border:1px solid #10b98166;border-radius:5px;padding:.1rem .45rem;font-size:.68rem;font-weight:800}.teacher-live-room{color:var(--color-gold-light);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.73rem;font-weight:700}.teacher-live-status{color:#f1f5f9;font-size:.8rem;font-weight:600}.teacher-live-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.btn-live-ctrl{color:#e2e8f0;cursor:pointer;background:#151d30;border:1px solid #94a3b847;border-radius:8px;align-items:center;gap:.35rem;padding:.36rem .7rem;font-size:.76rem;font-weight:700;transition:all .15s;display:inline-flex}.btn-live-ctrl:hover{border-color:var(--accent-cyan);color:#fff;background:#1e293b;transform:translateY(-1px)}.btn-live-ctrl.is-audio-on{color:#6ee7b7;background:#10b9811f;border-color:#10b98173}.btn-live-ctrl.is-audio-muted{color:#fcd34d;background:#f59e0b1f;border-color:#f59e0b73}.btn-live-ctrl.btn-live-exit{color:#fca5a5;background:#ef44441a;border-color:#ef444466}.btn-live-ctrl.btn-live-exit:hover{color:#fff;background:#ef444438;border-color:#ef4444}.btn-live-monitor-start{background:linear-gradient(135deg,#059669,#10b981);align-items:center;gap:.4rem;display:inline-flex;box-shadow:0 2px 12px #10b98159}.btn-live-monitor-start:hover{box-shadow:0 4px 16px #10b9818c}.live-toast{color:#f8fafc;z-index:250;pointer-events:none;background:#0f172af2;border:1px solid #10b98180;border-radius:999px;align-items:center;gap:.45rem;padding:.55rem 1rem;font-size:.8rem;font-weight:700;animation:.2s ease-out forwards popIn;display:inline-flex;position:fixed;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #000000a6,0 0 18px #10b98140}@media (width<=768px){.teacher-live-banner{gap:.45rem;padding:.45rem .65rem}.teacher-live-status{font-size:.72rem}.btn-live-ctrl{padding:.28rem .5rem;font-size:.7rem}.tab-btn.btn-switch-teacher{height:28px;padding:.25rem .5rem;font-size:.7rem}.student-live-pill{height:28px;padding:.22rem .45rem;font-size:.68rem}}body.is-student-mode{overscroll-behavior:none;-webkit-overflow-scrolling:auto;width:100%;height:100vh;position:fixed;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important}html:has(body.is-student-mode){overscroll-behavior:none;-webkit-overflow-scrolling:auto;width:100%;height:100vh;position:fixed;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important}body.is-student-mode .main-content{box-sizing:border-box;width:100%;max-width:1200px;height:auto;margin:0 auto;flex-direction:column!important;flex:1 1 0!important;justify-content:space-between!important;gap:clamp(.35rem,1vh,.6rem)!important;min-height:0!important;padding:clamp(.35rem,1.2vh,.75rem) clamp(.5rem,1.5vw,1.2rem) clamp(.45rem,1.4vh,.85rem)!important;display:flex!important;overflow:hidden!important}body.is-student-mode .play-controls{z-index:10;flex-shrink:0;justify-content:center;align-items:center;gap:.75rem;margin:.2rem 0 clamp(.2rem,.8vh,.4rem);display:flex!important}body.is-student-mode .play-controls .btn-main-action{border-radius:12px;padding:clamp(.5rem,1.1vh,.75rem) clamp(1rem,2vw,1.6rem);font-size:clamp(.85rem,1.1vw,1rem)}body.is-student-mode .play-controls .btn-stop-action{border-radius:12px;padding:clamp(.5rem,1.1vh,.75rem) clamp(1rem,2vw,1.4rem);font-size:clamp(.85rem,1.1vw,1rem)}.btn-stop-header,.btn-stop-mobile{display:none!important}body.is-student-mode .app-header{flex-shrink:0;gap:.45rem;padding:clamp(.35rem,.9vh,.55rem) clamp(.6rem,1.5vw,1.25rem)}body.is-student-mode .nav-tabs{gap:.25rem;height:32px;padding:.15rem}body.is-student-mode .student-mode-badge{color:#c4b5fd;background:#7c3aed24;border:1px solid #7c3aed66;border-radius:999px;align-items:center;gap:.3rem;height:28px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}body.is-student-mode .student-live-pill{color:#6ee7b7;background:#10b98124;border:1px solid #10b98166;border-radius:999px;height:28px;padding:.2rem .55rem;font-size:.7rem}body.is-student-mode .tab-btn.btn-switch-teacher{display:none!important}body.is-student-mode .status-bar{min-height:unset;border:1px solid var(--border-color);background:#0f172a;border-radius:12px;flex-shrink:0;align-items:center;gap:.5rem;padding:clamp(.35rem,.8vh,.55rem) clamp(.6rem,1.2vw,1rem)}body.is-student-mode .level-indicator{flex:auto;min-width:0}body.is-student-mode .level-indicator h2{white-space:nowrap;text-overflow:ellipsis;max-width:clamp(140px,30vw,400px);color:var(--color-gold);margin:0;font-size:clamp(.82rem,1.6vh,.96rem);overflow:hidden}body.is-student-mode .level-indicator p{white-space:nowrap;text-overflow:ellipsis;max-width:clamp(140px,30vw,400px);color:var(--text-muted);margin:.1rem 0 0;font-size:clamp(.68rem,1.2vh,.76rem);overflow:hidden}body.is-student-mode .student-figures-strip{scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:.3rem;max-width:100%;margin-top:.2rem;overflow:auto hidden;display:flex!important}body.is-student-mode .student-figures-strip::-webkit-scrollbar{display:none}body.is-student-mode .student-fig-pill{background:#1e293b;border:1px solid #7c3aed59;border-radius:6px;flex-shrink:0;align-items:center;gap:.25rem;height:22px;padding:.1rem .38rem;display:inline-flex}body.is-student-mode .student-fig-svg{align-items:center;height:16px;display:inline-flex}body.is-student-mode .student-fig-svg svg{width:auto;height:16px}body.is-student-mode .student-fig-label{white-space:nowrap;font-size:.65rem;font-weight:600}body.is-student-mode .highway-wrapper{border-radius:14px;margin:0;flex:135px!important;height:auto!important;min-height:clamp(95px,16vh,135px)!important;max-height:clamp(130px,26vh,185px)!important}body.is-student-mode .tactile-pad-wrapper{width:100%;padding-bottom:env(safe-area-inset-bottom,0px);box-sizing:border-box;flex-direction:column!important;flex:125px!important;height:auto!important;min-height:clamp(90px,15vh,125px)!important;max-height:clamp(125px,24vh,175px)!important;margin:0!important;display:flex!important}body.is-student-mode .tactile-pad{box-sizing:border-box;background:linear-gradient(#18233a,#0d1322);border-radius:16px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:clamp(.12rem,.5vh,.3rem);width:100%;height:100%;padding:clamp(.4rem,1.4vh,.8rem) 1rem;transition:all 80ms;display:flex}body.is-student-mode .tactile-pad-icon{justify-content:center;align-items:center;line-height:1;display:flex}body.is-student-mode .tactile-pad-icon svg{width:clamp(20px,3vh,30px);height:clamp(20px,3vh,30px)}body.is-student-mode .tactile-pad-text{letter-spacing:.03em;text-align:center;margin:0;font-size:clamp(.85rem,1.8vh,1.1rem);font-weight:800;line-height:1.15}body.is-student-mode .tactile-pad-hint{text-align:center;color:var(--text-muted);opacity:.85;max-width:520px;margin:0 auto;font-size:clamp(.65rem,1.2vh,.76rem);line-height:1.2}@media (width<=768px){body.is-student-mode .tab-text-full{display:none!important}body.is-student-mode .tab-text-short{display:inline!important}body.is-student-mode .level-indicator p{display:none!important}body.is-student-mode .level-indicator h2,body.is-student-mode .student-figures-strip{max-width:clamp(160px,48vw,260px)}body.is-student-mode .app-header{gap:.3rem .35rem;margin:.25rem .5rem 0;padding:.35rem .5rem}}@media (width<=480px){body.is-student-mode .tactile-pad-hint{-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.65rem;display:-webkit-box;overflow:hidden}body.is-student-mode .tactile-pad-icon svg{width:22px;height:22px}body.is-student-mode .brand-logo{max-width:76px;height:22px}}.subscription-backdrop{-webkit-backdrop-filter:blur(12px);z-index:2100;background:#050814eb;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0;overflow-y:auto}.subscription-modal-card{text-align:center;background:#0f172a radial-gradient(circle at top,#7c3aed2e 0%,#0000 70%);border:1px solid #f59e0b73;border-radius:24px;width:100%;max-width:580px;margin:auto;padding:2.2rem 2rem;position:relative;box-shadow:0 25px 70px #000000d9,0 0 40px #f59e0b2e}.btn-sub-close{color:#94a3b8;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;transition:all .2s;display:flex;position:absolute;top:1.1rem;right:1.1rem}.btn-sub-close:hover{color:#fff;background:#ffffff29;transform:scale(1.05)}.subscription-header{margin-bottom:1.4rem}.sub-badge-pill{color:#fbbf24;letter-spacing:.06em;text-transform:uppercase;background:#f59e0b24;border:1px solid #f59e0b66;border-radius:9999px;align-items:center;margin-bottom:.8rem;padding:.35rem .85rem;font-size:.72rem;font-weight:800;display:inline-flex}.sub-icon-sparkle{color:#fbbf24;margin-bottom:.5rem;animation:2.2s ease-in-out infinite pulseSparkle;display:inline-flex}@keyframes pulseSparkle{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;filter:drop-shadow(0 0 8px #f59e0b99);transform:scale(1.15)}}.sub-title{color:#fff;letter-spacing:-.01em;margin:0 0 .55rem;font-size:1.45rem;font-weight:800;line-height:1.25}.sub-subtitle{color:#94a3b8;max-width:480px;margin:0 auto;font-size:.86rem;line-height:1.5}.subscription-features-grid{text-align:left;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.6rem;display:grid}@media (width<=540px){.subscription-features-grid{grid-template-columns:1fr}.subscription-modal-card{padding:1.8rem 1.25rem}}.sub-feature-card{background:#1e293ba6;border:1px solid #94a3b81f;border-radius:12px;align-items:flex-start;gap:.75rem;padding:.8rem .9rem;display:flex}.sub-feature-icon{flex-shrink:0;margin-top:2px;font-size:1.25rem;line-height:1}.sub-feature-text{flex-direction:column;gap:.2rem;display:flex}.sub-feature-text strong{color:#f1f5f9;font-size:.82rem;font-weight:700}.sub-feature-text span{color:#94a3b8;font-size:.73rem;line-height:1.35}.subscription-cta-section{background:#0f172ad9;border:1px solid #7c3aed59;border-radius:16px;margin-bottom:1.2rem;padding:1.2rem 1.1rem}.sub-cta-heading{color:#e2e8f0;text-transform:uppercase;letter-spacing:.04em;margin:0 0 .85rem;font-size:.82rem;font-weight:700}.sub-buttons-group{flex-direction:column;gap:.6rem;display:flex}.btn-sub-action{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.6rem;padding:.75rem 1.1rem;font-size:.92rem;font-weight:700;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 14px #00000040}.btn-sub-icon{align-items:center;display:inline-flex}.btn-whatsapp{color:#fff;background:linear-gradient(135deg,#25d366,#1ebe5d);box-shadow:0 4px 18px #25d36659}.btn-whatsapp:hover{color:#fff;background:linear-gradient(135deg,#2ae16e,#1fa852);transform:translateY(-1.5px);box-shadow:0 6px 22px #25d36680}.btn-telegram{color:#fff;background:linear-gradient(135deg,#229ed9,#1b85b8);box-shadow:0 4px 18px #229ed94d}.btn-telegram:hover{color:#fff;background:linear-gradient(135deg,#28a9e6,#1f94cc);transform:translateY(-1.5px);box-shadow:0 6px 22px #229ed973}.btn-email{color:#f8fafc;background:#334155cc;border:1px solid #94a3b840}.btn-email:hover{color:#fff;background:#475569e6;transform:translateY(-1.5px)}.subscription-footer{margin-top:.4rem}.sub-has-account-text{color:#94a3b8;margin:0;font-size:.8rem}.btn-link-auth{color:#fbbf24;cursor:pointer;font-weight:700;font-size:inherit;background:0 0;border:none;padding:0 .25rem;font-family:inherit;text-decoration:underline;transition:color .15s}.btn-link-auth:hover{color:#f59e0b}.tab-badge-lock{opacity:.85;margin-left:.25rem;font-size:.72rem}.tab-btn.is-locked-tab{opacity:.78;position:relative}.tab-btn.is-locked-tab:hover{opacity:1}.btn-auth-pill{color:#fbbf24!important;background:#f59e0b14!important;border:1px solid #f59e0b66!important}.btn-auth-pill:hover{background:#f59e0b2e!important;border-color:#f59e0bb3!important}.btn-auth-pill.is-active-sub{color:#34d399!important;background:#10b98114!important;border-color:#10b98166!important}.btn-auth-pill.is-active-sub:hover{background:#10b9812e!important}.free-completion-banner{text-align:left;background:linear-gradient(135deg,#f59e0b1f,#7c3aed26);border:1.5px solid #f59e0b80;border-radius:14px;margin-bottom:1.2rem;padding:1rem 1.1rem}.free-completion-badge{letter-spacing:.05em;color:#fbbf24;text-transform:uppercase;margin-bottom:.35rem;font-size:.68rem;font-weight:800}.free-completion-title{color:#fff;margin-bottom:.35rem;font-size:.98rem;font-weight:800}.free-completion-text{color:#cbd5e1;margin:0;font-size:.8rem;line-height:1.45}.btn-unlock-full{color:#fff!important;background:linear-gradient(135deg,#f59e0b,#d97706)!important;border:none!important;font-weight:800!important;box-shadow:0 4px 16px #f59e0b59!important}.btn-unlock-full:hover{transform:translateY(-1.5px);background:linear-gradient(135deg,#fbbf24,#b45309)!important;box-shadow:0 6px 20px #f59e0b80!important}.btn-auth-close{color:#94a3b8;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex;position:absolute;top:1rem;right:1rem}.btn-auth-close:hover{color:#fff;background:#ffffff26}.auth-text-input{color:#fff;box-sizing:border-box;background:#1e293b;border:1.5px solid #94a3b84d;border-radius:12px;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s cubic-bezier(.16,1,.3,1)}.auth-text-input:focus{background:#192437;border-color:#7c3aed;outline:none;box-shadow:0 0 0 3px #7c3aed47}.auth-text-input.is-invalid{border-color:#ef4444;animation:.45s ease-in-out shake}.subscription-epayco-box{text-align:center;background:linear-gradient(135deg,#1e1b4bd9 0%,#312e81b3 100%);border:1.5px solid #6366f199;border-radius:18px;margin-bottom:1.4rem;padding:1.4rem 1.3rem;box-shadow:0 10px 25px -5px #4f46e540}.sub-epayco-badge{color:#c7d2fe;letter-spacing:.05em;text-transform:uppercase;background:#6366f140;border:1px solid #818cf8;border-radius:9999px;margin-bottom:.6rem;padding:.25rem .75rem;font-size:.7rem;font-weight:800;display:inline-block}.sub-epayco-title{color:#fff;letter-spacing:-.01em;margin:0 0 .5rem;font-size:1.25rem;font-weight:800}.sub-epayco-desc{color:#cbd5e1;margin:0 0 1.2rem;font-size:.82rem;line-height:1.45}.btn-epayco-pay{box-sizing:border-box;background:linear-gradient(135deg,#4f46e5 0%,#6366f1 100%);border-radius:14px;justify-content:center;align-items:center;gap:.65rem;width:100%;max-width:420px;padding:.95rem 1.5rem;font-size:1.02rem;font-weight:800;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 8px 24px #4f46e573;color:#fff!important}.btn-epayco-pay:hover{background:linear-gradient(135deg,#4338ca 0%,#4f46e5 100%);transform:translateY(-2px);box-shadow:0 12px 30px #4f46e5a6}.btn-epayco-icon{align-items:center;display:inline-flex}.auth-expired-alert{color:#fca5a5;text-align:left;background:#ef444426;border:1px solid #ef4444;border-radius:10px;margin-top:.8rem;padding:.75rem .9rem;font-size:.82rem}.btn-auth-renew{color:#fff;background:#dc2626;border-radius:6px;margin-top:.45rem;padding:.35rem .75rem;font-size:.76rem;font-weight:700;text-decoration:none;display:inline-block}.currency-toggle-wrap{background:#0f172ab3;border:1px solid #94a3b833;border-radius:9999px;gap:4px;margin-bottom:.9rem;padding:3px;display:inline-flex}.btn-currency-pill{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:9999px;padding:.35rem .85rem;font-family:inherit;font-size:.78rem;font-weight:700;transition:all .2s}.btn-currency-pill:hover{color:#fff}.btn-currency-pill.active{color:#fff;background:#6366f1;box-shadow:0 2px 8px #6366f166}.price-display-box{flex-direction:column;align-items:center;gap:.3rem;margin:.8rem 0 1.1rem;display:flex}.price-original-striked{color:#94a3b8;font-size:1.05rem;font-weight:600;text-decoration:line-through}.price-highlight{align-items:baseline;gap:.45rem;display:flex}.price-number{color:#38bdf8;letter-spacing:-.02em;text-shadow:0 0 20px #38bdf84d;font-size:2.1rem;font-weight:900}.price-period{color:#cbd5e1;font-size:.92rem;font-weight:600}.coupon-badge-success{color:#6ee7b7;background:#10b98126;border:1px solid #10b981;border-radius:9999px;align-items:center;gap:.5rem;margin-top:.3rem;padding:.35rem .85rem;font-size:.76rem;font-weight:700;display:inline-flex}.btn-remove-coupon{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;line-height:1;display:inline-flex}.btn-remove-coupon:hover{background:#ef4444cc}.coupon-input-wrap{width:100%;max-width:360px;margin:.6rem auto .9rem}.coupon-field-group{background:#1e293b;border:1.5px solid #94a3b840;border-radius:12px;align-items:center;padding:.25rem .35rem .25rem .75rem;transition:all .2s;display:flex}.coupon-field-group:focus-within{border-color:#6366f1;box-shadow:0 0 0 3px #6366f140}.coupon-icon{color:#94a3b8;align-items:center;margin-right:.4rem;display:flex}.input-coupon{color:#fff;text-transform:uppercase;background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.88rem;font-weight:600}.input-coupon::placeholder{text-transform:none;color:#64748b;font-size:.82rem;font-weight:400}.btn-apply-coupon{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:8px;padding:.5rem .95rem;font-family:inherit;font-size:.82rem;font-weight:700;transition:all .2s}.btn-apply-coupon:hover:not(:disabled){background:#4338ca}.btn-apply-coupon:disabled{opacity:.6;cursor:not-allowed}.coupon-error-msg{color:#f87171;text-align:center;margin-top:.35rem;font-size:.74rem;font-weight:600}
