:root{color:#202c43;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f5f7fb;font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-weight:400;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:#fff;border:1px solid #e2e7ee;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:9px 13px;font-weight:500;transition:background .15s;display:inline-flex}button:hover{background:#f1f5fc}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #729df9}a{color:#2d65d7;text-decoration:none}h1,h2,h3,p{margin:0}h1{letter-spacing:-1px;font-size:27px;font-weight:750;line-height:1.5}h2{letter-spacing:-.5px;font-size:18px;font-weight:700}h3{font-size:16px;font-weight:650}p{color:#788398;font-size:13px}small{color:#8791a2;font-size:11px}input,select,textarea{color:#26354d;background:#fff;border:1px solid #dfe5ee;border-radius:8px;min-width:0;max-width:100%;padding:10px 12px}textarea{resize:vertical;min-height:80px}input[type=number]{width:100%}button.primary{color:#fff;background:#3268df;border-color:#3268df}button.primary:hover{background:#2557c4}.muted{color:#8290a5}.preserve{white-space:pre-wrap}strong{font-weight:650}pre{white-space:pre-wrap;word-break:break-word;font-size:11px}.app-shell{min-height:100vh}.sidebar{z-index:30;background:#fff;border-right:1px solid #e9edf3;flex-direction:column;width:232px;padding:31px 22px;display:flex;position:fixed;inset:0 auto 0 0}.brand{letter-spacing:-.8px;background:0 0;border:0;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px;padding:0;font-size:23px;font-weight:800;display:flex}.brand>span{color:#fff;background:#336be2;border-radius:10px;place-items:center;width:36px;height:36px;font-size:24px;font-weight:700;display:grid;box-shadow:0 3px 8px #356ce125}.brand small{letter-spacing:1.3px;color:#91a0b6;flex-basis:100%;margin-top:-11px;margin-left:46px;font-size:8px}.nav-label{letter-spacing:1.8px;color:#a0aabb;margin:48px 12px 14px;font-size:10px}.sidebar nav{flex-direction:column;gap:6px;display:flex}.sidebar nav button{color:#6d7c92;background:0 0;border:0;border-radius:9px;justify-content:flex-start;gap:13px;padding:13px 15px}.sidebar nav button.active{color:#3067d9;background:#edf3ff;font-weight:700}.nav-counter{color:#2b62d3;background:#e1ebff;border-radius:5px;margin-left:auto;padding:0 7px;font-size:11px}.sidebar-bottom{background:#fafbfd;border:1px solid #e8edf4;border-radius:10px;flex-wrap:wrap;align-items:center;gap:7px;margin-top:auto;padding:14px 10px;font-size:12px;display:flex}.sidebar-bottom small{flex-basis:100%;font-size:9px}.connection-dot{background:#44b394;border-radius:50%;width:6px;height:6px;display:inline-block}.workspace{margin-left:232px}.topbar{background:#ffffffd9;border-bottom:1px solid #e9edf3;justify-content:space-between;align-items:center;height:75px;padding:0 38px;display:flex}.breadcrumb{color:#97a2b5;align-items:center;gap:12px;font-size:12px;display:flex}.breadcrumb strong{color:#62718a;font-weight:500}.inline{align-items:center;gap:9px;display:flex}.spread{justify-content:space-between}.today-label{color:#7b879c;margin-right:13px;font-size:12px}.icon-button{background:0 0;border:0;padding:8px}.notification-icon{position:relative}.notification-icon i{background:#f29d73;border-radius:50%;width:5px;height:5px;position:absolute;top:7px;right:9px}.user-avatar{color:#6a7fa5;background:#e8eef9;border-radius:50%;place-items:center;width:31px;height:31px;margin-left:8px;font-size:12px;display:grid}.account-menu{position:relative}.account-menu .user-avatar{cursor:pointer;width:44px;height:44px;padding:0}.account-popover{z-index:100;background:#fff;border:1px solid #dbe2ed;border-radius:14px;width:min(320px,100vw - 38px);padding:18px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 36px #182d4826}.account-details{min-width:0}.account-details h2{margin-top:0}.account-details p{overflow-wrap:anywhere}.account-details button,.account-close{min-height:44px}.account-email{color:#435574}.account-close{float:right}.connection-error{color:#963e30;background:#fff3ef;padding:12px 20px}.connection-error button{margin-left:12px}.demo-banner{color:#7a8ba6;background:#f1f5fc;align-items:center;gap:7px;padding:9px 38px;font-size:11px;display:flex}main{max-width:1500px;margin:auto;padding:30px 38px 45px}.welcome{justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px;display:flex}.welcome p{margin-top:6px}.eyebrow{letter-spacing:2px;color:#7990b6;margin-bottom:7px;font-size:9px;font-weight:650;display:block}.welcome button.primary{padding:11px 16px}.summary-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:16px;margin-bottom:28px;display:grid}.summary{text-align:left;background:#fff;border:1px solid #e5eaf2;border-radius:13px;flex-direction:column;justify-content:center;align-items:flex-start;gap:14px;min-height:142px;padding:21px 23px;display:flex}.summary>span{color:#768398;justify-content:space-between;align-items:center;width:100%;font-size:12px;display:flex}.summary>strong{letter-spacing:-.9px;color:#24354f;font-size:27px;line-height:1.2}.summary>strong small{color:#79889c;margin-left:7px;font-size:13px}.summary>small{font-size:10px}.primary-summary{color:#fff;border-color:#3268dd;box-shadow:0 6px 16px #3066dc16;background:#3268dd!important}.primary-summary>strong,.primary-summary>span{color:#fff}.section-heading{justify-content:space-between;align-items:center;margin:28px 0 15px;display:flex}.section-heading h2{align-items:center;gap:9px;display:flex}.section-heading p{margin-top:5px;font-size:11px}.count{color:#4472ce;letter-spacing:0;background:#e8effc;border-radius:7px;place-items:center;min-width:22px;height:23px;font-size:11px;display:inline-grid}.orange-count{color:#d99451;background:#fff0e5}.text-button{color:#728199;background:0 0;border:0;padding:4px 0;font-size:11px}.text-button:hover{color:#3268df;background:0 0}.payment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;display:grid}.payment-card{background:#fff;border:1px solid #e4eaf2;border-radius:12px;padding:20px}.avatar{color:#6280b7;background:#eff3fd;border-radius:11px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:14px;display:grid}.avatar.large{width:43px;height:43px;font-size:19px}.student-name{color:#2b3850;font-size:14px;font-weight:700}.payment-card p{margin-top:1px;font-size:10px}.badge{color:#527fd6;white-space:nowrap;background:#edf3fe;border-radius:5px;align-items:center;padding:3px 7px;font-size:10px;font-weight:500;line-height:1.5;display:inline-flex}.badge.orange{color:#c1854c;background:#fff3e9}.badge.green{color:#4a9c7f;background:#eaf6f0}.badge.purple{color:#9571c6;background:#f2edfb}.badge.gray{color:#7b899b;background:#f0f2f6}.payment-amount{justify-content:space-between;align-items:center;margin:24px 0 12px;display:flex}.payment-amount strong{letter-spacing:-.7px;font-size:24px}.payment-amount span{color:#8d99ac;font-size:10px}.progress{background:#edf1f8;border-radius:10px;height:4px;margin-bottom:20px;overflow:hidden}.progress i{background:#6792ed;border-radius:10px;height:100%;display:block}.actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.payment-card .actions{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.payment-card .actions button{white-space:nowrap;padding:8px 5px;font-size:10px}.dashboard-columns{grid-template-columns:1.65fr 1fr;gap:25px;display:grid}.panel{background:#fff;border:1px solid #e4eaf2;border-radius:12px;margin-bottom:17px;padding:23px}.panel h2{margin-bottom:15px}.lesson-list{padding:3px 20px}.lesson-card{text-align:left;background:0 0;border:0;border-bottom:1px solid #eef1f6;border-radius:0;justify-content:flex-start;gap:16px;width:100%;padding:20px 0;display:flex}.lesson-card:last-child{border-bottom:0}.lesson-stripe{background:#6b95ef;border-radius:3px;flex-shrink:0;width:3px;height:40px}.lesson-stripe.extra{background:#58b496}.lesson-stripe.trial{background:#b49cda}.lesson-stripe.makeup{background:#e8ad6b}.lesson-time{flex-direction:column;gap:3px;min-width:47px;font-size:15px;font-weight:600;display:flex}.lesson-time small{font-size:10px;font-weight:400}.lesson-info{flex:1;min-width:0}.lesson-info strong{font-size:13px}.lesson-info p{margin-top:5px;font-size:11px}.action-label{color:#517ecf;white-space:nowrap;align-items:center;font-size:10px;display:flex}.operations{padding:7px 19px}.operation{color:#c39a69;border-bottom:1px solid #eef1f6;align-items:center;gap:10px;padding:18px 0;display:flex}.operation:last-child{border-bottom:0}.operation a{color:#5e6b80;flex:1;font-size:11px}.operation button{color:#9aa5b7;border:0;padding:4px}.tip{color:#7b97c5;background:#edf3fc;border:1px solid #e5edf9;border-radius:11px;gap:14px;padding:20px;display:flex}.tip strong{color:#57739d;font-size:12px}.tip p{color:#8195b1;margin-top:4px;font-size:10px}.notice{color:#5c789f;background:#f1f6ff;border:1px solid #dfebfc;border-radius:10px;margin:17px 0;padding:16px 19px;font-size:12px}.notice.amber{color:#a18550;background:#fffaf0;border-color:#f1e9d5}.notice p{color:inherit;margin:3px 0 10px;font-size:11px}.notice button{background:#ffffffb0;font-size:11px}.mini-stats{color:#8995a8;border-top:1px solid #e6ebf3;align-items:center;gap:16px;padding-top:22px;font-size:11px;display:flex}.mini-stats strong{color:#516a8f;font-size:17px}.empty{text-align:center;color:#8b98ac;border:1px dashed #dce4f0;border-radius:10px;width:100%;padding:45px 20px;font-size:13px}.filters{flex-wrap:wrap;gap:9px;margin:20px 0;display:flex}.filters input,.filters select{max-width:190px;font-size:12px}.search{color:#97a4b8;background:#fff;border:1px solid #dfe5ee;border-radius:8px;align-items:center;gap:7px;padding-left:12px;display:flex}.search input{border:0;min-width:180px}.student-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:17px;display:grid}.student-card{background:#fff;border:1px solid #e3e9f2;border-radius:13px;padding:21px}.student-card-title{text-align:left;background:0 0;border:0;justify-content:flex-start;gap:13px;width:100%;margin-bottom:20px;padding:0}.student-card-title>svg{color:#a3adbf;margin-left:auto}.student-card-title p{margin-top:3px;font-size:11px}.enrollment-mini p{margin:5px 0 8px;font-size:11px}.enrollment-mini span{font-size:11px}.next-lesson{color:#8b98aa;border-top:1px solid #edf0f6;align-items:center;gap:7px;margin-top:9px;padding-top:13px;font-size:10px;display:flex}.tabs{border-bottom:1px solid #dfe6f0;gap:25px;margin:22px 0;display:flex;overflow-x:auto}.tabs button{white-space:nowrap;color:#8691a2;background:0 0;border:0;border-radius:0;padding:12px 2px;font-size:13px}.tabs button.active{color:#346bd9;border-bottom:2px solid #3670e5;font-weight:650}.segmented{background:#eaf0f8;border-radius:9px;gap:2px;padding:3px;display:flex}.segmented button{background:0 0;border:0;padding:6px 13px;font-size:12px}.selected,.segmented button.selected{color:#3268dd;background:#edf3ff}.segmented button.selected{background:#fff;box-shadow:0 1px 5px #cad5e340}.month-grid{background:#fff;border:1px solid #dfe7f2;border-radius:10px;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.month-grid>strong{text-align:center;color:#8b99ae;background:#f8fafe;padding:12px;font-size:12px}.month-grid>div{border-bottom:1px solid #edf1f7;border-right:1px solid #edf1f7;min-height:120px;padding:10px}.month-grid>div>strong{color:#7b8ba3;font-size:12px}.month-grid>.today-cell{background:#f4f8ff}.calendar-event{text-align:left;color:#577cbb;background:#edf3ff;border:0;width:100%;margin-top:5px;padding:5px;font-size:9px;display:block;overflow:hidden}.calendar-event small{display:block}.calendar-event.extra{background:#edf8f2}.calendar-event.trial{background:#f6effc}.calendar-event.makeup{background:#fff5e8}.week-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;display:grid}.week-grid section{background:#fff;border:1px solid #e2e9f3;border-radius:10px;padding:14px}.week-grid .lesson-card{flex-wrap:wrap;gap:8px}.date-caption{color:#8493a9;padding:14px 0 0;font-size:11px;display:block}.settings-grid{grid-template-columns:1.2fr 1fr;gap:24px;display:grid}.status-row{border-bottom:1px solid #edf1f7;flex-wrap:wrap;justify-content:space-between;gap:7px;padding:14px 0;display:flex}.status-row strong{font-size:12px}.status-row small{color:#8e9bb0}.stats-panel{margin-top:24px}.stats-row{grid-template-columns:130px 1fr 90px 110px;align-items:center;gap:20px;margin:22px 0;font-size:12px;display:grid}.bar{background:#f1f5fb;border-radius:5px;height:14px}.bar i{background:#85a8ee;border-radius:5px;height:100%;display:block}.bottom-nav{display:none}.skip{z-index:100;background:#fff;padding:12px;position:fixed;top:-80px;left:250px}.skip:focus{top:10px}.login{background:#fff;border:1px solid #e0e6ef;border-radius:16px;max-width:440px;margin:10vh auto;padding:35px}.login h1{margin-top:35px}dialog{color:#24354f;border:1px solid #e3e8f1;border-radius:15px;width:min(680px,100% - 24px);max-height:90dvh;padding:27px;box-shadow:0 20px 80px #12213e30}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#24354f66}dialog>header{justify-content:space-between;align-items:center;margin-bottom:21px;display:flex}dialog header h2{font-size:20px}.field{flex-direction:column;gap:7px;margin:15px 0;display:flex}.field>span{color:#6f7f95;font-size:12px;font-weight:500}.form-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}form footer{border-top:1px solid #e9edf4;justify-content:flex-end;margin-top:23px;padding-top:18px;display:flex}.slot-list{flex-direction:column;gap:9px;display:flex}.slot-list input{flex:1}.lesson-dialog>p{margin:10px 0}.lesson-dialog>.actions{margin:18px 0}details{margin-top:20px}summary{cursor:pointer;color:#6b7f9b;font-size:12px}.danger{color:#c67b78;border-color:#eddbd9}.breakdown{margin:24px 0}.breakdown>div{border-bottom:1px solid #edf1f6;justify-content:space-between;gap:20px;padding:11px 0;font-size:12px;display:flex}.breakdown dt{color:#8491a4}.breakdown dd{margin:0;font-weight:650}.table-wrap{width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #e8edf4;padding:12px 8px}th{color:#7c8ea8;background:#f5f8fc;font-weight:500}tfoot{font-weight:650}.history-row{border-bottom:1px solid #edf1f6;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;font-size:11px;display:flex}.toast,.error-toast{z-index:150;color:#fff;background:#293b58;border-radius:10px;align-items:center;gap:12px;max-width:90vw;padding:12px 18px;font-size:12px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 5px 25px #14274633}.toast button,.error-toast button{color:#fff;white-space:nowrap;background:0 0;border:0;padding:3px;font-size:11px}.error-toast{background:#a65353;bottom:90px}.error{color:#a64e4e;margin:16px 0}@media (width<=1200px){.sidebar{width:200px;padding:28px 17px}.brand{font-size:20px}.brand small{font-size:7px}.workspace{margin-left:200px}main{padding:24px}.topbar{padding:0 24px}.summary-grid{gap:10px}.summary{gap:13px;padding:18px}.summary>strong{font-size:22px}.payment-grid,.student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns{grid-template-columns:1.3fr 1fr;gap:17px}.demo-banner{padding-inline:24px}.badge{font-size:9px}.payment-card{padding:17px}}@media (width<=900px){.sidebar{width:180px;padding:25px 12px}.brand{font-size:18px}.brand>span{width:30px;height:32px}.brand small{letter-spacing:.5px;margin-left:40px}.workspace{margin-left:180px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns,.settings-grid{grid-template-columns:1fr}.welcome{align-items:flex-start}.welcome h1{font-size:23px}.welcome .primary{white-space:nowrap;font-size:11px}.today-label{display:none}.payment-card .inline.spread{flex-wrap:wrap;align-items:flex-start}.stats-row{grid-template-columns:100px 1fr 75px 85px;gap:9px}}@media (width<=680px){.sidebar{display:none}.sidebar.expanded{inset:auto 12px calc(78px + env(safe-area-inset-bottom)) 12px;border:1px solid #e0e7f1;border-radius:14px;width:auto;padding:16px;display:flex;box-shadow:0 8px 35px #18325033}.sidebar.expanded .brand,.sidebar.expanded .nav-label,.sidebar.expanded .sidebar-bottom{display:none}.sidebar.expanded nav{grid-template-columns:1fr 1fr;display:grid}.workspace{margin-left:0}.topbar{height:60px;padding:0 19px}.breadcrumb{font-size:11px}.demo-banner{padding:9px 18px;font-size:9px}main{padding:23px 17px 110px}.welcome{gap:10px;margin-bottom:22px}.welcome h1{font-size:22px}.welcome p{max-width:235px;font-size:11px}.eyebrow{letter-spacing:1px;font-size:8px}.welcome button.primary{padding:9px 10px}.summary-grid{gap:10px;margin-bottom:23px}.summary{border-radius:11px;gap:12px;min-height:120px;padding:17px}.summary>strong{font-size:24px}.summary>span{font-size:11px}.summary>small{font-size:9px}.summary>strong small{font-size:11px}.section-heading{margin:23px 0 13px}.section-heading h2{font-size:17px}.payment-grid,.student-grid{grid-template-columns:1fr}.payment-card{padding:18px}.payment-card .inline.spread{flex-wrap:nowrap;align-items:center}.payment-card .actions button{padding:10px 6px;font-size:11px}.payment-amount{margin-top:19px}.payment-amount strong{font-size:24px}.dashboard-columns{gap:0}.lesson-card{gap:12px;padding:20px 0}.lesson-info .inline{flex-wrap:wrap;gap:6px}.lesson-list{padding:3px 14px}.lesson-info strong{font-size:13px}.lesson-time{font-size:14px}.action-label{font-size:10px}.bottom-nav{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:40;padding:8px 5px calc(8px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid #e5ebf3;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:#8c98aa;background:0 0;border:0;flex-direction:column;gap:4px;padding:4px 18px;font-size:10px;display:flex}.bottom-nav button.active{color:#3067db}.filters{gap:7px}.filters input,.filters select{max-width:160px;padding:9px;font-size:11px}.search{width:100%}.search input{width:100%;max-width:100%}.tabs{gap:20px}.tabs button{font-size:12px}.month-grid>div{min-height:90px;padding:5px 2px}.month-grid>strong{font-size:11px}.calendar-event{word-break:break-all;padding:4px 2px;font-size:8px}.calendar-event small{font-size:8px}.form-grid{grid-template-columns:1fr}.settings-grid{gap:5px}.panel{padding:18px}.stats-row{grid-template-columns:70px 1fr 65px 80px;gap:7px;font-size:10px}.stats-panel{padding:16px}.stats-row strong{font-size:10px}.toast{bottom:calc(82px + env(safe-area-inset-bottom));gap:7px;width:max-content;max-width:94vw;padding:11px 13px;font-size:10px}.error-toast{bottom:calc(140px + env(safe-area-inset-bottom));width:92vw}.notice{padding:14px}.notice .actions button{text-align:left;white-space:normal;font-size:10px}dialog{max-height:85dvh;padding:20px}.skip{left:10px}.login{margin:6vh 16px;padding:25px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}p,small,.muted,.today-label,.next-lesson,.date-caption{color:#63738b}.badge{color:#3863ad}.badge.orange{color:#966032}.badge.green{color:#327459}.badge.purple{color:#79539d}.summary>small{color:#68778c}.primary-summary>small{color:#e1eaff}.brand small{white-space:nowrap;letter-spacing:.7px;font-size:7px}.lesson-card.is-completed,.calendar-event.is-completed{color:#657184;background:#eef1f3;border-color:#d9dfe5}.lesson-card.is-completed .lesson-info strong,.calendar-event.is-completed>span:first-child{text-decoration:line-through}.calendar-event .badge{margin-top:3px;text-decoration:none}.history-group{margin:16px 0}.chain-timeline{border-left:2px solid #d9e4ec;margin:20px;padding-left:24px}.chain-timeline li{margin:16px 0}.chain-timeline p{margin:4px 0}.next-payment{background:#f3f8ff}.back-button{padding:5px 10px;font-size:12px}button.primary,.notice button.primary{color:#fff;background:#2458ce;border-color:#2458ce}button.primary:hover:not(:disabled),.notice button.primary:hover:not(:disabled){background:#1945aa;border-color:#1945aa}button.danger,.notice button.danger{color:#fff;background:#b42332;border-color:#b42332}button.danger:hover:not(:disabled),.notice button.danger:hover:not(:disabled){background:#8e1825;border-color:#8e1825}button:disabled,.notice button:disabled{color:#626b79;cursor:not-allowed;opacity:1;background:#e6e9ee;border-color:#d6dce4}.form-error{z-index:5;color:#941b28;outline-offset:2px;background:#fff0f1;border:1px solid #d88890;border-radius:9px;margin:0 0 16px;padding:14px;font-weight:600;position:sticky;top:0}.termination-preview{background:#eff5ff;border:1px solid #cdddf7;border-radius:12px;margin-top:16px;padding:18px}.current-teaching{background:#f6f8fb;border-radius:12px;margin-bottom:16px;padding:18px}form:has(>.form-error) .termination-preview .form-error{display:none}button.success:not(:disabled){color:#fff;background:#16834b;border-color:#16834b}button.success:not(:disabled):hover{background:#11683b}.lesson-primary-actions{grid-template-columns:1fr 1fr;display:grid}.error,.form-error{white-space:pre-line}.availability-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:12px 0;display:grid}.availability-days button{width:100%;padding:9px 3px;font-size:11px}.availability-days small,.occupancy-list small{display:block}.availability-days details{font-size:11px}.availability-days details[open]{z-index:2;background:#fff;border:1px solid #dbe3ef;min-width:230px;padding:8px;position:relative}.occupancy-list{overflow-wrap:anywhere;padding-left:18px;font-size:12px;line-height:1.7}.unavailable-slots{max-height:260px;margin-top:12px;overflow:auto}.unavailable-slots>div{border-bottom:1px solid #e2e8f0;padding:8px}.schedule-fields{min-width:0}.schedule-fields select,.recurring-fields select{text-overflow:ellipsis;max-width:100%}.recurring-fields details{max-height:220px;overflow:auto}.quick-entry{align-items:end;gap:12px;margin:0 0 20px;display:flex}.quick-entry .field{flex:1;margin:0}.lesson-delete{margin:24px 0 18px auto;display:block}.week-timeline{overscroll-behavior:auto;scroll-behavior:auto;border:1px solid #dbe3ef;border-radius:12px;max-height:none;position:relative;overflow:auto hidden}.week-time-row{grid-template-columns:55px repeat(7,minmax(105px,1fr));min-height:48px;display:grid}.week-time-row>span,.week-time-row>strong{padding:8px;font-size:12px}.week-drop-slot{border-bottom:1px solid #e2e8f0;border-left:1px solid #e2e8f0;min-height:48px;padding:3px}.week-drop-slot:hover{background:#edf4ff}[draggable=true]{cursor:grab}@media (width<=650px){.availability-days{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-days details[open]{min-width:0}.lesson-delete{margin-top:32px;padding:12px 18px}.quick-entry{display:block}.quick-entry button{margin-top:8px}}.form-grid>*,.field{min-width:0}.schedule-fields{grid-column:1/-1}.schedule-fields select{width:100%;min-width:0}.availability-days button{overflow-wrap:anywhere;flex-direction:column}.availability-days button:disabled{cursor:not-allowed}dialog{overscroll-behavior:auto;touch-action:pan-y}html{scrollbar-gutter:stable}.home-lessons{margin:0 0 24px}.operation-lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.operation-lesson{background:#fff;border:1px solid #dbe1e9;border-radius:16px;min-width:0;padding:18px}.operation-lesson .section-heading{align-items:center;gap:10px;margin:0 0 12px}.operation-lesson.running{background:#f3fcf8;border:2px solid #399484}.operation-lesson.unresolved{background:#fffaf0;border-color:#e0b76d}.operation-lesson p{line-height:1.65}.previous-lesson-context{border:1px solid #dee5ee;border-radius:10px;margin:12px 0;padding:12px}.recurring-fields .inline select:first-child{flex:none;min-width:110px;min-height:44px;font-size:16px}.recurring-fields .inline select:nth-child(2){min-width:140px;max-width:220px}.unavailable-slots>div,.recurring-fields details>div{padding:5px 8px}.occupancy-list{margin:6px 0;padding-left:18px}.occupancy-list li{margin:3px 0}.week-header{z-index:100;background:#f7f9fc;min-height:42px;position:relative;top:0}.week-body{min-width:1385px;position:relative}.week-labels{background:#fafbfd;width:55px;position:absolute;top:0;bottom:0;left:0}.week-labels span{color:#637185;font-size:12px;position:absolute;left:4px}.week-grid{position:absolute;inset:0 0 0 55px;overflow:clip}.week-column{border-left:1px solid #e4e8ef;position:absolute;top:0;bottom:0}.week-drop-slot{border:0;min-height:0;padding:0;position:absolute;left:0;right:0}.week-drop-slot.hour{border-top:1px solid #d9e1eb}.week-drop-slot.half{border-top:1px dashed #edf0f5}.week-event{box-sizing:border-box;text-align:left;z-index:1;border:1px solid #a8badd;border-radius:5px;flex-direction:column;justify-content:flex-start;gap:3px;min-height:0;padding:8px;font-size:13px;line-height:1.35;display:flex;left:2px;right:2px;overflow:hidden;width:auto!important;margin:0!important;position:absolute!important}.week-event small{white-space:normal}.week-event.is-completed strong{text-decoration:line-through}.calendar-event.payment-neutral,.lesson-card.payment-neutral{color:#43536a;background:#f3f5f7;border-color:#d4dce6}.calendar-event.payment-unpaid,.lesson-card.payment-unpaid{color:#884717;background:#fff0db;border-color:#e9b375}.calendar-event.payment-paid,.lesson-card.payment-paid{color:#214bb4;background:#e6efff;border-color:#99b5ed}.calendar-event.is-completed,.lesson-card.is-completed{color:#657184;background:#eef1f3;border-color:#d9dfe5}.lesson-indicators{flex-wrap:wrap;gap:4px 8px;font-size:11px;line-height:1.4;text-decoration:none;display:flex}.payment-label{font-weight:600}.payment-label.unpaid,.status-chip.unpaid{color:#87400f;background:#fff0db;border:1px solid #e9b375}.payment-label.paid{color:#214bb4;background:#e6efff;border:1px solid #99b5ed}.payment-label{border-radius:4px;padding:2px 5px}.is-completed .payment-label{text-decoration:none}.debt-banner.before-due{color:#774b20;background:#fff7ec;border-color:#e8c391}.payment-card.is-unpaid{background:#fff8ef;border-color:#e5b17b}.payment-card.is-paid{background:#edf3ff;border-color:#8fade7}.payment-card.is-estimated{background:#f8f9fb;border-color:#d8dce4}.course-statuses{flex-wrap:wrap;gap:8px 10px;margin:12px 0;display:flex}.status-chip{border:1px solid #0000;border-radius:6px;align-items:center;padding:6px 9px;line-height:1.5;display:inline-flex}.status-chip.unplaced{color:#66508d;background:#f1eaf8;border-color:#c5b1db}.status-chip.overdue{color:#a32626;background:#fdecec;border-color:#e7adad}.status-chip.ending{color:#5d586d;background:#eeeaf3;border-color:#cec5df}.calendar-period{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;display:flex}.calendar-period button{min-height:44px}.calendar-period strong{text-align:center;min-width:185px}.week-header{min-width:1385px}.week-timeline{padding-bottom:22px}.week-event strong,.week-event .event-subject,.week-event .event-time{white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:100%;display:block;overflow:hidden}.short-event .event-extra,.short-event .lesson-indicators>span:first-child,.short-event .notice-label{display:none}.short-event .lesson-indicators{width:100%;display:block}.short-event .payment-label{white-space:nowrap;text-overflow:ellipsis;padding:0 3px;display:block;overflow:hidden}.short-event>.badge{display:none}.short-event.is-completed strong:before{content:"✓ "}.week-drop-slot{cursor:pointer}.impact-list{max-height:220px;overflow:auto}.demo-actions{flex-wrap:wrap;gap:12px;margin:16px 0;display:flex}@media (width<=600px){.calendar-period{grid-template-columns:1fr 1fr;display:grid}.calendar-period strong{grid-area:1/1/auto/-1}}.session-gauge{margin:12px 0}.session-segments{gap:7px;display:grid}.session-segments span{background:#f5f7fa;border:1px solid #cbd5e4;border-radius:3px;height:12px;display:block}.session-segments .filled{background:#416dcc;border-color:#416dcc}.session-gauge small{color:#526078;margin-top:6px;display:block}.course-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:12px;display:grid}.course-actions button{min-height:36px;padding:7px;font-size:12px}.enrollment-mini{border-top:1px solid #e2e7ef;padding:16px 0}.course-next{color:#344867}.debt-banner{color:#9d2927;background:#fff0ef;border:1px solid #efb3af;border-radius:10px;margin-bottom:18px;padding:16px}.debt-banner .button-link{color:#fff;background:#ac3532;border-radius:6px;padding:10px;display:inline-block}.payment-card.highlighted{border:2px solid #cb8536}.occupancy-info-panel{background:#f7f9fc;border:1px solid #d4dce6;border-radius:8px;margin:12px 0;padding:14px}.occupancy-info-button{width:100%;margin-top:4px;padding:4px;font-size:10px}.personal-block{border-color:#bca7cd;color:#5c4475!important;background:#ece7f3!important}.week-drag-preview{z-index:90;pointer-events:none;background:#c0eddaa8;border:2px dashed #258968;font-size:12px;position:absolute;left:1px;right:1px}.week-drag-preview.conflict{background:#ffd4d4b8;border-color:#c94343}.drag-preview-summary{z-index:500;color:#fff;pointer-events:none;background:#172d4c;border-radius:12px;max-width:440px;padding:14px 18px;position:fixed;bottom:20px;right:20px;box-shadow:0 10px 30px #0004}.drag-preview-summary p{margin:5px 0;line-height:1.5}@media (width<=700px){.operation-lesson-grid{grid-template-columns:1fr}.drag-preview-summary{bottom:10px;left:10px;right:10px}.recurring-fields .inline{flex-wrap:wrap}.operation-lesson .section-heading strong{font-size:14px}}.slots-v9{position:relative}.slot-week-nav{justify-content:space-between;align-items:center;margin:12px 0;display:flex}.date-buttons{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:12px 0;display:grid}.date-buttons button{flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;padding:8px 2px;font-size:12px;display:flex}.date-buttons button[aria-pressed=false]{color:#234064;background:#fff}.date-buttons small,.time-slot-grid small{overflow-wrap:anywhere;font-size:11px;display:block}.date-buttons button[aria-pressed=true],.time-slot-grid button[aria-pressed=true]{color:#fff;background:#1b55ba;border-color:#1b55ba}.time-slot-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:14px 0;display:grid}.time-slot-grid button{text-align:left;min-height:44px;padding:8px 5px}.time-slot-grid button:disabled{opacity:1;color:#67717f;background:#eef0f3;border-color:#d6dbe2}.slot-validity{opacity:0;border:0;position:absolute;width:1px!important;height:1px!important;padding:0!important}.recurring-action{border-top:1px solid #dce1ea;margin-top:24px;padding-top:18px}.session-segments .planned{background:0 0;border:2px solid #4673ca}.lesson-indicators .session-segments{width:100%;min-width:40px;height:6px}.guide-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.homework-row,.grade-row{border-bottom:1px solid #e0e5ec;padding:14px 0}.mobile-week{display:none}.calendar-event>span:first-child{font-weight:750}@media (width>=701px){.week-timeline{overflow:visible!important}.week-body,.week-header{width:100%;min-width:0!important}.week-event{gap:1px;padding:4px;font-size:11px}.week-event strong{font-weight:750}.week-event .event-subject{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.week-event small{font-size:10px}}@media (width<=700px){.week-timeline{display:none!important}.mobile-week{display:block}.mobile-day-event{text-align:left;width:100%;margin:8px 0;padding:14px;display:block}.mobile-day-event small{display:block}.time-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}pre{white-space:pre-wrap;overflow-wrap:anywhere}}.week-event.short-event{gap:0;padding:3px 4px;line-height:12px;display:block;overflow:hidden}.week-event.short-event strong,.week-event.short-event .event-subject,.week-event.short-event .event-time{height:12px;margin:0;line-height:12px}.week-event.short-event .lesson-indicators{display:none}.time-slot-cell{min-width:0}.time-slot-cell>button{width:100%;height:auto}.time-slot-cell details{overflow-wrap:anywhere;font-size:11px}.time-slot-cell details .occupied{padding:4px}.week-event.short-event .lesson-indicators{width:auto;margin:0;display:block;position:absolute;bottom:1px;left:4px;right:4px}.week-event.short-event .lesson-indicators>span:first-child{display:none}.week-event.short-event .session-segments{height:3px;min-height:0;margin:0}.week-event.short-event .session-segments>span{border-width:1px;min-height:0}.lesson-indicators .session-segments>span{height:100%}.notice-history{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}.exam-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;display:grid}.exam-cards article{min-width:0;margin:0}.exam-urgent{border:2px solid #d99233}.vacation-banner{background:#f5f0ff;border-radius:14px;margin:12px 0;padding:16px}.vacation-line{text-align:left;white-space:normal;width:100%;margin:6px 0;display:block}.date-buttons{flex-wrap:wrap}.date-buttons button:disabled{color:#777;opacity:.8;background:#e4e4e7}.exam-board .actions{flex-wrap:wrap}.vacation-block{color:#50346d;text-align:left;cursor:pointer;background:#f1eafa;border:1px solid #b89bd2;border-left:4px solid #8860a8;border-radius:7px;width:100%;min-width:0;padding:8px;display:block;overflow:hidden}.vacation-block-text{overflow-wrap:anywhere;flex-direction:column;gap:5px;min-width:0;display:flex}.vacation-block small{opacity:.85;font-size:10px}.vacation-reason{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.week-vacation{z-index:1;background:repeating-linear-gradient(135deg,#f1eafa,#f1eafa 12px,#ece2f6 12px 24px);border-radius:0;padding:0 5px;position:absolute;overflow:clip}.week-vacation .vacation-block-text{align-self:flex-start;padding:12px 0;position:sticky;top:90px}.week-vacation{align-items:flex-start;display:flex}.week-event{z-index:2}.month-grid .vacation-block{margin:5px 0;font-size:11px}.month-grid .vacation-block small{display:none}.vacation-heading,.vacation-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vacation-heading{justify-content:space-between}.vacation-cards{gap:16px;margin-top:16px;display:grid}.vacation-card-main{text-align:left;overflow-wrap:anywhere;background:0 0;border:0;width:100%;padding:0}.vacation-card-main h2{margin:10px 0}.vacation-state{color:#684188;font-weight:700}.vacation-cancel{margin-left:auto}.vacation-impact{margin:16px 0}.vacation-impact summary{cursor:pointer}.vacation-fields{border:0;min-width:0;margin:0;padding:0}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.vacation-detail h3{overflow-wrap:anywhere}.saved-vacation{outline-offset:2px;outline:3px solid #8d64b0}.vacation-card p{overflow-wrap:anywhere}@media (width<=700px){.vacation-actions button{padding:8px;font-size:12px}.vacation-cancel{margin-left:auto}.vacation-heading h1{font-size:23px}.mobile-week .vacation-block{margin-bottom:10px}.vacation-dates{font-size:14px}}.vacation-card-main{display:block}.vacation-card-main .vacation-state{display:inline-block}.vacation-card-main strong{display:block}.recovery-row{overflow-wrap:anywhere;border:1px solid #d8dce7;border-radius:8px;margin:12px 0;padding:12px}.cancellation-result{min-width:0}.cancellation-result p,.cancellation-result small{overflow-wrap:anywhere}.month-vacation-lanes{width:100%;min-width:0;position:relative}.month-grid .month-vacation{margin:0;padding:6px;font-size:11px;position:absolute;left:0}.month-vacation .vacation-reason{-webkit-line-clamp:2}.month-vacation .vacation-block-text{gap:3px}.vacation-block.lane-theme-1{color:#254f78;background:#eaf3fc;border-color:#7ca6ce}.vacation-block.lane-theme-2{color:#75531c;background:#fff3df;border-color:#c99b50}.vacation-block.continues-before{border-top-left-radius:2px;border-bottom-left-radius:2px}.vacation-block.continues-after{border-top-right-radius:2px;border-bottom-right-radius:2px}.unprocessed-label{color:#8c541d;font-size:11px}.recovery-row label{align-items:center;gap:8px;margin-bottom:8px;display:flex}.week-vacation .vacation-block-text{width:100%;min-width:0}.week-vacation strong{font-size:11px}.week-vacation .vacation-reason{-webkit-line-clamp:4}@media (width<=700px){.month-grid .month-vacation{padding:3px;font-size:10px}.month-vacation strong{font-size:9px}.month-vacation .vacation-reason{-webkit-line-clamp:3}}.week-vacation-key{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;padding:8px 0;display:grid}.week-vacation-key button{flex-direction:column;gap:5px;font-size:12px;display:flex}.vacation-compact{display:none}.compact-vacation{border-left-width:2px;padding:0 1px!important}.compact-vacation .vacation-block-text{display:none}.compact-vacation .vacation-compact{flex-direction:column;align-items:center;gap:8px;width:100%;padding:8px 0;font-size:11px;display:flex;position:sticky;top:90px}.vacation-compact span{writing-mode:vertical-rl;letter-spacing:2px;max-height:200px;overflow:hidden}.vacation-compact b{font-size:12px}.monthly-detail{min-width:0}.monthly-detail .table-scroll{max-width:100%;overflow-x:auto}.monthly-detail table{border-collapse:collapse;width:100%;min-width:600px}.monthly-detail th,.monthly-detail td{text-align:left;border-bottom:1px solid #e2e8f0;padding:10px}.monthly-progress{color:#475569;line-height:1.7}
