:root{
 --ui-bg:#f3f5f8;--ui-surface:#ffffff;--ui-raised:#edf2f8;--ui-input:#ffffff;
 --ui-text:#202630;--ui-muted:#596777;--ui-soft:#5f6e82;--ui-line:#d6dde7;--ui-grid:#e0e6ed;
 --ui-accent:#315f9f;--ui-active:#e6eefb;--ui-peer:#b7c4d5;--ui-average:#748296;
 --ui-action:#315f9f;--ui-action-text:#ffffff;--ui-hover:#dce6f4;--ui-disabled:#e9edf2;
 color-scheme:light;
 --ink:var(--ui-text);--paper:var(--ui-bg);--muted:var(--ui-muted);--line:var(--ui-line);--accent:var(--ui-accent);
}
body{background:var(--ui-bg);color:var(--ui-text)}
.parent-home,.workspace{background:var(--ui-bg);color:var(--ui-text)}
.parent-header,.topbar{background:var(--ui-surface);color:var(--ui-text);border-bottom:1px solid var(--ui-line)}
.parent-header{height:auto;min-height:80px;gap:18px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px}
.parent-header>button:first-child{font-family:'Noto Sans KR',Arial,sans-serif;font-weight:500;font-style:normal}
.parent-header span,.crumb{color:var(--ui-muted)}
.parent-header .parent-back{margin-left:auto;color:var(--ui-muted);font-size:11px;white-space:nowrap}
.parent-main{padding-top:34px}
:is(.parent-home,.workspace,.parent-main,dialog) :is(h1,h2,h3,h4){color:var(--ui-text)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(p,small,label,.parent-kicker,.parent-demo,.parent-period,.calendar-student,.cloud-status,.teacher-day-number,.teacher-filter>span,.help,.common-scope,.teacher-status,.test-score-help,.unset-topic,.management-note,.account-description,.management-tag,.parent-state,.question-kind,.parent-footnote,.score-diff){color:var(--ui-muted)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.parent-title h1,.heading h1){font-weight:500;letter-spacing:-.05em}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.calendar-panel,.report-panel,.test-score-panel,.management-card,.panel,.account-student-options,.topbar){background:var(--ui-surface);border-color:var(--ui-line);color:var(--ui-text)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.child-profile,.attendance-record,.lesson-common,.test-extra,.sms-connection,.sms-preview,.reply,.notice,.parent-state.pending,.bubble){background:var(--ui-raised);border-color:var(--ui-line);color:var(--ui-text)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.calendar-role,.parent-summary,.parent-summary article,.report-table td,.lesson-detail,.lesson-date-heading,.test-students,.test-students>button,.teacher-settings,.teacher-save,.test-student-heading,.management-nav,.management-tag,.profile-list article,.registration-parent,.sms-select-actions,.sms-recipient-list label,.sms-review-list p,.auth-note,.parent-section-title,.parent-class,.parent-notice,.child-classes span,.question-kind,.parent-state,.account-student-options,.stat,.stats,.block-title,.course,.lesson,.note,.question,.tabs){border-color:var(--ui-line)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.parent-summary strong,.child-profile h2,.child-profile h2 span,.test-student-heading strong,.test-students strong,.profile-list strong){color:var(--ui-text)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.parent-summary small,.child-profile p,.child-classes span,.test-students span,.test-students small,.profile-list span,.management-main td small,.management-card h2 small,.sms-recipient-list small,.sms-recipient-list em,.sms-caption,.auth-signout){color:var(--ui-muted)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(input,select,textarea,.field){background:var(--ui-input);color:var(--ui-text);border-color:var(--ui-line);accent-color:var(--ui-accent)}
:is(.parent-home,.workspace,.parent-main,dialog) input::placeholder,:is(.parent-home,.workspace,.parent-main,dialog) textarea::placeholder{color:var(--ui-soft);opacity:1}
:is(.parent-home,.workspace,.parent-main,dialog) :is(input,select,textarea):focus{outline:2px solid var(--ui-accent);outline-offset:2px}
:is(.parent-home,.workspace,.parent-main,dialog) :is(input,select,textarea):disabled{background:var(--ui-disabled);color:var(--ui-soft);border-color:var(--ui-line);opacity:1}
:is(.parent-home,.workspace,.parent-main,dialog) :is(button,a):focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.solid,.login-submit){background:var(--ui-action);color:var(--ui-action-text);border-color:var(--ui-action);font-weight:500}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.subtle-btn,.outline,.teacher-filter button,.management-tabs button,.calendar-role button){background:transparent;color:var(--ui-text);border-color:var(--ui-line)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.teacher-filter button.active,.management-tabs button.active,.calendar-role button.active,.test-students>button.active){background:var(--ui-active);color:var(--ui-accent);border-color:var(--ui-accent)}
:is(.parent-home,.workspace,.parent-main,dialog) .test-students>button.active :is(strong,span,small){color:var(--ui-accent);opacity:1}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.management-nav button,.management-tabs button,.cloud-status button,.report-switch){color:var(--ui-muted);border-color:var(--ui-line)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.management-nav button.active,.tabs button.active){color:var(--ui-accent);border-color:var(--ui-accent)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.subtle-btn,.outline,.teacher-filter button,.calendar-top button):hover{background:var(--ui-hover)}
:is(.parent-home,.workspace,.parent-main,dialog) th{background:var(--ui-raised);color:var(--ui-muted);border-color:var(--ui-line)}
:is(.parent-home,.workspace,.parent-main,dialog) td{color:var(--ui-text);border-color:var(--ui-line)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.teacher-cell,.calendar-day,.calendar-empty){border-color:var(--ui-grid)}
:is(.parent-home,.workspace,.parent-main,dialog) .teacher-cell.empty{background:var(--ui-bg)}
:is(.parent-home,.workspace,.parent-main,dialog) .calendar-week span{color:var(--ui-muted);border-color:var(--ui-line)}
:is(.parent-home,.workspace,.parent-main,dialog) .calendar-top h2{color:var(--ui-text);font-variant-numeric:tabular-nums}
:is(.parent-home,.workspace,.parent-main,dialog) .calendar-top h2 span{color:var(--ui-soft)}
:is(.parent-home,.workspace,.parent-main,dialog) .teacher-event{background:var(--ui-raised);border-left-color:var(--ui-accent);color:var(--ui-text)}
:is(.parent-home,.workspace,.parent-main,dialog) .teacher-event :is(small,span){color:var(--ui-muted)}
:is(.parent-home,.workspace,.parent-main,dialog) .teacher-event strong{color:var(--ui-text)}
:is(.parent-home,.workspace,.parent-main,dialog) .teacher-event.selected{background:var(--ui-active);outline-color:var(--ui-accent)}
:is(.parent-home,.workspace,.parent-main,dialog) .calendar-day.has-lesson{background:var(--ui-raised)}
:is(.parent-home,.workspace,.parent-main,dialog) .calendar-day.chosen{background:var(--ui-active)}
:is(.parent-home,.workspace,.parent-main,dialog) .calendar-day :is(span,small,i){color:var(--ui-muted)}
:is(.parent-home,.workspace,.parent-main,dialog) .calendar-day.chosen :is(span,small,i){color:var(--ui-accent)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.lesson-resources>a,.lesson-resources>div,.lesson-resources>button){background:var(--ui-surface);border-color:var(--ui-line);color:var(--ui-text)}
:is(.parent-home,.workspace,.parent-main,dialog) .lesson-resources :is(small,span){color:var(--ui-muted)}
:is(.parent-home,.workspace,.parent-main,dialog) .report-clinic{background:var(--ui-raised);border-color:var(--ui-accent)}
:is(.parent-home,.workspace,.parent-main,dialog) :is(.report-empty,.calendar-prompt,.management-empty,.empty){color:var(--ui-muted);border-color:var(--ui-line)}
:is(.parent-home,.workspace,.parent-main,dialog) .chart-legend{color:var(--ui-accent)}
:is(.parent-home,.workspace,.parent-main,dialog) .chart-legend .average{color:var(--ui-average)}
:is(.parent-home,.workspace,.parent-main,dialog) .report-svg text{fill:var(--ui-muted)}
:is(.parent-home,.workspace,.parent-main,dialog) .report-svg .chart-value{fill:var(--ui-text)}
.report-svg .chart-guide{stroke:var(--ui-grid)}
.report-svg .chart-line-own{stroke:var(--ui-accent)}
.report-svg .chart-line-average{stroke:var(--ui-average)}
.report-svg :is(.chart-dot-own,.chart-bar-own){fill:var(--ui-accent)}
.report-svg .chart-dot-average{fill:var(--ui-average)}
.report-svg .chart-bar-peer{fill:var(--ui-peer)}
.parent-home>footer{background:var(--ui-bg);color:var(--ui-soft);border-color:var(--ui-line)}
.workspace .sidebar{background:var(--ui-surface);color:var(--ui-muted);border-right:1px solid var(--ui-line)}
.workspace .sidebar nav button.active{background:var(--ui-active);color:var(--ui-accent)}
.workspace :is(.side-brand,.side-foot strong){color:var(--ui-text)}
.workspace :is(.side-sub,.sidebar .nav-caption,.side-foot){color:var(--ui-muted);border-color:var(--ui-line)}
.workspace .topbar{gap:18px}
.workspace :is(.study-banner,.cover,.phone,.video-empty){background:var(--ui-raised);border-color:var(--ui-line);color:var(--ui-text)}
.workspace :is(.study-banner p,.study-banner .eyebrow,.progress-mark small){color:var(--ui-muted)}
.workspace .avatar{background:var(--ui-raised);border-color:var(--ui-line)}
.workspace :is(.tag,.cover.pale){background:var(--ui-active);color:var(--ui-accent);border-color:var(--ui-line)}
.workspace .bar{background:var(--ui-grid)}
.workspace .bar span{background:var(--ui-accent)}
:root dialog{background:var(--ui-surface);color:var(--ui-text);border-color:var(--ui-line)}
:root dialog::backdrop{background:#080d16c4}
:root dialog h2{font-family:'Noto Sans KR',Arial,sans-serif;font-weight:500}
:root dialog .close{color:var(--ui-muted)}
:root #toast{background:var(--ui-text);color:var(--ui-bg);border:1px solid var(--ui-line)}

/* The actual student/parent report shares the public sample's sheet, type and chart hierarchy. */
.portal-lesson{padding-top:34px;scroll-margin-top:22px}
.portal-report-sheet{background:var(--ui-surface);border:1px solid var(--ui-line);padding:30px 32px 26px}
.portal-report-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:22px}
.portal-report-brand{font-size:10px;font-weight:500;letter-spacing:.15em;color:var(--ui-muted)}
.portal-report-brand>span{font-size:9px;font-weight:400;letter-spacing:-.02em;margin-left:10px}
.portal-report-heading h2{font-size:27px;font-weight:500;line-height:1.3;letter-spacing:-.045em;margin:12px 0 0}
.portal-report-kind{font-size:10px;white-space:nowrap;border:1px solid var(--ui-line);padding:7px 10px;color:var(--ui-muted)}
.portal-report-profile{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-top:1px solid var(--ui-line);padding:20px 0 16px}
.portal-report-profile>div{display:flex;flex-direction:column;gap:7px}
.portal-report-profile strong{font-size:18px;font-weight:500;color:var(--ui-text)}
.portal-report-profile>div>span{font-size:11px;color:var(--ui-muted)}
.portal-report-profile>p{display:flex;flex-direction:column;gap:7px;margin:0;text-align:right;font-size:11px;line-height:1.6;max-width:60%;overflow-wrap:anywhere}
.portal-report-profile time{font-variant-numeric:tabular-nums;color:var(--ui-text)}
.parent-home .portal-report-summary{grid-template-columns:1.1fr 1.2fr .8fr;margin:0;padding:22px 0 24px;border-top:1px solid var(--ui-line);border-bottom:1px solid var(--ui-line)}
.portal-report-summary article{min-width:0;padding:0 20px}
.portal-report-summary article:first-child{padding-left:0}
.portal-report-summary article:last-child{padding-right:0}
.portal-report-summary article>span{font-size:11px}
.portal-report-summary strong{font-size:40px;font-weight:500;line-height:1.2;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.portal-report-summary strong>small{font-size:12px;letter-spacing:-.02em;font-weight:400;margin-left:8px}
.portal-report-summary .portal-attendance-stat strong{font-size:28px;line-height:1.7;font-weight:400;letter-spacing:-.04em;overflow-wrap:anywhere}
.portal-report-summary .portal-attendance-stat p{margin-top:8px}
.portal-report-summary p{font-size:10px;line-height:1.8;margin:9px 0 0}
.portal-report-summary p>b{font-size:10px;font-weight:500;color:var(--ui-accent);margin-left:5px}
.portal-report-summary .portal-stat-note{font-size:9px;margin-top:4px;color:var(--ui-soft)}
.portal-report-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;padding:28px 0}
.portal-report-columns>div,.portal-report-columns>section{min-width:0}
.parent-home .portal-report-sheet .report-panel{padding:0;border:0;background:transparent;margin:0}
.portal-report-sheet .report-panel-head{margin-bottom:18px;align-items:center}
.portal-report-sheet h3{font-size:14px;font-weight:500;line-height:1.5;margin:0}
.portal-report-sheet .report-panel-head>span{font-size:10px}
.portal-report-sheet .report-svg{max-height:none}
.portal-report-sheet .chart-legend{font-size:10px;gap:15px}
.portal-report-sheet .chart-legend>span{display:inline-flex;align-items:center;gap:5px}
.portal-report-sheet .chart-legend>span::before{content:"";width:12px;height:0;border-top:2px solid var(--ui-accent)}
.portal-report-sheet .chart-legend>.average::before{border-top:2px dashed var(--ui-average)}
.portal-report-sheet .chart-caption{font-size:10px;line-height:1.8;margin-top:12px}
.parent-home .portal-clinic{display:block;background:transparent;padding:20px 0 0;margin:0;border:0;border-top:1px solid var(--ui-line)}
.portal-clinic .parent-kicker{font-size:9px;letter-spacing:.03em}
.portal-clinic h3{font-size:13px;margin:8px 0}
.portal-clinic p{font-size:10px;line-height:1.9;margin:7px 0 0}
.portal-clinic .portal-clinic-note{font-size:10px;color:var(--ui-muted);border-left:2px solid var(--ui-accent);padding-left:13px;margin-top:16px}
.portal-question-table{min-width:360px;table-layout:auto;font-size:11px}
.parent-home .portal-question-table :is(th,td){padding:10px 5px;border-bottom:1px solid var(--ui-grid);background:transparent;line-height:1.6}
.parent-home .portal-question-table th{font-size:10px;font-weight:400;color:var(--ui-muted)}
.portal-question-table th:first-child,.portal-question-table td:first-child{width:36px}
.portal-question-table td:nth-child(2){width:auto;min-width:100px;word-break:keep-all}
.portal-question-table td:nth-child(3){white-space:nowrap}
.portal-question-table :is(td,th):nth-child(n+4){text-align:right;white-space:nowrap}
.portal-question-table td>strong{font-size:12px;font-weight:500;color:var(--ui-text)}
.portal-question-table td>small{font-size:9px}
.parent-home .portal-question-table tfoot :is(th,td){border-bottom:0;color:var(--ui-accent);font-weight:500;padding-top:13px}
.portal-distributions{display:grid;grid-template-columns:1fr;padding:0;margin:0;gap:25px}
.parent-home .portal-report-sheet .portal-distributions .report-panel+.report-panel{padding-top:23px;border-top:1px solid var(--ui-line)}
.portal-lesson-note{padding-top:22px;margin-top:24px;border-top:1px solid var(--ui-line)}
.portal-lesson-note h3{font-size:13px}
.portal-lesson-note p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.95;margin:11px 0 0}
.portal-resource-section{margin-top:32px}
.portal-resource-section>h2{font-size:18px;font-weight:500;letter-spacing:-.04em;margin:0 0 17px}
.portal-resource-section .lesson-resources{margin-bottom:0}
@media(max-width:900px){.portal-report-columns{grid-template-columns:1fr;gap:26px}.parent-home .portal-questions{border-top:1px solid var(--ui-line)!important;padding-top:24px!important}.portal-question-table{min-width:420px}.portal-report-sheet{padding:26px}.portal-clinic{margin-top:20px}}
@media(max-width:720px){.parent-header{padding:13px 6%;gap:10px;min-height:72px}.parent-header>button:first-child{font-size:13px;letter-spacing:.08em}.parent-header .parent-back{font-size:10px}.parent-main{padding-top:25px}.parent-title h1{font-size:27px}.linked-selectors{gap:14px}.calendar-panel{padding:20px 15px}.portal-lesson{padding-top:27px}.portal-report-sheet{padding:23px 18px}.portal-report-heading{gap:12px;padding-bottom:18px}.portal-report-heading h2{font-size:24px}.portal-report-brand{font-size:9px}.portal-report-brand>span{font-size:8px;margin-left:6px}.portal-report-kind{font-size:9px;padding:6px 7px}.portal-report-profile{gap:16px;padding-top:17px}.portal-report-profile strong{font-size:16px}.portal-report-profile>div>span,.portal-report-profile>p{font-size:10px}.parent-home .portal-report-summary{padding:19px 0}.portal-report-summary article{padding:0 10px}.portal-report-summary article>span{font-size:10px}.portal-report-summary strong{font-size:31px}.portal-report-summary strong>small{display:block;font-size:10px;margin:7px 0 0}.portal-report-summary p{font-size:9px}.portal-report-summary p>b{display:block;margin-left:0}.portal-report-summary .portal-stat-note{font-size:8px}.portal-report-columns{padding-top:24px}.portal-report-sheet h3{font-size:13px}.portal-report-sheet .chart-legend{font-size:9px;gap:10px}.portal-report-sheet .chart-caption{font-size:9px}.portal-distributions{grid-template-columns:1fr;gap:25px}.portal-distributions .report-panel+.report-panel{padding-top:23px;border-top:1px solid var(--ui-line)}.portal-report-sheet .report-panel-head{margin-bottom:15px}.portal-lesson-note p{font-size:11px}.portal-resource-section>h2{font-size:17px}}
@media(max-width:380px){.parent-header{column-gap:8px}.parent-header>button:first-child{font-size:12px}.parent-header .parent-back{font-size:9px}.portal-report-sheet{padding:20px 13px}.portal-report-kind{font-size:8px}.portal-report-summary article{padding:0 8px}.portal-report-summary strong{font-size:28px}.portal-report-brand>span{display:block;margin:5px 0 0}}

@media(max-width:720px){.portal-report-summary .portal-attendance-stat strong{font-size:22px;line-height:1.5}.portal-report-summary .portal-attendance-stat p{margin-top:20px}}

/* A single light palette across the public homepage and learning portal. */
:root .home{
 --home-bg:var(--ui-bg);--home-fg:var(--ui-text);--home-muted:var(--ui-muted);--home-line:var(--ui-line);
 color-scheme:light;
}
:root .home :is(.home-header,.simple-teacher,footer){border-color:var(--ui-line)}
:root .home :is(.home-header>.brand-name>span,.entry-caption,.attitude-entry-label,.attitude-entry-note,.attitude-login-link>span,footer){color:var(--ui-muted)}
:root .home :is(.outline,.attitude-hero h1,.attitude-login-link){color:var(--ui-text)}
:root .home .outline{border-color:var(--ui-soft)}
:root .home :is(button,a):focus-visible{outline-color:var(--ui-accent)}
:root .home .attitude-signature img{filter:none;mix-blend-mode:multiply}
:root .home .attitude-schedule-link{background:#202630;color:#f3f5f8}
:root .home .attitude-schedule-link:hover{background:#374a64}
:root .home .attitude-login-link:hover{color:var(--ui-accent)}
:root .home :is(.weekly-kicker,.weekly-range,.weekly-scroll-hint,.weekly-day h3>span,.weekly-grade,.weekly-time,.weekly-time>span,.weekly-clinic strong,.weekly-clinic .weekly-time,.weekly-empty,.weekly-scale-label,.weekly-scale-track>span,.weekly-bottom p){color:var(--ui-muted)}
:root .home :is(.weekly-session strong,.weekly-bottom button){color:var(--ui-text)}
:root .home .weekly-scroll{scrollbar-color:#a9b6c7 transparent}
:root .home .weekly-scroll:focus-visible{outline-color:var(--ui-accent)}
:root .home .weekly-calendar{border-color:#a9b6c7}
:root .home :is(.weekly-day,.weekly-bottom){border-color:var(--ui-line)}
:root .home .weekly-session{border-left-color:#a9b6c7}
:root .home .weekly-session::before,:root .home .weekly-session::after{background:#a9b6c7}
:root .home .weekly-session[data-course="regular-m"] strong{color:#315f9f}
:root .home .weekly-session[data-course="school-b"] strong{color:#974665}
:root .home .weekly-session[data-course="geometry-m"] strong{color:#246c70}
:root .home .weekly-session[data-course="geometry-s"] strong{color:#6650a3}
:root .home .weekly-session[data-course="prep-s1"] strong{color:#815d32}
:root .home .weekly-clinic strong{color:var(--ui-muted)}
:root .home .sample-report-section{background:var(--ui-bg);color:var(--ui-text);border-color:var(--ui-line)}
:root :is(.home,.parent-home) .sample-report-sheet{background:var(--ui-surface);border-color:var(--ui-line)}
:root :is(.home,.parent-home) :is(.sample-report-kicker,.sample-report-intro>p,.sample-report-explainer li>span,.sample-report-explainer p,.sample-report-intro>.sample-report-intro-note,.sample-sheet-brand,.sample-sheet-brand>span,.sample-sheet-profile>div>span,.sample-sheet-profile>p,.sample-sheet-stats dt,.sample-sheet-stats dd>small,.sample-sheet-stats p,.sample-panel-heading>span,.sample-chart-legend,.sample-chart-caption,.sample-report-table thead th,.sample-report-table tbody th,.sample-report-table td>span,.sample-clinic-note>p,.sample-sheet-footer){color:var(--ui-muted)}
:root :is(.home,.parent-home) :is(.sample-report-explainer strong,.sample-sheet-header h3,.sample-sheet-profile strong,.sample-sheet-profile time,.sample-sheet-stats dd,.sample-panel-heading h4,.sample-report-table,.sample-report-table td>strong,.sample-clinic-note h4,.sample-clinic-note strong,.sample-next-step p){color:var(--ui-text)}
:root :is(.home,.parent-home) :is(.sample-sheet-profile,.sample-sheet-stats,.sample-sheet-stats>div,.sample-distribution-panel,.sample-report-table th,.sample-report-table td,.sample-clinic-note,.sample-question-panel){border-color:var(--ui-line)}
:root :is(.home,.parent-home) .sample-sheet-badge{border-color:var(--ui-line);color:var(--ui-accent)}
:root :is(.home,.parent-home) :is(.sample-sheet-stats p>b,.sample-panel-heading .sample-position,.sample-report-table .sample-question-focus td,.sample-report-table .sample-question-focus td>strong,.sample-report-table tfoot th,.sample-report-table tfoot td,.sample-next-step>span){color:var(--ui-accent)}
:root :is(.home,.parent-home) .sample-chart-legend>span::before{border-color:var(--ui-accent)}
:root :is(.home,.parent-home) .sample-chart-legend>span:last-child::before{border-color:var(--ui-average)}
:root :is(.home,.parent-home) .sample-report-chart text{fill:var(--ui-muted)}
:root :is(.home,.parent-home) .sample-report-chart .sample-chart-value{fill:var(--ui-accent)}
:root :is(.home,.parent-home) .sample-chart-guide{stroke:var(--ui-grid)}
:root :is(.home,.parent-home) .sample-chart-average{stroke:var(--ui-average)}
:root :is(.home,.parent-home) .sample-chart-own{stroke:var(--ui-accent)}
:root :is(.home,.parent-home) .sample-chart-average-dot{fill:var(--ui-average)}
:root :is(.home,.parent-home) :is(.sample-chart-own-dot,.sample-distribution-own){fill:var(--ui-accent)}
:root :is(.home,.parent-home) .sample-distribution-other{fill:var(--ui-peer)}
:root :is(.home,.parent-home) .sample-next-step{border-color:var(--ui-accent)}



/* Recording workflow: explicit no-test days and actionable missing fields. */
.lesson-test-mode{display:flex;align-items:center;gap:24px;background:var(--ui-raised);border:1px solid var(--ui-line);padding:18px 22px;margin:20px 0}
.lesson-test-mode label{margin:0;min-width:180px}
.lesson-test-mode p{font-size:11px;line-height:1.9;margin:0}
.record-review{border:1px solid #b9c9dd;background:var(--ui-surface);padding:18px 22px;margin:18px 0}
.record-review h3{margin:0;font-size:13px}
.record-review>p{font-size:11px;line-height:1.8;margin:9px 0 14px}
.record-review>div{display:grid;gap:6px}
.record-review button{display:flex;align-items:baseline;text-align:left;gap:16px;padding:10px 0;border-top:1px solid var(--ui-line)}
.record-review button strong{min-width:60px;font-size:12px;font-weight:500}
.record-review button span{font-size:11px;color:var(--ui-accent);line-height:1.8;overflow-wrap:anywhere}
.test-grade-fields{border:0;padding:0;margin:22px 0 0;min-width:0}
.test-grade-fields legend{font-size:12px;font-weight:500;margin-bottom:12px;padding:0}
.test-grade-fields:disabled{opacity:.45}
.parent-home button:disabled{cursor:not-allowed;background:var(--ui-disabled);color:var(--ui-soft);border-color:var(--ui-line)}
.parent-home #item-score-form input[aria-invalid="true"],.parent-home .item-score-table input:enabled:invalid{border-color:#ac5262;background:#fff7f8}
.parent-home .portal-basic-summary{grid-template-columns:1fr 1.2fr}
.lesson-test-notice{margin:0;padding:22px 0 0;font-size:12px;line-height:1.9;color:var(--ui-muted)}
dialog .account-display-name{font-size:16px;font-weight:500;color:var(--ui-text);margin:26px 0 20px}
.portal-entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.portal-entry-actions>button{display:flex;align-items:center;justify-content:center;min-height:48px;padding:12px 16px;font-size:12px;margin:0}
@media(max-width:680px){.lesson-test-mode{align-items:stretch;flex-direction:column;gap:12px;padding:16px}.lesson-test-mode label{min-width:0}.record-review{padding:16px}.record-review button{gap:10px}.portal-entry-actions{gap:10px}.portal-entry-actions>button{min-height:46px}}


/* Actual reports: distributions beside questions; full-width history below. */
.parent-home .portal-report-sheet>.portal-trend{padding:26px 0;border-top:1px solid var(--ui-line);margin:0}
.portal-report-sheet>.portal-trend .trend-scroll{padding-bottom:8px}
.portal-report-sheet>.portal-trend .chart-caption{margin-bottom:0}
.parent-home .portal-report-sheet>.portal-report-columns~.portal-lesson-note{padding:0 0 24px;margin:0;border:0}
.parent-home .portal-report-summary .portal-homework-unsubmitted{font-size:28px;font-weight:400;line-height:1.7;letter-spacing:-.04em}
#item-score-form .test-attendance{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}
#homework-input-help{margin:0 0 22px}
@media(max-width:720px){.parent-home .portal-report-summary .portal-homework-unsubmitted{font-size:22px;line-height:1.5}.parent-home .portal-report-sheet>.portal-trend{padding:23px 0}}


/* Edit shared question topics directly beside each student's scores. */
.parent-home .item-score-table .test-topic-input{display:block;width:100%;min-width:150px;text-align:left;font-size:12px;line-height:1.5;padding:10px 12px}
.test-topic-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.test-topic-actions p{font-size:10px;line-height:1.8;margin:0}
.test-topic-actions button{flex-shrink:0;min-height:36px}
@media(max-width:720px){.test-topic-actions{align-items:flex-start;flex-direction:column;gap:10px}.parent-home .item-score-table .test-topic-input{font-size:11px;padding:10px}}

/* Minimal landing introduction: signature, portrait and credentials. */
.home .attitude-intro{min-height:0;padding:34px 7% 48px}
.attitude-intro .attitude-hero-inner{max-width:1120px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-areas:"brand profile" "entry entry";align-items:center;gap:30px clamp(24px,3.4vw,48px)}
.attitude-brand-lockup{grid-area:brand;align-self:center;justify-self:start;width:100%;max-width:430px;min-width:0;padding:24px 0}
:root .home .attitude-intro h1{font-family:'Noto Sans KR',Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.6;letter-spacing:.015em;text-align:center;margin:0 0 12px;color:var(--ui-muted)}
.attitude-intro .attitude-signature{width:100%;margin:0;aspect-ratio:3.2}
.attitude-instructor-group{grid-area:profile;justify-self:end;display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);grid-template-areas:"portrait teacher";align-items:center;gap:24px;width:100%;max-width:480px;min-width:0}
.attitude-instructor{grid-area:teacher;align-self:center;min-width:0;scroll-margin-top:28px;padding:0;margin:0}
.attitude-instructor h2{font-family:'Noto Sans KR',Arial,sans-serif;font-size:28px;font-weight:500;line-height:1.35;letter-spacing:-.045em;margin:0 0 14px;white-space:nowrap}
.attitude-instructor h2 small{font-size:12px;font-weight:400;letter-spacing:0;margin-left:7px;color:var(--ui-muted)}
.attitude-credentials{list-style:none;padding:0;margin:0;color:var(--ui-muted);font-size:12px;line-height:2.1;letter-spacing:-.015em;word-break:keep-all;overflow-wrap:anywhere}
.attitude-credentials li:last-child{color:var(--ui-text)}
.attitude-portrait{grid-area:portrait;align-self:center;justify-self:end;width:100%;max-width:220px;margin:0}
.attitude-portrait img{display:block;width:100%;height:auto;aspect-ratio:1086/1448}
.attitude-intro .attitude-entry{grid-area:entry;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 24px;padding:26px 0 0;border-top:1px solid var(--ui-line);width:100%;max-width:none}
.attitude-intro :is(.attitude-schedule-link,.attitude-report-link,.attitude-login-link){display:flex;align-items:center;justify-content:space-between;min-height:50px;gap:12px;padding:13px 18px;margin:0;font-size:13px;font-weight:500;line-height:1.5;letter-spacing:-.03em;text-align:left}
.attitude-intro :is(.attitude-schedule-link,.attitude-report-link,.attitude-login-link)>span{font-size:20px;line-height:1}
:root .home .attitude-intro :is(.attitude-schedule-link,.attitude-report-link){color:var(--ui-text);border:1px solid var(--ui-line);background:var(--ui-surface)}
:root .home .attitude-intro :is(.attitude-schedule-link,.attitude-report-link):hover{background:var(--ui-raised);border-color:var(--ui-soft)}
:root .home .attitude-intro .attitude-login-link{background:#202630;border:1px solid #202630;color:#fff}
:root .home .attitude-intro .attitude-login-link>span{color:inherit}
:root .home .attitude-intro .attitude-login-link:hover{background:#343b46;border-color:#343b46;color:#fff}
.home .attitude-intro .attitude-entry-note{grid-column:3;margin:0;padding:0 18px;font-size:10px;line-height:1.6}
@media(max-width:1000px){
 .attitude-intro .attitude-hero-inner{column-gap:24px}
 :root .home .attitude-intro h1{font-size:15px}
 .attitude-instructor-group{grid-template-columns:minmax(0,.95fr) minmax(0,1fr);gap:20px}
 .attitude-instructor h2{font-size:26px}
 .attitude-instructor h2 small{font-size:11px;margin-left:6px}
 .attitude-credentials{font-size:11px;line-height:2.1}
}
@media(max-width:760px){
 .home .attitude-intro{min-height:0;padding:32px 7% 42px}
 .attitude-intro .attitude-hero-inner{max-width:560px;grid-template-columns:minmax(0,1fr);grid-template-areas:"brand" "profile" "entry";gap:28px 0}
 .attitude-brand-lockup{max-width:340px;justify-self:center;padding:8px 0 0}
 :root .home .attitude-intro h1{font-size:14px;margin-bottom:9px}
 .attitude-intro .attitude-signature{max-width:320px;margin:0 auto}
 .attitude-instructor-group{max-width:440px;justify-self:center;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px}
 .attitude-portrait{max-width:180px}
 .attitude-instructor h2{font-size:26px;margin-bottom:12px}
 .attitude-instructor h2 small{font-size:11px;margin-left:6px}
 .attitude-credentials{font-size:12px;line-height:2}
 .attitude-intro .attitude-entry{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;padding-top:22px}
 .attitude-intro :is(.attitude-schedule-link,.attitude-report-link,.attitude-login-link){min-height:48px;font-size:12px;padding:12px 14px;gap:8px}
 .attitude-intro .attitude-login-link{grid-column:1/-1}
 .home .attitude-intro .attitude-entry-note{grid-column:1/-1;font-size:10px;padding:0 14px}
}
@media(max-width:380px){
 .attitude-instructor-group{gap:14px}
 .attitude-instructor h2{font-size:24px}
 .attitude-instructor h2 small{font-size:11px;margin-left:4px}
 .attitude-credentials{font-size:11px}
}

/* One sheet design, shared with the public example. History is a separate card. */
.portal-lesson>.sample-report-sheet{width:100%;max-width:none;margin:0}
.sample-sheet-stats.sample-basic-stats{grid-template-columns:1fr 1fr}
.sample-sheet-stats dd.sample-stat-label{font-size:25px;line-height:1.7;font-weight:400}
.parent-home .standalone-trend{margin:28px 0 0;padding:28px;border:1px solid var(--ui-line);background:var(--ui-surface);min-width:0}
.standalone-trend .trend-scroll{overflow-x:auto;padding-bottom:8px}
@media(max-width:680px){.parent-home .standalone-trend{padding:22px 18px}.sample-sheet-stats dd.sample-stat-label{font-size:20px;line-height:1.5}}

:root :is(.home,.parent-home) .sample-report-table :is(th,td){background:transparent}


/* Per-date enrollment stays separate from attendance and stored results. */
.student-record-fields{border:0;min-width:0;padding:0;margin:0}
.student-record-fields>legend.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.student-lesson-access{display:grid;grid-template-columns:minmax(150px,220px) 1fr;align-items:center;gap:20px;padding:18px 0 22px;border-bottom:1px solid var(--ui-line);margin-bottom:22px}
.student-lesson-access label{margin:0}
.student-lesson-access p{font-size:11px;line-height:1.8;margin:0}
@media(max-width:680px){.student-lesson-access{grid-template-columns:1fr;gap:10px}.portal-lesson>.sample-report-sheet{min-width:0}}

.sample-clinic-note .sample-next-step{margin-top:0}
.sample-clinic-note .clinic-criteria{font-size:10px;color:var(--ui-muted);line-height:1.8;margin-top:12px}

/* Separate class-wide setup from uninterrupted student score entry. */
.lesson-question-config{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--ui-line);margin-bottom:24px}
.lesson-question-config h3{font-size:15px;margin:0 0 8px}.lesson-question-config p,.lesson-question-config small{font-size:11px;line-height:1.8;color:var(--ui-muted);margin:0}
.lesson-question-config button{flex-shrink:0}
.lesson-resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:18px 0}
.lesson-resource-card{min-width:0;margin:0;padding:18px;border:1px solid var(--ui-line);background:var(--ui-surface)}
.lesson-resource-card legend{font-size:14px;font-weight:600;padding:0 6px}.lesson-resource-card label{display:block;margin:16px 0 0}.lesson-resource-card .help{margin:0}
/* Keep difficulty immediately before the score in both report views. */
:root :is(.home,.parent-home) .sample-report-table .report-question-kind-cell{width:1%;padding-left:6px;padding-right:14px;text-align:right;white-space:nowrap}
:root :is(.home,.parent-home) .sample-report-table .report-question-kind{display:inline;font-size:inherit;color:var(--ui-soft);font-weight:400}
:root :is(.home,.parent-home) .sample-report-table .report-question-kind--challenge{color:var(--ui-muted);font-weight:500}
:root :is(.home,.parent-home) .sample-report-table .report-question-kind--advanced{color:var(--ui-text);font-weight:700}
.clinic-absence-note{margin:12px 0;padding:12px 0;border-top:1px solid var(--ui-line)}.clinic-absence-note h4{font-size:11px!important;margin:0 0 6px!important}
@media(max-width:720px){.lesson-question-config{align-items:flex-start;flex-direction:column}.lesson-resource-grid{grid-template-columns:1fr}.lesson-resource-card{padding:16px}}

.portal-account-actions{display:flex;align-items:center;justify-content:flex-end;gap:20px;margin-left:auto;flex-wrap:wrap}
.parent-header .portal-account-actions>button,.parent-header .portal-account-actions>.parent-back{font-family:inherit;font-size:11px;color:var(--ui-muted);line-height:1.5;margin:0;padding:8px 0;white-space:nowrap}
.account-password-link{display:block;margin:18px auto 0;font-size:11px}
@media(max-width:480px){.portal-account-actions{gap:14px}.parent-header .portal-account-actions>button,.parent-header .portal-account-actions>.parent-back{font-size:10px}}


/* Compact lesson video list and same-page playback dialog. */
.lesson-resources .lesson-video-list{min-width:0;padding:20px}
.lesson-video-list .lesson-video-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.lesson-video-list .lesson-video-list-heading strong{margin:0;font-size:14px;font-weight:600}
.lesson-video-list .lesson-video-list-heading small{font-size:12px}
.lesson-video-buttons{display:grid;gap:8px}
.lesson-video-list .lesson-video-button{display:flex;align-items:center;gap:12px;width:100%;min-width:0;min-height:64px;padding:14px 16px;border:1px solid var(--ui-line);border-radius:8px;background:var(--ui-surface);text-align:left;transition:background .15s,border-color .15s}
.lesson-video-list .lesson-video-button:hover{background:var(--ui-hover);border-color:var(--ui-accent)}
.lesson-video-list .lesson-video-button strong{flex:1;min-width:0;margin:0;font-size:13px;line-height:1.6;font-weight:500;overflow-wrap:anywhere}
.lesson-video-list .lesson-video-button .lesson-video-number{font-size:11px;font-variant-numeric:tabular-nums;letter-spacing:.08em;color:var(--ui-muted)}
.lesson-video-list .lesson-video-button .lesson-video-play{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--ui-raised);color:var(--ui-text);font-size:10px;padding-left:2px}
body.lesson-video-open{overflow:hidden}
:root dialog.lesson-video-dialog{width:min(1040px,calc(100% - 32px));max-width:none;max-height:90vh;max-height:90dvh;padding:0;border:1px solid var(--ui-line);border-radius:14px;overflow:auto;box-shadow:0 24px 100px #0005}
:root dialog.lesson-video-dialog::backdrop{background:#0d1423c9;backdrop-filter:blur(5px)}
.lesson-video-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px}
.lesson-video-heading>div{min-width:0}
.lesson-video-heading span{font-size:10px;letter-spacing:.08em;color:var(--ui-muted)}
:root .lesson-video-heading h2{margin:7px 0 0;font-size:19px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.lesson-video-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:50%;font-size:28px;line-height:1;background:var(--ui-raised);color:var(--ui-text)}
.lesson-video-close:hover{background:var(--ui-hover)}
.lesson-video-dialog .video-frame{margin:0;min-height:0;background:#080a0e}
.lesson-video-dialog .video-frame video{display:block;width:100%;height:100%;background:#080a0e}
.lesson-video-dialog .embedded-video .help{padding:16px 24px;margin:0;min-height:52px;font-size:11px}
.lesson-video-inputs{margin-top:20px;display:grid;gap:16px}
.lesson-video-input-row{display:grid;grid-template-columns:25px minmax(0,1fr);gap:10px;padding-top:16px;border-top:1px solid var(--ui-line)}
.lesson-video-input-row .video-input-number{padding-top:2px;font-size:11px;color:var(--ui-muted);font-variant-numeric:tabular-nums}
.lesson-video-settings .lesson-video-input-row label{margin:0 0 10px}
.lesson-video-settings .lesson-video-input-row label:last-child{margin:0}
@media(max-width:600px){
 .lesson-resources .lesson-video-list{padding:16px}
 .lesson-video-list .lesson-video-button{padding:12px;gap:10px}
 :root dialog.lesson-video-dialog{width:calc(100% - 20px);border-radius:10px}
 .lesson-video-heading{padding:16px;gap:12px}
 :root .lesson-video-heading h2{font-size:16px}
 .lesson-video-dialog .embedded-video .help{padding:12px 16px}
}
/* Destructive actions stay distinct from ordinary editing controls. */
.danger-text{color:#a73636!important;border-color:#e3bcbc!important}
.danger-text:hover{background:#fff2f2!important}
.solid.danger-button{background:#aa3030;border-color:#aa3030;color:#fff}
.solid.danger-button:disabled{opacity:.4;cursor:not-allowed}
.deletion-target{margin:20px 0;padding:16px;background:#f5f6f8;border-radius:8px}
.deletion-target strong{font-size:20px}.deletion-target p{margin:6px 0 0;color:#667085}
.deletion-details{padding-left:20px;line-height:1.7;font-size:14px}.deletion-details li+li{margin-top:8px}
.deletion-warning{font-size:14px;color:#9d3030;line-height:1.6}
.deletion-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
