:root{font-family:Inter,system-ui,-apple-system,Arial,sans-serif;color:#1a3028;background:#f5f7f5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;background:#1c5b43;color:white;padding:11px 15px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600}button:disabled{opacity:.5;cursor:wait}.outline{background:white;color:#285744;border:1px solid #dce6de}input,select,textarea{width:100%;border:1px solid #d8e2db;padding:11px 12px;border-radius:9px;background:#fff;color:#18342a;outline-color:#287855}label{font-weight:600;font-size:13px;display:block;margin:14px 0 7px}h1,h2,h3{margin-top:0}h1{font-size:24px}h2{font-size:18px}h3{font-size:16px}.shell{min-height:100vh;display:flex}.sidebar{background:#11281f;width:245px;min-width:245px;color:white;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:28px 20px;border-bottom:1px solid #2a4b3a}.brand strong{display:block;font-size:18px}.brand small{display:block;color:#acc5b8;margin-top:5px}.mark{border-radius:11px;background:#d3b16a;color:#173529;font-weight:900;font-size:24px;padding:8px 14px}.sidebar nav{padding:20px 12px;display:grid;grid-gap:5px;gap:5px}.sidebar nav button{background:transparent;text-align:left;justify-content:flex-start;font-weight:500;color:#c7d8cf}.sidebar nav button.active{background:#236d4d;color:white}.foot{margin-top:auto;padding:12px}.foot button{background:transparent;color:#d6e4da}.main{padding:32px;flex:1 1;min-width:0;max-width:1600px;margin:0 auto}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;gap:14px}.top h1{margin:0 0 6px}.top span{font-size:13px;color:#7b8c80}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.classcard,.metric,.panel{background:white;border:1px solid #e0e9e2;border-radius:14px;box-shadow:0 3px 16px #172c2010}.metric{padding:22px}.metric span{font-size:13px;color:#718478;display:block}.metric b{font-size:24px;display:block;margin-top:10px}.duo{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}.panel{padding:24px;min-width:0}.panel,.panel h2{margin-bottom:20px}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.sectionhead h2{margin:0}.classcards{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:13px;gap:13px;margin-bottom:18px}.classcard{padding:22px;text-align:left;display:flex;align-items:flex-start;flex-direction:column;color:#234337}.classcard strong{font-size:17px}.classcard span{font-size:12px;color:#678575}.classcard.chosen{border:2px solid #28885d;background:#edf8f1}.tablewrap{overflow:auto;margin-top:14px}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:12px;color:#778b7f;background:#f4f8f5}td,th{border-bottom:1px solid #ebf0ec;padding:14px}td{font-size:14px}td small{display:block;color:#a37735}.record{display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid #e9efea;padding:14px 0}.record strong{font-size:13px}.record small{font-size:12px;color:#7d8f83;display:block;margin-top:5px}.record b{text-align:right;white-space:nowrap}.info{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf1ed}.hint{font-size:13px;color:#7b8d80;line-height:1.6}.positive{color:#13824f}.negative{color:#bf4a4a}.alert{padding:14px 18px;border-radius:10px;margin-bottom:15px}.error{background:#fff0ec;color:#ae3429}.success{background:#eaf7ee;color:#19663e}.checks{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:8px}.check{margin:0;padding:11px;background:#f4f7f4;border:1px solid #e1e9e2;border-radius:9px;font-weight:400;font-size:12px;display:flex;gap:8px;align-items:center}.check input{width:auto}.overlay{position:fixed;inset:0;background:#0d271dad;display:flex;justify-content:flex-end;z-index:20}.modal{background:white;height:100%;width:min(480px,100vw);padding:30px;overflow:auto}.modal h2{margin:0}.modal form button{width:100%;margin-top:16px}.feearea{border-top:1px solid #e4ebe5;margin-top:24px;padding-top:24px}.login{height:100vh;display:grid;place-items:center;background:#f0f5f0}.loginbox{background:white;padding:38px;width:min(410px,90vw);border-radius:18px;box-shadow:0 16px 55px #1a342022}.loginbox .logo{display:inline-block;background:#154830;color:#e3bf79;padding:12px;border-radius:10px;font-size:24px;font-weight:800}.loginbox h1{margin:20px 0 4px}.loginbox p{color:#7c897f}.loginbox .primary{width:100%;margin-top:20px}@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.sidebar{width:205px;min-width:205px}.main{padding:20px}}@media(max-width:750px){.shell{display:block}.sidebar{position:relative;width:auto;height:auto;min-width:0}.brand{padding:14px}.sidebar nav{display:flex;overflow:auto;padding:8px}.sidebar nav button{white-space:nowrap;font-size:12px}.foot{display:none}.main{padding:16px}.duo{grid-template-columns:1fr}.classcards,.stats{grid-template-columns:repeat(2,1fr)}.metric{padding:14px}.metric b{font-size:19px}.checks{grid-template-columns:1fr}}