:root{color-scheme:light;--ink:#12243a;--muted:#657589;--navy:#08172a;--blue:#1869dd;--blue-dark:#114eb0;--cyan:#13becd;--line:#dbe5f1;--background:#f4f7fc;--white:#fff;--green:#197149;--danger:#b52535;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html,body{height:100%;height:100dvh;min-height:0;overscroll-behavior:none}body{margin:0;color:var(--ink);background:var(--background);-webkit-text-size-adjust:100%;touch-action:pan-y}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.54;cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.hidden{display:none!important}.btn{border:1px solid transparent;border-radius:14px;padding:13px 18px;min-height:48px;font-size:14px;font-weight:750;line-height:1.25;transition:background .15s,color .15s}.btn-full{width:100%}.btn-primary{background:var(--blue);color:white}.btn-primary:hover{background:var(--blue-dark)}.btn-outline{background:transparent;border-color:#bacbe1;color:var(--blue)}.btn-secondary{background:#e9f1ff;color:#155fc6}.btn-quiet{background:none;color:var(--muted)}.small-note{font-size:12px;line-height:1.5;color:#8ca0bc}.small-caps{font-size:10px;text-transform:uppercase;font-weight:850;letter-spacing:.13em;color:var(--muted)}.access-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:calc(14px + env(safe-area-inset-top)) 18px calc(14px + env(safe-area-inset-bottom));background:radial-gradient(circle at 70% 0%,#193759 0%,transparent 42%),linear-gradient(155deg,#0b1d36,#061224);color:white}.access-card{width:min(100%,405px);min-height:0;max-height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;text-align:center;display:flex;flex-direction:column;align-items:center;padding:10px 8px}.brand-mark{width:64px;height:64px;flex:none;border-radius:18px;background:linear-gradient(140deg,#2c91f3,#1b56bb);font-size:42px;font-weight:900;line-height:64px;position:relative;box-shadow:0 16px 55px #07152d66}.brand-mark span{position:absolute;color:#49ece8;font-size:18px;top:-12px;right:-9px}.eyebrow{margin:22px 0 9px;font-size:11px;font-weight:800;letter-spacing:.18em;color:#61d4e3}.access-card h1{font-size:clamp(26px,6vw,37px);line-height:1.09;letter-spacing:-.04em;margin:5px 0 12px;max-width:360px}.access-card p{color:#acc0d6;line-height:1.6;font-size:14px;max-width:340px;margin:0 0 22px}.access-card form{width:100%;max-width:340px;text-align:left}.access-card label{display:block;color:#cfe0f3;font-size:12px;font-weight:730;margin-bottom:10px}.code-field{width:100%;text-align:center;font-size:27px;letter-spacing:.46em;padding:12px 5px;border:1px solid #50627d;border-radius:13px;background:#1a2a42;color:#fff;outline:none;min-height:58px;margin-bottom:13px}.access-footer{font-size:11px;color:#768ca7;margin-top:20px}.app-shell{height:100dvh;display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--background)}.app-header{flex:none;display:flex;justify-content:space-between;align-items:center;gap:8px;background:#fff;border-bottom:1px solid var(--line);min-height:58px;padding:8px max(16px,env(safe-area-inset-left))}.header-brand{background:none;border:0;display:flex;align-items:center;gap:10px;font-size:11px;font-weight:900;letter-spacing:.07em;color:#213452;padding:0}.mini-mark{display:inline-grid;place-items:center;width:33px;height:33px;border-radius:10px;color:#fff;background:#165cc5;font-size:21px;font-weight:900}.connection-pill{display:flex;gap:6px;align-items:center;border-radius:30px;background:#eef2f6;color:#66748a;font-size:10px;font-weight:750;padding:9px 10px;white-space:nowrap}.connection-pill.live{background:#dcf9f2;color:#146b55}.status-dot{width:7px;height:7px;background:#94a6ba;border-radius:50%}.live .status-dot{background:#0baf84}.app-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding:24px max(17px,calc((100vw - 720px)/2)) 22px}.view{max-width:650px;margin:0 auto}.hero-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;letter-spacing:.12em;font-weight:900;font-size:10px;color:#457598}.hero-topline span{color:#136e9d;background:#e3f5fa;border-radius:20px;padding:5px 9px}.view h2{font-size:clamp(25px,5.3vw,36px);letter-spacing:-.035em;line-height:1.16;margin:12px 0}.hero-sub{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 22px}.quick-grid{display:grid;gap:12px}.action-card{width:100%;border:1px solid var(--line);background:#fff;border-radius:18px;padding:17px;text-align:left;display:flex;flex-direction:column;gap:8px;box-shadow:0 4px 19px #11284608}.action-card.featured{background:linear-gradient(130deg,#1a61c9,#12459d);color:white;border-color:transparent;box-shadow:0 10px 30px #125caa35}.action-tag{font-size:10px;letter-spacing:.13em;font-weight:900;color:#0085a7}.featured .action-tag{color:#9de9f1}.action-title{font-size:18px;font-weight:850;letter-spacing:-.025em}.action-desc{font-size:12px;color:#61758d;line-height:1.5}.featured .action-desc{color:#d3e3f9}.action-arrow{font-size:12px;font-weight:900;color:var(--blue);margin-top:3px}.featured .action-arrow{color:#fff}.setting-panel{border:1px solid var(--line);background:#fff;border-radius:16px;margin:17px 0}.setting-panel summary{padding:14px 16px;font-size:13px;font-weight:760;cursor:pointer;display:flex;justify-content:space-between}.setting-inner{border-top:1px solid var(--line);padding:16px;display:grid;gap:10px}.setting-inner label{font-size:12px;font-weight:730}.setting-inner input{min-width:0;width:100%;height:45px;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:14px}.setting-inner code{overflow-wrap:anywhere}.footnote{font-size:11px;line-height:1.6;color:#8b9bb1;margin:18px 0}.question-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);font-weight:750}.progress-track{height:5px;overflow:hidden;border-radius:10px;background:#dce7f4;margin:12px 0 23px}.progress-track div{height:100%;background:#27abc5;transition:width .3s}.timer-area{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#eaf2fd;padding:14px 16px;border-radius:15px;margin-bottom:15px}.timer-caption{font-size:12px;color:#45627e;margin-top:5px}.clock{font-variant-numeric:tabular-nums;font-size:33px;letter-spacing:-.05em;font-weight:900;color:#155cb6}.clock.urgent{color:#b52a3c}.question-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px 16px;box-shadow:0 5px 30px #14233b07}.question-domain{color:#1673a6;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.question-card h2{font-size:clamp(19px,4.8vw,25px);line-height:1.36;letter-spacing:-.02em;margin:10px 0 18px}.answer-options{display:grid;gap:9px}.answer-option{width:100%;display:flex;align-items:flex-start;gap:12px;text-align:left;background:#fff;border:1px solid #d9e3f0;border-radius:13px;min-height:54px;padding:12px;color:#263b54;font-size:13px;line-height:1.5}.answer-option:not(:disabled):hover{background:#edf6ff;border-color:#7fabdf}.answer-letter{display:grid;place-items:center;flex:none;width:25px;height:25px;font-size:12px;font-weight:900;border-radius:8px;background:#e8f0fd;color:#155ec4}.answer-option.selected{background:#edf5ff;border-color:#2578cf}.answer-option.correct{border-color:#2b9969;background:#eafaf0}.answer-option.wrong{border-color:#d75e70;background:#fff1f4}.question-feedback{font-size:12px;line-height:1.5;color:#486a86;margin:12px 0;min-height:18px}.question-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.question-actions .btn-full{flex-basis:100%}.explanation{padding:14px 16px;border-radius:13px;background:#e6f4fb;font-size:13px;line-height:1.6}.results-header p{font-size:13px;color:var(--muted)}.result-number{font-size:72px;font-weight:900;color:#145fc4;line-height:1.1;margin:12px 0}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.result-stat{padding:12px;background:white;border:1px solid var(--line);border-radius:12px;display:grid;gap:5px;text-align:center}.result-stat strong{font-size:27px}.result-stat span{font-size:11px;color:var(--muted)}.results-actions{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.review-heading{font-size:19px}.review-item{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;margin:10px 0;font-size:13px;line-height:1.6}.review-item h4{font-size:15px;line-height:1.4;margin:7px 0}.review-item p{margin:7px 0}.review-status{font-size:11px;font-weight:850;color:var(--danger)}.review-status.correct{color:var(--green)}.voice-dock{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #dfe8f3;background:#fff;padding:11px max(16px,env(safe-area-inset-right)) calc(11px + env(safe-area-inset-bottom));box-shadow:0 -5px 25px #132f4b10}.voice-dock-info{min-width:0;display:flex;align-items:center;gap:10px}.voice-dock-info strong,.voice-dock-info span{display:block}.voice-dock-info strong{font-size:12px}.voice-dock-info span{font-size:10px;color:var(--muted);margin-top:3px}.voice-bubble{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#daf6f7;color:#0d98a8}.voice-bubble.active{background:#18b9cc;color:white;box-shadow:0 0 0 4px #12a5b52b}.btn-voice{background:#087ac3;color:white;white-space:nowrap;min-height:45px;font-size:12px;padding:10px 12px}.btn-voice.disconnect{background:#eff3f7;color:#33465a;border-color:#d8e1ed}@media(min-width:700px){.quick-grid{grid-template-columns:1fr 1fr}.action-study{grid-column:1/-1}.app-content{padding-top:36px}.question-card{padding:26px}}@media(max-height:670px){.access-card h1{font-size:27px}.brand-mark{width:52px;height:52px;line-height:52px;font-size:34px}.eyebrow{margin-top:12px}.access-card p{margin-bottom:13px}.access-footer{margin-top:9px}}@media(max-width:350px){.header-brand{font-size:10px;gap:5px}.voice-dock-info{gap:5px}.voice-bubble{width:29px;height:29px}.voice-dock-info strong{font-size:11px}.voice-dock-info span{font-size:9px}.btn-voice{font-size:10px}}

.header-logout{font-size:12px;line-height:1.2;font-weight:750;color:#d7e5f8;border:1px solid #57708a;background:transparent;border-radius:10px;padding:8px 10px;min-height:36px;white-space:nowrap;flex-shrink:0}
.header-logout:hover,.header-logout:focus-visible{background:#284461}
@media(max-width:420px){.header-logout{font-size:11px;padding:7px 8px}.header-brand{font-size:12px}.connection-pill{font-size:10px}}

.result-domains{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px;margin:14px 0}.result-domain{border:1px solid #dbe5f1;border-radius:12px;background:#fff;padding:12px;display:flex;flex-direction:column;gap:4px}.result-domain strong{color:#12243a;font-size:13px}.result-domain span{color:#556b82;font-size:12px}

/* ASE-08 welcome, coach navigation, and practice-review states */
.welcome-view{max-width:490px;margin:auto;text-align:center;padding:24px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.welcome-icon{width:74px;height:74px;border-radius:22px;background:linear-gradient(135deg,#1a74e8,#123d91);color:white;font-size:46px;line-height:74px;font-weight:900;position:relative;box-shadow:0 14px 42px #174ad02e}
.welcome-icon span{position:absolute;top:-15px;right:-12px;font-size:20px;color:#15bfc9}
.welcome-view h2{font-size:clamp(28px,6vw,37px);line-height:1.1;margin:3px 0}
.welcome-view p{color:var(--muted);font-size:15px;line-height:1.65;margin:0}
.welcome-cta{font-size:18px;min-height:62px;margin-top:10px}
.welcome-status{min-height:35px;font-size:13px;line-height:1.5;color:#4d6b89}
.action-card.voice-activated,.btn.voice-activated,.header-brand.voice-activated{animation:voice-selected .55s ease-out;border-color:var(--cyan);box-shadow:0 0 0 4px #0fc7c533}
@keyframes voice-selected{0%{transform:scale(1);filter:brightness(1)}30%{transform:scale(.97);filter:brightness(1.15)}65%{transform:scale(1.025)}100%{transform:scale(1)}}
.practice-verdict{border-radius:12px;padding:12px 15px;background:#fff4e8;color:#8a4b07;font-size:14px;font-weight:800;margin:10px 0}
.practice-verdict.practice-success{background:#e5f6ed;color:#136739}
.qa-panel{border-radius:16px;background:#eef4ff;padding:22px;display:grid;gap:9px;margin:20px 0}
.qa-panel span{color:var(--muted);font-size:13px}
#review-view .question-card p{line-height:1.6}
#review-view .question-card{margin:18px 0}
@media(prefers-reduced-motion:reduce){.action-card.voice-activated,.btn.voice-activated,.header-brand.voice-activated{animation:none;outline:3px solid var(--cyan)}}

/* Reconnect CTA appears only after a completed voice farewell or disconnected state. */
#connect-voice{flex-shrink:0;min-height:44px;min-width:114px;padding:10px 12px;white-space:nowrap}
.voice-dock-info{min-width:0}
#voice-detail{overflow-wrap:anywhere}
@media(max-width:380px){#connect-voice{font-size:11px;min-width:104px;padding:9px 8px}}

/* ASE-14: user-approved ASE C1 emblem is the sole application logo. */
.brand-logo{display:block;object-fit:contain;aspect-ratio:1/1;flex-shrink:0;max-width:100%;height:auto}
.brand-logo-access{width:88px;height:88px;margin:0 auto 4px;filter:drop-shadow(0 8px 20px #00132a80)}
.brand-logo-welcome{width:90px;height:90px;margin:0 auto;filter:drop-shadow(0 10px 20px #06367530)}
.brand-logo-header{width:34px;height:34px;border-radius:50%;filter:drop-shadow(0 1px 2px #07173528)}
@media(max-height:670px){.brand-logo-access{height:60px;width:60px}}
@media(max-width:350px){.brand-logo-header{height:30px;width:30px}}
