:root{color-scheme:light;--bg: #f4efe7;--panel: rgba(255, 252, 247, .88);--line: rgba(34, 28, 22, .12);--text: #221c16;--muted: #6b5d50;--accent: #bc5a45;--green: #2e6f5e;--danger: #a43632;--warning: #c8892d;--shadow: 0 22px 60px rgba(54, 34, 13, .12);font-family:Space Grotesk,Noto Sans SC,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(circle at top left,rgba(188,90,69,.16),transparent 32%),radial-gradient(circle at bottom right,rgba(46,111,94,.18),transparent 28%),var(--bg)}button,input,textarea{font:inherit}img,video,audio{max-width:100%;display:block}.shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{padding:28px 22px;border-right:1px solid var(--line);background:#faf4ecbd;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand h1{margin:6px 0 10px;font-size:2rem}.brand span,.section-head span,.task-card p,.poster-body p,.panel p,.status,label,.muted-link,.step-chip span,.course-meta,.calendar-more{color:var(--muted)}.eyebrow,.task-type{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:var(--accent)}.nav{display:grid;gap:10px;margin-top:28px}.nav-link{padding:12px 14px;border-radius:14px;color:var(--text);text-decoration:none}.nav-link.active{background:#221c16;color:#fff8f1}.content{padding:28px}.page-grid,.study-layout,.split,.correction-grid,.shadowing-layout{display:grid;gap:20px}.page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.management-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.95fr);align-items:start}.study-layout{grid-template-columns:320px minmax(0,1fr);align-items:start}.study-sidebar{display:grid;gap:20px;position:sticky;top:28px}.panel,.hero-card{padding:24px;border:1px solid var(--line);border-radius:26px;background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow)}.hero-card{grid-column:span 2;min-height:220px;background:linear-gradient(135deg,#bc5a451f,#2e6f5e1f),var(--panel)}.hero-card h2{margin:10px 0;max-width:18ch;font-size:clamp(2rem,4vw,3.6rem);line-height:1.05}.span-2{grid-column:span 2}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.section-head.compact{margin-bottom:12px}.section-head h2,.section-head h3,.study-summary h2,.poster-body h3,.course-admin-card h3{margin:0}.task-list,.vocab-list,.step-list,.stack-form,.study-block,.intensive-layout,.dictation-editor,.unknown-terms,.manager-list,.calendar-cell-events,.shadowing-notes{display:grid;gap:14px}.task-card,.vocab-card,.course-admin-card{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px;border-radius:20px;background:#ffffffad;border:1px solid rgba(34,28,22,.08)}.course-admin-card{align-items:flex-start}.course-admin-main,.course-admin-actions{display:grid;gap:10px}.course-schedule-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:4px}.course-schedule-editor label{display:grid;gap:8px}.course-schedule-editor input{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#ffffffc7}.course-admin-actions{justify-items:end}.course-meta{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:.92rem}.button-link,.primary-button,.ghost-button,.step-chip,.calendar-event-link{border:none;border-radius:999px;cursor:pointer;text-decoration:none}.button-link,.primary-button{padding:12px 18px;background:#221c16;color:#fff8f1}.ghost-button{padding:12px 18px;background:transparent;color:var(--text);border:1px solid var(--line)}.danger-button{color:var(--danger);border-color:#a4363247}.poster-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(220px,260px));justify-content:start}.poster-card{width:100%;max-width:260px;overflow:hidden;border-radius:24px;background:#ffffffb8;border:1px solid rgba(34,28,22,.08)}.poster-image{width:100%;aspect-ratio:3 / 4;object-fit:cover;background:linear-gradient(135deg,#ead2c5,#d7e7dd)}.poster-fallback{display:grid;place-items:center;font-size:1.1rem;padding:24px;text-align:center}.poster-body{padding:18px}.poster-actions{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:10px}.progress-bar{overflow:hidden;height:10px;border-radius:999px;background:#221c1614}.progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#ef9d75)}.correction-progress-card{padding:16px 18px;border-radius:18px;background:#ffffffb8;border:1px solid rgba(34,28,22,.08);display:grid;gap:10px}.correction-progress-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.correction-progress-bar{height:12px}.status.active,.pill.new_lesson,.success-text{color:var(--green)}.text-link{color:var(--accent);text-decoration:none}.stack-form label,.dictation-field{display:grid;gap:8px}.stack-form input,.stack-form select,.dictation-field textarea{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#ffffffc7}.dictation-field textarea{min-height:100px;resize:vertical}.mask-line{font-family:Courier New,monospace;color:var(--text)}.plain-list{margin:0;padding-left:18px}.step-panel,.study-summary,.study-panel{height:fit-content}.study-panel{position:relative;overflow:visible}.step-chip{width:100%;padding:14px 16px;text-align:left;display:grid;gap:6px;background:#ffffffad;color:var(--text)}.step-chip strong{font-size:1rem}.step-chip.active{background:#221c16;color:#fff8f1}.step-chip.active span{color:#fff8f1b8}.media-player{width:100%;border-radius:18px;overflow:hidden;background:#221c160a}.system-hidden-audio{display:none}.correction-grid{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr)}.shadowing-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);align-items:start}.intensive-layout{gap:16px}.intensive-line-panel,.intensive-step-card,.intensive-question-card{display:grid;gap:14px}.intensive-step-card{padding:18px;border-radius:20px;background:#ffffffb8;border:1px solid rgba(34,28,22,.08)}.intensive-transcript{margin:0;font-size:1.2rem;line-height:1.8}.intensive-answer-row,.sentence-stress-line,.rhythm-map-row,.reduced-form-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.intensive-answer-row input{width:180px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#ffffffdb}.sentence-stress-token{padding:6px 8px;border-radius:10px;color:var(--muted)}.sentence-stress-token.primary{background:#221c16;color:#fff8f1;font-weight:800}.sentence-stress-token.secondary{background:#221c161a;color:var(--text);font-weight:700}.rhythm-map-row{align-items:flex-end}.rhythm-map-words .rhythm-map-cell{min-width:52px;text-align:center;font-weight:700}.rhythm-map-symbol{min-width:52px;text-align:center;font-size:1.35rem}.rhythm-map-symbol.main{color:#221c16}.rhythm-map-symbol.support{color:var(--accent)}.rhythm-map-symbol.weak{color:var(--muted)}.reduced-form-grid{align-items:stretch}.correction-card,.shadowing-section{padding:16px;border-radius:18px;background:#ffffffad;border:1px solid rgba(34,28,22,.08)}.correction-label,.accuracy-text,.annotation-source{margin:0 0 8px}.token-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.token{padding:4px 8px;border-radius:999px;background:#221c160f}button.token{border:none;cursor:pointer;font:inherit}.token.correct{background:#2e6f5e24;color:var(--green)}.token.wrong,.token.missing{background:#a436321f;color:var(--danger)}.token.extra{background:#c8892d29;color:var(--warning)}.token-lookup{box-shadow:inset 0 0 0 1px #221c1614}.token-selected{box-shadow:inset 0 0 0 1px #bc5a454d;transform:translateY(-1px)}.correction-side{display:grid;gap:14px;align-content:start}.dictionary-float{position:absolute;width:min(420px,calc(100% - 24px));max-width:calc(100% - 24px);z-index:30;pointer-events:none}.dictionary-float.visible{pointer-events:auto}.dictionary-panel{padding:16px;border-radius:18px;background:#ffffffad;border:1px solid rgba(34,28,22,.08);display:grid;gap:12px}.dictionary-panel-floating{max-height:min(60vh,720px);overflow:auto;box-shadow:0 18px 42px #221c162e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.dictionary-panel-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.dictionary-close-button{padding:8px 14px}.dictionary-entry-list{display:grid;gap:12px}.dictionary-entry-card{padding:14px;border-radius:16px;background:#fffcf7e0;border:1px solid rgba(34,28,22,.08);display:grid;gap:10px}.dictionary-entry-head,.dictionary-entry-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.dictionary-entry-head>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dictionary-ipa{color:var(--accent);font-weight:600}.dictionary-definition,.dictionary-example,.dictionary-source{margin:0}.dictionary-example,.dictionary-source{color:var(--muted)}.annotated-transcript-body{display:grid;gap:16px}.annotated-line{display:grid;gap:10px;padding:14px 0;border-bottom:1px solid rgba(34,28,22,.08)}.annotated-line.focused{gap:16px}.annotated-line-head,.annotated-line-title,.line-mode-summary,.shadowing-toolbar,.shadowing-focus-group,.shadowing-mode-group,.shadowing-coach-grid,.weak-form-list{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.shadowing-toolbar{justify-content:space-between;align-items:center;padding:12px 14px;border-radius:16px;background:#221c1608}.shadowing-mode-group,.shadowing-focus-group{gap:10px}.system-speech-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;align-items:center;margin-left:auto}.system-speech-toolbar-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.system-speech-toolbar-voice select{min-width:240px;max-width:360px;border-radius:12px;border:1px solid rgba(34,28,22,.08);padding:10px 12px;background:#ffffffdb;color:var(--text)}.shadowing-mode-button,.line-selector{border:1px solid rgba(34,28,22,.08);background:#ffffffc7;color:var(--text);cursor:pointer}.shadowing-mode-button{padding:10px 14px;border-radius:999px}.shadowing-mode-button.active,.line-selector.active{background:#221c16;color:#fff8f1}.annotated-token-button{border:none;cursor:pointer;font:inherit;text-align:inherit;background:none}.line-step-pill{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#bc5a451f;color:var(--accent);font-size:.9rem}.line-selector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.line-selector{display:grid;gap:4px;padding:12px 14px;border-radius:16px;text-align:left}.annotated-line:last-child{border-bottom:none;padding-bottom:0}.annotated-speaker{font-weight:700;color:var(--text)}.annotated-chunks{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}.annotated-chunk-card{display:grid;gap:8px;padding:10px 12px 12px;border-radius:18px;background:#ffffffc2;border:1px solid rgba(34,28,22,.08);position:relative}.annotated-chunk{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;position:relative}.annotated-chunk-card:after{content:"/";position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:var(--accent);font-weight:700}.annotated-chunk-card:last-child:after{content:""}.annotated-chunk-card.hide-slash:after{content:""}.chunk-pulse-bar{position:relative;display:block;height:8px;border-radius:999px;background:#221c1614;overflow:hidden}.chunk-pulse-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:42%;border-radius:inherit;background:linear-gradient(90deg,#bc5a4529,#bc5a45c7,#2e6f5e7a);animation:rhythmPulse 2.2s ease-in-out infinite;animation-delay:var(--pulse-delay, 0ms)}.annotated-chunk-card.pulse-strong .chunk-pulse-bar:after{width:68%}.annotated-chunk-card.pulse-light .chunk-pulse-bar:after{width:28%;opacity:.72}.annotated-token{display:inline-grid;gap:3px;justify-items:center;align-items:start;padding:4px 6px;border-radius:10px}.stress-dot{width:8px;height:8px;border-radius:999px;background:#221c16;box-shadow:0 0 0 4px #221c160f}.stress-dot.primary{width:10px;height:10px;background:#221c16}.stress-dot.secondary{background:#221c168c;box-shadow:0 0 0 4px #221c160a}.annotated-token.has-ipa{background:#bc5a451a}.annotated-token-soft{opacity:.58}.annotated-token-beat .annotated-word{font-weight:800;letter-spacing:.02em}.annotated-token-beat-focus{transform:translateY(-2px);box-shadow:inset 0 0 0 1px #221c161a}.annotated-token-selected-word{box-shadow:inset 0 0 0 1px #bc5a453d;background:#bc5a4514}.annotated-token-primary{background:#221c16eb;color:#fff8f1;transform:translateY(-2px)}.annotated-token-primary .annotated-word,.annotated-token-primary .annotated-ipa,.annotated-token-primary .annotated-phenomenon{color:#fff8f1}.annotated-token-secondary{box-shadow:inset 0 0 0 1px #221c162e}.annotated-token.mode-stress:not(.annotated-token-primary):not(.annotated-token-secondary){opacity:.38}.annotated-token.mode-weak:not(.annotated-token-weak):not(.annotated-token-function){opacity:.34}.annotated-token.mode-linking:not(.annotated-token-linking):not(.annotated-token-reduced){opacity:.4}.annotated-token.mode-beat:not(.annotated-token-beat){opacity:.1}.annotated-token.mode-wordstress:not(.annotated-token-selected-word){opacity:.24}.annotated-token.mode-skeleton:not(.annotated-token-beat){opacity:.14}.annotated-token-hidden{opacity:.12}.annotated-token-hidden .annotated-word,.annotated-token-hidden .annotated-ipa,.annotated-token-hidden .annotated-phenomenon,.annotated-token-hidden .stress-dot{visibility:hidden}.annotated-token.mode-chunk .annotated-ipa,.annotated-token.mode-chunk .annotated-phenomenon{display:none}.annotated-word{color:var(--text);line-height:1.15}.annotated-word-syllables{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.annotated-syllable{display:inline-flex;align-items:center;padding:1px 4px;border-radius:8px;color:#221c16b8}.annotated-syllable-stressed{background:#221c16eb;color:#fff8f1;font-weight:800;letter-spacing:.02em}.annotated-ipa{font-size:.78rem;color:var(--accent);line-height:1.1;letter-spacing:.01em}.annotated-phenomenon{font-size:.7rem;color:var(--muted);line-height:1}.annotated-token-content .annotated-word{font-weight:700;letter-spacing:.01em}.annotated-token-function .annotated-word{color:#221c16b8}.annotated-token-weak{background:#bc5a451f;box-shadow:inset 0 0 0 1px #bc5a451f}.annotated-token-weak .annotated-word{color:#221c16c2}.annotated-token-linking{background:#2e6f5e1f}.annotated-token-linking .annotated-ipa{color:var(--green)}.annotated-token-reduced{background:#c8892d24}.annotated-token-reduced .annotated-ipa{color:var(--warning)}.shadowing-rhythm-note{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px;border-radius:16px;background:#2e6f5e14;border:1px solid rgba(46,111,94,.12)}.shadowing-coach-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.word-stress-guide{border:1px solid rgba(188,90,69,.16);background:linear-gradient(135deg,#bc5a4514,#221c1608),#ffffffd6}.word-stress-head,.word-rhythm-row,.word-syllable-strip{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.word-stress-definition{margin:0;color:var(--muted);line-height:1.6}.syllable-pill{padding:9px 12px;border-radius:14px;background:#ffffffdb;border:1px solid rgba(34,28,22,.08);font-weight:600}.syllable-pill.stressed{background:#221c16;color:#fff8f1;transform:translateY(-1px)}.beat-mode-guide{border:1px solid rgba(34,28,22,.08);background:linear-gradient(135deg,#221c160a,#bc5a450f),#ffffffd1}.beat-rail{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}.beat-node{min-width:88px;display:grid;gap:8px;justify-items:center;padding:12px 14px;border-radius:16px;border:1px solid rgba(34,28,22,.08);background:#ffffffe6}.beat-node-main{background:#221c16;color:#fff8f1}.beat-node-support{background:#221c16d6;color:#fff8f1}.beat-node-dot{width:12px;height:12px;border-radius:999px;background:currentColor;box-shadow:0 0 0 5px #221c1614}.beat-node-main .beat-node-dot,.beat-node-support .beat-node-dot{box-shadow:0 0 0 5px #fff8f11f}.beat-node-word{font-weight:800;letter-spacing:.02em}.beat-node-index{font-size:.78rem;color:var(--muted)}.beat-node-main .beat-node-index,.beat-node-support .beat-node-index{color:#fff8f1b8}.rhythm-guide,.rhythm-guide-inline{display:grid;gap:10px;padding:12px 14px;border-radius:16px;background:#221c1608}.rhythm-guide-label{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.rhythm-guide-inline-text{color:var(--muted);line-height:1.6}.rhythm-guide-pills{display:flex;flex-wrap:wrap;gap:8px}.rhythm-pill{padding:7px 10px;border-radius:999px;font-size:.9rem}.rhythm-pill-strong{background:#221c16e6;color:#fff8f1;font-weight:700;letter-spacing:.02em}.rhythm-pill-weak{background:#bc5a451f;color:var(--accent)}.rhythm-guide-empty{color:var(--muted);font-size:.92rem}.weak-form-pill{padding:8px 10px;border-radius:12px;background:#bc5a451a;color:var(--accent);font-size:.92rem}.connected-cue{padding:12px 14px;border-radius:14px;background:#2e6f5e14;color:var(--green);line-height:1.6;font-family:Space Grotesk,Segoe UI,sans-serif}.shadowing-checklist{border:1px solid rgba(34,28,22,.08)}.shadowing-check-grid{display:flex;flex-wrap:wrap;gap:10px}.shadowing-check-pill{border:1px solid rgba(34,28,22,.08);background:#ffffffc7;color:var(--text);border-radius:999px;padding:10px 14px;cursor:pointer}.shadowing-check-pill.checked{background:#2e6f5e24;color:var(--green);border-color:#2e6f5e3d}@keyframes rhythmPulse{0%,to{transform:scaleX(.92);opacity:.62}50%{transform:scaleX(1);opacity:1}}.speed-sequence,.file-summary,.calendar-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.dictation-seek-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.ab-loop-panel{display:grid;gap:12px;padding:14px;border-radius:18px;background:#ffffffb8;border:1px solid rgba(34,28,22,.08)}.ab-loop-summary,.ab-loop-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.ab-loop-live{background:#221c16;color:#fff8f1}.ab-loop-hint{margin:0;color:var(--muted);line-height:1.6}.seek-button{min-width:74px;justify-content:center}.speed-pill,.info-pill{padding:10px 14px;border-radius:999px;background:#bc5a451f;color:var(--accent)}.speed-pill-button{border:none;cursor:pointer}.speed-pill-done{border:none;cursor:pointer;background:#221c16;color:#fff8f1}.speed-control-row{align-items:center}.study-actions{display:flex;justify-content:space-between;margin-top:18px;gap:12px}.study-actions-right{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}.empty-state{display:grid;gap:12px;justify-items:start}.upload-spec{margin-top:24px;padding-top:18px;border-top:1px solid rgba(34,28,22,.08)}.upload-hint{margin:0}.error-text{color:var(--danger)}.term-button{justify-self:start}.form-split{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-shell{display:grid;gap:10px;overflow-x:auto}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;min-width:780px}.calendar-weekday{padding:10px 12px;text-align:center;font-weight:600;color:var(--muted)}.calendar-cell{min-height:170px;padding:14px;border-radius:20px;border:1px solid rgba(34,28,22,.08);background:#ffffffb3;display:grid;gap:12px;align-content:start}.calendar-cell.muted{opacity:.42}.calendar-cell.today{border-color:#bc5a455c;box-shadow:inset 0 0 0 1px #bc5a451f}.calendar-cell-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.calendar-cell-head span{font-size:1.05rem;font-weight:700}.calendar-cell-head small{color:var(--muted)}.calendar-event-link{display:block;padding:10px 12px;border-radius:16px;background:#221c160d;color:var(--text);line-height:1.4}.calendar-more{display:none}.calendar-event-link.lesson_review{background:#2e6f5e1f}.calendar-event-link.new_lesson{background:#bc5a451f}.calendar-event-link.vocabulary_review{background:#c8892d24}@media (max-width: 1200px){.management-grid,.study-layout,.shadowing-layout,.correction-grid{grid-template-columns:1fr}.study-sidebar{position:static}.shadowing-coach-grid{grid-template-columns:1fr}}@media (max-width: 960px){.shell,.page-grid,.split,.form-split{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.hero-card,.span-2{grid-column:span 1}.content{padding:18px}.task-card,.vocab-card,.course-admin-card,.poster-actions,.study-actions,.study-actions-right{align-items:flex-start;flex-direction:column}.calendar-cell{min-height:auto}.course-schedule-editor{grid-template-columns:1fr}.shadowing-toolbar{align-items:flex-start;flex-direction:column}.line-selector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dictionary-float{position:fixed;top:auto;right:12px;left:12px;bottom:12px;width:auto;max-width:none}.dictionary-panel-floating{max-height:54vh}}
