:root{--ink: #1d2126;--ink-soft: #4c5560;--muted: #7a8490;--paper: #FAF6EC;--card: #ffffff;--line: #E3DCC6;--brand: #0D2D52;--brand-ink: #081D38;--brand-soft: #EAF0F6;--accent: #C8A415;--accent-soft: #F7EED2;--ok: #059669;--ok-soft: #ecfdf5;--danger: #dc2626;--danger-soft: #fef2f2;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--serif: Georgia, "Times New Roman", serif;--r-sm: 10px;--r: 14px;--r-lg: 20px;--shadow: 0 1px 2px rgba(13, 45, 82, .06), 0 6px 24px rgba(13, 45, 82, .07);--shadow-lg: 0 2px 6px rgba(13, 45, 82, .08), 0 18px 48px rgba(13, 45, 82, .14);--header-h: 60px;--tabbar-h: 62px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:radial-gradient(1100px 480px at 50% -220px,rgba(13,45,82,.07),transparent 62%),var(--paper);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.55}h1,h2,h3,h4{line-height:1.22;margin:0;font-weight:700;letter-spacing:-.01em}p{margin:0}button{font-family:inherit;cursor:pointer}a{color:var(--brand);text-decoration:none}.app{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto}.app-header{height:calc(var(--header-h) + env(safe-area-inset-top,0px));flex:none;display:flex;align-items:center;gap:12px;padding:env(safe-area-inset-top,0px) max(18px,env(safe-area-inset-right,0px)) 0 max(18px,env(safe-area-inset-left,0px));background:linear-gradient(135deg,#16406e,#0d2d52 48%,#081d38);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 4px 20px #081d3847}.app-header .brand{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}.app-header .logo{width:32px;height:32px;border-radius:9px;flex:none;background:linear-gradient(135deg,#dcc168,#c8a415);display:grid;place-items:center;color:#081d38;font-weight:800;font-size:15px;box-shadow:0 2px 8px #0000002e}.app-header .titles{min-width:0;overflow:hidden}.app-header .titles h1{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header .titles span{font-size:11px;opacity:.82;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header .spacer{flex:1}.icon-btn{width:38px;height:38px;border-radius:10px;border:none;background:#ffffff24;color:#fff;display:grid;place-items:center}.icon-btn:active{background:#ffffff42}.icon-btn svg{width:20px;height:20px}.app-main{flex:1;overflow-y:auto;padding:18px 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 24px)}.app-main.nopad{padding:0 0 calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 24px)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));display:flex;align-items:stretch;background:var(--card);border-top:1px solid var(--line);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -1px 0 var(--line),0 -10px 28px #0d2d520f}.tabbar-inner{display:flex;width:100%;max-width:720px;margin:0 auto}.tab{position:relative;flex:1;border:none;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:10.5px;font-weight:600}.tab svg{width:23px;height:23px}.tab.active{color:var(--brand)}.tab.active .tab-dot{opacity:1}.tab.active:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.card.pad{padding:18px}.section-title{display:flex;align-items:center;gap:8px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:22px 2px 10px;font-weight:700}.section-title:before{content:"";width:4px;height:14px;border-radius:2px;background:var(--brand)}.lead{color:var(--ink-soft);font-size:15px}.row{display:flex;align-items:center;gap:13px;width:100%;padding:15px 16px;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink)}.row:last-child{border-bottom:none}.row:active{background:#f5f1e6}.row .row-main{flex:1;min-width:0}.row .row-title{font-weight:600;font-size:15px}.row .row-sub{color:var(--muted);font-size:12.5px;margin-top:1px}.row .chev{color:var(--muted);flex:none}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--brand-soft);color:var(--brand)}.chip.accent{background:var(--accent-soft);color:#7a5e00}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.muted{background:#edebe1;color:var(--muted)}.chip.grey{background:#eaf0f6;color:var(--ink-soft)}.chip.almost{background:var(--accent-soft);color:#7a5e00}.chip.danger{background:var(--danger-soft);color:var(--danger)}.check{width:22px;height:22px;border-radius:50%;flex:none;border:2px solid var(--line);display:grid;place-items:center;color:#fff}.check.done{background:var(--ok);border-color:var(--ok)}.check svg{width:12px;height:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--r);padding:13px 20px;font-size:15px;font-weight:700;transition:transform .06s ease,background .15s}.btn:active{transform:scale(.98)}.btn.primary{background:linear-gradient(135deg,#16406e,#0d2d52);color:#fff;box-shadow:0 4px 14px #0d2d5247}.btn.primary:hover{background:linear-gradient(135deg,#0d2d52,#081d38)}.btn.soft{background:var(--brand-soft);color:var(--brand)}.btn.accent{background:var(--accent);color:#081d38}.btn.ghost{background:transparent;color:var(--brand)}.btn.danger{background:var(--danger-soft);color:var(--danger)}.btn.block{width:100%}.btn.sm{padding:9px 14px;font-size:13.5px;border-radius:11px}.btn[disabled]{opacity:.45;cursor:not-allowed}.btn.ghost-light{background:#ffffff29;color:#fff}.btn.ghost-light:hover{background:#ffffff42}.hero{position:relative;border-radius:var(--r-lg);padding:24px 22px;color:#fff;background:radial-gradient(640px 320px at 92% -24%,rgba(200,164,21,.3),transparent 60%),linear-gradient(135deg,#16406e,#081d38);box-shadow:var(--shadow-lg);margin-bottom:16px;overflow:hidden}.hero h2{font-size:22px;letter-spacing:-.02em;margin-bottom:8px}.hero p{color:#ffffffdb;font-size:14.5px;line-height:1.5;margin-bottom:18px}.hero .hero-actions{display:flex;gap:10px;flex-wrap:wrap}.hero .btn.accent{background:linear-gradient(135deg,#dcc168,#c8a415);color:#081d38;box-shadow:0 3px 10px #081d3847}.hero:after{content:"7+";position:absolute;right:-8px;bottom:-26px;font-size:108px;font-weight:800;line-height:1;color:#ffffff14;pointer-events:none}.stage{display:flex;gap:14px;padding:14px 0;border-bottom:1px dashed var(--line)}.stage:last-child{border-bottom:none}.stage .letter{width:40px;height:40px;border-radius:12px;flex:none;flex-shrink:0;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:19px;font-weight:800}.stage .letter.accent{background:var(--accent);color:#081d38}.stage .stage-body{min-width:0}.stage .stage-name{font-weight:700;font-size:15.5px}.stage .stage-blurb{color:var(--ink-soft);font-size:13.5px;margin-top:2px}.note{background:var(--accent-soft);border-left:4px solid var(--accent);border-radius:0 var(--r) var(--r) 0;padding:13px 15px;font-size:14px;color:#6b5510}.prose{font-size:15.5px;color:var(--ink)}.prose p{margin:0 0 12px}.prose .h{font-weight:800;margin:20px 0 8px}.prose .h.h3{font-size:16px}.prose ul{margin:8px 0 12px;padding-left:20px}.prose li{margin:5px 0}.prose .kbd{display:inline-flex;align-items:center;gap:6px;background:var(--brand-soft);color:var(--brand);font-weight:700;padding:2px 9px;border-radius:7px;font-size:13.5px}.prose .leadterm{font-weight:700;color:var(--brand-ink)}.table{width:100%;border-collapse:collapse;font-size:13.5px;margin:8px 0 14px}.table th,.table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}.table th{background:var(--brand-soft);color:var(--brand-ink);font-weight:700}.table tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card)}.ring .bg{fill:none;stroke:#eaf0f6}.ring .fg{fill:none;stroke:var(--brand);stroke-linecap:round;transition:stroke-dashoffset .5s ease}.bar{height:8px;border-radius:999px;background:#eaf0f6;overflow:hidden}.bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--brand),#16406e);border-radius:999px;transition:width .4s ease}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;box-shadow:var(--shadow)}.stat .stat-num{font-size:26px;font-weight:800;color:var(--brand-ink)}.stat .stat-label{font-size:12px;color:var(--muted);margin-top:1px}.q-prompt{font-size:17px;font-weight:600;margin-bottom:14px;line-height:1.4}.opt{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1.5px solid var(--line);background:var(--card);border-radius:var(--r-sm);padding:13px 14px;margin-bottom:9px;font-size:15px}.opt.sel{border-color:var(--brand);background:var(--brand-soft)}.opt.correct{border-color:var(--ok);background:var(--ok-soft)}.opt.wrong{border-color:var(--danger);background:var(--danger-soft)}textarea,input[type=text]{width:100%;font-family:inherit;font-size:15px;color:var(--ink);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;background:var(--card);resize:vertical}textarea:focus,input[type=text]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.feedback{border-radius:var(--r-sm);padding:13px 15px;font-size:14px;margin-top:10px}.feedback.ok{background:var(--ok-soft);color:#065f46}.feedback.wrong{background:var(--danger-soft);color:#7f1d1d}.feedback.almost{background:var(--accent-soft);color:#7a5e00}.cuecard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:22px 20px;margin-bottom:16px}.cuecard .cat{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);font-weight:800;margin-bottom:8px}.cuecard .prompt{font-size:19px;font-weight:800;line-height:1.32;margin-bottom:14px}.cuecard .bullet{display:flex;gap:10px;align-items:flex-start;margin:8px 0;font-size:15px;color:var(--ink-soft)}.cuecard .bullet .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:8px;flex:none}.timer{font-variant-numeric:tabular-nums;font-weight:800;text-align:center}.timer.big{font-size:64px;letter-spacing:-.02em;color:var(--brand-ink)}.rec-dot{width:12px;height:12px;border-radius:50%;background:var(--danger);flex:none}.rec-dot.pulse{animation:pulse 1.1s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}.empty{text-align:center;color:var(--muted);padding:46px 20px}.empty svg{width:46px;height:46px;opacity:.5;margin-bottom:10px}.empty p{font-size:14.5px}.stack{display:flex;flex-direction:column}.row-flex{display:flex;align-items:center;gap:10px}.grow{flex:1}.mt{margin-top:12px}.mt-lg{margin-top:20px}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.hidden{display:none!important}.player{display:flex;align-items:center;gap:12px;background:var(--brand-soft);border-radius:var(--r);padding:12px 14px;margin:12px 0}.player audio{flex:1;min-width:0}.player-custom{background:var(--brand-soft);border-radius:var(--r);padding:12px 14px;margin:12px 0}.pc-btn{width:36px;height:36px;border-radius:50%;border:none;flex:none;background:var(--brand);color:#fff;font-size:13px;display:grid;place-items:center}.pc-speed{border:1px solid var(--brand);background:#fff;color:var(--brand);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;flex:none}.pc-time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.pc-chip{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.pc-chip.on{background:var(--accent-soft);border-color:var(--accent);color:#7a5e00}.pc-chip.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}@keyframes fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.fade{animation:fadein .22s ease}.selfaudit{margin-top:14px}.frame{background:var(--brand-soft);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:4px}.frame-line{margin:0 0 4px;font-size:14px}.frame-line:last-child{margin-bottom:0}.section-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:14px 0 8px}.audit-group{margin-bottom:12px}.audit-group-title{font-weight:800;font-size:13.5px;color:var(--brand);margin-bottom:6px}.audit-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.audit-item:last-child{border-bottom:none}.audit-item-text{font-size:13.5px;color:var(--ink-soft);line-height:1.45}.audit-scores{display:flex;gap:5px;flex:none}.audit-score{width:26px;height:26px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;padding:0}.audit-score.on{background:var(--brand);border-color:var(--brand);color:#fff}.selfaudit-transcript{font-size:14.5px;color:var(--ink-soft);font-family:var(--serif);line-height:1.6}.selfaudit-transcript.edit{display:block;width:100%;min-height:84px;resize:vertical;box-sizing:border-box;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px;color:var(--ink-soft);font-size:14.5px;line-height:1.6}.selfaudit-transcript.edit:focus{outline:none;border-color:var(--brand)}.selfaudit-summary{margin-top:14px;padding:12px;background:var(--brand-soft);border:1px solid var(--line);border-radius:10px}.chips{display:flex;flex-wrap:wrap;gap:6px}@media (min-width: 640px){.app-main{padding-left:24px;padding-right:24px}}.paywall{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:#081d388c;animation:fadein .18s ease}.paywall-sheet{width:100%;max-width:480px;max-height:92vh;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:22px}.paywall-list{list-style:none;margin:0;padding:0}.paywall-list li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}.paywall-list li:last-child{border-bottom:none}.paywall-list li span{font-size:14.5px;color:var(--ink-soft);line-height:1.45}.paywall-tick{flex:none;width:20px;height:20px;border-radius:999px;margin-top:1px;background:var(--ok-soft);color:var(--ok);display:flex;align-items:center;justify-content:center}.paywall-tick svg{width:12px;height:12px}.paywall-lock{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px;font-size:12px;color:var(--muted)}.row.locked{opacity:1}.lock-badge{flex:none;width:20px;height:20px;border-radius:999px;background:var(--accent-soft);color:#7a5e00;display:flex;align-items:center;justify-content:center}.lock-badge svg{width:12px;height:12px}@media (min-width: 640px){.paywall{align-items:center}}.help{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--paper);display:flex;flex-direction:column}.help-header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;height:calc(var(--header-h) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(18px,env(safe-area-inset-right,0px)) 0 max(18px,env(safe-area-inset-left,0px));background:linear-gradient(135deg,#16406e,#0d2d52 48%,#081d38);color:#fff;box-shadow:0 4px 20px #081d3847}.help-header .row-flex{font-weight:700;font-size:16px}.help-body{flex:1;overflow-y:auto;width:100%;max-width:720px;margin:0 auto;padding:20px 16px calc(24px + env(safe-area-inset-bottom,0px))}.help-section{margin-bottom:22px}.help-section h3{display:flex;align-items:center;gap:9px;font-size:16px;color:var(--brand-ink);margin-bottom:6px}.help-section h3 svg{width:18px;height:18px;color:var(--accent);flex:none}.help-section p{color:var(--ink-soft);font-size:14px;margin:0 0 6px;line-height:1.5}.help-section ul{margin:0 0 2px;padding-left:18px}.help-section li{color:var(--ink-soft);font-size:13.5px;margin:5px 0;line-height:1.5}.help-section strong{color:var(--ink)}.coach{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--brand-soft)}.coach-band{text-align:center;margin-bottom:12px}.coach-band-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.coach-band-range{font-size:28px;font-weight:800;color:var(--brand);line-height:1.1;margin-top:2px}.coach-band-name{font-size:14px;color:var(--ink-soft);margin-top:2px}.coach-signals{display:flex;flex-direction:column;gap:8px}.coach-signal{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:8px 11px}.coach-signal-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.coach-signal-label{font-size:13px;font-weight:600;color:var(--ink)}.coach-signal-hint{font-size:12px;color:var(--ink-soft);margin-top:3px;line-height:1.4}.coach-tip{margin-top:11px;font-size:13.5px;font-weight:700;color:var(--brand)}.coach-note{margin-top:6px;font-size:11.5px;color:var(--muted);line-height:1.45}.coach-caveat{margin-top:7px;font-size:11.5px;color:var(--muted);font-style:italic;line-height:1.45}.coach-lexis{margin-top:11px}.coach-lexis-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-bottom:6px}
