:root{--bg:#f8fafc;--panel:#ffffff;--panel-soft:#f8fafc;--ink:#0f172a;--muted:#64748b;--quiet:#94a3b8;--line:#e2e8f0;--line-strong:#cbd5e1;--green:#047857;--yellow:#b45309;--red:#b91c1c;--offline:#64748b;--blue:#2563eb;--blue-strong:#1d4ed8;--blue-soft:#eff6ff;--green-soft:#ecfdf5;--yellow-soft:#fffbeb;--red-soft:#fef2f2;--offline-soft:#f1f5f9;--shadow:0 18px 42px rgba(15,23,42,0.07);--shadow-soft:0 8px 22px rgba(15,23,42,0.05);--radius:14px;--radius-sm:10px}*{box-sizing:border-box}body,html{min-height:100%;margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,Helvetica,sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.app-nav{position:-webkit-sticky;position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line);background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-nav-inner{display:flex;max-width:1240px;min-height:66px;align-items:center;justify-content:space-between;gap:24px;margin:0 auto;padding:0 24px}.app-brand{color:var(--ink);font-size:19px;font-weight:900;letter-spacing:0}.app-nav-menu{flex:1 1;justify-content:space-between;gap:18px}.app-nav-links,.app-nav-menu{display:flex;align-items:center}.app-nav-links{gap:6px}.app-nav-side{display:flex;align-items:center;gap:8px}.app-nav-link{border-radius:999px;color:var(--muted);padding:9px 13px;font-size:14px;font-weight:750;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.app-nav-link.active,.app-nav-link:hover{background:var(--blue-soft);color:var(--blue);box-shadow:inset 0 0 0 1px rgba(37,99,235,.08)}.app-logout-button{border:0;background:transparent}.app-user-chip{display:inline-flex;min-height:36px;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);padding:7px 11px;font-size:13px;font-weight:850;white-space:nowrap}.app-user-chip small{color:var(--muted);font-size:11px;font-weight:900}.app-nav-toggle{display:none;width:38px;height:38px;align-items:center;justify-content:center;gap:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);flex-direction:column}.app-nav-toggle span{display:block;width:16px;height:2px;border-radius:999px;background:var(--ink)}h1,h2,h3,p{margin-top:0}h1{margin-bottom:8px;font-size:32px;line-height:1.16}h1,h2{letter-spacing:0}h2{margin-bottom:6px;font-size:21px;line-height:1.24}h3{font-size:15px}.page{min-height:100vh;padding:30px 24px}.shell{max-width:1240px;margin:0 auto;padding-bottom:76px}.topbar{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px}.calm-topbar{padding:8px 0}.eyebrow{margin:0 0 8px;color:var(--blue);font-size:12px;font-weight:850;letter-spacing:.01em}.subtle{margin-bottom:0;color:var(--muted);line-height:1.5;font-weight:500}.build-marker{margin:6px 0 0;color:var(--quiet);font-size:11px;font-weight:800}.button-row,.preset-row,.scenario-row,.top-actions{display:flex;flex-wrap:wrap;gap:8px}.top-actions{justify-content:flex-end}.button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);padding:8px 12px;font-weight:800;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}.button:hover:not(:disabled){border-color:var(--line-strong);background:#f8fafc;transform:translateY(-1px)}.button.primary{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 8px 18px rgba(37,99,235,.18)}.button.primary:hover:not(:disabled){border-color:var(--blue-strong);background:var(--blue-strong)}.button.danger{border-color:#ead0ce;color:var(--red)}.button:disabled,.input:disabled{cursor:not-allowed;opacity:.5}.notice{margin-bottom:16px;border:1px solid #fde68a;border-radius:var(--radius-sm);background:var(--yellow-soft);color:var(--yellow);padding:12px 14px;font-weight:800}.empty-state{margin:12px 0 0;color:var(--muted);font-weight:800}.login-page{display:grid;place-items:center;padding-top:72px}.login-card{display:grid;width:min(100%,460px);grid-gap:24px;gap:24px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:28px;box-shadow:var(--shadow)}.login-form{display:grid;grid-gap:14px;gap:14px}.login-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:12px;font-weight:900}.login-message{margin:0;color:var(--muted);font-size:13px;font-weight:800}.class-layout,.management-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:18px;gap:18px;align-items:start}.allowed-panel,.analysis-detail-shell,.compact-shell,.lesson-focus-panel,.lesson-list-panel,.monthly-calendar-panel,.multi-class-summary,.pair-student-card,.reports-panel,.settings-panel,.side-panel,.single-student-focus,.today-workflow-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-soft)}.allowed-panel,.analysis-detail-shell,.lesson-focus-panel,.lesson-list-panel,.monthly-calendar-panel,.multi-class-summary,.reports-panel,.settings-panel,.side-panel,.single-student-focus,.today-workflow-panel{padding:18px}.monthly-calendar-panel,.settings-panel+.settings-panel,.today-workflow-panel{margin-bottom:20px}.advanced-settings-panel summary{display:flex;cursor:pointer;list-style:none;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--muted);font-size:13px;font-weight:800}.advanced-settings-panel summary::-webkit-details-marker{display:none}.advanced-settings-panel summary strong{color:var(--ink)}.advanced-settings-panel[open] summary{margin-bottom:14px}.compact-toolbar{margin:0 0 12px;padding:0;border:0;background:transparent}.inline-field{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:800}.inline-field .input{width:auto;min-width:120px}.button.tertiary{border-color:transparent;background:transparent;color:var(--muted)}.button.tertiary:hover{background:var(--soft);color:var(--ink)}.my-notes-match-summary{display:grid;grid-gap:4px;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:13px}.my-notes-match-summary strong{color:var(--ink)}.my-notes-match-summary.auto{border-color:rgba(37,99,235,.28);background:rgba(37,99,235,.07)}.my-notes-match-summary.needs_review{border-color:rgba(217,119,6,.25);background:rgba(217,119,6,.08)}.my-notes-match-summary.suggested{border-color:rgba(16,185,129,.25);background:rgba(16,185,129,.07)}.home-shell{max-width:1080px}.home-hero{display:grid;grid-gap:14px;gap:14px;margin-bottom:14px}.home-brand-line{display:flex;justify-content:space-between;gap:14px;align-items:center}.home-brand-line div{display:grid;grid-gap:2px;gap:2px}.home-brand-line strong{color:var(--ink);font-size:18px;font-weight:950}.home-brand-line span{color:var(--muted);font-size:12px;font-weight:850}.home-greeting{border:1px solid rgba(37,99,235,.1);border-radius:20px;background:linear-gradient(135deg,rgba(239,246,255,.96),rgba(255,255,255,.98)),#fff;padding:19px 22px}.home-greeting h1{max-width:660px;margin-bottom:7px;font-size:clamp(28px,4vw,39px);line-height:1.15}.home-dashboard-panel{display:grid;grid-gap:16px;gap:16px;margin-bottom:20px}.home-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.home-status-card{display:grid;min-height:88px;align-content:space-between;border:1px solid var(--line);border-radius:18px;padding:14px 16px}.home-status-card span{color:var(--muted);font-size:13px;font-weight:900}.home-status-card strong{color:var(--ink);font-size:27px;line-height:1}.home-status-card.blue{border-color:rgba(37,99,235,.16);background:var(--blue-soft)}.home-status-card.green{border-color:rgba(4,120,87,.14);background:var(--green-soft)}.home-status-card.orange{border-color:rgba(180,83,9,.16);background:var(--yellow-soft)}.home-today-section{border:1px solid var(--line);border-radius:22px;background:#fff;padding:18px}.home-section-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.home-section-head h2{margin-bottom:4px}.home-view-all{color:var(--blue);font-size:13px;font-weight:900;white-space:nowrap}.home-section-actions,.lesson-badges{display:flex;flex-wrap:wrap;gap:8px}.push-notification-control{display:contents}.push-install-guide{display:grid;max-width:310px;grid-gap:2px;gap:2px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1e3a8a;padding:8px 10px;font-size:12px}.push-install-guide span,.push-notification-message{color:var(--muted);font-size:11px}.lesson-badges{margin:4px 0}.lesson-badges span,.supplemental-calendar-label{display:inline-flex;width:-moz-fit-content;width:fit-content;border-radius:999px;background:#eef2ff;color:#4338ca;padding:2px 7px;font-size:11px;font-weight:900}.lesson-badges .supplemental-badge{background:#fff7ed;color:#c2410c}.lesson-badges .lesson-mode-badge.online{background:var(--blue-soft);color:var(--blue)}.lesson-badges .lesson-mode-badge.offline{background:#ecfdf5;color:#047857}.calendar-lesson-actions,.lesson-card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.button.subtle-danger{border-color:#fecaca;background:#fff;color:#b91c1c}.supplemental-cancel-note{color:var(--muted);font-size:11px;font-weight:800}.supplemental-message{margin:-2px 0 10px;color:var(--blue);font-size:13px;font-weight:850}.lesson-modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;overflow-y:auto;background:rgba(15,23,42,.38);padding:20px}.lesson-modal{width:min(520px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;border-radius:18px;background:#fff;padding:20px;box-shadow:0 20px 55px rgba(15,23,42,.18)}.lesson-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.lesson-modal-head h2{margin:2px 0 0}.icon-button{display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border:0;border-radius:50%;background:var(--panel-soft);color:var(--ink);font-size:24px;cursor:pointer}.supplemental-form{display:grid;grid-gap:14px;gap:14px}.supplemental-form label{display:grid;grid-gap:6px;gap:6px;color:var(--ink);font-size:13px;font-weight:900}.supplemental-form input,.supplemental-form select,.supplemental-form textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:10px 12px;font:inherit}.supplemental-form textarea{min-height:78px;resize:vertical}.supplemental-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.supplemental-submit{min-height:46px;justify-content:center}.home-lesson-list{display:grid;grid-gap:8px;gap:8px}.home-lesson-card{display:grid;grid-template-columns:46px minmax(0,1fr);grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);padding:11px 12px}.home-lesson-avatar{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;background:var(--blue);color:#fff;font-size:18px;font-weight:950}.home-lesson-main{display:grid;grid-template-columns:minmax(0,1fr) auto;min-width:0;grid-gap:5px 14px;gap:5px 14px}.home-lesson-title-row{display:flex;grid-column:1/-1;justify-content:space-between;gap:10px;align-items:flex-start}.home-lesson-title-row h3{margin-bottom:2px;font-size:16px}.home-lesson-time,.home-lesson-title-row p,.home-lesson-topic{margin:0}.home-lesson-time,.home-lesson-title-row p{color:var(--muted);font-size:13px;font-weight:800}.home-lesson-title-row .home-lesson-time{margin-top:3px;color:var(--ink);font-size:14px;font-weight:900}.home-lesson-topic{display:-webkit-box;overflow:hidden;color:var(--ink);font-weight:850;font-size:13px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.home-lesson-status{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;background:#f1f5f9;color:var(--muted);padding:4px 9px;font-size:12px;font-weight:900;white-space:nowrap}.home-lesson-status.complete{background:var(--green-soft);color:var(--green)}.home-lesson-status.report_needed{background:var(--blue-soft);color:var(--blue)}.home-lesson-status.scheduled{background:var(--yellow-soft);color:var(--yellow)}.home-lesson-status.analysis_pending{background:#fff7ed;color:#c2410c}.home-lesson-status.problem{background:var(--red-soft);color:var(--red)}.home-lesson-action{grid-column:2;grid-row:2/span 4;align-self:center;width:-moz-fit-content;width:fit-content;min-height:40px;margin:0;white-space:nowrap}.home-lesson-progress{display:flex;flex-wrap:wrap;gap:4px 7px;color:var(--muted);font-size:12px;font-weight:850}.home-lesson-progress span{display:inline-flex;gap:7px;align-items:center}.home-lesson-progress i{color:var(--quiet);font-style:normal}.home-lesson-progress .done{color:var(--green)}.home-lesson-progress .current{color:var(--blue)}.home-lesson-progress .problem{color:var(--red)}.mobile-bottom-nav{display:none}.monitoring-detail-panel{margin-top:14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.monitoring-detail-panel>summary,.recording-admin-menu>summary{cursor:pointer;color:var(--blue);font-weight:900;list-style:none}.monitoring-detail-panel>summary{display:flex;min-height:64px;align-items:center;justify-content:space-between;padding:12px 16px;color:var(--ink)}.monitoring-detail-panel>summary:hover{background:var(--panel-soft)}.monitoring-detail-panel>summary:focus-visible{outline:3px solid rgba(37,99,235,.16);outline-offset:-3px}.monitoring-detail-panel>summary>span{display:grid;grid-gap:3px;gap:3px}.monitoring-detail-panel>summary strong{font-size:14px}.monitoring-detail-panel>summary small{color:var(--muted);font-size:12px;font-weight:750}.monitoring-detail-panel>summary::-webkit-details-marker,.recording-admin-menu>summary::-webkit-details-marker{display:none}.monitoring-detail-panel>summary:after,.recording-admin-menu>summary:after{content:" 펼치기";color:var(--muted);font-size:12px;font-weight:800}.monitoring-detail-panel>summary:after{content:"펼치기  ›"}.monitoring-detail-panel[open]>summary:after,.recording-admin-menu[open]>summary:after{content:" 접기"}.monitoring-detail-panel[open]>summary:after{content:"접기  ⌃"}.monitoring-detail-panel .management-layout{margin:0;border-top:1px solid var(--line);border-radius:0;padding:16px}.today-lesson-list{display:grid;grid-gap:10px;gap:10px;margin-top:16px}.today-lesson-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;grid-gap:16px;gap:16px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:15px;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.today-lesson-row:hover{border-color:var(--line-strong);background:#fff;box-shadow:var(--shadow-soft)}.today-lesson-row>div{display:grid;grid-gap:5px;gap:5px}.today-lesson-row>div:nth-child(2){display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.today-lesson-row small{color:var(--muted);font-weight:800}.pc-monitoring-note{display:inline-flex;align-items:center;gap:6px}.pc-monitoring-note:before{content:"";width:7px;height:7px;border-radius:999px;background:var(--quiet)}.pc-monitoring-note.connected{color:var(--green)}.pc-monitoring-note.connected:before{background:var(--green)}.pc-monitoring-note.disconnected{color:var(--yellow)}.pc-monitoring-note.disconnected:before{background:var(--yellow)}.calendar-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.monthly-calendar-panel{padding:15px}.monthly-calendar-panel>.panel-head{gap:12px;margin-bottom:0}.monthly-calendar-panel>.panel-head .eyebrow{margin-bottom:2px}.monthly-calendar-panel>.panel-head h2{margin-bottom:2px;font-size:20px}.monthly-calendar-panel>.panel-head .subtle{font-size:12px}.monthly-calendar-panel .calendar-controls .button{min-height:34px;padding:6px 10px}.lesson-calendar-layout{display:grid;grid-gap:12px;gap:12px;align-items:start;margin-top:12px}.lesson-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.calendar-weekday{color:var(--muted);font-size:12px;font-weight:900;text-align:center}.calendar-day{position:relative;display:grid;min-height:76px;grid-gap:4px;gap:4px;align-content:start;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:7px 8px;text-align:left;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.calendar-day:focus-visible,.calendar-day:hover:not(.empty-day){border-color:rgba(37,99,235,.35);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.calendar-day.selected{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.calendar-day.today{border-color:rgba(37,99,235,.45)}.calendar-day.today .calendar-date-number:after{content:"오늘";margin-left:6px;color:var(--blue);font-size:10px;font-weight:900}.empty-day{background:transparent;border-color:transparent}.calendar-date-number{color:var(--ink);font-size:13px;font-weight:900}.calendar-lesson-count{color:var(--muted);font-size:11px;font-weight:800}.calendar-count-mobile,.calendar-mode-mobile,.calendar-status-mobile{display:none}.calendar-mode-summary{display:grid;grid-gap:1px;gap:1px;font-size:9px;font-weight:850;line-height:1.2;text-align:left}.calendar-cell-status,.calendar-mode-summary{width:-moz-fit-content;width:fit-content;color:var(--muted)}.calendar-cell-status{display:inline-flex;min-height:19px;align-items:center;border-radius:999px;background:#f1f5f9;padding:1px 6px;font-size:10px;font-weight:900;white-space:nowrap}.calendar-cell-status.complete{background:#eaf7ee;color:var(--green)}.calendar-cell-status.scheduled{background:var(--yellow-soft);color:var(--yellow)}.calendar-cell-status.report_needed{background:var(--blue-soft);color:var(--blue)}.calendar-cell-status.analysis_pending{background:#fff7ed;color:#c2410c}.calendar-cell-status.problem{background:#fdeeee;color:var(--red)}.calendar-popover{position:absolute;z-index:10;left:8px;top:calc(100% - 4px);display:none;min-width:220px;max-width:280px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;box-shadow:0 16px 38px rgba(15,23,42,.14);padding:10px;text-align:left}.calendar-popover span{display:block;color:var(--ink);font-size:12px;font-weight:800;line-height:1.45}.calendar-day:focus-visible .calendar-popover,.calendar-day:hover .calendar-popover{display:grid;grid-gap:5px;gap:5px}.calendar-detail-panel{display:grid;grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:16px;box-shadow:var(--shadow-soft)}.calendar-lesson-list{display:grid;grid-gap:10px;gap:10px}.calendar-lesson-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:12px}.calendar-lesson-card>div{display:grid;grid-gap:5px;gap:5px}.calendar-lesson-card small{color:var(--muted);font-weight:800}.calendar-lesson-actions{justify-content:flex-end}.calendar-status{display:inline-flex;width:-moz-fit-content;width:fit-content;min-height:26px;align-items:center;border-radius:999px;background:#f1f5f9;color:var(--muted);padding:3px 9px;font-size:12px;font-weight:900}.calendar-status.complete{background:#eaf7ee;color:var(--green)}.calendar-status.scheduled{background:var(--yellow-soft);color:var(--yellow)}.calendar-status.report_needed{background:var(--blue-soft);color:var(--blue)}.calendar-status.analysis_pending{background:#fff7ed;color:#c2410c}.calendar-status.problem{background:#fdeeee;color:var(--red)}.app-row,.panel-head,.section-head,.student-hero-line,.timeline-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.soft-badge{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;border:1px solid rgba(37,99,235,.14);background:var(--blue-soft);color:var(--blue);padding:4px 10px;font-size:12px;font-weight:850;white-space:nowrap}.teacher-invite-form{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:flex-end;margin-top:18px}.teacher-invite-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:12px;font-weight:900}.organization-user-table{display:grid;grid-gap:8px;gap:8px;margin-top:16px}.organization-user-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(180px,1.5fr) 90px 110px 110px;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:10px 12px;color:var(--ink);font-weight:750}.organization-user-row.header{border-color:transparent;background:transparent;color:var(--muted);padding-block:0;font-size:12px;font-weight:900}.lesson-list{grid-gap:8px;gap:8px}.lesson-list,.reports-list{display:grid;margin-top:16px}.reports-list{grid-gap:10px;gap:10px}.report-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:16px;gap:16px;align-items:start;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:16px;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.report-row:hover{border-color:var(--line-strong);background:#fff;box-shadow:var(--shadow-soft)}.report-row h3{margin:0;font-size:20px}.report-row-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.report-topic{margin:8px 0 0;color:var(--ink);font-weight:800}.report-preview{margin:12px 0 0;color:var(--ink);line-height:1.55;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.report-row-actions{display:grid;justify-items:end;grid-gap:10px;gap:10px}.report-filters{display:grid;grid-template-columns:minmax(140px,180px) minmax(140px,180px) minmax(220px,1fr);grid-gap:10px;gap:10px;margin-top:16px}.lesson-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;width:100%;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;padding:12px;text-align:left}.lesson-row.selected,.lesson-row:hover{border-color:var(--line-strong);background:var(--panel-soft);box-shadow:var(--shadow-soft)}.lesson-time{color:var(--ink);font-weight:800}.lesson-row small,.preview-student small{display:block;margin-top:3px;color:var(--muted)}.lesson-status{color:var(--muted);font-size:13px;font-weight:800}.class-preview{display:grid;grid-gap:8px;gap:8px;margin-top:18px}.preview-student{display:flex;justify-content:space-between;gap:12px;align-items:center;width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:12px;text-align:left}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:18px}.summary-strip div{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:12px}.summary-strip span{display:block;color:var(--muted);font-size:12px;font-weight:800}.summary-strip strong{display:block;margin-top:6px;font-size:24px}.class-main{display:grid;grid-gap:16px;gap:16px}.single-student-focus{min-height:360px;display:grid;align-content:start;grid-gap:28px;gap:28px}.single-student-focus h2{margin-bottom:4px;font-size:42px}.focus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.focus-grid div{min-height:116px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:14px}.detail-item span,.focus-grid span,.setting-field span{display:block;color:var(--muted);font-size:12px;font-weight:800}.focus-grid strong{display:block;margin-top:12px;font-size:22px}.pair-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.pair-student-card{min-height:220px;display:grid;grid-gap:14px;gap:14px;align-content:start;padding:18px;text-align:left}.pair-student-card strong{font-size:26px}.multi-class-summary .summary-strip{margin-top:0}.attention-list{display:grid;grid-gap:8px;gap:8px;margin-top:14px}.attention-list button{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:12px}.natural-status{display:inline-flex;align-items:center;gap:7px;min-height:30px;color:var(--muted);font-size:14px;font-weight:800;white-space:nowrap}.natural-GREEN{color:var(--green)}.natural-YELLOW{color:var(--yellow)}.natural-RED{color:var(--red)}.natural-OFFLINE{color:var(--offline)}.quiet-detail{position:-webkit-sticky;position:sticky;top:18px}.detail-list{display:grid;grid-gap:10px;gap:10px;margin-top:14px}.detail-item{display:grid;grid-gap:4px;gap:4px}.detail-item strong{overflow-wrap:anywhere;font-size:14px}.technical strong{color:var(--muted);font-weight:700}.timeline{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.timeline-row{border-top:1px solid var(--line);padding-top:10px}.timeline-row:first-child{border-top:0}.time{color:var(--quiet);font-size:12px;font-weight:800}.compact-shell{--companion-opacity:0.85;--companion-panel:rgba(13,19,27,var(--companion-opacity));--companion-panel-soft:rgba(20,28,38,calc(var(--companion-opacity) + 0.04));--companion-line:rgba(255,255,255,0.12);--companion-text:#f4f7fb;--companion-muted:#9ba6b4;width:min(100%,360px);overflow:hidden;border-color:var(--companion-line);background:rgba(13,19,27,.92);box-shadow:0 12px 28px rgba(0,0,0,.22);color:var(--companion-text);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.compact-shell-YELLOW{border-left:3px solid #e7a23b}.compact-shell-RED{border-left:3px solid #e35f54}.compact-shell-OFFLINE{border-left:3px solid #79818d}.compact-collapsed{display:grid;grid-gap:8px;gap:8px;width:100%;min-height:148px;border:0;background:var(--companion-panel);padding:10px 12px;color:var(--companion-text);text-align:left}.compact-detail-head,.compact-recent-row,.compact-student-row{display:flex;justify-content:space-between;gap:10px;align-items:center}.compact-headline{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:9px;gap:9px;align-items:center}.compact-headline strong{overflow:hidden;color:var(--companion-text);font-size:16px;text-overflow:ellipsis;white-space:nowrap}.compact-header-time{color:var(--companion-text);font-size:13px;font-weight:800}.compact-status{display:inline-flex;align-items:center;gap:5px;color:var(--companion-muted);font-size:12px;font-weight:800}.compact-status-GREEN{color:var(--green)}.compact-status-YELLOW{color:var(--yellow)}.compact-status-RED{color:var(--red)}.compact-status-OFFLINE{color:var(--offline)}.compact-elapsed{display:none;color:var(--companion-text);font-size:21px;font-weight:800}.compact-current{display:grid;grid-gap:2px;gap:2px;min-height:56px;padding-top:3px}.compact-activity-summary span{color:var(--companion-muted);font-size:12px;font-weight:800}.compact-current strong{color:var(--companion-text);font-size:22px}.compact-current small,.compact-current strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-current small{color:var(--companion-muted);font-size:12px}.compact-current em{color:#e7a23b;font-size:13px;font-style:normal;font-weight:800}.compact-current.is-other{border-left:2px solid #e7a23b;padding-left:8px}.compact-shell-RED .compact-current.is-other{border-left-color:#e35f54}.compact-activity-summary{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid var(--companion-line);padding-top:8px}.compact-activity-summary strong{color:var(--companion-text);font-size:12px;white-space:nowrap}.compact-summary-YELLOW span{color:#e7a23b}.compact-shell-RED .compact-current em,.compact-summary-RED span{color:#e35f54}.compact-summary-OFFLINE{justify-content:flex-start}.compact-offline{min-height:67px}.compact-offline strong{color:#c9d0da;font-size:19px}.compact-group-many,.compact-group-two{display:grid;grid-gap:8px;gap:8px}.compact-group-many>div:first-child{color:var(--companion-text);font-size:13px;font-weight:800}.compact-empty{background:var(--companion-panel);color:var(--companion-muted);padding:12px 14px;font-size:13px;font-weight:800}.compact-student-row{justify-content:flex-start;border-radius:8px;padding:8px}.compact-student-row small{display:block;margin-top:2px}.compact-student-row small,.row-dot{color:var(--companion-muted);font-size:12px}.row-YELLOW{background:rgba(231,162,59,.13)}.row-RED{background:rgba(227,95,84,.13)}.row-OFFLINE{background:rgba(121,129,141,.16)}.compact-detail{border-top:1px solid var(--companion-line);background:var(--companion-panel-soft);padding:12px 14px}.compact-detail h3{margin-bottom:2px}.compact-detail p{margin-bottom:0}.compact-chevron,.compact-detail p{color:var(--companion-muted);font-size:12px;font-weight:800}.compact-chevron{min-height:30px;border:1px solid var(--companion-line);border-radius:8px;background:rgba(255,255,255,.06);padding:5px 9px}.compact-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:9px;gap:9px;margin:12px 0}.compact-facts dt{color:var(--companion-muted);font-size:11px;font-weight:800}.compact-facts dd{overflow:hidden;margin:3px 0 0;color:var(--companion-text);font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.compact-recent{margin-top:12px}.compact-recent h3{margin-bottom:7px;color:var(--companion-muted);font-size:12px}.compact-recent-row{border-top:1px solid var(--companion-line);padding:6px 0;font-size:12px}.compact-recent-row:first-of-type{border-top:0}.compact-recent p,.compact-recent-row span{color:var(--companion-muted)}.compact-recent p{margin-bottom:0;font-size:12px}.compact-opacity{display:grid;grid-gap:6px;gap:6px;margin-top:12px}.compact-opacity span{color:var(--companion-muted);font-size:11px;font-weight:800}.compact-opacity input{accent-color:#5f8cff}.compact-actions{display:flex;gap:8px;margin-top:12px}.compact-actions .button{border-color:var(--companion-line);background:rgba(255,255,255,.06);color:var(--companion-text)}.compact-actions .button.danger{color:#ffb4ad}.mini-companion{width:-moz-fit-content;width:fit-content;max-width:260px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(13,19,27,.86);padding:8px 10px;color:#f4f7fb;font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.allowed-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-gap:8px;gap:8px;margin:16px 0 12px}.input{min-height:38px;width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:8px 10px;color:var(--ink);outline:none;transition:border-color .16s ease,box-shadow .16s ease}.input:focus{border-color:rgba(37,99,235,.62);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.app-list{display:grid;grid-gap:8px;gap:8px}.app-row{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px}.app-row.disabled{background:var(--panel-soft);color:var(--muted)}.settings-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));grid-gap:12px;gap:12px;margin-top:14px}.setting-field{display:grid;grid-gap:7px;gap:7px}.developer-tools,.setting-field,.settings-summary{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px}.developer-tools,.settings-summary{margin-top:14px;background:var(--panel-soft)}.recording-source-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;margin-top:16px}.lesson-view-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:16px}.lesson-view-option,.recording-source-option{display:grid;grid-template-columns:auto 1fr;grid-gap:8px 12px;gap:8px 12px;align-items:start;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:14px;text-align:left;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.lesson-view-option.selected,.recording-source-option.selected{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.recording-source-radio{width:18px;height:18px;margin-top:2px;border:2px solid var(--line);border-radius:999px;background:#fff}.lesson-view-option.selected .recording-source-radio,.recording-source-option.selected .recording-source-radio{border:5px solid var(--blue)}.lesson-view-option span,.lesson-view-option strong,.recording-source-option span,.recording-source-option strong,.recording-source-option ul{grid-column:2}.lesson-view-option span,.recording-source-option li,.recording-source-option span{color:var(--muted);font-size:13px;font-weight:700}.recording-source-option ul{display:grid;grid-gap:4px;gap:4px;margin:0;padding-left:18px}.lesson-detail-tabs{flex-wrap:wrap;gap:8px;margin-top:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:5px}.student-link-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px) auto;align-items:flex-end;grid-gap:16px;gap:16px;padding:18px 20px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.student-link-editor label{display:grid;grid-gap:7px;gap:7px}@media (max-width:720px){.student-link-editor{grid-template-columns:1fr;align-items:stretch}.student-link-editor .recording-actions{display:grid;grid-template-columns:1fr 1fr}}.lesson-detail-tabs button{min-height:36px;border:0;border-radius:9px;background:transparent;color:var(--muted);padding:7px 12px;font-weight:900}.lesson-detail-tabs button.active{background:#fff;color:var(--blue);box-shadow:var(--shadow-soft)}.debug-toggle{margin-top:14px}.developer-tools{display:grid;grid-gap:12px;gap:12px}.mode-toggle{display:inline-flex;width:-moz-fit-content;width:fit-content;min-height:38px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.mode-button{border:0;border-right:1px solid var(--line);background:#fff;color:var(--muted);padding:8px 12px;font-weight:800}.mode-button:last-child{border-right:0}.mode-button.active{background:var(--blue);color:#fff}.bottom-nav{position:fixed;left:50%;bottom:18px;z-index:10;display:flex;gap:4px;transform:translateX(-50%);border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.92);padding:5px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav button{border:0;background:transparent}.bottom-nav a,.bottom-nav button{min-height:34px;border-radius:999px;color:var(--muted);padding:7px 12px;font-weight:800}.bottom-nav a{display:inline-flex;align-items:center;white-space:nowrap}.bottom-nav button.active{background:var(--blue-soft);color:var(--blue)}.recordings-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.recording-admin-menu{position:relative}.recording-admin-actions{position:absolute;right:0;z-index:20;display:flex;width:min(720px,calc(100vw - 32px));flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:12px;box-shadow:var(--shadow)}.recordings-student-picker{display:grid;min-width:180px;grid-gap:4px;gap:4px;color:var(--muted);font-size:12px;font-weight:800}.recording-match-preview,.recordings-list{display:grid;grid-gap:12px;gap:12px}.recording-match-preview{margin-bottom:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:16px;box-shadow:var(--shadow-soft)}.recording-match-preview-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--muted);font-size:13px}.recording-match-preview-header>div{display:grid;grid-gap:4px;gap:4px}.recording-match-preview-header strong{color:var(--ink)}.primary-source-panel{border-color:rgba(37,99,235,.32)}.secondary-source-panel{background:var(--panel-soft);box-shadow:none}.upload-recording-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));grid-gap:12px;gap:12px}.upload-recording-grid label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.upload-recording-file{grid-column:span 2}.my-notes-list{display:grid;grid-gap:10px;gap:10px}.my-notes-card{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,.8fr) auto;grid-gap:12px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:12px}.my-notes-card h3{margin:4px 0;font-size:18px}.my-notes-card label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.my-notes-recovery-actions{position:relative}.my-notes-recovery-actions summary{min-height:44px;display:inline-flex;align-items:center;color:var(--muted);font-size:13px;font-weight:800;cursor:pointer}.my-notes-recovery-actions[open] .button{margin-top:6px}.recording-match-table{display:grid;overflow-x:auto}.recording-match-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(110px,.8fr) minmax(120px,.8fr) minmax(80px,.5fr) minmax(120px,.7fr);grid-gap:10px;gap:10px;min-width:720px;border-top:1px solid var(--line);padding:9px 0;color:var(--muted);font-size:13px;font-weight:700}.recording-match-row.header{border-top:0;color:var(--ink);font-size:12px;font-weight:900}.bulk-analysis-summary{display:flex;flex-wrap:wrap;gap:8px}.bulk-analysis-results{display:grid;grid-gap:12px;gap:12px;margin-bottom:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:16px;box-shadow:var(--shadow-soft)}.bulk-analysis-result-list{display:grid;grid-gap:10px;gap:10px}.bulk-analysis-result-card{display:grid;grid-gap:8px;gap:8px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px}.bulk-analysis-result-card.completed{border-color:#b9ddcf;background:var(--green-soft)}.bulk-analysis-result-card.failed{border-color:#efc2be;background:var(--red-soft)}.bulk-analysis-result-card.waiting{border-color:#f3d28b;background:#fff8e8}.bulk-analysis-result-card p{margin:4px 0 0;color:var(--muted);font-weight:800}.bulk-analysis-result-detail{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:800}.recording-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:18px;box-shadow:var(--shadow-soft);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.recording-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-1px)}.recording-card-excluded{border-style:dashed;opacity:.72}.recording-main{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px}.recording-source-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.recording-date{display:block;margin-bottom:7px;color:var(--blue);font-size:13px;font-weight:800}.recording-main h2{margin-bottom:5px}.recording-student-link{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;border-bottom:1px solid var(--line);padding:12px 0}.recording-student-link label{display:grid;min-width:220px;grid-gap:4px;gap:4px;color:var(--muted);font-size:12px;font-weight:800}.recording-student-link .button{min-height:40px}.recording-student-link .subtle{padding-bottom:10px;font-weight:800}.recording-match-status-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}.recording-match-status-row>div{display:grid;grid-gap:4px;gap:4px;min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:11px}.recording-match-status-row small{color:var(--muted);font-size:12px;font-weight:800}.recording-retention-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}.recording-retention-row>div{display:grid;grid-gap:4px;gap:4px}.recording-retention-row strong{color:var(--ink)}.recording-retention-row small{color:var(--muted);font-size:12px;font-weight:800}.recording-files{display:grid;grid-gap:8px;gap:8px;margin-top:14px}.recording-file-row{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:11px 12px}.recording-file-row span{color:var(--muted);font-weight:800;white-space:nowrap}.recording-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.recording-detail div{display:grid;grid-gap:4px;gap:4px;min-width:0}.recording-detail span{color:var(--muted);font-size:12px;font-weight:800}.recording-detail strong{overflow-wrap:anywhere;font-size:13px}.recording-file-detail-list{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.recording-file-detail{display:grid;grid-template-columns:1.2fr repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:11px 12px}.recording-file-detail span{color:var(--muted);font-size:12px;font-weight:800;overflow-wrap:anywhere}.recording-actions{display:flex;gap:8px;margin-top:14px}.analysis-panel{margin-top:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:18px;box-shadow:var(--shadow-soft)}.analysis-choice-grid,.analysis-steps,.analysis-summary{display:grid;grid-gap:10px;gap:10px}.analysis-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.analysis-file-option,.analysis-step,.analysis-summary div{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:12px}.analysis-file-option small,.analysis-step span,.analysis-summary span{display:block;color:var(--muted);font-size:12px;font-weight:800}.analysis-summary strong{display:block;margin-top:6px;overflow-wrap:anywhere}.analysis-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.analysis-file-list{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.analysis-file-option{display:flex;gap:10px;align-items:flex-start}.analysis-file-option input{margin-top:3px}.analysis-file-option strong{display:block}.analysis-actions{display:flex;gap:12px;align-items:center;margin-top:16px}.analysis-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-items:center}.analysis-actions span{color:var(--muted);font-weight:800}.analysis-job{margin-top:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:14px}.class-analysis-panel,.transcript-panel{margin-top:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:14px;box-shadow:var(--shadow-soft)}.class-analysis-panel{display:grid;grid-gap:16px;gap:16px}.teacher-report-panel{display:grid;grid-gap:14px;gap:14px;margin-top:16px}.teacher-report-details,.teacher-report-hero,.teacher-report-section{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-soft)}.teacher-report-hero{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:18px}.teacher-report-section{padding:16px}.teacher-report-section.highlight{border-color:rgba(37,99,235,.25);background:var(--blue-soft)}.teacher-report-section.remember{border-color:rgba(180,83,9,.28);background:var(--yellow-soft)}.teacher-report-section.next{border-color:rgba(4,120,87,.24);background:var(--green-soft)}.teacher-report-section.memo{background:#fff}.teacher-report-section span{display:block;color:var(--muted);font-size:12px;font-weight:850}.teacher-report-section strong{display:block;margin-top:5px;line-height:1.45}.teacher-report-section p{margin-bottom:0;line-height:1.65}.teacher-report-focus,.teacher-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.teacher-report-tags{display:flex;flex-wrap:wrap;gap:8px}.teacher-report-tags span{border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--ink);padding:7px 10px;font-size:13px;font-weight:850}.teacher-report-list{display:grid;grid-gap:9px;gap:9px;margin:0;padding-left:18px;line-height:1.55}.teacher-report-list small{display:block;margin-top:4px;color:var(--muted);font-weight:750}.progress-flow{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.progress-flow li{position:relative;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);padding:7px 11px;font-size:13px;font-weight:850}.progress-flow li.current{border-color:rgba(37,99,235,.32);background:var(--blue-soft);color:var(--blue)}.teacher-memo-textarea{min-height:120px;margin-top:10px;resize:vertical;line-height:1.65}.teacher-report-details{padding:0;overflow:hidden}.teacher-report-details summary{min-height:48px;padding:14px 16px;color:var(--ink);cursor:pointer;font-weight:900}.teacher-report-details[open]{padding-bottom:14px}.teacher-report-details[open]>summary{border-bottom:1px solid var(--line);margin-bottom:14px}.teacher-report-details>.class-analysis-panel,.teacher-report-details>.subtle,.teacher-report-details>.teacher-report-grid,.teacher-report-details>.utterance-list{margin:0 14px}.utterance-list{display:grid;grid-gap:10px;gap:10px;padding:0;list-style:none}.utterance-list li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:12px}.utterance-list span{color:var(--muted);font-size:12px;font-weight:850}.utterance-list strong{display:inline-block;margin-left:8px;font-size:13px}.utterance-list p{margin:7px 0 0;line-height:1.55}.daily-report-panel{display:grid;grid-gap:16px;gap:16px;margin-top:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:18px;box-shadow:var(--shadow-soft)}.daily-report-grid{display:grid;grid-gap:14px;gap:14px}.daily-report-textarea{min-height:150px;resize:vertical;line-height:1.65}.daily-report-textarea.compact{min-height:90px}.analysis-result-list{display:grid;grid-gap:8px;gap:8px;margin-top:8px;padding-left:18px}.analysis-result-list small{display:block;margin-top:4px;color:var(--muted);font-weight:700}.transcript-text{margin-top:12px;max-height:360px;white-space:pre-wrap;color:var(--ink);line-height:1.7}.analysis-job-ready{border-color:#b9ddcf;background:var(--green-soft)}.analysis-job-failed{border-color:#efc2be;background:var(--red-soft)}.analysis-steps{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}.analysis-step-done{border-color:#b9ddcf}.analysis-step-failed{border-color:#efc2be}.empty{border:1px dashed var(--line);border-radius:var(--radius);padding:24px;color:var(--muted);text-align:center;background:rgba(255,255,255,.6)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.compact-window{min-height:100vh;display:grid;place-items:start;background:radial-gradient(circle at 20% 0,rgba(47,95,189,.16),transparent 34%),#070b10;padding:8px}.compact-error{padding:12px;color:var(--muted);font-size:13px;font-weight:800;margin:8px 0 0;color:#b8c0cb}.compact-scenarios{display:flex;flex-wrap:wrap;gap:4px;max-width:360px;margin-top:8px}.compact-scenarios button{min-height:24px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.06);color:#9ba6b4;padding:3px 7px;font-size:10px;font-weight:800}@media (max-height:145px),(max-width:300px){.compact-window{padding:4px}.compact-shell{width:100%}.compact-collapsed{min-height:44px;grid-template-columns:minmax(0,1fr);gap:4px;padding:8px 10px}.compact-activity-summary,.compact-current em,.compact-current small,.compact-current span,.compact-detail,.compact-elapsed,.compact-scenarios{display:none}.compact-current{border-top:0;padding-top:0}.compact-current strong,.compact-headline strong{font-size:12px}.compact-status{font-size:11px}}.compact-session-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:9px;gap:9px;margin:12px 0 0;border-top:1px solid var(--companion-line);padding-top:10px}.compact-session-facts dt{color:var(--companion-muted);font-size:11px;font-weight:800}.compact-session-facts dd{margin:3px 0 0;color:var(--companion-text);font-size:12px;font-weight:800}.student-class-list,.student-record-layout{display:grid;grid-gap:14px;gap:14px}.student-tabs{display:flex;flex-wrap:wrap;gap:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:5px}.student-tabs button{border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:900}.student-tabs .active{background:#fff;color:var(--blue);box-shadow:var(--shadow-soft)}.student-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.student-overview-grid>div{display:grid;grid-gap:5px;gap:5px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:14px}.student-overview-grid span{color:var(--muted);font-size:12px;font-weight:800}.student-progress-history,.student-progress-panel{display:grid;grid-gap:14px;gap:14px}.student-progress-current{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border:1px solid rgba(37,99,235,.22);border-radius:var(--radius-sm);background:var(--blue-soft);padding:16px}.student-progress-current>div{display:grid;grid-gap:6px;gap:6px;min-width:0}.student-progress-current span,.student-progress-fact-grid span,.student-progress-row time{color:var(--muted);font-size:12px;font-weight:800}.student-progress-current strong{overflow-wrap:anywhere;font-size:20px}.student-progress-fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.student-progress-fact-grid>div{min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:13px}.student-progress-fact-grid>div:first-child{grid-column:1/-1}.student-progress-fact-grid p,.student-progress-facts{margin:7px 0 0;overflow-wrap:anywhere;color:var(--text);font-size:14px;line-height:1.65}.student-progress-facts{padding-left:18px}.student-progress-empty{color:var(--muted)!important}.student-progress-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:13px 0}.student-progress-row>div{display:grid;grid-gap:4px;gap:4px;min-width:0}.student-progress-row p,.student-progress-row strong{overflow-wrap:anywhere}.student-progress-row p{margin:0;color:var(--muted);font-size:13px}.student-progress-empty-state{min-height:180px;align-content:center;text-align:center}.student-form{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px;margin-bottom:16px}.student-add-form{grid-template-columns:repeat(5,minmax(0,1fr)) auto}.matholic-sync-panel{display:grid;grid-gap:10px;gap:10px}.matholic-sync-summary{display:flex;flex-wrap:wrap;gap:8px}.matholic-sync-summary span{border:1px solid var(--line);border-radius:999px;background:var(--panel);padding:6px 10px;color:var(--muted);font-size:12px;font-weight:800}.student-admin-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.student-management-list{display:grid;grid-gap:10px;gap:10px}.student-management-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);padding:12px;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.student-management-row:hover{border-color:var(--line-strong);background:#fff;box-shadow:var(--shadow-soft)}.student-management-row.inactive{background:var(--panel-soft)}.student-management-row.selected{border-color:rgba(37,99,235,.55);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.student-management-row small{display:block;margin-top:4px;color:var(--quiet);font-size:11px;font-weight:800}.student-detail-editor{display:grid;grid-gap:18px;gap:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:18px;box-shadow:var(--shadow-soft)}.student-editor-section{display:grid;grid-gap:12px;gap:12px;border-top:1px solid var(--line);padding-top:16px}.student-editor-section h3{margin:0}.student-management-actions{padding-bottom:12px}.student-management-actions>.button{width:-moz-fit-content;width:fit-content}.student-danger-zone{display:grid;grid-gap:8px;gap:8px;border:1px solid #fecaca;border-radius:var(--radius-sm);background:#fff7f7;padding:14px}.student-danger-zone .button{width:-moz-fit-content;width:fit-content}.student-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.checkbox-line,.student-editor-grid label{display:grid;grid-gap:5px;gap:5px;color:var(--muted);font-size:12px;font-weight:800}.checkbox-line{display:flex;align-items:center}.student-checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px 12px;gap:8px 12px}.section-title-row{display:flex;justify-content:space-between;gap:10px;align-items:center}.lesson-mode-row{display:flex;flex-wrap:wrap;gap:14px}.lesson-meta-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:10px 12px}.lesson-meta-row span,.schedule-label{color:var(--muted);font-size:11px;font-weight:800}.lesson-meta-row strong{color:var(--ink)}.alias-list,.schedule-list{display:grid;grid-gap:8px;gap:8px}.alias-row,.schedule-row{display:grid;grid-template-columns:1fr .8fr .7fr .8fr 1fr 1fr auto;grid-gap:8px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-soft);padding:10px}textarea.input{min-height:92px;resize:vertical;line-height:1.6}.schedule-row.exception-row{grid-template-columns:1fr 1fr .8fr .7fr .8fr auto}.schedule-row.labeled{grid-template-columns:1.1fr .9fr .8fr .9fr 1fr 1fr auto}.schedule-row.exception-row.labeled{grid-template-columns:1fr 1fr .9fr .8fr auto}.schedule-row.student-regular-row.labeled{grid-template-columns:1fr .9fr .8fr .9fr 1.2fr}.schedule-row.labeled label{color:var(--muted);font-size:11px;font-weight:800}.schedule-row.labeled label,.schedule-status-cell{display:grid;grid-gap:5px;gap:5px}.alias-row{grid-template-columns:minmax(0,1fr) auto}.alias-row.inactive,.schedule-row.inactive{opacity:.56}@media (max-width:1100px){.class-layout,.management-layout,.student-admin-layout{grid-template-columns:1fr}.student-add-form{grid-template-columns:repeat(3,minmax(0,1fr))}.quiet-detail{position:static}}@media (max-width:760px){.alias-row,.schedule-row,.schedule-row.exception-row,.schedule-row.student-regular-row,.student-checkbox-grid,.student-editor-grid,.student-form,.student-overview-grid{grid-template-columns:1fr}.app-nav-inner{flex-wrap:wrap;min-height:56px;padding:0 16px}.app-nav-toggle{display:inline-flex}.app-nav-menu{display:none;width:100%;align-items:stretch;padding-bottom:12px}.app-nav-menu.open{display:grid;grid-template-columns:1fr}.app-nav-links,.app-nav-side{display:grid;align-items:stretch}.app-nav-side{gap:6px}.app-nav-link{padding:12px}.app-user-chip{justify-content:flex-start;border-radius:var(--radius-sm)}.organization-user-row,.organization-user-row.header,.teacher-invite-form{grid-template-columns:1fr}.organization-user-row.header{display:none}.page{padding:16px}.home-shell{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.home-hero{gap:9px;margin-bottom:10px}.home-brand-line{align-items:flex-start}.home-brand-line strong{font-size:17px}.home-greeting{border-radius:17px;padding:13px 15px}.home-greeting h1{margin-bottom:3px;font-size:25px;line-height:1.13}.home-greeting .subtle{font-size:12px;line-height:1.45}.home-dashboard-panel{gap:12px;margin-bottom:14px}.home-status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.home-status-card{min-height:72px;border-radius:14px;padding:9px}.home-status-card span{font-size:11px;white-space:nowrap}.home-status-card strong{font-size:23px}.home-today-section{border-radius:18px;padding:13px}.home-section-head{align-items:center;margin-bottom:10px}.home-section-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.home-section-actions .button{min-height:44px;justify-content:center}.lesson-modal-backdrop{align-items:end;padding:12px 12px calc(12px + env(safe-area-inset-bottom))}.lesson-modal{max-height:calc(100dvh - 24px - env(safe-area-inset-bottom));border-radius:18px 18px 12px 12px;padding:16px}.supplemental-form-row{grid-template-columns:1fr;gap:10px}.home-section-head .subtle{font-size:12px}.home-lesson-card{grid-template-columns:40px minmax(0,1fr);gap:10px;border-radius:14px;padding:10px}.home-lesson-avatar{width:40px;height:40px;border-radius:12px;font-size:16px}.home-lesson-title-row{display:flex;gap:7px}.home-lesson-title-row>div{min-width:0}.home-lesson-title-row h3{overflow-wrap:anywhere}.home-lesson-status{flex:0 0 auto;width:-moz-fit-content;width:fit-content;min-height:24px;padding:3px 7px;font-size:11px}.home-lesson-action{min-height:40px;padding:7px 10px}.home-lesson-progress{gap:3px 5px;font-size:11px}.home-lesson-progress span{gap:5px}.monthly-calendar-panel{margin-bottom:14px;padding:12px}.monthly-calendar-panel>.panel-head{display:grid;grid-gap:10px;gap:10px}.monthly-calendar-panel .calendar-controls{display:grid;grid-template-columns:auto minmax(0,1fr) auto;width:100%;justify-content:stretch;text-align:center}.monthly-calendar-panel .calendar-controls .button{min-height:40px;padding:6px 8px}.mobile-bottom-nav{position:fixed;right:10px;bottom:max(8px,env(safe-area-inset-bottom));left:10px;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:2px;gap:2px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.94);padding:5px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-bottom-nav a{display:flex;min-height:42px;align-items:center;justify-content:center;border-radius:13px;color:var(--muted);font-size:12px;font-weight:900}.mobile-bottom-nav a.active{background:var(--blue-soft);color:var(--blue)}.mobile-bottom-nav small{display:none}.topbar{display:block}.top-actions{justify-content:flex-start;margin-top:14px}.lesson-row{grid-template-columns:54px minmax(0,1fr)}.lesson-status{grid-column:2}.allowed-form,.analysis-choice-grid,.analysis-steps,.analysis-summary,.calendar-lesson-card,.focus-grid,.lesson-calendar-layout,.lesson-view-options,.my-notes-card,.pair-class-grid,.recording-detail,.recording-file-detail,.recording-source-options,.report-filters,.report-row,.settings-grid,.summary-strip,.teacher-report-focus,.teacher-report-grid,.today-lesson-row,.upload-recording-grid{grid-template-columns:1fr}.teacher-report-hero{display:grid}.lesson-calendar{grid-template-columns:repeat(7,minmax(38px,1fr));overflow-x:hidden}.calendar-day{min-height:58px;gap:3px;padding:5px}.calendar-date-number{display:inline-flex;min-width:0;align-items:center;white-space:nowrap}.calendar-day.today .calendar-date-number:after{margin-left:3px;font-size:8px;white-space:nowrap}.calendar-count-desktop,.calendar-mode-desktop,.calendar-status-desktop{display:none}.calendar-count-mobile,.calendar-mode-mobile,.calendar-status-mobile{display:inline}.calendar-mode-summary{max-width:100%;font-size:8px;white-space:nowrap}.calendar-cell-status{max-width:100%;overflow:hidden;border-radius:6px;padding:1px 3px;font-size:9px;text-overflow:ellipsis}.monitoring-detail-panel{margin-top:12px}.monitoring-detail-panel>summary{min-height:56px;padding:9px 12px}.monitoring-detail-panel>summary:after{white-space:nowrap}.calendar-popover{display:none}}@media (max-width:760px){.calendar-day:focus-visible .calendar-popover,.calendar-day:hover .calendar-popover{display:none}.upload-recording-file{grid-column:auto}.report-row-actions{justify-items:start}.daily-report-panel>.panel-head .button-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.daily-report-panel>.panel-head .button-row .button.primary{grid-column:1/-1;grid-row:2;min-height:44px}.daily-report-panel .section-title-row .button{min-height:38px;padding:6px 10px}.report-preview{-webkit-line-clamp:2}.today-lesson-row>div:nth-child(2){justify-content:flex-start}.recording-file-row,.recording-main,.recordings-toolbar{align-items:stretch;flex-direction:column}.single-student-focus h2{font-size:34px}.bottom-nav{width:calc(100% - 24px);overflow-x:auto;justify-content:flex-start}}.shell:not(.home-shell){max-width:1160px}.shell:not(.home-shell)>.calm-topbar{padding:4px 0 10px}.shell:not(.home-shell)>.calm-topbar h1{margin-bottom:6px}.analysis-detail-shell,.analysis-panel,.recording-card,.reports-panel,.settings-panel,.student-detail-editor,.student-management-row{box-shadow:none}.analysis-detail-shell,.analysis-panel,.reports-panel,.settings-panel,.student-detail-editor{border-radius:16px}.student-add-form{border:1px solid rgba(37,99,235,.16);border-radius:14px;background:var(--blue-soft);padding:12px}.student-management-list{max-height:calc(100vh - 170px);overflow:auto;padding:2px}.recording-main h2,.report-row h3,.student-management-row strong,.teacher-report-hero h2{overflow-wrap:anywhere}.student-management-row.selected{background:var(--blue-soft)}.student-detail-editor>.panel-head{padding-bottom:2px}.student-tabs{position:-webkit-sticky;position:sticky;top:76px;z-index:5;width:-moz-fit-content;width:fit-content;max-width:100%}.lesson-detail-tabs .button,.student-tabs .soft-badge{min-height:36px}.student-overview-grid>div{min-height:88px;align-content:space-between}.analysis-result-list li,.report-preview,.report-topic,.student-overview-grid strong,.teacher-report-section,.transcript-text{overflow-wrap:anywhere}.report-row{border-radius:14px;background:#fff}.report-row-head .subtle{flex:0 0 auto;font-size:12px;font-weight:750}.report-filters{border-radius:12px;background:var(--panel-soft);padding:10px}.class-analysis-panel,.daily-report-panel,.teacher-report-panel,.transcript-panel{max-width:980px;margin-inline:auto}.daily-report-grid>section,.teacher-report-section{border-radius:12px}.lesson-detail-tabs{position:-webkit-sticky;position:sticky;top:66px;z-index:8;display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;border-bottom:1px solid var(--line);background:rgba(248,250,252,.96);padding:9px 0;scrollbar-width:none}.lesson-detail-tabs::-webkit-scrollbar{display:none}.lesson-detail-tabs button{flex:0 0 auto;white-space:nowrap}.transcript-text{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);padding:16px;font-size:14px;line-height:1.75}.recording-card{border-radius:16px;background:#fff}.analysis-actions,.recording-actions,.recording-source-badges{flex-wrap:wrap}.analysis-panel>.panel-head,.reports-panel>.panel-head,.settings-panel>.panel-head{align-items:center}.organization-user-row:not(.header){border-radius:12px}.notice{box-shadow:none}@media (max-width:760px){.shell{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.compact-window .shell,.login-page .shell{padding-bottom:0}.calm-topbar{margin-bottom:14px;padding:0}.calm-topbar h1{font-size:26px}.calm-topbar .subtle{font-size:13px}.calm-topbar .eyebrow{margin-bottom:5px}.top-actions{width:100%;margin-top:10px}.top-actions .button{min-height:42px}.student-add-form{grid-template-columns:1fr;padding:10px}.student-management-list{display:grid;max-height:none;overflow:visible;padding:2px}.student-management-row{width:100%}.student-detail-editor{gap:13px;padding:13px}.student-detail-editor>.panel-head{display:grid;grid-gap:9px;gap:9px}.student-detail-editor>.panel-head .button-row{width:100%}.student-tabs{top:56px;flex-wrap:nowrap;width:100%;overflow-x:auto}.student-tabs .soft-badge,.student-tabs button{flex:0 0 auto;min-height:38px}.student-editor-section{gap:10px;padding-top:13px}.student-overview-grid>div{min-height:0;padding:11px 12px}.student-progress-current,.student-progress-row{align-items:stretch;flex-direction:column}.student-progress-fact-grid{grid-template-columns:1fr}.student-progress-fact-grid>div:first-child{grid-column:auto}.student-progress-row .button{width:100%}.analysis-detail-shell,.analysis-panel,.reports-panel,.settings-panel{padding:13px}.analysis-panel>.panel-head,.daily-report-panel>.panel-head,.recording-match-preview-header,.reports-panel>.panel-head,.settings-panel>.panel-head,.teacher-report-hero{display:grid;grid-gap:10px;gap:10px}.report-filters{padding:8px}.report-row{gap:12px;padding:13px}.report-row h3{font-size:18px}.report-row-head{display:grid;grid-gap:3px;gap:3px}.report-row-actions{display:flex;align-items:center;justify-content:space-between}.lesson-detail-tabs{top:56px;margin-inline:-13px;padding-inline:13px}.class-analysis-panel,.daily-report-panel,.teacher-report-panel,.transcript-panel{min-width:0}.daily-report-grid>section,.teacher-report-section{padding:12px}.transcript-text{max-height:420px;padding:12px;font-size:13px}.recording-card{padding:13px}.analysis-actions .button,.recording-actions .button{min-height:42px}.organization-user-row:not(.header){gap:5px;padding:12px}.organization-user-row:not(.header)>span:nth-child(2){overflow-wrap:anywhere;color:var(--muted);font-size:13px}}@media (max-width:430px){.page{padding:13px}.button{min-height:42px}.input{min-height:44px}.app-nav-inner{padding-inline:13px}.mobile-bottom-nav{right:8px;left:8px}.student-management-row{flex-basis:84vw}.panel-head h2,.teacher-report-hero h2{font-size:19px}.soft-badge{white-space:normal}}