:root{--paper:#101714;--ink:#e6ede6;--muted:#a5b3a7;--green:#3f7054;--line:#334338;--accent:#bdd49c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px 'DM Sans',system-ui,sans-serif}header{max-width:1440px;margin:auto;padding:26px 6%;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.brand{font-size:29px;font-weight:700;letter-spacing:-1.5px;color:var(--ink);text-decoration:none}.brand span{font-weight:400}.brand i{font-size:12px;color:#a6b889;margin-left:5px}.tagline{color:var(--muted);font-size:12px;flex:1}button,select,input,textarea{font:inherit}button{cursor:pointer;border:1px solid #485d4d;border-radius:7px;padding:11px 16px;background:transparent;color:var(--ink);font-weight:600}button:hover{background:#24392b}button:disabled{opacity:.45;cursor:wait}button.primary{background:var(--green);color:white;border-color:var(--green)}button.danger{background:#9a443d;color:white;border-color:#9a443d}.quiet{border-color:transparent;padding:9px 10px;font-size:13px}main{max-width:1320px;padding:48px 5% 60px;margin:auto}.intro{margin-bottom:34px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#afc29f}h1{font:48px 'Libre Baskerville',Georgia,serif;letter-spacing:-2px;margin:16px 0}p{line-height:1.65}.intro p{color:var(--muted);margin:0}.panel{background:#19241e;border:1px solid var(--line);border-radius:12px}.setup{display:grid;grid-template-columns:1.5fr 1fr 1.3fr;padding:20px 24px;gap:24px;margin-bottom:28px}label{display:block;font-size:10px;letter-spacing:1.4px;font-weight:700;color:var(--muted)}select,input,textarea{display:block;width:100%;color:var(--ink);background:#19241e;border:1px solid #405446;border-radius:5px;padding:11px;margin-top:9px;font-size:14px;letter-spacing:0;line-height:1.5}select{cursor:pointer}.setup select{border:0;padding-left:0;background:transparent;font-weight:600}.layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px}.stage{padding:25px 32px;min-height:500px}.stagehead,.dialoghead{display:flex;align-items:center;justify-content:space-between;gap:15px}.track{height:3px;background:#2b3b30;margin:18px 0 14px}.track div{background:#93ab7b;height:100%;width:0;transition:width .25s}.muted{color:var(--muted);font-size:13px}.cue{padding:30px 0 24px;min-height:225px}.lineText{font:26px/1.65 'Libre Baskerville',Georgia,serif;margin:20px 0;white-space:pre-line}.hiddenline{color:#b7c4ac;font-style:italic}.actions{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0}#status{min-height:22px}.progress{padding:27px 24px}h2{font:23px/1.5 'Libre Baskerville',Georgia,serif;margin:12px 0 22px}.compact select{padding:7px;font-size:12px}.sceneStat{padding:17px 0;border-bottom:1px solid var(--line)}.statTitle{display:flex;justify-content:space-between;font-size:12px;font-weight:600}.sceneStat small{display:block;color:var(--muted);margin-top:7px;font-size:11px}.meter{height:5px;background:#2b3b30;border-radius:3px;margin-top:9px;overflow:hidden}.meter div{height:100%;background:#94ac7d}.fine{font-size:11px;color:var(--muted);line-height:1.7}.note{padding:23px 15px}.note>span{font-size:24px;color:#a7b58c}.note h3{font:19px 'Libre Baskerville',Georgia,serif}.note p{font-size:12px;color:var(--muted)}#message{border:1px solid #4d6752;background:#24392b;padding:15px;border-radius:8px;margin-bottom:20px;white-space:pre-line}#answer,#result{border-top:1px solid var(--line);padding-top:22px;margin-top:24px}audio{width:100%;margin-top:12px}.scoreline{display:flex;gap:12px;align-items:baseline;margin-bottom:20px}.scoreline strong{font:40px 'Libre Baskerville',Georgia,serif}.scoreline span{color:var(--muted);font-size:13px}#diff{display:flex;gap:5px;flex-wrap:wrap;line-height:2}#diff span{padding:0 5px;border-radius:3px;font-size:13px}.changed{background:#5c4821}.missed{background:#603b31}.added{background:#493e60}.match{color:#b4d49c}dialog{max-width:850px;width:92vw;max-height:88vh;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);padding:28px}dialog::backdrop{background:#030806cc}dialog label{margin-bottom:15px}.reviewline{padding:17px 0;border-bottom:1px solid var(--line);display:flex;gap:15px;align-items:flex-start}.reviewline div{flex:1}.reviewline p{margin:5px 0;font-size:13px;white-space:pre-line}.reviewline small{color:var(--muted)}.reviewline button{font-size:12px}.reviewline b{font-size:12px}.voiceRow{display:grid;grid-template-columns:1fr 2fr auto;gap:20px;align-items:center;margin:14px 0}.voiceRow label{margin:0}footer{max-width:1320px;margin:auto;padding:20px 5%;border-top:1px solid var(--line);font-size:10px;letter-spacing:2px;color:#afc29f;display:flex;justify-content:space-between}footer span{letter-spacing:0}[hidden]{display:none!important}:focus-visible{outline:3px solid #a2b385;outline-offset:3px}@media(max-width:850px){.layout{grid-template-columns:1fr}.tagline{display:none}header{justify-content:space-between}.setup{gap:12px;grid-template-columns:1fr 1fr}.setup label:first-child{grid-column:1/-1}.stage{padding:20px}.lineText{font-size:22px}h1{font-size:38px}main{padding-top:30px}.stagehead{align-items:flex-start}.stagehead>div{display:flex;flex-direction:column}.cue{padding-top:20px}aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}}@media(max-width:520px){aside{display:block}.setup{grid-template-columns:1fr}.setup label:first-child{grid-column:auto}.setup label{border-bottom:1px solid var(--line)}.stagehead{gap:8px}button{padding:12px}footer span{display:none}}

.preparation{padding:22px 26px;margin-bottom:28px;display:flex;gap:24px;align-items:center;justify-content:space-between}.preparation>div:first-child{flex:1}.preparation h2{font-size:20px;margin:8px 0}.preparation p{margin:8px 0;color:var(--muted);font-size:13px}.preparation progress{width:100%;height:10px;accent-color:var(--green)}.preparation .actions{max-width:220px}@media(max-width:700px){.preparation{display:block}.preparation .actions{max-width:none}}

:root{color-scheme:dark}.panel{box-shadow:0 10px 30px #00000014}select option,select optgroup{background:#19241e;color:var(--ink)}button.primary:hover{background:#4b8060}textarea::placeholder{color:#92a395}progress{accent-color:#a6c98d}button:disabled{cursor:default}audio{color-scheme:dark}
.learning{display:grid;grid-template-columns:280px 1fr;gap:24px;padding:22px 26px;margin-bottom:24px}.learning p{margin:0;line-height:1.7}.learning>label select{font-size:13px}.fastOptions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;margin:18px 0}.fastOptions label{font-size:9px}.fastOptions select{font-size:12px}#fastFeedback{padding:12px 15px;margin-top:16px;border:1px solid #58744f;background:#233726;border-radius:7px;color:#d4e7c5;font-size:13px}#micActivity{display:flex;gap:10px;align-items:center;font-size:12px;color:#d4decf;margin-top:18px}#micDot{display:block;width:10px;height:10px;border-radius:50%;background:#71907a}#micActivity.speaking #micDot{background:#d4bd76;box-shadow:0 0 0 5px #d4bd7622}#micActivity.speaking #micLabel{color:#e5d39d}
@media(max-width:850px){.learning{grid-template-columns:1fr}.fastOptions{grid-template-columns:1fr 1fr}}@media(max-width:520px){.fastOptions{grid-template-columns:1fr}.learning{padding:20px}}

.visibilityChoice{max-width:320px;margin-bottom:12px}.visibilityChoice select{font-size:13px}

.toggleLabel{display:flex;gap:10px;align-items:center;font-size:12px;letter-spacing:0;margin:16px 0}.toggleLabel input{width:18px;height:18px;margin:0;accent-color:#a6c98d}

.soundSettings{display:flex;align-items:center;gap:24px;padding:16px 24px;margin-bottom:24px;flex-wrap:wrap}.soundSettings>label{min-width:180px}.soundSettings p{flex-basis:100%;margin:0}.soundRow{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}#effectStatus{color:#c9b980}

.authPanel{max-width:560px;padding:32px;margin:55px auto}.authPanel h1{font-size:36px}.authPanel label{margin:16px 0}.authPanel code{word-break:break-word;font-size:12px}.memberRow{border-top:1px solid var(--line);padding:22px 0}.memberRow button{margin:8px 8px 0 0}#createMember{padding-bottom:20px}#createMember label{margin:12px 0}#adminMessage{white-space:pre-wrap;overflow-wrap:anywhere}#accountLabel{font-size:12px;color:var(--muted)}header{flex-wrap:wrap;gap:12px}.memberPace{max-width:300px;margin:20px 0}.authPanel input{width:100%}
