:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;background:#f4f1ea;color:#1f2923}*{box-sizing:border-box}body{margin:0}.auth-main{min-height:100vh;display:grid;place-items:center;padding:48px 24px}.hero{width:min(920px,100%);padding:clamp(36px,8vw,84px);border:1px solid #d7d0c2;border-radius:28px;background:#fffdf8;box-shadow:0 24px 80px rgb(47 57 50/9%)}.eyebrow{color:#a04f33;font-size:13px;font-weight:700;letter-spacing:.14em}h1{margin:18px 0 12px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:clamp(29px,5.4vw,53px);font-weight:400;line-height:1}.lead{max-width:620px;color:#647068;font-size:18px;line-height:1.7}.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:36px}.principles article{padding:18px;border-radius:14px;background:#eef0e7;font-weight:600}.primary-link,button{border:0;border-radius:12px;background:#1f2923;color:white;font:inherit;cursor:pointer}.primary-link,.secondary-link,button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;font-weight:700;text-decoration:none}.secondary-link{border:1px solid #cec9be;border-radius:12px;background:white;color:#39453e}button:disabled{cursor:wait;opacity:.65}.session-note{display:flex;align-items:center;gap:16px;margin:22px 0 0;color:#647068}.text-button{min-height:auto;padding:0;background:transparent;color:#a04f33}.login-card{width:min(520px,100%);padding:clamp(32px,7vw,64px);border:1px solid #d7d0c2;border-radius:28px;background:#fffdf8;box-shadow:0 24px 80px rgb(47 57 50/9%)}.login-title{margin-top:18px;font-size:clamp(26px,5.4vw,40px)}.login-form{display:grid;grid-gap:18px;gap:18px;margin-top:30px}.login-form label{display:grid;grid-gap:8px;gap:8px;color:#39453e;font-weight:700}.login-form input{width:100%;min-height:48px;padding:0 14px;border:1px solid #c9c4b9;border-radius:10px;background:white;color:#1f2923;font:inherit}.login-form input:focus{border-color:#a04f33;outline:3px solid rgb(160 79 51/14%)}.form-message{margin:0;color:#a3392f}.dependency-note{margin:0 0 20px;background:#fff3dc;color:#855d1f}.dependency-note,.transaction-note{padding:13px 15px;border-radius:10px;line-height:1.5}.transaction-note{margin:0;background:#edf1e8;color:#4f6154}.field-help{color:#7a837d;font-size:12px;font-weight:500}.header-date{display:grid;grid-gap:6px;gap:6px;color:#59645d;font-size:13px;font-weight:650}.header-date input{min-height:42px;padding:8px 11px;border:1px solid #cec9be;border-radius:9px;background:white;color:#1f2923;font:inherit}.attendance-list,.session-list{display:grid;grid-gap:12px;gap:12px}.session-card{display:grid;grid-template-columns:100px minmax(210px,1fr) minmax(180px,auto) auto;align-items:center;grid-gap:22px;gap:22px;padding:18px;border:1px solid #e3dfd6;border-radius:14px;background:#fff}.session-result,.session-time{display:grid;grid-gap:5px;gap:5px}.session-time strong{font-size:25px}.attendance-row small,.attendance-submit p,.session-card small{color:#7a837d}.session-detail h2{margin:0 0 5px;font-size:18px}.session-detail p{margin:0 0 6px;color:#5f6a63}.attendance-row{grid-template-columns:minmax(190px,1fr) 190px minmax(180px,1fr) auto;grid-gap:12px;padding:15px;border:1px solid #e3dfd6;border-radius:12px;background:white}.attendance-row,.correction-inline{display:grid;align-items:center;gap:12px}.correction-inline{grid-column:1/-1;grid-template-columns:180px minmax(220px,1fr) auto;grid-gap:12px;padding:14px;border-radius:10px;background:#f5f1e8}.attendance-row label,.attendance-row>div{display:grid;grid-gap:5px;gap:5px}.attendance-row input,.attendance-row select{width:100%;min-height:42px;padding:8px 10px;border:1px solid #cec9be;border-radius:9px;background:white;color:#1f2923;font:inherit}.attendance-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px;padding-top:18px;border-top:1px solid #e4e0d7}.attendance-submit p{margin:0;font-size:13px;line-height:1.5}.app-layout{min-height:100vh;display:grid;grid-template-columns:264px minmax(0,1fr);background:#f5f4ef}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:26px 16px 20px;border-right:1px solid #ddd8cc;background:#fffdf8}.sidebar-top{flex:0 0 auto}.brand{display:flex;align-items:center;gap:12px;margin:0 8px 26px;color:#1f2923;text-decoration:none}.brand-mark,.user-avatar{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:13px;background:#a04f33;color:white;font-weight:800}.brand span:last-child,.sidebar-user>span:nth-child(2){display:grid}.brand small,.sidebar-user small{margin-top:3px;color:#8a918b;font-size:12px;font-weight:500}.mobile-nav-button{display:none}.sidebar-nav{min-height:0;display:flex;flex:1 1 auto;flex-direction:column;overflow-y:auto;padding:0 4px 16px 0;scrollbar-width:thin;scrollbar-color:#d8d6ce transparent}.nav-groups{display:grid;grid-gap:22px;gap:22px;margin-top:24px}.nav-group{display:grid;grid-gap:6px;gap:6px}.nav-group-title{margin:0 12px 3px;color:#969b96;font-family:inherit;font-size:12px;font-weight:700;line-height:1.4}.nav-group-items{display:grid;grid-gap:4px;gap:4px}.nav-link{position:relative;min-height:42px;display:flex;align-items:center;gap:11px;padding:0 12px;border-radius:11px;color:#556059;font-size:15px;font-weight:620;text-decoration:none;transition:background-color .14s ease,color .14s ease}.nav-link.active,.nav-link:hover{background:#eef0e7;color:#1f2923}.nav-link.active{font-weight:750}.nav-link.active:after{position:absolute;inset:9px auto 9px 0;width:3px;border-radius:0 4px 4px 0;background:#a04f33;content:""}.brand:focus-visible,.mobile-nav-button:focus-visible,.nav-link:focus-visible{outline:3px solid rgb(160 79 51/18%);outline-offset:2px}.nav-icon{display:grid;place-items:center;flex:0 0 auto;width:25px;height:25px;border:1px solid #dedfd8;border-radius:8px;background:#f7f7f2;color:#6d766f;font-size:12px;font-weight:750}.nav-link.active .nav-icon{border-color:#d8c8bc;background:#fffaf3;color:#9b4a31}.nav-group-system{padding-top:18px;border-top:1px solid #e9e5dc}.sidebar-user{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:10px;gap:10px;margin-top:auto;padding-top:18px;border-top:1px solid #e4e0d7}.user-avatar{width:36px;height:36px;border-radius:50%;background:#dce1d5;color:#38443d}.logout-button{min-height:auto;padding:6px;background:transparent;color:#a04f33;font-size:13px}.app-main{min-width:0;padding:38px clamp(24px,4vw,58px) 70px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-header h1{margin:7px 0 8px;font-family:inherit;font-size:clamp(21px,2.7vw,29px)}.page-header p,.panel-heading p,.welcome-panel p{margin:0;color:#6d7770;line-height:1.6}.page-header .breadcrumb{color:#a04f33;font-size:13px;font-weight:700}.header-actions{flex:0 0 auto}.content-panel,.welcome-panel{border:1px solid #ded9ce;border-radius:20px;background:#fffdf8;box-shadow:0 12px 35px rgb(47 57 50/5%)}.welcome-panel{display:flex;align-items:center;justify-content:space-between;gap:26px;padding:34px}.panel-heading h2,.welcome-panel h2{margin:8px 0;font-size:24px}.welcome-actions{display:flex;flex:0 0 auto;gap:10px}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px;margin-top:18px}.dashboard-grid article{display:grid;grid-gap:10px;gap:10px;min-height:160px;padding:26px;border:1px solid #e0dbd0;border-radius:18px;background:#fffdf8}.dashboard-grid article>span,.dashboard-grid small{color:#7a837d}.dashboard-grid strong{align-self:end;font-size:44px}.dashboard-grid .text-value{font-size:25px}.dashboard-alert-panel,.dashboard-metrics-panel{margin-top:18px}.dashboard-metrics-panel>small{display:block;margin-top:16px;color:#7a837d}.dashboard-alert-panel .panel-heading>small{flex:0 0 auto;color:#7a837d}.analytics-toolbar{display:grid;grid-template-columns:auto 190px minmax(240px,1fr);align-items:end;grid-gap:14px;gap:14px;margin-bottom:14px;padding:18px 20px;border:1px solid #ded9ce;border-radius:18px;background:#fffdf8}.period-switcher{display:flex;gap:6px;padding:4px;border-radius:12px;background:#eef0e7}.period-switcher button{min-height:38px;padding:0 16px;background:transparent;color:#59645d}.period-switcher button.active{background:#1f2b24;color:white}.analytics-toolbar label{display:grid;grid-gap:6px;gap:6px;color:#59645d;font-size:12px;font-weight:700}.analytics-toolbar input{min-height:44px;padding:8px 11px;border:1px solid #cec9be;border-radius:9px;background:white;color:#1f2923;font:inherit}.analytics-data-note,.analytics-toolbar p{margin:0;color:#69746d;line-height:1.55}.analytics-data-note{margin-bottom:18px;padding:13px 16px;border-radius:12px;background:#edf1e8;font-size:13px}.analytics-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.analytics-summary-grid article{display:grid;grid-gap:7px;gap:7px;padding:20px;border:1px solid #ded9ce;border-radius:17px;background:#fffdf8}.analytics-summary-grid small,.analytics-summary-grid span{color:#778079}.analytics-summary-grid strong{color:#1f2923;font-size:30px}.analytics-section{margin-bottom:18px}.analytics-section .panel-heading>small{flex:0 0 auto;color:#778079}.health-tag,.risk-reasons span{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:750}.health-tag.healthy{background:#e4eee1;color:#3e6c3f}.health-tag.full{background:#e6edf2;color:#3f6070}.health-tag.low_attendance,.health-tag.low_capacity{background:#f4e6d7;color:#995333}.health-tag.no_data{background:#eceae5;color:#777b77}.risk-reasons{display:flex;flex-wrap:wrap;gap:6px}.risk-reasons span{background:#f4e6d7;color:#995333}.makeup-metric-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:10px;gap:10px;margin-bottom:18px}.makeup-metric-strip>div{display:grid;grid-gap:5px;gap:5px;padding:14px;border-radius:12px;background:#f2f2eb}.makeup-metric-strip span{color:#717b74;font-size:12px}.makeup-metric-strip strong{font-size:21px}.alert-reasons{display:flex;flex-wrap:wrap;gap:6px}.status-tag.warning{background:#f3ead5;color:#8a5c24}.table-link{color:#9b472e;font-weight:700;text-decoration:none}.table-link:hover{text-decoration:underline}.import-textarea{width:100%;margin-top:18px;padding:14px;border:1px solid #cec9be;border-radius:12px;font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.positive-value{color:#316844}.negative-value{color:#a3392f}.my-students-summary{display:grid;grid-template-columns:150px 150px minmax(260px,1fr);align-items:center;grid-gap:14px;gap:14px;margin-bottom:18px}.my-students-summary>div{display:flex;align-items:baseline;gap:8px;min-height:76px;padding:16px 18px;border:1px solid #e0dbd0;border-radius:16px;background:#fffdf8}.my-students-summary strong{color:#1f2923;font-size:30px}.my-students-summary p,.my-students-summary span{color:#737d76;font-size:13px}.my-students-summary p{margin:0;padding:0 6px;line-height:1.65}.class-student-list{display:grid;grid-gap:16px;gap:16px}.class-student-card{overflow:hidden;border:1px solid #ded9ce;border-radius:20px;background:#fffdf8;box-shadow:0 12px 35px rgb(47 57 50/5%)}.class-student-header{width:100%;min-height:112px;display:grid;grid-template-columns:88px minmax(220px,1fr) auto;align-items:center;grid-gap:20px;gap:20px;padding:20px 24px;border-radius:0;background:transparent;color:#1f2923;text-align:left}.class-student-header:hover{background:#faf8f2}.class-student-header:focus-visible{outline:3px solid rgb(160 79 51/18%);outline-offset:-4px}.class-schedule-badge,.class-student-meta,.class-student-title{display:grid}.class-schedule-badge{place-items:center;align-self:stretch;align-content:center;gap:3px;padding:10px 8px;border-radius:14px;background:#eef0e7}.class-schedule-badge small{color:#69746c;font-size:12px}.class-schedule-badge strong{color:#29342e;font-size:18px}.class-student-title{gap:4px}.class-student-title>span{color:#a04f33;font-size:13px;font-weight:700}.class-student-title strong{font-size:22px}.class-student-meta small,.class-student-title small{color:#858d87;font-size:12px;font-weight:550}.class-student-meta{justify-items:end;gap:7px}.class-student-meta em{padding:4px 8px;border-radius:999px;background:#f3ead5;color:#8a5c24;font-size:11px;font-style:normal}.class-student-meta strong{font-size:15px}.class-student-body{padding:0 24px 14px;border-top:1px solid #e8e3d9;background:#fffefa}.my-student-table td,.my-student-table th{padding-right:18px;padding-left:18px}.editor-panel{margin-bottom:20px;border-color:#c8b7a7}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.panel-heading h2{margin-top:0}.close-button,.secondary-button,.table-action{border:1px solid #cec9be;background:white;color:#39453e}.close-button{min-height:38px;padding:0 14px}.student-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px}.student-form label,.student-toolbar label{display:grid;align-content:start;grid-gap:7px;gap:7px;color:#49544d;font-size:14px;font-weight:650}.student-form b{color:#a3392f}.student-form input,.student-form select,.student-form textarea,.student-toolbar input,.student-toolbar select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cec9be;border-radius:9px;background:white;color:#1f2923;font:inherit}.student-form textarea{resize:vertical}.student-form .checkbox-field{display:flex;grid-template-columns:none;flex-direction:row;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;background:#f2f2eb}.student-form .checkbox-field input{width:18px;min-height:18px;margin:0}.student-form input:focus,.student-form select:focus,.student-form textarea:focus,.student-toolbar input:focus,.student-toolbar select:focus{border-color:#a04f33;outline:3px solid rgb(160 79 51/12%)}.full-field{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px}.student-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 150px auto;align-items:end;grid-gap:12px;gap:12px;margin-bottom:20px}.search-field{align-self:end}.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}.table-wrap{overflow-x:auto}.inline-operation-row>td{padding:0 0 18px;background:#fffdf8}.inline-operation-row .editor-panel{margin:0 12px;border-color:#d7c6b2;background:#f8f3eb;box-shadow:none}.transfer-inline-panel{margin:0 12px;padding:20px;border:1px solid #d7c6b2;border-radius:16px;background:#f8f3eb}.transfer-inline-panel .panel-heading{margin-bottom:16px}table{width:100%;border-collapse:collapse;text-align:left}td,th{padding:15px 13px;border-bottom:1px solid #e7e3da;vertical-align:middle}th{color:#7b837e;font-size:13px;font-weight:650}td{color:#3f4943;font-size:14px}td small,td strong{display:block}td strong{color:#1f2923;font-size:15px}td small{margin-top:5px;color:#8a918c}.status-tag{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:750}.status-tag.active{background:#e4eee1;color:#3e6c3f}.status-tag.inactive{background:#eceae5;color:#777b77}.temporary-tag{display:inline-block;margin-left:8px;padding:3px 8px;border-radius:999px;background:#f3dfc7;color:#8b4428;font-size:12px;vertical-align:middle}.makeup-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.makeup-task-list{display:grid;grid-gap:20px;gap:20px}.makeup-task-card{border:1px solid var(--line);border-radius:22px;padding:24px;background:#fffefa;box-shadow:0 10px 30px rgba(34,42,36,.05)}.makeup-task-card.is-finished{background:#f8f8f3}.makeup-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.makeup-card-header h2{margin:3px 0;font-size:28px}.makeup-card-facts small,.makeup-card-header small{display:block;color:var(--muted);margin-top:4px}.makeup-card-kicker{margin:0;color:var(--accent);font-weight:700}.makeup-card-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin:20px 0}.makeup-card-facts>div{padding:16px;border-radius:14px;background:var(--surface-soft)}.makeup-card-facts span{display:block;color:var(--muted);font-size:13px;margin-bottom:5px}.feedback-history{border-top:1px solid var(--line);padding-top:18px}.feedback-history h3{margin:0 0 12px;font-size:16px}.feedback-history ol{list-style:none;padding:0;margin:0;display:grid;grid-gap:9px;gap:9px}.feedback-history li{display:grid;grid-template-columns:auto 1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:#f5f3ec}.feedback-history li p{margin:0}.feedback-history li small,.no-feedback{color:var(--muted)}.feedback-result{padding:4px 8px;border-radius:999px;background:#e4e9de;font-size:12px;font-weight:700;white-space:nowrap}.makeup-card-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.warning-button{background:#f0e6d8;color:#7e492e;border-color:#d9c3ad}.danger-button{background:#7f3028;border-color:#7f3028}.status-tag.overdue{background:#f3d9d4;color:#8c2f27}.makeup-inline-action{margin-top:14px}.makeup-inline-panel{padding:20px;border-radius:16px;border:1px solid #d7c6b2;background:#f8f3eb}.makeup-inline-panel .panel-heading{margin-bottom:16px}.makeup-inline-panel .panel-heading h2{font-size:21px}.makeup-rule-note{margin:0 0 18px;padding:12px 14px;border-radius:12px;background:#eef0e8;color:var(--muted)}@media (max-width:900px){.makeup-card-facts{grid-template-columns:1fr}.feedback-history li{grid-template-columns:auto 1fr}.feedback-history li small{grid-column:2}}.row-actions{display:flex;gap:6px}.table-action{min-height:34px;padding:0 10px;font-size:12px}.table-action.danger{color:#a3392f}.empty-state{padding:46px 20px;color:#838a85;text-align:center}@media (max-width:640px){.app-layout,.attendance-row,.principles,.session-card{grid-template-columns:1fr}.sidebar{position:-webkit-sticky;position:sticky;z-index:20;top:0;height:auto;padding:14px 16px;border-right:0;border-bottom:1px solid #ddd8cc;box-shadow:0 8px 24px rgb(47 57 50/5%)}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{margin:0}.mobile-nav-button{display:inline-flex;gap:7px;min-height:40px;padding:0 13px;border:1px solid #d7d2c8;background:#fff;color:#39453e;font-size:13px}.mobile-nav-button>span:first-child{font-size:18px;line-height:1}.sidebar-nav{display:none;max-height:calc(100vh - 82px);margin-top:14px;padding:14px 2px 6px;border-top:1px solid #e6e2d9}.sidebar-nav.is-open{display:flex}.nav-groups{gap:18px;margin-top:18px}.sidebar-user{display:none}.app-main{padding:26px 16px 50px}.page-header,.welcome-panel{align-items:stretch;flex-direction:column}.welcome-actions{flex-direction:column}.analytics-toolbar,.dashboard-grid,.student-form,.student-toolbar{grid-template-columns:1fr}.analytics-toolbar{align-items:stretch}.period-switcher button{flex:1 1}.analytics-summary-grid,.makeup-metric-strip,.my-students-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.my-students-summary>div{min-height:68px;padding:13px 14px}.my-students-summary p{grid-column:1/-1;padding:0}.class-student-header{min-height:100px;grid-template-columns:68px minmax(0,1fr) auto;gap:12px;padding:16px}.class-schedule-badge strong{font-size:15px}.class-student-title strong{font-size:18px}.class-student-title small{display:none}.class-student-meta{align-self:stretch;align-content:center}.class-student-meta em{display:none}.class-student-meta strong{font-size:13px}.class-student-meta small{width:22px;height:22px;display:grid;place-items:center;overflow:hidden;color:transparent;font-size:0}.class-student-meta small span{color:#69746c;font-size:16px}.class-student-body{padding:8px 16px 14px}.my-student-table thead{display:none}.my-student-table,.my-student-table tbody,.my-student-table td,.my-student-table tr{display:block;width:100%}.my-student-table tr{padding:13px 0;border-bottom:1px solid #e7e3da}.my-student-table tr:last-child{border-bottom:0}.my-student-table td{display:grid;grid-template-columns:88px minmax(0,1fr);padding:6px 2px;border:0}.my-student-table td:before{grid-row:1/span 2;color:#8a918c;font-size:12px;content:attr(data-label)}.full-field{grid-column:auto}}:root{color-scheme:light;--color-brand:#4ab251;--color-brand-hover:#3e9c45;--color-brand-soft:#eef8ef;--color-ink:#231814;--color-pink:#e69dbb;--color-pink-soft:#fbedf3;--color-blue:#73a3d1;--color-blue-soft:#eef5fb;--color-yellow:#e9c56f;--color-yellow-soft:#fcf6e6;--color-purple:#aa8ab9;--color-purple-soft:#f5f0f7;--color-bg:#ffffff;--color-surface:#ffffff;--color-surface-subtle:#f7f7f5;--color-surface-hover:#f5f5f3;--color-border:#e9e9e7;--color-border-strong:#e2e2df;--color-text:#231814;--color-text-secondary:#6f6f6b;--color-text-tertiary:#979793;--color-danger:#b6485a;--color-danger-soft:#fbedef;--font-sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--font-size-xs:12px;--font-size-sm:13px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:24px;--font-size-display:clamp(23px,2.7vw,35px);--line-height-body:1.65;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:9px;--radius-lg:12px;--shadow-floating:0 10px 30px rgb(35 24 20/8%);--line:var(--color-border);--muted:var(--color-text-secondary);--accent:var(--color-brand);--surface-soft:var(--color-surface-subtle)}.topic-editor,.topic-list-section{margin-top:var(--space-7);border-top:1px solid var(--color-border)}.suspension-editor{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);margin-block:var(--space-8);padding-block:var(--space-6)}.suspension-choice-section,.suspension-list-section{margin-top:var(--space-8)}.suspension-toolbar{display:flex;justify-content:flex-end;margin-bottom:var(--space-4)}.suspension-toolbar label{min-width:160px}.suspension-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-5);gap:var(--space-5)}.suspension-load-row{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;margin-top:var(--space-6);padding-bottom:var(--space-5)}.suspension-load-row p{color:var(--color-text-secondary);margin:0}.suspension-detail-panel{padding-block:var(--space-5)}@media (max-width:720px){.suspension-form-grid{grid-template-columns:1fr}.suspension-load-row{align-items:stretch;flex-direction:column;gap:var(--space-4)}.suspension-toolbar{justify-content:stretch}.suspension-toolbar label{width:100%}}.topic-toolbar{display:flex;justify-content:flex-end;padding:var(--space-5) 0}.topic-toolbar label{display:flex;align-items:center;gap:var(--space-3)}.topic-toolbar label>span{color:var(--color-text-secondary);font-size:13px}.topic-editor{padding:var(--space-6) 0 var(--space-8)}.topic-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--space-5);gap:var(--space-5)}.topic-cancel-area label,.topic-form-grid label,.topic-notes{display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.topic-cancel-area label>span,.topic-form-grid label>span,.topic-notes>span{color:var(--color-text-secondary);font-size:13px;font-weight:560}.topic-editor-section{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.topic-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-5)}.topic-detail-panel h3,.topic-section-heading h3{margin:0;color:var(--color-text);font-size:16px;font-weight:620}.topic-detail-panel p,.topic-section-heading p,.topic-section-heading span{margin:5px 0 0;color:var(--color-text-secondary);font-size:13px}.topic-session-draft,.topic-session-labels{display:grid;grid-template-columns:1.1fr .8fr 1.15fr .7fr .7fr auto;align-items:center;grid-gap:var(--space-3);gap:var(--space-3)}.topic-session-labels{padding:0 0 var(--space-2);color:var(--color-text-tertiary);font-size:12px}.topic-session-draft{padding:var(--space-3) 0;border-top:1px solid var(--color-border-subtle,var(--color-border))}.topic-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:0 var(--space-6);gap:0 var(--space-6)}.topic-choice{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);cursor:pointer}.topic-choice input{width:16px;height:16px;margin-top:2px;accent-color:var(--color-brand)}.topic-choice small,.topic-choice span,.topic-choice strong{display:block}.topic-choice strong{font-size:14px;font-weight:600}.topic-choice small{margin-top:4px;color:var(--color-text-tertiary);font-size:12px}.topic-notes{margin-top:var(--space-7)}.topic-detail-panel{padding:var(--space-5) 0 var(--space-3)}.topic-detail-stats{display:flex;margin-bottom:var(--space-7)}.topic-detail-stats>div{min-width:130px;padding:0 var(--space-6);border-left:1px solid var(--color-border)}.topic-detail-stats>div:first-child{padding-left:0;border-left:0}.topic-detail-stats span,.topic-detail-stats strong{display:block}.topic-detail-stats span{color:var(--color-text-tertiary);font-size:12px}.topic-detail-stats strong{margin-top:5px;font-size:26px;font-weight:620}.topic-detail-columns{display:grid;grid-template-columns:1.25fr 1fr;grid-gap:var(--space-8);gap:var(--space-8)}.topic-detail-panel ul{margin:var(--space-3) 0 var(--space-6);padding:0;list-style:none}.topic-detail-panel li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.topic-detail-panel li small,.topic-detail-panel li strong{display:block}.topic-detail-panel li small{margin-top:3px;color:var(--color-text-tertiary);font-size:12px}.topic-cancel-area{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.topic-cancel-area form{display:grid;max-width:620px;grid-gap:var(--space-4);gap:var(--space-4)}.topic-session-tag{display:inline-flex;align-items:center;margin-left:7px;padding:2px 7px;border-radius:999px;color:#735a17;background:color-mix(in srgb,var(--color-yellow,#e9c56f) 24%,white);font-size:11px;font-weight:600;vertical-align:2px}@media (max-width:1100px){.topic-choice-grid,.topic-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-session-labels{display:none}.topic-session-draft{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-session-draft .table-action{justify-self:start}}@media (max-width:720px){.topic-choice-grid,.topic-detail-columns,.topic-form-grid,.topic-session-draft{grid-template-columns:minmax(0,1fr)}.topic-section-heading{align-items:stretch;flex-direction:column}.topic-detail-stats{display:grid;grid-template-columns:repeat(2,1fr)}.topic-detail-stats>div,.topic-detail-stats>div:first-child{padding:var(--space-3) 0;border:0;border-bottom:1px solid var(--color-border)}}body,html{min-height:100%;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.app-layout,.app-main,.auth-main,body{background:#ffffff}::selection{background:#dff1e0;color:var(--color-ink)}a,button,input,select,summary,textarea{font-family:inherit}.primary-link,.ui-button,button{min-height:40px;padding:0 16px;border:1px solid var(--color-brand);border-radius:var(--radius-sm);background:var(--color-brand);color:#ffffff;font-size:14px;font-weight:650;box-shadow:none;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.primary-link:hover,.ui-button-primary:hover,button:hover{border-color:var(--color-brand-hover);background:var(--color-brand-hover)}.close-button,.secondary-button,.secondary-link,.table-action,.ui-button-secondary{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:#ffffff;color:var(--color-text);box-shadow:none}.close-button:hover,.secondary-button:hover,.secondary-link:hover,.table-action:hover,.ui-button-ghost:hover,.ui-button-secondary:hover{border-color:#c6c6c2;background:var(--color-surface-hover)}.danger-button,.ui-button-danger{border-color:var(--color-danger);background:var(--color-danger);color:#ffffff}.logout-button,.text-button,.ui-button-ghost{border-color:transparent;background:transparent;color:var(--color-text-secondary)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid rgb(74 178 81/18%);outline-offset:2px}.analytics-toolbar input,.attendance-row input,.attendance-row select,.header-date input,.login-form input,.student-form input,.student-form select,.student-form textarea,.student-toolbar input,.student-toolbar select,input,select,textarea{min-height:40px;padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:7px;background:#ffffff;color:var(--color-text);box-shadow:none}input:hover,select:hover,textarea:hover{border-color:#cececa}.login-form input:focus,.student-form input:focus,.student-form select:focus,.student-form textarea:focus,.student-toolbar input:focus,.student-toolbar select:focus,input:focus,select:focus,textarea:focus{border-color:var(--color-brand);outline:2px solid rgb(74 178 81/11%)}.login-form input{min-height:42px}.app-layout{grid-template-columns:248px minmax(0,1fr)}.sidebar{padding:24px 14px 18px;border-color:#efefed;background:#ffffff}.brand{gap:10px;margin:0 8px 28px;color:var(--color-text)}.brand-mark{width:38px;height:38px;border:0;border-radius:0;background:transparent}.brand strong{font-size:15px;letter-spacing:.04em}.brand small,.sidebar-user small{color:var(--color-text-tertiary)}.brand-mascot{display:block;flex:0 0 auto}.brand-mascot img{display:block;width:100%;height:100%;object-fit:contain}.sidebar-nav{scrollbar-color:var(--color-border-strong) transparent}.nav-groups{gap:20px;margin-top:22px}.nav-group-title{margin-left:10px;color:#a2a29e;font-size:11px;font-weight:540;letter-spacing:.08em}.nav-link{min-height:38px;gap:10px;padding:0 10px;border-radius:var(--radius-sm);color:#747470;font-size:14px;font-weight:500}.nav-link:hover{background:#fafaf9;color:var(--color-text)}.nav-link.active{background:#f3f9f3;color:#347b39;font-weight:600}.nav-link.active:after{inset:8px auto 8px 0;width:2px;background:var(--color-brand)}.nav-icon,.nav-link.active .nav-icon{width:19px;height:19px;border:0;border-radius:0;background:transparent;color:currentColor;opacity:.86}.nav-icon svg{width:18px;height:18px}.nav-group-system,.sidebar-user{border-color:var(--color-border)}.user-avatar{background:var(--color-brand-soft);color:#27772e}.logout-button{color:var(--color-text-secondary)}.app-main{width:100%;max-width:1680px;padding:38px clamp(30px,4vw,64px) 72px}.page-header{margin-bottom:34px}.page-header h1{color:var(--color-text);font-family:var(--font-sans);font-size:clamp(21px,2.36vw,29px);font-weight:650;letter-spacing:-.035em}.eyebrow{color:var(--color-brand-hover)}.page-header .breadcrumb{color:var(--color-text-tertiary)}.lead,.page-header p,.panel-heading p,.welcome-panel p{color:var(--color-text-secondary)}.class-student-card,.content-panel,.hero,.login-card,.makeup-task-card,.welcome-panel{border-color:var(--color-border);border-radius:var(--radius-lg);background:#ffffff;box-shadow:none}.content-panel{padding:24px}.panel-heading h2,.welcome-panel h2{color:var(--color-text)}.analytics-summary-grid article,.attendance-row,.dashboard-grid article,.my-students-summary>div,.session-card{border-color:var(--color-border);border-radius:var(--radius-md);background:#ffffff;box-shadow:none}.analytics-data-note,.dependency-note,.makeup-rule-note,.transaction-note{border-radius:var(--radius-sm)}table{border-spacing:0;background:#ffffff}td,th{border-color:#efefed}th{color:var(--color-text-secondary);font-size:12px;font-weight:620}td{color:#4e4e4a}tbody tr{transition:background-color .12s ease}tbody tr,tbody tr:nth-child(2n),tbody tr:nth-child(odd){background:#ffffff}tbody tr:hover{background:#f8f8f7}.table-link{color:#2f8d36}.status-tag,.ui-badge{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;min-height:24px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:650;line-height:1.2}.status-tag.active,.ui-badge-success{background:var(--color-brand-soft);color:#27772e}.status-tag.warning,.ui-badge-warning,.warning-button{background:var(--color-yellow-soft);color:#7a5b13}.status-tag.overdue,.ui-badge-danger{background:var(--color-danger-soft);color:#96384a}.ui-badge-info{background:var(--color-blue-soft);color:#3c6d9b}.ui-badge-purple{background:var(--color-purple-soft);color:#765386}.status-tag.inactive,.ui-badge-neutral{background:var(--color-surface-subtle);color:var(--color-text-secondary)}.ui-empty-state{display:grid;justify-items:center;grid-gap:8px;gap:8px;padding:42px 18px;color:var(--color-text-secondary);text-align:center}.ui-empty-state p{max-width:420px;margin:0;color:var(--color-text-tertiary);font-size:13px}.ui-alert{padding:12px 14px;border-left:3px solid;border-radius:var(--radius-sm);font-size:13px;line-height:1.6}.ui-alert-info{background:var(--color-blue-soft);color:#3c6d9b}.ui-alert-success{background:var(--color-brand-soft);color:#27772e}.ui-alert-warning{background:var(--color-yellow-soft);color:#7a5b13}.ui-alert-danger{background:var(--color-danger-soft);color:#96384a}.ui-tabs{display:flex;gap:18px;border-bottom:1px solid var(--color-border)}.ui-tabs button{min-height:38px;padding:0 1px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--color-text-secondary)}.ui-tabs button.active{border-bottom-color:var(--color-brand);background:transparent;color:var(--color-text)}.ui-dropdown{position:relative}.ui-dropdown summary{cursor:pointer;list-style:none}.ui-dropdown-menu{position:absolute;z-index:30;top:calc(100% + 6px);right:0;min-width:180px;padding:6px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffff;box-shadow:var(--shadow-floating)}.ui-dialog-backdrop,.ui-drawer-backdrop{position:fixed;z-index:50;inset:0;display:flex;background:rgb(35 24 20/28%)}.ui-dialog-backdrop{align-items:center;justify-content:center;padding:24px}.ui-drawer-backdrop{justify-content:flex-end}.ui-dialog,.ui-drawer{overflow:auto;border:1px solid var(--color-border);background:#ffffff;box-shadow:var(--shadow-floating)}.ui-dialog{width:min(620px,100%);max-height:calc(100vh - 48px);padding:24px;border-radius:var(--radius-lg)}.ui-drawer{width:min(460px,100%);height:100%;padding:24px}.ui-dialog header,.ui-drawer header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.ui-dialog h2,.ui-drawer h2{margin:0;font-size:20px}.admin-dashboard{padding-top:42px}.studio-today-header{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;grid-gap:34px;gap:34px;padding-bottom:30px;border-bottom:1px solid var(--color-border)}.studio-today-heading{display:flex;align-items:flex-start;gap:20px}.studio-today-logo{margin-top:3px}.studio-today-header .eyebrow{margin:0 0 7px;font-size:12px;letter-spacing:.08em}.studio-today-header h1{margin:0;color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-display);font-weight:650;letter-spacing:-.05em;line-height:1.08}.studio-today-header p{margin:10px 0 0;color:var(--color-text-secondary);line-height:1.6}.studio-today-summary{display:grid;grid-template-columns:repeat(4,auto);grid-gap:28px;gap:28px}.studio-today-summary div{display:grid;grid-gap:4px;gap:4px}.studio-today-summary span{color:var(--color-text-tertiary);font-size:12px}.studio-today-summary strong{color:var(--color-text);font-size:22px;font-weight:700}.dashboard-primary-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.8fr);grid-gap:54px;gap:54px;margin-top:44px}.dashboard-section{min-width:0}.dashboard-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}.dashboard-section-header h2{margin:0;color:var(--color-text);font-size:20px;font-weight:700;letter-spacing:-.02em}.dashboard-section-header a,.dashboard-section-header p{margin:0;color:var(--color-text-secondary);font-size:13px}.dashboard-section-header a{color:#2f8d36;font-weight:620;text-decoration:none}.attention-list,.lesson-watch-list,.today-course-list{border-top:1px solid var(--color-border)}.today-course-row{display:grid;grid-template-columns:72px minmax(180px,1.45fr) minmax(100px,.7fr) 80px auto;align-items:center;grid-gap:14px;gap:14px;min-height:68px;border-bottom:1px solid var(--color-border);color:var(--color-text);text-decoration:none;transition:background-color .12s ease}.today-course-row:hover{background:#fbfbfa}.today-course-row>strong{font-size:16px}.today-course-row>small,.today-course-row>span{color:var(--color-text-secondary);font-size:13px}.today-course-row .course-time{color:var(--color-text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:680}.attention-list{display:grid}.attention-row{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;min-height:64px;border-bottom:1px solid var(--color-border);color:inherit;text-decoration:none}.attention-row:hover strong{color:#2f8d36}.attention-dot{width:8px;height:8px;border-radius:50%}.attention-dot-warning{background:var(--color-yellow)}.attention-dot-danger{background:var(--color-pink)}.attention-dot-info{background:var(--color-blue)}.attention-dot-purple{background:var(--color-purple)}.attention-copy{display:grid;grid-gap:3px;gap:3px}.attention-copy strong{font-size:14px;font-weight:650}.attention-copy small{color:var(--color-text-tertiary);font-size:12px}.attention-count{color:var(--color-text);font-size:22px;font-weight:700}.month-section{margin-top:52px;padding-top:34px;border-top:1px solid var(--color-border)}.month-data-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}.month-data-item{display:grid;grid-gap:7px;gap:7px;padding:3px 28px 3px 0}.month-data-item+.month-data-item{padding-left:28px;border-left:1px solid var(--color-border)}.month-data-item span{color:var(--color-text-secondary);font-size:13px}.month-data-item strong{color:var(--color-text);font-size:clamp(25px,2.5vw,34px);font-weight:720;letter-spacing:-.03em}.month-data-item small{color:var(--color-text-tertiary);font-size:12px}.dashboard-secondary-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);grid-gap:54px;gap:54px;margin-top:52px;padding-top:34px;border-top:1px solid var(--color-border)}.lesson-watch-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(120px,.8fr) 90px auto;align-items:center;grid-gap:14px;gap:14px;min-height:62px;border-bottom:1px solid var(--color-border);color:inherit;text-decoration:none}.lesson-watch-row strong{font-size:14px;font-weight:650}.lesson-watch-row small,.lesson-watch-row span{color:var(--color-text-secondary);font-size:12px}.dashboard-note{padding:22px 0 0;border-top:1px solid var(--color-border)}.dashboard-note p{margin:0;color:var(--color-text-secondary);font-size:13px;line-height:1.7}.dashboard-note strong{display:block;margin-bottom:7px;color:var(--color-text);font-size:14px}.dashboard-loading-line{height:68px;border-bottom:1px solid var(--color-border);background:linear-gradient(90deg,transparent,#f7f7f5,transparent);background-size:200% 100%;animation:dashboard-loading 1.3s linear infinite}@keyframes dashboard-loading{to{background-position:-200% 0}}@media (max-width:1240px){.studio-today-header{align-items:start}.studio-today-summary{grid-template-columns:repeat(2,auto);gap:18px 28px}.dashboard-primary-grid,.dashboard-secondary-grid{gap:36px}.today-course-row{grid-template-columns:64px minmax(160px,1fr) 90px auto}.today-course-row>small:nth-of-type(2){display:none}}@media (max-width:980px){.app-layout{grid-template-columns:220px minmax(0,1fr)}.app-main{padding-right:28px;padding-left:28px}.studio-today-header{grid-template-columns:1fr}.studio-today-summary{grid-template-columns:repeat(4,1fr)}.dashboard-primary-grid,.dashboard-secondary-grid{grid-template-columns:1fr;gap:44px}.month-data-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}.month-data-item:nth-child(3){padding-left:0;border-left:0}}@media (max-width:640px){.sidebar{background:#ffffff;box-shadow:none}.admin-dashboard{padding-top:26px}.studio-today-heading{gap:12px}.studio-today-logo{width:46px;height:46px}.studio-today-summary{grid-template-columns:repeat(2,1fr);padding-top:20px;border-top:1px solid var(--color-border)}.dashboard-primary-grid{margin-top:34px}.today-course-row{grid-template-columns:58px minmax(0,1fr) auto;gap:10px;padding:12px 0}.today-course-row>small,.today-course-row>span:not(.course-time){display:none}.month-data-grid{grid-template-columns:1fr 1fr}.month-data-item,.month-data-item+.month-data-item{padding:0 16px 0 0;border-left:0}.month-data-item:nth-child(2n){padding-left:16px;border-left:1px solid var(--color-border)}.lesson-watch-row{grid-template-columns:minmax(0,1fr) 70px auto}.lesson-watch-row>span{display:none}}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans)}.flat-page .content-panel{padding:0;border:0;border-radius:0;background:#ffffff;box-shadow:none}.flat-page .student-toolbar{margin:0;padding:0 0 22px;border-bottom:1px solid var(--color-border)}.flat-page .table-wrap{background:#ffffff}.flat-page .table-wrap,.flat-page table{border:0;border-radius:0}.flat-page tbody tr:hover{background:#f8f8f7}.flat-page .inline-operation-row:hover{background:#ffffff}.flat-page .editor-panel{margin:0 0 32px;padding:28px 0 32px;border:0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);border-radius:0;background:#ffffff}.flat-page .inline-operation-row>td{padding:0 12px 24px;background:#ffffff}.flat-page .inline-operation-row .editor-panel,.flat-page .transfer-inline-panel{margin:0;padding:24px 0 4px;border:0;border-top:1px solid var(--color-border);border-radius:0;background:#ffffff}.analytics-page .analytics-toolbar{margin-bottom:16px;padding:0 0 20px;border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:#ffffff}.analytics-page .period-switcher{gap:18px;padding:0;border-radius:0;background:#ffffff}.analytics-page .period-switcher button,.analytics-page .period-switcher button.active,.analytics-page .period-switcher button:hover{min-height:38px;padding:0 2px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--color-text-secondary)}.analytics-page .period-switcher button.active{border-bottom-color:var(--color-brand);color:var(--color-text)}.analytics-page .analytics-data-note{margin:0 0 24px;padding:0;border:0;border-radius:0;background:transparent}.analytics-page .analytics-summary-grid{gap:0;margin-bottom:40px;padding:8px 0 30px;border-bottom:1px solid var(--color-border)}.analytics-page .analytics-summary-grid article{min-height:0;padding:4px 28px;border:0;border-right:1px solid var(--color-border);border-radius:0;background:#ffffff}.analytics-page .analytics-summary-grid article:first-child{padding-left:0}.analytics-page .analytics-summary-grid article:last-child{border-right:0}.analytics-page .analytics-section{margin:0;padding:36px 0 40px;border-top:1px solid var(--color-border)}.analytics-page .analytics-summary-grid+.analytics-section{padding-top:0;border-top:0}.analytics-page .analytics-section .panel-heading{margin-bottom:16px}.analytics-page .makeup-metric-strip{gap:0;margin:2px 0 24px;padding-bottom:22px;border-bottom:1px solid var(--color-border)}.analytics-page .makeup-metric-strip>div{padding:2px 22px;border-right:1px solid var(--color-border);border-radius:0;background:#ffffff}.analytics-page .makeup-metric-strip>div:first-child{padding-left:0}.analytics-page .makeup-metric-strip>div:last-child{border-right:0}.finance-page .dashboard-grid{gap:0;margin:0 0 38px;padding-bottom:30px;border-bottom:1px solid var(--color-border)}.finance-page .dashboard-grid article{min-height:0;padding:4px 30px;border:0;border-right:1px solid var(--color-border);border-radius:0;background:#ffffff}.finance-page .dashboard-grid article:first-child{padding-left:0}.finance-page .dashboard-grid article:last-child{border-right:0}.finance-page .dashboard-alert-panel{margin-top:0}.makeups-page .makeup-rule-note{margin:18px 0 6px;padding:0 0 18px;border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:transparent}.makeups-page .makeup-task-list{gap:0}.makeups-page .makeup-task-card,.makeups-page .makeup-task-card.is-finished{padding:30px 0 34px;border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:#ffffff;box-shadow:none}.makeups-page .makeup-card-facts{gap:0;margin:24px 0}.makeups-page .makeup-card-facts>div{padding:2px 24px;border-right:1px solid var(--color-border);border-radius:0;background:#ffffff}.makeups-page .makeup-card-facts>div:first-child{padding-left:0}.makeups-page .makeup-card-facts>div:last-child{border-right:0}.makeups-page .feedback-history li{padding:11px 0;border-top:1px solid var(--color-border);border-radius:0;background:#ffffff}.makeups-page .feedback-history li:first-child{border-top:0}.makeups-page .makeup-inline-action{margin-top:22px;padding-top:22px;border-top:1px solid var(--color-border)}.makeups-page .makeup-inline-panel{padding:0;border:0;border-radius:0;background:#ffffff}@media (max-width:900px){.makeups-page .makeup-card-facts>div,.makeups-page .makeup-card-facts>div:first-child{padding:14px 0;border-right:0;border-top:1px solid var(--color-border)}.makeups-page .makeup-card-facts>div:first-child{border-top:0}}@media (max-width:640px){.analytics-page .analytics-summary-grid article,.analytics-page .analytics-summary-grid article:first-child{padding:14px 18px}.analytics-page .analytics-summary-grid article:nth-child(odd){padding-left:0}.analytics-page .analytics-summary-grid article:nth-child(2n){border-right:0}.analytics-page .analytics-summary-grid article:nth-child(n+3){border-top:1px solid var(--color-border)}.analytics-page .makeup-metric-strip>div,.analytics-page .makeup-metric-strip>div:first-child{padding:14px 18px}.analytics-page .makeup-metric-strip>div:nth-child(odd){padding-left:0}.analytics-page .makeup-metric-strip>div:nth-child(2n){border-right:0}.analytics-page .makeup-metric-strip>div:nth-child(n+3){border-top:1px solid var(--color-border)}.finance-page .dashboard-grid article,.finance-page .dashboard-grid article:first-child{padding:16px 0;border-right:0;border-bottom:1px solid var(--color-border)}.finance-page .dashboard-grid article:last-child{border-bottom:0}}.my-students-summary{gap:0;padding-bottom:22px;border-bottom:1px solid var(--color-border)}.my-students-summary>div{min-height:0;padding:4px 24px;border:0;border-right:1px solid var(--color-border);border-radius:0;background:#ffffff}.my-students-summary>div:first-child{padding-left:0}.my-students-summary p{padding-left:24px}@media (max-width:640px){.my-students-summary>div,.my-students-summary>div:first-child{padding:10px 18px}.my-students-summary>div:first-child{padding-left:0}.my-students-summary>div:nth-child(2){border-right:0}.my-students-summary p{padding:14px 0 0}}.today-page .page-header{margin-bottom:26px}.today-session-list{border-top:1px solid var(--color-border)}.today-session{border-bottom:1px solid #efefed;background:#ffffff}.today-session-row{display:grid;grid-template-columns:84px minmax(210px,1.25fr) minmax(160px,.75fr) minmax(220px,1fr) auto;align-items:center;grid-gap:22px;gap:22px;min-height:82px;padding:14px 0}.today-session-detail,.today-session-people,.today-session-status,.today-session-time{display:grid;grid-gap:4px;gap:4px;min-width:0}.today-session-time strong{font-size:20px;font-weight:650;letter-spacing:-.02em}.today-session-detail strong,.today-session-people span{overflow:hidden;font-size:14px;font-weight:620;text-overflow:ellipsis;white-space:nowrap}.today-session-open-state,.today-session-row small{color:var(--color-text-tertiary);font-size:12px;line-height:1.45}.today-session-status{justify-items:start}.today-session-status small{white-space:nowrap}.today-session-row>button{min-width:88px}.today-session-open-state{padding-right:10px;text-align:right}.today-attendance-panel{padding:22px 0 30px;border-top:1px solid var(--color-border);background:#ffffff}.today-attendance-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:18px}.today-attendance-header>div:first-child{display:grid;grid-gap:5px;gap:5px}.today-attendance-header strong{font-size:16px;font-weight:650}.today-attendance-header p{margin:0;color:var(--color-text-secondary);font-size:13px;line-height:1.5}.today-attendance-tools{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap}.attendance-progress{color:var(--color-text);font-size:13px;font-weight:620;white-space:nowrap}.attendance-note-toggle,.attendance-quick-action{min-height:auto;padding:4px 0;border:0;border-radius:0;background:transparent;color:var(--color-text-secondary);font-size:13px;font-weight:550;box-shadow:none}.attendance-note-toggle:hover,.attendance-quick-action:hover{border:0;background:transparent;color:var(--color-brand-hover)}.today-page .attendance-list{gap:0;border-top:1px solid #efefed}.attendance-student-row{display:grid;grid-template-columns:minmax(190px,1fr) auto minmax(140px,.7fr) auto;align-items:center;grid-gap:18px;gap:18px;padding:16px 0;border:0;border-bottom:1px solid #efefed;border-radius:0;background:#ffffff}.attendance-student-identity{display:grid;grid-gap:5px;gap:5px;min-width:0}.attendance-student-identity strong{font-size:14px;font-weight:620}.attendance-student-identity small{overflow:hidden;color:var(--color-text-tertiary);font-size:12px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.attendance-status-buttons{display:grid;grid-template-columns:repeat(3,minmax(64px,1fr));grid-gap:6px;gap:6px}.attendance-status-buttons.is-temporary{grid-template-columns:repeat(2,minmax(72px,1fr))}.attendance-status-button{min-height:38px;padding:0 14px;border:1px solid #e3e3df;border-radius:7px;background:#ffffff;color:var(--color-text-secondary);font-size:13px;font-weight:560;box-shadow:none}.attendance-status-button.present:hover:not(:disabled){border-color:#c7e3c9;background:#f6fbf6}.attendance-status-button.leave:hover:not(:disabled){border-color:#eadba9;background:#fdf9ee}.attendance-status-button.absent:hover:not(:disabled){border-color:#ebcad7;background:#fdf4f7}.attendance-status-button.present.is-selected{border-color:#b9ddbc;background:#edf8ee;color:#2f7835;box-shadow:inset 0 0 0 1px #b9ddbc}.attendance-status-button.leave.is-selected{border-color:#ead79f;background:#fcf6e6;color:#80621d;box-shadow:inset 0 0 0 1px #ead79f}.attendance-status-button.absent.is-selected{border-color:#ecc5d4;background:#fbedf3;color:#9b435f;box-shadow:inset 0 0 0 1px #ecc5d4}.attendance-status-button:disabled{cursor:default;opacity:1}.attendance-note-area{display:grid;align-items:center;grid-gap:6px;gap:6px;min-width:0}.attendance-note-area p{margin:0;color:var(--color-text-secondary);font-size:13px;line-height:1.5}.attendance-note-area span{color:var(--color-text-tertiary);font-size:13px}.attendance-note-area input{width:100%;min-width:140px}.attendance-note-toggle{justify-self:start}.today-page .correction-inline{padding:14px 0 2px;border-top:1px dashed var(--color-border);border-radius:0;background:#ffffff}.today-page .attendance-submit{margin-top:0;padding-top:20px;border-top:0}@media (max-width:920px){.today-session-row{grid-template-columns:72px minmax(180px,1fr) minmax(130px,.7fr) minmax(180px,.9fr) auto;gap:14px}.attendance-student-row{grid-template-columns:minmax(180px,1fr) auto minmax(120px,.55fr)}.attendance-student-row>.table-action{grid-column:3;justify-self:start}}@media (max-width:760px){.today-page .page-header{gap:16px;margin-bottom:20px}.today-page .header-date,.today-page .header-date input{width:100%}.today-session-row{grid-template-columns:62px minmax(0,1fr) auto;grid-template-areas:"time detail action" "time people people" "status status status";gap:8px 12px;min-height:0;padding:16px 0}.today-session-time{grid-area:time;align-self:start}.today-session-time strong{font-size:18px}.today-session-detail{grid-area:detail}.today-session-people{grid-area:people;display:flex;gap:8px;flex-wrap:wrap}.today-session-status{grid-area:status;display:flex;align-items:center;gap:8px;padding-top:3px}.today-session-status small{white-space:normal}.today-session-open-state,.today-session-row>button{grid-area:action;align-self:start}.today-session-row>button{min-width:0;min-height:36px;padding:0 10px;font-size:12px}.today-session-open-state{padding:5px 0 0}.today-attendance-panel{padding:18px 0 24px}.today-attendance-header{flex-direction:column;gap:14px;padding-bottom:16px}.today-attendance-tools{justify-content:space-between;width:100%;gap:12px}.attendance-student-row{grid-template-columns:minmax(0,1fr);gap:12px;padding:18px 0}.attendance-student-identity small{overflow:visible;white-space:normal}.attendance-status-buttons,.attendance-status-buttons.is-temporary{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.attendance-status-buttons.is-temporary{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-status-button{min-height:44px}.attendance-note-area input{min-width:0}.attendance-student-row>.table-action{grid-column:1;justify-self:start}.today-page .correction-inline{grid-template-columns:1fr}.today-page .attendance-submit{position:-webkit-sticky;position:sticky;z-index:5;bottom:0;display:grid;grid-gap:10px;gap:10px;margin:0 -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:#ffffff;box-shadow:0 -6px 20px rgb(35 24 20/5%)}.today-page .attendance-submit button{width:100%}.today-page .attendance-submit p{font-size:12px}}@media (max-width:640px){.app-layout{grid-template-columns:minmax(0,1fr)}}.teacher-class-panel{padding:24px}.teacher-class-table{table-layout:fixed}.teacher-class-table>thead>tr>th:first-child,.teacher-class-table>thead>tr>th:nth-child(2),.teacher-class-table>thead>tr>th:nth-child(3){width:24%}.teacher-class-table>thead>tr>th:nth-child(4){width:13%}.teacher-class-table>thead>tr>th:nth-child(5){width:15%}.teacher-class-row>td{background:#ffffff}.teacher-class-row.is-expanded>td{border-bottom-color:transparent}.teacher-class-row .status-tag{margin-top:1px}.teacher-students-inline-row,.teacher-students-inline-row:hover,.teacher-students-inline-row>td{background:#ffffff}.teacher-students-inline-row>td{padding:0 12px 18px}.teacher-students-inline{padding:8px 18px 0;border-top:1px solid var(--color-border);background:#ffffff}.teacher-students-inline .my-student-table td,.teacher-students-inline .my-student-table th{padding-right:18px;padding-left:18px}@media (max-width:640px){.teacher-class-panel{padding:0;overflow:hidden}.teacher-class-panel>.table-wrap{overflow:visible}.teacher-class-table,.teacher-class-table>tbody{display:block;width:100%}.teacher-class-table>thead{display:none}.teacher-class-table>tbody>tr{display:grid;width:100%}.teacher-class-table>tbody>.teacher-class-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 18px;padding:17px 16px;border-bottom:1px solid var(--color-border)}.teacher-class-table>tbody>.teacher-class-row.is-expanded{border-bottom:0}.teacher-class-table>tbody>.teacher-class-row>td{display:grid;align-content:start;grid-gap:3px;gap:3px;padding:0;border:0}.teacher-class-table>tbody>.teacher-class-row>td:before{color:var(--color-text-tertiary);font-size:11px;font-weight:540;content:attr(data-label)}.teacher-class-table>tbody>.teacher-class-row>td:last-child{align-self:end}.teacher-class-table>tbody>.teacher-class-row>td:last-child:before{display:none}.teacher-class-row .table-action{width:100%}.teacher-class-table>tbody>.teacher-students-inline-row{display:block}.teacher-students-inline-row>td{display:block;width:100%;padding:0 16px 14px;border-bottom:1px solid var(--color-border)}.teacher-students-inline{padding:4px 0 0}.teacher-students-inline .my-student-table td,.teacher-students-inline .my-student-table th{padding-right:2px;padding-left:2px}}