:root{--bg:#070b16;--panel:#0e1528;--panel2:#121b31;--line:rgba(255,255,255,.085);--text:#f4f7ff;--muted:#8f9ab6;--purple:#8f7aff;--purple2:#6d4cff;--teal:#19d3c5;--green:#51d88a;--amber:#ffbe5c;--red:#ff6f86;--shadow:0 28px 80px rgba(0,0,0,.36);--radius:24px;--sidebar:248px}
*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 20% -10%,rgba(109,76,255,.18),transparent 32%),radial-gradient(circle at 90% 10%,rgba(25,211,197,.08),transparent 28%),var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}.icon{width:20px;height:20px;flex:0 0 auto}.muted{color:var(--muted)}.small{font-size:.83rem}.glass-card,.panel{background:linear-gradient(145deg,rgba(18,27,49,.88),rgba(10,15,29,.92));border:1px solid var(--line);box-shadow:0 12px 46px rgba(0,0,0,.2);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:var(--radius)}.eyebrow{display:block;color:#9f92ff;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:14px;padding:12px 17px;font-weight:750;cursor:pointer;transition:.2s ease;background:#1b2540;color:#fff}.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:linear-gradient(135deg,var(--purple2),#9a5fff 56%,#5f8cff);box-shadow:0 14px 35px rgba(109,76,255,.28)}.btn.soft{background:rgba(255,255,255,.055);border-color:var(--line)}.btn.full{width:100%}.btn.big{padding:15px 18px;font-size:1rem}.text-link{color:#b5aaff;font-weight:700;font-size:.9rem}.pill,.secure-chip,.good-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--muted);font-size:.75rem;font-weight:700;background:rgba(255,255,255,.035)}.good-chip{color:#8aefb2;background:rgba(81,216,138,.08);border-color:rgba(81,216,138,.17)}
.app-shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.sidebar{position:fixed;z-index:20;left:0;top:0;bottom:0;width:var(--sidebar);display:flex;flex-direction:column;padding:26px 18px 20px;border-right:1px solid var(--line);background:rgba(7,11,22,.8);backdrop-filter:blur(24px)}.brand{display:flex;align-items:center;gap:11px}.brand-orb{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--purple2),var(--teal));font-weight:900;box-shadow:0 8px 30px rgba(109,76,255,.35)}.brand strong,.brand small{display:block}.brand strong{font-size:1.08rem;letter-spacing:-.02em}.brand small{font-size:.7rem;color:var(--muted);margin-top:2px}.side-nav{display:flex;flex-direction:column;gap:7px;margin-top:48px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:14px;color:#929db8;font-size:.9rem;font-weight:700}.nav-link:hover{background:rgba(255,255,255,.04);color:#fff}.nav-link.active{background:linear-gradient(90deg,rgba(124,92,255,.18),rgba(124,92,255,.05));color:#c6bdff;border:1px solid rgba(143,122,255,.16)}.sidebar-user{margin-top:auto;display:grid;grid-template-columns:38px 1fr 32px;align-items:center;gap:10px;padding:12px 8px;border-top:1px solid var(--line)}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#313e61,#59698f);font-weight:800}.sidebar-user strong,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user strong{font-size:.82rem}.sidebar-user small{font-size:.68rem;color:var(--muted);margin-top:3px}.icon-link{display:grid;place-items:center;color:var(--muted)}.main-content{grid-column:2;padding:34px 36px 110px;max-width:1440px;width:100%;margin:0 auto}.mobile-nav{display:none}.page-header{display:flex;justify-content:space-between;gap:22px;align-items:flex-end;margin-bottom:26px}.page-header h1{margin:0;font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:-.045em}.page-header p{margin:8px 0 0;color:var(--muted);max-width:720px;line-height:1.55}.flash{border-radius:14px;padding:12px 14px;margin:0 0 18px;border:1px solid var(--line);font-size:.9rem;transition:.3s}.flash.error{background:rgba(255,111,134,.1);color:#ff9bac;border-color:rgba(255,111,134,.2)}.flash.success{background:rgba(81,216,138,.1);color:#8aefb2;border-color:rgba(81,216,138,.2)}.flash.fade{opacity:0;transform:translateY(-5px)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.stat-card{padding:21px;position:relative;overflow:hidden;min-height:142px}.stat-card strong{display:block;font-size:2.15rem;letter-spacing:-.06em;margin-top:12px}.stat-card small{color:var(--muted)}.stat-kicker{color:#a5aec4;font-size:.78rem;font-weight:700}.stat-glow{position:absolute;width:110px;height:110px;border-radius:50%;background:rgba(124,92,255,.2);filter:blur(40px);right:-20px;top:-25px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.8fr);gap:14px;margin-bottom:14px}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}.panel-head h2{margin:0;font-size:1.18rem}.chart-wrap{height:250px}.chart-wrap canvas{width:100%;height:250px}.coach-panel{position:relative;overflow:hidden}.coach-panel:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(25,211,197,.08);filter:blur(50px);right:-60px;bottom:-70px}.coach-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:17px;background:linear-gradient(135deg,rgba(124,92,255,.26),rgba(25,211,197,.23));border:1px solid rgba(255,255,255,.12);font-weight:900;margin-bottom:18px}.coach-panel h2{margin:0 0 16px}.focus-list,.insight-list{display:flex;flex-direction:column;gap:10px;margin:12px 0 18px}.focus-list div,.insight-list div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}.focus-list span,.insight-list span{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:rgba(143,122,255,.13);color:#b6aaff;font-size:.72rem;font-weight:900}.focus-list p,.insight-list p{margin:2px 0 0;color:#dbe1f1;font-size:.87rem;line-height:1.5}.recent-panel{margin-top:0}.session-list{display:flex;flex-direction:column}.session-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto 50px;gap:13px;align-items:center;padding:13px 5px;border-top:1px solid rgba(255,255,255,.06)}.session-row:first-child{border-top:0}.session-row:hover{background:rgba(255,255,255,.025)}.song-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:rgba(143,122,255,.1);color:#b5aaff}.song-icon.large{width:46px;height:46px}.session-song strong,.session-song small{display:block}.session-song strong{font-size:.9rem}.session-song small{color:var(--muted);font-size:.72rem;margin-top:4px}.mini-metrics{display:flex;gap:16px;color:var(--muted);font-size:.72rem}.mini-metrics b{color:#dce4f7}.score-badge{display:grid;place-items:center;width:46px;height:36px;border-radius:11px;font-weight:900}.score-badge.elite,.score-ring.elite{background:rgba(81,216,138,.13);color:#77e7a3}.score-badge.great,.score-ring.great{background:rgba(25,211,197,.12);color:#5be2d7}.score-badge.good,.score-ring.good{background:rgba(143,122,255,.13);color:#b3a8ff}.score-badge.progress,.score-ring.progress{background:rgba(255,190,92,.12);color:#ffd07d}.score-badge.start,.score-ring.start{background:rgba(255,111,134,.12);color:#ff95a7}.empty-state{text-align:center;padding:42px 20px}.empty-state.wide{grid-column:1/-1}.empty-orb{display:grid;place-items:center;width:58px;height:58px;border-radius:20px;margin:0 auto 14px;background:rgba(143,122,255,.1);font-size:1.4rem}.empty-state h3{margin:0 0 8px}.empty-state p,.empty-inline p{color:var(--muted)}.empty-inline{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.practice-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:16px;align-items:start}.song-setup,.recorder-panel{padding:24px}.recorder-panel{position:sticky;top:24px}.step-title{display:flex;align-items:center;gap:12px;margin-bottom:20px}.step-title>span{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:linear-gradient(135deg,rgba(124,92,255,.25),rgba(25,211,197,.14));color:#c6bdff;font-weight:900}.step-title h2,.step-title p{margin:0}.step-title h2{font-size:1.12rem}.step-title p{color:var(--muted);font-size:.78rem;margin-top:4px}.field-label{display:flex;flex-direction:column;gap:7px;color:#cfd6e8;font-size:.8rem;font-weight:700;margin-bottom:14px}.field-label small{color:var(--muted);font-weight:500;text-align:right}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}input,textarea,select{width:100%;border:1px solid rgba(255,255,255,.09);background:#0a1121;color:#eef3ff;border-radius:13px;padding:12px 13px;outline:none;transition:.2s}input:focus,textarea:focus,select:focus{border-color:rgba(143,122,255,.55);box-shadow:0 0 0 4px rgba(143,122,255,.08)}textarea{resize:vertical;line-height:1.55;min-height:180px}.check-row{display:flex;align-items:center;gap:10px;color:#cbd3e6;font-size:.82rem;margin:8px 0}.check-row input{width:17px;height:17px;accent-color:var(--purple)}.legal-note{font-size:.72rem;line-height:1.45;color:#6f7b98;border-top:1px solid var(--line);padding-top:12px}.recorder-stage{position:relative;height:290px;border-radius:22px;border:1px solid var(--line);overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(124,92,255,.14),transparent 48%),#090f1d;margin-bottom:14px}.recorder-stage canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.72}.record-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2}.record-btn{display:grid;place-items:center;width:94px;height:94px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:rgba(13,19,36,.76);box-shadow:0 0 0 10px rgba(143,122,255,.06),0 14px 40px rgba(0,0,0,.32);cursor:pointer}.record-dot{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#ff5978,#ff355d);box-shadow:0 0 24px rgba(255,74,104,.55);transition:.2s}.record-btn.recording{animation:pulseRing 1.5s infinite}.record-btn.recording .record-dot{border-radius:9px;width:29px;height:29px}.record-center strong{margin-top:20px;font-size:.88rem}.record-center>span:last-child{margin-top:5px;color:#9da9c5;font-variant-numeric:tabular-nums}.record-hints{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 16px}.record-hints span{font-size:.7rem;color:var(--muted);padding:7px 9px;border:1px solid var(--line);border-radius:999px}.recorder-panel audio{width:100%;margin-bottom:14px}.analysis-overlay{position:fixed;z-index:100;inset:0;background:rgba(3,6,14,.76);backdrop-filter:blur(16px);display:grid;place-items:center;padding:20px}.analysis-overlay[hidden]{display:none}.analysis-card{width:min(540px,100%);padding:36px;text-align:center}.analysis-card h2{margin:8px 0}.analysis-card p{color:var(--muted);line-height:1.5}.ai-pulse{height:64px;display:flex;align-items:center;justify-content:center;gap:7px}.ai-pulse span{width:8px;border-radius:8px;background:linear-gradient(var(--purple),var(--teal));animation:bars 1s infinite ease-in-out}.ai-pulse span:nth-child(1){height:22px}.ai-pulse span:nth-child(2){height:48px;animation-delay:.12s}.ai-pulse span:nth-child(3){height:30px;animation-delay:.24s}.progress-track{height:7px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden;margin-top:22px}.progress-track i{display:block;height:100%;width:8%;background:linear-gradient(90deg,var(--purple),var(--teal));border-radius:inherit;transition:width .5s}.locked{overflow:hidden}@keyframes bars{50%{transform:scaleY(.45);opacity:.6}}@keyframes pulseRing{50%{box-shadow:0 0 0 18px rgba(255,86,119,.04),0 0 45px rgba(255,73,105,.16)}}
.search-bar{display:flex;gap:10px;padding:11px;margin-bottom:16px}.search-bar input{border:0;background:transparent}.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.history-card{padding:20px;transition:.2s}.history-card:hover{transform:translateY(-2px);border-color:rgba(143,122,255,.25)}.history-top{display:grid;grid-template-columns:46px 1fr 58px;align-items:center;gap:12px}.history-top strong,.history-top small{display:block}.history-top small{color:var(--muted);font-size:.72rem;margin-top:4px}.score-ring{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:1px solid currentColor}.score-ring span{font-weight:900}.history-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:17px;padding-top:14px;border-top:1px solid var(--line)}.history-metrics span{color:var(--muted);font-size:.68rem}.history-metrics b{display:block;color:#e4eafa;font-size:.86rem;margin-top:3px}
.podium-wrap{padding:24px;margin-bottom:16px}.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end;max-width:900px;margin:0 auto}.podium-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 10px;border-radius:20px;background:rgba(255,255,255,.025);border:1px solid var(--line)}.podium-item.pos-1{order:2;min-height:240px;background:linear-gradient(180deg,rgba(143,122,255,.1),rgba(255,255,255,.02))}.podium-item.pos-2{order:1;min-height:205px}.podium-item.pos-3{order:3;min-height:185px}.podium-item .score-ring{width:72px;height:72px;margin:8px 0 13px;font-size:1.2rem}.podium-item small{color:var(--muted);margin-top:4px}.medal{font-size:1.5rem}.rank-row{display:grid;grid-template-columns:50px minmax(0,1fr) auto 70px;align-items:center;gap:12px;padding:13px 4px;border-top:1px solid var(--line)}.rank-row strong,.rank-row small{display:block}.rank-row small{color:var(--muted);font-size:.7rem;margin-top:3px}.rank-num{color:#707c99;font-weight:800}.rank-sub{font-size:.74rem;color:var(--muted)}.rank-score{text-align:right;font-size:1.1rem;font-weight:900;color:#b6aaff}
.session-head{align-items:center}.result-hero{display:grid;grid-template-columns:240px 1fr;gap:30px;align-items:center;padding:28px;margin-bottom:15px;overflow:hidden;position:relative}.big-score{display:grid;place-items:center;width:190px;height:190px;border-radius:50%;border:2px solid currentColor;margin:auto;box-shadow:inset 0 0 45px rgba(255,255,255,.025)}.big-score>div{display:flex;align-items:baseline}.big-score strong{font-size:3.45rem;letter-spacing:-.07em}.big-score span{font-size:.8rem;color:var(--muted)}.big-score small{font-size:.76rem;font-weight:800;margin-top:-25px}.big-score.elite{color:#77e7a3;background:rgba(81,216,138,.07)}.big-score.great{color:#5be2d7;background:rgba(25,211,197,.07)}.big-score.good{color:#b3a8ff;background:rgba(143,122,255,.08)}.big-score.progress{color:#ffd07d;background:rgba(255,190,92,.07)}.big-score.start{color:#ff95a7;background:rgba(255,111,134,.07)}.result-copy h2{font-size:clamp(1.15rem,2.5vw,1.65rem);line-height:1.4;max-width:750px;margin:0 0 18px}.voice-btn{background:rgba(143,122,255,.09);border-color:rgba(143,122,255,.18);color:#cfc7ff}.fallback-note{font-size:.75rem;color:#ffd07d;line-height:1.45}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:15px}.metric-card{padding:17px;display:grid;grid-template-columns:50px 1fr;gap:10px;align-items:center}.metric-score{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:rgba(143,122,255,.09);font-weight:900;font-size:1.05rem}.metric-card strong,.metric-card small{display:block}.metric-card small{color:var(--muted);font-size:.68rem;margin-top:3px}.meter{grid-column:1/-1;height:4px;background:rgba(255,255,255,.055);border-radius:99px;overflow:hidden}.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--purple),var(--teal))}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.insight-list.good span{background:rgba(81,216,138,.09);color:#7ee7a7}.problem-panel{margin-bottom:14px}.word-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.word-card{padding:16px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.022)}.word-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.word-top strong{font-size:1.2rem}.word-top small{display:block;color:#9dabc7;margin-top:3px}.pronounce-btn{border:1px solid rgba(143,122,255,.18);background:rgba(143,122,255,.09);color:#c9c0ff;border-radius:10px;padding:8px 10px;font-size:.72rem;font-weight:800;cursor:pointer}.word-card>p{color:#c7d0e3;font-size:.8rem;line-height:1.5}.heard{color:#8490aa!important}.tip-box{border-radius:11px;padding:10px;background:rgba(25,211,197,.06);color:#aadfd9;font-size:.76rem;line-height:1.45}.transcript-panel{margin-bottom:20px}.transcript-panel summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none}.transcript-panel summary strong{display:block}.transcript-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.transcript-grid h3{font-size:.8rem;color:var(--muted)}.transcript-grid pre{white-space:pre-wrap;word-break:break-word;font:inherit;font-size:.78rem;line-height:1.6;color:#d2d9e9;background:#090f1d;border:1px solid var(--line);border-radius:14px;padding:14px;max-height:340px;overflow:auto}
.profile-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.75fr);gap:15px}.diagnostics{align-self:start}.diag-list{display:flex;flex-direction:column;margin:16px 0}.diag-list div{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding:11px 0;font-size:.8rem}.diag-list span{color:var(--muted)}.diag-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.diag-card{display:flex;gap:10px;align-items:center;padding:14px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02)}.diag-card>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:900}.diag-card.ok>span{color:#7ee7a7;background:rgba(81,216,138,.1)}.diag-card.bad>span{color:#ff9bac;background:rgba(255,111,134,.1)}.diag-card strong,.diag-card small{display:block}.diag-card small{color:var(--muted);font-size:.7rem;margin-top:3px}.info-box{margin-top:18px;padding:14px;border-radius:14px;background:rgba(143,122,255,.06);border:1px solid rgba(143,122,255,.13)}.info-box p{color:var(--muted);font-size:.8rem;line-height:1.5}.info-box code,code{color:#9ce8dd}
.auth-body{background:radial-gradient(circle at 10% 10%,rgba(109,76,255,.22),transparent 35%),radial-gradient(circle at 90% 80%,rgba(25,211,197,.1),transparent 35%),#060a14}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.auth-hero{padding:52px clamp(30px,6vw,90px);display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;position:relative;overflow:hidden}.auth-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(143,122,255,.12);border-radius:50%;right:-240px;top:130px;box-shadow:0 0 0 80px rgba(143,122,255,.025),0 0 0 160px rgba(143,122,255,.018)}.auth-brand{position:relative;z-index:2}.hero-copy{position:relative;z-index:2;max-width:650px}.hero-copy h1{font-size:clamp(3rem,6vw,6.2rem);line-height:.95;letter-spacing:-.075em;margin:10px 0 24px}.hero-copy h1 em{font-style:normal;color:#9987ff}.hero-copy p{font-size:1.08rem;line-height:1.65;color:#9ea9c2;max-width:530px}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;position:relative;z-index:2}.hero-stats div{padding:14px 0;border-top:1px solid var(--line)}.hero-stats strong,.hero-stats small{display:block}.hero-stats small{color:var(--muted);margin-top:4px;font-size:.75rem}.auth-panel{display:grid;place-items:center;padding:30px;background:rgba(8,13,26,.54);border-left:1px solid var(--line)}.auth-card{width:min(460px,100%);padding:34px}.auth-card h2{font-size:2rem;letter-spacing:-.04em;margin:5px 0 8px}.form-stack{display:flex;flex-direction:column;gap:13px;margin-top:20px}.form-stack label{display:flex;flex-direction:column;gap:7px;font-size:.78rem;color:#cbd3e4;font-weight:700}.form-stack label small{font-weight:500;color:var(--muted)}.auth-switch{text-align:center;color:var(--muted);font-size:.82rem;margin:18px 0 0}.auth-switch a{color:#b4a9ff;font-weight:800}.mini-wave{display:flex;align-items:center;gap:6px;height:60px;position:relative;z-index:2}.mini-wave i{display:block;width:7px;border-radius:99px;background:linear-gradient(var(--purple),var(--teal));animation:bars 1.2s infinite ease-in-out}.mini-wave i:nth-child(1){height:20px}.mini-wave i:nth-child(2){height:38px}.mini-wave i:nth-child(3){height:53px}.mini-wave i:nth-child(4){height:31px}.mini-wave i:nth-child(5){height:45px}.mini-wave i:nth-child(6){height:25px}.mini-wave i:nth-child(7){height:49px}.mini-wave i:nth-child(8){height:35px}.mini-wave i:nth-child(9){height:18px}.mini-wave i:nth-child(10){height:30px}.install-wrap{min-height:100vh;display:grid;place-items:center;padding:30px}.install-card{width:min(620px,100%);padding:32px}.install-card h1{font-size:2rem}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:20px 0}.check-item{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid var(--line);border-radius:12px;font-size:.8rem}.check-item span{font-weight:900}.check-item.ok span{color:var(--green)}.check-item.bad span{color:var(--red)}.success-panel{padding:15px;border-radius:14px;background:rgba(81,216,138,.07);border:1px solid rgba(81,216,138,.15)}.success-panel p{color:var(--muted)}
@media(max-width:1050px){:root{--sidebar:208px}.main-content{padding:28px 24px 105px}.stats-grid{grid-template-columns:repeat(2,1fr)}.practice-grid{grid-template-columns:1fr}.recorder-panel{position:relative;top:auto}.metric-grid{grid-template-columns:repeat(2,1fr)}.diag-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.app-shell{display:block}.sidebar{display:none}.main-content{padding:22px 15px 96px}.mobile-nav{position:fixed;z-index:50;display:grid;grid-template-columns:repeat(5,1fr);left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));padding:7px 4px;border-radius:19px;border:1px solid rgba(255,255,255,.1);background:rgba(10,15,29,.9);backdrop-filter:blur(22px);box-shadow:0 16px 50px rgba(0,0,0,.45)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;color:#6f7b96;font-size:.58rem;font-weight:800}.mobile-nav a .icon{width:19px;height:19px}.mobile-nav a.active{color:#ad9fff}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:19px}.page-header .btn{width:100%}.page-header h1{font-size:2rem}.page-header p{font-size:.86rem}.secure-chip{align-self:flex-start}.stats-grid{gap:9px}.stat-card{min-height:122px;padding:16px}.stat-card strong{font-size:1.75rem}.dashboard-grid{grid-template-columns:1fr}.session-row{grid-template-columns:38px 1fr 46px}.mini-metrics{display:none}.panel{padding:17px}.practice-grid{gap:12px}.song-setup,.recorder-panel{padding:17px}.field-grid{grid-template-columns:1fr}.recorder-stage{height:245px}.record-btn{width:82px;height:82px}.history-grid{grid-template-columns:1fr}.history-card{padding:16px}.history-metrics{grid-template-columns:repeat(4,1fr)}.podium{gap:7px}.podium-item{padding:14px 5px}.podium-item.pos-1{min-height:220px}.podium-item.pos-2{min-height:190px}.podium-item.pos-3{min-height:175px}.podium-item strong{font-size:.76rem}.podium-item small{font-size:.62rem}.podium-item .score-ring{width:58px;height:58px}.rank-row{grid-template-columns:34px 1fr 50px}.rank-sub{display:none}.result-hero{grid-template-columns:1fr;padding:20px;text-align:center}.big-score{width:165px;height:165px}.result-copy .btn{width:100%}.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric-card{grid-template-columns:43px 1fr;padding:13px}.metric-score{width:42px;height:42px}.result-grid{grid-template-columns:1fr}.word-grid{grid-template-columns:1fr}.transcript-grid{grid-template-columns:1fr}.profile-grid{grid-template-columns:1fr}.diag-grid{grid-template-columns:1fr}.auth-layout{grid-template-columns:1fr}.auth-hero{min-height:auto;padding:28px 20px 32px}.auth-hero .brand{margin-bottom:60px}.hero-copy h1{font-size:3.45rem}.hero-stats{display:none}.auth-panel{padding:18px 15px 36px;border-left:0}.auth-card{padding:24px}.mini-wave{display:none}.check-grid{grid-template-columns:1fr}.analysis-card{padding:28px 20px}}
@media(max-width:420px){.stats-grid{grid-template-columns:1fr 1fr}.history-metrics{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr}.podium-item.pos-2,.podium-item.pos-3{min-height:160px}.podium-item.pos-1{min-height:195px}.hero-copy h1{font-size:2.95rem}.auth-card h2{font-size:1.7rem}}

/* ===== SingCoach Local: acabamento premium / IA no dispositivo ===== */
.local-badge{display:flex;align-items:center;gap:8px;margin:2px 6px 18px;padding:9px 11px;border:1px solid rgba(25,211,197,.14);background:rgba(25,211,197,.055);border-radius:12px;color:#9fe6de;font-size:.7rem;font-weight:800}.local-badge i{width:7px;height:7px;border-radius:50%;background:#19d3c5;box-shadow:0 0 0 5px rgba(25,211,197,.08),0 0 16px rgba(25,211,197,.65)}
.privacy-banner{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:16px 18px;margin-bottom:15px;border-color:rgba(25,211,197,.12);background:linear-gradient(115deg,rgba(25,211,197,.055),rgba(143,122,255,.035))}.privacy-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:rgba(25,211,197,.09);border:1px solid rgba(25,211,197,.15);color:#87e9df;font-size:1.4rem}.privacy-banner strong{display:block;margin-bottom:3px}.privacy-banner p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.45}.model-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid rgba(143,122,255,.14);border-radius:16px;background:linear-gradient(130deg,rgba(143,122,255,.07),rgba(25,211,197,.035));margin:14px 0 10px}.model-orb{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:radial-gradient(circle at 30% 25%,#a793ff,#5942c8 55%,#211b4a);box-shadow:0 12px 35px rgba(91,67,205,.3);font-size:.72rem;font-weight:950;letter-spacing:.08em}.model-copy{min-width:0}.model-copy strong,.model-copy small{display:block}.model-copy strong{font-size:.82rem}.model-copy small{font-size:.68rem;color:var(--muted);margin:4px 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-progress{height:4px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}.model-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--purple),var(--teal));transition:width .25s ease}.btn.compact{padding:9px 11px;font-size:.68rem;white-space:nowrap}.compat-strip{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}.compat-strip span{padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.025);font-size:.63rem;color:#8f9bb4}.recorder-step{margin-top:20px}.record-hints{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin:10px 0 14px}.record-hints span{font-size:.66rem;color:#8d9ab4;padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.025);border:1px solid var(--line)}.analysis-mini{margin-top:13px;font-size:.68rem;color:#8190aa}.credential-box{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;padding:13px;margin:13px 0 16px;border-radius:12px;background:rgba(5,10,20,.48);border:1px solid var(--line);font-size:.78rem}.credential-box span{color:var(--muted)}.credential-box b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.tts-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.pronounce-btn.slow{background:rgba(25,211,197,.07);border-color:rgba(25,211,197,.14);color:#a9e7e0}.good-note{color:#8fceb8!important}.word-top{align-items:center}.legal-note.center{text-align:center}.model-card+.compat-strip{opacity:.95}
@media(max-width:760px){.privacy-banner{grid-template-columns:42px 1fr}.privacy-banner>.pill{grid-column:1/-1;justify-self:start}.model-card{grid-template-columns:42px 1fr}.model-orb{width:40px;height:40px}.model-card .btn{grid-column:1/-1;width:100%}.compat-strip{margin-bottom:16px}.word-top{align-items:flex-start}.tts-actions{width:100%;justify-content:flex-start}.word-top{flex-direction:column}.pronounce-btn{flex:1}.privacy-banner p{font-size:.72rem}}

/* =========================================================
   SingCoach — ajuste mobile/iPhone (2026-10-02)
   Corrige o composer do Coach, safe-area e acesso ao logout.
   ========================================================= */
.mobile-topbar{display:none}

@media (max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  body{-webkit-text-size-adjust:100%}

  .main-content{
    width:100%;
    max-width:100%;
    padding:14px 12px calc(118px + env(safe-area-inset-bottom));
    overflow-x:hidden;
  }

  /* Barra superior exclusiva do celular, com logout sempre acessível */
  .mobile-topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0 0 16px;
    padding:8px 2px 10px;
  }
  .mobile-mini-brand{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
  }
  .mobile-mini-brand .brand-orb{
    width:36px;
    height:36px;
    border-radius:12px;
    flex:0 0 36px;
    font-size:.9rem;
  }
  .mobile-mini-brand strong,
  .mobile-mini-brand small{display:block}
  .mobile-mini-brand strong{font-size:.88rem;line-height:1.1}
  .mobile-mini-brand small{margin-top:3px;color:var(--muted);font-size:.61rem}
  .mobile-logout-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:38px;
    padding:8px 11px;
    border:1px solid rgba(255,111,134,.18);
    border-radius:12px;
    background:rgba(255,111,134,.07);
    color:#ff9bac;
    font-size:.72rem;
    font-weight:850;
    white-space:nowrap;
  }
  .mobile-logout-btn .icon{width:17px;height:17px}

  /* iOS: evita zoom automático em campos e mantém tudo dentro da viewport */
  input,textarea,select{font-size:16px;max-width:100%;min-width:0}
  .panel,.glass-card,.interactive-coach{max-width:100%;min-width:0}

  /* Coach interativo */
  .interactive-coach{
    width:100%;
    overflow:hidden;
  }
  .interactive-coach .coach-shell-head,
  .interactive-coach .coach-title-row,
  .interactive-coach .coach-controls,
  .interactive-coach .coach-voice-settings,
  .interactive-coach .coach-mic-row,
  .interactive-coach .coach-input-wrap{
    min-width:0;
    max-width:100%;
  }
  .interactive-coach .coach-chat{
    height:min(320px,42vh);
    padding:12px !important;
  }
  .interactive-coach .coach-word-tabs{
    padding:12px 12px 8px;
    overscroll-behavior-x:contain;
  }
  .interactive-coach .coach-controls{
    padding:12px !important;
  }
  .interactive-coach .coach-quick-actions{
    flex-wrap:nowrap;
    overflow-x:auto;
    padding-bottom:3px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .interactive-coach .coach-quick-actions::-webkit-scrollbar{display:none}
  .interactive-coach .coach-mini-btn{flex:0 0 auto}

  .interactive-coach .coach-voice-settings{
    grid-template-columns:minmax(0,1fr) !important;
  }
  .interactive-coach .coach-voice-select{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .interactive-coach .coach-voice-test{width:100%}

  /* Área de conversa: no iPhone o botão Enviar fica embaixo do campo,
     evitando que textarea/input e botão se sobreponham. */
  .interactive-coach .coach-mic-row{
    display:grid !important;
    grid-template-columns:48px minmax(0,1fr) !important;
    gap:9px !important;
    align-items:start !important;
    width:100%;
  }
  .interactive-coach .coach-mic-row>div{
    min-width:0;
    width:100%;
  }
  .interactive-coach .coach-mic-btn{
    width:48px !important;
    height:48px !important;
    border-radius:15px;
  }
  .interactive-coach .coach-input-wrap{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:7px !important;
    width:100%;
  }
  .interactive-coach .coach-input{
    width:100% !important;
    min-width:0 !important;
    height:46px;
    padding:10px 12px;
    border-radius:12px;
  }
  .interactive-coach .coach-send{
    width:100%;
    min-height:42px;
    padding:9px 12px;
    border-radius:12px;
  }
  .interactive-coach .coach-status{
    grid-column:auto !important;
    margin:7px 0 0 !important;
    line-height:1.35;
    overflow-wrap:anywhere;
  }

  /* Navegação inferior respeita a área do gesto do iPhone */
  .mobile-nav{
    left:8px;
    right:8px;
    bottom:max(8px,env(safe-area-inset-bottom));
    padding:7px 4px calc(7px + env(safe-area-inset-bottom)/4);
  }
}

@media (max-width:390px){
  .main-content{padding-left:10px;padding-right:10px}
  .panel{padding-left:14px;padding-right:14px}
  .interactive-coach .coach-shell-head{padding:14px !important}
  .interactive-coach .coach-title-row{gap:9px}
  .interactive-coach .coach-title-row strong{font-size:.95rem}
  .interactive-coach .coach-title-row small{font-size:.64rem;line-height:1.35}
  .mobile-nav a{font-size:.54rem}
}
