@charset "UTF-8";
:root{--bg:#f4f6f8;--surface:#fff;--ink:#172738;--muted:#708093;--line:#e3e9ee;--accent:#087f7b;--accent-bg:#e7f5f2;--nav:#142738;--nav2:#203b4d;--red:#bd4545;--amber:#a86e1c;--shadow:0 14px 45px #1833450b;--radius:16px;color-scheme:light;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}body.dark{--bg:#111b25;--surface:#1b2a37;--ink:#e9eff4;--muted:#9cadbb;--line:#30414f;--accent:#5ad0bc;--accent-bg:#21433f;--nav:#0d1721;--nav2:#203441;--red:#ff9595;--amber:#f3c27f;color-scheme:dark}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #61c4bc;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;line-height:1.25;margin-bottom:9px}h2{font-size:20px;letter-spacing:-.4px;margin-bottom:8px}h3{font-size:15px;margin-bottom:12px}p{margin-bottom:14px}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:1.8px;font-weight:800;color:var(--muted);margin-bottom:9px}.brand-symbol{height:45px;width:45px;display:grid;place-items:center;border-radius:13px;background:#d5eee5;color:#116b5e;font-size:19px;font-weight:850;letter-spacing:-1px;flex:none}.brand-symbol img{width:100%;height:100%;object-fit:contain;border-radius:12px}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:var(--nav);color:#e5edf4;padding:25px 16px 18px;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.brand{display:flex;align-items:center;gap:11px;padding:0 9px 25px}.brand strong{font-size:18px;letter-spacing:-.5px}.brand small{display:block;color:#99afbf;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;margin-top:2px}.nav-group{font-size:9px;color:#829aaa;letter-spacing:1.8px;font-weight:700;padding:23px 15px 8px}.nav-link{display:flex;align-items:center;gap:12px;color:#b9c9d5;padding:10px 14px;margin:3px 0;border-radius:9px;font-size:12px;font-weight:550}.nav-link:hover{background:#ffffff0c;color:white}.nav-link.active{background:#d9f3ea;color:#174c42}.icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-footer{margin-top:auto;padding:26px 12px 0;color:#83a0b3;font-size:10px}.sidebar-footer .version{font-size:9px;margin-top:7px;opacity:.8}.workspace{margin-left:238px;min-height:100vh}.topbar{height:76px;padding:0 36px;border-bottom:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:16px}.crumb{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:12px}.topbar-right{display:flex;align-items:center;gap:13px}.avatar{width:35px;height:35px;background:var(--accent-bg);color:var(--accent);display:inline-grid;place-items:center;border-radius:11px;font-weight:700;font-size:12px}.user-chip{display:flex;align-items:center;gap:9px;color:var(--ink);border:0;background:transparent;text-align:left}.user-chip small{display:block;font-size:10px;color:var(--muted)}.icon-btn{display:inline-grid;place-items:center;min-width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--muted)}.content{padding:30px 36px 24px;max-width:1680px;margin:auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading p{color:var(--muted);font-size:12px;margin:0}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:9px 14px;background:var(--surface);color:var(--ink);font-weight:650;font-size:12px;line-height:1.4;white-space:nowrap}.btn:hover{filter:brightness(.96)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}body.dark .btn.primary{color:#0d302b}.btn.danger{color:var(--red);border-color:var(--red)}.btn.subtle{border-color:transparent;background:var(--accent-bg);color:var(--accent)}.btn.sm{padding:6px 10px;font-size:11px}.btn.full{width:100%;margin-top:20px}.btn.link{border:0;background:none;padding:2px;color:var(--accent);font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0}.stat{padding:21px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat .stat-label{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.stat-value{font-size:27px;line-height:1.2;font-weight:750;letter-spacing:-1px}.stat small{display:block;font-size:10px;margin-top:10px;color:var(--muted)}.stat.accent{background:var(--nav);border-color:var(--nav);color:#fff}.stat.accent .stat-label,.stat.accent small{color:#a3bdc4}.stat.accent .stat-value{color:#bfeadd}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden}.panel-pad{padding:23px}.panel-head{padding:19px 23px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-head h3{margin:0}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:11px}.grid2{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:20px}.grid-equal{grid-template-columns:1fr 1fr}.search-box{position:relative;flex:1;min-width:220px}.search-box input{padding-left:37px;width:100%}.search-box .icon{position:absolute;left:12px;top:12px;color:var(--muted);width:16px;height:16px}.quick-search{background:var(--surface);padding:18px 23px;border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:center;gap:18px;margin-bottom:22px}.quick-search strong{font-size:12px;white-space:nowrap}.quick-results{background:var(--surface);border:1px solid var(--line);box-shadow:0 15px 35px #0002;border-radius:12px;position:absolute;top:46px;left:0;right:0;z-index:15}.quick-result{padding:11px 15px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:12px}.quick-result:last-child{border:0}.filters{display:flex;align-items:end;flex-wrap:wrap;gap:10px;padding:17px 20px;border-bottom:1px solid var(--line)}.filters label{font-size:10px;margin:0;min-width:120px;flex:1}.filters input,.filters select{height:37px;font-size:12px}.filters .search-box{min-width:220px;flex:2}.filters .btn{height:37px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px;text-align:left}th{padding:12px 18px;font-size:9px;letter-spacing:.75px;text-transform:uppercase;color:var(--muted);font-weight:750;background:color-mix(in srgb,var(--bg) 60%,var(--surface))}td{padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:color-mix(in srgb,var(--accent-bg) 30%,var(--surface))}td strong{font-size:12px;display:block;font-weight:650}td .sub{font-size:10px;color:var(--muted);display:block;margin-top:3px}.student-cell{display:flex;align-items:center;gap:10px}.student-cell img,.profile-photo{object-fit:cover;border:1px solid var(--line);border-radius:10px}.student-cell img{width:35px;height:35px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;background:var(--bg);font-size:10px;color:var(--muted);font-weight:600}.badge.green{background:var(--accent-bg);color:var(--accent)}.badge.red{background:#bd454514;color:var(--red)}.badge.amber{background:#c2892417;color:var(--amber)}.text-red{color:var(--red)}.text-accent{color:var(--accent)}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 19px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.empty{padding:48px 22px;text-align:center;color:var(--muted);white-space:normal}.empty .icon{width:32px;height:32px;opacity:.6;margin-bottom:12px}.empty h3{color:var(--ink);font-size:15px;margin:0 0 6px}.empty p{font-size:12px;max-width:410px;margin:0 auto 16px}.alert{border-radius:10px;background:var(--accent-bg);color:var(--accent);padding:13px 16px;font-size:12px;margin:15px 0;white-space:normal}.alert.error{background:#c8464610;color:var(--red);border:1px solid #c8464630}.alert.warning{background:#b8821712;color:var(--amber)}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.chart{display:flex;gap:9px;align-items:end;height:165px;padding-top:10px}.chart-col{flex:1;min-width:0;height:100%;display:flex;align-items:center;flex-direction:column;justify-content:end;gap:8px}.chart-bar{background:#80c9b8;width:75%;min-height:3px;border-radius:4px 4px 0 0}.chart-col:last-child .chart-bar{background:var(--accent)}.chart-col small{font-size:9px;color:var(--muted);white-space:nowrap}.chart-label{font-size:9px;color:var(--muted)}.notice-item{padding:16px 0;border-bottom:1px solid var(--line)}.notice-item:last-child{border:0;padding-bottom:0}.notice-item h4{font-size:12px;margin:0 0 6px}.notice-item p{font-size:11px;color:var(--muted);margin-bottom:5px;white-space:pre-wrap;overflow-wrap:anywhere}.class-item{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.class-item:last-child{border:0}.class-track{width:80px;background:var(--bg);height:5px;border-radius:5px;overflow:hidden}.class-track i{display:block;height:100%;background:var(--accent);border-radius:5px}.page-foot{display:flex;justify-content:space-between;gap:14px;color:var(--muted);font-size:10px;margin-top:30px;padding-bottom:8px}.profile-head{display:flex;gap:22px;align-items:center;margin-bottom:24px}.profile-photo{height:92px;width:78px;background:var(--bg)}.profile-head .avatar{height:80px;width:80px;font-size:25px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-item small{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.detail-item span{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:22px;overflow:auto}.tab{background:none;border:0;padding:12px 17px;color:var(--muted);font-size:12px;white-space:nowrap}.tab.active{color:var(--accent);border-bottom:2px solid var(--accent);font-weight:700}.seat-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:9px;margin:20px 0}.seat{padding:12px 4px;text-align:center;background:var(--accent-bg);border:1px solid #5eaf9a40;color:var(--accent);border-radius:9px;font-weight:650;font-size:12px}.seat.occupied{background:#b3becb24;color:var(--muted);border-color:var(--line)}.seat small{display:block;font-size:8px;font-weight:400}.legend{display:flex;gap:18px;align-items:center;font-size:10px;color:var(--muted)}.mobile-toggle{display:none}dialog{border:1px solid var(--line);border-radius:19px;padding:0;max-width:800px;width:calc(100% - 30px);max-height:92vh;color:var(--ink);background:var(--surface);box-shadow:0 30px 100px #0003}dialog::backdrop{background:#0b1b2a8c;backdrop-filter:blur(4px)}.modal-head{position:sticky;top:0;background:var(--surface);display:flex;align-items:center;justify-content:space-between;padding:21px 26px;border-bottom:1px solid var(--line);z-index:2}.modal-head h2{margin:0;font-size:20px}.modal-body{padding:23px 26px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px;padding-top:18px;border-top:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .span2{grid-column:1/-1}label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600;color:var(--muted)}input,select,textarea{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:10px 11px;width:100%;min-width:0}textarea{min-height:90px;resize:vertical}input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex:none;margin:0}label.check{flex-direction:row;align-items:center;gap:9px;font-size:12px;color:var(--ink);font-weight:450;padding:5px 0}.check-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px;border:1px solid var(--line);border-radius:9px;max-height:230px;overflow:auto}.section-label{font-size:11px;letter-spacing:.7px;text-transform:uppercase;padding-top:24px;margin:0 0 15px;color:var(--muted)}.form-note{font-size:11px;color:var(--muted);margin:7px 0 0}.quote{padding:15px 18px;background:var(--accent-bg);border-radius:10px;display:flex;justify-content:space-between;gap:15px;margin-top:15px;color:var(--accent);font-size:12px}.quote strong{font-size:18px}.inline-form{display:flex;align-items:end;gap:12px}.inline-form label{flex:1}.boot{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:calc(100% - 35px);background:var(--nav);color:#fff;padding:12px 20px;border-radius:10px;box-shadow:0 7px 25px #0003;z-index:100;opacity:0;pointer-events:none;transition:opacity .15s;font-size:12px}#toast.visible{opacity:1}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-story{padding:65px 70px;background:var(--nav);color:#fff;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.auth-story:after{content:'';position:absolute;width:480px;height:480px;border:1px solid #c9e4dc15;border-radius:50%;right:-140px;bottom:-200px;box-shadow:0 0 0 65px #c9e4dc08,0 0 0 130px #c9e4dc05;pointer-events:none}.auth-story h1{font-size:48px;max-width:480px;letter-spacing:-2px;line-height:1.12}.auth-story h1 em{color:#a1d9c8;font-style:normal}.auth-story p{color:#9ab2c3;font-size:14px;max-width:370px;margin-top:25px;line-height:1.8}.auth-story .eyebrow{color:#9ab2c3;margin-bottom:22px}.auth-features{display:flex;gap:22px;color:#a4bdc9;font-size:11px;margin-top:35px;flex-wrap:wrap}.auth-form-wrap{display:flex;justify-content:center;align-items:center;padding:50px 30px;background:var(--surface)}.auth-form{width:100%;max-width:350px}.auth-form h1{font-size:28px}.auth-form label{margin-top:17px}.auth-form .form-note{margin-top:17px;text-align:center}.auth-foot{margin-top:45px;font-size:10px;color:var(--muted)}.setup-body{padding:45px 20px}.setup-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;max-width:760px;margin:auto;padding:40px}.setup-card .brand-symbol{margin-bottom:20px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;font-size:11px;margin:25px 0}.ok{color:var(--accent)}.bad{color:var(--red)}.setup-card h3{margin-top:27px}.wrap{white-space:normal;max-width:320px;overflow-wrap:anywhere}.loading{padding:45px;text-align:center;color:var(--muted)}.radio-grid{display:flex;gap:20px}.count-pill{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:3px 7px;font-size:10px;margin-left:5px}.checkbox-col{width:25px;padding-right:0}table input[type=number],table input[type=date]{min-width:130px}.installment-edit td{padding:9px}.account-layout{max-width:800px}.notice-full{white-space:pre-wrap;line-height:1.8}.error-inline{color:var(--red);font-size:12px;margin-top:12px}
@media(min-width:1500px){.content{padding:36px 46px}}@media(max-width:1150px){.sidebar{width:208px}.workspace{margin-left:208px}.content{padding:27px 24px}.topbar{padding:0 24px}.stats{gap:12px}.stat{padding:17px}.stat-value{font-size:23px}.grid2{grid-template-columns:1fr}.auth-story{padding:50px 40px}.auth-story h1{font-size:40px}.seat-grid{grid-template-columns:repeat(10,1fr)}}@media(max-width:800px){.sidebar{transform:translateX(-100%);width:238px;transition:transform .2s;box-shadow:15px 0 50px #0003}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0}.mobile-toggle{display:inline-grid}.topbar{height:65px;padding:0 18px}.topbar .user-name{display:none}.content{padding:24px 18px}.page-heading{gap:14px;flex-wrap:wrap}h1{font-size:26px}.stats{grid-template-columns:1fr 1fr}.page-foot{flex-wrap:wrap}.auth-layout{display:flex;flex-direction:column}.auth-story{padding:25px 25px 35px}.auth-story .brand{padding:0 0 25px}.auth-story h1{font-size:32px;margin-bottom:0}.auth-story p,.auth-features,.auth-story footer{display:none}.auth-form-wrap{padding:35px 25px 50px;flex:1}.auth-form{max-width:430px}.quick-search{display:block;padding:17px}.quick-search strong{display:block;margin-bottom:10px}.quick-search .search-box{min-width:0}.form-grid{gap:13px}.grid-equal{grid-template-columns:1fr}.seat-grid{gap:6px}.seat{padding:9px 3px}.profile-head{align-items:start}.profile-head h1{font-size:23px}.setup-card{padding:25px}.panel-head{padding:17px}.panel-pad{padding:18px}.filters{padding:15px}.chart{gap:5px}.chart-col small{font-size:8px}.modal-body{padding:20px}.modal-head{padding:18px 20px}}@media(max-width:480px){.form-grid,.detail-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}.stat-value{font-size:22px}.stat{padding:15px}.stat .stat-label{font-size:10px}.topbar-right{gap:7px}.seat-grid{grid-template-columns:repeat(6,1fr)}.check-list{grid-template-columns:1fr}.filters label{min-width:110px}.chart-label{display:none}.page-heading .actions{width:100%}}
