:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#243c38;background:#f6f8f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #599df2;outline-offset:3px}.sidebar{position:fixed;width:248px;inset:0 auto 0 0;background:#fff;border-right:1px solid #e4eae7;padding:37px 22px;display:flex;flex-direction:column}.brand{display:flex;gap:13px;align-items:center;font-size:19px;line-height:1.2;letter-spacing:-.6px;padding:0 9px}.logo{background:#1b6c5a;color:white;border-radius:13px;padding:10px 13px;font-size:28px}.brand b{font-weight:750}.sidebar small{font-size:10px;letter-spacing:1.7px;color:#8b9893;margin:49px 12px 17px}nav{display:grid;gap:9px}nav a{padding:15px 12px;border-radius:9px;display:flex;align-items:center;gap:12px;color:#71817b;font-size:17px}nav a span{font-size:13px;font-weight:600}nav a.active{background:#e9f3ee;color:#176859}.sidebar-bottom{margin-top:auto;font-size:11px;color:#697e74;padding:18px 10px}.tiny-dot{display:inline-block;width:7px;height:7px;background:#90b6a4;border-radius:50%;margin-right:5px}.sidebar-bottom p{line-height:1.7;color:#9aa69f;margin-top:22px}.shell{margin-left:248px}header{height:80px;background:#fff;border-bottom:1px solid #e4eae7;display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:12px;color:#8a9690}.avatar{background:#edf1e8;border:1px solid #dce4d5;border-radius:50%;padding:11px;color:#607750;font-weight:700}main{max-width:1320px;margin:auto;padding:38px 42px 55px}h1{font-size:30px;letter-spacing:-1px;margin:0 0 9px;font-weight:650}h2{font-size:18px;letter-spacing:-.4px;margin:0}h3{margin:0;font-size:17px}p{color:#78877f;font-size:13px;line-height:1.7;margin:0}.eyebrow{font-size:10px;letter-spacing:1.6px;color:#748a7c;font-weight:700;margin-bottom:10px}.page-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.date-badge{background:#fff;border:1px solid #e1e7e3;border-radius:8px;padding:12px;font-size:12px;color:#708278;white-space:nowrap}.hero{background:#eaf2eb;border:1px solid #dce8dd;border-radius:14px;padding:30px 32px;display:flex;justify-content:space-between;align-items:center;gap:20px;position:relative;overflow:hidden}.hero h2{font-size:26px;max-width:420px;font-weight:600;line-height:1.3;letter-spacing:-.8px}.hero p{max-width:390px;margin:10px 0 22px;color:#708675}.hero-art{position:relative;width:220px;height:150px;flex-shrink:0}.paper{background:#fff;border:1px solid #d8e2d6;border-radius:12px;transform:rotate(9deg);width:130px;height:150px;position:absolute;left:42px;top:3px;padding:21px;box-shadow:10px 10px 0 #dce8da}.paper i{display:block;height:8px;border-radius:8px;background:#e5ede4;margin:13px 0}.paper i:before{content:'✓';color:#2f8064;position:relative;left:-12px;top:-6px;font-style:normal}.art-badge{position:absolute;bottom:7px;right:5px;border-radius:50%;background:#26785e;color:white;font-size:35px;width:62px;height:62px;text-align:center;line-height:62px;border:6px solid #eaf2eb}.primary,button.secondary{border:0;border-radius:8px;padding:13px 20px;min-height:44px;font-size:12px;font-weight:650;display:inline-flex;gap:12px;align-items:center;justify-content:center}.primary{background:#1b6c59;color:#fff}.primary:hover{background:#12523f}button.secondary{background:white;color:#4a6457;border:1px solid #dbe4de}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:23px 0 34px}.stat{background:#fff;border:1px solid #e2e8e4;border-radius:11px;padding:20px}.stat-top{font-size:12px;color:#7e8c83;display:flex;justify-content:space-between}.stat strong{font-size:30px;font-weight:600;display:block;margin:10px 0 3px;letter-spacing:-1px}.stat small{color:#91a095;font-size:10px}.stat-symbol{background:#f1f5ef;padding:4px 7px;border-radius:5px;color:#64927b}.section-head{margin-bottom:18px}.section-head a{font-size:12px;color:#3a7b63}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.class-card{background:#fff;border:1px solid #e1e8e2;border-radius:12px;padding:23px}.class-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.class-icon{background:#eef2e7;color:#84946d;padding:12px;border-radius:9px}.pill{font-size:10px;padding:5px 9px;background:#f4f6f3;border-radius:5px;color:#81907f}.class-card p{font-size:12px;margin:7px 0 22px}.card-line{border-top:1px solid #eef1ed;padding:16px 0 14px;font-size:11px;display:flex;justify-content:space-between;color:#8a988d}.card-line b{font-weight:500;color:#b08c35}.class-card button{width:100%}.notice{background:#f0f3ed;border:1px solid #e2e8de;border-radius:10px;padding:16px 20px;margin-top:26px;display:flex;gap:13px;align-items:center}.notice p{font-size:11px;color:#81917f}.notice b{color:#657b5f}footer{margin:0 42px;border-top:1px solid #e3e9e4;padding:21px 0;color:#9aa79d;font-size:10px;display:flex;justify-content:space-between}.panel{border:1px solid #e1e8e2;background:#fff;border-radius:12px;padding:24px;margin-bottom:22px}.toolbar{display:flex;gap:16px;flex-wrap:wrap;align-items:end}label{display:grid;gap:8px;font-size:12px;color:#6b7e72}input,select{border:1px solid #d9e3da;background:#fff;color:#324e3e;border-radius:7px;padding:11px 12px;min-height:44px;max-width:100%}.toolbar label{flex:1;min-width:150px}.legend{display:flex;gap:18px;font-size:11px;margin:17px 0;color:#738379}.dot{width:8px;height:8px;display:inline-block;border-radius:50%;margin-right:5px}.green{background:#319071}.red{background:#ce6565}.yellow{background:#d8ae43}.student-row{display:flex;align-items:center;gap:13px;padding:15px 0;border-bottom:1px solid #eef2ee}.student-row:last-child{border:0}.initials{border-radius:9px;background:#f0f4ed;color:#849379;font-size:12px;padding:12px;width:42px;text-align:center}.student-name{flex:1;min-width:0;font-size:13px;font-weight:600}.student-name small{display:block;font-size:10px;color:#98a392;font-weight:400;margin-top:4px}.marks{display:flex;gap:6px}.mark{border:1px solid #e1e6df;background:#fff;border-radius:7px;min-height:44px;padding:10px 13px;color:#85917e;font-size:11px}.mark.present[aria-pressed=true]{background:#e5f3eb;color:#237651;border-color:#9acbb0}.mark.absent[aria-pressed=true]{background:#fbeaea;color:#a33d3d;border-color:#e9adad}.mark.pending[aria-pressed=true]{background:#fff6dc;color:#92701d;border-color:#e2cc86}.summary{display:flex;gap:10px;margin:20px 0;flex-wrap:wrap}.summary span{padding:9px 13px;border-radius:7px;background:#f2f6ef;font-size:12px}.empty{text-align:center;padding:35px;color:#84917f;font-size:13px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th,td{text-align:left;padding:15px 12px;border-bottom:1px solid #edf1ea}th{color:#82927b;font-weight:500;background:#f8faf6}td button{background:none;border:0;color:#23735a;text-decoration:underline;padding:10px}.status-text{font-size:11px;color:#8b9a81}.history-student{display:grid;grid-template-columns:1fr auto;gap:10px;margin:12px 0;border-bottom:1px solid #edf1e9;padding:12px 0;font-size:13px}.history-student small{color:#899780;display:block;margin-top:6px;font-size:11px}dialog{border:1px solid #dbe5db;border-radius:15px;padding:28px;width:min(440px,94vw);color:#294532}dialog::backdrop{background:#1c362f66}dialog p{margin:15px 0}dialog label{margin:16px 0}.dialog-top{display:flex;align-items:center;justify-content:space-between}.icon{background:none;border:0;font-size:25px;color:#84947b}.dialog-top h2{font-size:22px}#form-error{color:#ac4040}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#244f3f;color:white;border-radius:9px;padding:13px 22px;font-size:12px;display:none;max-width:90vw;z-index:10}#toast.visible{display:block}.error-banner{padding:18px;background:#fff0df;color:#8d5127;font-size:13px;margin-bottom:20px;border-radius:9px}.search{width:100%;margin:12px 0}.text-link{border:0;background:none;color:#367c60;cursor:pointer;padding:10px;font-size:12px}
@media(min-width:1500px){main{padding-top:48px}.hero{padding:40px}.hero-art{margin-right:80px}}@media(max-width:1050px){.sidebar{width:205px;padding:28px 14px}.shell{margin-left:205px}main{padding:30px 24px}header{padding:0 24px}.cards{gap:12px}.class-card{padding:17px}.stats{gap:12px}.hero-art{width:170px}footer{margin:0 24px}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:18px 18px 0;display:block;border-right:0}.brand{font-size:16px}.logo{font-size:22px;padding:8px 11px}.sidebar small,.sidebar-bottom{display:none}nav{display:flex;overflow:auto;margin-top:18px;gap:5px;padding-bottom:10px}nav a{padding:12px;white-space:nowrap}nav a span{font-size:11px}.shell{margin:0}header{height:55px;padding:0 20px}main{padding:26px 18px}.page-head{align-items:flex-start;flex-wrap:wrap;gap:12px}h1{font-size:27px}.date-badge{font-size:10px}.hero{padding:24px}.hero h2{font-size:23px}.hero-art{display:none}.stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:26px}.stat{padding:16px}.cards{grid-template-columns:1fr}.class-card{padding:20px}.class-top{margin-bottom:15px}.class-card p{margin-bottom:12px}.student-row{flex-wrap:wrap}.marks{width:100%;padding-left:55px}.mark{flex:1;padding:10px 7px}.panel{padding:18px}.notice{align-items:flex-start}footer{margin:0 18px;gap:15px;line-height:1.7}.toolbar .secondary{width:100%}.section-head{align-items:flex-start}.history-student{grid-template-columns:1fr}.legend{gap:12px}}
