@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-latin-400-normal-BqEyEoaF.woff2)format("woff2"),url(/assets/roboto-latin-400-normal-D27F5sTu.woff)format("woff")}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-latin-500-normal-7RbcRiD8.woff2)format("woff2"),url(/assets/roboto-latin-500-normal-fsTFPL3E.woff)format("woff")}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/roboto-latin-700-normal-BZpUvMxY.woff2)format("woff2"),url(/assets/roboto-latin-700-normal-YuyVweIx.woff)format("woff")}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/roboto-latin-900-normal-lk0O8k6m.woff2)format("woff2"),url(/assets/roboto-latin-900-normal-BB3clvIY.woff)format("woff")}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.table{display:table}}:root{--ink:#172631;--muted:#71808a;--paper:#f5f3ed;--card:#fffefb;--line:#e5e2d9;--navy:#152b36;--teal:#1c7c78;--teal-soft:#e5f2ef;--orange:#da774b;--gold:#d5aa54;--red:#bd4f4f;--shadow:0 12px 36px #1726310f;--font-ui:"Roboto", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif}*{box-sizing:border-box}html{background:var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);margin:0;font-size:14px}button,input,select{font:inherit}button{color:inherit}.access-page{background:radial-gradient(circle at 22% 18%,#68b9ae2e,#0000 34%),linear-gradient(145deg,#102a34,#183c46 58%,#0e252e);place-items:center;min-height:100vh;margin:0;padding:36px 20px;display:grid}.access-card{background:#fffefbf7;border:1px solid #ffffff2e;border-top:3px solid #b88935;border-radius:20px;width:min(460px,100%);padding:32px 36px 36px;box-shadow:0 28px 80px #03141b47}.access-brand{text-align:center;justify-items:center;gap:10px;display:grid}.access-brand-logo{background:#fff;border-radius:14px;width:290px;height:174px;overflow:hidden}.access-brand-logo img{object-fit:cover;object-position:center;width:100%;height:100%;transform:scale(1.28)}.access-brand-copy strong{letter-spacing:.11em;font-size:17px;display:block}.access-brand-copy span{color:#8b7a60;letter-spacing:.2em;text-transform:uppercase;margin-top:4px;font-size:8px;display:block}.access-intro{margin:34px 0 24px}.access-intro>span{color:var(--teal);letter-spacing:.17em;font-size:10px;font-weight:900}.access-intro h1{font-family:var(--font-ui);margin:7px 0 8px;font-size:30px}.access-intro p,.access-note{color:var(--muted);margin:0;font-size:11px;line-height:1.7}.access-card form{gap:17px;display:grid}.access-switch{border:1px solid var(--line);background:#f2f1ec;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));margin:-7px 0 20px;padding:3px;display:grid}.access-switch button{color:#7b898e;text-align:center;cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;width:100%;height:34px;font-size:10px;font-weight:800;display:grid}.access-switch button.active{color:#fff;background:var(--teal);box-shadow:0 4px 12px #1c7c782e}.access-card form label{color:#56686f;gap:7px;font-size:11px;font-weight:800;display:grid}.access-card form label small{color:#97a2a5;font-size:9px;font-weight:500}.access-card form input{border:1px solid var(--line);background:#fff;border-radius:9px;outline:0;width:100%;height:44px;padding:0 13px}.access-card form input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #1c7c7817}.access-card form .button{width:100%;min-height:44px;margin-top:3px}.access-card .form-success{color:#1f756e;margin:-4px 0 0;font-size:10px}.access-note{border-top:1px solid var(--line);text-align:center;margin-top:20px;padding-top:18px}.access-loading{color:#d8e9e7;background:#112d36;align-content:center;justify-items:center;gap:14px;min-height:100vh;display:grid}.access-loading-logo{background:#fff;border:1px solid #d5aa5485;border-radius:18px;width:86px;height:86px;overflow:hidden;box-shadow:0 14px 36px #0003}.access-loading-logo img{object-fit:cover;width:100%;height:100%;transform:scale(1.72)}.access-loading p{letter-spacing:.08em;margin:0;font-size:11px}.admin-shell{min-height:100vh}.sidebar{z-index:30;color:#eaf3f2;background:radial-gradient(circle at 30px 45px,#5cb0a82e,#0000 170px),linear-gradient(165deg,#17323d 0%,#10262f 70%,#0c2028 100%);flex-direction:column;width:246px;padding:28px 18px 22px;display:flex;position:fixed;inset:0 auto 0 0;box-shadow:8px 0 28px #0a1e2614}.brand{align-items:center;gap:11px;padding:0 7px 28px;display:flex}.brand-logo{background:#fff;border:1px solid #d5aa548f;border-radius:15px 5px;flex:none;width:58px;height:58px;overflow:hidden;box-shadow:0 8px 24px #0003}.brand-logo img{object-fit:cover;width:100%;height:100%;transform:scale(1.72)}.brand-copy strong{color:#fff;letter-spacing:.1em;white-space:nowrap;font-size:15px;display:block}.brand-copy span{color:#cdb27c;letter-spacing:.2em;margin-top:4px;font-size:10px;font-weight:700;display:block}.sidebar nav{min-height:0;overflow-y:auto}.nav-section+.nav-section{margin-top:15px}.nav-section h2{color:#6f9394;letter-spacing:.16em;margin:0 12px 7px;font-size:9px;font-weight:800}.nav-section>div{gap:4px;display:grid}.sidebar nav button{color:#aac0c1;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;width:100%;min-height:41px;padding:0 13px;transition:all .18s;display:flex}.sidebar nav button:hover{color:#fff;background:#ffffff0e}.sidebar nav button.active{color:#fff;background:#67b9ae2b;box-shadow:inset 3px 0 #70c1b6}.nav-mark{border:1px solid #aed3cf2e;border-radius:7px;place-items:center;width:25px;height:25px;font-size:11px;font-weight:800;display:grid}.sidebar nav button.active .nav-mark{color:#8fd2c9;border-color:#8fd2c966}.sidebar nav em{color:#fff;background:#c9664a;border-radius:10px;place-items:center;min-width:23px;height:20px;margin-left:auto;padding:0 6px;font-size:10px;font-style:normal;display:grid}.sidebar-foot{border-top:1px solid #aed3cf1f;margin-top:auto;padding:17px 11px 1px}.sync-dot{color:#bad0cf;margin-bottom:9px;font-size:11px}.sync-dot i{background:#72c2a8;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;box-shadow:0 0 0 4px #72c2a81a}.sidebar-foot small{color:#6f9394;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.7;display:block;overflow:hidden}main{min-height:100vh;margin-left:246px}.topbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;background:#fffefbd1;border-bottom:1px solid #dddacfd9;align-items:center;gap:28px;min-height:112px;padding:23px 34px 22px;display:flex;position:sticky;top:0}.page-heading{min-width:255px}.eyebrow{color:var(--teal);letter-spacing:.17em;margin-bottom:3px;font-size:10px;font-weight:800;display:block}.page-heading h1{font-family:var(--font-ui);letter-spacing:.02em;margin:0;font-size:27px;font-weight:700}.page-heading p{color:var(--muted);margin:5px 0 0;font-size:11px}.top-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.access-role{white-space:nowrap;border-radius:15px;align-items:center;min-height:30px;padding:0 11px;font-size:9px;font-weight:900;display:inline-flex}.access-role-admin{color:#8e5d20;background:#f8edd9}.access-role-teacher{color:#1d726c;background:#e3f1ed}.button{cursor:pointer;border:1px solid #0000;border-radius:8px;min-height:38px;padding:0 16px;font-size:12px;font-weight:700;transition:all .17s}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:wait;transform:none}.button-light{border-color:var(--line);color:#52626c;background:#fff}.button-light:hover{border-color:#c9cec9;box-shadow:0 5px 16px #1726310f}.button-primary{color:#fff;background:var(--teal);box-shadow:0 6px 18px #1c7c782b}.button-primary:hover{background:#146e6b}.searchbox{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:8px;width:230px;height:38px;padding:0 12px;display:flex}.searchbox span{color:#98a3a7;font-size:18px;transform:rotate(-12deg)}.searchbox input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:12px}.searchbox input::placeholder{color:#a7afb2}.menu-button{border:1px solid var(--line);background:#fff;border-radius:8px;width:38px;height:38px;display:none}.content{max-width:1580px;margin:0 auto;padding:28px 34px 44px}.notice-strip{border:1px solid #cde2dc;border-left:4px solid var(--teal);background:#eff7f4;border-radius:9px;justify-content:space-between;align-items:center;min-height:61px;margin-bottom:20px;padding:12px 18px;display:flex}.notice-strip>div{align-items:center;gap:12px;display:flex}.notice-icon{color:#fff;background:var(--teal);border-radius:50%;place-items:center;width:29px;height:29px;font-weight:900;display:grid}.notice-strip strong{font-size:12px}.notice-strip p{color:#69817e;margin:3px 0 0;font-size:10px}.source-pill{color:#1c716e;background:#1c7c7817;border-radius:12px;padding:6px 10px;font-size:10px;font-weight:800}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px;display:grid}.metric-card{border:1px solid var(--line);background:var(--card);min-height:137px;box-shadow:var(--shadow);border-radius:11px;padding:21px 20px 15px;position:relative;overflow:hidden}.metric-card>span{color:var(--muted);font-size:11px;font-weight:700}.metric-card>strong{font-family:var(--font-ui);margin:9px 0 7px;font-size:27px;line-height:1;display:block}.metric-card small{color:#8b969c;font-size:10px}.metric-card button{color:var(--orange);cursor:pointer;background:0 0;border:0;padding:0;font-size:10px;font-weight:800}.metric-line{height:3px;position:absolute;bottom:0;left:0;right:0}.metric-line.teal{background:var(--teal)}.metric-line.blue{background:#537f9e}.metric-line.gold{background:var(--gold)}.metric-line.coral{background:var(--orange)}.metric-alert{background:linear-gradient(145deg,#fffdfa,#fff8f3)}.dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:18px;display:grid}.weekly-dashboard{gap:18px;display:grid}.calendar-page{grid-template-columns:minmax(0,1fr) 178px;align-items:start;gap:14px;display:grid}.calendar-main{gap:13px;min-width:0;display:grid}.calendar-toolbar{min-height:86px;box-shadow:var(--shadow);background:linear-gradient(130deg,#f0f8f5 0%,#fff 60%,#fbf5e9 100%);border:1px solid #c9dfda;border-radius:12px;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:18px;padding:15px 18px;display:grid}.calendar-month-controls{align-items:center;gap:5px;display:flex}.calendar-month-controls button{color:#3d6567;cursor:pointer;background:#ffffffdb;border:1px solid #d6dfdb;border-radius:8px;width:34px;height:34px;padding:0;font-size:20px;font-weight:800}.calendar-month-controls button:hover{color:#fff;border-color:var(--teal);background:var(--teal)}.calendar-month-controls .calendar-today-button{width:auto;padding:0 12px;font-size:9px}.calendar-month-title{text-align:center}.calendar-month-title span{color:var(--teal);letter-spacing:.15em;font-size:8px;font-weight:900}.calendar-month-title h2{margin:3px 0 0;font-size:22px}.calendar-legend{flex-wrap:wrap;justify-content:flex-end;gap:7px 11px;display:flex}.calendar-legend span{color:#66757b;white-space:nowrap;align-items:center;gap:5px;font-size:8px;font-weight:800;display:flex}.calendar-legend i{border-radius:3px;width:8px;height:8px}.calendar-dot-adult{background:#3f8c88}.calendar-dot-child{background:#d28b42}.calendar-dot-private{background:#7869a5}.calendar-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.calendar-summary-grid article{border:1px solid var(--line);background:var(--card);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;min-height:67px;padding:12px 15px;display:flex;box-shadow:0 5px 18px #1f333a0a}.calendar-summary-grid span{color:var(--muted);font-size:9px;font-weight:800}.calendar-summary-grid strong{color:var(--ink);font-size:21px}.calendar-board-scroll{border:1px solid var(--line);background:var(--card);min-width:0;box-shadow:var(--shadow);border-radius:11px;overflow-x:auto}.calendar-board{min-width:900px}.calendar-weekdays{border-bottom:1px solid var(--line);background:#f7f6f2;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays span{color:#718087;text-align:center;border-left:1px solid #ece9e2;padding:10px 8px;font-size:9px;font-weight:900}.calendar-weekdays span:first-child{border-left:0}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-day{background:#fffefb;border-top:1px solid #ece9e2;border-left:1px solid #ece9e2;min-width:0;min-height:148px;padding:8px}.calendar-day:nth-child(7n+1){border-left:0}.calendar-day:nth-child(-n+7){border-top:0}.calendar-day-outside{background:#f7f6f2}.calendar-day-outside .calendar-day-head,.calendar-day-outside .calendar-day-events{opacity:.44}.calendar-day-today{background:#f2faf7;position:relative;box-shadow:inset 0 0 0 2px #1c7c7894}.calendar-day-head{align-items:center;gap:6px;min-height:25px;display:flex}.calendar-day-head strong{color:#354b54;border-radius:8px;place-items:center;width:24px;height:24px;font-size:10px;display:grid}.calendar-day-today .calendar-day-head strong{color:#fff;background:var(--teal)}.calendar-day-head span{color:var(--teal);font-size:7px;font-weight:900}.calendar-day-head small{color:#929c9f;margin-left:auto;font-size:7px}.calendar-day-events{gap:4px;margin-top:5px;display:grid}.calendar-event{text-align:left;cursor:pointer;border:0;border-left:3px solid;border-radius:5px;grid-template-columns:33px minmax(0,1fr);gap:1px 4px;min-width:0;min-height:23px;padding:4px 5px;display:grid;overflow:hidden}.calendar-event:hover{filter:saturate(1.12)brightness(.98)}.calendar-event time{grid-row:1/3;align-self:center;font-size:7px;font-weight:900}.calendar-event strong,.calendar-event span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.calendar-event strong{font-size:8px;line-height:1.2}.calendar-event span{font-size:7px;line-height:1.2}.calendar-event-adult-group{color:#226c69;background:#e7f3f0;border-color:#3f8c88}.calendar-event-child-group{color:#8b5b20;background:#fbf0df;border-color:#d28b42}.calendar-event-private{color:#5f5384;background:#eeebf7;border-color:#7869a5}.calendar-more{color:#65777e;text-align:left;cursor:pointer;background:0 0;border:0;padding:3px 5px;font-size:7px;font-weight:800}.calendar-more:hover{color:var(--teal)}.calendar-filter-panel{top:128px}.calendar-filter-panel>.button{width:100%}.calendar-filter-result{color:#557078;text-align:center;background:#f1f6f4;border-radius:8px;padding:10px}.calendar-filter-result span,.calendar-filter-result strong{display:block}.calendar-filter-result span{font-size:8px}.calendar-filter-result strong{color:var(--teal);margin-top:3px;font-size:16px}.calendar-event-modal{width:min(590px,100%)}.calendar-event-modal .modal-head{align-items:flex-start}.calendar-day-modal{width:min(660px,100%);max-height:calc(100vh - 40px);overflow-y:auto}.calendar-day-agenda{gap:7px;display:grid}.calendar-day-agenda>button{text-align:left;cursor:pointer;background:#f9faf8;border:1px solid #e3e7e2;border-radius:8px;grid-template-columns:82px 72px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:9px 11px;display:grid}.calendar-day-agenda>button:hover{background:#f1f8f5;border-color:#b8d7d1}.calendar-day-agenda time{color:#526a72;font-size:9px;font-weight:900}.calendar-day-agenda .calendar-type-badge{justify-content:center;margin:0}.calendar-day-agenda div{min-width:0}.calendar-day-agenda strong,.calendar-day-agenda small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.calendar-day-agenda strong{font-size:10px}.calendar-day-agenda small{color:var(--muted);margin-top:4px;font-size:8px}.calendar-day-agenda b{color:var(--teal);font-size:17px}.calendar-type-badge{border-radius:11px;align-items:center;min-height:21px;margin-bottom:8px;padding:0 8px;font-size:8px;font-weight:900;display:inline-flex}.calendar-type-adult-group{color:#226c69;background:#e7f3f0}.calendar-type-child-group{color:#8b5b20;background:#fbf0df}.calendar-type-private{color:#5f5384;background:#eeebf7}.calendar-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.calendar-detail-grid>div{background:#f8faf8;border:1px solid #e5e7e1;border-radius:8px;align-content:center;gap:5px;min-height:68px;padding:12px;display:grid}.calendar-detail-grid span:not(.status){color:var(--muted);font-size:8px;font-weight:800}.calendar-detail-grid strong{color:#354b54;font-size:11px;line-height:1.5}.calendar-detail-attendees{grid-column:1/-1}.weekly-hero{min-height:112px;box-shadow:var(--shadow);background:linear-gradient(130deg,#f0f8f5 0%,#fff 58%,#fbf5e9 100%);border:1px solid #c9dfda;border-radius:13px;justify-content:space-between;align-items:center;gap:24px;padding:22px 24px;display:flex}.weekly-hero>div:first-child>span{color:var(--teal);letter-spacing:.13em;font-size:9px;font-weight:900}.weekly-hero h2{font-family:var(--font-ui);margin:7px 0 5px;font-size:24px}.weekly-hero p{color:var(--muted);margin:0;font-size:10px}.weekly-legend{background:#ffffffbf;border:1px solid #d1d2c9cc;border-radius:18px;align-items:center;gap:14px;padding:9px 12px;display:flex}.weekly-legend span{color:#66757b;white-space:nowrap;align-items:center;gap:5px;font-size:9px;font-weight:800;display:flex}.weekly-legend i{border-radius:50%;width:7px;height:7px}.dot-upcoming{background:#8d999c}.dot-pending{background:var(--gold)}.dot-completed{background:var(--teal)}.weekly-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.weekly-metric-grid article{border:1px solid var(--line);background:var(--card);min-height:105px;box-shadow:var(--shadow);border-radius:11px;padding:17px 18px}.weekly-metric-grid article.attention{background:#fffaf1;border-color:#e6c795}.weekly-metric-grid span{color:var(--muted);font-size:9px;font-weight:800}.weekly-metric-grid strong{font-family:var(--font-ui);margin:8px 0 5px;font-size:25px;display:block}.weekly-metric-grid small{color:#909b9e;font-size:8px}.weekly-course-panel{padding:0;overflow:hidden}.weekly-course-panel .panel-head{border-bottom:1px solid var(--line);margin:0;padding:18px 20px}.weekly-course-table{min-width:980px}.weekly-course-table th:last-child,.weekly-course-table td:last-child{text-align:center}.expiring-package-panel{border-color:#ead6b8;padding:0;overflow:hidden}.expiring-package-panel .panel-head{background:linear-gradient(90deg,#fffaf2,#fff);border-bottom:1px solid #eee1cf;margin:0;padding:18px 20px}.expiring-package-table{min-width:760px}.expiring-package-table td:nth-child(2) small{color:var(--muted);margin-top:3px;font-size:8px;display:block}.expiring-package-table th:last-child,.expiring-package-table td:last-child{text-align:center}.monthly-teacher-count-panel{min-width:0;padding:0;overflow:hidden}.monthly-teacher-count-panel .panel-head{border-bottom:1px solid var(--line);margin:0;padding:18px 18px 13px}.overview-teacher-count-panel .teacher-class-count-list{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;padding:14px 16px 16px}.overview-teacher-count-panel .teacher-class-count-list>article{background:#fbfdfc;border:1px solid #e4ebe7;border-radius:10px;padding:12px}.teacher-class-count-list{padding:0 16px 12px;display:grid}.teacher-class-count-list>article{border-top:1px solid #efede7;grid-template-columns:34px minmax(72px,1fr);align-items:center;gap:6px 9px;min-height:76px;padding:12px 0;display:grid}.teacher-class-count-list>article:first-child{border-top:0}.teacher-class-count-list .avatar{border:1px solid;border-radius:9px;grid-row:1;place-items:center;width:30px;height:30px;font-size:11px;font-weight:900;display:grid}.teacher-class-count-name strong,.teacher-class-count-name small{display:block}.teacher-class-count-name strong{font-size:10px}.teacher-class-count-name small{color:var(--muted);margin-top:2px;font-size:8px}.teacher-class-count-values{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.teacher-class-count-values span{text-align:center;background:#f4f7f5;border-radius:6px;padding:6px 4px}.teacher-class-count-values small,.teacher-class-count-values strong{display:block}.teacher-class-count-values small{color:var(--muted);font-size:7px}.teacher-class-count-values strong{color:var(--teal);margin-top:2px;font-size:12px}.next-week-course-panel .panel-head{background:linear-gradient(90deg,#f7faf8,#fff)}.weekly-management-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.teacher-load-list,.operations-checklist{display:grid}.teacher-load-list>div,.operations-checklist>div{border-top:1px solid #efede7;align-items:center;gap:11px;min-height:55px;padding:9px 0;display:flex}.teacher-load-list>div:first-child,.operations-checklist>div:first-child{border-top:0}.teacher-load-list>div>div,.operations-checklist>div>div{flex:1;min-width:0}.teacher-load-list strong,.operations-checklist strong{font-size:11px;display:block}.teacher-load-list small,.operations-checklist small{color:var(--muted);margin-top:3px;font-size:9px;display:block}.teacher-load-list b{color:var(--teal);font-family:var(--font-ui);margin-left:auto;font-size:13px}.operations-checklist>div>span{width:29px;height:29px;color:var(--teal);background:var(--teal-soft);border-radius:9px;place-items:center;font-size:10px;font-weight:900;display:grid}.operations-checklist>div.needs-action>span{color:#a86825;background:#f7eddc}.operations-checklist>div.done>span{color:var(--teal);background:#e5f2ed}.panel{border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);border-radius:11px;padding:20px}.panel-head{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.panel-head h2{font-family:var(--font-ui);margin:0;font-size:16px}.panel-head p{color:var(--muted);margin:4px 0 0;font-size:10px}.panel-head button{color:var(--teal);cursor:pointer;background:0 0;border:0;padding:2px 0;font-size:10px;font-weight:800}.course-bars{gap:16px;display:grid}.course-row{grid-template-columns:35px minmax(0,1fr) 75px;align-items:center;gap:12px;display:grid}.course-initial{border-radius:10px;place-items:center;width:35px;height:35px;font-size:12px;font-weight:900;display:grid}.color-0{color:#24756f;background:#dbece9}.color-1{color:#8f6d2c;background:#e8e2d6}.color-2{color:#4f7892;background:#dee8ef}.color-3{color:#ad6044;background:#f2dfd7}.color-4{color:#75628a;background:#e6e2ec}.course-bar-main>div:first-child{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.course-bar-main strong{font-size:11px}.course-bar-main span{color:var(--muted);font-size:9px}.bar{background:#ebece7;border-radius:4px;height:5px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--teal), #72bbae);border-radius:4px;height:100%;display:block}.course-row>b{text-align:right;font-family:var(--font-ui);font-size:12px}.migration-score{grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0 24px;display:grid}.migration-score>div{text-align:center;background:#f4f3ee;border-radius:8px;padding:12px 6px}.migration-score strong{font-family:var(--font-ui);font-size:18px;display:block}.migration-score span{color:var(--muted);font-size:9px}.quality-line{color:var(--muted);justify-content:space-between;font-size:10px;display:flex}.quality-line strong{color:var(--teal)}.quality-bar{background:#ecebe6;border-radius:5px;height:7px;margin:8px 0 14px;overflow:hidden}.quality-bar i{border-radius:inherit;background:var(--teal);height:100%;display:block}.muted-copy{color:#7d898e;margin:0;font-size:10px;line-height:1.7}.compact-list{display:grid}.compact-list>div{border-top:1px solid #efede7;align-items:center;gap:10px;min-height:53px;padding:8px 0;display:flex}.compact-list>div:first-child{border-top:0}.avatar,.name-cell i{color:#2b6e6a;background:#e3f0ed;border-radius:50%;flex:none;place-items:center;width:31px;height:31px;font-size:11px;font-style:normal;font-weight:800;display:grid}.compact-list div div{min-width:0}.compact-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.compact-list small{color:var(--muted);margin-top:3px;font-size:9px;display:block}.compact-list b{font-family:var(--font-ui);margin-left:auto;font-size:12px}.review-list{display:grid}.review-list button{text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #efede7;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 2px;display:flex}.review-list button:first-child{border-top:0}.review-list button:hover strong{color:var(--teal)}.review-list button div{flex:1;min-width:0}.review-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.review-list small{color:var(--muted);margin-top:4px;font-size:9px;display:block}.review-list button>span:last-child{color:#9eaaa9;font-size:18px}.severity-dot{background:#aab1b2;border-radius:50%;width:7px;height:7px}.severity-dot.high{background:var(--red);box-shadow:0 0 0 4px #bd4f4f14}.severity-dot.medium{background:var(--gold)}.severity-dot.low{background:#7da29d}.table-panel{border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);border-radius:11px;overflow:hidden}.table-summary{border-bottom:1px solid var(--line);min-height:49px;color:var(--muted);justify-content:space-between;align-items:center;gap:14px;padding:7px 18px;font-size:10px;display:flex}.table-summary strong{color:var(--ink);margin:0 3px}.table-tools{margin-left:auto}.group-package-layout{grid-template-columns:minmax(0,1fr) 168px;align-items:start;gap:14px;display:grid}.group-package-layout>.table-panel{min-width:0}.group-filter-panel{border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);border-radius:11px;gap:17px;padding:17px 14px;display:grid;position:sticky;top:128px}.archive-filters>.button{width:100%}.filter-panel-head{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding-bottom:13px;display:flex}.filter-panel-head>span{width:28px;height:28px;color:var(--teal);background:var(--teal-soft);border-radius:8px;place-items:center;font-size:12px;font-weight:900;display:grid}.filter-panel-head strong,.filter-panel-head small{display:block}.filter-panel-head strong{font-size:11px}.filter-panel-head small{color:var(--muted);margin-top:2px;font-size:8px}.group-filter-field{color:#65737a;gap:7px;font-size:9px;font-weight:800;display:grid}.group-filter-field input,.group-filter-field select{border:1px solid var(--line);width:100%;height:34px;color:var(--ink);background:#fff;border-radius:7px;outline:0;padding:0 9px;font-size:9px}.group-filter-field input:focus,.group-filter-field select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #1c7c7814}.group-filter-field input::placeholder{color:#a5adaf}.group-filter-panel .segmented-filter{gap:3px;width:100%;display:grid}.group-filter-panel .segmented-filter button{width:100%}.segmented-filter{border:1px solid var(--line);background:#f3f2ed;border-radius:8px;padding:3px;display:inline-flex}.segmented-filter button{color:#77848a;cursor:pointer;background:0 0;border:0;border-radius:6px;min-width:46px;height:27px;padding:0 10px;font-size:9px;font-weight:800}.segmented-filter button.active{color:#fff;background:var(--teal);box-shadow:0 3px 9px #1c7c7829}.table-wrap{width:100%;overflow:auto}table{border-collapse:collapse;width:100%;min-width:850px}.package-table{min-width:1540px}.group-package-layout .table-wrap{overflow-x:hidden}.group-package-table{table-layout:fixed;min-width:0}.group-package-table th,.group-package-table td{overflow-wrap:anywhere;text-align:center;white-space:normal;padding:10px 4px;font-size:8px}.group-package-table td strong,.group-package-table .amount{font-size:9px}.group-package-table .mono{word-break:break-all;font-size:7px}.group-package-table .status{min-height:19px;padding:0 4px;font-size:7px}.group-package-table .edit-button{padding:5px 6px;font-size:8px}.group-package-table .package-notes{text-align:left;min-width:0;max-width:none}.group-col-action{width:4%}.group-col-package{width:7.5%}.group-col-student{width:6%}.group-col-name{width:6.5%}.group-col-audience{width:4.5%}.group-col-sequence,.group-col-units,.group-col-used,.group-col-remaining,.group-col-discount{width:4%}.group-col-leave,.group-col-leave-limit{width:4.5%}.group-col-progress{width:7%}.group-col-received,.group-col-original,.group-col-price,.group-col-method{width:5%}.group-col-payment-no{width:7%}.group-col-payment-status{width:5%}.group-col-activation,.group-col-expiration,.group-col-status{width:5.5%}.group-col-notes{width:7%}.group-col-teacher{width:6%}.private-package-table .group-col-notes{width:6.5%}.remaining-progress{justify-items:stretch;gap:3px;display:grid}.remaining-progress>div{background:#e2e8e5;border-radius:999px;height:6px;overflow:hidden}.remaining-progress i{border-radius:inherit;background:linear-gradient(90deg,#1c7c78,#5db6a5);height:100%;display:block}.remaining-progress span{color:#68787d;font-size:7px;font-weight:900;line-height:1}.leave-count{justify-items:center;gap:2px;display:grid}.leave-count strong{color:var(--teal)}.leave-count small,.not-applicable{color:#8b969b;font-size:7px;line-height:1.3}.leave-over strong,.leave-over small,.leave-over{color:#b45143}.catalog-table{min-width:1320px}th{color:#7d888e;border-bottom:1px solid var(--line);text-align:left;letter-spacing:.05em;white-space:nowrap;background:#f7f6f2;padding:12px 15px;font-size:9px;font-weight:800}td{color:#53616a;vertical-align:middle;border-bottom:1px solid #eeece6;padding:13px 15px;font-size:10px;line-height:1.45}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fbfaf6}td strong{color:var(--ink);font-size:11px}.mono{font-family:var(--font-ui);color:#64757d;font-size:9px}.mono.small{white-space:normal;word-break:break-all;max-width:145px}.portal-invitation-code{color:#8b6430;letter-spacing:.03em;white-space:nowrap;font-weight:800}.amount{color:var(--ink);font-family:var(--font-ui);font-size:11px;font-weight:800}.name-cell{align-items:center;gap:9px;display:flex}.name-cell i{width:28px;height:28px}.subline{color:#97a0a3;margin-top:3px;font-size:8px;display:block}.status{white-space:nowrap;border-radius:10px;align-items:center;min-height:21px;padding:0 8px;font-size:8px;font-weight:900;display:inline-flex}.status-good{color:#24746c;background:#e5f2ed}.status-warn{color:#a86825;background:#f7eddc}.status-danger{color:#fff;background:#d74646;box-shadow:0 2px 8px #b72d2d33}.status-neutral{color:#67747a;background:#ebeeec}.wide-cell{min-width:210px;max-width:270px}.row-actions{white-space:nowrap;gap:5px;display:flex}.row-actions button{border:1px solid var(--line);color:var(--teal);cursor:pointer;background:#fff;border-radius:6px;padding:5px 8px;font-size:9px;font-weight:800}.row-actions button:hover{border-color:var(--teal)}.row-actions .delete-button{color:#b23a32;border-color:#efc7c2}.row-actions .delete-button:hover{color:#8f2822;background:#fff6f4;border-color:#d97e74}.row-actions button:disabled{opacity:.38;cursor:not-allowed}.package-notes{white-space:normal;min-width:150px;max-width:240px}.readonly-badge{color:#859296;font-size:8px;font-weight:800}.teacher-access .content .row-actions{display:none}.teacher-access .content .course-archive-table .row-actions,.teacher-access .content .consumption-table .row-actions,.teacher-access .content .private-session-table .row-actions{display:flex}.course-archive-table .schedule-summary{white-space:normal;min-width:230px}.schedule-summary{gap:5px;display:grid}.schedule-summary>span:not(.muted-copy){white-space:nowrap;border-left:2px solid #b9d8d3;padding-left:9px;display:block}.consumption-table .consumption-students{white-space:normal;min-width:135px}.consumption-students strong,.consumption-students small{display:block}.consumption-students small{max-width:180px;color:var(--muted);margin-top:4px;line-height:1.5}.private-session-layout{grid-template-columns:minmax(0,1fr) 184px}.private-session-table{table-layout:fixed;min-width:0}.private-session-table th,.private-session-table td{overflow-wrap:anywhere;text-align:center;white-space:normal;padding:10px 4px;font-size:8px}.private-session-table th:first-child,.private-session-table td:first-child{width:72px}.private-session-table th:nth-child(2),.private-session-table td:nth-child(2){width:68px}.private-session-table th:nth-child(3),.private-session-table td:nth-child(3){width:42px}.private-session-table th:nth-child(4),.private-session-table td:nth-child(4){width:48px}.private-session-table th:nth-child(5),.private-session-table td:nth-child(5){width:42px}.private-session-table th:nth-child(6),.private-session-table td:nth-child(6){width:46px}.private-session-table th:nth-child(7),.private-session-table td:nth-child(7){width:62px}.private-session-table th:nth-child(8),.private-session-table td:nth-child(8){width:70px}.private-session-table th:nth-child(9),.private-session-table td:nth-child(9){width:94px}.private-session-table th:nth-child(n+10),.private-session-table td:nth-child(n+10){width:55px}.private-session-table .amount,.private-session-table td strong{font-size:9px}.private-session-table .consumption-students,.private-session-table .private-student-names{min-width:0}.private-session-table .private-student-names small{color:var(--muted);margin-bottom:3px;display:block;font-size:8px!important}.private-session-table .private-student-names strong{color:#203b45;font-weight:900;line-height:1.45;display:block;font-size:11px!important}.private-session-table .net-income{color:var(--teal)}.private-session-time-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.private-session-filters{max-height:calc(100vh - 148px);overflow-y:auto}.private-session-filters>.button{width:100%}.operating-layout{grid-template-columns:minmax(0,1fr) 190px;align-items:start;gap:16px;display:grid}.operating-main{gap:16px;min-width:0;display:grid}.operating-hero{min-height:118px;box-shadow:var(--shadow);background:linear-gradient(130deg,#eef8f5 0%,#fff 60%,#faf4e8 100%);border:1px solid #c7ddd8;border-radius:13px;justify-content:space-between;align-items:center;gap:22px;padding:21px 23px;display:flex}.operating-hero>div:first-child>span{color:var(--teal);letter-spacing:.15em;font-size:8px;font-weight:900}.operating-hero h2{font-family:var(--font-ui);margin:6px 0 5px;font-size:23px}.operating-hero p{max-width:700px;color:var(--muted);margin:0;font-size:9px;line-height:1.6}.operating-hero>div:last-child{text-align:center;background:#fffc;border:1px solid #c5dcd6e6;border-radius:11px;min-width:118px;padding:12px 14px}.operating-hero>div:last-child strong,.operating-hero>div:last-child span,.operating-hero>div:last-child small{display:block}.operating-hero>div:last-child strong{color:var(--teal);font-size:25px}.operating-hero>div:last-child span{color:#496268;font-size:9px;font-weight:900}.operating-hero>div:last-child small{color:var(--muted);margin-top:4px;font-size:8px}.operating-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.operating-kpi-grid article{border:1px solid var(--line);min-height:104px;box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:15px 16px}.operating-kpi-grid article.attention{background:#fff9f7;border-color:#efd0c5}.operating-kpi-grid article.retained{background:#f6fcf9;border-color:#bfded3}.operating-kpi-grid article.danger{background:#fff7f7;border-color:#e8bdbd}.operating-kpi-grid span,.operating-kpi-grid strong,.operating-kpi-grid small{display:block}.operating-kpi-grid span{color:var(--muted);font-size:8px;font-weight:900}.operating-kpi-grid strong{font-family:var(--font-ui);margin:8px 0 5px;font-size:19px}.operating-kpi-grid small{color:#879497;font-size:7px;line-height:1.4}.operating-formula-note{color:#587078;background:#f5faf8;border:1px solid #d8e5e1;border-radius:9px;flex-wrap:wrap;align-items:center;gap:5px 10px;padding:11px 15px;display:flex}.operating-formula-note strong{color:var(--teal);font-size:9px}.operating-formula-note span{font-size:8px}.operating-formula-note small{color:#98611f;width:100%;font-size:8px}.operating-teacher-profit-panel{padding:0;overflow:hidden}.operating-teacher-profit-panel .panel-head{border-bottom:1px solid var(--line);margin:0;padding:17px 18px}.teacher-profit-grid{background:#f7faf9;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;display:grid}.teacher-profit-card{background:#fff;border:1px solid #d8e5e1;border-radius:11px;overflow:hidden;box-shadow:0 8px 20px #1e48440f}.teacher-profit-card>header{border-bottom:1px solid #edf2f0;justify-content:space-between;align-items:center;gap:12px;padding:12px 13px;display:flex}.teacher-profit-card>header .name-cell{min-width:0}.teacher-profit-class-counts{background:#f4faf7;border-bottom:1px solid #e3eeea;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:9px 12px;display:grid}.teacher-profit-class-counts>span{text-align:center;background:#ffffffd6;border:1px solid #dce9e4;border-radius:8px;min-width:0;padding:7px 8px}.teacher-profit-class-counts small,.teacher-profit-class-counts strong{display:block}.teacher-profit-class-counts small{color:#718184;font-size:7px;font-weight:800}.teacher-profit-class-counts strong{color:#276b66;margin-top:3px;font-size:12px}.teacher-profit-class-counts .total{background:#e7f4ef;border-color:#bcd8cf}.teacher-profit-metrics{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.teacher-profit-metrics>div{border-bottom:1px solid #edf2f0;border-right:1px solid #edf2f0;min-height:76px;padding:11px 12px}.teacher-profit-metrics>div:nth-child(2n){border-right:0}.teacher-profit-metrics>div:last-child{border-right:0;grid-column:1/-1}.teacher-profit-metrics>div.group-total{background:#f3faf7}.teacher-profit-metrics span,.teacher-profit-metrics strong,.teacher-profit-metrics small{display:block}.teacher-profit-metrics span{color:#6c7d80;font-size:8px;font-weight:900}.teacher-profit-metrics strong{color:#176f68;margin:5px 0 4px;font-size:16px}.teacher-profit-metrics small{color:#8b989a;font-size:7px;line-height:1.45}.teacher-profit-card>footer{background:#fcfdfd;justify-content:space-between;align-items:flex-end;gap:12px;padding:12px 13px;display:flex}.teacher-profit-card>footer span,.teacher-profit-card>footer small,.teacher-profit-card>footer strong,.teacher-profit-card>footer em{display:block}.teacher-profit-card>footer small{color:var(--muted);font-size:8px;font-weight:900}.teacher-profit-card>footer strong{margin:3px 0;font-size:20px}.teacher-profit-card>footer em{color:#889699;font-size:7px;font-style:normal}.teacher-profit-note{color:#718386;background:#f7faf9;margin:0;padding:0 16px 14px;font-size:8px;line-height:1.6}.operating-summary-panel,.operating-detail-panel{padding:0;overflow:hidden}.operating-summary-panel .panel-head,.operating-detail-panel .panel-head{border-bottom:1px solid var(--line);margin:0;padding:17px 18px}.operating-summary-table{min-width:1440px}.operating-summary-table th,.operating-summary-table td{white-space:nowrap}.operating-summary-table .name-cell{min-width:118px}.operating-total-row td{background:#f5faf8;border-top:2px solid #c9ddd7}.operating-total-row+tr td{border-top-color:#e2e4de}.operating-contribution{color:#557f9c}.operating-retained{color:#16736d}.operating-negative{color:#b44242}.detail-button{color:var(--teal);cursor:pointer;background:#f5faf8;border:1px solid #c9ddd7;border-radius:7px;padding:5px 8px;font-size:8px;font-weight:900}.detail-button:hover{color:#fff;border-color:var(--teal);background:var(--teal)}.operating-detail-table{min-width:1580px}.operating-detail-table th,.operating-detail-table td{white-space:nowrap}.operating-detail-table .operating-students{white-space:normal;max-width:220px;line-height:1.5}.operating-filter-panel{top:128px}.operating-filter-panel>.button{width:100%}.operating-filter-result{text-align:center;background:#edf7f3;border-radius:9px;padding:12px 8px}.operating-filter-result span,.operating-filter-result strong,.operating-filter-result small{display:block}.operating-filter-result span{color:var(--muted);font-size:8px}.operating-filter-result strong{color:var(--teal);margin:5px 0 3px;font-size:18px}.operating-filter-result small{color:#7b8b8f;font-size:7px}.operating-filter-note{color:#758589;margin:0;font-size:8px;line-height:1.65}.payroll-table{min-width:1380px}.edit-button{color:var(--teal);cursor:pointer;background:#f2f8f6;border:1px solid #b9d8d3;border-radius:7px;padding:6px 11px;font-size:9px;font-weight:900}.edit-button:hover{color:#fff;background:var(--teal);border-color:var(--teal)}.empty{color:var(--muted);text-align:center;padding:70px 20px}.update-log{gap:18px;display:grid}.update-log-intro{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(135deg,#fff 0%,#f1f8f5 100%);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 26px;display:flex}.update-log-intro span:not(.status){color:var(--teal);letter-spacing:.12em;font-size:9px;font-weight:900}.update-log-intro h2{color:var(--ink);font-family:var(--font-ui);margin:6px 0 5px;font-size:22px}.update-log-intro p{color:var(--muted);margin:0;font-size:10px}.update-timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.update-entry{border:1px solid var(--line);background:var(--card);border-radius:11px;grid-template-columns:105px minmax(0,1fr);gap:18px;min-height:98px;padding:18px 20px;display:grid;position:relative;overflow:hidden;box-shadow:0 5px 18px #1f333a0a}.update-entry:before{content:"";background:#d9e5e1;width:3px;position:absolute;inset:0 auto 0 0}.update-entry-current{background:linear-gradient(135deg,#fff 0%,#edf8f4 100%);border-color:#b8d9d2;grid-column:1/-1}.update-entry-current:before{background:var(--teal);width:5px}.update-version{align-content:start;gap:5px;display:grid}.update-version strong{color:var(--teal);font-family:var(--font-ui);font-size:19px}.update-version span{color:#879398;font-size:8px;font-weight:800;line-height:1.45}.update-entry ul{color:#53636a;align-content:start;gap:7px;margin:0;padding-left:16px;font-size:10px;line-height:1.5;display:grid}.update-entry li::marker{color:#78a99f}.modal-layer{z-index:60;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#091c2275;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--card);border-radius:13px;width:min(430px,100%);padding:24px;box-shadow:0 24px 80px #0a1e2642}.modal-wide{width:min(760px,100%);max-height:calc(100vh - 40px);overflow-y:auto}.package-edit-modal{width:min(980px,100%)}.modal-course{width:min(900px,100%);max-height:calc(100vh - 40px);overflow-y:auto}.modal-head{justify-content:space-between;align-items:flex-start;margin-bottom:22px;display:flex}.modal-head h2{font-family:var(--font-ui);margin:0;font-size:21px}.modal-head p{color:var(--muted);margin:5px 0 0;font-size:10px}.modal-head button{color:#8b979b;cursor:pointer;background:0 0;border:0;width:30px;height:30px;font-size:23px}.modal label{color:#52636a;gap:7px;margin-top:14px;font-size:10px;font-weight:800;display:grid}.modal input,.modal select{border:1px solid var(--line);width:100%;height:42px;color:var(--ink);background:#fff;border-radius:8px;outline:0;padding:0 12px;font-size:12px}.modal input:focus,.modal select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #1c7c7814}.modal input.readonly-input{color:#6f7c81;cursor:not-allowed;background:#f2f2ee}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid label{margin-top:0}.form-grid label>small{color:var(--muted);font-size:8px;font-weight:500}.pricing-row{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.package-usage-history{border-top:1px solid #dfe6e1;margin-top:20px;padding-top:18px}.package-usage-history-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:10px;display:flex}.package-usage-history-head h3{color:var(--ink);margin:0;font-size:14px}.package-usage-history-head p{color:var(--muted);margin:4px 0 0;font-size:9px}.package-usage-history-head>span{color:var(--teal);flex:none;font-size:10px;font-weight:900}.package-usage-history-table{border:1px solid #e1e7e3;border-radius:9px;overflow-x:auto}.package-usage-history-table table{min-width:780px}.package-usage-history-table th,.package-usage-history-table td{padding:8px 9px}.package-usage-history-empty{color:var(--muted);text-align:center;border:1px dashed #ccd8d1;border-radius:9px;margin:0;padding:22px}.field-wide{grid-column:1/-1}.modal textarea{resize:vertical;border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:8px;outline:0;padding:10px 12px;font-size:12px}.modal textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #1c7c7814}.private-session-modal{width:min(900px,100%)}.private-student-picker{color:#52636a;gap:8px;font-size:10px;font-weight:800;display:grid}.student-search-row{grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto;align-items:center;gap:8px;display:grid}.selected-students{border:1px solid var(--line);background:#f7f8f5;border-radius:8px;flex-wrap:wrap;align-items:center;gap:7px;min-height:43px;padding:8px;display:flex}.selected-students>span{color:#256b66;background:#e2f0ed;border-radius:13px;align-items:center;gap:6px;padding:5px 7px;font-size:9px;display:inline-flex}.selected-students>span button{color:#8b5147;cursor:pointer;background:#fff;border:0;border-radius:50%;width:17px;height:17px;padding:0}.selected-students>small{color:var(--muted);font-size:9px;font-weight:500}.private-package-selections{background:#f1f7f5;border:1px solid #cddbd5;border-radius:8px;gap:8px;padding:10px;display:grid}.private-package-selections>strong{color:#256b66;font-size:10px}.private-package-selections label{grid-template-columns:minmax(100px,.35fr) minmax(260px,1fr);align-items:center;gap:8px;display:grid}.private-package-selections label>span{color:var(--ink);font-weight:700}.private-package-selections label>small{color:var(--muted);grid-column:2;font-size:9px;font-weight:500}.form-error{color:#9e3f3f;background:#f9e9e7;border-radius:7px;margin:14px 0 0;padding:9px 11px;font-size:10px}.modal-actions{justify-content:flex-end;gap:9px;margin-top:24px;display:flex}.schedule-editor{border:1px solid var(--line);background:#f8faf8;border-radius:10px;margin-top:20px;padding:16px}.schedule-editor-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.schedule-editor-head>div{gap:3px;display:grid}.schedule-editor-head strong{font-size:12px}.schedule-editor-head small{color:var(--muted);font-size:9px}.schedule-list{gap:10px;margin-top:14px;display:grid}.schedule-row{background:#fff;border:1px solid #e1e7e3;border-radius:9px;grid-template-columns:30px 24px minmax(145px,1fr) minmax(110px,.72fr) minmax(165px,1.1fr) minmax(100px,.62fr) auto auto;align-items:end;gap:8px;padding:10px;transition:opacity .16s,border-color .16s,box-shadow .16s;display:grid}.schedule-row-dragging{opacity:.48;border-color:var(--teal);box-shadow:0 5px 18px #1c7c7824}.schedule-row>span{color:var(--teal);text-align:center;align-self:center;font-size:11px;font-weight:900}.modal .schedule-row label{gap:5px;margin-top:0}.modal .schedule-row input,.modal .schedule-row select{height:36px;font-size:10px}.schedule-drag{width:30px;height:36px;color:var(--teal);letter-spacing:-4px;cursor:grab;background:#f2f8f6;border:1px solid #d8e4df;border-radius:7px;align-self:center;font-size:15px;font-weight:900}.schedule-drag:active{cursor:grabbing}.schedule-copy,.schedule-remove{cursor:pointer;white-space:nowrap;border-radius:7px;height:36px;padding:0 10px;font-size:9px;font-weight:800}.schedule-copy{color:var(--teal);background:#f2f8f6;border:1px solid #b9d8d3}.schedule-copy:disabled{opacity:.42;cursor:not-allowed}.schedule-remove{color:#a24242;background:#fff7f6;border:1px solid #edcecb}.schedule-empty,.schedule-hint{color:var(--muted);text-align:center;background:#fff;border-radius:8px;margin:14px 0 0;padding:13px;font-size:10px}.schedule-hint{color:#a86825;background:#fff8ec}.consumption-editor-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;display:flex}.consumption-editor-head>div{gap:4px;display:grid}.consumption-editor-head strong{font-size:12px}.consumption-editor-head small{color:var(--muted);font-size:9px}.consumption-head-actions{align-items:center;gap:12px!important;display:flex!important}.consumption-wage-match{text-align:right;background:#f5fbf9;border:1px solid #d8e4e0;border-radius:8px;min-width:112px;padding:7px 10px}.consumption-wage-match strong,.consumption-wage-match small{display:block}.consumption-wage-match strong{color:var(--teal);font-family:var(--font-ui)}.consumption-list{gap:10px;margin-top:14px;display:grid}.consumption-modal{width:min(1040px,100%)}.consumption-row{background:#f8faf8;border:1px solid #e1e7e3;border-radius:9px;grid-template-columns:28px minmax(190px,1fr) minmax(290px,1.35fr) 92px 88px minmax(125px,.75fr) auto;align-items:end;gap:8px;padding:11px;display:grid}.consumption-row>span{color:var(--teal);text-align:center;align-self:center;font-size:11px;font-weight:900}.modal .consumption-row label{gap:5px;margin-top:0}.modal .consumption-row input,.modal .consumption-row select{height:36px;font-size:10px}.modal .consumption-row .student-picker{align-self:stretch}.teacher-access .consumption-row{grid-template-columns:28px minmax(210px,1.1fr) minmax(230px,1fr) 92px auto}.teacher-package-match,.teacher-consumption-units{background:#f2f8f6;border:1px solid #d6e5df;border-radius:8px;align-content:center;gap:4px;min-height:54px;padding:8px 10px;display:grid}.teacher-package-match strong,.teacher-consumption-units strong{color:var(--teal);font-size:10px}.teacher-package-match small,.teacher-consumption-units small{color:var(--muted);font-size:8px;line-height:1.45}.package-usage-summary{color:var(--teal);font-size:9px;font-weight:800}.package-unavailable{color:#a24b3e;font-size:8px;font-weight:700;line-height:1.45}.admin-override-layer{z-index:85;background:#091c229e}.admin-password-modal{width:min(460px,100%)}.override-package-list{background:#fff8f3;border:1px solid #efd4c7;border-radius:9px;gap:7px;margin:0 0 16px;padding:12px;display:grid}.override-package-list span{color:#8f4b39;font-size:10px;font-weight:800}.override-warning{color:#8b6a34;margin:12px 0 0;font-size:9px;line-height:1.55}.toast{z-index:70;color:#fff;background:#18343d;border-radius:8px;padding:11px 17px;font-size:11px;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0b1f2638}.calendar-day-head .calendar-day-add{width:20px;height:20px;color:var(--teal);opacity:0;cursor:pointer;background:#f4faf8;border:1px solid #cfe1dc;border-radius:6px;place-items:center;padding:0;font-size:12px;font-weight:800;transition:all .16s;display:grid}.calendar-day:hover .calendar-day-add,.calendar-day-add:focus-visible{opacity:1}.today-workspace,.health-center,.audit-page{gap:16px;display:grid}.today-hero,.health-summary{box-shadow:var(--shadow);background:linear-gradient(135deg,#f2faf7,#fffdf8);border:1px solid #cfe1dc;border-radius:14px;justify-content:space-between;align-items:center;gap:22px;padding:24px 26px;display:flex}.today-hero h2,.health-summary h2{color:#18343d;font-family:var(--font-display);margin:6px 0;font-size:24px}.today-hero p,.health-summary p{color:var(--muted);margin:0;font-size:10px}.today-hero-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.today-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.today-kpi-grid>button{border:1px solid var(--line);min-height:106px;box-shadow:var(--shadow);text-align:left;cursor:pointer;background:#fff;border-radius:12px;padding:17px 18px}.today-kpi-grid span,.today-kpi-grid small{color:var(--muted);font-size:9px;display:block}.today-kpi-grid strong{color:#173640;margin:8px 0 5px;font-size:25px;display:block}.today-grid{grid-template-columns:minmax(0,1.7fr) minmax(270px,.7fr);align-items:start;gap:16px;display:grid}.today-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:13px;overflow:hidden}.today-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:17px 19px;display:flex}.today-panel-head span{color:var(--teal);letter-spacing:.08em;font-size:8px;font-weight:900}.today-panel-head h3{margin:3px 0 0;font-size:15px}.today-panel-head button{color:var(--teal);cursor:pointer;background:0 0;border:0;font-size:9px;font-weight:800}.today-agenda{display:grid}.today-agenda>article{border-bottom:1px solid #edf0ec;grid-template-columns:46px 8px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:13px 18px;display:grid}.today-agenda>article:last-child{border-bottom:0}.today-agenda time{color:#28444e;font-weight:900}.today-agenda i{background:#7ba6bd;border-radius:5px;width:8px;height:32px}.today-agenda i.child{background:#e4a55f}.today-agenda i.private{background:#9b83bd}.today-agenda article>div:first-of-type{gap:4px;display:grid}.today-agenda article>div>strong{font-size:11px}.today-agenda article>div>span{color:var(--muted);font-size:9px}.today-row-actions{flex-direction:row!important;gap:5px!important;display:flex!important}.today-row-actions button{color:var(--teal);cursor:pointer;white-space:nowrap;background:#f5faf8;border:1px solid #cfe1dc;border-radius:7px;padding:6px 8px;font-size:8px;font-weight:800}.today-tasks{display:grid}.today-tasks>button{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #edf0ec;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px 16px;display:grid}.today-tasks>button:last-child{border-bottom:0}.today-tasks b{color:#35736d;background:#eaf6f2;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.today-tasks b.warn{color:#98611f;background:#fff3df}.today-tasks b.danger{color:#a44242;background:#fdebea}.today-tasks b.neutral{color:#536b77;background:#eef2f4}.today-tasks>button div{gap:3px;display:grid}.today-tasks>button strong{font-size:10px}.today-tasks>button span{color:var(--muted);font-size:8px}.today-tasks em{color:#9aa6a8;font-size:17px;font-style:normal}.teacher-consumption-page,.teacher-classes-page,.teacher-payroll-page,.teacher-profile-page{gap:16px;display:grid}.teacher-page-intro,.teacher-payroll-hero,.teacher-profile-card{box-shadow:var(--shadow);background:linear-gradient(135deg,#f2faf7 0%,#fffef9 100%);border:1px solid #cfe1dc;border-radius:14px;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;display:flex}.teacher-page-intro>div,.teacher-payroll-hero>div{min-width:0}.teacher-page-intro span,.teacher-payroll-hero>div>span,.teacher-profile-card>div>span{color:var(--teal);letter-spacing:.1em;font-size:8px;font-weight:900}.teacher-page-intro h2,.teacher-payroll-hero h2,.teacher-profile-card h2{color:#18343d;font-family:var(--font-display);margin:5px 0;font-size:22px}.teacher-page-intro p,.teacher-payroll-hero p,.teacher-profile-card p{color:var(--muted);margin:0;font-size:9px;line-height:1.6}.teacher-record-section{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:13px;overflow:hidden}.teacher-section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:65px;padding:14px 18px;display:flex}.teacher-section-head span{color:var(--teal);letter-spacing:.08em;font-size:8px;font-weight:900}.teacher-section-head h2{margin:4px 0 0;font-size:15px}.teacher-consumption-list,.teacher-record-list{display:grid}.teacher-consumption-card{border-bottom:1px solid #edf0ec;grid-template-columns:48px minmax(190px,1.25fr) minmax(170px,1fr) 92px auto auto;align-items:center;gap:12px;padding:14px 17px;display:grid}.teacher-consumption-card:last-child,.teacher-class-record:last-child{border-bottom:0}.teacher-class-kind{color:#226c69;background:#e7f3f0;border-radius:10px;place-items:center;width:42px;min-height:38px;font-size:8px;font-weight:900;display:grid}.teacher-class-kind.child{color:#8b5b20;background:#fbf0df}.teacher-class-kind.private{color:#5f5384;background:#eeebf7}.teacher-consumption-course span,.teacher-consumption-students span,.teacher-consumption-wage span,.teacher-record-wage span{color:var(--muted);font-size:8px;display:block}.teacher-consumption-course h3{margin:4px 0;font-size:11px}.teacher-consumption-course p{color:var(--muted);margin:0;font-size:8px}.teacher-consumption-students strong{margin-top:5px;font-size:10px;line-height:1.5;display:block}.teacher-consumption-wage strong,.teacher-record-wage strong{color:#1e625f;margin-top:5px;font-size:13px;display:block}.teacher-empty-state{color:var(--muted);text-align:center;gap:6px;padding:28px;display:grid}.teacher-empty-state strong{color:#3f555d;font-size:11px}.teacher-record-toolbar{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:12px;grid-template-columns:150px 130px 130px minmax(180px,1fr) 150px;align-items:end;gap:10px;padding:13px 15px;display:grid}.teacher-record-toolbar label,.teacher-payroll-hero label{gap:5px;display:grid}.teacher-record-toolbar span,.teacher-payroll-hero label span{color:var(--muted);font-size:8px;font-weight:800}.teacher-record-toolbar select,.teacher-record-toolbar input,.teacher-payroll-hero select{color:#28414a;min-height:35px;font:inherit;background:#fff;border:1px solid #d9dfdc;border-radius:8px;padding:0 10px}.teacher-record-toolbar>div{text-align:right;background:#edf7f3;border-radius:8px;align-content:center;min-height:35px;padding:5px 11px;display:grid}.teacher-record-toolbar>div span,.teacher-record-toolbar>div strong{display:block}.teacher-record-toolbar>div span{color:var(--muted);font-size:8px}.teacher-record-toolbar>div strong{color:var(--teal);margin-top:2px;font-size:14px}.teacher-record-list{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:13px;overflow:hidden}.teacher-class-record{border-bottom:1px solid #edf0ec;grid-template-columns:48px minmax(240px,1fr) 120px 72px 112px;align-items:center;gap:12px;padding:13px 16px;display:grid}.teacher-record-wage{text-align:right;justify-self:stretch;width:100%}.teacher-class-record>.status{text-align:center;justify-self:center;min-width:68px}.teacher-class-record>.button{white-space:nowrap;justify-self:stretch;width:112px}.teacher-record-main>span{color:var(--teal);font-size:8px;font-weight:800}.teacher-record-main h3{margin:3px 0;font-size:11px}.teacher-record-main p{color:var(--muted);margin:0 0 4px;font-size:8px}.teacher-record-main>strong{font-size:9px}.teacher-payroll-hero{justify-content:flex-start}.teacher-payroll-hero>div{margin-right:auto}.teacher-payroll-hero label{min-width:160px}.teacher-payroll-hero .status{align-self:center}.teacher-payroll-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;display:grid}.teacher-payroll-summary article{border:1px solid var(--line);min-height:94px;box-shadow:var(--shadow);background:#fff;border-radius:11px;align-content:center;gap:6px;padding:16px;display:grid}.teacher-payroll-summary span,.teacher-payroll-summary small{color:var(--muted);font-size:8px}.teacher-payroll-summary strong{color:#173640;font-size:19px}.teacher-wage-detail-table{min-width:840px}.teacher-wage-source-groups{background:#f7faf8;gap:14px;padding:15px;display:grid}.teacher-wage-source-group{background:#fff;border:1px solid #dfe8e4;border-radius:11px;overflow:hidden}.teacher-wage-source-group>header{border-bottom:1px solid #e9efec;justify-content:space-between;align-items:center;gap:14px;min-height:62px;padding:12px 15px;display:flex}.teacher-wage-source-group>header>div{align-items:center;gap:10px;display:flex}.teacher-wage-source-group h3{color:#29444c;margin:0;font-size:12px}.teacher-wage-source-group>header>strong{color:var(--teal);white-space:nowrap;font-size:13px}.teacher-wage-source-group .table-panel{box-shadow:none;border:0;border-radius:0}.teacher-wage-source-group .table-summary{background:#fbfdfc}.teacher-reward-detail-table{min-width:760px}.recruitment-reward-editor{border-top:1px solid #dfe6e1;margin-top:20px;padding-top:18px}.recruitment-reward-list{gap:7px;display:grid}.recruitment-reward-list article{background:#f8fbfa;border:1px solid #dfe8e4;border-radius:9px;grid-template-columns:minmax(180px,1fr) 115px auto auto;align-items:center;gap:10px;min-height:54px;padding:9px 11px;display:grid}.recruitment-reward-list article>div{gap:3px;display:grid}.recruitment-reward-list article small,.recruitment-reward-list article span{color:var(--muted);font-size:8px}.recruitment-reward-list article>div:nth-child(2){text-align:right}.recruitment-reward-list article>div:nth-child(2) strong{color:var(--teal)}.recruitment-reward-list article.reward-cancelled{opacity:.62;background:#f4f4f1}.recruitment-reward-form{background:#f2f8f6;border:1px solid #cfe1dc;border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:12px;padding:13px;display:grid}.recruitment-reward-form label{margin-top:0}.reward-form-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.teacher-profile-card{justify-content:flex-start}.teacher-profile-card>div:nth-child(2){margin-right:auto}.teacher-profile-avatar{border:1px solid;border-radius:18px;place-items:center;width:58px;height:58px;font-size:22px;font-weight:900;display:grid}.teacher-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.teacher-profile-grid>section{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:13px;padding-bottom:18px;overflow:hidden}.teacher-profile-grid .teacher-section-head{margin-bottom:4px}.teacher-profile-grid dl{margin:0;padding:0 18px 16px}.teacher-profile-grid dl>div{border-bottom:1px solid #edf0ec;justify-content:space-between;align-items:center;gap:12px;min-height:42px;display:flex}.teacher-profile-grid dt{color:var(--muted);font-size:9px}.teacher-profile-grid dd{color:#28414a;text-align:right;margin:0;font-size:10px;font-weight:800}.teacher-profile-grid>section>.button{margin-left:18px}.teacher-profile-grid-single{grid-template-columns:minmax(0,720px)}.teacher-profile-actions{flex-wrap:wrap;gap:9px;padding:0 18px;display:flex}.teacher-finance-private-note{color:#365c59;background:#f1f8f5;border:1px solid #d8e6e1;border-radius:9px;gap:4px;padding:12px 14px;display:grid}.teacher-finance-private-note span{color:var(--muted);font-size:9px}.admin-payment-editor{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.admin-payment-editor .button{white-space:nowrap;min-height:40px;padding-inline:12px}.teacher-privacy-note{color:#436068;background:#f1f8f5;border:1px solid #cfe1dc;border-radius:11px;align-items:center;gap:14px;padding:14px 17px;display:flex}.teacher-privacy-note strong{white-space:nowrap}.teacher-privacy-note span{color:var(--muted);font-size:9px}.health-summary>div:last-child{text-align:center;background:#fff;border:1px solid #d8e6e1;border-radius:11px;min-width:115px;padding:15px}.health-summary>div:last-child strong{color:var(--teal);font-size:24px;display:block}.health-summary>div:last-child span{color:var(--muted);font-size:9px}.health-check-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.health-check{border:1px solid var(--line);min-height:160px;box-shadow:var(--shadow);text-align:left;cursor:pointer;background:#fff;border-radius:12px;padding:17px;position:relative}.health-check>div{align-items:center;gap:7px;display:flex}.health-check>div>span{color:var(--muted);font-size:8px;font-weight:800}.health-check>strong{margin-top:12px;padding-right:55px;font-size:11px;display:block}.health-check>b{color:#29434c;font-size:24px;position:absolute;top:46px;right:17px}.health-check p{min-height:29px;color:var(--muted);margin:8px 0 10px;font-size:8px;line-height:1.6}.health-check small{color:var(--teal);font-size:8px;font-weight:800}.health-check-attention.health-severity-high{background:snow;border-color:#edcfca}.health-check-attention.health-severity-medium{background:#fffdf8;border-color:#ecdcb8}.health-check-pass{border-color:#cfe2d8}.health-issues{gap:10px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading span{color:var(--teal);font-size:8px;font-weight:900}.section-heading h2{margin:4px 0 0;font-size:17px}.audit-toolbar{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:12px;grid-template-columns:minmax(210px,1.4fr) repeat(3,minmax(130px,.7fr)) minmax(90px,.45fr);align-items:end;gap:10px;padding:14px;display:grid}.audit-toolbar label,.audit-toolbar>div{gap:5px;display:grid}.audit-toolbar span{color:var(--muted);font-size:8px;font-weight:800}.audit-toolbar input,.audit-toolbar select{border:1px solid var(--line);height:36px;font:inherit;background:#fff;border-radius:8px;padding:0 10px}.audit-toolbar>div{background:#f3f8f6;border-radius:8px;padding:7px 11px}.audit-toolbar>div strong{color:var(--teal)}.audit-detail{width:min(1080px,100%)}.audit-diff{grid-template-columns:1fr 1fr;gap:12px;display:grid}.audit-diff>div{min-width:0}.audit-diff span{color:var(--teal);margin-bottom:6px;font-size:9px;font-weight:900;display:block}.audit-diff pre{color:#334b54;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7faf8;border:1px solid #dfe7e3;border-radius:9px;max-height:420px;margin:0;padding:13px;font:9px/1.55 Consolas,monospace;overflow:auto}.backdrop{display:none}table,table *{font-family:var(--font-ui)!important;font-size:10px!important}.payroll-table .teacher-logo{border:1px solid;box-shadow:inset 0 0 0 1px #ffffff8c}@media (width<=1120px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.weekly-metric-grid{grid-template-columns:repeat(3,1fr)}.searchbox{width:185px}.group-package-layout{grid-template-columns:minmax(0,1fr) 145px;gap:10px}.group-filter-panel{padding:14px 11px}.today-kpi-grid{grid-template-columns:repeat(2,1fr)}.health-check-grid,.audit-toolbar,.operating-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-profit-grid{grid-template-columns:1fr}}@media (width<=820px){.sidebar{transition:transform .24s;transform:translate(-102%)}.sidebar-open{transform:translate(0)}.backdrop{z-index:25;background:#091c2259;border:0;display:block;position:fixed;inset:0}main{margin-left:0}.menu-button{flex:none;display:block}.topbar{min-height:90px;padding:17px 20px}.page-heading p,.eyebrow{display:none}.page-heading h1{font-size:22px}.top-actions{gap:6px}.searchbox{display:none}.button{padding:0 11px}.content{padding:20px}.group-filter-panel{top:106px}.weekly-hero{flex-direction:column;align-items:flex-start}.weekly-management-grid,.update-timeline{grid-template-columns:1fr}.update-entry-current{grid-column:auto}.group-package-layout,.private-session-layout,.calendar-page,.operating-layout{grid-template-columns:1fr}.group-filter-panel,.private-session-filters,.calendar-filter-panel,.operating-filter-panel{grid-row:1;max-height:none;position:static}.calendar-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.calendar-filter-panel .filter-panel-head{grid-column:1/-1}.calendar-filter-result{align-self:stretch}.group-package-layout .table-wrap{overflow-x:auto}.private-session-table{min-width:1050px}.private-session-layout .table-wrap{overflow-x:auto}.today-grid,.health-check-grid,.audit-diff{grid-template-columns:1fr}.operating-hero{flex-direction:column;align-items:flex-start}}@media (width<=560px){.access-card{padding:27px 24px 30px}.access-brand-logo{width:250px;height:150px}.page-heading{min-width:0}.top-actions .button-light{display:none}.top-actions .button-primary{width:38px;padding:0;font-size:0}.top-actions .button-primary:first-letter{font-size:16px}.metric-grid{grid-template-columns:1fr}.weekly-metric-grid{grid-template-columns:repeat(2,1fr)}.weekly-legend{border-radius:10px;flex-direction:column;align-items:flex-start}.calendar-toolbar{grid-template-columns:1fr;justify-items:center;gap:10px}.calendar-month-title{grid-row:1}.calendar-legend{justify-content:center}.calendar-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-filter-panel{grid-template-columns:1fr}.calendar-filter-panel .filter-panel-head{grid-column:auto}.calendar-detail-grid,.operating-kpi-grid{grid-template-columns:1fr}.calendar-detail-attendees{grid-column:auto}.calendar-day-agenda>button{grid-template-columns:70px minmax(0,1fr) auto}.calendar-day-agenda .calendar-type-badge{display:none}.notice-strip{align-items:flex-start}.source-pill{display:none}.content{padding:15px}.course-row{grid-template-columns:32px minmax(0,1fr)}.course-row>b{display:none}.form-grid{grid-template-columns:1fr}.schedule-row{grid-template-columns:30px 24px 1fr}.schedule-row label{grid-column:2/-1}.schedule-row .schedule-copy,.schedule-row .schedule-remove{grid-column:auto}.consumption-editor-head{align-items:flex-start}.consumption-head-actions{flex-direction:column;align-items:flex-end}.consumption-row{grid-template-columns:24px 1fr}.consumption-row label,.teacher-package-match,.teacher-consumption-units,.consumption-row .schedule-remove{grid-column:2/-1}.pricing-row{grid-column:auto;grid-template-columns:1fr}.package-usage-history-head{flex-direction:column;align-items:flex-start;gap:6px}.field-wide{grid-column:auto}.student-search-row,.private-package-selections label{grid-template-columns:1fr}.private-package-selections label>small{grid-column:auto}.update-log-intro{padding:19px}.update-log-intro .status{display:none}.update-entry{grid-template-columns:78px minmax(0,1fr);gap:12px;padding:16px}.today-hero,.health-summary{flex-direction:column;align-items:flex-start;padding:19px}.today-hero-actions{justify-content:flex-start}.today-kpi-grid,.audit-toolbar{grid-template-columns:1fr}.today-agenda>article{grid-template-columns:40px 7px minmax(0,1fr)}.today-agenda>article>.status,.today-row-actions{grid-column:3}.teacher-profit-class-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1050px){.teacher-consumption-card{grid-template-columns:48px minmax(190px,1fr) 150px auto}.teacher-consumption-students{grid-column:2}.teacher-consumption-wage{grid-area:1/3/3}.teacher-consumption-card>.status{grid-area:1/4}.teacher-consumption-card>.button{grid-area:2/4}.teacher-record-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-record-toolbar>div,.teacher-record-search{grid-column:auto}.teacher-class-record{grid-template-columns:48px minmax(210px,1fr) 120px 112px}.teacher-record-wage{grid-area:1/3/3}.teacher-class-record>.status{grid-area:1/4}.teacher-class-record>.button{grid-area:2/4}}@media (width<=720px){.teacher-page-intro,.teacher-payroll-hero,.teacher-profile-card{flex-direction:column;align-items:flex-start;padding:18px}.teacher-payroll-hero>div{margin-right:0}.teacher-payroll-summary,.teacher-profile-grid{grid-template-columns:1fr}.teacher-consumption-card,.teacher-class-record{grid-template-columns:42px minmax(0,1fr)}.teacher-consumption-students,.teacher-consumption-wage,.teacher-consumption-card>.status,.teacher-consumption-card>.button,.teacher-record-wage,.teacher-class-record>.status,.teacher-class-record>.button{grid-area:auto/2}.teacher-record-toolbar{grid-template-columns:1fr}.teacher-record-toolbar>div,.teacher-record-search{grid-column:auto}.teacher-record-wage{text-align:left}.teacher-class-record>.status,.teacher-class-record>.button{justify-self:stretch;width:auto}.admin-payment-editor{grid-template-columns:1fr}.teacher-privacy-note{flex-direction:column;align-items:flex-start}}
