:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#202124;font-synthesis:none;text-rendering:optimizelegibility;--ink:#202124;--ink-soft:#45484c;--ink-400:#62666b;--muted:#62666b;--subtle:#6d7176;--line:#e2e3e5;--line-soft:#ededee;--line-strong:#c9cbce;--canvas:#f5f5f5;--surface:#fff;--surface-soft:#fafafa;--surface-muted:#f1f2f3;--green-950:#24272a;--green-900:#245ea8;--green-700:#3578c4;--green-100:#d9e8f7;--green-50:#f3f7fb;--coral-700:#51565b;--coral-500:#6f7479;--coral-100:#dadcde;--coral-50:#f4f4f4;--blue-700:#526f86;--blue-500:#6f8ea5;--blue-100:#d9e4ec;--blue-50:#f0f5f8;--gold-700:#786640;--gold-500:#89734c;--gold-100:#e8e1d5;--gold-50:#f8f6f2;--red-700:#934b4b;--red-500:#b16d6d;--red-100:#eadada;--red-50:#faf3f3;--focus-ring:#3578c4;--focus-halo:#3578c42e;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 12px 34px #0000001f;--mobile-nav-height:calc(66px + env(safe-area-inset-bottom,0px));background:#f5f5f5;font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,Arial,sans-serif}*{box-sizing:border-box;letter-spacing:0}.brand-name{white-space:nowrap;padding-right:.5em}.brand-name-anchor{display:inline-block;position:relative}.brand-registered{font-size:.45em;font-weight:inherit;vertical-align:baseline;margin-left:.12em;line-height:1;position:absolute;top:0;left:100%;transform:translateY(-45%)}html{overscroll-behavior-x:none;background:var(--canvas);width:100%;min-width:0;max-width:100%;min-height:100%;overflow-x:hidden}body{overscroll-behavior-x:none;background:var(--canvas);width:100%;min-width:0;max-width:100%;min-height:100dvh;color:var(--ink);margin:0;font-size:14px;line-height:1.5;overflow-x:hidden}body.modal-open{overscroll-behavior:none;overflow:hidden}body:has(.modal-backdrop){overscroll-behavior:none;overflow:hidden}body:has(.drawer.is-open){overscroll-behavior:none;overflow:hidden}@media (width>=681px){html{scrollbar-gutter:stable}}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:0}button{touch-action:manipulation;border:0}button:not(:disabled){cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px}button:disabled{cursor:not-allowed;opacity:.48}h1,h2,h3,h4,p{margin:0}svg{flex:none}#root{width:100%;min-width:0;max-width:100%;overflow-x:hidden}.app-shell{width:100%;min-width:0;max-width:100%;min-height:100dvh;overflow-x:hidden}.app-main{flex-direction:column;min-width:0;min-height:100dvh;margin-left:252px;display:flex}.sidebar{z-index:40;color:#f8f8f8;background:var(--green-950);border-right:1px solid #ffffff14;flex-direction:column;width:252px;height:100dvh;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden}.sidebar-scrim{display:none}.brand{border-bottom:1px solid #ffffff17;align-items:center;gap:8px;min-height:72px;padding:15px 18px;display:flex}.brand>div{flex-direction:column;flex:1;min-width:0;display:flex}.brand strong{font-family:Microsoft YaHei UI,Microsoft YaHei,PingFang SC,sans-serif;font-size:21px;font-weight:800;line-height:1.1}.review-title-band strong,.print-header strong{font-family:Microsoft YaHei UI,Microsoft YaHei,PingFang SC,sans-serif;font-weight:800}.brand>div>span{color:#ffffffa8;margin-top:4px;font-size:11px}.sidebar-close{color:#fff!important;background:#ffffff14!important;display:none!important}.portal-switcher{margin:18px 16px 10px;position:relative}.portal-switcher>span{color:#ffffff94;margin:0 7px 7px;font-size:11px;display:block}.portal-current{color:#fff;background:#ffffff14;border:1px solid #ffffff1c;border-radius:6px;justify-content:space-between;align-items:center;width:100%;height:42px;padding:0 11px;display:flex}.portal-current>span{align-items:center;gap:8px;display:flex}.portal-menu{z-index:5;border:1px solid var(--line);width:100%;box-shadow:var(--shadow-md);background:#fff;border-radius:6px;padding:5px;display:none;position:absolute;top:69px;left:0}.portal-switcher:focus-within .portal-menu,.portal-switcher:hover .portal-menu,.portal-switcher.is-open .portal-menu{display:grid}.portal-menu button{color:var(--ink);text-align:left;background:0 0;border-radius:4px;padding:9px 10px}.portal-menu button:hover,.portal-menu button.is-active{color:var(--green-900);background:var(--green-50)}.side-nav{overscroll-behavior:contain;flex-direction:column;flex:1;gap:3px;min-height:0;padding:12px 13px;display:flex;overflow-y:auto}.nav-caption{color:#ffffff85;margin:6px 10px 7px;font-size:11px}.side-nav button{color:#ffffffbd;text-align:left;background:0 0;border-radius:5px;align-items:center;gap:12px;width:100%;height:43px;padding:0 12px;display:flex;position:relative}.side-nav button:hover{color:#fff;background:#ffffff0f}.side-nav button.is-active{color:#fff;background:#ffffff1c}.side-nav button.is-active:before{content:"";background:var(--gold-500);border-radius:0 3px 3px 0;width:3px;height:21px;position:absolute;left:0}.side-nav button span{flex:1}.side-nav button small{color:#fff;background:var(--gold-500);border-radius:10px;place-items:center;min-width:21px;height:21px;padding:0 5px;font-size:11px;display:grid}.sidebar-footer{border-top:1px solid #ffffff17;padding:12px 14px 16px}.sidebar-profile{color:#fff;text-align:left;background:0 0;border-radius:5px;align-items:center;gap:9px;width:100%;padding:7px;display:flex}.sidebar-profile>span{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-profile small{color:#ffffff9e;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.reset-demo{color:#ffffff94;background:0 0;align-items:center;gap:6px;margin:6px 8px 0;font-size:11px;display:flex}.reset-demo:hover{color:#fffc}.sync-indicator,.logout-button{align-items:center;gap:6px;margin:6px 8px 0;font-size:11px;display:flex}.sync-indicator{color:#ffffffa3}.sync-indicator.sync-saving svg{animation:.85s linear infinite session-spin}.sync-indicator.sync-offline,.sync-indicator.sync-error,.sync-indicator.sync-conflict{color:#e8d39e}.logout-button{color:#ffffffa8;background:0 0;padding:4px 0}.logout-button:hover{color:#fff}.login-shell,.session-loading{min-height:100dvh}.login-shell{background:#fff;grid-template-columns:minmax(260px,31vw) minmax(0,1fr);display:grid;position:relative;overflow:hidden}.login-brand{color:#fff;background:var(--green-950);justify-content:center;align-items:center;padding:36px;display:flex}.login-brand>div{flex-direction:column;display:flex}.login-brand strong{font-size:26px;line-height:1.2}.login-brand>div>span{color:#ffffffa8;margin-top:5px}.login-shell>.page-content{place-items:center;min-width:0;padding:54px clamp(28px,7vw,104px);display:grid}.login-shell .content-section{width:min(430px,100%);box-shadow:none;background:0 0;border:0;padding:0}.login-shell .page-header{margin-bottom:28px}.login-shell .page-header h1{font-size:30px}.login-shell .form-grid{gap:16px}.login-shell .field input{background:#fff;height:46px}.login-shell .button-primary{min-height:44px;margin-top:4px}.login-shell>footer{right:24px;bottom:max(18px, env(safe-area-inset-bottom));color:var(--muted);font-size:11px;position:absolute}.session-loading{text-align:center;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:28px;display:flex}.session-brand{color:var(--green-900);margin-bottom:4px;font-size:20px;font-weight:800}.session-loading>strong{font-size:18px}.session-loading>span{color:var(--muted)}.session-loading .session-spinner{color:var(--green-700);margin-top:5px;animation:.85s linear infinite session-spin}@keyframes session-spin{to{transform:rotate(360deg)}}.topbar{z-index:30;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;flex:0 0 64px;justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.topbar-left,.topbar-actions{align-items:center;gap:12px;display:flex}.menu-button{display:none!important}.global-search{width:min(380px,36vw);height:38px;color:var(--muted);background:var(--surface-soft);border:1px solid #0000;border-radius:5px;align-items:center;gap:9px;padding:0 11px;display:flex;position:relative}.global-search:focus-within{border-color:var(--line-strong);background:#fff}.global-search input{background:0 0;border:0;outline:0;flex:1;min-width:0;padding:0}.search-clear{width:26px;height:26px;color:var(--muted);background:0 0;border-radius:4px;flex:none;place-items:center;display:grid}.search-clear:hover{color:var(--ink);background:var(--surface-muted)}.global-search-results{z-index:80;border:1px solid var(--line);width:min(500px,100vw - 32px);max-height:min(480px,100dvh - 90px);box-shadow:var(--shadow-md);background:#fff;border-radius:6px;padding:6px;display:grid;position:absolute;top:43px;left:0;overflow:auto}.global-search-results>button{min-height:52px;color:var(--ink);text-align:left;background:0 0;border-radius:4px;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:8px;padding:8px 10px;display:grid}.global-search-results>button:hover,.global-search-results>button:focus-visible{background:var(--green-50)}.global-search-results>button>svg:first-child{color:var(--green-700)}.global-search-results>button>svg:last-child{color:var(--muted);transform:rotate(-90deg)}.global-search-results span,.global-search-results strong,.global-search-results small{min-width:0;display:block}.global-search-results strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.global-search-results small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;overflow:hidden}.global-search-empty{color:var(--muted);text-align:center;padding:18px 12px;font-size:12px}.role-quick-switch{background:var(--surface-muted);border-radius:5px;align-items:center;height:34px;padding:3px;display:flex}.role-quick-switch button{height:28px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:3px;padding:0 10px;font-size:12px;font-weight:700}.role-quick-switch button.is-active{color:var(--green-900);border-color:var(--green-100);box-shadow:var(--shadow-sm);background:#fff}.notification-button,.notification-wrap{position:relative}.notification-button>span{color:#fff;background:var(--blue-700);border:2px solid #fff;border-radius:9px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:9px;font-weight:800;line-height:1;display:grid;position:absolute;top:1px;right:0}.notification-panel{z-index:80;border:1px solid var(--line);width:min(390px,100vw - 24px);box-shadow:var(--shadow-md);background:#fff;border-radius:6px;position:absolute;top:44px;right:0;overflow:hidden}.notification-panel>header{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;min-height:50px;padding:0 14px;display:flex}.notification-panel>header>span{gap:2px;display:grid}.notification-panel>header strong{font-size:14px}.notification-panel>header small{color:var(--muted);font-size:11px;display:block}.notification-read-all{min-height:30px;color:var(--blue-700);background:var(--blue-50);border-radius:4px;padding:0 8px;font-size:11px;font-weight:700}.notification-read-all:hover{background:var(--blue-100)}.notification-panel>div{max-height:min(520px,100dvh - 120px);padding:6px;display:grid;overflow:auto}.notification-section-title{min-height:32px;color:var(--ink-soft);border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:5px 10px;font-size:11px;display:flex}.notification-section-title>span{color:var(--muted);font-size:10px}.notification-section-title-history{border-top:1px solid var(--line);margin-top:5px}.notification-item,.notification-request>button{width:100%;min-height:56px;color:var(--ink);text-align:left;background:0 0;border-radius:4px;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:8px;padding:8px 10px;display:grid}.notification-item:hover,.notification-request>button:hover{background:var(--green-50)}.notification-item>svg:first-child{color:var(--green-700)}.notification-item>svg:last-child{color:var(--muted);transform:rotate(-90deg)}.notification-item span,.notification-item strong,.notification-item small,.notification-request strong,.notification-request small{min-width:0;display:block}.notification-item strong,.notification-request strong{font-size:13px}.notification-item small,.notification-request small{color:var(--muted);margin-top:2px;font-size:11px}.notification-activity{border-bottom:1px solid var(--line-soft);align-items:start;min-height:68px}.notification-activity.is-unread{background:var(--blue-50)}.notification-activity.is-read{color:var(--ink-soft)}.notification-activity-mark{background:var(--blue-700);border-radius:50%;width:7px;height:7px;margin:7px auto 0}.notification-activity.is-read .notification-activity-mark{background:var(--line)}.notification-activity time{color:var(--ink-400);margin-top:5px;font-size:10px;display:block}.notification-request{border-bottom:1px solid var(--line-soft);padding:3px 0 9px}.notification-request>button{grid-template-columns:1fr}.notification-request>span{justify-content:flex-end;gap:6px;padding:0 10px;display:flex}.notification-empty{min-height:130px;color:var(--muted);align-content:center;place-items:center;gap:8px;font-size:12px;display:grid}.notification-empty svg{color:var(--green-700)}.page-content{flex:1;width:100%;min-width:0;max-width:1560px;min-height:0;margin:0 auto;padding:30px 30px 48px}.portal-loading{min-height:max(360px,100dvh - 190px);color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:9px;display:flex}.portal-loading strong{color:var(--ink)}.portal-loading-spinner{color:var(--green-700);animation:.85s linear infinite session-spin}.system-copyright{color:var(--ink-400);text-align:center;flex:none;padding:0 24px 24px;font-size:11px}.page-header{justify-content:space-between;align-items:flex-end;gap:24px;min-height:66px;margin-bottom:23px;display:flex}.page-header h1,.student-page-header h1{color:var(--ink);font-size:25px;font-weight:750;line-height:1.25}.page-header p,.student-page-header p{max-width:760px;color:var(--muted);margin-top:6px;font-size:13px}.page-eyebrow,.student-page-header__eyebrow{color:var(--green-700);margin-bottom:5px;font-size:11px;font-weight:700}.page-actions,.button-group{flex:none;align-items:center;gap:8px;display:flex}.button{white-space:nowrap;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:7px;height:38px;padding:0 14px;font-weight:650;transition:background .14s,border-color .14s,box-shadow .14s;display:inline-flex}.button-sm{height:31px;padding:0 9px;font-size:12px}.button-primary{color:#fff;background:var(--green-900);border-color:var(--green-900)}.button-primary:not(:disabled):hover{background:var(--green-700);border-color:var(--green-700)}.button-secondary{color:var(--ink-soft);border-color:var(--line-strong);background:#fff}.button-secondary:not(:disabled):hover{background:var(--surface-soft);border-color:var(--subtle)}.button-ghost,.button-danger-ghost{height:auto;color:var(--green-700);background:0 0;padding:6px}.button-danger-ghost{color:var(--red-700)}.button-ghost:not(:disabled):hover,.button-danger-ghost:not(:disabled):hover{background:var(--surface-soft)}.icon-button{width:36px;height:36px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:5px;flex:none;place-items:center;padding:0;display:inline-grid}.icon-button:not(:disabled):hover{color:var(--ink);background:var(--surface-soft);border-color:var(--line)}.badge{width:max-content;min-height:23px;color:var(--ink-soft);background:var(--surface-muted);white-space:nowrap;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:6px;padding:2px 8px;font-size:11px;font-weight:650;display:inline-flex}.badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge-success{color:var(--green-900);background:var(--green-50);border-color:var(--green-100)}.badge-warning{color:var(--gold-700);background:var(--gold-50);border-color:var(--gold-100)}.badge-danger{color:var(--red-700);background:var(--red-50);border-color:var(--red-100)}.badge-info{color:var(--blue-700);background:var(--blue-50);border-color:var(--blue-100)}.badge-coral{color:var(--coral-700);background:var(--coral-50);border-color:var(--coral-100)}.course-badge,.student-course-badge{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:650;display:inline-flex}.course-badge-mark{border-radius:4px;place-items:center;width:25px;height:25px;display:inline-grid}.course-emerald .course-badge-mark,.student-course-badge--emerald{color:var(--green-700);background:var(--green-50)}.course-blue .course-badge-mark,.student-course-badge--blue{color:var(--blue-700);background:var(--blue-50)}.course-coral .course-badge-mark,.student-course-badge--coral{color:var(--coral-700);background:var(--coral-50)}.course-gold .course-badge-mark,.student-course-badge--gold{color:var(--gold-700);background:var(--gold-50)}.segmented,.student-segmented-control{background:var(--surface-muted);border-radius:5px;align-items:center;height:34px;padding:3px;display:inline-flex}.segmented button,.student-segmented-control button{height:28px;color:var(--muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.segmented button.is-active,.student-segmented-control button.is-selected{color:var(--green-900);border-color:var(--green-100);box-shadow:var(--shadow-sm);background:#fff}.search-field{width:min(340px,100%);height:38px;color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:5px;align-items:center;gap:8px;padding:0 11px;display:flex}.search-field input{background:0 0;border:0;outline:0;width:100%;min-width:0;padding:0}.select-field{flex-direction:column;gap:5px;display:inline-flex}.select-control{align-items:center;display:flex;position:relative}.select-control select{appearance:none;border:1px solid var(--line);background:#fff;border-radius:5px;min-width:130px;height:36px;padding:0 31px 0 10px}.select-control svg{pointer-events:none;position:absolute;right:9px}.progress-wrap{width:100%}.progress-track{background:var(--surface-muted);border-radius:3px;width:100%;height:5px;overflow:hidden}.progress-fill{border-radius:inherit;height:100%;display:block}.progress-emerald{background:var(--green-700)}.progress-coral{background:var(--coral-500)}.progress-gold{background:var(--gold-500)}.progress-blue{background:var(--blue-700)}.surface,.content-section,.student-section{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:7px}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:59px;padding:15px 18px;display:flex}.section-heading h2,.section-heading h3{font-size:15px;font-weight:720}.section-heading p{color:var(--muted);margin-top:3px;font-size:11px}.section-heading-copy{align-items:center;gap:10px;display:flex}.section-heading-icon{width:34px;height:34px;color:var(--green-700);background:var(--green-50);border-radius:5px;place-items:center;display:grid}.section-heading-actions{align-items:center;gap:8px;display:flex}.alert-strip{min-height:58px;color:var(--gold-700);background:var(--surface-soft);border:1px solid var(--gold-100);border-left:3px solid var(--gold-500);border-radius:6px;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;display:flex}.alert-strip-icon{width:34px;height:34px;color:var(--gold-700);background:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.alert-strip>div{flex-direction:column;flex:1;min-width:0;display:flex}.alert-strip>div span{color:var(--gold-700);font-size:12px}.alert-strip button{color:var(--gold-700);white-space:nowrap;background:0 0;align-items:center;gap:5px;font-weight:700;display:flex}.stat-grid,.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:15px;display:grid}.stat-card,.metric-card{border:1px solid var(--line);min-width:0;min-height:132px;box-shadow:var(--shadow-sm);background:#fff;border-radius:7px;padding:17px;position:relative;overflow:hidden}.stat-card:after,.metric-card:after{content:"";width:44px;height:3px;position:absolute;bottom:0;right:0}.stat-emerald:after,.metric-emerald:after{background:var(--green-700)}.stat-blue:after,.metric-blue:after{background:var(--blue-700)}.stat-coral:after,.metric-coral:after{background:var(--coral-500)}.stat-gold:after,.metric-gold:after{background:var(--gold-500)}.stat-card-head{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.stat-card-head svg{color:var(--subtle)}.stat-emerald .stat-card-head svg{color:var(--green-700)}.stat-blue .stat-card-head svg{color:var(--blue-700)}.stat-coral .stat-card-head svg{color:var(--coral-500)}.stat-gold .stat-card-head svg{color:var(--gold-500)}.stat-card-button{width:100%;color:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.stat-card-button:not(:disabled):hover{border-color:var(--blue-500);box-shadow:var(--shadow-md)}.stat-card-button:focus-visible{border-color:var(--blue-700);box-shadow:0 0 0 3px var(--focus-halo);outline:0}.stat-value{margin-top:9px;font-size:30px;font-weight:760;line-height:1.15}.stat-value small{color:var(--muted);margin-left:5px;font-size:12px;font-weight:500}.stat-note,.metric-hint{color:var(--muted);margin-top:6px;font-size:11px}.metric-card{align-items:flex-start;gap:12px;min-height:104px;display:flex}.metric-icon{width:36px;height:36px;color:var(--green-700);background:var(--green-50);border-radius:5px;flex:none;place-items:center;display:grid}.metric-coral .metric-icon{color:var(--coral-700);background:var(--coral-50)}.metric-blue .metric-icon{color:var(--blue-700);background:var(--blue-50)}.metric-gold .metric-icon{color:var(--gold-700);background:var(--gold-50)}.metric-copy{flex-direction:column;display:flex}.metric-copy strong{order:-1;font-size:25px;line-height:1.2}.metric-card.is-clickable{width:100%;color:inherit;text-align:left;transition:border-color .15s,box-shadow .15s,background .15s}.metric-card.is-clickable:hover{background:var(--surface-soft);border-color:var(--green-700);box-shadow:0 3px 12px #2021241a}.metric-entry-icon{color:var(--subtle);position:absolute;top:15px;right:13px}.metric-label{color:var(--muted);margin-top:2px;font-size:12px}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(330px,.7fr);gap:15px;margin-bottom:15px;display:grid}.timeline-list,.attention-list{flex-direction:column;display:flex}.timeline-row{border-bottom:1px solid var(--line-soft);grid-template-columns:58px 28px minmax(150px,1fr) auto 32px;align-items:center;gap:12px;min-height:67px;padding:9px 16px;display:grid}.timeline-row:last-child{border-bottom:0}.timeline-row.is-in_progress{background:var(--surface-soft)}.timeline-time{flex-direction:column;display:flex}.timeline-time strong{font-size:13px}.timeline-time span{color:var(--subtle);font-size:10px}.timeline-main{flex-direction:column;min-width:0;display:flex}.timeline-main strong,.timeline-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.timeline-main span{color:var(--muted);font-size:11px}.attention-item{text-align:left;border-bottom:1px solid var(--line-soft);background:0 0;grid-template-columns:37px 1fr 18px;align-items:center;gap:10px;min-height:68px;padding:10px 15px;display:grid}.attention-item:last-child{border-bottom:0}.attention-item:hover{background:var(--surface-soft)}.attention-icon,.rights-icon{border-radius:5px;place-items:center;width:34px;height:34px;display:grid}.attention-icon.warning,.rights-icon.gold{color:var(--gold-700);background:var(--gold-50)}.attention-icon.coral,.rights-icon.coral{color:var(--coral-700);background:var(--coral-50)}.rights-icon.emerald{color:var(--green-700);background:var(--green-50)}.rights-icon.blue{color:var(--blue-700);background:var(--blue-50)}.attention-item>span:nth-child(2){flex-direction:column;min-width:0;display:flex}.attention-item strong,.attention-item small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attention-item small{color:var(--muted);font-size:11px}.rights-overview{margin-bottom:10px}.rights-summary-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0;padding:16px 0;display:grid}.rights-summary-item{border-right:1px solid var(--line);grid-template-columns:38px 1fr;align-items:center;gap:9px 12px;padding:4px 20px;display:grid}.rights-summary-item:last-child{border-right:0}.rights-summary-item .progress-wrap{grid-column:2}.rights-summary-item>div{flex-direction:column;display:flex}.rights-summary-item span{color:var(--muted);font-size:11px}.rights-summary-item strong{font-size:18px}.rights-summary-item strong small{color:var(--muted);font-size:11px;font-weight:500}.rights-summary-item .rights-summary-detail{color:var(--muted);margin-top:2px;font-size:10px}.list-surface{overflow:hidden}.list-toolbar,.standalone-toolbar,.calendar-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:64px;padding:12px 16px;display:flex}.standalone-toolbar{border:0;min-height:auto;margin-bottom:14px;padding:0}.list-toolbar .search-field{margin-right:auto}.toolbar-count{color:var(--muted);margin-left:auto;font-size:12px}.restore-blocked-note{color:var(--coral-700);font-weight:700}.archive-filter-toolbar{background:var(--surface);border:1px solid var(--line);border-radius:6px;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;display:flex}.archive-filter-toolbar>span{color:var(--muted);flex:none;font-size:11px;font-weight:700}.archive-filter-toolbar .segmented{flex:1;min-width:0;max-width:100%;overflow-x:auto}.data-table{width:100%}.data-table-head,.data-table-row{align-items:center;gap:16px;padding:0 17px;display:grid}.data-table-head{min-height:40px;color:var(--muted);background:var(--surface-soft);border-bottom:1px solid var(--line);font-size:11px}.data-table-row{text-align:left;border-bottom:1px solid var(--line-soft);background:#fff;width:100%;min-height:72px}.data-table-row[role=button]{cursor:pointer}.data-table-row[role=button]:hover{background:var(--surface-soft)}.data-table-row[role=button]:focus-visible{z-index:1;outline:3px solid var(--focus-ring);outline-offset:-3px;position:relative}.data-table-row:last-child{border-bottom:0}.member-table .data-table-head,.member-table .data-table-row{grid-template-columns:minmax(230px,1.3fr) minmax(180px,1fr) minmax(145px,.8fr) minmax(130px,.7fr) minmax(110px,.6fr) 20px}.table-person,.teacher-cell{align-items:center;gap:10px;min-width:0;display:flex}.table-person>span{flex-direction:column;min-width:0;display:flex}.table-person strong,.table-person small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.table-person small,.validity-cell small{color:var(--muted);font-size:11px}.member-service-cell{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.member-service-cell>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.member-service-cell>small{color:var(--muted);font-size:10px}.entitlement-mini{flex-direction:column;gap:3px;display:flex}.entitlement-mini small{color:var(--muted);font-size:10px}.validity-cell{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.mobile-cell-label{display:none}.table-footer{min-height:49px;color:var(--muted);background:var(--surface-soft);border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:7px 16px;font-size:11px;display:flex}.empty-state,.student-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:220px;padding:30px;display:flex}.empty-icon,.student-empty-state__icon{width:48px;height:48px;color:var(--green-700);background:var(--green-50);border-radius:50%;place-items:center;margin-bottom:10px;display:grid}.empty-state h3,.student-empty-state h3{font-size:15px}.empty-state p,.student-empty-state p{color:var(--muted);margin-top:4px;font-size:12px}.teacher-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.teacher-card{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-sm);background:#fff;border-radius:7px;padding:17px}.teacher-card-top{align-items:center;gap:11px;display:flex}.teacher-card-top>div{flex:1;min-width:0}.teacher-card-top h2{font-size:16px}.teacher-card-top p{color:var(--muted);font-size:11px}.teacher-tags,.profile-course-tags,.student-course-tags{flex-wrap:wrap;gap:10px;margin:15px 0;display:flex}.teacher-metrics{background:var(--surface-soft);border-radius:5px;grid-template-columns:repeat(3,1fr);margin-bottom:12px;padding:11px 0;display:grid}.teacher-metrics>div{border-right:1px solid var(--line);flex-direction:column;align-items:center;display:flex}.teacher-metrics>div:last-child{border-right:0}.teacher-metrics strong{font-size:18px}.teacher-metrics span{color:var(--muted);font-size:10px}.teacher-card-footer{color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:13px;padding-top:10px;font-size:11px;display:flex}.teacher-card-footer>span{align-items:center;gap:5px;display:flex}.teacher-card-actions{align-items:center;gap:5px;margin-left:auto;display:flex}.teacher-availability-console{margin-bottom:15px;padding:17px}.teacher-availability-controls{background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;grid-template-columns:minmax(170px,1fr) repeat(2,minmax(145px,.72fr)) auto;align-items:end;gap:10px;padding:14px;display:grid}.teacher-availability-bulk-actions{align-items:center;gap:7px;display:flex}.teacher-availability-bulk-actions .button{white-space:nowrap;height:40px}.teacher-availability-bulk-actions .teacher-availability-bulk-open,.teacher-availability-bulk-actions .teacher-availability-bulk-locked{color:var(--ink-soft);border-color:var(--line);background:#fff}.teacher-availability-bulk-actions .teacher-availability-bulk-open:hover:not(:disabled):not(.is-active),.teacher-availability-bulk-actions .teacher-availability-bulk-locked:hover:not(:disabled):not(.is-active){color:var(--ink);background:var(--surface-soft);border-color:var(--line-strong)}.teacher-availability-bulk-actions .teacher-availability-bulk-open.is-active{color:var(--blue-700);background:var(--blue-50);border-color:var(--blue-700)}.teacher-availability-bulk-actions .teacher-availability-bulk-open.is-active:hover:not(:disabled){background:var(--blue-100)}.teacher-availability-bulk-actions .teacher-availability-bulk-locked.is-active{color:var(--gold-700);background:var(--gold-100);border-color:var(--gold-700)}.teacher-availability-bulk-actions .teacher-availability-bulk-locked.is-active:hover:not(:disabled){background:#d9d3c8}.teacher-availability-bulk-actions .teacher-availability-bulk-open:disabled,.teacher-availability-bulk-actions .teacher-availability-bulk-locked:disabled{opacity:.72}.teacher-availability-statusbar{justify-content:space-between;align-items:center;gap:12px;min-height:38px;margin-top:7px;display:flex}.teacher-availability-range{min-width:0;color:var(--ink-soft);align-items:center;gap:6px;font-size:10px;display:flex}.teacher-availability-range.has-error{color:var(--red-700)}.teacher-availability-error{color:var(--red-700);align-items:center;gap:7px;margin-top:10px;font-size:11px;display:flex}.teacher-availability-legend{color:var(--muted);justify-content:flex-end;align-items:center;gap:14px;margin:0 1px;font-size:10px;display:flex}.teacher-availability-legend span{align-items:center;gap:5px;display:inline-flex}.teacher-availability-legend i{border-radius:2px;width:8px;height:8px}.teacher-availability-legend .is-open{background:var(--green-700)}.teacher-availability-legend .is-closed{background:var(--coral-500)}.teacher-availability-legend .is-locked{background:var(--line-strong)}.teacher-availability-legend .is-mixed{background:var(--blue-700)}.teacher-availability-legend .is-occupied{background:var(--gold-500)}.teacher-availability-result{color:var(--green-900);background:var(--green-50);border:1px solid var(--green-100);border-radius:5px;align-items:flex-start;gap:8px;margin:0 0 9px;padding:9px 11px;display:flex}.teacher-availability-result>span{flex-direction:column;min-width:0;display:flex}.teacher-availability-result strong{font-size:11px}.teacher-availability-result small{color:var(--muted);overflow-wrap:anywhere;font-size:9px}.teacher-availability-result.is-running{color:var(--blue-700);background:var(--blue-50);border-color:var(--blue-100)}.teacher-availability-result.is-running>svg{animation:.9s linear infinite teacher-availability-spin}.teacher-availability-result.has-failures{color:var(--red-700);background:var(--red-50);border-color:var(--red-100)}@keyframes teacher-availability-spin{to{transform:rotate(360deg)}}.teacher-availability-slots{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px;display:grid}.teacher-availability-slot{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:5px;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0;height:70px;padding:8px 9px;display:flex}.teacher-availability-slot strong{font-size:12px}.teacher-availability-slot span,.teacher-availability-slot small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;overflow:hidden}.teacher-availability-slot.is-open{color:var(--green-900);background:var(--green-50);border-color:var(--green-100)}.teacher-availability-slot.is-open:not(:disabled):hover{border-color:var(--green-700)}.teacher-availability-slot.is-closed{color:var(--coral-700);background:var(--coral-50);border-color:var(--coral-100)}.teacher-availability-slot.is-closed:not(:disabled):hover{border-color:var(--coral-500)}.teacher-availability-slot.is-locked{color:var(--ink-soft);background:var(--surface-muted);border-color:var(--line-strong)}.teacher-availability-slot.is-locked:not(:disabled):hover{color:var(--ink);border-color:var(--ink-400)}.teacher-availability-slot.is-mixed{color:var(--blue-700);background:var(--blue-50);border-color:var(--blue-100)}.teacher-availability-slot.is-mixed:not(:disabled):hover{border-color:var(--blue-700)}.teacher-availability-slot.is-occupied{color:var(--gold-700);background:var(--gold-50);border-color:var(--gold-100)}.teacher-availability-slot.is-occupied:disabled{cursor:not-allowed;opacity:1}.teacher-availability-slot.is-occupied small{color:var(--muted)}.teacher-availability-empty{color:var(--muted);text-align:center;grid-column:1/-1;padding:20px}.teacher-availability-overview{border-top:1px solid var(--line);margin-top:15px}.teacher-availability-overview-head{min-height:43px;color:var(--ink-soft);cursor:default;justify-content:space-between;align-items:center;gap:12px;font-size:11px;display:flex}.teacher-availability-overview-meta{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.teacher-availability-overview-meta>span{color:var(--muted);font-size:10px}.teacher-availability-overview-meta>small{color:var(--subtle);font-size:9px}.teacher-availability-overview-list{border:1px solid var(--line);border-radius:6px}.teacher-availability-overview-list>button{text-align:left;background:var(--surface);border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(150px,1fr) minmax(220px,1.6fr) minmax(86px,.55fr) minmax(86px,.55fr) auto;align-items:center;gap:12px;width:100%;min-height:58px;padding:8px 12px;display:grid}.teacher-availability-overview-list>button:first-child{border-radius:5px 5px 0 0}.teacher-availability-overview-list>button:last-child{border-bottom:0;border-radius:0 0 5px 5px}.teacher-availability-overview-list>button:hover{background:var(--green-50)}.teacher-availability-overview-list>button>span:not(.teacher-availability-person){flex-direction:column;min-width:0;display:flex}.teacher-availability-overview-list small{color:var(--muted);font-size:9px}.teacher-availability-overview-list strong{overflow-wrap:anywhere;font-size:11px}.teacher-availability-person{align-items:center;gap:9px;min-width:0;display:flex}.theory-slot-console{margin-bottom:15px;padding:17px}.theory-slot-form{background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;grid-template-columns:repeat(4,minmax(120px,1fr)) auto;align-items:end;gap:10px;padding:14px;display:grid}.theory-slot-form>.button{white-space:nowrap;height:40px}.theory-slot-error{color:var(--red-700);align-items:center;gap:7px;margin-top:10px;font-size:11px;display:flex}.theory-slot-list{gap:7px;margin-top:12px;display:grid}.theory-slot-list>article{border:1px solid var(--line-soft);border-radius:5px;grid-template-columns:minmax(150px,1fr) minmax(130px,.8fr) auto minmax(94px,auto);align-items:center;gap:12px;min-height:54px;padding:8px 10px;display:grid}.theory-slot-list>article>span:not(.badge){flex-direction:column;display:flex}.theory-slot-list>article small{color:var(--muted);font-size:10px}.theory-slot-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.theory-slot-actions>.muted{white-space:nowrap;padding:0 4px;font-size:10px}.calendar-surface{overflow:hidden}.calendar-toolbar{justify-content:space-between}.week-switcher{align-items:center;gap:5px;display:flex}.week-title{background:0 0;justify-content:center;align-items:center;gap:7px;min-width:220px;height:36px;font-weight:700;display:flex}.week-title small{color:var(--green-700);background:var(--green-50);border-radius:3px;padding:2px 5px;font-size:10px}.week-calendar{grid-template-columns:repeat(7,minmax(125px,1fr));min-height:530px;display:grid;overflow-x:auto}.calendar-day{border-right:1px solid var(--line);min-width:125px}.calendar-day:last-child{border-right:0}.calendar-day.is-today{background:var(--green-50)}.calendar-day>header{border-bottom:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;height:73px;display:flex}.calendar-day>header span{color:var(--muted);font-size:10px}.calendar-day>header strong{border-radius:50%;place-items:center;width:27px;height:27px;margin:2px 0;font-size:14px;display:grid}.calendar-day.is-today>header strong{color:#fff;background:var(--green-700)}.calendar-day>header small{color:var(--subtle);font-size:9px}.calendar-day-body{flex-direction:column;gap:7px;min-height:455px;padding:8px;display:flex}.lesson-block{min-height:86px;color:var(--ink);text-align:left;background:var(--surface-soft);border:1px solid var(--line);border-left:3px solid var(--green-700);border-radius:5px;flex-direction:column;gap:3px;padding:9px;display:flex;position:relative;overflow:hidden}.lesson-block:hover{box-shadow:0 5px 14px #0000001a}.lesson-emerald{background:var(--green-50);border-color:var(--green-100);border-left-color:var(--green-700)}.lesson-blue{background:var(--blue-50);border-color:var(--blue-100);border-left-color:var(--blue-700)}.lesson-coral{background:var(--coral-50);border-color:var(--coral-100);border-left-color:var(--coral-500)}.lesson-gold{background:var(--surface-soft);border-color:var(--gold-100);border-left-color:var(--gold-500)}.lesson-block-head{justify-content:space-between;align-items:center;gap:5px;min-width:0;padding-right:9px;display:flex}.lesson-time{color:var(--muted);font-size:10px}.lesson-course-type{color:var(--ink-soft);background:#ffffffbd;border:1px solid;border-radius:3px;flex:none;padding:1px 4px;font-size:9px;font-weight:700;line-height:1.35}.lesson-block strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.lesson-block small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.lesson-block-status{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.lesson-block-status small,.lesson-block .lesson-block-quota{overflow-wrap:anywhere;text-overflow:clip;white-space:normal;max-width:100%;line-height:1.35;overflow:visible}.lesson-block-outcome{font-weight:700}.lesson-block-outcome.is-danger{color:var(--red-700)}.lesson-block-outcome.is-warning{color:var(--gold-700)}.lesson-block-outcome.is-success{color:var(--green-700)}.lesson-block-context{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.lesson-block-lock{border:1px solid;border-radius:3px;flex:none;align-items:center;padding:1px 4px;font-weight:700;display:inline-flex}.lesson-block-lock.is-locked{color:var(--green-700)}.lesson-block-lock.is-unlocked,.lesson-block-lock.is-released{color:var(--gold-700)}.lesson-block-lock.is-pending{color:var(--muted)}.lesson-status-dot{background:var(--green-700);border-radius:50%;width:6px;height:6px;position:absolute;top:8px;right:8px}.lesson-status-dot.is-info{background:var(--blue-700)}.lesson-status-dot.is-warning{background:var(--gold-500)}.lesson-status-dot.is-danger{background:var(--red-500)}.lesson-status-dot.is-neutral{background:var(--coral-500)}.calendar-empty{color:var(--subtle);margin:auto;font-size:10px}.record-tabs{border-bottom:1px solid var(--line);align-items:flex-end;gap:24px;min-height:53px;padding:0 18px;display:flex}.record-tabs button{height:52px;color:var(--muted);background:0 0;align-items:center;gap:7px;display:flex;position:relative}.record-tabs button.is-active{color:var(--green-900);font-weight:700}.record-tabs button.is-active:after{content:"";background:var(--green-700);height:2px;position:absolute;bottom:-1px;left:0;right:0}.record-tabs button span{min-width:20px;height:20px;color:var(--muted);background:var(--surface-muted);border-radius:10px;place-items:center;padding:0 5px;font-size:10px;display:grid}.record-tabs.attendance-subject-tabs{background:var(--surface);border:1px solid var(--line);width:100%;min-height:46px;box-shadow:var(--shadow-sm);scrollbar-width:none;border-radius:6px;align-items:center;gap:4px;margin-bottom:16px;padding:4px;overflow-x:auto}.record-tabs.attendance-subject-tabs::-webkit-scrollbar{display:none}.record-tabs.attendance-subject-tabs button{border-radius:4px;flex:none;height:36px;padding:0 13px}.record-tabs.attendance-subject-tabs button.is-active{background:var(--green-50)}.record-tabs.attendance-subject-tabs button.is-active:after{display:none}.record-list{flex-direction:column;display:flex}.record-row{border-bottom:1px solid var(--line-soft);grid-template-columns:40px minmax(240px,1.4fr) minmax(190px,.8fr) auto minmax(90px,auto);align-items:center;gap:13px;min-height:77px;padding:10px 17px;display:grid}.record-row:last-child{border-bottom:0}.record-type-icon{width:38px;height:38px;color:var(--green-700);background:var(--green-50);border-radius:5px;place-items:center;display:grid}.record-type-icon.practice{color:var(--coral-700);background:var(--coral-50)}.record-primary{flex-direction:column;min-width:0;display:flex}.record-primary strong,.record-primary span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.record-primary span{color:var(--muted);font-size:11px}.signature-progress{color:var(--subtle);justify-content:center;align-items:center;gap:7px;display:flex}.signature-progress span{align-items:center;gap:4px;font-size:10px;display:flex}.signature-progress span.is-done{color:var(--green-700)}.signature-progress i{background:var(--line-strong);width:24px;height:1px}.row-actions{justify-content:flex-end;align-items:center;display:flex}.completion-cell{color:var(--muted);flex-direction:column;gap:5px;font-size:10px;display:flex}.entitlement-cards{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:12px;margin-bottom:15px;display:grid}.entitlement-card{text-align:left;border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-sm);background:#fff;border-radius:7px;padding:14px}.entitlement-card:hover{border-color:var(--line-strong)}.entitlement-card-head{justify-content:space-between;align-items:center;display:flex}.entitlement-card-head>span{align-items:center;gap:8px;display:flex}.entitlement-balance{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:13px 0 10px;display:grid}.entitlement-balance>span{flex-direction:column;display:flex}.entitlement-balance small{color:var(--muted);font-size:10px}.entitlement-balance strong{overflow-wrap:anywhere;min-width:0;margin-top:1px;font-size:20px}.entitlement-balance i{color:var(--muted);font-size:10px;font-style:normal;font-weight:500}.entitlement-balance .entitlement-balance-state{color:var(--green-700);overflow-wrap:anywhere;margin-top:2px;font-weight:700}.entitlement-balance .entitlement-balance-state.state-not_open,.entitlement-balance .entitlement-balance-state.state-paused,.entitlement-balance .entitlement-balance-state.state-exhausted{color:var(--red-700)}.entitlement-balance .entitlement-balance-state.state-reserved,.entitlement-balance .entitlement-balance-state.state-partly_reserved{color:var(--blue-700)}.entitlement-validity{border-top:1px solid var(--line);text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:8px;padding-top:9px;display:grid}.entitlement-validity>svg{color:var(--blue-700)}.entitlement-validity>span{align-items:baseline;gap:6px;min-width:0;display:flex}.entitlement-validity small{color:var(--muted);font-size:10px}.entitlement-validity strong{font-size:11px}.entitlement-validity>small:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reserved-line{min-height:28px;color:var(--blue-700);background:var(--blue-50);border-radius:4px;align-items:center;gap:6px;padding:6px 8px;font-size:10px;display:flex}.entitlement-booking-restriction{width:100%;min-width:0;color:var(--gold-700);white-space:normal;overflow-wrap:anywhere;background:var(--gold-50);border:1px solid var(--gold-100);border-radius:4px;align-items:flex-start;gap:7px;margin:8px 0;padding:7px 8px;font-size:10px;line-height:1.4;display:flex}.entitlement-booking-restriction>svg{flex:none;margin-top:1px}.entitlement-booking-restriction>span{flex-direction:column;gap:1px;min-width:0;display:flex}.entitlement-booking-restriction strong{font-size:inherit}.entitlement-booking-restriction small{color:inherit;font-size:inherit}.entitlement-booking-restriction--inline{align-items:center;margin:2px 0 0}.ledger-table .data-table-head,.ledger-table .data-table-row{grid-template-columns:135px 100px 120px 80px 100px minmax(200px,1fr)}.data-table-row.static>span{flex-direction:column;align-items:flex-start;display:flex}.data-table-row.static>span small{color:var(--subtle);font-size:9px}.amount-negative{color:var(--red-700);font-weight:700}.amount-positive{color:var(--green-700);font-weight:700}.settings-layout{grid-template-columns:205px minmax(0,1fr);align-items:start;gap:15px;display:grid}.settings-nav{border:1px solid var(--line);background:#fff;border-radius:7px;flex-direction:column;gap:3px;padding:6px;display:flex}.settings-nav button{height:40px;color:var(--muted);text-align:left;background:0 0;border-radius:4px;align-items:center;gap:9px;padding:0 10px;display:flex}.settings-nav button.is-active{color:var(--green-900);background:var(--green-50);font-weight:700}.settings-panel{overflow:hidden}.settings-error{color:var(--red-700);background:var(--red-50);border:1px solid var(--red-100);border-radius:5px;align-items:center;gap:9px;margin:14px 20px 0;padding:10px 12px;display:flex}.settings-error>span{flex-direction:column;display:flex}.settings-error small{font-size:11px}.settings-section{border-bottom:1px solid var(--line);padding:20px}.settings-section:last-child{border-bottom:0}.settings-section h2{font-size:16px}.settings-section>p{color:var(--muted);margin-top:4px;font-size:12px}.rule-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.rule-grid article{background:var(--surface-soft);border:1px solid var(--line);border-radius:5px;flex-direction:column;gap:7px;min-height:112px;padding:13px;display:flex}.rule-grid article strong{margin-top:4px}.rule-grid article>span:last-child{color:var(--muted);overflow-wrap:anywhere;font-size:11px}.setting-row{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:20px;min-height:65px;margin-top:12px;padding:10px 0;display:flex}.setting-row>span{flex-direction:column;display:flex}.setting-row small{color:var(--muted);font-size:11px}.toggle{background:var(--line-strong);width:40px;height:23px;box-shadow:inset 0 0 0 1px var(--ink-400);border-radius:12px;flex:0 0 40px;align-items:center;padding:2px;display:flex}.toggle i{background:#fff;border-radius:50%;width:19px;height:19px;transition:transform .15s;box-shadow:0 1px 3px #0003}.toggle.is-on{background:var(--green-700);box-shadow:inset 0 0 0 1px var(--green-900)}.toggle.is-on i{transform:translate(17px)}.number-control{border:1px solid var(--line);background:#fff;border-radius:5px;align-items:center;height:35px;display:flex;overflow:hidden}.number-control input{text-align:right;border:0;outline:0;width:58px;height:100%;padding:0 8px}.number-control span{color:var(--muted);padding-right:9px;font-size:11px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--ink-soft);font-size:11px;font-weight:700}.field input,.field select,.field textarea{width:100%;min-width:0;max-width:100%;border:1px solid var(--line-strong);background:#fff;border-radius:5px;outline:0;min-inline-size:0;max-inline-size:100%}.field input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}.field input[type=time]::-webkit-date-and-time-value{text-align:left;min-width:0}.field input,.field select{height:40px;padding:0 10px}.field textarea{resize:vertical;min-height:86px;padding:10px;line-height:1.65}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-700);box-shadow:0 0 0 3px var(--focus-halo)}.field input[readonly],.field textarea[readonly],.field select:disabled{color:var(--ink-soft);background:var(--surface-soft);border-color:var(--line)}.field-hint,.field-error{color:var(--muted);font-size:10px}.field-error{color:var(--red-700)}.field.has-error input,.field.has-error select{border-color:var(--red-500)}.form-grid,.review-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.form-grid>*,.review-fields>*,.teacher-availability-controls>*,.theory-slot-form>*{min-width:0;max-width:100%}.span-2{grid-column:1/-1}.form-summary{color:var(--green-900);background:var(--green-50);border:1px solid var(--green-100);border-radius:5px;align-items:flex-start;gap:10px;padding:12px;display:flex}.form-summary>div,.info-callout>span{flex-direction:column;display:flex}.form-summary span,.info-callout small{color:var(--muted);font-size:11px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14141480;place-items:center;padding:22px;animation:.13s ease-out fade-in;display:grid;position:fixed;inset:0}.modal{background:#fff;border:1px solid #ffffff6b;border-radius:8px;flex-direction:column;width:min(560px,100%);max-height:calc(100dvh - 44px);animation:.17s ease-out modal-enter;display:flex;overflow:hidden;box-shadow:0 24px 70px #0000003d}.modal-lg{width:min(760px,100%)}.modal-xl{width:min(980px,100%)}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;min-height:67px;padding:14px 18px;display:flex}.modal-header h2{font-size:18px;line-height:1.3}.modal-header p{color:var(--muted);margin-top:3px;font-size:11px}.modal-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:20px;overflow-y:auto}.modal-xl .modal-body{padding:0}.modal-footer{background:var(--surface-soft);border-top:1px solid var(--line);flex:none;justify-content:flex-end;align-items:center;gap:8px;min-height:62px;padding:11px 18px;display:flex}.modal-footer .button-danger-ghost{color:#fff;background:var(--red-700);border-color:var(--red-700);height:38px;padding:0 14px}.modal-footer .button-danger-ghost:not(:disabled):hover{background:#7d3f3f;border-color:#7d3f3f}.drawer-scrim{z-index:70;visibility:hidden;opacity:0;background:#1414144d;transition:opacity .18s,visibility .18s;display:block;position:fixed;inset:0}.drawer-scrim.is-open{visibility:visible;opacity:1}.drawer{z-index:80;border-left:1px solid var(--line);background:#fff;flex-direction:column;width:min(520px,100vw);height:100dvh;transition:transform .21s;display:flex;position:fixed;top:0;right:0;transform:translate(102%);box-shadow:-16px 0 48px #00000029}.drawer.is-open{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:64px;padding:0 18px;display:flex}.drawer-header h2{font-size:17px}.drawer-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.drawer-footer{background:var(--surface-soft);border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;min-height:65px;padding:12px 18px;display:flex}.member-detail-hero{background:var(--surface-soft);border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:23px 20px;display:flex}.member-detail-hero>div{flex-direction:column;align-items:flex-start;display:flex}.member-detail-hero h3{font-size:20px}.member-detail-hero p{color:var(--muted);margin:2px 0 8px;font-size:11px}.drawer-section{border-bottom:1px solid var(--line);padding:19px 20px}.drawer-section-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px;display:flex}.drawer-section-title h4{font-size:14px}.drawer-section-title span{color:var(--muted);font-size:10px}.drawer-section-title button{color:var(--green-700);background:0 0;align-items:center;gap:5px;font-size:11px;display:inline-flex}.detail-rights-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.detail-rights-grid article{background:var(--surface-soft);border:1px solid var(--line);border-radius:5px;flex-direction:column;gap:7px;min-width:0;padding:12px;display:flex}.detail-rights-grid article.full{grid-column:1/-1}.detail-rights-grid article>span{justify-content:space-between;align-items:center;display:flex}.detail-rights-grid article>span small,.detail-rights-grid article>small{color:var(--muted);font-size:10px}.detail-rights-grid article strong{font-size:20px}.detail-rights-grid article strong i{color:var(--muted);font-size:10px;font-style:normal;font-weight:500}.detail-list{gap:0;margin:0;display:grid}.detail-list>div{border-bottom:1px dashed var(--line);grid-template-columns:90px 1fr;gap:14px;padding:9px 0;display:grid}.detail-list>div:last-child{border-bottom:0}.detail-list dt{color:var(--muted);font-size:11px}.detail-list dd{text-align:right;overflow-wrap:anywhere;margin:0;font-weight:550}.detail-list.compact{margin-top:10px}.assignment-list{flex-direction:column;gap:9px;display:flex}.assignment-list>div{grid-template-columns:26px 1fr;align-items:center;gap:9px;display:grid}.assignment-list>div>span:last-child{flex-direction:column;display:flex}.assignment-list small{color:var(--muted);font-size:10px}.mini-ledger{flex-direction:column;display:flex}.mini-ledger>div{border-bottom:1px solid var(--line-soft);grid-template-columns:8px 1fr auto;align-items:center;gap:8px;padding:9px 0;display:grid}.mini-ledger>div:last-child{border-bottom:0}.mini-ledger>div>span:nth-child(2){flex-direction:column;min-width:0;display:flex}.mini-ledger strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.mini-ledger small{color:var(--muted);font-size:9px}.mini-ledger b{font-size:11px}.ledger-dot{background:var(--green-700);border-radius:50%;width:7px;height:7px}.ledger-dot.practice{background:var(--coral-500)}.ledger-dot.theory{background:var(--gold-500)}.muted{color:var(--muted);font-size:11px}.lesson-detail-banner{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:14px;display:flex}.lesson-people{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.lesson-people>div{background:var(--surface-soft);border-radius:5px;flex-direction:column;padding:12px;display:flex}.lesson-people span,.lesson-people small{color:var(--muted);font-size:10px}.info-callout{color:var(--blue-700);background:var(--blue-50);border:1px solid var(--blue-100);border-radius:5px;align-items:flex-start;gap:10px;margin-top:15px;padding:11px 12px;display:flex}.info-callout.success{color:var(--green-700);background:var(--green-50);border-color:var(--green-100)}.info-callout.danger{color:var(--red-700);background:var(--red-50);border-color:var(--red-100)}.export-save-panel{gap:14px;display:grid}.export-save-panel>.info-callout{align-items:flex-start;margin:0}.export-save-panel>.info-callout strong{overflow-wrap:anywhere}.export-save-guidance{border:1px solid var(--line);background:var(--surface-soft);border-radius:6px}.export-save-guidance p{color:var(--muted);grid-template-columns:76px minmax(0,1fr);gap:12px;margin:0;padding:11px 13px;font-size:13px;line-height:1.55;display:grid}.export-save-guidance p+p{border-top:1px solid var(--line)}.export-save-guidance strong{color:var(--ink);font-size:13px}.export-save-fallback{color:var(--muted);line-height:1.6}.fixed-week-confirmation,.share-review-panel{gap:14px;display:grid}.fixed-week-confirmation>.info-callout,.share-review-panel>.info-callout{margin:0}.fixed-week-confirmation>p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.share-review-text{resize:vertical;width:100%;min-height:230px;color:var(--ink);background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;padding:14px;font:13px/1.75 Microsoft YaHei UI,Microsoft YaHei,PingFang SC,sans-serif}.share-review-text:focus{border-color:var(--green-700);outline:none;box-shadow:0 0 0 3px #3578c41f}.course-picker{grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:17px;display:grid}.course-picker>button{text-align:left;background:var(--surface-soft);border:1px solid var(--line);border-radius:5px;flex-direction:column;justify-content:center;align-items:flex-start;gap:7px;min-height:75px;padding:11px;display:flex}.course-picker>button:not(:disabled):hover{border-color:var(--line-strong)}.course-picker>button.is-active{background:var(--green-50);border-color:var(--green-700);box-shadow:0 0 0 1px var(--green-700)}.course-picker small{color:var(--muted);font-size:10px}.schedule-form .info-callout{margin-bottom:0}.review-sheet{color:var(--ink);background:#fff}.review-title-band{min-height:68px;color:var(--ink);border-top:3px solid var(--gold-500);border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.review-title-band>div{align-items:center;display:flex}.review-title-band>div>span{flex-direction:column;display:flex}.review-title-band strong{color:var(--ink)}.review-title-band small{color:var(--muted);font-size:10px}.review-title-band .badge{color:var(--green-900);background:var(--green-50);border-color:var(--green-100)}.review-title-band .badge-warning{color:var(--gold-700);background:var(--gold-50);border-color:var(--gold-100)}.review-title-band .badge-danger{color:var(--red-700);background:var(--red-50);border-color:var(--red-100)}.review-title-band .badge-success{color:var(--green-900);background:var(--green-50);border-color:var(--green-100)}.review-sheet>.info-callout{margin:14px 22px 0}.review-meta-grid{border-bottom:1px solid var(--line);background:#fff;grid-template-columns:repeat(4,1fr);display:grid}.review-meta-grid>div{border-right:1px solid var(--line);flex-direction:column;min-width:0;padding:13px 17px;display:flex}.review-meta-grid>div:last-child{border-right:0}.review-meta-grid span,.review-meta-grid small{color:var(--muted);font-size:10px}.review-meta-grid strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:3px 0 1px;overflow:hidden}.consume-summary{min-height:45px;color:var(--green-900);border:1px solid var(--green-100);border-left:3px solid var(--green-700);background:#f7faff;border-radius:5px;align-items:center;gap:9px;margin:15px 22px 0;padding:9px 12px;display:flex}.consume-summary>span{color:var(--muted);font-size:11px}.consume-summary strong{margin-left:auto}.consume-summary small{color:var(--muted);font-size:10px}.consume-summary.coral{color:var(--coral-700);background:var(--coral-50);border-color:var(--coral-100)}.review-section{border-bottom:1px solid var(--line);padding:20px 22px}.review-section:last-child{border-bottom:0}.review-section-heading{align-items:center;gap:10px;margin-bottom:15px;display:flex}.review-section-heading>span{width:29px;height:29px;color:var(--green-700);border:1px solid var(--green-100);background:#fff;border-radius:50%;place-items:center;font-size:10px;font-weight:700;display:grid}.review-section-heading h3{font-size:14px}.review-section-heading p{color:var(--muted);font-size:10px}.score-grid{grid-template-columns:repeat(2,1fr);gap:10px 20px;display:grid}.score-row{border:1px solid var(--line-soft);background:#fff;border-radius:5px;grid-template-columns:48px 1fr 27px;align-items:center;gap:7px;padding:8px 10px;display:grid}.score-row>div{gap:1px;display:flex}.score-row button{width:24px;height:24px;color:var(--line-strong);background:0 0;place-items:center;padding:0;display:grid}.score-row button.is-active{color:var(--gold-500)}.score-row strong{text-align:right;font-size:11px}.student-confirm-section,.teacher-sign-section{background:#fff}.student-confirm-section{border-left:3px solid var(--green-700)}.teacher-sign-section{border-left:3px solid var(--gold-500)}.teacher-sign-section .review-section-heading>span{color:var(--gold-700);background:var(--gold-50);border-color:var(--gold-100)}.check-row{width:100%;color:var(--muted);text-align:left;border:1px solid var(--line);background:#fff;border-radius:5px;align-items:flex-start;gap:9px;margin-top:13px;padding:11px;display:flex}.check-row.is-checked{color:var(--green-900);border-color:var(--green-100);background:#f7faff}.check-box{color:#fff;border:1px solid var(--line-strong);background:#fff;border-radius:3px;flex:none;place-items:center;width:19px;height:19px;display:grid}.check-row.is-checked .check-box{background:var(--green-700);border-color:var(--green-700)}.signature-section{grid-template-columns:1fr 1fr;gap:15px;display:grid}.signature-display{background:var(--surface-soft);border:1px solid var(--line);border-radius:5px;flex-direction:column;justify-content:center;align-items:center;min-height:110px;padding:12px;display:flex}.signature-display>span{color:var(--muted);font-size:10px}.signature-display strong{margin:10px 0 5px;font-size:15px}.signature-display small{color:var(--subtle);font-size:9px}.practice-summary{background:var(--surface-soft);border:1px solid var(--line);border-radius:5px;grid-template-columns:minmax(180px,1fr) 120px 100px auto;align-items:center;gap:13px;margin-bottom:18px;padding:13px;display:grid}.practice-summary>div{flex-direction:column;display:flex}.practice-summary>div:first-child{flex-direction:row;align-items:center;gap:9px}.practice-summary>div:first-child>span{flex-direction:column;display:flex}.practice-summary span,.practice-summary small{color:var(--muted);font-size:10px}.practice-form textarea{min-height:75px}.practice-sheet .range-control input{accent-color:var(--green-700)}.practice-sheet .range-control strong{color:var(--green-900)}.practice-sheet .issue-picker button.is-active{color:var(--green-900);background:var(--green-50);border-color:var(--green-100)}.course-record-confirmation .signature-section{margin-top:15px}.course-record-confirmation-action{justify-content:flex-end;margin-top:13px;display:flex}.range-control{align-items:center;gap:10px;height:40px;display:flex}.range-control input{height:auto;accent-color:var(--coral-500);border:0;flex:1;padding:0}.range-control strong{width:39px;color:var(--coral-700);font-size:12px}.issue-picker{flex-wrap:wrap;gap:7px;display:flex}.issue-picker button{height:30px;color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);border-radius:4px;padding:0 10px}.issue-picker button.is-active{color:var(--coral-700);background:var(--coral-50);border-color:var(--coral-100)}.toast{z-index:200;color:#fff;background:var(--green-900);min-width:280px;max-width:min(430px,100vw - 32px);min-height:48px;box-shadow:var(--shadow-md);border:1px solid #ffffff29;border-radius:6px;align-items:center;gap:9px;padding:10px 14px;animation:.18s ease-out toast-in;display:flex;position:fixed;bottom:24px;right:24px}.toast-error{background:var(--red-700)}.toast-warning{background:var(--gold-700)}@keyframes fade-in{0%{opacity:0}}@keyframes modal-enter{0%{opacity:0;transform:translateY(8px)scale(.99)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.teacher-portal,.teacher-view{width:100%}.content-section{margin-bottom:15px;overflow:hidden}.lesson-list{flex-direction:column;display:flex}.lesson-row{border-bottom:1px solid var(--line-soft);background:#fff;grid-template-columns:72px 5px minmax(240px,1fr) auto;align-items:center;gap:13px;min-height:84px;padding:12px 17px;display:grid;position:relative}.lesson-row:last-child{border-bottom:0}.lesson-row.lesson-in_progress,.lesson-row.lesson-completed{background:var(--surface-soft)}.lesson-time-block{flex-direction:column;display:flex}.lesson-time-block strong{font-size:16px}.lesson-time-block>span{color:var(--muted);font-size:10px}.lesson-time-block .lesson-date{color:var(--green-700);margin-bottom:3px;font-weight:700}.lesson-course-mark{background:var(--green-700);border-radius:2px;width:4px;height:44px}.lesson-course-mark[data-tone=coral]{background:var(--coral-500)}.lesson-course-mark[data-tone=gold]{background:var(--gold-500)}.lesson-course-mark[data-tone=blue]{background:var(--blue-700)}.lesson-main{flex-direction:column;gap:6px;min-width:0;display:flex}.lesson-title-line,.lesson-meta-line{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.lesson-title-line h3{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.lesson-meta-line{color:var(--muted);font-size:10px}.lesson-meta-line>span{align-items:center;gap:4px;display:flex}.lesson-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.schedule-groups{flex-direction:column;display:flex}.schedule-day{border-bottom:1px solid var(--line)}.schedule-day:last-child{border-bottom:0}.schedule-day-header{background:var(--surface-soft);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:43px;padding:8px 17px;display:flex}.schedule-day-header h2{font-size:13px}.schedule-day-header span{color:var(--muted);font-size:10px}.teacher-schedule-toolbar{background:var(--surface-soft);border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:18px;padding:13px 16px;display:flex}.teacher-schedule-filter-group,.teacher-schedule-search-group{flex-direction:column;gap:6px;min-width:0;display:flex}.teacher-schedule-filter-group{flex:1}.teacher-schedule-filter-label{color:var(--ink-soft);font-size:10px;font-weight:700}.teacher-schedule-type-filter{background:var(--surface-muted);border:1px solid var(--line);border-radius:6px;grid-template-columns:repeat(5,minmax(68px,1fr));gap:3px;width:min(600px,100%);padding:3px;display:grid}.teacher-schedule-type-filter button{min-width:0;min-height:34px;color:var(--ink-soft);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 9px;display:flex}.teacher-schedule-type-filter button i{background:var(--ink);border-radius:2px;flex:none;width:7px;height:7px}.teacher-schedule-type-filter button[data-tone=emerald] i{background:var(--green-700)}.teacher-schedule-type-filter button[data-tone=blue] i{background:var(--blue-700)}.teacher-schedule-type-filter button[data-tone=coral] i{background:var(--coral-500)}.teacher-schedule-type-filter button[data-tone=gold] i{background:var(--gold-500)}.teacher-schedule-type-filter button span{text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.teacher-schedule-type-filter button small{color:var(--muted);font-size:9px}.teacher-schedule-type-filter button:not(:disabled):not(.is-active):hover{border-color:var(--line-strong);background:#fff}.teacher-schedule-type-filter button.is-active{color:var(--green-900);background:var(--green-50);border-color:var(--green-700);box-shadow:var(--shadow-sm)}.teacher-schedule-search-group{align-items:flex-end;width:min(380px,42%)}.teacher-schedule-search{width:100%}.teacher-schedule-search:focus-within{border-color:var(--green-700);box-shadow:0 0 0 2px var(--focus-halo)}.teacher-schedule-result-count{color:var(--muted);font-size:10px}.teacher-own-availability{margin-bottom:15px;overflow:hidden}.teacher-own-availability>.section-heading{border-bottom:1px solid var(--line);min-height:64px;padding:12px 16px}.teacher-own-availability-controls{background:var(--surface-soft);border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,.55fr) minmax(220px,1fr) auto;align-items:center;gap:14px;padding:12px 16px;display:grid}.teacher-own-availability-date,.teacher-own-availability-base{flex-direction:column;gap:5px;min-width:0;display:flex}.teacher-own-availability-date>span,.teacher-own-availability-base>span{color:var(--muted);font-size:10px}.teacher-own-availability-date input{width:100%;height:36px}.teacher-own-availability-base strong{overflow-wrap:anywhere;font-size:12px}.teacher-own-availability-counts{color:var(--ink-soft);justify-content:flex-end;align-items:center;gap:12px;font-size:10px;display:flex}.teacher-own-availability-counts span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.teacher-own-availability-counts i{border-radius:2px;width:8px;height:8px}.teacher-own-availability-counts .is-open{background:var(--green-700)}.teacher-own-availability-counts .is-closed{background:var(--coral-500)}.teacher-own-availability-counts .is-locked{background:var(--line-strong)}.teacher-own-availability-counts .is-occupied{background:var(--gold-500)}.teacher-own-availability-slots{padding:14px 16px 16px}.teacher-own-availability-slot{cursor:default}.teacher-own-availability-slot.is-open:hover{border-color:var(--green-100)}.teacher-own-availability-slot.is-closed{color:var(--coral-700);background:var(--coral-50);border-color:var(--coral-100)}.teacher-own-availability-slot.is-closed:hover{border-color:var(--coral-100)}.teacher-own-availability-slot.is-locked:hover{color:var(--ink-soft);border-color:var(--line-strong)}.teacher-own-availability-slot.is-occupied:hover{border-color:var(--gold-100)}@media (width<=760px){.teacher-own-availability-controls{grid-template-columns:1fr;align-items:stretch;gap:10px;padding:12px}.teacher-own-availability-counts{flex-wrap:wrap;justify-content:flex-start}.teacher-own-availability-slots{padding:12px}}.teacher-schedule-weeks{flex-direction:column;display:flex}.teacher-schedule-week{padding:0 16px 18px}.teacher-schedule-week+.teacher-schedule-week{border-top:1px solid var(--line);padding-top:4px}.teacher-schedule-week-header{justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:9px 2px;display:flex}.teacher-schedule-week-header>div{align-items:baseline;gap:10px;min-width:0;display:flex}.teacher-schedule-week-header strong{font-size:13px}.teacher-schedule-week-header .teacher-schedule-week-range{color:var(--ink);font-size:17px;line-height:1.25}.teacher-schedule-week-header span{color:var(--muted);font-size:10px}.teacher-schedule-table{border:1px solid var(--line);background:#fff;border-radius:6px;overflow:hidden}.teacher-schedule-columns,.teacher-schedule-row{grid-template-columns:76px minmax(112px,.55fr) minmax(150px,1fr) minmax(96px,.5fr) minmax(280px,auto);align-items:center;gap:12px;padding-inline:12px;display:grid}.teacher-schedule-columns{min-height:31px;color:var(--muted);background:var(--surface-soft);border-bottom:1px solid var(--line);font-size:10px}.teacher-schedule-columns span:last-child{text-align:right}.teacher-schedule-date+.teacher-schedule-date{border-top:1px solid var(--line)}.teacher-schedule-date-header{border-bottom:1px solid var(--line-soft);background:#fff;justify-content:space-between;align-items:center;gap:10px;min-height:38px;padding:7px 12px;display:flex}.teacher-schedule-date-header>div{align-items:center;gap:8px;min-width:0;display:flex}.teacher-schedule-date-header strong{font-size:12px}.teacher-schedule-date-header>span{color:var(--muted);font-size:10px}.teacher-schedule-row{border-bottom:1px solid var(--line-soft);min-height:59px;padding-block:8px}.teacher-schedule-row:last-child{border-bottom:0}.teacher-schedule-row.lesson-in_progress,.teacher-schedule-row.lesson-completed,.teacher-schedule-row.lesson-canceled{background:var(--surface-soft)}.teacher-schedule-row>*{min-width:0}.teacher-schedule-time,.teacher-schedule-course,.teacher-schedule-member{flex-direction:column;min-width:0;display:flex}.teacher-schedule-time strong{font-size:14px}.teacher-schedule-time span,.teacher-schedule-course small,.teacher-schedule-member small{color:var(--muted);font-size:9px}.teacher-schedule-course{align-items:flex-start;gap:2px}.teacher-schedule-member strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.teacher-schedule-state{align-items:center;display:flex}.teacher-schedule-actions{flex-wrap:wrap}.teacher-schedule-no-action{color:var(--subtle);font-size:10px}@media (width<=900px){.teacher-schedule-columns{display:none}.teacher-schedule-row{grid-template-columns:66px minmax(0,1fr) auto;gap:7px 10px;padding:10px 12px}.teacher-schedule-time{grid-area:1/1/span 2;align-self:start}.teacher-schedule-course{grid-area:1/2}.teacher-schedule-member{grid-area:2/2/auto/4}.teacher-schedule-state{grid-area:1/3;justify-self:end}.teacher-schedule-actions{border-top:1px solid var(--line-soft);grid-area:3/1/auto/-1;justify-content:flex-end;padding-top:8px}}.student-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.student-card{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-sm);background:#fff;border-radius:7px;overflow:hidden}.student-card-header{justify-content:space-between;align-items:center;gap:12px;padding:15px 16px 10px;display:flex}.student-identity{align-items:center;gap:10px;min-width:0;display:flex}.student-identity>div{min-width:0}.student-name-line{align-items:center;gap:8px;display:flex}.student-name-line h2{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.student-identity p{color:var(--muted);font-size:10px}.student-course-tags{margin:0;padding:0 16px 11px}.student-contact-list,.profile-detail-list{background:var(--surface-soft);border-block:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:0 18px;margin:0;padding:10px 16px;display:grid}.student-contact-list>div,.profile-detail-list>div{align-items:center;gap:6px;min-width:0;padding:4px 0;display:flex}.student-contact-list dt,.profile-detail-list dt{color:var(--subtle);align-items:center;display:flex}.student-contact-list dd,.profile-detail-list dd{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:10px;overflow:hidden}.student-entitlements{grid-template-columns:1fr 1fr;gap:14px;padding:13px 16px;display:grid}.entitlement-line{flex-direction:column;gap:5px;min-width:0;display:flex}.entitlement-line>div{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;min-width:0;display:flex}.entitlement-line>div>small{overflow-wrap:anywhere;width:100%;min-width:0}.entitlement-line span{color:var(--muted);font-size:10px}.entitlement-line strong{font-size:12px}.student-card-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:48px;padding:8px 16px;display:flex}.student-card-footer>span{color:var(--muted);font-size:10px}.task-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.teacher-record-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.task-list{flex-direction:column;display:flex}.task-row{border-bottom:1px solid var(--line-soft);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:77px;padding:11px 17px;display:grid}.task-row:last-child{border-bottom:0}.task-icon{width:38px;height:38px;color:var(--gold-700);background:var(--gold-50);border-radius:5px;place-items:center;display:grid}.task-copy{flex-direction:column;min-width:0;display:flex}.task-title-line{align-items:center;gap:8px;display:flex}.task-title-line h3{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.task-copy>p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:10px;overflow:hidden}.task-actions{align-items:center;gap:6px;display:flex}.profile-layout{grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:15px;display:grid}.profile-primary,.profile-stats{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:7px;overflow:hidden}.profile-hero{background:var(--surface-soft);border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:22px;display:flex}.profile-name-line{align-items:center;gap:9px;display:flex}.profile-name-line h2{font-size:20px}.profile-hero p{color:var(--muted);font-size:11px}.profile-course-tags{margin:8px 0 0}.profile-detail-list{background:#fff;border:0;grid-template-columns:1fr;padding:15px 22px;display:grid}.profile-detail-list>div{border-bottom:1px dashed var(--line);grid-template-columns:90px 1fr;padding:8px 0;display:grid}.profile-detail-list dt{color:var(--muted);font-size:11px}.profile-detail-list dd{color:var(--ink);font-size:12px}.profile-stats{padding:18px}.profile-stats h2{margin-bottom:13px;font-size:15px}.profile-stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.profile-stat-grid>div{background:var(--surface-soft);border:1px solid var(--line);border-radius:5px;flex-direction:column;justify-content:center;align-items:center;min-height:82px;display:flex}.profile-stat-grid strong{font-size:24px}.profile-stat-grid span{color:var(--muted);font-size:10px}.student-portal{width:min(1040px,100%);margin:0 auto}.student-page-header{justify-content:space-between;align-items:flex-end;gap:20px;min-height:68px;margin-bottom:18px;display:flex}.student-page-profile-action{align-items:center;gap:9px;display:flex}.student-status-pill{min-height:23px;color:var(--muted);background:var(--surface-muted);white-space:nowrap;border-radius:11px;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.student-status-pill--active,.student-status-pill--completed,.student-status-pill--both_signed{color:var(--green-700);background:var(--green-50)}.student-status-pill--expiring,.student-status-pill--pending,.student-status-pill--service_pending,.student-status-pill--in_progress,.student-status-pill--teacher_pending{color:var(--gold-700);background:var(--gold-50)}.student-status-pill--scheduled,.student-status-pill--student_pending,.student-status-pill--pending_confirmation{color:var(--blue-700);background:var(--blue-50)}.student-status-pill--temporary_leave_refunded{color:var(--gold-700);background:var(--gold-50)}.student-status-pill--frozen,.student-status-pill--canceled{color:var(--muted);background:var(--surface-muted)}.student-status-pill--returned,.student-status-pill--expired,.student-status-pill--temporary_leave_absence{color:var(--red-700);background:var(--red-50)}.student-status-pill--temporary_leave_absence{white-space:normal;text-align:center;max-width:100%}.teacher-temporary-leave-rule{margin:0 0 16px}.temporary-leave-form>.info-callout{margin-top:0}.student-lesson-card>.student-card-actions{flex-wrap:wrap}.student-alert-card{min-height:70px;color:var(--gold-700);background:var(--surface);border:1px solid var(--gold-100);border-left:3px solid var(--gold-500);border-radius:6px;grid-template-columns:42px 1fr 38px;align-items:center;gap:11px;margin-bottom:14px;padding:12px 14px;display:grid}.student-alert-card__icon{width:39px;height:39px;color:var(--gold-700);background:#fff;border-radius:50%;place-items:center;display:grid}.student-alert-card__content{min-width:0}.student-alert-card__content strong{display:block}.student-alert-card__content p{color:var(--ink-soft);font-size:11px}.student-attendance-rule{grid-template-columns:42px minmax(0,1fr) auto}.student-attendance-rule>strong{text-align:right;max-width:72px;font-size:11px;line-height:1.35}.student-icon-action{width:34px;height:34px;color:var(--gold-700);background:var(--gold-50);border-radius:50%;place-items:center;display:grid}.student-cancellation-choice{background:var(--blue-50);border:1px solid var(--blue-100);border-left:3px solid var(--blue-700);border-radius:6px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:14px;padding:13px 14px;display:grid}.student-cancellation-choice__icon{width:39px;height:39px;color:var(--blue-700);background:#fff;border-radius:50%;place-items:center;display:grid}.student-cancellation-choice p{color:var(--ink-soft);margin-top:3px;font-size:11px}.student-cancellation-choice__actions{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.student-cancellation-choice__actions button{min-height:34px;padding:7px 11px;font-size:12px}@media (width<=680px){.record-tabs{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.record-tabs::-webkit-scrollbar{display:none}.record-tabs button{flex:none}.student-cancellation-choice{grid-template-columns:42px minmax(0,1fr)}.student-cancellation-choice__actions{grid-column:1/-1}.student-cancellation-choice__actions button{flex:1}.student-attendance-rule{grid-template-columns:42px minmax(0,1fr)}.student-attendance-rule>strong{text-align:left;grid-column:2;max-width:none}}.student-section{margin-bottom:14px;overflow:hidden}.student-section__heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:13px 16px;display:flex}.student-section__heading>div{flex-direction:column;display:flex}.student-section__heading h2{font-size:15px}.student-section__heading>span{color:var(--muted);font-size:10px}.student-section__eyebrow{margin-bottom:2px;font-weight:700;color:var(--green-700)!important;font-size:9px!important}.student-entitlement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:15px;display:grid}.student-entitlement-grid--full{grid-template-columns:repeat(4,minmax(0,1fr))}.student-entitlement-card{background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;min-width:0;padding:14px}.student-entitlement-card__header{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.student-entitlement-card__icon{width:31px;height:31px;color:var(--green-700);background:var(--green-50);border-radius:5px;place-items:center;display:grid}.student-entitlement-card--practice .student-entitlement-card__icon{color:var(--coral-700);background:var(--coral-50)}.student-entitlement-card--improvisation .student-entitlement-card__icon{color:var(--blue-700);background:var(--blue-50)}.student-entitlement-card--theory .student-entitlement-card__icon{color:var(--gold-700);background:var(--gold-50)}.student-entitlement-card__value{overflow-wrap:anywhere;margin:12px 0 8px;font-size:21px;line-height:1.25;display:block}.student-entitlement-card>small{color:var(--muted);margin-top:7px;font-size:10px;display:block}.student-entitlement-card>.student-entitlement-card__quota{color:var(--green-900);font-weight:700}.student-progress{background:var(--surface-muted);border-radius:3px;width:100%;height:5px;overflow:hidden}.student-progress__fill{background:var(--green-700);border-radius:inherit;height:100%;display:block}.student-entitlement-card--practice .student-progress__fill{background:var(--coral-500)}.student-entitlement-card--improvisation .student-progress__fill{background:var(--blue-700)}.student-entitlement-card--theory .student-progress__fill{background:var(--gold-500)}.student-lesson-list{flex-direction:column;display:flex}.student-lesson-card{border-bottom:1px solid var(--line-soft);background:#fff;grid-template-columns:62px minmax(0,1fr);gap:13px;min-height:86px;padding:13px 15px;display:grid}.student-lesson-card:last-child{border-bottom:0}.student-lesson-card__time{color:var(--green-900);background:var(--green-50);border-radius:5px;flex-direction:column;justify-content:center;align-items:center;display:flex}.student-lesson-card__time strong{font-size:15px}.student-lesson-card__time span{color:var(--muted);font-size:9px}.student-lesson-card__body{flex-direction:column;justify-content:center;min-width:0;display:flex}.student-lesson-card__body>strong{text-overflow:ellipsis;white-space:nowrap;margin:5px 0 3px;overflow:hidden}.student-lesson-card__body p{color:var(--muted);align-items:center;gap:4px;font-size:10px;display:flex}.student-lesson-card__heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.student-lesson-card>.student-card-actions{grid-column:2;justify-content:flex-end;margin-top:0}.student-dated-lesson{border-bottom:1px solid var(--line);grid-template-columns:55px minmax(0,1fr);align-items:stretch;display:grid}.student-dated-lesson:last-child{border-bottom:0}.student-dated-lesson__date{background:var(--surface-soft);border-right:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;display:flex}.student-dated-lesson__date strong{font-size:18px}.student-dated-lesson__date span{color:var(--muted);font-size:9px}.student-dated-lesson .student-lesson-card{border-bottom:0}.student-course-badge{border-radius:4px;gap:5px;padding:3px 7px 3px 3px}.student-course-badge>span{color:#fff;background:var(--green-700);border-radius:3px;place-items:center;width:20px;height:20px;font-size:9px;display:grid}.student-course-badge--coral>span{background:var(--coral-500)}.student-course-badge--blue>span{background:var(--blue-700)}.student-course-badge--gold>span{background:var(--gold-500)}.student-booking-form{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:7px;overflow:hidden}.student-reschedule-status{min-height:56px;color:var(--blue-700);background:var(--blue-50);border:1px solid var(--blue-100);border-left:3px solid var(--blue-700);border-radius:5px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;display:grid}.student-booking-form>.student-reschedule-status{border-top:0;border-right:0;border-bottom-color:var(--line);border-radius:0;margin-bottom:0}.student-reschedule-status>div{flex-direction:column;min-width:0;display:flex}.student-reschedule-status small,.student-reschedule-status>span{color:var(--muted);font-size:10px}.student-reschedule-status.is-used{color:var(--ink);background:var(--surface-muted);border-color:var(--line-strong)}.student-booking-step{border:0;border-bottom:1px solid var(--line);min-width:0;margin:0;padding:18px}.student-booking-step legend{align-items:center;gap:8px;padding:0;font-size:13px;font-weight:700;display:flex}.student-booking-step legend>span{color:#fff;background:var(--green-700);border-radius:50%;place-items:center;width:25px;height:25px;font-size:10px;display:grid}.student-course-picker{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;display:grid}.student-course-option{min-height:91px;color:var(--muted);text-align:left;background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;padding:13px;display:flex;position:relative}.student-course-option>svg:first-child{color:var(--green-700);margin-bottom:3px}.student-course-option[data-tone=blue]>svg:first-child{color:var(--blue-700)}.student-course-option strong{color:var(--ink)}.student-course-option small{font-size:10px}.student-course-option>svg:last-child{color:var(--green-700);position:absolute;top:10px;right:10px}.student-course-option.is-selected{background:var(--green-50);border-color:var(--green-700);box-shadow:0 0 0 1px var(--green-700)}.student-course-option.is-blocked{color:#737b88;cursor:not-allowed;opacity:1;background:#f4f5f7;border-color:#d7dbe2}.student-course-option.is-blocked>svg,.student-course-option.is-blocked strong,.student-course-option.is-blocked small{color:#737b88}.student-booking-step>.student-segmented-control{margin-top:10px}.student-date-scroller{grid-template-columns:repeat(8,minmax(58px,1fr));gap:7px;margin-top:14px;display:grid;overflow-x:auto}.student-date-option{background:var(--surface-soft);border:1px solid var(--line);border-radius:5px;flex-direction:column;justify-content:center;align-items:center;min-width:58px;min-height:73px;display:flex}.student-date-option span,.student-date-option small{color:var(--muted);font-size:9px}.student-date-option strong{margin:2px 0;font-size:17px}.student-date-option.is-selected{color:#fff;background:var(--green-900);border-color:var(--green-900)}.student-date-option.is-selected span,.student-date-option.is-selected small{color:#ffffffbd}.student-booking-teacher{background:var(--surface-soft);border-radius:5px;align-items:center;gap:10px;margin-top:14px;padding:10px;display:flex}.student-booking-teacher>div{flex-direction:column;flex:1;display:flex}.student-booking-teacher small{color:var(--muted);font-size:9px}.student-booking-teacher>span:last-child{color:var(--muted);font-size:10px}.student-time-grid{grid-template-columns:repeat(6,1fr);gap:8px;margin-top:12px;display:grid}.student-time-empty{color:var(--muted);text-align:center;background:var(--surface-soft);border:1px dashed var(--line-strong);border-radius:6px;grid-column:1/-1;padding:18px}.student-time-slot{border:1px solid var(--line);background:#fff;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;min-height:69px;display:flex}.student-time-slot span,.student-time-slot small{color:var(--muted);font-size:9px}.student-time-slot__status{justify-content:center;align-items:center;min-height:14px;display:inline-flex}.student-time-slot.is-selected{color:var(--green-900);background:var(--green-50);border-color:var(--green-700)}.student-time-slot:disabled{opacity:1}.student-time-slot.is-booked{color:var(--blue-700);background:var(--blue-50);border-color:var(--blue-700);border-style:dashed}.student-time-slot.is-booked .student-time-slot__status{color:var(--blue-700);font-weight:700}.student-time-slot.is-leave{color:var(--ink);border-color:var(--gold-500);background:#fff;border-style:dashed}.student-time-slot.is-leave span,.student-time-slot.is-leave .student-time-slot__status{color:var(--gold-700);font-weight:700}.student-time-slot.is-limited{color:var(--gold-700);background:var(--gold-50);border-color:var(--gold-100)}.student-time-slot.is-limited span,.student-time-slot.is-limited .student-time-slot__status{color:var(--gold-700);font-weight:700}.student-time-slot.is-locked{color:var(--ink-400);border-color:var(--line-strong);background:#f2f3f4}.student-time-slot.is-locked span,.student-time-slot.is-locked .student-time-slot__status{color:var(--ink-400)}.student-booking-submit{background:var(--surface-soft);justify-content:space-between;align-items:center;gap:16px;min-height:74px;padding:12px 18px;display:flex}.student-booking-summary{flex-direction:column;min-width:0;display:flex}.student-booking-summary span{color:var(--muted);font-size:10px}.student-primary-button,.student-secondary-button,.student-text-button{border-radius:5px;justify-content:center;align-items:center;gap:7px;height:38px;padding:0 14px;font-weight:700;display:inline-flex}.student-primary-button{color:#fff;background:var(--green-900)}.student-secondary-button{color:var(--green-900);border:1px solid var(--line-strong);background:#fff}.student-text-button{height:auto;color:var(--green-700);background:0 0;padding:6px;font-size:11px}.student-primary-button:not(:disabled):hover{background:var(--green-700)}.student-secondary-button:not(:disabled):hover{background:var(--surface-soft);border-color:var(--subtle)}.student-text-button:not(:disabled):hover{background:var(--green-50)}.student-tab-list,.record-tab-list{border:1px solid var(--line);background:#fff;border-radius:6px;align-items:center;gap:4px;min-height:43px;margin-bottom:13px;padding:4px;display:flex}.student-tab-list button,.record-tab-list button{height:33px;color:var(--muted);background:0 0;border-radius:4px;align-items:center;gap:6px;padding:0 13px;font-weight:700;display:flex}.student-tab-list button.is-selected,.record-tab-list button.is-selected{color:var(--green-900);background:var(--green-50)}.student-tab-list button span,.record-tab-list button span{min-width:19px;height:19px;color:var(--muted);background:var(--surface-muted);border-radius:10px;place-items:center;padding:0 5px;font-size:9px;display:grid}.student-schedule-list{flex-direction:column;gap:12px;display:flex}.student-schedule-day{border:1px solid var(--line);background:#fff;border-radius:7px;overflow:hidden}.student-schedule-day__header{background:var(--surface-soft);border-bottom:1px solid var(--line);align-items:center;gap:11px;min-height:65px;padding:10px 15px;display:flex}.student-calendar-date{color:#fff;background:var(--green-700);border-radius:5px;flex-direction:column;justify-content:center;align-items:center;width:38px;height:45px;display:flex}.student-calendar-date strong{font-size:16px}.student-calendar-date span{font-size:8px}.student-schedule-day__header h2{font-size:13px}.student-schedule-day__header p{color:var(--muted);font-size:10px}.student-review-list,.student-practice-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.student-review-card,.student-practice-card{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-sm);background:#fff;border-radius:7px;overflow:hidden}.student-review-card{border-top:2px solid var(--green-700);padding:15px}.student-review-card__topline{justify-content:space-between;align-items:center;gap:10px;display:flex}.student-review-card__heading{justify-content:space-between;align-items:flex-start;gap:10px;margin:14px 0;display:flex}.student-review-card__heading>div{min-width:0}.student-review-card__heading small{color:var(--muted);font-size:9px}.student-review-card__heading h3{text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:14px;overflow:hidden}.student-review-card__heading>span{color:var(--subtle);font-size:10px}.student-review-card__meta{border-block:1px solid var(--line);grid-template-columns:1fr 1fr;margin:0;padding:9px 0;display:grid}.student-review-card__meta>div{flex-direction:column;display:flex}.student-review-card__meta dt{color:var(--muted);font-size:9px}.student-review-card__meta dd{margin:0;font-size:11px;font-weight:650}.student-review-card__homework{color:var(--green-700);border-left:2px solid var(--green-700);background:#f7faff;border-radius:5px;align-items:flex-start;gap:8px;margin-top:11px;padding:9px;display:flex}.student-review-card__homework>div{min-width:0}.student-review-card__homework small{font-size:9px}.student-review-card__homework p{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.student-card-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.student-practice-card__header{border-bottom:1px solid var(--line);grid-template-columns:44px minmax(0,1fr) 42px;align-items:center;gap:10px;padding:14px;display:grid}.student-practice-card__date{width:42px;height:48px;color:var(--coral-700);background:var(--coral-50);border-radius:5px;flex-direction:column;justify-content:center;align-items:center;display:flex}.student-practice-card__date strong{font-size:17px}.student-practice-card__date span{font-size:8px}.student-practice-card__header>div:nth-child(2){min-width:0}.student-practice-card__header small{color:var(--muted);font-size:9px}.student-practice-card__header h3,.student-practice-card__header p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-practice-card__header h3{font-size:13px}.student-practice-card__header p{color:var(--muted);font-size:9px}.student-practice-card__completion{color:var(--coral-700);text-align:right}.student-tag-list{flex-wrap:wrap;gap:5px;padding:10px 14px 0;display:flex}.student-tag-list span{color:var(--coral-700);background:var(--coral-50);border-radius:3px;padding:3px 7px;font-size:9px}.student-practice-card__notes{grid-template-columns:1fr;gap:13px;padding:12px 14px;display:grid}.student-practice-card__notes small{color:var(--muted);font-size:9px}.student-practice-card__notes p{margin-top:3px;font-size:10px}.student-practice-card footer{color:var(--muted);background:var(--surface-soft);border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 14px;font-size:9px;display:flex}.student-membership-banner{color:#fff;background:var(--green-900);border-radius:7px;align-items:center;gap:14px;min-height:105px;margin-bottom:14px;padding:18px;display:flex}.student-membership-banner__icon{width:48px;height:48px;color:var(--gold-100);background:#ffffff1a;border-radius:50%;flex:none;place-items:center;display:grid}.student-membership-banner>div:last-child{flex-direction:column;display:flex}.student-membership-banner span{color:#ffffffb3;font-size:10px}.student-membership-banner strong{margin:3px 0;font-size:16px}.student-membership-banner p{color:#ffffffc7;font-size:10px}.student-teacher-list,.student-ledger-list{flex-direction:column;display:flex}.student-ledger-toolbar{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 15px;display:grid}.student-ledger-toolbar .search-field{width:100%}.student-ledger-toolbar>span{color:var(--muted);white-space:nowrap;font-size:10px}.student-teacher-row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:63px;padding:10px 15px;display:grid}.student-teacher-row:last-child{border-bottom:0}.student-teacher-row>div{flex-direction:column;display:flex}.student-teacher-row small{color:var(--muted);font-size:9px}.student-teacher-row>span:last-child{color:var(--muted);font-size:10px}.student-ledger-row{border-bottom:1px solid var(--line-soft);grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:60px;padding:9px 15px;display:grid}.student-ledger-row:last-child{border-bottom:0}.student-ledger-row__marker{background:var(--green-700);border-radius:50%;width:7px;height:7px}.student-ledger-row__marker--improvisation{background:var(--blue-700)}.student-ledger-row__marker--practice{background:var(--coral-500)}.student-ledger-row__marker--theory{background:var(--gold-500)}.student-ledger-row>div{flex-direction:column;min-width:0;display:flex}.student-ledger-row>div:nth-child(2) strong,.student-ledger-row>div:nth-child(2) small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-ledger-row small{color:var(--muted);font-size:9px}.student-ledger-row>div:last-child{align-items:flex-end}.student-ledger-row .is-positive{color:var(--green-700)}.student-ledger-row .is-negative{color:var(--red-700)}.student-profile-panel{border:1px solid var(--line);background:#fff;border-radius:7px;overflow:hidden}.student-profile-panel__heading{border-bottom:1px solid var(--line);align-items:center;gap:8px;min-height:53px;padding:10px 15px;display:flex}.student-profile-panel__heading svg{color:var(--green-700)}.student-profile-panel__heading h2{font-size:14px}.student-profile-panel__heading>span{color:var(--muted);margin-left:auto;font-size:10px}.profile-identity-static{background:var(--surface-soft);border-bottom:1px solid var(--line);align-items:center;padding:15px;display:flex}.profile-identity-static>span{flex-direction:column;min-width:0;display:flex}.profile-identity-static strong{font-size:15px}.profile-identity-static small{color:var(--muted);margin-top:1px;font-size:10px}.settings-account-profile{justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;padding:0 18px 0 0;display:flex}.settings-account-profile .profile-identity-static{background:0 0;border:0;flex:1}.settings-account-profile dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-width:260px;margin:0;display:grid}.settings-account-profile dl>div{flex-direction:column;display:flex}.settings-account-profile dt{color:var(--muted);font-size:10px}.settings-account-profile dd{margin:2px 0 0;font-size:11px}.student-profile-panel dl{grid-template-columns:1fr 1fr;gap:0 24px;margin:0;padding:10px 15px;display:grid}.student-profile-panel dl>div{border-bottom:1px dashed var(--line);grid-template-columns:75px 1fr;gap:10px;padding:8px 0;display:grid}.student-profile-panel dt{color:var(--muted);font-size:10px}.student-profile-panel dd{overflow-wrap:anywhere;margin:0;font-size:11px}.activation-form{flex-direction:column;gap:10px;display:flex}.activation-form>.info-callout{margin:0 0 3px}.qualification-form{gap:14px;display:grid}.qualification-form>.field-error{margin-top:-7px}.activation-option{background:var(--surface-soft);border:1px solid var(--line);border-radius:5px;grid-template-columns:minmax(0,1fr) repeat(2,minmax(130px,150px));align-items:center;gap:14px;padding:10px;display:grid}.activation-option.is-enabled{background:var(--green-50);border-color:var(--green-100)}.activation-option .check-row{background:0 0;border:0;margin:0;padding:7px}.activation-option .check-row>span:last-child{flex-direction:column;display:flex}.activation-option .check-row small{color:var(--muted);font-size:10px}.activation-option>.field:nth-child(2):last-child{grid-column:3}.activation-option>.badge{justify-self:end}.mobile-nav,.print-root{display:none}@media (width<=1260px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.record-row{grid-template-columns:40px minmax(220px,1.2fr) minmax(160px,.8fr) auto}.record-row>:last-child{grid-column:4}.record-row>.badge{display:none}.student-time-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=1080px){body:has(.sidebar.is-open){overscroll-behavior:none;overflow:hidden}.app-main{margin-left:0}.sidebar{transition:transform .19s;transform:translate(-102%)}.sidebar.is-open{transform:translate(0);box-shadow:18px 0 50px #0000003b}.sidebar-close{display:inline-grid!important}.sidebar-scrim{z-index:35;visibility:hidden;opacity:0;background:#1414145c;padding:0;transition:opacity .18s,visibility .18s;display:block;position:fixed;inset:0}.sidebar-scrim.is-open{visibility:visible;opacity:1}.menu-button{display:inline-grid!important}.week-calendar{grid-template-columns:repeat(7,minmax(145px,1fr))}.rule-grid{grid-template-columns:1fr}}@media (width>=681px) and (width<=1080px){.account-table{overscroll-behavior-inline:contain;scrollbar-gutter:stable;overflow-x:auto}.account-table .data-table-head,.account-table .data-table-row{min-width:900px}}@media (width>=681px) and (width<=1024px){.member-table,.ledger-table,.account-recovery-table{overscroll-behavior-inline:contain;scrollbar-gutter:stable;overflow-x:auto}.member-table .data-table-head,.member-table .data-table-row{min-width:930px}.ledger-table .data-table-head,.ledger-table .data-table-row{min-width:850px}.account-recovery-table .data-table-head,.account-recovery-table .data-table-row{min-width:860px}}@media (width<=820px){.page-content{padding:22px 18px 42px}.topbar{padding:0 18px}.global-search{width:min(330px,48vw)}.global-search kbd{display:none}.page-header{flex-direction:column;align-items:flex-start}.page-actions{flex-wrap:wrap;width:100%}.dashboard-grid{grid-template-columns:1fr}.rights-summary-grid{grid-template-columns:1fr;padding:4px 0}.rights-summary-item{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:38px 1fr;padding:12px 16px}.rights-summary-item:last-child{border-bottom:0}.teacher-grid,.student-card-grid,.student-review-list,.student-practice-list,.settings-layout{grid-template-columns:1fr}.settings-nav{flex-direction:row;overflow-x:auto}.settings-nav button{flex:none}.teacher-availability-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-availability-bulk-actions{grid-column:1/-1}.teacher-availability-bulk-actions .button{flex:1}.teacher-availability-overview-list>button{grid-template-columns:minmax(125px,1fr) minmax(160px,1.4fr) minmax(72px,.55fr) minmax(72px,.55fr) auto}.theory-slot-form{grid-template-columns:1fr 1fr}.theory-slot-form>.button{grid-column:1/-1;width:100%}.theory-slot-list>article{grid-template-columns:1fr auto}.theory-slot-list>article>:nth-child(2){grid-column:1}.theory-slot-actions{flex-wrap:wrap}.calendar-toolbar{flex-wrap:wrap;align-items:flex-start}.week-switcher{justify-content:space-between;width:100%}.week-title{flex:1;min-width:0}.record-row{grid-template-columns:40px minmax(0,1fr) auto}.record-row .signature-progress,.record-row .completion-cell{grid-column:2/-1;justify-content:flex-start;display:flex}.record-row>.badge{grid-column:2/-1;justify-self:start;display:inline-flex}.record-row>.row-actions{grid-area:1/3}.record-row>.button{grid-column:auto}.record-row>.form-grid{grid-area:2/2/auto/-1;width:100%;grid-template-columns:minmax(0,1fr)!important}.record-row>.form-grid+.badge+.button{grid-area:3/2/auto/-1;justify-self:end}.ledger-table{overflow-x:auto}.ledger-table .data-table-head,.ledger-table .data-table-row{min-width:850px}.profile-layout{grid-template-columns:1fr}.student-entitlement-grid--full{grid-template-columns:1fr 1fr}.student-course-picker{grid-template-columns:repeat(4,minmax(130px,1fr));overflow-x:auto}.review-meta-grid{grid-template-columns:1fr 1fr}.review-meta-grid>div:nth-child(2){border-right:0}.review-meta-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (width<=680px){html,body{overscroll-behavior-y:none}body{font-size:13px}.login-shell{grid-template-rows:108px minmax(0,1fr);grid-template-columns:1fr;overflow-y:auto}.login-brand{justify-content:flex-start;padding:18px 24px}.login-brand strong{font-size:21px}.login-brand>div>span{font-size:11px}.login-shell>.page-content{padding:32px 22px calc(58px + env(safe-area-inset-bottom));align-items:start}.login-shell .page-header{margin-bottom:22px}.login-shell .page-header h1{font-size:25px}.login-shell>footer{right:0;bottom:max(12px, env(safe-area-inset-bottom));text-align:center;left:0}html{scroll-padding-top:68px;scroll-padding-bottom:calc(var(--mobile-nav-height) + 16px)}input,select,textarea{font-size:16px}.role-teacher .page-content,.role-student .page-content{padding-bottom:calc(var(--mobile-nav-height) + 22px)}.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;flex-basis:56px;gap:8px;height:56px;padding:0 12px}.topbar-left{flex:1;gap:8px;min-width:0}.topbar-actions{flex:none;gap:8px}.notification-panel{width:auto;max-height:calc(100dvh - 64px);position:fixed;top:56px;left:8px;right:8px}.notification-panel>div{max-height:calc(100dvh - 122px)}.role-teacher .notification-panel,.role-student .notification-panel{max-height:calc(100vh - 64px - var(--mobile-nav-height));max-height:calc(100dvh - 64px - var(--mobile-nav-height))}.role-teacher .notification-panel>div,.role-student .notification-panel>div{max-height:calc(100vh - 122px - var(--mobile-nav-height));max-height:calc(100dvh - 122px - var(--mobile-nav-height));scroll-padding-bottom:12px}.role-quick-switch{display:none}.global-search{width:100%;min-width:0}.global-search-results{width:auto;max-height:calc(100dvh - 64px);position:fixed;top:56px;left:8px;right:8px}.page-content{padding:18px 12px 34px}.portal-loading{min-height:max(320px, calc(100dvh - 164px - var(--mobile-nav-height)))}.page-header,.student-page-header{min-height:0;margin-bottom:16px}.page-header h1,.student-page-header h1{font-size:21px}.page-header p,.student-page-header p{font-size:11px}.page-actions{grid-template-columns:1fr 1fr;display:grid}.page-actions .button{width:100%}.stat-grid,.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-card,.metric-card{min-height:112px;padding:13px}.stat-value{font-size:25px}.metric-card{flex-direction:column;gap:7px;display:flex}.alert-strip{flex-wrap:wrap;align-items:flex-start}.alert-strip>button{border-top:1px solid var(--gold-100);justify-content:center;width:100%;min-height:32px;padding-top:8px;display:inline-flex}.timeline-row{grid-template-columns:48px 26px minmax(0,1fr);gap:7px 9px;padding:10px 12px}.timeline-row>.badge{grid-column:3;justify-self:start;display:inline-flex}.timeline-row>.icon-button{display:none}.attention-item{padding-inline:12px}.list-toolbar{flex-wrap:wrap;align-items:stretch}.list-toolbar .search-field{width:100%}.list-toolbar .segmented{max-width:100%;overflow-x:auto}.data-table-head{display:none}.member-table .data-table-row{border:1px solid var(--line);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;gap:10px;width:auto;min-height:0;margin:10px;padding:13px;display:grid}.member-table .data-table-row>span{grid-column:1}.member-table .data-table-row>svg{grid-area:1/2}.member-table .data-table-row>.member-service-cell,.member-table .data-table-row>.entitlement-mini,.member-table .data-table-row>.validity-cell,.member-table .data-table-row>.teacher-cell{grid-column:1/-1}.member-table .data-table-row>span:nth-child(2),.member-table .data-table-row>.teacher-cell{display:flex}.member-table .member-service-cell{flex-flow:wrap;align-items:center;gap:4px 8px}.member-table .teacher-cell{gap:8px}.member-table .mobile-cell-label{color:var(--muted);font-size:10px;font-weight:700;display:inline-flex}.member-table .entitlement-mini{flex-direction:row;gap:14px}.member-table .validity-cell{flex-direction:row;align-items:center}.table-footer{padding-inline:12px}.teacher-grid{grid-template-columns:1fr}.teacher-metrics{margin-inline:-4px}.teacher-availability-console{padding:14px}.teacher-availability-controls{grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;padding:11px}.teacher-availability-controls>.field{width:100%;max-width:100%}.teacher-availability-bulk-actions{grid-column:auto}.teacher-availability-statusbar{flex-direction:column;align-items:flex-start;gap:4px;padding-block:5px}.teacher-availability-legend{flex-wrap:wrap;justify-content:flex-start}.teacher-availability-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-availability-overview-head{flex-direction:column;justify-content:center;align-items:flex-start;gap:1px}.teacher-availability-overview-meta{text-align:left;align-items:flex-start}.teacher-availability-overview-list>button{grid-template-columns:minmax(0,1fr) auto auto;gap:8px 12px;padding:10px 11px}.teacher-availability-overview-list>button>.teacher-availability-person{grid-column:1/3}.teacher-availability-overview-list>button>span:nth-child(2){grid-column:1/-1}.teacher-availability-overview-list>button>svg{grid-area:1/3}.admin-schedule-toolbar .segmented{width:100%;display:flex;overflow-x:auto}.admin-schedule-toolbar .segmented button{flex:1 0 auto;min-width:64px}.admin-schedule-toolbar .select-field{width:100%;display:flex}.admin-schedule-toolbar .select-control,.admin-schedule-toolbar .select-control select{width:100%}.theory-slot-form{grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;padding:11px}.theory-slot-form>.field,.theory-slot-form>.button{grid-column:1;width:100%;max-width:100%}.week-calendar{grid-template-columns:repeat(7,minmax(132px,1fr))}.record-tabs{gap:15px}.record-row{grid-template-columns:36px minmax(0,1fr) auto;gap:9px;min-height:76px;padding:9px 11px}.record-type-icon{width:34px;height:34px}.record-row .signature-progress{grid-column:2/-1;justify-content:flex-start;display:flex}.record-row .completion-cell{grid-column:2/-1;display:flex}.record-row>.badge{grid-column:2/-1;justify-self:start;display:inline-flex}.record-row>.row-actions{grid-area:1/3}.record-row>.form-grid+.badge+.button{justify-self:stretch;width:100%}.entitlement-cards{grid-template-columns:1fr}.settings-section{padding:16px}.settings-account-profile{flex-direction:column;align-items:stretch;padding:0}.settings-account-profile dl{min-width:0;padding:0 15px 15px}.setting-row{align-items:flex-start}.form-grid,.review-fields,.score-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;align-items:flex-end;padding:0}.modal{border-radius:8px 8px 0 0;width:100%;max-height:94dvh}.modal-body{padding:16px}.modal-header{padding:13px 14px}.modal-footer{flex-wrap:wrap;justify-content:flex-start;min-height:62px;padding:10px 12px;overflow:visible}.modal-footer .button{white-space:normal;flex:calc(50% - 4px);min-width:0;height:auto;min-height:38px;padding-block:7px;line-height:1.3}.modal-footer .button>svg{flex:none}.modal-footer .button>span{overflow-wrap:anywhere;min-width:0}.course-picker{grid-template-columns:1fr}.drawer{width:100%;max-width:none}.drawer-footer{flex-wrap:wrap;flex:none;min-height:65px;padding:10px 12px}.drawer-footer .button{white-space:normal;flex:calc(50% - 4px);min-width:0;height:auto;min-height:38px;padding:7px 10px;line-height:1.3}.drawer-footer .button>svg{flex:none}.drawer-footer .button>span{overflow-wrap:anywhere;min-width:0}.detail-rights-grid{grid-template-columns:1fr}.detail-rights-grid article.full{grid-column:auto}.review-title-band{padding-inline:15px}.review-meta-grid{grid-template-columns:1fr 1fr}.consume-summary{flex-wrap:wrap;align-items:flex-start;margin-inline:14px}.consume-summary strong{margin-left:0}.consume-summary small{width:100%}.review-section{padding:17px 14px}.signature-section{grid-template-columns:1fr}.practice-summary{grid-template-columns:1fr 1fr}.practice-summary>div:first-child{grid-column:1/-1}.activation-option{grid-template-columns:1fr}.activation-option>.field:nth-child(2):last-child{grid-column:auto}.activation-option>.badge{justify-self:start}.lesson-people{grid-template-columns:1fr}.lesson-row{grid-template-columns:55px 4px minmax(0,1fr);gap:9px;padding:11px}.lesson-actions{border-top:1px solid var(--line);grid-column:1/-1;justify-content:flex-end;padding-top:8px}.lesson-title-line h3{order:-1;width:100%}.teacher-schedule-toolbar{flex-direction:column;align-items:stretch;gap:11px;padding:12px 10px}.teacher-schedule-type-filter{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));width:100%}.teacher-schedule-type-filter button{gap:5px;padding-inline:6px}.teacher-schedule-search-group{align-items:stretch;width:100%}.teacher-schedule-result-count{text-align:right}.teacher-schedule-week{padding:0 10px 14px}.teacher-schedule-week-header{align-items:flex-start;min-height:49px;padding-block:9px}.teacher-schedule-week-header>div{flex-direction:column;align-items:flex-start;gap:2px}.teacher-schedule-date-header{padding-inline:10px}.teacher-schedule-row{grid-template-columns:54px minmax(0,1fr) auto;gap:7px 8px;padding:10px}.teacher-schedule-actions{flex-wrap:wrap}.teacher-schedule-actions .button{flex:112px;min-width:0}.teacher-schedule-actions .icon-button{flex:0 0 34px}.student-contact-list,.student-entitlements{grid-template-columns:1fr}.student-card-footer{flex-direction:column;align-items:flex-start}.task-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.task-row{grid-template-columns:36px minmax(0,1fr);padding:10px 12px}.task-actions{grid-column:1/-1;justify-content:flex-end}.student-page-header{align-items:flex-start}.student-entitlement-grid,.student-entitlement-grid--full{grid-template-columns:1fr;padding:11px}.student-course-picker{grid-template-columns:repeat(4,minmax(135px,1fr))}.entitlement-balance{grid-template-columns:1fr 1fr}.student-booking-step{padding:15px 12px}.student-booking-form>.student-booking-step:last-of-type{padding-bottom:89px}.student-time-grid{grid-template-columns:repeat(2,1fr)}.student-time-slot{scroll-margin-bottom:calc(var(--mobile-nav-height) + 84px)}.student-booking-submit{z-index:3;bottom:calc(var(--mobile-nav-height) + 2px);padding:10px 12px;position:sticky}.student-booking-summary{max-width:55%}.student-reschedule-status{grid-template-columns:24px minmax(0,1fr)}.student-reschedule-status>span{grid-column:2}.student-primary-button{min-width:122px}.student-tab-list,.record-tab-list{overflow-x:auto}.student-tab-list button,.record-tab-list button{flex:none}.student-review-list,.student-practice-list,.student-practice-card__notes,.student-profile-panel dl{grid-template-columns:1fr}.student-membership-banner{min-height:96px;padding:14px}.student-membership-banner strong{font-size:14px}.student-teacher-row{grid-template-columns:minmax(0,1fr)}.student-teacher-row>span:last-child{grid-column:1}.mobile-nav{z-index:32;height:var(--mobile-nav-height);padding:6px max(6px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));border-top:1px solid var(--line);-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;grid-template-columns:repeat(5,1fr);grid-auto-rows:minmax(0,1fr);transition:opacity .12s,transform .12s;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 22px #00000012}.role-teacher .system-copyright,.role-student .system-copyright{padding-bottom:calc(var(--mobile-nav-height) + 12px)}.role-teacher .toast,.role-student .toast{bottom:calc(var(--mobile-nav-height) + 12px)}.mobile-nav button{color:var(--muted);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:9px;display:flex}.mobile-nav button.is-active{color:var(--green-700);font-weight:700}.app-shell:has(input:focus,select:focus,textarea:focus) .mobile-nav{pointer-events:none;opacity:0;transform:translateY(100%)}}.account-console{overflow:hidden}.admin-self-profile{background:#fff;min-height:360px}.admin-self-profile-heading{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:76px;padding:16px 20px;display:flex}.admin-self-profile-heading>span:last-child{flex-direction:column;min-width:0;display:flex}.admin-self-profile-heading strong{font-size:15px}.admin-self-profile-heading small{color:var(--muted);margin-top:3px;font-size:10px}.admin-self-profile-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:760px;padding:20px;display:grid}.admin-self-profile-scope,.admin-self-profile-form>.info-callout,.admin-self-profile-actions{grid-column:1/-1}.admin-self-profile-actions{justify-content:flex-end;display:flex}.admin-self-password{border-top:1px solid var(--line)}.admin-self-password-heading{background:var(--surface-soft)}.account-primary-tabs{border-bottom:1px solid var(--line);background:#fff;align-items:center;min-height:58px;padding:10px 16px;display:flex}.account-role-bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:62px;padding:11px 16px;display:flex}.account-role-bar>span{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.account-summary{background:var(--surface-soft);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.account-summary>div{border-right:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:78px;display:flex}.account-summary>div:last-child{border-right:0}.account-summary small{color:var(--muted);font-size:11px}.account-summary strong{margin-top:2px;font-size:22px;line-height:1.2}.account-page-error{min-height:58px;color:var(--red-700);background:var(--red-50);border-bottom:1px solid var(--red-100);align-items:center;gap:10px;padding:10px 16px;display:flex}.account-page-error>span{flex-direction:column;flex:1;min-width:0;display:flex}.account-page-error small{color:var(--muted);font-size:10px}.account-toolbar{min-height:66px}.account-table .data-table-head,.account-table .data-table-row{grid-template-columns:minmax(190px,1.1fr) minmax(190px,1fr) 82px 78px minmax(245px,1.25fr)}.account-table .data-table-row{min-height:76px}.account-table .table-person{flex-direction:row;align-items:center}.account-login-cell{min-width:0}.account-login-cell strong,.account-login-cell small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.account-login-cell strong{font-size:12px}.account-login-cell small{color:var(--muted);font-size:10px}.account-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;flex-direction:row!important;align-items:center!important;display:flex!important}.account-status-switch{background:var(--line-strong);width:42px;height:24px;box-shadow:inset 0 0 0 1px var(--ink-400);border-radius:12px;flex:0 0 42px;align-items:center;padding:2px;transition:background .15s,box-shadow .15s;display:flex}.account-status-switch>span{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;box-shadow:0 1px 3px #0003}.account-status-switch.is-on{background:var(--green-700);box-shadow:inset 0 0 0 1px var(--green-900)}.account-status-switch.is-on>span{transform:translate(18px)}.account-login-note,.account-confirm-panel,.account-batch-summary,.account-secret-warning{background:var(--green-50);border:1px solid var(--green-100);border-radius:6px;align-items:flex-start;gap:10px;padding:13px;display:flex}.account-download-warning{color:var(--red-700);background:var(--red-50);border-color:var(--red-100)}.account-login-note>span,.account-confirm-panel>span,.account-batch-summary>span,.account-secret-warning>span{flex-direction:column;min-width:0;display:flex}.account-login-note small,.account-confirm-panel small,.account-batch-summary small,.account-secret-warning small{color:var(--muted);font-size:11px}.account-create-form .info-callout{margin:0}.account-confirm-panel+.info-callout{margin-top:12px}.account-readonly-aliases{background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;display:grid}.account-readonly-aliases>div{border-right:1px solid var(--line);min-width:0;padding:11px 12px}.account-readonly-aliases>div:last-child{border-right:0}.account-readonly-aliases dt{color:var(--muted);font-size:9px}.account-readonly-aliases dd{text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:11px;overflow:hidden}.account-batch-progress{background:var(--surface-soft);border:1px solid var(--line);border-radius:5px;height:29px;margin-top:13px;position:relative;overflow:hidden}.account-batch-progress>span{background:var(--green-100);transition:width .15s;position:absolute;inset:0 auto 0 0}.account-batch-progress>small{z-index:1;height:100%;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;align-items:center;padding:0 9px;font-size:10px;display:flex;position:relative;overflow:hidden}.account-batch-progress.is-indeterminate>span{width:38%;animation:1.1s ease-in-out infinite alternate account-batch-loading}.account-batch-progress+.info-callout,.account-batch-summary+.info-callout{margin-top:12px}@keyframes account-batch-loading{0%{transform:translate(-20%)}to{transform:translate(185%)}}.account-secret-warning{color:var(--gold-700);background:var(--gold-50);border-color:var(--gold-100);margin-bottom:14px}.account-secret-list{border:1px solid var(--line);border-radius:6px;overflow:hidden}.account-secret-row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(125px,1fr) minmax(145px,1fr) minmax(160px,1fr) 36px;align-items:center;gap:11px;min-height:65px;padding:9px 11px;display:grid}.account-secret-row:last-child{border-bottom:0}.account-secret-row>span{flex-direction:column;min-width:0;display:flex}.account-secret-row small{color:var(--muted);font-size:9px}.account-secret-row code{text-overflow:ellipsis;white-space:nowrap;font-family:Consolas,Courier New,monospace;font-size:12px;overflow:hidden}.account-copy-feedback{color:var(--green-700);align-items:center;gap:6px;margin-top:10px;font-size:11px;display:flex}.account-batch-failures{color:var(--red-700);background:var(--red-50);border:1px solid var(--red-100);border-radius:6px;flex-direction:column;align-items:flex-start;gap:3px;margin-top:12px;padding:11px 12px;font-size:11px;display:flex}.account-recovery-heading{background:var(--surface-soft);border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:72px;padding:12px 16px;display:flex}.account-recovery-heading-icon{width:38px;height:38px;color:var(--gold-700);background:var(--gold-50);border:1px solid var(--gold-100);border-radius:6px;place-items:center;display:grid}.account-recovery-heading>span:nth-child(2){flex-direction:column;flex:1;min-width:0;display:flex}.account-recovery-heading small{color:var(--muted);font-size:10px}.account-recovery-table .data-table-head,.account-recovery-table .data-table-row{grid-template-columns:minmax(220px,1.25fr) minmax(190px,1fr) 150px 80px 120px}.account-credentials-view>.account-secret-warning{margin:14px 16px}.account-credentials-table .data-table-head,.account-credentials-table .data-table-row{grid-template-columns:minmax(220px,1.2fr) minmax(240px,1.25fr) 120px minmax(180px,.8fr)}.account-recovery-table .data-table-row{min-height:76px}.account-recovery-table .table-person{flex-direction:row;align-items:center}.account-recovery-table .data-table-row>span:nth-child(3) small{color:var(--muted);font-size:9px}.account-recovery-detail{flex-direction:column;gap:13px;display:flex}.account-recovery-detail .info-callout{margin:0}.login-recovery-link{min-height:34px;color:var(--green-700);background:0 0;justify-content:center;align-items:center;gap:6px;font-size:12px;display:flex}.login-recovery-link:hover{text-decoration:underline}.login-recovery-success{color:var(--green-700);background:var(--green-50);border:1px solid var(--green-100);border-radius:6px;align-items:flex-start;gap:11px;padding:15px;display:flex}.login-recovery-success>span{flex-direction:column;display:flex}.login-recovery-success small{color:var(--muted);margin-top:2px;font-size:11px}.login-recovery-form .info-callout{margin:0}@media (width<=680px){.account-primary-tabs{padding:10px 11px;overflow-x:auto}.account-primary-tabs .segmented{width:max-content;min-width:100%}.account-primary-tabs .segmented button{flex:1 0 auto;min-width:92px}.account-primary-tabs .segmented span{white-space:nowrap}.admin-self-profile-heading{align-items:flex-start;padding:14px 12px}.admin-self-profile-form{grid-template-columns:1fr;padding:14px 12px}.admin-self-profile-scope,.admin-self-profile-form>.info-callout,.admin-self-profile-actions{grid-column:1}.admin-self-profile-actions .button{width:100%}.account-role-bar{flex-direction:column;align-items:stretch;gap:8px;padding:11px}.account-role-bar .segmented{width:100%}.account-role-bar .segmented button{flex:1}.account-role-bar>span{padding-inline:2px}.account-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.account-summary>div{min-height:68px}.account-summary>div:nth-child(2){border-right:0}.account-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.account-page-error{flex-wrap:wrap;align-items:flex-start;padding:11px 12px}.account-page-error>svg{margin-top:2px}.account-page-error .button{margin-left:28px}.account-toolbar .segmented{width:100%}.account-toolbar .segmented button{flex:1}.account-table .data-table-head{display:none}.account-table .data-table-row{border:1px solid var(--line);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;width:auto;min-height:0;margin:10px;padding:13px;display:grid}.account-table .data-table-row>span{min-width:0}.account-table .data-table-row>.table-person{grid-column:1/-1}.account-table .account-login-cell{grid-column:1}.account-table .data-table-row>span:nth-child(3),.account-table .data-table-row>span:nth-child(4){grid-column:1;align-items:flex-start}.account-table .account-row-actions{grid-area:auto/1/auto/-1;justify-content:flex-start;align-self:center}.account-table .table-footer{margin-top:0}.account-secret-row{grid-template-columns:minmax(0,1fr) 36px;gap:8px 10px;padding:11px}.account-secret-row>span:first-child{grid-column:1}.account-secret-row>span:nth-child(2),.account-secret-row>span:nth-child(3){grid-column:1/-1}.account-secret-row>.icon-button{grid-area:1/2}.account-secret-row code{overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.account-readonly-aliases{grid-template-columns:1fr}.account-readonly-aliases>div{border-right:0;border-bottom:1px solid var(--line)}.account-readonly-aliases>div:last-child{border-bottom:0}.account-recovery-heading{flex-wrap:wrap;align-items:flex-start;padding:12px}.account-recovery-heading>.badge{margin-left:48px}.account-recovery-table .data-table-head{display:none}.account-recovery-table .data-table-row{border:1px solid var(--line);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;width:auto;min-height:0;margin:10px;padding:13px;display:grid}.account-recovery-table .data-table-row>.table-person{grid-column:1/-1}.account-recovery-table .account-login-cell,.account-recovery-table .data-table-row>span:nth-child(3),.account-recovery-table .data-table-row>span:nth-child(4){grid-column:1;align-items:flex-start}.account-recovery-table .account-row-actions{grid-area:2/2/5;align-self:center}.app-main,.page-content,.page-content>*,.settings-layout,.settings-panel,.settings-section,.surface,.student-booking-form{width:100%;min-width:0;max-width:100%}.list-surface{width:100%;min-width:0;max-width:100%;overflow-x:clip}.page-actions .button{white-space:normal;min-width:0;height:auto;min-height:38px;padding-block:7px;line-height:1.3}.settings-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:100%;padding:5px;display:grid;overflow:visible}.settings-nav button{text-align:center;justify-content:center;width:100%;min-width:0;padding-inline:6px}.settings-section>p,.setting-row>span,.setting-row strong,.setting-row small{overflow-wrap:anywhere;min-width:0}.setting-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;display:grid}.list-toolbar .segmented,.admin-schedule-toolbar .segmented,.account-primary-tabs .segmented,.account-role-bar .segmented,.account-toolbar .segmented{flex-wrap:wrap;width:100%;min-width:0;max-width:100%;height:auto;display:flex;overflow:visible}.list-toolbar .segmented button,.admin-schedule-toolbar .segmented button,.account-primary-tabs .segmented button,.account-role-bar .segmented button,.account-toolbar .segmented button{white-space:normal;flex:74px;min-width:0}.account-primary-tabs{overflow:visible}.account-primary-tabs .segmented{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.account-primary-tabs .segmented button{width:100%;min-width:0}.record-tabs,.record-tabs.attendance-subject-tabs{background:var(--surface);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:4px;width:100%;min-height:0;padding:5px;display:grid;overflow:visible}.record-tabs button,.record-tabs.attendance-subject-tabs button{white-space:normal;background:0 0;border-radius:4px;justify-content:center;width:100%;min-width:0;height:38px;padding:0 7px}.record-tabs button.is-active,.record-tabs.attendance-subject-tabs button.is-active{background:var(--green-50)}.record-tabs button.is-active:after{display:none}.student-tab-list,.record-tab-list{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid;overflow:visible}.student-tab-list button,.record-tab-list button{justify-content:center;width:100%;min-width:0;padding-inline:7px}.week-calendar{grid-template-columns:1fr;min-height:0;overflow:visible}.calendar-day{border-right:0;border-bottom:1px solid var(--line);min-width:0}.calendar-day:last-child{border-bottom:0}.calendar-day>header{height:60px}.calendar-day-body{min-height:0}.ledger-table{overflow:visible}.ledger-table .data-table-row{border:1px solid var(--line);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;width:auto;min-width:0;min-height:0;margin:10px;padding:12px;display:grid}.ledger-table .data-table-row>span{min-width:0}.ledger-table .data-table-row>span:first-child,.ledger-table .data-table-row>span:last-child{grid-column:1/-1}.ledger-table .data-table-row>span:last-child{overflow-wrap:anywhere;white-space:normal}.student-course-picker{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;overflow:visible}.student-course-option{min-width:0;padding:10px}.student-course-option small{overflow-wrap:anywhere}.student-date-scroller{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;overflow:visible}.student-date-option{min-width:0}.teacher-availability-bulk-actions,.teacher-schedule-actions,.theory-slot-actions,.student-card-actions{flex-wrap:wrap;justify-content:center;width:100%}}@media (width<=390px){.page-content{padding-inline:9px}.teacher-availability-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid{grid-template-columns:1fr 1fr}.stat-card{min-height:108px;padding:11px}.stat-note{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-booking-summary{display:none}.student-primary-button{width:100%}.practice-summary{grid-template-columns:1fr}.practice-summary>div:first-child{grid-column:auto}.course-record-confirmation-action .button{width:100%}}@media print{@page{size:A4;margin:13mm}html,body{background:#fff!important}body *{visibility:hidden!important}#print-root,#print-root *{visibility:visible!important}#print-root.print-root{color:#111;background:#fff;width:100%;display:block;position:absolute;top:0;left:0}.print-sheet{font-family:Microsoft YaHei,PingFang SC,sans-serif;font-size:10.5pt;line-height:1.6}.print-header{border-bottom:1.5pt solid var(--green-900);justify-content:space-between;align-items:center;padding-bottom:7mm;display:flex}.print-header>div{align-items:center;display:flex}.print-header>div>span{flex-direction:column;display:flex}.print-header strong{color:var(--green-900);font-size:15pt}.print-header small,.print-header>span{color:#666;font-size:8pt}.print-sheet>h1{text-align:center;margin:9mm 0 1mm;font-size:20pt}.print-number{color:#666;text-align:center;margin-bottom:8mm;font-size:8pt}.print-meta,.score-table,.print-list{border-collapse:collapse;width:100%}.print-meta th,.print-meta td,.score-table th,.score-table td,.print-list th,.print-list td{text-align:left;vertical-align:top;border:.7pt solid #c9c9c9;padding:2.5mm 3mm}.print-meta th,.score-table th,.print-list th{color:#44474b;background:#f5f5f5;font-weight:700}.print-sheet>section{break-inside:avoid;border:.7pt solid #d0d0d0;min-height:18mm;margin-top:5mm;padding:3.5mm}.print-sheet section h2{color:var(--green-900);margin-bottom:2mm;font-size:10pt}.print-sheet section p{white-space:pre-wrap}.print-two-column{grid-template-columns:1fr 1fr;gap:4mm;display:grid}.print-two-column section{break-inside:avoid;border:.7pt solid #d0d0d0;min-height:29mm;margin-top:5mm;padding:3.5mm}.print-signatures{break-inside:avoid;grid-template-columns:1fr 1fr;gap:6mm;margin-top:8mm;display:grid}.print-signatures>div{border-bottom:.7pt solid #909090;flex-direction:column;justify-content:center;align-items:center;min-height:27mm;display:flex}.print-signatures span{color:#666;align-self:flex-start;font-size:8pt}.print-signatures strong{margin:3mm 0 1mm;font-size:11pt}.print-signatures small{color:#777;font-size:7.5pt}.print-sheet>footer{color:#777;text-align:center;border-top:.7pt solid #bbb;margin-top:10mm;padding-top:3mm;font-size:7.5pt}.print-list{font-size:8pt}.print-list td small{color:#666;display:block}}
