:root{--paper:#f7f6f2;--card:#fff;--ink:#263b34;--text:#35423d;--muted:#858b81;--line:#e6e7de;--green:#426b52;--soft-green:#eff4eb;--amber:#c67c32;--soft-amber:#fbf0df;--red:#bd514b;--soft-red:#fcf0ee;--radius:14px;font-family:"Segoe UI",Arial,sans-serif;color:var(--text);font-synthesis:none;background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button, input, textarea, select{outline-offset:4px}button:focus-visible,a:focus-visible{outline:2px solid var(--green)}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-library{position:absolute;width:0;height:0;overflow:hidden}button{color:inherit}a{color:inherit}.app-shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}.sidebar{padding:33px 25px 24px;border-right:1px solid var(--line);background:#f0f1e9;display:flex;flex-direction:column;align-items:stretch}.brand{display:flex;gap:12px;text-decoration:none;align-items:center;font-weight:700;font-size:21px;letter-spacing:-.8px;margin-bottom:48px}.brand small{display:block;font-size:8px;letter-spacing:1.9px;color:var(--muted);margin-top:6px;font-weight:500}.brand-mark{height:38px;width:38px;display:flex;align-items:center;justify-content:center;gap:4px;border-radius:10px;background:var(--ink)}.brand-mark i{height:6px;width:6px;background:#e5ba78;border-radius:4px}.brand-mark b{height:6px;width:13px;background:#e5ba78;border-radius:4px}.sidebar-section-label{font-size:9px;letter-spacing:1.8px;font-weight:600;color:var(--muted)}.mode-nav{display:grid;gap:7px;margin-top:14px;margin-bottom:35px}.mode-button{display:flex;align-items:center;gap:13px;border:1px solid transparent;background:transparent;text-align:left;border-radius:10px;padding:14px 13px;font-weight:600;font-size:14px}.mode-button small{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:4px}.mode-button.active{background:var(--card);border-color:#e2e5d8;box-shadow:0 2px 3px #263b3404;color:var(--ink)}.mode-button:hover{background:#fff9}.nav-dot{margin-left:auto;width:5px;height:5px;background:var(--green);border-radius:50%;visibility:hidden}.active .nav-dot{visibility:visible}.settings-heading{display:flex;justify-content:space-between;align-items:center;padding:0 2px 16px;border-bottom:1px solid #dfe3d5;margin-bottom:21px}.settings-heading svg{width:15px;color:var(--muted)}.sound-settings{display:grid;gap:25px}.setting{display:grid;grid-template-columns:1fr auto;align-items:center;row-gap:13px}.setting label{font-size:12px;font-weight:500}.setting-value{display:flex;align-items:baseline;background:#ffffffaa;border:1px solid #e1e5d9;border-radius:5px;padding:3px 5px}.setting-value input{width:33px;border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:600;text-align:right;padding:1px;appearance:textfield;-moz-appearance:textfield}.setting-value input::-webkit-inner-spin-button{appearance:none}.setting-value span{font-size:9px;color:var(--muted);margin-left:4px}.setting:has(#frequency-number) .setting-value input{width:37px}.setting input[type=range]{grid-column:1/-1;appearance:none;height:3px;background:#d6ddcc;border-radius:4px;width:100%;margin:1px 0;cursor:pointer;accent-color:var(--green)}.setting input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;background:var(--green);border:3px solid #f4f5ec;box-shadow:0 0 0 1px var(--green)}.setting input[type=range]::-moz-range-thumb{width:7px;height:7px;border-radius:50%;background:var(--green);border:3px solid #f4f5ec}.setting p{grid-column:1/-1;font-size:10px;color:var(--muted);margin:0;line-height:1.6}.button{border:1px solid var(--line);border-radius:7px;display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:12px;font-weight:600;background:#fff;min-height:39px}.button:hover:not(:disabled){background:#f1f4ed;border-color:#c4cfbb}.button.primary{background:var(--ink);color:white;border-color:var(--ink)}.button.primary:hover:not(:disabled){background:#385046}.button.soft{background:var(--soft-green);color:var(--green);border-color:#e0e8d9}.button.quiet{background:transparent;border-color:transparent}.button.stop{color:var(--red)}.button svg{width:15px;height:15px}.tone-test{margin-top:28px;background:transparent;width:100%;border-color:#d4dbca;color:var(--green);font-size:11px;min-height:36px}.sidebar-footer{margin-top:auto;padding-top:35px;color:var(--green);font-size:10px}.sidebar-footer small{display:block;color:var(--muted);font-size:9px;margin-top:10px}.receiving-dot{display:inline-block;width:5px;height:5px;background:var(--green);border-radius:50%;margin-right:6px}.main-content{max-width:1430px;width:100%;padding:28px 47px 27px;margin:0 auto}.topbar{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-bottom:39px}.topbar #breadcrumb span{color:#b3b7ae;margin:0 9px}.topbar-note{display:flex;align-items:center;gap:6px}.topbar-note svg{height:13px;width:13px}.view-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:20px}.eyebrow{font-size:9px;color:var(--amber);letter-spacing:2px;font-weight:600;margin-bottom:9px}.view-heading h1{font-family:Georgia,"Times New Roman",serif;font-size:36px;letter-spacing:-1px;line-height:1.12;font-weight:400;margin:0 0 12px;color:var(--ink)}.view-heading p{font-size:12px;color:var(--muted);margin:0;line-height:1.65}.heading-badge{font-size:10px;color:var(--green);padding:7px 10px;background:var(--soft-green);border:1px solid #e0e5d8;border-radius:6px;white-space:nowrap}.heading-badge svg{width:12px;height:12px;vertical-align:-2px;margin-right:4px}.lesson-card,.practice-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:22px;overflow:hidden}.lesson-path{padding:18px 22px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:23px}.small-label{font-size:9px;color:var(--muted);letter-spacing:1.3px;text-transform:uppercase;white-space:nowrap}.level-track{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.level-button{display:flex;justify-content:center;align-items:center;position:relative;width:29px;height:29px;flex-shrink:0;border-radius:6px;font-size:10px;background:#f6f7f2;border:1px solid transparent;color:#9b9f95}.level-button.active{background:var(--ink);color:#fff}.level-button.completed{color:var(--green);background:var(--soft-green)}.level-button:not(:disabled):hover{border-color:var(--green)}.lesson-body{padding:21px 23px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:center}.lesson-intro{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:14px}.lesson-intro h2{font-size:14px;color:var(--ink);font-weight:600;margin:0}.phase-badge{font-size:9px;background:var(--soft-amber);color:#a27640;border-radius:4px;padding:4px 7px}.lesson-instructions{font-size:11px;color:var(--muted);line-height:1.7;margin:8px 0 0}.character-cards{display:flex;gap:10px}.character-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:9px;min-width:162px;padding:15px;background:#fafbf7}.character-letter{font-family:Georgia,serif;font-size:33px;color:var(--ink);line-height:1}.morse-pattern{font-family:"Courier New",monospace;letter-spacing:3px;white-space:nowrap;color:var(--amber);font-size:18px;font-weight:700}.character-card .morse-pattern{font-size:16px;letter-spacing:2px}.character-card small{font-size:8px;display:block;color:var(--muted);letter-spacing:1px;margin-top:3px}.character-play{width:27px;height:27px;min-width:27px;display:flex;justify-content:center;align-items:center;background:white;border:1px solid #e0e4d7;border-radius:50%;color:var(--green);padding:0}.character-play svg{width:13px;height:13px}.character-play.playing{background:var(--soft-amber);color:var(--amber);border-color:#e8c598}.lesson-meta{border-left:1px solid var(--line);padding-left:24px;display:grid;gap:13px;font-size:10px;color:var(--muted);min-width:155px}.lesson-meta strong{display:block;color:var(--ink);font-size:17px;font-weight:500;margin-bottom:4px}.lesson-meta .learned-list{letter-spacing:1px;line-height:1.7;font-size:9px;max-width:185px;color:var(--green)}.receiver{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow:hidden}.receiver-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:61px;padding:0 23px;gap:15px}.signal-status{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted);min-width:150px}.signal-status>span:first-child{height:6px;width:6px;border-radius:50%;background:#b4bdac;box-shadow:0 0 0 4px #f3f5ef}.signal-status>span:first-child.on{background:var(--amber);box-shadow:0 0 0 4px var(--soft-amber)}.waveform{display:flex;align-items:center;gap:4px;height:25px;overflow:hidden}.waveform i{height:4px;width:2px;background:#c4cebd;border-radius:2px;transition:height .065s,background .065s}.waveform.active i{height:var(--bar);background:var(--amber)}.session-counter{font-size:10px;font-variant-numeric:tabular-nums;color:var(--muted);min-width:125px;text-align:right}.progress-track{height:2px;background:#eef0e8}.progress-track>div{height:100%;background:#90a680;transition:width .2s;width:0}.writing-columns{display:grid;grid-template-columns:1fr 1fr;min-height:310px}.writing-pane,.answer-pane{display:flex;flex-direction:column;min-width:0;padding:25px 24px 19px}.writing-pane{border-right:1px solid var(--line)}.answer-pane{background:#fcfcf9}.pane-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.pane-heading h2{font-family:Georgia,serif;font-weight:400;font-size:20px;color:var(--ink);margin:0}.pane-heading>span{font-size:7px;letter-spacing:1px;color:#a1a698;text-align:right}.empty-state{min-height:208px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px;gap:12px;color:var(--muted)}.empty-state .empty-symbol{font-family:Georgia,serif;font-size:32px;color:#cad0c2;border:1px dashed #d8dfcf;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center}.empty-state h3{font-size:12px;font-weight:500;color:#747e6d;margin:3px 0 0}.empty-state p{font-size:11px;line-height:1.8;max-width:220px;margin:0}.empty-state .hint-morse{font-family:"Courier New",monospace;font-size:24px;color:#c9cdbf;letter-spacing:4px}.copy-placeholder{border:1px dashed #dce2d3;border-radius:7px;background:#fdfefb;min-height:206px;padding:21px;color:#a2a998;font-size:11px;line-height:1.8}.copy-placeholder .typing-cursor{width:1px;display:inline-block;background:#9ba88e;height:17px;vertical-align:middle;margin-right:9px}.receiver-actions{border-top:1px solid var(--line);padding:16px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:72px;flex-wrap:wrap}.action-group{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.action-help{font-size:10px;color:var(--muted);line-height:1.6}.action-help kbd,.bottom-note kbd{font-family:inherit;background:#f4f5ef;border:1px solid #e2e6d9;border-radius:3px;padding:2px 5px;font-size:9px;color:#808b75}.bottom-note{display:flex;justify-content:space-between;gap:14px;font-size:9px;color:#8f9588;margin-top:17px;line-height:1.8}.message{font-size:12px;color:var(--red);margin-top:15px;line-height:1.7;min-height:20px}.message.success{color:var(--green)}.learn-copy-list,.learn-answer-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(43px,1fr));gap:8px;max-height:216px;overflow:auto;padding:2px 3px 8px}.copy-cell,.answer-cell{height:40px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:center;gap:3px;font-family:"Courier New",monospace;font-size:18px;position:relative}.copy-cell.correct{background:var(--soft-green);border-color:#e2eadb;color:var(--green)}.copy-cell.incorrect{background:var(--soft-red);border-color:#f1d7d2;color:var(--red)}.copy-cell svg{width:11px;height:11px;position:absolute;right:3px;top:3px;stroke-width:2.5}.answer-cell{background:#f6f8f1;color:var(--green);border-color:#e5eadd}.answer-cell.incorrect,.answer-cell.missing{background:var(--soft-amber);color:#a57837;border-color:#eddfc6}.answer-cell.extra{border-style:dashed;color:var(--red);background:var(--soft-red)}.cell-index{position:absolute;left:3px;top:2px;font-family:"Segoe UI",sans-serif;font-size:6px;color:#a5ab9d}.entry-row{margin-top:15px;display:flex;align-items:center;gap:13px}.letter-entry{background:#fbfcf8;border:1px solid #ced9c3;border-radius:7px;width:64px;height:55px;text-align:center;text-transform:uppercase;font-size:28px;font-family:"Courier New",monospace;color:var(--ink);caret-color:var(--green)}.entry-row small{color:var(--muted);font-size:10px;line-height:1.7}.lesson-feedback{margin-top:13px;min-height:22px;font-size:11px;line-height:1.65;color:var(--muted)}.lesson-feedback.correct{color:var(--green)}.lesson-feedback.incorrect{color:var(--red)}.practice-card{padding:20px 23px}.practice-card-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:19px}.segmented{display:flex;padding:3px;background:#f3f4ee;border:1px solid #e9ece2;border-radius:7px;gap:2px}.segmented button{border:0;background:transparent;border-radius:5px;padding:7px 12px;font-size:10px;color:var(--muted)}.segmented button.active{background:white;color:var(--ink);box-shadow:0 1px 3px #263b3410}.practice-fields{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:21px;align-items:start}.field label,.field-label{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.field input,.field select{width:100%;border:1px solid #dde3d4;border-radius:6px;background:#fcfdf9;height:36px;font-size:11px;padding:8px 10px;color:var(--ink);min-width:0}.field input[type=text]{text-transform:uppercase;font-family:"Courier New",monospace;letter-spacing:2px}.field .segmented{width:100%;height:36px}.field .segmented button{flex:1;padding:6px 5px;font-size:10px}.field p{font-size:9px;color:var(--muted);line-height:1.65;margin:8px 0 0}.double-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.character-picker{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.character-picker summary{font-size:10px;color:var(--green);cursor:pointer}.character-grid{display:flex;flex-wrap:wrap;gap:5px;padding-top:12px}.character-grid button{height:28px;width:28px;border:1px solid #e3e7dc;border-radius:5px;background:#fafbf7;font-size:11px;color:var(--muted)}.character-grid button.selected{background:var(--soft-green);color:var(--green);border-color:#b7c9a9}.practice-textarea{resize:vertical;min-height:211px;max-height:500px;width:100%;border:1px solid #e1e6d9;background:#fbfcf8;border-radius:7px;padding:15px;color:var(--ink);font-family:"Courier New",monospace;font-size:21px;letter-spacing:3px;line-height:1.75;text-transform:uppercase;caret-color:var(--green)}.practice-textarea::placeholder{font-family:"Segoe UI",sans-serif;text-transform:none;letter-spacing:0;font-size:11px;color:#a0a796;line-height:1.8}.textarea-meta{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-top:8px}.results-summary{display:flex;align-items:center;gap:13px;margin-bottom:17px;padding:11px 13px;border:1px solid #e1e8d8;background:#f2f6ed;border-radius:7px}.results-summary strong{font-family:Georgia,serif;font-size:28px;color:var(--green);font-weight:400}.results-summary span{font-size:10px;color:var(--muted);line-height:1.7}.results-summary b{font-size:11px;color:var(--green);font-weight:500}.result-grid{display:flex;flex-wrap:wrap;gap:7px;max-height:230px;overflow:auto;align-content:flex-start;padding:2px}.result-grid .answer-cell,.result-grid .copy-cell{width:37px;height:37px;font-size:17px}.result-word-break{flex-basis:100%;height:0}.answer-legend{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:9px;margin-top:14px}.answer-legend span:before{content:"";display:inline-block;width:6px;height:6px;border-radius:2px;background:#b0c39f;margin-right:4px}.answer-legend span:nth-child(2):before{background:#d9b577}.answer-legend span:nth-child(3):before{background:#d8a8a0}.completion-card{text-align:center;padding:22px 12px 12px}.completion-card .completion-icon{background:var(--soft-green);color:var(--green);width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 15px}.completion-card h3{font-family:Georgia,serif;font-weight:400;font-size:25px;color:var(--ink);margin:0 0 10px}.completion-card p{color:var(--muted);font-size:11px;line-height:1.8;margin:0}.score{color:var(--green);font-size:12px;margin-top:13px}.review-label{font-size:10px;color:var(--muted);margin:0 0 12px}.mobile-settings{display:none}@media(min-width:1550px){.main-content{padding-left:65px;padding-right:65px}.writing-columns{min-height:365px}.empty-state{min-height:252px}.copy-placeholder,.practice-textarea{min-height:255px}}@media(max-width:1190px){.main-content{padding:25px 27px}.sidebar{padding:30px 20px}.app-shell{grid-template-columns:240px 1fr}.lesson-path{grid-template-columns:1fr;gap:11px}.level-track{gap:5px}.level-button{width:27px;height:27px}.lesson-body{gap:18px}.character-card{min-width:128px;gap:8px;padding:12px}.character-letter{font-size:28px}.lesson-meta{min-width:121px;padding-left:16px}.pane-heading>span{font-size:6px;letter-spacing:.6px}.practice-fields{gap:14px}}@media(max-width:940px){.app-shell{grid-template-columns:208px 1fr}.sidebar{padding:26px 15px}.brand{font-size:18px;gap:9px}.brand-mark{width:34px;height:34px}.brand small{font-size:6px;letter-spacing:1.7px}.main-content{padding:25px 22px}.view-heading h1{font-size:31px}.topbar-note{display:none}.lesson-body{grid-template-columns:1fr}.lesson-meta{border-left:0;border-top:1px solid var(--line);padding:13px 0 0;display:flex;gap:23px}.lesson-meta strong{font-size:15px}.character-card{flex:1}.practice-fields{grid-template-columns:1fr 1fr}.practice-fields>.field:first-child{grid-column:1/-1}.receiver-toolbar{padding:0 17px}.waveform{max-width:60px}.writing-pane,.answer-pane{padding:21px 17px}.pane-heading{align-items:flex-start;flex-direction:column;gap:6px;margin-bottom:16px}.receiver-actions{padding:14px 16px}.action-help{font-size:9px}}@media(max-width:650px){.app-shell{display:block}.sidebar{padding:17px 18px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:13px 19px}.brand{margin:0;font-size:18px}.brand small{font-size:6px}.sidebar>.sidebar-section-label,.settings-heading,.sidebar-footer{display:none}.mode-nav{margin:0;display:flex;gap:4px;justify-content:flex-end}.mode-button{padding:8px 9px;border-radius:7px;gap:6px;font-size:11px}.mode-button small,.nav-dot{display:none}.mode-button svg{width:15px;height:15px}.sound-settings{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:17px 23px}.setting{row-gap:10px}.setting label{font-size:10px}.setting p{display:none}.setting-value{padding:2px 4px}.tone-test{grid-column:1/-1;justify-self:center;margin:0;width:auto;min-height:28px;font-size:9px;padding:5px 12px}.main-content{padding:23px 17px}.topbar{margin-bottom:23px;font-size:9px}.view-heading{margin-bottom:20px;gap:9px;align-items:start}.view-heading h1{font-size:29px;margin-bottom:9px}.view-heading p{font-size:11px}.heading-badge{font-size:8px;padding:6px;margin-top:21px}.lesson-path{padding:15px 16px}.level-track{gap:4px}.level-button{height:25px;width:25px;font-size:9px}.lesson-body{padding:17px 16px;gap:16px}.lesson-intro h2{font-size:12px}.lesson-meta{gap:25px}.lesson-meta .learned-list{max-width:175px}.character-card{min-width:0;padding:13px 10px;gap:8px}.character-card .morse-pattern{font-size:14px;letter-spacing:1px}.character-play{width:24px;height:24px;min-width:24px}.character-letter{font-size:28px}.receiver-toolbar{padding:0 13px;min-height:52px;gap:8px}.signal-status{font-size:9px;min-width:0;max-width:135px}.session-counter{font-size:9px;min-width:100px}.waveform{max-width:46px;gap:3px}.writing-pane,.answer-pane{padding:18px 12px 16px}.writing-columns{min-height:281px}.pane-heading h2{font-size:18px}.pane-heading>span{font-size:5px;letter-spacing:.5px}.copy-placeholder{min-height:197px;padding:12px;font-size:10px}.empty-state{min-height:194px;padding:8px;gap:10px}.empty-state h3{font-size:11px}.empty-state p{font-size:10px;line-height:1.7}.empty-state .empty-symbol{height:40px;width:40px;font-size:25px}.receiver-actions{padding:13px 12px;gap:11px}.button{font-size:10px;padding:9px 11px;gap:6px;min-height:35px}.button svg{width:13px;height:13px}.action-help{font-size:8px;max-width:145px}.bottom-note{font-size:8px;gap:12px}.bottom-note>span:last-child{max-width:85px;text-align:right}.practice-card{padding:16px}.practice-card-top{margin-bottom:16px;gap:10px}.practice-card-top>.small-label{font-size:8px}.segmented button{font-size:9px;padding:6px 9px}.practice-fields{gap:12px}.field input,.field select{font-size:10px}.practice-textarea{min-height:196px;font-size:18px;letter-spacing:2px;padding:11px}.textarea-meta{font-size:8px;gap:6px}.learn-copy-list,.learn-answer-list{grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:6px}.copy-cell,.answer-cell{height:35px;font-size:16px}.letter-entry{width:51px;height:46px;font-size:24px}.entry-row{gap:8px}.entry-row small{font-size:9px}.results-summary{padding:9px;gap:7px}.results-summary strong{font-size:23px}.results-summary span,.results-summary b{font-size:9px}.result-grid{gap:5px}.result-grid .answer-cell,.result-grid .copy-cell{width:29px;height:31px;font-size:15px}.completion-card{padding:20px 0}.completion-card h3{font-size:20px}.completion-card p{font-size:10px}.lesson-feedback{font-size:10px}.message{font-size:11px}}
.results-summary{min-height:62px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

[hidden] {
  display: none !important;
}

.lesson-stage {
  min-height: 365px;
  padding: 37px 28px 39px;
  text-align: center;
  background: var(--card);
  transition: background .2s;
}

.lesson-stage-eyebrow {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.6px;
  line-height: 1.7;
  text-transform: uppercase;
}

.lesson-stage-characters {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 35px;
  margin: 20px auto 0;
}

.lesson-stage-letter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 90px;
  min-height: 111px;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 98px;
  font-weight: 400;
  line-height: 1;
  transition: color .2s;
}

.lesson-stage-description {
  max-width: 450px;
  margin: 19px auto 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.85;
}

.lesson-stage-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 25px;
}

.lesson-stage-actions .button {
  min-height: 44px;
  padding: 11px 19px;
  font-size: 12px;
}

.tutorial-letter {
  margin-top: 15px;
}

.tutorial-letter .lesson-stage-letter {
  min-height: 122px;
  font-size: 112px;
}

.tutorial-pattern {
  min-height: 48px;
  margin: 13px auto 0;
}

.tutorial-pattern.morse-pattern,
.tutorial-pattern .morse-pattern {
  display: inline-block;
  font-size: 38px;
  line-height: 1.25;
  letter-spacing: 7px;
  padding-left: 7px;
}

.tutorial-sounds {
  margin: 9px auto 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.8;
}

.lesson-stage.is-listening {
  background: #fffaf1;
}

.lesson-stage.is-listening .tutorial-letter .lesson-stage-letter {
  color: var(--amber);
}

.lesson-stage-compact {
  min-height: 0;
  padding: 23px 24px;
  text-align: left;
}

.lesson-stage-compact h1,
.lesson-stage-compact h2 {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  font-weight: 400;
  line-height: 1.3;
}

.lesson-stage-compact p,
.lesson-stage-compact .lesson-stage-description {
  max-width: 650px;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.8;
}

.learn-copy-list,
.learn-answer-list {
  grid-template-columns: repeat(auto-fill, 55px);
  justify-content: start;
  align-content: start;
  gap: 8px;
  max-height: 252px;
  padding: 3px 3px 8px;
}

.copy-cell,
.answer-cell,
.result-grid .copy-cell,
.result-grid .answer-cell {
  width: 55px;
  min-width: 55px;
  height: 60px;
  font-size: 21px;
}

button.answer-cell {
  padding: 8px 4px;
  text-align: center;
}

.answer-cell.has-morse {
  flex-direction: column;
  gap: 5px;
}

.answer-letter {
  font-size: 21px;
  line-height: 1;
}

.answer-morse {
  display: block;
  max-width: 100%;
  font-family: "Courier New", monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 1.1;
  white-space: nowrap;
}

.copy-cell .cell-index,
.answer-cell .cell-index {
  top: 4px;
  left: 5px;
  font-size: 7px;
  line-height: 1;
}

button.answer-cell:hover:not(:disabled) {
  border-color: #b8c9aa;
  background: #edf3e5;
}

button.answer-cell.incorrect:hover:not(:disabled),
button.answer-cell.missing:hover:not(:disabled) {
  border-color: #dcb982;
  background: #faecd6;
}

.answer-cell.playing,
button.answer-cell.playing:hover:not(:disabled) {
  border-color: #dfbb87;
  background: var(--soft-amber);
  color: #996625;
}

button.answer-cell:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}

.result-grid {
  gap: 8px;
  padding: 3px;
}

@media (max-width: 650px) {
  .lesson-stage {
    min-height: 324px;
    padding: 28px 20px 31px;
  }

  .lesson-stage-eyebrow {
    font-size: 9px;
    letter-spacing: 1.3px;
  }

  .lesson-stage-characters {
    gap: 23px;
    margin-top: 17px;
  }

  .lesson-stage-letter {
    min-width: 77px;
    min-height: 97px;
    font-size: 85px;
  }

  .tutorial-letter .lesson-stage-letter {
    min-height: 113px;
    font-size: 102px;
  }

  .tutorial-pattern.morse-pattern,
  .tutorial-pattern .morse-pattern {
    font-size: 32px;
    letter-spacing: 5px;
    padding-left: 5px;
  }

  .lesson-stage-description {
    font-size: 11px;
    margin-top: 16px;
  }

  .lesson-stage-actions {
    gap: 8px;
    margin-top: 21px;
  }

  .lesson-stage-actions .button {
    min-height: 44px;
    padding: 10px 14px;
    font-size: 11px;
  }

  .lesson-stage-compact {
    min-height: 0;
    padding: 19px 17px;
  }

  .lesson-stage-compact h1,
  .lesson-stage-compact h2 {
    font-size: 21px;
  }

  .lesson-stage-compact p,
  .lesson-stage-compact .lesson-stage-description {
    font-size: 10px;
  }

  .learn-copy-list,
  .learn-answer-list {
    grid-template-columns: repeat(auto-fill, 45px);
    gap: 6px;
  }

  .copy-cell,
  .answer-cell,
  .result-grid .copy-cell,
  .result-grid .answer-cell {
    width: 45px;
    min-width: 45px;
    height: 60px;
    font-size: 20px;
  }

  .answer-letter {
    font-size: 20px;
  }

  .answer-morse {
    font-size: 10px;
    letter-spacing: .8px;
  }

  .result-grid {
    gap: 6px;
  }
}

.session-countdown {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 25px;
  padding: 18px 24px;
  border-bottom: 1px solid var(--line);
  background: #f3f6ed;
  color: var(--green);
}

.countdown-copy {
  display: grid;
  gap: 6px;
}

.countdown-copy b {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

.countdown-copy small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.6;
}

.session-countdown strong {
  min-width: 34px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 44px;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-align: center;
}

.session-countdown.is-paused {
  background: #f5f5f0;
  color: #88927f;
}

.entry-row {
  flex-wrap: wrap;
}

.letter-input-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.button.entry-replay {
  min-height: 55px;
  padding: 10px 12px;
}

.entry-replay-label {
  display: inline;
}

@media (max-width: 650px) {
  .letter-input-controls {
    gap: 8px;
  }

  .button.entry-replay {
    width: 44px;
    min-width: 44px;
    height: 46px;
    min-height: 44px;
    padding: 0;
  }

  .entry-replay-label {
    display: none;
  }

  .entry-row > small {
    flex-basis: 100%;
  }
}

@media (max-width: 650px) {
  .session-countdown {
    gap: 25px;
    padding: 16px 15px;
  }

  .countdown-copy b {
    font-size: 11px;
  }

  .countdown-copy small {
    font-size: 9px;
  }

  .session-countdown strong {
    min-width: 26px;
    font-size: 34px;
  }
}

.lesson-stage-character {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 95px;
}

.lesson-stage-morse {
  margin-top: 7px;
  padding-left: 3px;
  font-size: 24px;
  letter-spacing: 3px;
  line-height: 1.3;
}

.character-reference-panel {
  margin-top: 20px;
  padding-top: 17px;
  border-top: 1px solid var(--line);
}

.reference-heading h2 {
  margin: 0;
  color: var(--ink);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

.reference-heading p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.7;
}

.character-reference-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(55px, 1fr));
  gap: 7px;
  margin-top: 13px;
}

.character-reference {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  min-height: 64px;
  padding: 9px 4px;
  border: 1px solid #e1e7d8;
  border-radius: 6px;
  background: #fafbf7;
  color: var(--green);
  font-family: "Courier New", monospace;
}

.character-reference:hover:not(:disabled) {
  border-color: #b4c9a3;
  background: var(--soft-green);
}

.character-reference.playing {
  border-color: #dfbb87;
  background: var(--soft-amber);
  color: #996625;
}

.reference-letter {
  font-size: 21px;
  line-height: 1;
}

.reference-morse {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 1.1;
  white-space: nowrap;
}

.session-feedback {
  padding: 20px 22px;
  border-top: 1px solid var(--line);
  background: #fafcf7;
  text-align: center;
}

.session-feedback .lesson-feedback {
  min-height: 0;
  margin: 0;
  font-size: 12px;
  line-height: 1.8;
}

.session-feedback .completion-card {
  padding: 5px 0 1px;
}

.session-result-score {
  display: block;
  color: var(--green);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 40px;
  font-weight: 400;
  line-height: 1.2;
}

.session-result h3 {
  margin: 7px 0 9px;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 400;
  line-height: 1.3;
}

.session-result p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.8;
}

.practice-audio-bar {
  padding: 17px 22px 18px;
  border-top: 1px solid var(--line);
  background: var(--card);
}

.audio-bar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--ink);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
}

#replay-clock {
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.audio-bar-controls {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 11px;
}

.audio-bar-controls .button {
  flex-shrink: 0;
  min-width: 44px;
  min-height: 44px;
}

#audio-position {
  flex: 1;
  min-width: 0;
  width: 100%;
  height: 28px;
  margin: 0;
  padding: 0;
  appearance: none;
  background: transparent;
  cursor: pointer;
  accent-color: var(--green);
}

#audio-position::-webkit-slider-runnable-track {
  height: 3px;
  border-radius: 4px;
  background: #d6ddcc;
}

#audio-position::-webkit-slider-thumb {
  width: 13px;
  height: 13px;
  margin-top: -5px;
  appearance: none;
  border: 2px solid white;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 1px var(--green);
}

#audio-position::-moz-range-track {
  height: 3px;
  border-radius: 4px;
  background: #d6ddcc;
}

#audio-position::-moz-range-thumb {
  width: 10px;
  height: 10px;
  border: 2px solid white;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 1px var(--green);
}

#audio-position:disabled {
  cursor: default;
  opacity: .45;
}

.audio-bar-help {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.7;
}

@media (max-width: 650px) {
  .lesson-stage-character {
    min-width: 85px;
  }

  .lesson-stage-morse {
    padding-left: 2px;
    font-size: 20px;
    letter-spacing: 2px;
  }

  .character-reference-panel {
    margin-top: 17px;
    padding-top: 14px;
  }

  .reference-heading h2 {
    font-size: 11px;
  }

  .reference-heading p {
    font-size: 9px;
  }

  .character-reference-grid {
    grid-template-columns: repeat(auto-fill, minmax(44px, 1fr));
    gap: 6px;
    margin-top: 11px;
  }

  .character-reference {
    min-height: 59px;
    gap: 6px;
    padding: 8px 3px;
  }

  .reference-letter {
    font-size: 20px;
  }

  .reference-morse {
    font-size: 10px;
    letter-spacing: .8px;
  }

  .session-feedback {
    padding: 17px 14px;
  }

  .session-feedback .lesson-feedback {
    font-size: 11px;
  }

  .session-result-score {
    font-size: 34px;
  }

  .session-result h3 {
    font-size: 22px;
  }

  .session-result p {
    font-size: 10px;
  }

  .practice-audio-bar {
    padding: 15px 12px;
  }

  .audio-bar-header {
    font-size: 10px;
  }

  #replay-clock {
    font-size: 9px;
  }

  .audio-bar-controls {
    gap: 8px;
  }

  .audio-bar-help {
    font-size: 9px;
  }
}

:root {
  --range-fill: #729364;
  --range-track: #d6ddcc;
  color-scheme: light;
}

.topbar {
  align-items: center;
  gap: 12px;
}

.topbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  flex-shrink: 0;
}

#theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 36px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--card);
  color: var(--ink);
  font-size: 10px;
  line-height: 1.4;
  white-space: nowrap;
}

#theme-toggle:hover {
  border-color: #c4cfbb;
  background: #f1f4ed;
}

.theme-icon {
  width: 16px;
  height: 16px;
  color: var(--muted);
}

.theme-icon-sun {
  color: var(--ink);
}

.theme-switch-track {
  position: relative;
  display: block;
  width: 30px;
  height: 18px;
  flex-shrink: 0;
  border: 1px solid #c8d1c0;
  border-radius: 20px;
  background: var(--range-track);
  transition: background .15s, border-color .15s;
}

.theme-switch-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px #0002;
  transition: transform .15s;
}

#theme-toggle[aria-checked='true'] .theme-switch-track {
  border-color: var(--green);
  background: var(--green);
}

#theme-toggle[aria-checked='true'] .theme-switch-thumb {
  transform: translateX(12px);
}

html[data-theme='dark'] {
  --paper: #000000;
  --card: #060906;
  --ink: #00ff41;
  --text: #00ef3e;
  --muted: #72bd80;
  --line: #174723;
  --green: #00ff41;
  --soft-green: #031b0a;
  --amber: #ffbf54;
  --soft-amber: #211505;
  --red: #ff6b6b;
  --soft-red: #260a0d;
  --range-fill: #00ff41;
  --range-track: #15381f;
  --dark-input: #020603;
  --dark-hover: #082712;
  --dark-primary: #00ff41;
  --dark-primary-hover: #78ff92;
  --dark-extra: #d78cff;
  --dark-soft-extra: #170922;
  --dark-border: #25773b;
  --dark-border-strong: #00a72b;
  --dark-sidebar: #030603;
  --dark-font: Consolas, "Lucida Console", "Courier New", monospace;
  color-scheme: dark;
  background: var(--paper);
  color: var(--text);
  font-family: var(--dark-font);
}

html[data-theme='dark'] .brand,
html[data-theme='dark'] .view-heading h1,
html[data-theme='dark'] .pane-heading h2,
html[data-theme='dark'] .lesson-stage-letter,
html[data-theme='dark'] .character-letter,
html[data-theme='dark'] .lesson-stage-compact h1,
html[data-theme='dark'] .lesson-stage-compact h2,
html[data-theme='dark'] .completion-card h3,
html[data-theme='dark'] .session-result-score,
html[data-theme='dark'] .session-result h3,
html[data-theme='dark'] .session-countdown strong,
html[data-theme='dark'] .results-summary strong,
html[data-theme='dark'] .copy-cell,
html[data-theme='dark'] .answer-cell,
html[data-theme='dark'] .character-reference,
html[data-theme='dark'] .practice-textarea,
html[data-theme='dark'] .letter-entry,
html[data-theme='dark'] .morse-pattern,
html[data-theme='dark'] .answer-morse {
  font-family: var(--dark-font);
}

html[data-theme='dark'] .eyebrow,
html[data-theme='dark'] .morse-pattern,
html[data-theme='dark'] .lesson-stage.is-listening .tutorial-letter .lesson-stage-letter {
  color: var(--green);
}

html[data-theme='dark'] .sidebar {
  background: var(--dark-sidebar);
}

html[data-theme='dark'] .brand-mark {
  border: 1px solid var(--dark-border);
  background: var(--dark-input);
}

html[data-theme='dark'] .brand-mark i,
html[data-theme='dark'] .brand-mark b {
  background: var(--green);
}

html[data-theme='dark'] .mode-button.active {
  border-color: var(--line);
  box-shadow: none;
}

html[data-theme='dark'] .mode-button:hover {
  background: var(--dark-hover);
}

html[data-theme='dark'] .settings-heading {
  border-color: var(--line);
}

html[data-theme='dark'] .setting-value {
  border-color: var(--dark-border);
  background: var(--dark-input);
}

html[data-theme='dark'] .setting input[type='range'] {
  background: var(--range-track);
}

html[data-theme='dark'] .setting input[type='range']::-webkit-slider-thumb {
  border-color: var(--dark-sidebar);
}

html[data-theme='dark'] .setting input[type='range']::-moz-range-thumb {
  border-color: var(--dark-sidebar);
}

html[data-theme='dark'] .button {
  border-color: var(--dark-border);
  background: var(--dark-input);
  color: var(--text);
}

html[data-theme='dark'] .button:hover:not(:disabled) {
  border-color: var(--dark-border-strong);
  background: var(--dark-hover);
}

html[data-theme='dark'] .button.primary {
  border-color: var(--dark-primary);
  background: var(--dark-primary);
  color: #000;
  box-shadow: 0 0 12px #00ff4118;
}

html[data-theme='dark'] .button.primary:hover:not(:disabled) {
  border-color: var(--dark-primary-hover);
  background: var(--dark-primary-hover);
}

html[data-theme='dark'] .button.soft {
  border-color: var(--dark-border);
  background: var(--soft-green);
  color: var(--green);
}

html[data-theme='dark'] .button.quiet {
  border-color: transparent;
  background: transparent;
}

html[data-theme='dark'] .button.quiet:hover:not(:disabled) {
  border-color: var(--line);
  background: var(--dark-hover);
}

html[data-theme='dark'] .button.stop {
  color: var(--red);
}

html[data-theme='dark'] .tone-test {
  border-color: var(--dark-border);
  background: transparent;
  color: var(--green);
}

html[data-theme='dark'] .topbar #breadcrumb span,
html[data-theme='dark'] .pane-heading > span,
html[data-theme='dark'] .bottom-note {
  color: var(--muted);
}

html[data-theme='dark'] .heading-badge {
  border-color: var(--dark-border);
}

html[data-theme='dark'] .level-button {
  border-color: var(--line);
  background: var(--dark-input);
  color: var(--muted);
}

html[data-theme='dark'] .level-button.active,
html[data-theme='dark'] .level-button.completed.active {
  border-color: var(--dark-primary);
  background: var(--dark-primary);
  color: #000;
}

html[data-theme='dark'] .level-button.completed {
  border-color: var(--dark-border);
  background: var(--soft-green);
  color: var(--green);
}

html[data-theme='dark'] .phase-badge {
  background: var(--soft-green);
  color: var(--green);
}

html[data-theme='dark'] .character-card,
html[data-theme='dark'] .character-grid button {
  border-color: var(--line);
  background: var(--dark-input);
  color: var(--green);
}

html[data-theme='dark'] .character-grid button.selected {
  border-color: var(--dark-border-strong);
  background: var(--soft-green);
}

html[data-theme='dark'] .character-play {
  border-color: var(--dark-border);
  background: var(--dark-input);
}

html[data-theme='dark'] .character-play.playing {
  border-color: var(--green);
  background: var(--soft-green);
  color: var(--green);
}

html[data-theme='dark'] .signal-status > span:first-child {
  background: var(--muted);
  box-shadow: 0 0 0 4px var(--soft-green);
}

html[data-theme='dark'] .signal-status > span:first-child.on {
  background: var(--green);
  box-shadow: 0 0 0 4px var(--soft-green), 0 0 9px #00ff4133;
}

html[data-theme='dark'] .waveform i {
  background: var(--dark-border);
}

html[data-theme='dark'] .waveform.active i {
  background: var(--green);
}

html[data-theme='dark'] .progress-track {
  background: var(--line);
}

html[data-theme='dark'] .progress-track > div {
  background: var(--range-fill);
}

html[data-theme='dark'] .answer-pane {
  background: #030803;
}

html[data-theme='dark'] .empty-state h3 {
  color: var(--muted);
}

html[data-theme='dark'] .empty-state .empty-symbol {
  border-color: var(--dark-border);
  color: var(--muted);
}

html[data-theme='dark'] .empty-state .hint-morse {
  color: var(--muted);
}

html[data-theme='dark'] .copy-placeholder {
  border-color: var(--dark-border);
  background: var(--dark-input);
  color: var(--muted);
}

html[data-theme='dark'] .copy-placeholder .typing-cursor {
  background: var(--green);
}

html[data-theme='dark'] .action-help kbd,
html[data-theme='dark'] .bottom-note kbd,
html[data-theme='dark'] .entry-row kbd {
  border-color: var(--dark-border);
  background: var(--dark-input);
  color: var(--muted);
}

html[data-theme='dark'] .copy-cell,
html[data-theme='dark'] .answer-cell {
  border-color: var(--dark-border);
  background: var(--soft-green);
  color: var(--green);
}

html[data-theme='dark'] .copy-cell.correct,
html[data-theme='dark'] .answer-cell.correct {
  border-color: var(--dark-border-strong);
  background: var(--soft-green);
  color: var(--green);
}

html[data-theme='dark'] .copy-cell.incorrect,
html[data-theme='dark'] .answer-cell.incorrect {
  border-color: #a3333e;
  background: var(--soft-red);
  color: var(--red);
}

html[data-theme='dark'] .copy-cell.missing,
html[data-theme='dark'] .answer-cell.missing {
  border-color: #9d6e24;
  background: var(--soft-amber);
  color: var(--amber);
}

html[data-theme='dark'] .copy-cell.extra,
html[data-theme='dark'] .answer-cell.extra {
  border-color: #7d49a0;
  border-style: dashed;
  background: var(--dark-soft-extra);
  color: var(--dark-extra);
}

html[data-theme='dark'] button.answer-cell:hover:not(:disabled) {
  border-color: var(--green);
  background: var(--dark-hover);
}

html[data-theme='dark'] button.answer-cell.incorrect:hover:not(:disabled) {
  border-color: #d64c57;
  background: #310e11;
}

html[data-theme='dark'] button.answer-cell.missing:hover:not(:disabled) {
  border-color: #c9933a;
  background: #2c1d08;
}

html[data-theme='dark'] .answer-cell.playing,
html[data-theme='dark'] button.answer-cell.playing:hover:not(:disabled) {
  border-color: var(--green);
  background: var(--soft-green);
  color: var(--green);
}

html[data-theme='dark'] .cell-index {
  color: var(--muted);
}

html[data-theme='dark'] .letter-entry,
html[data-theme='dark'] .field input,
html[data-theme='dark'] .field select,
html[data-theme='dark'] .practice-textarea {
  border-color: var(--dark-border);
  background: var(--dark-input);
  color: var(--ink);
}

html[data-theme='dark'] .field select option {
  background: var(--card);
  color: var(--text);
}

html[data-theme='dark'] .practice-textarea::placeholder {
  color: var(--muted);
}

html[data-theme='dark'] .segmented {
  border-color: var(--line);
  background: var(--dark-input);
}

html[data-theme='dark'] .segmented button.active {
  background: var(--soft-green);
  color: var(--green);
  box-shadow: none;
}

html[data-theme='dark'] .results-summary {
  border-color: var(--dark-border);
  background: var(--soft-green);
}

html[data-theme='dark'] .answer-legend span::before {
  background: var(--green);
}

html[data-theme='dark'] .answer-legend span:nth-child(2)::before {
  background: linear-gradient(135deg, var(--red) 50%, var(--amber) 50%);
}

html[data-theme='dark'] .answer-legend span:nth-child(3)::before {
  background: var(--dark-extra);
}

html[data-theme='dark'] .lesson-stage.is-listening {
  background: var(--soft-green);
}

html[data-theme='dark'] .session-countdown {
  background: var(--soft-green);
}

html[data-theme='dark'] .session-countdown.is-paused {
  background: var(--dark-input);
  color: var(--muted);
}

html[data-theme='dark'] .character-reference {
  border-color: var(--dark-border);
  background: var(--dark-input);
}

html[data-theme='dark'] .character-reference:hover:not(:disabled) {
  border-color: var(--dark-border-strong);
  background: var(--soft-green);
}

html[data-theme='dark'] .character-reference.playing {
  border-color: var(--green);
  background: var(--soft-green);
  color: var(--green);
}

html[data-theme='dark'] .session-feedback {
  background: #040c06;
}

html[data-theme='dark'] #audio-position::-webkit-slider-runnable-track {
  background: var(--range-track);
}

html[data-theme='dark'] #audio-position::-webkit-slider-thumb {
  border-color: var(--card);
}

html[data-theme='dark'] #audio-position::-moz-range-track {
  background: var(--range-track);
}

html[data-theme='dark'] #audio-position::-moz-range-thumb {
  border-color: var(--card);
}

html[data-theme='dark'] #theme-toggle {
  border-color: var(--dark-border);
  background: var(--card);
}

html[data-theme='dark'] #theme-toggle:hover {
  border-color: var(--dark-border-strong);
  background: var(--dark-hover);
}

html[data-theme='dark'] .theme-switch-track {
  border-color: var(--dark-border);
}

html[data-theme='dark'] #theme-toggle[aria-checked='true'] .theme-switch-track {
  border-color: var(--green);
  background: var(--dark-primary);
}

html[data-theme='dark'] .theme-switch-thumb {
  background: #000;
}

html[data-theme='dark'] .theme-icon-sun {
  color: var(--muted);
}

html[data-theme='dark'] .theme-icon-moon {
  color: var(--green);
}

@media (max-width: 650px) {
  .topbar-actions {
    gap: 8px;
  }

  #theme-toggle {
    min-height: 44px;
    padding: 7px 8px;
    font-size: 9px;
  }

  .topbar-note {
    display: none;
  }

  html[data-theme='dark'] .sidebar {
    grid-template-columns: 1fr auto;
    gap: 13px 10px;
  }

  html[data-theme='dark'] .brand {
    min-width: 0;
    gap: 6px;
    font-size: 15px;
  }

  html[data-theme='dark'] .brand small {
    font-size: 6px;
    letter-spacing: .8px;
  }

  html[data-theme='dark'] .brand-mark {
    min-width: 26px;
    width: 26px;
    height: 26px;
  }

  html[data-theme='dark'] .mode-button {
    gap: 5px;
    padding: 8px 7px;
    font-size: 10px;
  }

  html[data-theme='dark'] .mode-button svg {
    width: 14px;
    height: 14px;
  }

  html[data-theme='dark'] .practice-card-top {
    flex-wrap: wrap;
    gap: 12px;
  }
}
