:root{--navy:#102b55;--blue:#174b91;--light:#edf3fb;--ink:#17263b;--muted:#65758b;--green:#167347;--red:#9e2832;--border:#dce4ef}*{box-sizing:border-box}body{margin:0;background:#f4f7fb;color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.top{height:76px;background:#0c2345;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,calc((100% - 1200px)/2));box-shadow:0 3px 15px #0b244022}.brand{display:flex;align-items:center;gap:12px}.logo{width:42px;height:42px;border:2px solid #8fb8ed;border-radius:12px;display:grid;place-items:center;font-size:23px;font-weight:800}.brand b{display:block;letter-spacing:2px}.brand small{display:block;color:#bfd1e8;font-size:10px;letter-spacing:1.6px}.topright{display:flex;gap:15px;align-items:center;color:#d7e5f5;font-size:12px}.wrap{max-width:1200px;margin:35px auto;padding:0 20px;min-height:75vh}.hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center;min-height:580px}.hero-copy h1{font-size:clamp(40px,5vw,65px);line-height:1.05;margin:16px 0;color:#102b55}.hero-copy em{font-style:normal;color:#3575bd}.hero-copy p{color:var(--muted);font-size:18px;max-width:420px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.7px;color:#3973b5}.login-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:#fff;border:1px solid var(--border);border-radius:17px;padding:23px;box-shadow:0 8px 28px #1b365b0b}.panel h2{margin:0 0 17px;color:#15345f;font-size:20px}.panel label{display:block;font-size:13px;font-weight:650;color:#354b67;margin:12px 0}.panel input:not([type=checkbox]),.panel select,.panel textarea{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1px solid #ccd7e5;border-radius:9px;font:inherit;color:#17263b;background:#fff;outline:none}.panel input:focus,.panel textarea:focus,.panel select:focus{border-color:#3b78bb;box-shadow:0 0 0 3px #3b78bb18}.primary,.secondary,.success,.danger,.smallbtn,.ghost{border:0;border-radius:9px;padding:11px 16px;font-weight:700;cursor:pointer}.primary{background:#123b72;color:#fff}.primary:hover{background:#205a9c}.secondary{background:#e8eef7;color:#173b68}.success{background:#167347;color:white}.danger{background:#f8e7e8;color:#98232e}.full{width:100%;margin-top:12px}.ghost{background:#28466e;color:#fff}.textbtn{background:none;border:0;color:#326ba9;font-weight:700;cursor:pointer;margin-top:12px}.hint,.muted{color:var(--muted);font-size:12px}.narrow{max-width:480px;margin:40px auto}.hidden{display:none!important}.pagehead{display:flex;align-items:center;justify-content:space-between;margin:10px 0 24px}.pagehead h1{margin:4px 0;color:#102b55;font-size:32px}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--border);margin-bottom:20px}.tab{background:none;border:0;padding:13px 18px;color:#64758b;font-weight:700;cursor:pointer;border-bottom:3px solid transparent}.tab.active{color:#174b91;border-color:#174b91}.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:18px;margin-bottom:18px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.smallbtn{padding:7px 11px;background:#e8eef7;color:#173b68}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px;border-bottom:1px solid #e8edf4;white-space:nowrap}th{color:#526781;background:#f7f9fc}.buildergrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checklist{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.checklist label{display:flex;align-items:center;gap:6px;margin:0}.student-badge{background:#e8f4ee;color:#176441;padding:8px 13px;border-radius:20px;font-size:12px;font-weight:700}.examcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:15px}.examcard{background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px}.examcard h3{margin:0 0 6px}.examcard button{margin-top:12px}.checkline{display:flex!important;align-items:center;gap:10px;background:#f2f6fb;padding:13px;border-radius:9px}.checkline input{width:18px;height:18px}.panel pre{white-space:pre-wrap;font:inherit;color:#3f526b;background:#f7f9fc;padding:14px;border-radius:9px}.exambar{background:#102b55;color:white;border-radius:13px;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.exambar small{display:block;color:#c3d5eb;font-size:11px}.timerbox{text-align:right}.timerbox strong{font-size:25px;font-variant-numeric:tabular-nums}.timerbox.danger strong{color:#ff7777}.examlayout{display:grid;grid-template-columns:280px 1fr;gap:15px}.palette{align-self:start}.numbergrid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:12px 0}.numbergrid button{border:0;border-radius:7px;height:37px;background:#a52a35;color:white;font-weight:700;cursor:pointer}.numbergrid button.saved{background:#17814f}.numbergrid button.editing{background:#f3a1a5;color:#60141b}.numbergrid button.current{outline:3px solid #78a7dc;outline-offset:2px}.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:10px;color:#65758b}.legend .saved{color:#17814f}.legend .editing{color:#bf555e}.legend .blank{color:#a52a35}.questionpanel{min-height:490px}.marktag{background:#edf3fb;color:#234c7c;padding:6px 10px;border-radius:20px;font-size:12px}.prompt{font-size:18px;white-space:pre-wrap;margin:20px 0}.questionimage{display:block;max-width:100%;max-height:360px;object-fit:contain;margin:10px auto;border-radius:8px}.answeroption{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:9px;margin:9px 0;cursor:pointer}.answeroption input{margin-top:5px}.answertext{width:100%;min-height:240px;padding:13px;border:1px solid #cbd7e5;border-radius:10px;font:inherit;resize:vertical}.questionactions,.sectionnav{display:flex;gap:8px;align-items:center;margin-top:20px;flex-wrap:wrap}.spacer{flex:1}.sectionnav{border-top:1px solid var(--border);padding-top:15px}.modal{position:fixed;inset:0;background:#08172c99;display:grid;place-items:center;padding:20px;z-index:20}.modalbox{background:#fff;width:min(480px,100%);border-radius:17px;padding:25px;box-shadow:0 20px 60px #0004}.modalbox h2{margin:0 0 8px;color:#15345f}.countdown{font-size:30px;font-weight:800;color:#a32631;text-align:center;margin:12px}.modalactions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#102b55;color:white;padding:12px 18px;border-radius:9px;opacity:0;pointer-events:none;transition:.2s;z-index:30}.toast.show{opacity:1}footer{text-align:center;color:#718096;padding:25px;font-size:12px}footer span{margin-left:12px;color:#a0aaba}hr{border:0;border-top:1px solid var(--border);margin:18px 0}@media(max-width:850px){.hero{grid-template-columns:1fr;gap:20px}.hero-copy{padding:20px 0 0}.split{grid-template-columns:1fr}.examlayout{grid-template-columns:1fr}.palette{order:2}.login-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.wrap{margin:18px auto;padding:0 12px}.top{padding:0 14px}.login-grid{grid-template-columns:1fr}.hero{min-height:unset}.hero-copy h1{font-size:43px}.panel{padding:17px}.pagehead h1{font-size:25px}.exambar{padding:12px}.questionactions button{font-size:12px;padding:10px}.sectionnav button{flex:1}}

/* Dedicated role-based login portal */
.login-card{position:relative;overflow:hidden;border-top:4px solid #174b91}.admin-login-card{border-top-color:#385879}.login-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#edf3fb;font-size:23px;margin-bottom:10px}.login-subtitle{margin:-12px 0 12px;color:#718096;font-size:12px}.password-row{display:flex;gap:6px;margin-top:6px}.password-row input{margin-top:0!important;min-width:0;flex:1}.password-toggle{border:1px solid #ccd7e5;background:#edf3fb;color:#173b68;border-radius:9px;padding:0 12px;font-weight:700;cursor:pointer}.login-card .full{min-height:45px}


/* HARTRON Examination Portal: dedicated login landing page */
.login-hero{display:block;position:relative;isolation:isolate;overflow:hidden;min-height:calc(100vh - 150px);margin:0;padding:48px clamp(12px,3vw,38px) 58px;border:1px solid #d8e5f4;border-radius:26px;background:radial-gradient(ellipse at 12% 15%,rgba(104,164,226,.22),transparent 34%),radial-gradient(ellipse at 88% 82%,rgba(38,104,174,.18),transparent 32%),linear-gradient(135deg,#f8fbff 0%,#eaf2fc 48%,#f7faff 100%);box-shadow:0 18px 55px rgba(19,54,94,.09)}
.login-hero:before,.login-hero:after{content:"";position:absolute;z-index:-1;pointer-events:none;border:1px solid rgba(44,103,166,.14);border-radius:50%}
.login-hero:before{width:390px;height:390px;right:-125px;top:-190px;box-shadow:0 0 0 28px rgba(44,103,166,.035),0 0 0 58px rgba(44,103,166,.025)}
.login-hero:after{width:300px;height:300px;left:-155px;bottom:-160px;box-shadow:0 0 0 25px rgba(44,103,166,.035),0 0 0 52px rgba(44,103,166,.025)}
.login-hero .hero-copy{text-align:center;padding:0 10px 32px}
.login-hero .hero-copy .eyebrow{display:inline-block;padding:7px 13px;border:1px solid #c9d9ed;border-radius:30px;background:#ffffffc7;color:#315f93}
.login-hero .hero-copy h1{margin:17px 0 9px;font-size:clamp(34px,5vw,54px);line-height:1.12;letter-spacing:-1.2px;color:#102b55}
.login-hero .hero-copy h1 em{display:inline;color:#2869ad}
.login-hero .hero-copy p{max-width:none;margin:0 auto;color:#5e718a;font-size:16px}
.login-hero .login-grid{position:relative;z-index:1;max-width:850px;margin:0 auto;gap:22px}
.login-hero .login-card{padding:27px 26px 24px;border:1px solid #d6e1ef;border-top:5px solid #1e5d9e;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 14px 34px rgba(18,52,91,.12);transition:transform .18s ease,box-shadow .18s ease}
.login-hero .login-card:hover{transform:translateY(-3px);box-shadow:0 19px 40px rgba(18,52,91,.16)}
.login-hero .admin-login-card{border-top-color:#48617f}
.login-hero .login-icon{width:52px;height:52px;border-radius:15px;background:#eaf2fc;font-size:25px}
.login-hero .login-card h2{font-size:22px;margin-bottom:17px}
.login-hero .login-subtitle{margin:-12px 0 15px;font-size:13px}
.login-hero .login-card label{font-size:13px;color:#304967}
.login-hero .login-card input:not([type=checkbox]){min-height:45px;border-color:#cbd8e8;background:#fbfdff}
.login-hero .login-card .primary{min-height:47px;margin-top:15px;font-size:15px;letter-spacing:.2px;background:#123b72}
.login-hero .login-card .primary:hover{background:#205a9c}
.login-hero .login-card .hint{line-height:1.55;margin:12px 0 0}
.login-hero .textbtn{padding:7px 2px}
@media(max-width:850px){.login-hero{min-height:unset;padding:40px 20px}.login-hero .login-grid{max-width:700px}}
@media(max-width:560px){.login-hero{padding:32px 12px 28px;border-radius:18px}.login-hero .hero-copy{padding-bottom:24px}.login-hero .hero-copy h1{font-size:35px}.login-hero .hero-copy p{font-size:14px}.login-hero .login-grid{grid-template-columns:1fr;gap:15px}.login-hero .login-card{padding:22px 19px}}


/* Final dedicated HARTRON login portal layout */
.login-portal{position:relative;isolation:isolate;overflow:hidden;min-height:calc(100vh - 150px);padding:34px 22px 26px;border:1px solid #d8e4f3;border-radius:26px;background:linear-gradient(140deg,#f7faff 0%,#e9f1fb 52%,#f8fbff 100%);box-shadow:0 18px 55px rgba(18,48,85,.09)}
.login-portal:before{content:"";position:absolute;z-index:-2;inset:0;background:repeating-linear-gradient(135deg,transparent 0 42px,rgba(46,100,157,.025) 43px 44px)}
.login-portal-glow{position:absolute;z-index:-1;border-radius:50%;pointer-events:none;filter:blur(2px)}
.glow-one{width:420px;height:420px;right:-160px;top:-210px;background:radial-gradient(circle,rgba(57,119,190,.17),transparent 68%)}
.glow-two{width:360px;height:360px;left:-170px;bottom:-190px;background:radial-gradient(circle,rgba(57,119,190,.13),transparent 70%)}
.portal-heading{text-align:center;margin:0 auto 30px;max-width:850px}
.portal-mark{width:56px;height:56px;display:grid;place-items:center;margin:0 auto 10px;border-radius:17px;background:linear-gradient(145deg,#123b72,#3478bb);border:3px solid #d7e7fa;color:#fff;font-size:31px;font-weight:900;box-shadow:0 8px 20px #123b7230}
.portal-kicker{font-size:10px;font-weight:850;letter-spacing:2.2px;color:#54769d}
.portal-heading h1{margin:9px 0 4px;color:#102b55;font-size:clamp(30px,4.8vw,50px);line-height:1.12;letter-spacing:-1.2px}
.portal-heading h1 span{display:block;color:#2869ad}
.portal-heading>p{margin:8px 0 12px;color:#61758f;font-size:16px;font-weight:600}
.portal-rule{display:flex;align-items:center;justify-content:center;gap:12px;color:#6683a4;font-size:9px;letter-spacing:2px}
.portal-rule span{width:55px;height:1px;background:#b8cbe1}
.portal-login-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:850px;margin:0 auto}
.portal-card{padding:26px 27px 22px;border:1px solid #d5e1ef;border-top:5px solid #1c5b9d;border-radius:19px;background:rgba(255,255,255,.97);box-shadow:0 15px 36px rgba(20,55,94,.12);transition:transform .2s ease,box-shadow .2s ease}
.portal-card:hover{transform:translateY(-3px);box-shadow:0 20px 42px rgba(20,55,94,.16)}
.portal-card.admin-login-card{border-top-color:#536d8c}
.portal-card-head{display:flex;align-items:center;gap:13px;margin-bottom:18px}
.portal-card-head .login-icon{flex:0 0 52px;width:52px;height:52px;margin:0;border-radius:15px;background:#eaf2fc;font-size:25px}
.portal-card-head .admin-icon{background:#eef1f6}
.portal-card-head h2{margin:0 0 3px;font-size:21px;color:#17385f}
.portal-card-head .login-subtitle{margin:0;color:#718198;font-size:12px}
.portal-card label{margin:13px 0;color:#314b69;font-size:13px;font-weight:700}
.portal-card input:not([type=checkbox]){min-height:46px;border:1px solid #cbd9e9;border-radius:10px;background:#fbfdff;padding:11px 13px;font-size:14px}
.portal-card input:focus{border-color:#3979b9;box-shadow:0 0 0 3px rgba(57,121,185,.13)}
.portal-card .password-row{gap:7px;margin-top:6px}
.portal-card .password-toggle{min-width:64px;border:1px solid #cbd9e9;background:#edf3fb;color:#214c7c}
.portal-login-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:49px;margin-top:17px;border-radius:10px;background:linear-gradient(100deg,#123b72,#2465a5);font-size:15px;box-shadow:0 6px 14px rgba(18,59,114,.18)}
.portal-login-button span{font-size:19px;line-height:1}
.portal-login-button.admin-button{background:linear-gradient(100deg,#344d6c,#536d8c)}
.portal-hint{margin:13px 0 0;line-height:1.6;color:#74849a}
.setup-link{display:block;margin:11px auto 0;padding:7px 10px;font-size:12px}
.portal-footnote{display:flex;align-items:center;justify-content:center;gap:8px;margin:24px auto 0;color:#627791;font-size:11px;text-align:center}
.shield-dot{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#e3f3eb;color:#177348;font-weight:900}
@media(max-width:700px){.login-portal{min-height:unset;padding:27px 12px 22px;border-radius:18px}.portal-heading{margin-bottom:22px}.portal-mark{width:49px;height:49px;font-size:27px}.portal-login-grid{grid-template-columns:1fr;max-width:460px;gap:15px}.portal-card{padding:22px 19px}.portal-card:hover{transform:none}.portal-heading h1{font-size:34px}.portal-heading>p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.portal-card{transition:none}}

/* Usability and accessibility refinements */
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #79a9df;outline-offset:2px}
button:disabled{opacity:.55;cursor:not-allowed}
.saved-action{background:#167347!important;color:#fff!important;box-shadow:0 0 0 3px #16734722}
.topright #connection{max-width:190px;text-align:right}
@media(max-width:560px){.top{height:auto;min-height:66px;gap:8px}.brand small{font-size:8px;letter-spacing:1px}.topright{font-size:10px}.wrap{min-height:calc(100vh - 130px)}.questionactions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.questionactions .spacer{display:none}.questionactions button{width:100%}.sectionnav{display:grid;grid-template-columns:1fr 1fr}.sectionnav #finalSubmit{grid-column:1/-1}.modalbox{padding:20px}}
