:root{color:#20251f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f7f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{background:#f6f7f2;min-width:320px}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}:root{--etop-body-font:Inter, "Noto Sans", "Be Vietnam Pro", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--etop-brand-font:var(--etop-body-font);--etop-display-font:var(--etop-body-font);--etop-blue:#087aba;--etop-blue-dark:#075b8d;--etop-green:#2f9f74;--etop-orange:#ff9f1c;--etop-ink:#17201c;font-size:15px;font-family:var(--etop-body-font);color:#1f2933;background:#eef6fa}body{background:#eef6fa;margin:0}*{box-sizing:border-box}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.app-shell{background:linear-gradient(90deg,#087aba14,#0000 420px),#eef6fa;grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f8faf7;background:linear-gradient(#0e3348 0%,#13251e 100%);flex-direction:column;gap:24px;height:100vh;min-height:100vh;padding:22px 16px;display:flex;position:sticky;top:0;overflow:hidden;box-shadow:18px 0 42px #0b2a372e}.brand{align-items:center;gap:12px;display:flex}.brand-mark{object-fit:cover;border:1px solid #ffffff4d;border-radius:8px;width:52px;height:52px;display:block;box-shadow:0 10px 22px #00000038}.brand strong,.brand span{display:block}.brand strong{font-family:var(--etop-brand-font);letter-spacing:0;font-size:17px;font-weight:850;line-height:1.15}.brand span{color:#b8c3bd;font-size:13px}.nav-list{overscroll-behavior:contain;scrollbar-width:thin;gap:12px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.nav-group{gap:5px;display:grid}.nav-group-title{color:#a9d8ee;letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:7px;min-height:24px;padding:0 8px;font-size:12px;font-weight:900;display:flex}.nav-subtree{gap:4px;display:grid}.nav-item{color:#dbe4de;text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:10px;min-height:38px;padding:0 10px 0 14px;text-decoration:none;transition:background .16s,border-color .16s,box-shadow .16s,color .16s,transform .16s;display:flex}.nav-item span{font-family:var(--etop-body-font);letter-spacing:0;font-size:14px;font-weight:850;line-height:1.2}.nav-item:hover,.nav-item.active{color:#fff;box-shadow:inset 4px 0 0 var(--etop-orange);background:#ffffff1f;border-color:#ffffff29}.nav-item:hover{transform:translate(2px)}.sidebar-status{border:1px solid #34423b;border-radius:8px;flex:none;gap:4px;margin-top:auto;padding:14px;display:grid}.sidebar-status span{color:#aebbb4;font-size:13px}.sidebar-status strong{font-family:var(--etop-display-font);letter-spacing:.02em;text-transform:uppercase;font-size:15px;font-weight:400}.workspace{min-width:0;padding:22px}.topbar{background:#ffffffe0;border:1px solid #087aba1f;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;min-height:58px;margin-bottom:22px;padding:14px 16px;display:flex;box-shadow:0 14px 34px #0f364817}.topbar-title{align-items:center;gap:11px;min-width:0;display:flex}.mobile-menu-button,.sidebar-backdrop{display:none}.topbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.preference-controls{align-items:center;gap:8px;display:inline-flex}.segmented-toggle,.mode-toggle{color:#173b50;background:#fff;border:1px solid #cfdde4;border-radius:8px;align-items:center;gap:6px;min-height:38px;padding:0 7px;display:inline-flex}.segmented-toggle button,.mode-toggle{font-size:13px;font-weight:850}.segmented-toggle button{color:#526a74;background:0 0;border-radius:6px;min-width:34px;min-height:28px}.segmented-toggle button.selected{color:#fff;background:#087aba}.mode-toggle{padding:0 11px}.eyebrow{color:var(--etop-blue-dark);font-family:var(--etop-display-font);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:13px;font-weight:900}h1,h2{color:var(--etop-ink);font-family:var(--etop-display-font);letter-spacing:0;margin:0;font-weight:850}h1{font-size:30px;line-height:1.15}h2{font-size:18px;line-height:1.28}label{color:#435049;gap:6px;font-size:13px;font-weight:800;display:grid}input,select,textarea{width:100%;min-height:38px;color:var(--etop-ink);background:#fff;border:1px solid #cfdde4;border-radius:6px;padding:0 11px}textarea{resize:vertical;min-height:98px;padding:10px 11px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--etop-blue);outline-offset:2px}.search-box{color:#526a74;background:#fff;border:1px solid #cfdde4;border-radius:8px;align-items:center;gap:8px;width:min(420px,45vw);min-height:42px;padding:0 12px;display:flex}.search-box input{border:0;min-height:38px;padding:0}.search-box input:focus{outline:0}.primary-button,.secondary-button,.icon-button,.action-row button,.segmented-control button,td button{white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:38px;font-size:14px;font-weight:800;display:inline-flex}.primary-button{background:linear-gradient(135deg, #087aba 0%, #35a878 46%, var(--etop-orange) 100%);color:#fff;padding:0 16px;transition:box-shadow .16s,filter .16s,transform .16s;transform:translateY(0);box-shadow:0 12px 20px #ff9f1c38,0 8px 18px #087aba29}.primary-button:hover{filter:saturate(1.08)brightness(1.03);transform:translateY(-1px)}.primary-button:active{transform:translateY(2px)scale(.985);box-shadow:0 5px 10px #ff9f1c2e,0 3px 8px #087aba21}.primary-button:disabled{cursor:not-allowed;filter:none;background:#8aa598;transform:none}.secondary-button,td button,.action-row button{color:#173b50;background:#eef6fa;padding:0 12px}.secondary-button:hover,td button:hover,.action-row button:hover{background:#d9edf7}.icon-button{width:38px;color:var(--etop-ink);background:#fff;border:1px solid #cfdde4}input[type=file]::file-selector-button{min-height:30px;color:var(--etop-ink);font:inherit;background:#fff;border:1px solid #cfdde4;border-radius:5px;margin-right:9px;font-weight:800}.notice,.error-banner{border-radius:8px;margin-bottom:18px;padding:12px 14px;font-size:14px;font-weight:800}.notice{color:#1f6b43;background:#eef9f2;border:1px solid #bfe7cf}.error-banner{color:#9f2d20;background:#ffe7e1;border:1px solid #f4b7aa}.view-stack{gap:18px;display:grid}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-tile,.panel,.table-frame,.entry-form,.class-card,.attendance-list{background:#fff;border:1px solid #087aba1f;border-radius:8px;box-shadow:0 10px 26px #12384812}.stat-tile{align-content:space-between;gap:14px;min-height:118px;padding:17px;display:grid;position:relative;overflow:hidden}.stat-tile-button{text-align:left;width:100%}.stat-tile-button:hover,.focused-card{border-color:#087aba52;transform:translateY(-2px);box-shadow:0 18px 38px #12384824}.stat-tile:after{content:"";opacity:.18;border-radius:8px 0 0;width:56px;height:56px;position:absolute;bottom:0;right:0}.stat-tile span,.stat-tile small,.list-row span,td span,dd,.attendance-row span,footer span,.empty-state{color:#65736d;font-size:14px}.stat-tile>div:first-child{gap:8px;padding-right:58px;display:grid}.stat-tile strong{color:var(--etop-ink);font-size:22px;line-height:1.15;display:block}.stat-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.tone-green{border-left:4px solid var(--etop-green);background:linear-gradient(135deg,#fff 0%,#f0fbf4 100%)}.tone-green:after{background:var(--etop-green)}.tone-blue{border-left:4px solid var(--etop-blue);background:linear-gradient(135deg,#fff 0%,#eef8ff 100%)}.tone-blue:after{background:var(--etop-blue)}.tone-amber{border-left:4px solid var(--etop-orange);background:linear-gradient(135deg,#fff 0%,#fff7ea 100%)}.tone-amber:after{background:var(--etop-orange)}.tone-slate{background:linear-gradient(135deg,#fff 0%,#f4f7f8 100%);border-left:4px solid #66727a}.tone-slate:after{background:#66727a}.split-grid,.command-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.panel{min-width:0}.panel-header{background:linear-gradient(90deg,#f8fcff,#fff);border-bottom:1px solid #e2edf2;justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding:13px 15px;display:flex}.compact-list{display:grid}.list-row{border-bottom:1px solid #edf3f6;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:12px 17px;display:flex}.list-row:hover{background:#f8fcff}.list-row:last-child{border-bottom:0}.row-main-button,.row-value-button,.table-link-button{color:inherit;text-align:left;background:0 0;border:0;padding:0;display:grid}.row-main-button{flex:1;min-width:0}.row-value-button{color:var(--etop-blue-dark);justify-items:end;font-weight:900}.row-main-button:hover strong,.table-link-button:hover strong,.row-value-button:hover{color:var(--etop-blue);text-decoration:underline}.focused-row{background:#f2fbf6}.clickable-panel{cursor:pointer;transition:border-color .16s,box-shadow .16s,transform .16s}.clickable-panel:hover{border-color:#087aba47;transform:translateY(-1px);box-shadow:0 16px 34px #1238481f}.list-row strong,.list-row span,td strong,td span,.attendance-row strong,.attendance-row span{display:block}.attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:12px;min-height:180px;padding:18px;display:grid}.summary-item{text-align:center;border:1px solid #e3e8eb;border-radius:7px;place-items:center;gap:4px;display:grid}.summary-item strong{font-size:28px}.summary-item span{color:#65736d;font-size:14px}.focus-panel{display:grid}.focus-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;display:grid}.profile-details{gap:10px;padding:0 16px 16px;display:grid}.profile-details div{border:1px solid #e2edf2;border-radius:7px;min-height:42px;padding:10px 12px}.profile-details strong,.profile-details span{display:block}.profile-details strong{color:var(--etop-ink)}.toolbar{justify-content:space-between;align-items:end;gap:12px;display:flex}.filter-row{flex-wrap:wrap;gap:12px;display:flex}.filter-row label{min-width:180px}.compact-toolbar{padding-top:0}.inline-control{gap:10px;display:flex}.inline-control select{flex:1}.inline-control button{min-width:140px}.entry-form{border-top:3px solid #087aba59;gap:12px;padding:16px;display:grid}.student-form,.class-form,.teacher-form,.settings-form{grid-template-columns:repeat(4,minmax(0,1fr))}.class-management-grid{grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);align-items:start;gap:16px;padding:16px;display:grid}.homework-form,.panel-body-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.library-form{padding:16px}.homework-submit-form{overflow:hidden}.panel-body-grid{padding:16px}.homework-stack{gap:12px;min-width:0;display:grid}.quiz-builder{background:#f8fcff;border:1px solid #dbe8ee;border-radius:8px;gap:12px;padding:12px;display:grid}.quiz-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.quiz-question-list{flex-wrap:wrap;gap:8px;display:flex}.quiz-question-list span{color:#31576a;background:#eef6fa;border-radius:999px;padding:6px 9px;font-size:13px;font-weight:800}.file-input-label span{color:#65736d;font-size:13px}.table-save-button{min-height:34px;padding:0 11px;font-size:13px}.assignment-preview{background:#fbfdff;border:1px solid #dbe8ee;border-radius:8px;gap:10px;padding:12px;display:grid}.assignment-preview strong,.assignment-preview span{display:block}.assignment-preview p{color:#65736d;margin:0;font-size:14px;font-weight:700}.assignment-resource{width:fit-content;min-height:36px;color:var(--etop-blue-dark);background:#eef8fd;border:1px solid #087aba33;border-radius:7px;align-items:center;gap:7px;padding:7px 10px;font-size:13px;font-weight:850;text-decoration:none;display:inline-flex}.assignment-preview ol{gap:10px;margin:0;padding-left:18px;display:grid}.assignment-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:6px;display:grid}.assignment-options span{color:#52615a;background:#fff;border:1px solid #e2edf2;border-radius:6px;padding:6px 8px;font-size:13px;font-weight:800}.assignment-options .correct{color:#237043;background:#e9f8ef;border-color:#2f9f7459}.exercise-bank-view{gap:18px}.exercise-bank-hero .panel-header{border-bottom:0}.exercise-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 16px 16px;display:grid}.exercise-toolbar{align-items:stretch}.exercise-library-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;padding:16px;display:grid}.exercise-library-card{background:#fbfdff;border:1px solid #dbe8ee;border-radius:8px;gap:12px;min-width:0;padding:14px;display:grid;box-shadow:0 12px 26px #0b2a3712}.exercise-card-main{color:inherit;text-align:left;background:0 0;gap:5px;padding:0;display:grid}.exercise-card-main strong{color:var(--etop-ink);font-size:18px;line-height:1.25}.exercise-card-main span:last-child{color:#65736d;font-size:13px;font-weight:750;line-height:1.35}.exercise-card-meta{flex-wrap:wrap;gap:7px;display:flex}.exercise-card-meta span{color:#31576a;background:#f3f9fc;border:1px solid #dbe8ee;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:850}.exercise-file-link{width:fit-content;color:var(--etop-blue-dark);align-items:center;gap:7px;font-size:13px;font-weight:850;text-decoration:none;display:inline-flex}.rich-text-field{gap:6px;display:grid}.rich-text-label{color:#435049;font-size:13px;font-weight:800}.editor-toolbar{background:#f8fcff;border:1px solid #dbe8ee;border-radius:7px;display:grid;overflow:hidden}.editor-menu-strip,.editor-button-row{flex-wrap:wrap;align-items:center;gap:4px;padding:6px;display:flex}.editor-button-row+.editor-button-row{border-top:1px solid #e1eaf0}.editor-tool-button{border-radius:5px;width:36px;min-height:32px}.editor-control-row{align-items:stretch}.editor-select,.editor-swatch-select{border-radius:5px;width:auto;min-height:32px;padding:0 9px;font-size:13px;font-weight:800}.editor-select{min-width:150px}.editor-font-select{min-width:176px}.editor-size-select{min-width:128px}.editor-swatch-select{min-width:132px}.rich-text-editor{--editor-default-background:#fff;--editor-default-color:var(--etop-ink);--editor-default-size:15px;width:100%;min-height:146px;color:var(--etop-ink);font-size:var(--editor-default-size);background:#fff;border:1px solid #cfdde4;border-radius:6px;padding:12px;line-height:1.5;overflow:auto}.rich-text-editor:focus{outline:2px solid var(--etop-blue);outline-offset:2px}.rich-text-editor:empty:before{color:#8a9aa3;content:attr(data-placeholder)}.rich-text-editor .editor-italic,.rich-text-display .editor-italic,.rich-text-editor i,.rich-text-editor em,.rich-text-display i,.rich-text-display em,.rich-text-editor [style*="font-style: italic"],.rich-text-display [style*="font-style: italic"]{font-synthesis-style:auto;font-style:oblique!important}.rich-text-display{--editor-default-background:transparent;--editor-default-color:#65736d;--editor-default-size:14px;color:#65736d;min-height:132px;font-size:14px;font-weight:700;line-height:1.45}.rich-text-display :first-child{margin-top:0}.rich-text-display :last-child{margin-bottom:0}.rich-text-display ul,.rich-text-display ol,.rich-text-editor ul,.rich-text-editor ol{padding-left:22px}.rich-text-display blockquote,.rich-text-editor blockquote{border-left:4px solid var(--etop-orange);color:#475b66;margin:8px 0;padding-left:10px}.question-workbench{background:linear-gradient(135deg,#087aba0f,#ff9f1c14),#f8fcff}.question-draft-grid,.modal-edit-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.question-list-editor{gap:10px;display:grid}.question-editor-card{background:#fff;border:1px solid #dbe8ee;border-radius:8px;gap:10px;padding:12px;display:grid}.question-editor-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.modal-backdrop{z-index:50;background:#08182294;justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.exercise-modal{width:min(1120px,100vw - 36px);max-height:calc(100vh - 46px);color:var(--etop-ink);background:#f7fbfd;border:1px solid #087aba2e;border-radius:10px;grid-template-rows:auto auto minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 28px 80px #08182252}.exercise-modal-header{background:linear-gradient(135deg,#fff,#eef8fd);border-bottom:1px solid #dbe8ee;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;display:flex}.exercise-modal-header h2{margin:0;font-size:24px}.modal-tab-row{background:#fff;border-bottom:1px solid #dbe8ee;flex-wrap:wrap;gap:8px;padding:10px 12px;display:flex}.modal-tab-row button{color:#173b50;background:#eef6fa;border-radius:7px;align-items:center;gap:7px;min-height:36px;padding:0 12px;font-weight:850;display:inline-flex}.modal-tab-row button.selected{color:#fff;background:linear-gradient(135deg,#087aba,#35a878)}.exercise-modal>.exercise-preview,.exercise-modal>.assignment-desk,.exercise-modal>.table-frame,.exercise-modal>.modal-edit-form,.exercise-modal>.notice{min-height:0;overflow:auto}.exercise-preview,.assignment-desk{gap:14px;padding:18px;display:grid}.exercise-preview-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.exercise-preview-head h2{margin:2px 0 0;font-size:26px}.exercise-meta-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.preserve-lines{white-space:pre-wrap}.exercise-preview ol{gap:12px;margin:0;padding-left:20px;display:grid}.modal-edit-form{padding:18px}.danger-button{color:#9d2f2a}.error-notice{color:#9d3f24;background:#fff3ed;border-color:#f4b29b;margin:12px 18px 0}.list-row-button{width:100%;color:inherit;text-align:left;background:0 0;border:0}.score-chart{padding:18px}.score-chart svg{width:100%;min-height:220px;display:block}.score-chart line{stroke:#cbdbe3;stroke-width:2px}.score-chart polyline{fill:none;stroke:var(--etop-orange);stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.score-chart circle{fill:#fff;stroke:var(--etop-blue);stroke-width:3px}.score-chart text{fill:var(--etop-ink);text-anchor:middle;font-size:13px;font-weight:900}.permission-layout{gap:14px;padding:16px;display:grid}.permission-layout p{color:#65736d;margin:0;font-size:14px;font-weight:700}.permission-grid{grid-template-columns:repeat(5,minmax(190px,1fr));gap:12px;display:grid}.role-create-form{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;display:grid}.role-select-control{max-width:380px}.permission-card{background:#fbfdff;border:1px solid #dbe8ee;border-radius:8px;overflow:hidden}.permission-card>div:first-child{background:linear-gradient(135deg,#fff,#f2f9fc);border-bottom:1px solid #e3edf2;padding:12px}.permission-card strong,.permission-card span,.permission-card small{display:block}.permission-card strong{color:var(--etop-ink);font-size:15px}.permission-card>div:first-child span{color:#65736d;font-size:12px;font-weight:800}.permission-list{max-height:360px;display:grid;overflow:auto}.permission-card-wide .permission-list,.permission-list-compact{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.permission-list label{border-bottom:1px solid #edf3f6;align-items:center;gap:8px;min-height:42px;padding:8px 10px;display:flex}.permission-list label:last-child{border-bottom:0}.permission-list input{width:auto;min-height:auto}.permission-list span{color:var(--etop-ink);font-size:13px;font-weight:800}.permission-list small{color:#71827a;font-size:11px;font-weight:700}.field-hint{color:#65736d;font-size:12px;font-weight:700}.check-label{align-content:end;align-items:center;gap:8px;min-height:38px;display:flex}.check-label input{width:auto;min-height:auto}.mini-input{max-width:92px}.role-pill{color:#173b50;background:#eef6fa;border-radius:999px;align-items:center;min-height:28px;padding:4px 9px;font-size:13px;font-weight:900;display:inline-flex}.level-form{grid-template-columns:minmax(220px,1fr) 160px auto;align-items:end}.payment-form{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end}.payment-form .form-actions{align-self:stretch}.weekday-picker{flex-wrap:wrap;align-items:center;gap:7px;min-height:40px;display:flex}.weekday-picker label{background:#fff;border:1px solid #cfdde4;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:0 10px;display:inline-flex}.weekday-picker input{width:auto;min-height:auto;padding:0}.tuition-preview{background:#f2fbf6;border:1px solid #cde0d8;border-radius:8px;gap:2px;min-height:82px;padding:12px 14px;display:grid}.tuition-preview span,.tuition-preview small{color:#52615a;font-size:13px}.tuition-preview strong{color:#245d38;font-size:22px}.compact-actions{min-width:0}.span-2{grid-column:span 2}.form-actions{align-items:end;gap:10px;display:flex}.table-frame{overflow:auto}.table-frame table,.table-frame>table{border-collapse:collapse;width:100%;min-width:860px}.table-frame.compact table,.table-frame.compact>table{min-width:600px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #e5edf1;padding:10px 12px}th{color:#31576a;text-transform:uppercase;background:#f2f8fb;font-size:13px;font-weight:900}td{color:#1f2933;font-size:14px}.action-row{flex-wrap:wrap;gap:7px;min-width:310px;display:flex}.status{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:4px 9px;font-size:13px;font-weight:900;display:inline-flex}.status-active,.status-paid,.status-present{color:#237043;background:#e5f8ed}.status-trial,.status-late,.status-unpaid{color:#8a540c;background:#fff2d9}.status-paused,.status-absent,.status-overdue{color:#9b2f22;background:#ffe7e1}.status-archived,.status-closed{color:#59636b;background:#edf1f3}.class-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.class-card{gap:16px;min-height:240px;padding:15px;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid;position:relative;overflow:hidden}.class-card:before{background:linear-gradient(90deg, var(--etop-blue), var(--etop-green), var(--etop-orange));content:"";height:4px;position:absolute;top:0;left:0;right:0}.class-card:hover{border-color:#087aba40;transform:translateY(-2px);box-shadow:0 16px 34px #1238481f}.class-card-top{justify-content:space-between;gap:14px;display:flex}.class-card h2{font-family:var(--etop-body-font);text-transform:none;overflow-wrap:anywhere;font-size:20px;font-weight:850;line-height:1.25}dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin:0;display:grid}dt{color:#65736d;font-size:14px;font-weight:800}dd{color:var(--etop-ink);overflow-wrap:anywhere;margin:2px 0 0}footer{border-top:1px solid #e2edf2;justify-content:space-between;align-items:center;gap:14px;padding-top:14px;display:flex}footer strong{color:var(--etop-blue-dark);text-align:right}.attendance-list{display:grid}.attendance-row{border-bottom:1px solid #edf1f2;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:13px 16px;display:flex}.attendance-row:last-child{border-bottom:0}.attendance-row span{align-items:center;gap:5px;margin-top:3px;display:flex}.segmented-control{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:310px;display:grid}.segmented-control button{color:#173b50;background:#eef6fa}.segmented-control button.selected{background:var(--etop-green);color:#fff}.empty-state{text-align:center;place-items:center;min-height:56px;padding:12px;display:grid}.login-screen{background:linear-gradient(135deg,#087aba24,#2f9f741a),#eef6fa;place-items:center;min-height:100vh;padding:22px;display:grid}.login-card{background:#fff;border:1px solid #087aba1f;border-radius:8px;gap:18px;width:min(520px,100%);padding:30px;display:grid;box-shadow:0 22px 55px #0c3b5229}.login-card .brand-mark{width:64px;height:64px}[data-theme=dark]{--etop-blue:#4a9fca;--etop-blue-dark:#8fbfd6;--etop-green:#76b99a;--etop-orange:#ffad3d;--etop-ink:#e8edf0;color:#c5d3dc;background:#0a1824}[data-theme=dark] body{background:#0a1824}[data-theme=dark] .app-shell{background:linear-gradient(90deg,#4a9fca1a,#0000 460px),radial-gradient(circle at 80% 0,#e59a4a12,#0000 360px),#0a1824}[data-theme=dark] .login-screen{background:linear-gradient(135deg,#4a9fca1a,#e59a4a14),#0a1824}[data-theme=dark] .sidebar{background:linear-gradient(#0d2a3a 0%,#0a1d2a 100%);box-shadow:18px 0 42px #00000047}[data-theme=dark] .mobile-menu-button{color:#b9d8e8;background:#102b3a;border-color:#31566a}[data-theme=dark] .topbar,[data-theme=dark] .stat-tile,[data-theme=dark] .panel,[data-theme=dark] .table-frame,[data-theme=dark] .entry-form,[data-theme=dark] .class-card,[data-theme=dark] .attendance-list,[data-theme=dark] .login-card{background:#122636;border-color:#8fbfd62e;box-shadow:0 14px 34px #0000003d}[data-theme=dark] .panel-header{background:linear-gradient(90deg,#172e40,#122636);border-bottom-color:#8fbfd626}[data-theme=dark] .brand span,[data-theme=dark] .sidebar-status span,[data-theme=dark] .stat-tile span,[data-theme=dark] .stat-tile small,[data-theme=dark] .list-row span,[data-theme=dark] td span,[data-theme=dark] dd,[data-theme=dark] .attendance-row span,[data-theme=dark] footer span,[data-theme=dark] .empty-state,[data-theme=dark] .summary-item span,[data-theme=dark] dt,[data-theme=dark] .rich-text-label,[data-theme=dark] label{color:#9eb4c1}[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] .stat-tile strong,[data-theme=dark] .list-row strong,[data-theme=dark] td,[data-theme=dark] td strong,[data-theme=dark] dd,[data-theme=dark] footer strong,[data-theme=dark] .attendance-row strong,[data-theme=dark] .summary-item strong{color:#e8edf0}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea,[data-theme=dark] .rich-text-editor,[data-theme=dark] .search-box,[data-theme=dark] .segmented-toggle,[data-theme=dark] .mode-toggle{color:#d8e3e9;background:#0f2231;border-color:#2a4557}[data-theme=dark] input[type=file]::file-selector-button{color:#c9dce5;background:#182f40;border-color:#2a4557}[data-theme=dark] .rich-text-editor{--editor-default-background:#0f2231;--editor-default-color:#d8e3e9}[data-theme=dark] .rich-text-display{--editor-default-color:#9eb4c1}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:#8197a6}[data-theme=dark] .secondary-button,[data-theme=dark] .icon-button,[data-theme=dark] td button,[data-theme=dark] .action-row button,[data-theme=dark] .segmented-control button{color:#c9dce5;background:#182f40}[data-theme=dark] .secondary-button:hover,[data-theme=dark] .icon-button:hover,[data-theme=dark] td button:hover,[data-theme=dark] .action-row button:hover,[data-theme=dark] .list-row:hover{background:#193548}[data-theme=dark] .primary-button{color:#fff7ec;background:linear-gradient(135deg,#2d78a1 0%,#4d9d89 44%,#ffad3d 100%)}[data-theme=dark] .segmented-toggle button.selected{color:#102130;background:#d98d3a}[data-theme=dark] .nav-item.active,[data-theme=dark] .nav-item:hover{box-shadow:inset 3px 0 #d98d3a}[data-theme=dark] .notice{color:#b9dec7;background:#142d27;border-color:#3e7354}[data-theme=dark] .error-banner{color:#ffd2ca;background:#3b1716;border-color:#7b332c}[data-theme=dark] th{color:#a9cfe2;background:#172e40}[data-theme=dark] th,[data-theme=dark] td,[data-theme=dark] .list-row,[data-theme=dark] .attendance-row,[data-theme=dark] footer{border-color:#8fbfd621}[data-theme=dark] .tone-green,[data-theme=dark] .tone-blue,[data-theme=dark] .tone-amber,[data-theme=dark] .tone-slate{background:#122636}[data-theme=dark] .summary-item,[data-theme=dark] .weekday-picker label,[data-theme=dark] .tuition-preview,[data-theme=dark] .quiz-builder,[data-theme=dark] .assignment-preview,[data-theme=dark] .exercise-library-card,[data-theme=dark] .question-editor-card,[data-theme=dark] .exercise-modal,[data-theme=dark] .permission-card{background:#0f2231;border-color:#2a4557}[data-theme=dark] .exercise-modal-header,[data-theme=dark] .modal-tab-row,[data-theme=dark] .editor-toolbar{background:#122636;border-color:#2a4557}[data-theme=dark] .editor-button-row+.editor-button-row{border-top-color:#2a4557}[data-theme=dark] .editor-select,[data-theme=dark] .editor-swatch-select{color:#d8e3e9;background:#0f2231;border-color:#2a4557}[data-theme=dark] .modal-backdrop{background:#020b12b8}[data-theme=dark] .exercise-card-main strong,[data-theme=dark] .exercise-preview-head h2,[data-theme=dark] .exercise-modal-header h2,[data-theme=dark] .question-editor-head strong{color:#e8edf0}[data-theme=dark] .exercise-card-main span:last-child,[data-theme=dark] .exercise-card-meta span,[data-theme=dark] .exercise-preview p,[data-theme=dark] .rich-text-display,[data-theme=dark] .preserve-lines{color:#9eb4c1}[data-theme=dark] .rich-text-editor:empty:before{color:#8197a6}[data-theme=dark] .rich-text-display blockquote,[data-theme=dark] .rich-text-editor blockquote{color:#b7c8d2}[data-theme=dark] .exercise-card-meta span,[data-theme=dark] .modal-tab-row button{color:#c9dce5;background:#182f40;border-color:#2a4557}[data-theme=dark] .modal-tab-row button.selected{color:#fff7ec;background:linear-gradient(135deg,#2d78a1,#4d9d89)}[data-theme=dark] .exercise-file-link{color:#a9d8ee}[data-theme=dark] .error-notice{color:#ffd2ca;background:#3b1716;border-color:#7b332c}[data-theme=dark] .permission-card>div:first-child{background:linear-gradient(135deg,#172e40,#102231);border-bottom-color:#2a4557}[data-theme=dark] .permission-list label{border-bottom-color:#8fbfd621}[data-theme=dark] .permission-layout p,[data-theme=dark] .assignment-preview p,[data-theme=dark] .permission-card>div:first-child span,[data-theme=dark] .permission-list small,[data-theme=dark] .file-input-label span{color:#9eb4c1}[data-theme=dark] .assignment-options span{color:#c9dce5;background:#182f40;border-color:#2a4557}[data-theme=dark] .assignment-resource{color:#a9d8ee;background:#182f40;border-color:#2a4557}[data-theme=dark] .assignment-options .correct{color:#b6d9c2;background:#1c3a2f;border-color:#55ac7773}[data-theme=dark] .permission-card strong,[data-theme=dark] .permission-list span,[data-theme=dark] .assignment-preview strong{color:#e8edf0}[data-theme=dark] .score-chart line{stroke:#294557}[data-theme=dark] .score-chart circle{fill:#102231;stroke:#8bc6e6}[data-theme=dark] .score-chart text{fill:#d7e6ee}[data-theme=dark] .quiz-question-list span{color:#c9dce5;background:#182f40}[data-theme=dark] .profile-details div{background:#0f2231;border-color:#2a4557}[data-theme=dark] .focused-row{background:#162f3a}[data-theme=dark] .row-main-button,[data-theme=dark] .row-value-button,[data-theme=dark] .table-link-button{color:inherit}[data-theme=dark] .row-value-button,[data-theme=dark] .row-main-button:hover strong,[data-theme=dark] .table-link-button:hover strong,[data-theme=dark] .row-value-button:hover{color:#e59a4a}[data-theme=dark] .role-pill{color:#e5c08d;background:#182f40}[data-theme=dark] .tuition-preview strong{color:#e5c08d}[data-theme=dark] .status-active,[data-theme=dark] .status-paid,[data-theme=dark] .status-present{color:#b6d9c2;background:#1c3a2f}[data-theme=dark] .status-trial,[data-theme=dark] .status-late,[data-theme=dark] .status-unpaid{color:#e9c58e;background:#3b2b19}[data-theme=dark] .status-paused,[data-theme=dark] .status-absent,[data-theme=dark] .status-overdue{color:#e1aaa1;background:#3b2220}[data-theme=dark] .status-archived,[data-theme=dark] .status-closed{color:#b8c8d1;background:#253747}@media (width<=1160px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.topbar{flex-direction:column;align-items:stretch}.topbar-actions .search-box{width:min(100%,520px)}.stats-grid,.stats-grid.three,.class-grid,.student-form,.class-form,.teacher-form,.settings-form,.class-management-grid,.permission-grid,.level-form,.payment-form,.exercise-metrics,.exercise-meta-grid,.modal-edit-form,.question-draft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-card-wide .permission-list,.permission-list-compact{grid-template-columns:1fr}}@media (width<=820px){.app-shell{display:block}.sidebar{z-index:60;width:min(86vw,320px);height:100dvh;min-height:100dvh;transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-102%)}.sidebar.mobile-open{transform:translate(0)}.sidebar-backdrop{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#04131c9e;display:block;position:fixed;inset:0}.mobile-menu-button{color:#145f86;background:#f7fbfd;border:1px solid #cbdde6;border-radius:7px;flex:0 0 42px;place-items:center;width:42px;height:42px;display:inline-grid}.workspace,.topbar{padding:12px}.topbar-title h1{font-size:24px}.topbar,.toolbar,.inline-control,.attendance-row{flex-direction:column;align-items:stretch}.search-box{width:100%}.stats-grid,.stats-grid.three,.split-grid,.command-grid,.class-grid,.student-form,.class-form,.teacher-form,.settings-form,.class-management-grid,.homework-form,.panel-body-grid,.permission-grid,.role-create-form,.assignment-options,.quiz-options,.exercise-metrics,.exercise-meta-grid,.modal-edit-form,.question-draft-grid,.level-form,.payment-form,.focus-grid,.attendance-summary{grid-template-columns:1fr}.modal-backdrop{padding:12px}.exercise-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.exercise-modal-header,.exercise-preview-head,.question-editor-head{flex-direction:column;align-items:stretch}.span-2{grid-column:auto}.segmented-control{min-width:0}}.material-builder-view{align-items:stretch}.material-hero{overflow:hidden}.material-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;display:grid}.material-metric{text-align:center;background:#f8fcff;border:1px solid #dce9ef;border-radius:8px;place-items:center;gap:4px;min-height:82px;padding:12px;display:grid}.material-metric strong{color:var(--etop-ink);font-size:26px;line-height:1.05}.material-metric span{color:#65736d;font-size:13px;font-weight:800}.material-metric.tone-ok{background:#f2fbf6;border-color:#bfe7cf}.material-metric.tone-warn{background:#fff7ea;border-color:#f2c185}.material-warning{align-items:center;gap:8px;display:flex}.material-warning small{color:#60706a;font-weight:700}.material-layout{grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr);align-items:start;gap:18px;display:grid}.material-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;display:grid}.material-form label{min-width:0}.material-form .span-2{grid-column:1/-1}.material-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.material-type-grid button{color:#173b50;background:#fff;border:1px solid #cfdde4;border-radius:7px;min-height:40px;font-weight:850}.material-type-grid button.selected{background:#eaf7fc;border-color:#087aba;box-shadow:inset 0 0 0 2px #087aba29}.material-total{min-height:42px;color:var(--etop-ink);background:#fff;border:1px solid #cfdde4;border-radius:7px;align-content:center;gap:2px;padding:6px 10px;font-size:17px;font-weight:900;display:grid}.material-total small{color:#60706a;font-size:11px;font-weight:800}.material-total.over{color:#9a4d05;background:#fff7ea;border-color:#e5a45d}.material-check{background:#fff;border:1px solid #cfdde4;border-radius:7px;align-items:center;gap:9px;min-height:42px;padding:0 11px;font-weight:850;display:flex}.material-check input{width:16px;height:16px}.material-form textarea{resize:vertical}.material-actions{flex-wrap:wrap;gap:9px;display:flex}.material-preview-panel{overflow:hidden}.material-preview{gap:16px;padding:16px;display:grid}.material-preview-heading{background:#f8fcff;border:1px solid #dce9ef;border-radius:8px;gap:5px;padding:13px;display:grid}.material-preview-heading strong{color:var(--etop-ink);font-size:18px}.material-preview-heading span{color:#65736d;font-size:13px;font-weight:800}.material-preview-block{gap:10px;display:grid}.material-preview-block h3{color:var(--etop-blue-dark);margin:0;font-size:16px}.material-table-wrap{border:1px solid #dce9ef;border-radius:8px;max-height:340px;overflow:auto}.material-table{border-collapse:collapse;width:100%;font-size:13px}.material-table th,.material-table td{text-align:left;vertical-align:top;border-bottom:1px solid #edf3f6;padding:9px 10px}.material-table th{color:#173b50;text-transform:uppercase;background:#eef6fa;font-size:12px;position:sticky;top:0}.material-answer-list{gap:9px;display:grid}.material-answer-list article{background:#fff;border:1px solid #dce9ef;border-radius:8px;gap:5px;padding:11px 12px;display:grid}.material-answer-list strong{color:var(--etop-ink);font-size:14px;line-height:1.35}.material-answer-list span{color:#0f5f8b;font-weight:900}.material-answer-list small{color:#65736d;font-size:13px;line-height:1.35}.material-answer-list.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.material-preview-footer{border-top:1px solid #edf3f6;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:12px;padding-top:14px;display:grid}.material-preview-footer p{color:#40514b;margin:0;font-weight:800;line-height:1.35}.material-warning-list{background:#fff7ea;border:1px solid #f2c185;border-radius:8px;gap:6px;padding:12px;display:grid}.material-warning-list strong,.material-warning-list span{color:#7d4108}.material-warning-list span{font-size:13px;font-weight:800}.material-project-list{display:grid}.material-project-row{border-bottom:1px solid #edf3f6;grid-template-columns:minmax(0,1fr) auto 44px;align-items:center;gap:12px;min-height:62px;padding:10px 14px;display:grid}.material-project-row.selected{background:#f2fbf6}.material-project-row>button:first-child{min-width:0;color:inherit;text-align:left;background:0 0;border:0;gap:3px;padding:0;display:grid}.material-project-row strong,.material-project-row span{display:block}.material-project-row strong{color:var(--etop-ink);font-size:15px}.material-project-row span{color:#65736d;font-size:13px;font-weight:800}.material-status{color:#31576a;white-space:nowrap;background:#eef6fa;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900}.material-status.status-approved,.material-status.status-rendered{color:#1f6b43;background:#eef9f2}.material-status.status-review{color:#9a4d05;background:#fff7ea}[data-theme=dark] .material-metric,[data-theme=dark] .material-type-grid button,[data-theme=dark] .material-total,[data-theme=dark] .material-check,[data-theme=dark] .material-preview-heading,[data-theme=dark] .material-answer-list article{background:#12212b;border-color:#344d5b}[data-theme=dark] .material-table th{background:#162b38}[data-theme=dark] .material-table td,[data-theme=dark] .material-project-row{border-color:#263d48}@media (width<=1180px){.material-layout{grid-template-columns:1fr}}@media (width<=760px){.material-metrics,.material-form,.material-type-grid,.material-answer-list.compact,.material-preview-footer,.material-project-row{grid-template-columns:1fr}.material-project-row{align-items:stretch}}.session-board{background:#ffffffeb;border:1px solid #087aba2e;border-radius:8px;overflow:hidden;box-shadow:0 16px 36px #0f364814}.session-board-header,.session-command-bar,.session-summary,.session-student-row{padding:16px 18px}.session-board-header{border-bottom:1px solid #d9e7ee;justify-content:space-between;align-items:center;gap:18px;display:flex}.session-board-header h2,.parent-session-heading h2{margin:2px 0 0;font-size:21px;line-height:1.2}.session-save-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.session-save-actions select{min-width:128px}.session-command-bar{grid-template-columns:minmax(180px,.8fr) minmax(160px,.65fr) minmax(280px,2fr);gap:12px;display:grid}.session-command-bar label,.session-homework-field,.session-student-row label{color:#52626b;gap:6px;font-size:13px;font-weight:800;display:grid}.session-homework-field{padding:0 18px 16px}.session-homework-field textarea{min-height:70px}.session-summary{background:#f5fafc;border-top:1px solid #e0ebf0;border-bottom:1px solid #e0ebf0;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.session-summary span{color:#52626b;background:#fff;border:1px solid #d6e5ec;border-radius:6px;align-items:center;gap:6px;min-height:34px;padding:0 11px;display:inline-flex}.session-summary strong{color:#102d3d}.session-message{color:#176447;background:#eaf8f1;border:1px solid #9fd8c1;border-radius:6px;margin:14px 18px 0;padding:11px 13px;font-weight:750}.session-student-list{display:grid}.session-student-row{border-bottom:1px solid #e0ebf0;grid-template-columns:minmax(170px,.85fr) minmax(290px,1.45fr) minmax(145px,.7fr) minmax(130px,.6fr) minmax(150px,.75fr);align-items:end;gap:12px;display:grid}.session-student-row:last-child{border-bottom:0}.session-student-name{align-self:center;gap:3px;display:grid}.session-student-name strong{color:#102d3d;font-size:16px}.session-student-name span{color:#72828a;font-size:13px}.attendance-choice{grid-template-columns:repeat(4,minmax(58px,1fr));gap:5px;display:grid}.attendance-choice button{color:#52626b;background:#f8fbfc;border:1px solid #cbdde6;border-radius:6px;place-items:center;gap:3px;min-height:52px;padding:6px;font-size:11px;font-weight:800;display:grid}.attendance-choice button.active.status-present{color:#176447;background:#e6f7ef;border-color:#39a77a}.attendance-choice button.active.status-late{color:#8b5611;background:#fff4df;border-color:#f0a33a}.attendance-choice button.active.status-absent{color:#8f332c;background:#fff0ee;border-color:#d96d63}.attendance-choice button.active.status-excused{color:#145f86;background:#eaf6fc;border-color:#4fa8d5}.session-score-controls{grid-template-columns:minmax(68px,1fr) auto 58px;align-items:end;gap:5px;display:grid}.session-score-controls input{min-width:0}.session-score-controls>span{color:#7c8990;padding-bottom:11px}.session-stars{border:1px solid #cbdde6;border-radius:6px;justify-content:center;align-items:center;gap:2px;min-height:42px;padding:7px 6px;display:flex}.session-stars button{color:#a8b3b8;background:0 0;width:23px;height:26px;padding:0}.session-stars button.active{color:#ff9f1c}.session-comment-field,.session-parent-field{grid-column:span 2}.session-comment-field textarea,.session-parent-field textarea{min-height:78px}.session-copy-button{align-self:end;min-height:44px}.session-share-actions{align-self:end;gap:6px;display:grid}.session-share-actions button{white-space:normal;justify-content:flex-start;min-height:40px}.session-zalo-button{color:#167548!important;border-color:#36a86f!important}.session-oa-button,.session-batch-zalo{color:#096a9e!important;border-color:#1689c7!important}.session-oa-button:not(:disabled){background:#eaf7fd!important}.session-history{border-top:5px solid #edf5f8}.session-history-heading{border-bottom:1px solid #d9e7ee;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px;display:flex}.session-history-heading h3{margin:2px 0 4px;font-size:19px}.session-history-heading p:last-child{color:#6c7c84;margin:0;font-size:13px}.session-history-filters{grid-template-columns:minmax(220px,1.35fr) minmax(160px,.75fr) minmax(140px,.6fr) 145px 145px 42px;align-items:end;gap:9px;padding:14px 18px;display:grid}.session-history-filters label{color:#52626b;gap:5px;font-size:12px;font-weight:800;display:grid}.session-search-input{border:1px solid #cbdde6;border-radius:6px;align-items:center;gap:7px;min-height:42px;padding:0 10px;display:flex}.session-search-input input{min-height:auto;box-shadow:none;background:0 0;border:0;padding:0}.session-history-count{color:#6c7c84;padding:0 18px 10px;font-size:12px;font-weight:750}.session-history-list{border-top:1px solid #e0ebf0}.session-history-list>button{color:#253b47;text-align:left;background:0 0;border:0;border-bottom:1px solid #e0ebf0;border-radius:0;grid-template-columns:minmax(210px,1fr) 110px 110px 90px;align-items:center;gap:12px;width:100%;min-height:66px;padding:10px 18px;display:grid}.session-history-list>button:hover,.session-history-list>button.active{background:#f0f8fb}.session-history-list>button.active{box-shadow:inset 4px 0 #ff9f1c}.session-history-list>button>span:first-child{gap:2px;display:grid}.session-history-list small{color:#71828a;font-size:12px}.session-status{border-radius:999px;width:fit-content;padding:5px 8px;font-size:11px;font-weight:850}.session-status.status-completed{color:#176447;background:#e6f7ef}.session-status.status-draft{color:#8b5611;background:#fff4df}.session-open-label{color:#087aba;text-align:right;font-size:12px;font-weight:850}.parent-session-heading{border-bottom:1px solid #d9e7ee;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.parent-session-list{display:grid}.parent-session-list article{border-bottom:1px solid #e0ebf0;grid-template-columns:minmax(180px,1.2fr) minmax(170px,.8fr);gap:8px 18px;padding:14px 18px;display:grid}.parent-session-list article:last-child{border-bottom:0}.parent-session-list article>div:first-child,.parent-session-result{gap:3px;display:grid}.parent-session-list article span,.parent-session-list article p{color:#62727a}.parent-session-list article p{grid-column:1/-1;margin:4px 0 0}.parent-session-result{text-align:right}.parent-stars{justify-content:flex-end;align-items:center;gap:4px;display:inline-flex;color:#cc7410!important}[data-theme=dark] .session-board{background:#102b3a;border-color:#284c60;box-shadow:0 18px 42px #0003}[data-theme=dark] .session-board-header,[data-theme=dark] .session-summary,[data-theme=dark] .session-student-row,[data-theme=dark] .session-history-heading,[data-theme=dark] .session-history-list,[data-theme=dark] .session-history-list>button,[data-theme=dark] .parent-session-heading,[data-theme=dark] .parent-session-list article{border-color:#284a5b}[data-theme=dark] .session-summary{background:#0c2431}[data-theme=dark] .session-history{border-top-color:#091e29}[data-theme=dark] .session-history-heading p:last-child,[data-theme=dark] .session-history-count,[data-theme=dark] .session-history-filters label,[data-theme=dark] .session-history-list small{color:#a9c0cb}[data-theme=dark] .session-search-input{border-color:#31566a}[data-theme=dark] .session-history-list>button{color:#dbe8ed}[data-theme=dark] .session-history-list>button:hover,[data-theme=dark] .session-history-list>button.active{background:#163747}[data-theme=dark] .session-zalo-button{color:#76d9a8!important;border-color:#4fc68a!important}[data-theme=dark] .session-oa-button,[data-theme=dark] .session-batch-zalo{color:#8bd5f4!important;border-color:#4faed7!important}[data-theme=dark] .session-oa-button:not(:disabled){background:#153b4d!important}[data-theme=dark] .session-summary span,[data-theme=dark] .attendance-choice button,[data-theme=dark] .session-stars{color:#b7cbd5;background:#102b3a;border-color:#31566a}[data-theme=dark] .session-student-name strong,[data-theme=dark] .session-summary strong{color:#edf5f7}[data-theme=dark] .session-student-name span,[data-theme=dark] .parent-session-list article span,[data-theme=dark] .parent-session-list article p{color:#a9c0cb}@media (width<=1180px){.session-student-row{grid-template-columns:minmax(160px,.8fr) minmax(280px,1.4fr) minmax(140px,.7fr)}.session-stars,.session-homework-status{align-self:stretch}.session-comment-field,.session-parent-field{grid-column:span 1}.session-history-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media (width<=820px){.session-board-header,.session-save-actions{flex-direction:column;align-items:stretch}.session-command-bar,.session-student-row{grid-template-columns:1fr}.attendance-choice{grid-template-columns:repeat(4,minmax(0,1fr))}.session-comment-field,.session-parent-field{grid-column:auto}.parent-session-list article,.session-history-filters,.session-history-list>button{grid-template-columns:1fr}.session-open-label,.parent-session-result{text-align:left}.parent-stars{justify-content:flex-start}}.enrollment-manager{border-top:1px solid #dce8ee;margin-top:16px}.enrollment-heading{justify-content:space-between;align-items:flex-start;gap:20px;padding:16px 0 12px;display:flex}.enrollment-heading h3{margin:2px 0 4px;font-size:18px}.enrollment-heading p:last-child{color:#667780;max-width:760px;margin:0;font-size:13px}.enrollment-add-row{background:#f5fafc;border:1px solid #d8e6ed;border-radius:7px;grid-template-columns:minmax(220px,1fr) minmax(165px,.45fr) auto;align-items:end;gap:10px;padding:13px;display:grid}.enrollment-add-row label,.enrollment-row label{color:#5f7078;gap:5px;font-size:12px;font-weight:800;display:grid}.enrollment-list{border:1px solid #dce8ee;border-radius:7px;margin-top:10px;overflow:hidden}.enrollment-row{border-bottom:1px solid #dce8ee;grid-template-columns:minmax(190px,1fr) auto minmax(150px,.45fr) 42px;align-items:center;gap:12px;min-height:68px;padding:10px 12px;display:grid}.enrollment-row:last-child{border-bottom:0}.enrollment-row>div:first-child{gap:3px;display:grid}.enrollment-row>div:first-child span{color:#75858d;font-size:12px}.enrollment-primary{color:#087aba;background:#eaf6fc;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:850}[data-theme=dark] .enrollment-manager,[data-theme=dark] .enrollment-list,[data-theme=dark] .enrollment-row{border-color:#284a5b}[data-theme=dark] .enrollment-add-row{background:#0c2431;border-color:#31566a}[data-theme=dark] .enrollment-heading p:last-child,[data-theme=dark] .enrollment-row>div:first-child span,[data-theme=dark] .enrollment-add-row label,[data-theme=dark] .enrollment-row label{color:#a9c0cb}[data-theme=dark] .enrollment-primary{color:#76cefa;background:#163e51}@media (width<=760px){.enrollment-add-row,.enrollment-row{grid-template-columns:1fr}.enrollment-row .icon-button{justify-self:end}}.zalo-contact-manager{border-top:1px solid #dce8ee;margin-top:16px}.zalo-contact-heading{justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 0 12px;display:flex}.zalo-contact-heading h3{margin:2px 0 0;font-size:18px}.zalo-status-row,.zalo-pairing-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.zalo-status-row>span{border:1px solid #d6e5ec;border-radius:6px;align-items:center;gap:6px;min-height:32px;padding:0 9px;font-size:12px;font-weight:850;display:inline-flex}.zalo-ready{color:#176447;background:#e8f7ef;border-color:#98d5ba!important}.zalo-warning{color:#8b5611;background:#fff5e4;border-color:#efd19d!important}.zalo-muted{color:#687982;background:#f3f7f9}.zalo-contact-form{background:#f5fafc;border:1px solid #d8e6ed;border-radius:7px;grid-template-columns:minmax(210px,1fr) minmax(190px,.75fr) auto auto;align-items:end;gap:10px;margin:10px 0;padding:13px;display:grid}.zalo-webhook{color:#687982;overflow-wrap:anywhere;min-width:0;font-size:12px}.zalo-pairing-code{background:#ecf8fd;border:1px solid #8bcce9;border-radius:7px;gap:5px;margin-top:10px;padding:12px 14px;display:grid}.zalo-pairing-code>span,.zalo-pairing-code small{color:#476774;font-size:12px}.zalo-pairing-code>strong{color:#075b8d;letter-spacing:.06em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:21px}[data-theme=dark] .zalo-contact-manager{border-color:#284a5b}[data-theme=dark] .zalo-contact-form{background:#0c2431;border-color:#31566a}[data-theme=dark] .zalo-ready{color:#93d6b5;background:#173b30}[data-theme=dark] .zalo-warning{color:#e9c58e;background:#3b2b19}[data-theme=dark] .zalo-muted{color:#acc1cb;background:#1b3342}[data-theme=dark] .zalo-webhook,[data-theme=dark] .zalo-pairing-code>span,[data-theme=dark] .zalo-pairing-code small{color:#a9c0cb}[data-theme=dark] .zalo-pairing-code{background:#102f3e;border-color:#31657c}[data-theme=dark] .zalo-pairing-code>strong{color:#7fd0f3}@media (width<=900px){.zalo-contact-form{grid-template-columns:1fr 1fr}}@media (width<=620px){.zalo-contact-form{grid-template-columns:1fr}}
