:root{--primary:#16d8d3;--primary-dark:#0ea7a5;--background:#f7f9fa;--surface:#fff;--text:#1f2937;--muted:#6b7280;--border:#e5e7eb;--danger:#dc2626}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--text);background:var(--background);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}.auth-shell{background:linear-gradient(135deg,#effdfc,#f7f9fa 60%);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--border);background:#fff;border-radius:18px;width:min(100%,430px);padding:32px;box-shadow:0 18px 60px #1f293714}.brand-mark{background:var(--primary);border-radius:14px;place-items:center;width:48px;height:48px;margin-bottom:18px;font-weight:800;display:grid}.field{gap:7px;margin:16px 0;display:grid}.field label{font-size:14px;font-weight:650}.field input{border:1px solid var(--border);background:#fff;border-radius:10px;outline:none;height:44px;padding:0 12px}.field input:focus{border-color:var(--primary-dark);box-shadow:0 0 0 3px #16d8d326}.btn-primary{background:var(--primary-dark);color:#fff;cursor:pointer;border:0;border-radius:10px;width:100%;height:44px;font-weight:700}.error{color:var(--danger);font-size:14px}.muted{color:var(--muted)}.dashboard-layout{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:#fff;height:100vh;padding:22px 16px;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid var(--border);margin-bottom:14px;padding:0 10px 18px}.sidebar-brand strong{font-size:18px;display:block}.sidebar-brand span{color:var(--muted);font-size:12px}.nav-section{color:var(--muted);letter-spacing:.08em;margin:20px 10px 7px;font-size:11px;font-weight:800}.nav-item{color:#374151;border-radius:10px;align-items:center;gap:10px;min-height:42px;margin:2px 0;padding:0 10px;display:flex}.nav-item.active,.nav-item:hover{color:#087f7d;background:#eafffe}.main{min-width:0}.topbar{border-bottom:1px solid var(--border);z-index:10;background:#fff;justify-content:space-between;align-items:center;height:72px;padding:0 26px;display:flex;position:sticky;top:0}.content{padding:28px}.page-title h1{margin:0;font-size:26px}.page-title p{color:var(--muted);margin:7px 0 0}.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.card{border:1px solid var(--border);background:#fff;border-radius:14px;padding:20px}.status-ok{color:#15803d;font-weight:700}@media (max-width:900px){.dashboard-layout{grid-template-columns:1fr}.sidebar{display:none}.cards{grid-template-columns:1fr 1fr}}@media (max-width:560px){.cards{grid-template-columns:1fr}.content{padding:18px}}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.toolbar{justify-content:space-between;align-items:center;gap:14px;margin:18px 0;display:flex}.helper{color:var(--muted);font-size:13px}.btn,.btn-secondary{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-weight:700;display:inline-flex}.btn{border:1px solid var(--primary-dark);background:var(--primary-dark);color:#fff}.btn-secondary{border:1px solid var(--border);color:var(--text);background:#fff}.search-input{border:1px solid var(--border);background:#fff;border-radius:10px;min-width:280px;min-height:40px;padding:0 12px}.form-card{border:1px solid var(--border);background:#fff;border-radius:14px;margin:16px 0 20px;padding:20px}.form-card.compact{padding:16px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-grid label{gap:7px;font-size:14px;font-weight:650;display:grid}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:10px;width:100%;padding:10px 12px}.form-grid .span-2{grid-column:span 2}.form-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.multi-select{min-height:120px}.table-card{border:1px solid var(--border);background:#fff;border-radius:14px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:14px 16px;font-size:14px}th{color:var(--muted);letter-spacing:.03em;background:#fbfcfc;font-size:12px}tr:last-child td{border-bottom:0}.table-sub{color:var(--muted);margin-top:4px;font-size:12px}.badge{border-radius:999px;align-items:center;padding:5px 9px;font-size:11px;font-weight:800;display:inline-flex}.program-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.row-between,.section-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.card h3,.section-head h2,.summary-card h2{margin:4px 0 0}.eyebrow{color:var(--primary-dark);letter-spacing:.08em;font-size:11px;font-weight:800}.level-list{border-top:1px solid var(--border);margin-top:14px;padding-top:10px}.level-row{justify-content:space-between;gap:12px;padding:7px 0;font-size:13px;display:flex}.text-link{color:#087f7d;margin-top:14px;font-size:13px;font-weight:700;display:inline-block}.summary-card{border:1px solid var(--border);background:#fff;border-radius:14px;margin-bottom:18px;padding:20px}.summary-card p{color:var(--muted);margin-bottom:0}.split-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.section-head{margin-bottom:12px}.section-head p{color:var(--muted);margin:5px 0 0;font-size:13px}.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.setting-card{align-items:flex-start;gap:14px;display:flex}.setting-card h3{margin:0 0 5px}.setting-card p{color:var(--muted);margin:0;font-size:13px}.setting-card.disabled{opacity:.6}.role-layout{grid-template-columns:240px 1fr;gap:18px;display:grid}.role-list{border:1px solid var(--border);background:#fff;border-radius:14px;height:max-content;padding:8px}.role-list button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;width:100%;padding:11px 12px;display:block}.role-list button.selected{color:#087f7d;background:#eafffe;font-weight:800}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.permission-item{border:1px solid var(--border);border-radius:10px;align-items:center;gap:9px;padding:10px 12px;font-size:13px;display:flex}.success-message{color:#166534;background:#ecfdf5;border:1px solid #bbf7d0;border-radius:10px;padding:10px 12px}@media (max-width:1000px){.program-grid,.split-grid,.settings-grid,.role-layout{grid-template-columns:1fr}.role-list{gap:6px;display:flex;overflow:auto}.role-list button{white-space:nowrap;width:auto}}@media (max-width:680px){.form-grid,.permission-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}.toolbar,.page-header{flex-direction:column;align-items:stretch}.search-input{width:100%;min-width:0}}.student-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0;display:grid}.student-stats .card{gap:6px;display:grid}.student-stats strong{font-size:24px}.filter-row{flex-wrap:wrap;gap:10px;display:flex}.filter-row select{border:1px solid var(--border);background:#fff;border-radius:10px;min-height:40px;padding:0 12px}.pagination{color:var(--muted);justify-content:flex-end;align-items:center;gap:14px;margin-top:16px;font-size:13px;display:flex}.guardian-box{border:1px solid var(--border);background:#fbfefe;border-radius:12px;margin-top:12px;padding:16px}.checkbox-line{grid-auto-flow:column;justify-content:start;align-items:center;gap:8px!important;display:flex!important}.checkbox-line input{width:auto!important}.sticky-actions{border-top:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f9faf2;justify-content:flex-end;gap:10px;padding:14px;display:flex;position:sticky;bottom:0}.duplicate-warning{color:#92400e;background:#fffbeb;border:1px solid #f59e0b;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:14px;display:flex}.error-box{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:14px;padding:12px}.profile-hero{border:1px solid var(--border);background:#fff;border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:22px;display:grid}.avatar-large{color:#087f7d;background:#dffffe;border-radius:22px;place-items:center;width:76px;height:76px;font-size:30px;font-weight:900;display:grid}.profile-title h1{margin:0;font-size:26px}.row-inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.profile-contact{color:var(--muted);margin-top:10px;font-size:14px}.profile-actions{align-items:center;gap:8px;display:flex}.profile-actions .btn{min-height:40px}.profile-actions button:disabled{opacity:.45;cursor:not-allowed}.tabs{border-bottom:1px solid var(--border);gap:4px;margin:20px 0 16px;display:flex;overflow:auto}.tabs button{white-space:nowrap;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:11px 12px}.tabs button.active{color:#087f7d;border-bottom:2px solid var(--primary-dark);font-weight:800}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.profile-grid .span-2{grid-column:span 2}.mini-row{border-bottom:1px solid var(--border);flex-direction:column;gap:3px;padding:10px 0;font-size:13px;display:flex}.mini-row:last-child{border-bottom:0}.mini-row span{color:var(--muted)}.empty-state,.module-placeholder p{color:var(--muted);padding:14px 0}.info-list>div{border-bottom:1px solid var(--border);grid-template-columns:150px 1fr;gap:16px;padding:10px 0;font-size:14px;display:grid}.info-list>div:last-child{border-bottom:0}.info-list span{color:var(--muted)}@media (max-width:800px){.profile-hero{grid-template-columns:auto 1fr}.profile-actions{grid-column:1/-1}.profile-grid,.student-stats{grid-template-columns:1fr}.profile-grid .span-2{grid-column:span 1}.sticky-actions{margin:0 -18px -18px}.info-list>div{grid-template-columns:1fr;gap:4px}}.stack{gap:18px;display:grid}.row-between{justify-content:space-between;align-items:center;gap:16px;display:flex}.span-2{grid-column:span 2}.table-wrap{overflow:auto}.table-wrap table{border-collapse:collapse;width:100%}.table-wrap th,.table-wrap td{border-bottom:1px solid var(--border,#e5e7eb);text-align:left;vertical-align:top;padding:12px 10px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0;display:grid}.form-grid label{gap:7px;font-weight:600;display:grid}.form-grid input,.form-grid select,table select{background:#fff;border:1px solid #d8dee4;border-radius:10px;width:100%;padding:10px}.consult-card{border-bottom:1px solid #e5e7eb;padding:14px 0}@media (max-width:800px){.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}}.finance-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}.toolbar,.search-row{align-items:center;gap:10px;display:flex}.toolbar{justify-content:space-between;margin-bottom:16px}.search-row{flex:1}.search-row input{max-width:520px}.form-stack{gap:14px;display:grid}.form-stack label{gap:7px;font-weight:600;display:grid}.form-stack input,.form-stack select,.toolbar select,.search-row input{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:10px;padding:11px 12px}.success-box{color:#065f46;background:#ecfdf5;border-radius:12px;padding:14px}.error-box{color:#991b1b;background:#fef2f2;border-radius:10px;padding:12px}.link-danger{color:#b91c1c;cursor:pointer;background:0 0;border:0;text-decoration:underline}.badge-warning{color:#9a3412;background:#fff7ed}@media (max-width:900px){.finance-metrics{grid-template-columns:1fr}.toolbar,.search-row{flex-direction:column;align-items:stretch}.search-row input{max-width:none}}.notice-box{color:#115e59;background:#f0fdfa;border-radius:10px;margin:12px 0;padding:12px 14px}.certificate-actions{gap:10px;margin-top:12px;display:grid}.text-button{color:#0f766e;cursor:pointer;background:0 0;border:0;margin-left:8px;text-decoration:underline}.form-stack textarea{border:1px solid var(--border,#e5e7eb);resize:vertical;background:#fff;border-radius:10px;padding:11px 12px}.verification-page{background:#f7f9fa;place-items:center;min-height:100vh;padding:24px;display:grid}.verification-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;width:min(620px,100%);padding:34px;box-shadow:0 12px 36px #0000000f}.verification-brand{color:#0ea7a5;font-size:24px;font-weight:800}.verification-status{border-radius:999px;margin:12px 0 20px;padding:8px 14px;font-weight:800;display:inline-block}.verification-status.valid{color:#047857;background:#ecfdf5}.verification-status.invalid{color:#b91c1c;background:#fef2f2}.verify-list{border:1px solid #e5e7eb;border-radius:12px;gap:0;display:grid;overflow:hidden}.verify-list>div{border-bottom:1px solid #e5e7eb;justify-content:space-between;gap:20px;padding:12px 14px;display:flex}.verify-list>div:last-child{border-bottom:0}.verify-list span{color:#6b7280}.verify-list strong{text-align:right}.verify-note{margin-top:18px;font-size:12px}.management-kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.management-kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}.management-kpi .kpi-value{margin-top:8px;font-size:26px;font-weight:800}.dashboard-section-title{justify-content:space-between;align-items:end;margin:24px 0 10px;display:flex}.dashboard-section-title h2{margin:0}.dashboard-section-title a{color:#0f766e;font-weight:700}.attention-list{display:grid}.attention-list a{color:inherit;border-bottom:1px solid #e5e7eb;justify-content:space-between;gap:16px;padding:12px 0;text-decoration:none;display:flex}.attention-list a:last-child{border-bottom:0}.attention-list span{display:grid}.attention-list small{color:#6b7280;margin-top:3px}.attention-list b{color:#0f766e}.occupancy-list{gap:12px;display:grid}.occupancy-row{grid-template-columns:minmax(160px,1.1fr) minmax(180px,2fr) 130px;align-items:center;gap:16px;display:grid}.occupancy-row>div:first-child{display:grid}.occupancy-row small{color:#6b7280}.occupancy-bar{background:#e5e7eb;border-radius:999px;height:8px;overflow:hidden}.occupancy-bar span{background:#0ea7a5;border-radius:999px;height:100%;display:block}.occupancy-bar.large{height:10px;margin:18px 0}.dorm-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.dorm-card{color:inherit;text-decoration:none}.dorm-number{margin-top:18px;font-size:34px;font-weight:800}.dorm-number span{color:#6b7280;font-size:14px;font-weight:500}.dorm-meta{color:#6b7280;justify-content:space-between;gap:12px;font-size:13px;display:flex}.dorm-meta strong{color:#0f766e}.room-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.room-card{border:1px solid #e5e7eb;border-radius:12px;padding:14px}.room-card small{color:#6b7280;margin-top:4px;display:block}.room-card .occupancy-bar{margin:14px 0}.full{width:100%}.report-filter{align-items:end;gap:14px;margin-bottom:18px;display:flex}.report-filter label{gap:6px;font-weight:600;display:grid}.report-filter input{border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px}.export-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px;display:grid}.export-card{border:1px solid #e5e7eb;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.export-card p{color:#6b7280;margin:5px 0 0;font-size:13px}@media (max-width:1100px){.management-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.management-kpis,.management-kpis.three,.dorm-grid,.room-grid,.export-grid,.occupancy-row{grid-template-columns:1fr}.report-filter{flex-direction:column;align-items:stretch}.export-card{flex-direction:column;align-items:flex-start}}.dorm-checkin-panel{background:#fcfffe;border:1px solid #99f6e4}.student-pick-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.student-pick{text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:12px;display:grid}.student-pick span{color:#6b7280;margin-top:4px;font-size:12px}.student-pick.selected{background:#f0fdfa;border-color:#0ea7a5}.checkin-fields{grid-template-columns:1.4fr 1fr 1fr auto;align-items:end;gap:12px;margin-top:14px;display:grid}.checkin-fields label{gap:6px;font-weight:600;display:grid}.checkin-fields input{border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px}.selected-student{display:grid}.selected-student span,.selected-student small{color:#6b7280}@media (max-width:760px){.student-pick-list,.checkin-fields{grid-template-columns:1fr}}:root{--primary:#00b8b8;--primary-dark:#008f91;--primary-soft:#e9fbfb;--background:#f5f7fb;--surface:#fff;--text:#172033;--muted:#64748b;--border:#e4e9f0;--speaking:#ffc107;--ielts:#dc3545;--toefl:#0d6efd;--success:#198754;--warning:#f59e0b;--shadow-sm:0 1px 2px #0f172a08,0 5px 16px #0f172a09;--shadow-md:0 18px 50px #0f172a14}html{background:var(--background)}body{color:var(--text);background:var(--background);-webkit-font-smoothing:antialiased;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}h1,h2,h3,.sidebar-brand strong,.kpi-value{letter-spacing:-.025em;font-family:Poppins,Inter,Segoe UI,sans-serif}button,input,select,textarea{font-family:inherit}.dashboard-layout{background:var(--background);grid-template-columns:272px 1fr}.sidebar{background:#fff;border-right:1px solid #e8ecf2;padding:18px 14px;overflow-y:auto;box-shadow:2px 0 14px #0f172a05}.refresh-brand{margin-bottom:10px;padding:2px 10px 20px}.sidebar-logo{object-fit:contain;width:154px;height:auto;margin-bottom:6px;display:block}.refresh-brand span{color:#94a3b8;letter-spacing:.02em;font-size:11px;font-weight:600}.nav-section{color:#94a3b8;letter-spacing:.1em;margin:20px 10px 7px;font-size:10px}.nav-item{color:#425066;border-radius:9px;min-height:43px;padding:0 11px;font-size:14px;font-weight:520;transition:all .16s;position:relative}.nav-item:hover{color:#162033;background:#f5f8fb}.nav-item.active{background:var(--primary-soft);color:#007f82;font-weight:700}.nav-item.active:before{content:"";background:var(--primary);border-radius:3px;width:3px;position:absolute;top:10px;bottom:10px;left:0}.nav-item svg{color:#718096}.nav-item.active svg{color:var(--primary-dark)}.main{background:var(--background)}.topbar{border-color:#e8ecf2;height:68px;padding:0 30px;box-shadow:0 1px 8px #0f172a06}.topbar-refresh{gap:20px}.topbar-title{align-items:center;gap:10px;display:flex}.topbar-title strong{font-size:16px}.topbar-title span{color:var(--primary-dark);background:var(--primary-soft);border-radius:6px;padding:4px 7px;font-size:10px;font-weight:800}.topbar-actions{align-items:center;gap:10px;display:flex}.topbar-search{border:1px solid var(--border);color:#64748b;background:#fff;border-radius:9px;align-items:center;gap:8px;min-width:220px;height:38px;padding:0 10px;display:flex}.topbar-search kbd{color:#94a3b8;background:#f8fafc;border:1px solid #e5e7eb;border-radius:4px;margin-left:auto;padding:2px 5px;font-size:10px}.topbar-logout{border:1px solid var(--border);color:#475569;cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:7px;height:38px;padding:0 12px;display:flex}.topbar-logout:hover{color:#b91c1c;background:snow;border-color:#fecaca}.content{width:100%;max-width:1600px;margin:0 auto;padding:30px 32px 42px}.card,.form-card,.table-card,.summary-card,.role-list{border-color:var(--border);box-shadow:var(--shadow-sm);border-radius:14px}.card{transition:border-color .16s,box-shadow .16s,transform .16s}.card:hover{border-color:#d8dee8}.btn,.btn-primary{background:var(--primary-dark);border-color:var(--primary-dark);box-shadow:0 4px 10px #008f911f}.btn:hover,.btn-primary:hover{background:#007d7f}.btn-secondary{border-color:#dce2ea;box-shadow:0 1px 2px #0f172a05}.search-input,.form-grid input,.form-grid select,.form-grid textarea,.field input{background:#fff;border-color:#dce3eb;transition:all .15s}.search-input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.field input:focus{border-color:#62cfcf;outline:none;box-shadow:0 0 0 3px #00b8b81a}table{background:#fff}th{color:#64748b;text-transform:uppercase;letter-spacing:.07em;background:#f8fafc;font-size:10px;font-weight:700}td{color:#334155}tbody tr{transition:background .12s}tbody tr:hover{background:#fbfdfd}.badge{letter-spacing:.01em}.badge-success{color:#147a49;background:#eaf8f0}.badge-muted{color:#526175;background:#f1f5f9}.auth-refresh{background:#f7f9fc;grid-template-columns:minmax(380px,.9fr) minmax(480px,1.1fr);padding:0;display:grid}.auth-brand-panel{color:#fff;background:linear-gradient(145deg,#007f82 0%,#00aeb0 58%,#22c7c4 100%);flex-direction:column;min-height:100vh;padding:54px 64px;display:flex;position:relative;overflow:hidden}.auth-brand-panel:after{content:"";border:80px solid #ffffff12;border-radius:50%;width:520px;height:520px;position:absolute;bottom:-250px;right:-230px}.auth-logo{z-index:1;width:190px;height:auto;position:relative}.auth-brand-copy{z-index:1;max-width:540px;margin:auto 0 28px;position:relative}.auth-kicker,.auth-form-kicker{letter-spacing:.14em;font-size:11px;font-weight:800;display:block}.auth-kicker{color:#c8ffff}.auth-brand-copy h1{letter-spacing:-.035em;margin:12px 0 15px;font-size:38px;line-height:1.14}.auth-brand-copy p{color:#e7ffff;margin:0;font-size:16px;line-height:1.65}.auth-feature-grid{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:500px;display:grid;position:relative}.auth-feature-grid div{background:#ffffff14;border:1px solid #ffffff2e;border-radius:10px;align-items:center;gap:9px;padding:11px 13px;font-size:13px;font-weight:650;display:flex}.auth-program-legend{z-index:1;color:#fff;margin-top:24px;position:relative}.auth-program-legend span{color:#fff}.auth-form-panel{place-items:center;min-height:100vh;padding:40px;display:grid}.auth-card-refresh{width:min(100%,470px);box-shadow:var(--shadow-md);border-radius:18px;padding:38px 40px}.auth-card-refresh h2{margin:7px 0;font-size:29px}.auth-form-kicker{color:var(--primary-dark)}.auth-form-desc{margin:0 0 25px}.auth-card-refresh .field{margin:16px 0}.auth-card-refresh .field input{background:#fbfcfe;border-radius:9px;height:48px}.auth-submit{height:48px;margin-top:7px}.auth-footnote{text-align:center;color:#94a3b8;margin:18px 0 0;font-size:11px}.mobile-auth-logo{display:none}.auth-error{margin:12px 0;font-size:13px}.program-legend{flex-wrap:wrap;gap:16px;display:flex}.program-legend span{color:#64748b;align-items:center;gap:6px;font-size:12px;font-weight:650;display:inline-flex}.program-dot{border-radius:50%;width:9px;height:9px;display:inline-block}.program-dot.speaking{background:var(--speaking)}.program-dot.ielts{background:var(--ielts)}.program-dot.toefl{background:var(--toefl)}.dashboard-hero{margin-bottom:24px}.dashboard-hero h1{margin:8px 0 6px;font-size:32px}.dashboard-hero p{font-size:14px}.dashboard-period{border:1px solid var(--border);color:#64748b;background:#fff;border-radius:8px;margin-top:13px;padding:7px 10px;font-size:11px;font-weight:600;display:inline-flex}.refresh-kpis{gap:13px}.refresh-kpi{min-height:136px;padding:17px 18px;position:relative;overflow:hidden}.refresh-kpi:after{content:"";background:var(--tone,#00b8b8);height:3px;position:absolute;top:0;left:0;right:0}.kpi-head{align-items:center;gap:9px;display:flex}.kpi-head .eyebrow{color:#64748b}.kpi-icon{background:color-mix(in srgb,var(--tone) 12%,white);width:33px;height:33px;color:var(--tone);border-radius:9px;place-items:center;display:grid}.kpi-icon svg{width:17px;height:17px}.refresh-kpi .kpi-value{color:#172033;margin-top:15px;font-size:26px}.refresh-kpi small{margin-top:3px;display:block}.tone-teal{--tone:#00aeb0}.tone-blue{--tone:#0d6efd}.tone-purple{--tone:#6d5dfc}.tone-orange{--tone:#f59e0b}.tone-green{--tone:#198754}.tone-indigo{--tone:#4f46e5}.tone-red{--tone:#dc3545}.dashboard-section-title{margin:28px 0 12px}.dashboard-section-title h2{margin:3px 0 0;font-size:21px}.section-kicker{letter-spacing:.1em;color:#94a3b8;font-size:10px;font-weight:800}.dashboard-section-title>a{color:var(--primary-dark);font-size:13px}.refresh-finance{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;display:grid}.refresh-finance .refresh-kpi{min-height:132px}.action-kpis,.dashboard-detail-grid{margin-bottom:18px}.attention-card{padding:18px 20px}.attention-title{align-items:center;gap:9px;margin-bottom:8px;display:flex}.attention-title h3{margin:0;font-size:16px}.attention-indicator{border-radius:50%;width:8px;height:8px}.attention-danger .attention-indicator{background:#dc3545;box-shadow:0 0 0 4px #fdecee}.attention-success .attention-indicator{background:#198754;box-shadow:0 0 0 4px #eaf8f0}.attention-list b{background:#f1f5f9;border-radius:7px;padding:5px 8px;font-size:11px}.occupancy-card{margin-top:4px}.occupancy-card h2{margin:4px 0}.occupancy-bar{background:#edf1f5;height:7px}.occupancy-bar span{background:linear-gradient(90deg,var(--primary),#0d6efd)}.loading-card{color:#64748b;place-items:center;min-height:120px;display:grid}.program-card{padding-top:23px;position:relative;overflow:hidden}.program-card:before{content:"";background:#94a3b8;height:5px;position:absolute;top:0;left:0;right:0}.program-card .eyebrow{color:#64748b}.program-speaking:before{background:var(--speaking)}.program-speaking .eyebrow{color:#9a7100}.program-ielts:before{background:var(--ielts)}.program-ielts .eyebrow{color:#b42332}.program-toefl:before{background:var(--toefl)}.program-toefl .eyebrow{color:#0b5ed7}.program-speaking{background:linear-gradient(#fffdf4 0,#fff 54px)}.program-ielts{background:linear-gradient(#fff7f8 0,#fff 54px)}.program-toefl{background:linear-gradient(#f6f9ff 0,#fff 54px)}.program-badge-speaking{color:#8a6500;background:#fff6cc}.program-badge-ielts{color:#ad2433;background:#fdecee}.program-badge-toefl{color:#0b5ed7;background:#eaf2ff}@media (max-width:1180px){.management-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.refresh-finance{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-brand-panel{padding:44px}}@media (max-width:900px){.topbar-search{display:none}.auth-refresh{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{padding:24px}.mobile-auth-logo{margin-bottom:22px;display:block}.mobile-auth-logo img{width:170px;height:auto}.auth-card-refresh{padding:32px}.content{padding:24px 20px}}@media (max-width:620px){.management-kpis,.management-kpis.three,.refresh-finance{grid-template-columns:1fr}.topbar{padding:0 16px}.topbar-logout span{display:none}.dashboard-hero h1{font-size:27px}.dashboard-period{line-height:1.55;display:block}.auth-form-panel{padding:14px}.auth-card-refresh{padding:26px 22px}}.topbar-left{align-items:center;gap:12px;min-width:0;display:flex}.mobile-menu-button,.sidebar-close{color:#475569;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:none}.mobile-menu-button{border:1px solid var(--border);background:#fff;border-radius:9px;flex:none;width:40px;height:40px}.mobile-menu-button:hover{color:var(--primary-dark);background:#f8fafc}.sidebar-brand-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sidebar-scroll{padding-bottom:30px}.sidebar-backdrop{display:none}body.mobile-nav-open{overflow:hidden}@media (max-width:900px){.dashboard-layout{min-height:100vh;display:block}.main{width:100%;min-height:100vh}.sidebar{z-index:60;width:min(86vw,310px);height:100dvh;padding:16px 13px;transition:transform .22s;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-104%);box-shadow:14px 0 38px #0f172a29;display:block!important;position:fixed!important}.sidebar.mobile-open{transform:translate(0)}.sidebar-close{border-radius:9px;width:38px;height:38px;margin-top:-3px;display:inline-flex}.sidebar-close:hover{background:#f1f5f9}.sidebar-backdrop{z-index:55;opacity:0;visibility:hidden;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a6b;border:0;transition:opacity .2s,visibility .2s;display:block;position:fixed;inset:0}.sidebar-backdrop.show{opacity:1;visibility:visible;pointer-events:auto}.mobile-menu-button{display:inline-flex}.topbar{gap:10px;height:62px;padding:0 16px}.topbar-title{gap:7px;min-width:0}.topbar-title strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.topbar-title span{font-size:9px}.topbar-actions{margin-left:auto}.topbar-search{display:none}.content{padding:20px 16px 34px}.page-header.dashboard-hero{align-items:stretch}.dashboard-hero .btn-secondary{width:max-content}.refresh-kpi{min-height:125px}.profile-grid.dashboard-detail-grid{grid-template-columns:1fr}.profile-grid.dashboard-detail-grid .card{grid-column:auto}.occupancy-card .row-between{align-items:flex-start}}@media (max-width:620px){.topbar-logout{justify-content:center;width:40px;padding:0}.topbar-title span{display:none}.dashboard-hero{margin-bottom:18px}.dashboard-hero h1{font-size:25px;line-height:1.16}.dashboard-hero p{line-height:1.55}.dashboard-period{font-size:10px}.management-kpis,.management-kpis.three,.refresh-finance{gap:10px}.refresh-kpi{min-height:112px;padding:15px 16px}.refresh-kpi .kpi-value{margin-top:11px;font-size:24px}.dashboard-section-title{align-items:center;margin:23px 0 10px}.dashboard-section-title h2{font-size:19px}.dashboard-detail-grid{gap:10px}.attention-list a{align-items:flex-start;gap:10px}.attention-list b{white-space:nowrap}.occupancy-card{padding:16px}.occupancy-card .row-between{flex-direction:column;align-items:stretch}.occupancy-card .btn-secondary{width:100%}.occupancy-row{gap:8px;padding:4px 0}.sidebar-logo{width:142px}}
