:root{--ink:#0a0c10;--ink-2:#0d1016;--panel:#12151c;--panel-border:#ffffff14;--on-air:#ff3b4e;--broadcast:#3bb8ff;--amber:#f0b429;--text-primary:#e8ecf1;--text-muted:#b7bfd0;--text-dim:#98a2b8}*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(ellipse at top, var(--ink-2), var(--ink) 60%);color:var(--text-primary);min-height:100vh;font-family:Inter,sans-serif}.wrap{max-width:760px;margin:0 auto;padding:40px 24px 100px}header.app-header{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:20px;display:flex}.brand{flex-direction:column;gap:4px;display:flex}.brand-top{align-items:baseline;gap:12px;display:flex}.brand-name{letter-spacing:1.5px;font-family:Bebas Neue,sans-serif;font-size:28px}.brand-name .fr-blue{color:#4d8fd6}.brand-name .fr-red{color:#e0505f}.fr-bar{border-radius:2px;width:64px;height:3px;margin-top:6px;display:flex;overflow:hidden}.fr-bar span{flex:1}.fr-bar .b{background:#4d8fd6}.fr-bar .w{background:#f4f6f9}.fr-bar .r{background:#e0505f}.tagline{letter-spacing:1.5px;color:var(--text-primary);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:11px}.freq{color:var(--broadcast);background:#3bb8ff14;border:1px solid #3bb8ff59;border-radius:4px;padding:4px 10px;font-family:IBM Plex Mono,monospace;font-size:14px}.on-air{align-items:center;gap:8px;display:flex}.on-air-dot{background:var(--on-air);border-radius:50%;width:9px;height:9px;animation:1.6s ease-in-out infinite pulse;box-shadow:0 0 10px 2px #ff3b4e99}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.on-air-label{letter-spacing:2px;color:var(--on-air);font-family:IBM Plex Mono,monospace;font-size:12px}nav.tabs{gap:6px;margin-bottom:32px;display:flex}.tab-btn{cursor:pointer;border:1px solid var(--panel-border);color:var(--text-muted);background:0 0;border-radius:100px;padding:8px 16px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;text-decoration:none;display:inline-block}.tab-btn.active{background:var(--panel);color:var(--text-primary);border-color:#3bb8ff66}.panel{background:linear-gradient(165deg, var(--panel), #0e1117);border:1px solid var(--panel-border);border-radius:20px;margin-bottom:24px;padding:28px}.eyebrow{letter-spacing:2px;color:var(--broadcast);text-transform:uppercase;margin-bottom:10px;font-family:IBM Plex Mono,monospace;font-size:12px}.section-label{letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;margin-bottom:16px;font-family:IBM Plex Mono,monospace;font-size:12px}.np-title{letter-spacing:.5px;margin-bottom:24px;font-family:Bebas Neue,sans-serif;font-size:40px;line-height:1}.meter{align-items:flex-end;gap:4px;height:48px;margin-bottom:24px;display:flex}.meter span{background:linear-gradient(to top, var(--amber), #f0b42940);border-radius:2px 2px 0 0;flex:1;height:20%}.meter.playing span{animation:1.1s ease-in-out infinite bounce}.meter span:nth-child(odd){animation-duration:.9s}.meter span:nth-child(3n){animation-duration:1.3s}@keyframes bounce{0%,to{height:20%}50%{height:90%}}.transport{align-items:center;gap:18px;display:flex}.play-btn{background:var(--text-primary);width:52px;height:52px;color:var(--ink);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.skip-btn{width:36px;height:36px;color:var(--text-primary);border:1px solid var(--panel-border);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;display:flex}.skip-btn:hover{border-color:#3bb8ff66}.mini-transport{align-items:center;gap:12px;padding:0 0 16px 52px;display:flex}.progress-wrap{flex:1}.progress-track{cursor:pointer;background:#ffffff1a;border-radius:2px;height:4px;margin-bottom:8px;overflow:hidden}.progress-fill{background:var(--broadcast);height:100%}.progress-times{color:var(--text-muted);justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:12px;display:flex}.schedule-strip{gap:12px;margin-bottom:32px;padding-bottom:8px;display:flex;overflow-x:auto}.slot{background:var(--panel);border:1px solid var(--panel-border);cursor:pointer;border-radius:14px;flex:0 0 132px;padding:16px 14px}.slot:hover{border-color:#3bb8ff66}.slot.active{border-color:var(--broadcast);background:linear-gradient(165deg, #14202b, var(--panel))}.slot-time{color:var(--text-dim);margin-bottom:10px;font-family:IBM Plex Mono,monospace;font-size:11px}.slot.active .slot-time{color:var(--broadcast)}.slot-title{font-size:13px;font-weight:500;line-height:1.3}.slot-sub{color:var(--text-muted);margin-top:4px;font-size:11px}.review{justify-content:center;gap:12px;display:flex}.review-btn{cursor:pointer;border:1px solid var(--panel-border);background:var(--panel);color:var(--text-primary);border-radius:100px;padding:12px 24px;font-family:Inter,sans-serif;font-size:14px;font-weight:500}.review-btn.got-it{border-color:#3bb8ff66}.review-btn.got-it:hover{background:#3bb8ff1a}.review-btn.shaky{border-color:#f0b42966}.review-btn.shaky:hover{background:#f0b4291a}.review-btn:disabled{opacity:.5;cursor:default}.day-picker{gap:8px;margin-bottom:24px;display:flex}.day-pill{text-align:center;border:1px solid var(--panel-border);background:var(--panel);cursor:pointer;border-radius:10px;flex:1;padding:10px 0}.day-pill.active{border-color:var(--broadcast);background:linear-gradient(165deg, #14202b, var(--panel))}.day-pill-label{color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:11px}.day-pill.active .day-pill-label{color:var(--broadcast)}.episode-row{border-bottom:1px solid var(--panel-border);align-items:center;gap:16px;padding:16px 0;display:flex}.episode-row:last-child{border-bottom:none}.ep-play{border:1px solid var(--panel-border);background:var(--ink);width:36px;height:36px;color:var(--text-primary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.ep-info{flex:1}.ep-time{color:var(--text-dim);margin-bottom:3px;font-family:IBM Plex Mono,monospace;font-size:11px}.ep-title{font-size:14px;font-weight:500}.ep-status{color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:11px}.ep-status.played{color:var(--amber)}.stat-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:28px;display:grid}.stat-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:18px}.stat-value{letter-spacing:.5px;font-family:Bebas Neue,sans-serif;font-size:32px}.stat-label{letter-spacing:1px;color:var(--text-dim);text-transform:uppercase;margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:10px}.level-track{background:#ffffff0f;border-radius:6px;height:10px;margin-bottom:10px;overflow:hidden}.level-fill{background:linear-gradient(90deg, var(--amber), var(--broadcast));height:100%}.level-labels{color:var(--text-muted);justify-content:space-between;margin-bottom:28px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.recent-item{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:10px 0;font-size:13px;display:flex}.recent-item:last-child{border-bottom:none}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot.good{background:var(--broadcast)}.dot.shaky{background:var(--amber)}.setting-row{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;gap:20px;padding:16px 0;display:flex}.setting-row:last-child{border-bottom:none}.setting-name{margin-bottom:3px;font-size:14px;font-weight:500}.setting-desc{color:var(--text-muted);font-size:12px}.stepper{flex-shrink:0;align-items:center;gap:12px;display:flex}.stepper button{border:1px solid var(--panel-border);background:var(--ink);width:28px;height:28px;color:var(--text-primary);cursor:pointer;border-radius:50%;font-size:16px}.stepper button:disabled{opacity:.4;cursor:default}.stepper span{text-align:center;min-width:24px;font-family:IBM Plex Mono,monospace;font-size:14px}.review-btn.danger{border-color:#ff3b4e66}.review-btn.danger:hover{background:#ff3b4e1a}.save-hint{color:var(--broadcast);margin-top:6px;font-family:IBM Plex Mono,monospace;font-size:11px}.practice-target{letter-spacing:.5px;margin-bottom:6px;font-family:Bebas Neue,sans-serif;font-size:30px}.practice-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.practice-nav-label{color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:12px}.practice-actions{gap:12px;margin-bottom:12px;display:flex}.record-btn{cursor:pointer;background:var(--panel);color:var(--text-primary);border:1px solid #ff3b4e66;border-radius:100px;padding:12px 24px;font-family:Inter,sans-serif;font-size:14px;font-weight:500}.record-btn.recording{border-color:var(--on-air);background:#ff3b4e26;animation:1.2s ease-in-out infinite pulse}.compare-row{gap:12px;display:flex}.word-check{border:1px solid var(--panel-border);background:var(--panel);border-radius:12px;margin-top:16px;padding:14px 16px}.word-check.good{background:#3bb8ff0f;border-color:#3bb8ff4d}.word-check.partial{background:#f0b4290f;border-color:#f0b4294d}.word-check-transcript{color:var(--text-muted);margin-bottom:6px;font-size:13px;font-style:italic}.word-check-result{color:var(--text-primary);font-size:14px}.waveform-compare{margin-top:20px}.waveform-row{align-items:center;gap:12px;margin-bottom:10px;display:flex}.waveform-label{color:var(--text-dim);flex-shrink:0;width:48px;font-family:IBM Plex Mono,monospace;font-size:11px}.waveform-bars{flex:1;align-items:flex-end;gap:2px;height:36px;display:flex}.waveform-bars span{border-radius:1px 1px 0 0;flex:1}.wave-native{background:var(--broadcast)}.wave-yours{background:var(--amber)}.waveform-duration{color:var(--text-muted);margin-top:8px;font-family:IBM Plex Mono,monospace;font-size:12px}.waveform-notes{margin-top:12px;padding-left:18px}.waveform-notes li{color:var(--text-primary);margin-bottom:6px;font-size:13px;line-height:1.4}.review-btn.feedback{border-color:#3bb8ff66;margin-top:4px}.review-btn.feedback:hover{background:#3bb8ff1a}.feedback-box{color:var(--text-primary);background:#3bb8ff14;border:1px solid #3bb8ff40;border-radius:12px;margin-top:14px;padding:16px;font-size:14px;line-height:1.5}.empty-state{color:var(--text-muted);padding:24px 0;font-size:14px}
