:root{--navy:#132b60;--ink:#18345c;--muted:#60728e;--bg:#f3f6fb;--border:#dce3ee;--blue:#275edd;--green:#067460;--red:#b6354c;--amber:#a1660a;--radius:18px;--shadow:0 12px 35px #122b6010}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 "Noto Sans Devanagari","Nirmala UI",system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:1px solid transparent;border-radius:11px;padding:10px 16px;min-height:46px;font-weight:700;color:var(--ink)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #dd9b28;outline-offset:3px}input,select{border:1px solid #c5d0e2;background:#fff;border-radius:10px;padding:11px 13px;min-height:48px;max-width:100%;color:var(--ink)}input[type=checkbox]{min-height:24px;width:24px;height:24px;accent-color:var(--red)}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(29px,5vw,54px);line-height:1.3}h2{font-size:25px;line-height:1.4;margin-bottom:12px}h3{font-size:18px}.topline{border-bottom:1px solid var(--border);padding:14px max(18px,calc((100vw - 1100px)/2));font-size:13px;font-weight:700;background:white;display:flex;justify-content:space-between;gap:12px}.topline span{font-weight:400;color:var(--muted)}.login-wrap{max-width:1100px;margin:45px auto;display:grid;grid-template-columns:1.05fr 1fr;padding:0 22px;gap:44px;align-items:center;min-height:70vh}.welcome{background:var(--navy);color:#fff;border-radius:25px;padding:42px;min-height:570px;display:flex;flex-direction:column;justify-content:center}.welcome p{color:#d3e0ff}.welcome-note{margin-top:22px;font-size:14px;color:#f7cd7c;border-top:1px solid #ffffff35;padding-top:22px}.seal{background:#edc372;border-radius:18px;width:65px;height:65px;display:flex;align-items:center;justify-content:center;color:var(--navy);font-size:34px;font-weight:900;margin-bottom:28px}.eyebrow{font-size:13px;font-weight:800;letter-spacing:.04em}.login-card{background:white;border:1px solid var(--border);padding:33px;border-radius:var(--radius);box-shadow:var(--shadow)}label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}.login-card input{width:100%;margin-bottom:18px}.primary{color:#fff;background:var(--blue)}.secondary{background:white;border-color:var(--border)}.full{width:100%;margin:5px 0}.muted{color:var(--muted)}.small{font-size:12px}.note{font-size:14px;background:#edf3fc;border:1px solid #d4e1f7;border-radius:11px;padding:13px 15px;margin:14px 0}.note.error{background:#fff0f1;color:var(--red);border-color:#f2c7cc}.note.good{background:#e8f6ee;color:var(--green);border-color:#b6dfc8}.note.warn{background:#fff7e8;color:var(--amber);border-color:#efd6aa}.app-header{background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px max(18px,calc((100vw - 1100px)/2));position:sticky;top:0;z-index:10}.brand{display:flex;gap:12px;align-items:center}.brand strong{font-size:21px}.brand small{display:block;color:var(--muted);font-size:12px}.small-seal{width:47px;height:47px;font-size:27px;margin:0;border-radius:13px}.header-actions{display:flex;gap:8px}.app-container{max-width:1100px;margin:auto;padding:21px 22px 60px}.status-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);margin-bottom:20px;overflow-wrap:anywhere}#connection.good{color:var(--green)}#connection.warn{color:var(--amber)}#tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:25px}#tabs button{background:transparent;border-radius:8px;color:var(--muted)}#tabs button.active{background:var(--navy);color:white}.hero{padding:26px;background:var(--navy);color:white;border-radius:var(--radius);display:flex;justify-content:space-between;align-items:center;gap:16px}.hero h2{font-size:29px;margin:0 0 6px}.hero p{font-size:14px;color:#c7d7f2;margin:0}.hero .date{font-size:14px;color:#efcc8a}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.metric{background:white;border:1px solid var(--border);border-radius:15px;padding:18px}.metric small{font-size:13px;display:block;color:var(--muted)}.metric strong{display:block;font-size:32px;line-height:1.4;margin-top:7px}.metric.good strong{color:var(--green)}.metric.bad strong{color:var(--red)}.metric.warn strong{color:var(--amber)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:21px 0 15px}.toolbar h2,.toolbar h3{margin:0}.toolbar .controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.table-card{background:white;border:1px solid var(--border);border-radius:15px;overflow:hidden}.scroll{overflow:auto;max-height:65vh}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:13px 16px;text-align:left;border-bottom:1px solid #e7ecf4}th{background:#f3f6fb;font-size:12px;color:var(--muted);position:sticky;top:0;z-index:1}.class-name{font-weight:800}.class-name small{font-weight:400;display:block;color:var(--muted)}.pill{display:inline-block;border-radius:7px;padding:4px 9px;font-size:12px;white-space:nowrap;background:#fff2d5;color:var(--amber)}.pill.good{background:#e4f5ec;color:var(--green)}.pill.neutral{background:#edf0f6;color:var(--muted)}.link-button{color:var(--blue);background:#f0f5ff;padding:7px 11px;min-height:39px}.field-row{display:grid;grid-template-columns:2fr 1fr;gap:14px}.field-row select,.field-row input{width:100%}.panel{padding:22px;background:white;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.compact.metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin:15px 0}.compact .metric{padding:13px}.compact .metric strong{font-size:28px}.roster-search{width:100%;margin-bottom:14px}.check-label{display:flex;gap:11px;align-items:center;margin:0;justify-content:flex-start;font-weight:500}.check-label span{font-size:13px}.absent-row{background:#fff4f5}.submit-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;position:sticky;bottom:10px;background:white;border:1px solid var(--border);padding:15px 18px;border-radius:13px;box-shadow:0 4px 28px #132b6020;margin-top:16px;z-index:3}.submit-bar small{display:block;color:var(--muted);font-size:12px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-grid input,.admin-grid select{width:100%;margin-bottom:14px}.admin-grid .full{margin-top:16px}.credentials{background:#fff7e8;border:1px solid #e9ce94;padding:14px;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 28px);padding:15px 22px;background:var(--navy);color:white;box-shadow:var(--shadow);border-radius:12px;z-index:100;font-size:14px}.empty{text-align:center;padding:40px 20px;background:#fff;border:1px solid var(--border);border-radius:15px}footer{font-size:12px;text-align:center;color:var(--muted);padding:20px 16px 30px}footer span{font-size:11px}.right{text-align:right}.loading{opacity:.65}progress{width:100%;height:9px;accent-color:var(--green)}@media(max-width:700px){.topline{font-size:11px}.topline span{display:none}.login-wrap{display:block;margin:22px auto;padding:0 15px}.welcome{padding:26px;min-height:auto;margin-bottom:20px}.welcome h1{font-size:33px}.welcome h1 br{display:none}.welcome p br{display:none}.welcome p{font-size:14px}.welcome .seal{width:44px;height:44px;font-size:27px;margin-bottom:16px}.welcome-note{margin-top:6px;padding-top:14px;font-size:12px}.login-card{padding:23px}.app-header{padding:12px 14px}.brand strong{font-size:17px}.header-actions button{font-size:12px;padding:8px 11px;min-height:40px}.app-container{padding:18px 12px 40px}.status-row{font-size:10px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{padding:14px}.metric strong{font-size:28px}.hero{padding:20px}.hero h2{font-size:23px}.hero .date{font-size:12px}.hero .secondary{font-size:12px;padding:8px 10px}.admin-grid{grid-template-columns:1fr}.field-row{grid-template-columns:1fr 1fr;gap:9px}th,td{padding:11px 10px}.check-label{gap:5px}.check-label span{font-size:12px}#tabs button{font-size:13px;padding:9px 11px}.submit-bar{padding:12px;gap:10px}.submit-bar button{font-size:13px;min-width:135px}.compact .metric small{font-size:11px}.compact .metric strong{font-size:23px}.panel{padding:16px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(max-width:700px){.app-header{flex-wrap:wrap}.header-actions{margin-left:auto;flex-wrap:wrap}.brand{flex:1 1 170px}}#password-form{display:grid;gap:10px;max-width:420px}#password-form input{width:100%}
