*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei",Arial,sans-serif;color:#172033;background:#f4f7fb}a{text-decoration:none;color:inherit}.topbar{height:72px;background:#0d1b36;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 5%;position:sticky;top:0;z-index:20}.brand{font-size:21px;font-weight:800;letter-spacing:1px}.nav a{margin-left:25px;color:#cbd5e1}.nav a:hover{color:#fff}.hero{padding:80px 6% 45px;background:radial-gradient(circle at 15% 20%,#385dba,transparent 32%),linear-gradient(120deg,#0b1731,#172e61 55%,#234f98);color:#fff}.hero h1{font-size:44px;margin:0 0 15px}.hero p{font-size:18px;color:#dce7ff;max-width:760px;line-height:1.8}.wrap{max-width:1250px;margin:auto;padding:28px 20px}.filterbar,.card{background:#fff;border:1px solid #e6ebf2;border-radius:16px;box-shadow:0 8px 25px rgba(19,42,84,.06)}.filterbar{padding:18px;display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:-20px;position:relative}.filterbar label{font-size:13px;color:#64748b}.filterbar select,.filterbar input,.form-control,select{display:block;margin-top:6px;border:1px solid #d8e0eb;border-radius:9px;padding:10px 12px;background:#fff;min-width:180px}.btn{border:0;border-radius:9px;padding:10px 15px;cursor:pointer;display:inline-block}.primary{background:#1d5fd1;color:#fff}.dark{background:#0d1b36;color:#fff}.danger{background:#dc3545;color:#fff}.muted{color:#64748b}.schedule{margin-top:22px;overflow:auto}.schedule table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 25px rgba(19,42,84,.06)}.schedule th,.schedule td{border-right:1px solid #e5eaf1;border-bottom:1px solid #e5eaf1;text-align:center}.schedule th{padding:15px;background:#f7f9fc}.schedule td{height:92px;padding:8px}.time{width:70px;font-weight:700;background:#f8fafc}.period{width:50px;font-weight:700}.lesson{background:linear-gradient(145deg,#edf5ff,#f8fbff);border:1px solid #d7e7ff;border-radius:12px;padding:10px;height:100%;transition:.2s}.lesson:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(30,90,170,.12)}.lesson strong{display:block;font-size:15px}.teacher{font-size:12px;color:#64748b;margin-top:5px}.room{font-size:11px;color:#8793a6}.notes{margin-top:18px;padding:18px;background:#fff;border-radius:14px;border:1px solid #e6ebf2;line-height:1.8;font-size:13px}.footer{padding:28px;text-align:center;color:#8a96a8;font-size:13px}.login-bg{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0c1830,#214b92)}.login-card{width:min(420px,92vw);background:#fff;padding:34px;border-radius:20px;box-shadow:0 20px 70px #07112655}.login-card h1{margin-top:0}.login-card label,.form-grid label{display:block;margin:15px 0;font-size:14px}.login-card input,.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:12px;border:1px solid #dbe2eb;border-radius:9px;margin-top:6px}.alert{padding:12px;border-radius:9px;background:#eef7ff;margin:12px 0;color:#245}.admin{display:flex;min-height:100vh}.sidebar{width:235px;background:#0d1b36;color:#dbe7ff;padding:24px 14px}.sidebar .brand{padding:8px 12px 25px}.sidebar a{display:block;padding:12px 14px;border-radius:9px;margin:3px 0;color:#cbd5e1}.sidebar a:hover,.sidebar a.active{background:#1d3d78;color:#fff}.main{flex:1;min-width:0}.admin-head{height:72px;background:#fff;border-bottom:1px solid #e7ebf1;padding:0 28px;display:flex;align-items:center;justify-content:space-between}.content{padding:28px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat{padding:22px}.stat .num{font-size:30px;font-weight:800;margin-top:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.table-wrap{overflow:auto}.data{width:100%;border-collapse:collapse;background:#fff}.data th,.data td{padding:12px;border-bottom:1px solid #edf0f4;text-align:left;white-space:nowrap}.data th{background:#f8fafc}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 18px}.form-grid .full{grid-column:1/-1}.schedule-admin{display:grid;grid-template-columns:80px repeat(5,1fr);background:#fff;border:1px solid #e5eaf1}.schedule-admin>div{min-height:105px;border-right:1px solid #e5eaf1;border-bottom:1px solid #e5eaf1;padding:8px}.slot{background:#f8fbff;border:1px solid #d7e7ff;border-radius:9px;padding:8px;cursor:grab;height:88px}.modal{position:fixed;inset:0;background:#0006;display:none;place-items:center;z-index:50}.modal.show{display:grid}.modal-box{background:#fff;width:min(520px,92vw);border-radius:16px;padding:24px}@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.sidebar{width:72px}.sidebar .brand span,.sidebar a span{display:none}.hero h1{font-size:32px}}@media(max-width:600px){.stats{grid-template-columns:1fr}.hero{padding:55px 20px 35px}.hero h1{font-size:28px}.content{padding:16px}}
