:root{--navy:#3b1585;--navy2:#6a3fc9;--gold:#d4a52c;--gold2:#f0cf6a;--cream:#faf7f0;--ink:#1b2333;--muted:#5b6475;--line:#e4dcef;--bg:#f5f2fa;--ok:#1d7a46;--bad:#b42318;--warn:#a15c07}
*{box-sizing:border-box}[hidden]{display:none!important}
html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 "Segoe UI",system-ui,-apple-system,Arial,sans-serif}
a{color:var(--navy)}button,input,select,textarea{font:inherit;color:inherit}
.wrap{max-width:1200px;margin:0 auto;padding:24px 20px 60px}.wrap.narrow{max-width:760px}
.muted{color:var(--muted)}.tiny{font-size:12.5px}.r{text-align:right}
.h1{font:600 26px/1.25 Georgia,serif;color:var(--navy);margin:6px 0 6px}.h2{font:600 19px/1.3 Georgia,serif;color:var(--navy);margin:26px 0 10px}
h3{font:600 16px/1.3 Georgia,serif;color:var(--navy);margin:0 0 10px}
/* bar */
.bar{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;position:sticky;top:0;z-index:10;box-shadow:0 2px 12px rgba(0,0,0,.15)}
.bar-in{display:flex;align-items:center;gap:16px;padding-top:10px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}
.brand img{height:40px;border-radius:4px;background:#fff}
.brand b{display:block;font:600 17px/1.2 Georgia,serif}.brand small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold2)}
.bar-r{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.who{font-weight:600}.who small{color:var(--gold2);margin-left:6px}
.anav{display:flex;gap:4px;flex-wrap:wrap}.anav a{color:#dfe5ef;text-decoration:none;padding:7px 12px;border-radius:999px;font-weight:600;font-size:14px}
.anav a.on,.anav a:hover{background:rgba(255,255,255,.12);color:#fff}.anav a.on{background:linear-gradient(135deg,var(--gold2),var(--gold));color:var(--navy)}
.bar .btn.line{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
/* buttons */
.btn{border:1px solid transparent;border-radius:10px;padding:10px 18px;font-weight:700;cursor:pointer;font-size:14.5px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;line-height:1.2}
.btn.gold{background:linear-gradient(135deg,var(--gold2),var(--gold));color:var(--navy)}.btn.navy{background:var(--navy);color:#fff}
.btn.line{background:#fff;border-color:#cfc8b8;color:var(--navy)}.btn.danger{background:#fff;border-color:#e9b8b3;color:var(--bad)}
.btn.sm{padding:6px 11px;font-size:13px;border-radius:8px}.btn.big{padding:14px 26px;font-size:16px}.btn.block{width:100%}
.btn:disabled{opacity:.45;cursor:default}
.row-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}form.inl{display:inline}
/* cards & forms */
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 4px 18px rgba(59,21,133,.05)}
.card.empty{text-align:center;color:var(--muted);padding:40px}
label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:12px}
input,select,textarea{width:100%;margin-top:4px;padding:10px 12px;border:1px solid #d6d0c2;border-radius:9px;background:#fff;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.18)}
input[type=checkbox],input[type=radio]{width:auto;margin:0}input[type=file]{width:auto;border:0;padding:0}
.check{display:flex;gap:10px;align-items:flex-start;color:var(--ink);font-weight:500;font-size:14px}.check input{margin-top:3px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.cols .wide{grid-column:1/-1}
.checks{margin:6px 0 4px}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.titlebar{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.flash{max-width:1160px;margin:14px auto 0;padding:12px 16px;border-radius:10px;background:#e3f3ea;color:var(--ok);font-weight:600;border:1px solid #b7dfc6}
.flash.err{background:#fde8e6;color:var(--bad);border-color:#f2c0ba}.flash.static{margin:10px 0}
code{background:var(--cream);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:13px}
/* login */
.login-page{background:radial-gradient(ellipse at top,#5b2bb5,var(--navy) 60%)}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{background:#fff;border-radius:18px;padding:30px 28px;width:min(400px,100%);box-shadow:0 30px 70px rgba(0,0,0,.35);border-top:5px solid var(--gold)}
.login-logo{height:58px;display:block;margin:0 auto 10px}.login-card h1{font:600 22px/1.3 Georgia,serif;color:var(--navy);text-align:center;margin:0 0 4px}
.login-card>p{text-align:center;margin:0 0 18px}.login-page .flash{max-width:400px}
/* student */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:18px}
.pill{display:inline-block;background:#f6eed3;color:#7a5d0c;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.04em}
.exam-card h2{font:600 19px/1.3 Georgia,serif;color:var(--navy);margin:10px 0 6px}
.facts{list-style:none;padding:0;margin:8px 0 14px;display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted)}.facts b{color:var(--navy)}.facts.big{font-size:16px}
.res{font-weight:700;color:var(--muted)}.res.pass{color:var(--ok)}.res.fail{color:var(--bad)}
.rules{padding-left:20px}.rules li{margin-bottom:6px}
/* exam screen */
.exam-page{background:#eef0f4;user-select:none;-webkit-user-select:none}
.xbar{position:sticky;top:0;z-index:5;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:12px}
.xbar-l{display:flex;align-items:center;gap:12px}.xbar img{height:36px;background:#fff;border-radius:4px}.xbar b{display:block}.xbar small{color:var(--gold2);font-size:12.5px}
.timer{font:700 26px/1 "Consolas",monospace;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);padding:8px 16px;border-radius:10px;min-width:110px;text-align:center}
.timer.warn{background:#a15c07;border-color:#a15c07}.timer.danger{background:var(--bad);border-color:var(--bad);animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.7}}
.xwrap{max-width:1200px;margin:0 auto;padding:20px;display:grid;grid-template-columns:1fr 290px;gap:20px;align-items:start}
.qpanel{background:#fff;border-radius:14px;padding:24px;border:1px solid var(--line);min-height:420px;display:flex;flex-direction:column}
.qhead{display:flex;justify-content:space-between;font-weight:700;color:var(--navy);border-bottom:2px solid var(--gold);padding-bottom:10px;margin-bottom:16px}
.qtext{font-size:18px;line-height:1.6;margin-bottom:18px;white-space:pre-wrap}
.opts{display:grid;gap:10px;margin-bottom:20px}
.opt{display:flex;gap:12px;align-items:center;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;color:var(--ink);font-weight:500;font-size:16px;margin:0;transition:.15s}
.opt:hover{border-color:var(--gold);background:#fffcf2}.opt.on{border-color:var(--navy);background:#f1ecfb}
.opt input{position:absolute;opacity:0}.opt b{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--cream);border:1px solid var(--line);color:var(--navy)}
.opt.on b{background:var(--navy);color:#fff;border-color:var(--navy)}
.qnav{margin-top:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.qnav #next{margin-left:auto}.qnav .review{margin:0}
.side .card{position:sticky;top:80px}
.palette{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}
.palette button{border:1px solid #cfc8b8;background:#fff;border-radius:8px;padding:8px 0;font-weight:700;cursor:pointer}
.palette button.ans{background:#1d7a46;color:#fff;border-color:#1d7a46}.palette button.rev{box-shadow:inset 0 0 0 3px #e6a700}
.palette button.cur{outline:2px solid var(--navy);outline-offset:2px}
.legend{list-style:none;padding:0;margin:0 0 10px;font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 14px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid #cfc8b8;margin-right:5px;vertical-align:-1px}.legend i.ans{background:#1d7a46;border-color:#1d7a46}.legend i.rev{box-shadow:inset 0 0 0 3px #e6a700}
.overlay{position:fixed;inset:0;background:rgba(59,21,133,.75);display:grid;place-items:center;z-index:50;padding:20px}
.ov-box{background:#fff;border-radius:16px;padding:26px;max-width:440px;text-align:center;border-top:5px solid var(--gold)}.ov-box h2{font:600 21px Georgia,serif;color:var(--navy);margin:0 0 8px}.ov-box .row-btns{justify-content:center}
/* result */
.result-card{border-top:6px solid var(--gold)}.result-card.pass{border-top-color:var(--ok)}.result-card.fail{border-top-color:var(--bad)}
.score{display:flex;gap:26px;align-items:center;margin:18px 0 6px;flex-wrap:wrap}
.ring{--p:0;width:140px;height:140px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ok) calc(var(--p)*1%),#eee 0);position:relative}
.fail .ring{background:conic-gradient(var(--bad) calc(var(--p)*1%),#eee 0)}
.ring:before{content:"";position:absolute;inset:14px;background:#fff;border-radius:50%}.ring b{position:relative;font:700 28px Georgia,serif;color:var(--navy)}
.verdict{font:600 20px/1.3 Georgia,serif;color:var(--navy);margin:0 0 8px}
/* admin */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:14px 0 6px}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;border-bottom:3px solid var(--gold)}.stat.live{border-bottom-color:var(--ok)}
.stat span{font-size:12.5px;color:var(--muted);font-weight:600}.stat b{display:block;font:700 24px/1.2 Georgia,serif;color:var(--navy);margin-top:3px}
.tablewrap{overflow-x:auto;border-radius:12px}
table.list{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);font-size:14px}
table.list th{background:var(--navy);color:#fff;text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:10px 12px;font-weight:600;white-space:nowrap}
table.list td{padding:9px 12px;border-top:1px solid var(--line);vertical-align:middle}
table.list tr.off td{color:#9aa1ad}table.list .acts{white-space:nowrap;text-align:right}table.list td.alert{color:var(--bad);font-weight:800}
.tag{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px;background:#eef1f6;color:var(--navy);white-space:nowrap}
.tag.pass{background:#e3f3ea;color:var(--ok)}.tag.fail{background:#fde8e6;color:var(--bad)}.tag.writing-now{background:#fdf0dc;color:var(--warn)}.tag.not-started{background:#eef1f6;color:var(--muted)}
.tabsrow{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 14px}.tabsrow a{padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);text-decoration:none;font-weight:600;font-size:14px}.tabsrow a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
details.import{margin-bottom:14px;padding:14px 20px}details.import summary{cursor:pointer;font-weight:700;color:var(--navy)}
.plain{padding-left:18px}
.sheet{padding-left:22px}.sheet>li{background:#fff;border:1px solid var(--line);border-left:5px solid #cfc8b8;border-radius:10px;padding:12px 16px;margin-bottom:10px}
.sheet>li.right{border-left-color:var(--ok)}.sheet>li.wrong{border-left-color:var(--bad)}.sheet>li p{margin:0 0 6px;font-weight:600}
.sheet ul{list-style:none;padding:0;margin:0}.sheet ul li{padding:3px 8px;border-radius:6px}.sheet ul li.correct{background:#e3f3ea}.sheet ul li.given:not(.correct){background:#fde8e6}.sheet em{color:var(--muted);font-size:12.5px}
/* login slips */
.slips-page{background:#fff}.tools{padding:14px;text-align:center}
.slips{display:grid;grid-template-columns:1fr 1fr;gap:10mm;padding:10mm;max-width:210mm;margin:0 auto}
.slip{border:1.5px dashed #9ca3af;border-radius:10px;padding:12px 14px;break-inside:avoid}.slip img{height:30px}.slip h4{margin:6px 0;font:600 14px Georgia,serif;color:var(--navy)}
.slip dl{display:grid;grid-template-columns:80px 1fr;margin:0;font-size:13.5px;gap:2px}.slip dt{color:var(--muted)}.slip dd{margin:0}.slip .pin{font:700 17px Consolas,monospace;letter-spacing:.1em}.slip p{font-size:12px;margin:6px 0 0;word-break:break-all}
.sheet .setans{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:13px;color:var(--muted)}.sheet .setans label{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:400;color:var(--muted)}.sheet .setans select{width:auto;min-width:130px;margin:0;padding:4px 8px;border:1px solid var(--line);border-radius:6px;font:inherit;color:var(--ink,#1b2333)}
/* score card */
.btn.wa{background:#25d366;color:#fff}.btn.wa:hover{background:#1ebe5b}
.sc-tools{margin-bottom:16px;padding:14px 16px}.sc-tools-row{display:flex;gap:8px;flex-wrap:wrap}
.sc-wa{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:12px}.sc-wa label{margin:0;flex:1 1 220px}.sc-wa input{width:100%;margin-top:4px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.sc-tools p{margin:8px 0 0}
.scorecard{background:#fff;border:1px solid var(--line);border-top:6px solid var(--gold);border-radius:14px;padding:26px 28px;box-shadow:0 4px 18px rgba(59,21,133,.06)}
.scorecard.pass{border-top-color:var(--ok)}.scorecard.fail{border-top-color:var(--bad)}
.sc-head{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:2px solid var(--navy)}
.sc-head img{height:54px}.sc-org{flex:1;min-width:0}.sc-org b{display:block;font:700 20px/1.2 Georgia,serif;color:var(--navy)}
.sc-org span{display:block;font-size:12.5px;color:var(--ink)}.sc-org small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#7a5d0c}
.sc-title{text-align:right;font:700 18px/1.2 Georgia,serif;color:var(--navy);text-transform:uppercase;letter-spacing:.06em}.sc-title small{display:block;font:600 11.5px "Segoe UI",sans-serif;color:var(--muted);letter-spacing:.04em;margin-top:4px}
.sc-info{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;margin:18px 0}
.sc-info dl{display:grid;grid-template-columns:96px 1fr;gap:6px 10px;margin:0;font-size:14px}.sc-info dt{color:var(--muted)}.sc-info dd{margin:0;font-weight:600;color:var(--navy)}
.sc-score{display:flex;align-items:center;gap:24px;padding:16px;background:var(--cream);border-radius:12px;margin-bottom:16px}
.sc-ring{flex:none;display:block}
.sc-marks span{display:block;font-size:13px;color:var(--muted)}.sc-marks b{display:block;font:700 34px/1.1 Georgia,serif;color:var(--navy);margin:2px 0 8px}.sc-marks b small{font-size:20px;color:var(--muted)}
.sc-marks .tag{font-style:normal;font-size:13px;font-weight:800;letter-spacing:.08em;padding:4px 14px}
.sc-table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:6px}.sc-table th,.sc-table td{border:1px solid var(--line);padding:7px 10px;text-align:left}
.sc-table th{background:#f8f6f0;color:var(--muted);font-weight:600;width:25%}.sc-table td{font-weight:600;color:var(--navy)}
.sc-topics th{width:auto}.sc-topics thead th{color:var(--navy)}.sc-topics td{font-weight:400;color:var(--ink)}.sc-topics .r{text-align:right}
.sc-h{margin:18px 0 8px}
.sc-foot{margin-top:20px;padding-top:12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted);text-align:center}.sc-foot p{margin:2px 0}
@media(max-width:600px){.scorecard{padding:18px 16px}.sc-head{flex-wrap:wrap}.sc-title{text-align:left;width:100%}.sc-info{grid-template-columns:1fr}.sc-score{flex-direction:column;text-align:center}.sc-table th,.sc-table td{padding:6px 7px;font-size:13px}}
@media print{.sc-page .wrap{padding:0;max-width:none}.scorecard{box-shadow:none;border-radius:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}.sc-score,.sc-table th,.tag{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4;margin:14mm}}
.btn.armed{background:#d4a52c!important;border-color:#d4a52c!important;color:#3b1585!important}
.sheet small.changed{display:block;margin-top:6px;color:#8a5a00;font-size:12.5px}
@media print{.noprint,.flash{display:none!important}.bar,.row-btns{display:none}body{background:#fff}}
@media(max-width:900px){.xwrap{grid-template-columns:1fr}.side .card{position:static}.stats{grid-template-columns:1fr 1fr}.two,.cols{grid-template-columns:1fr}.bar-in{flex-wrap:wrap}}
@media(max-width:560px){.qpanel{padding:16px}.qtext{font-size:16.5px}.opt{font-size:15px}.timer{font-size:20px;min-width:84px}.qnav .btn{flex:1}.qnav #next{margin-left:0}.slips{grid-template-columns:1fr}.xbar small{display:none}}
.login-sub{text-align:center;font:600 12px/1.4 'Segoe UI',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#c8102e;margin:-2px 0 10px}
.login-logo{height:auto;width:200px;max-width:80%}
.brand img{height:44px;padding:3px 6px}
/* ================= HRMS additions ================= */
.anav{margin-left:14px}.anav a i{font-style:normal;background:#c8102e;color:#fff;border-radius:999px;padding:0 6px;font-size:11px;margin-left:3px}
.bar-in{flex-wrap:wrap}.wrap.bar-in{padding-bottom:10px}
.h1 small{font:400 15px "Segoe UI",sans-serif}
.login-help{padding-left:18px;margin:14px 0 0}.login-help li{margin-bottom:4px}
.stat em{display:block;font-style:normal;font-size:12px;color:var(--muted);margin-top:2px}.stat b small{font-size:15px;color:var(--muted)}.stat.warn{border-bottom-color:#e6a700}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px}
.card .li{margin:0 0 8px}
table.mini{width:100%;border-collapse:collapse;margin-bottom:12px;font-size:14px}table.mini td,table.mini th{padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:middle;text-align:left}table.mini th{font-size:12px;color:var(--muted)}
table.mini input{margin:0;padding:6px 8px}table.mini input.xs{width:70px}table.mini .r{text-align:right}
.hbar{display:grid;grid-template-columns:160px 1fr 30px;align-items:center;gap:10px;margin-bottom:8px;font-size:14px}.hbar i{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--navy),#8b5fd6)}.hbar b{text-align:right;color:var(--navy)}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:12px 14px;margin-bottom:14px}.filters input,.filters select{margin:0;width:auto;flex:1 1 180px}.filters .btn{flex:none}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}.cols3 .span2{grid-column:span 2}.cols3 .span3{grid-column:1/-1}
form.card h3{margin-top:8px;padding-top:4px}form.card h3~h3{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.addrow{display:flex;gap:8px}.addrow input{margin:0}
.linkbtn{background:none;border:0;color:var(--navy);text-decoration:underline;cursor:pointer;padding:0 3px;font-size:inherit}
.bad{color:var(--bad)}td.b,.b{font-weight:700}
.dateinp{width:auto;margin:0;padding:8px 10px}
table.list td input,table.list td select{margin:0;padding:6px 8px}table.list td input[type=time]{width:120px}
table.list tr.r-P td:first-child{box-shadow:inset 4px 0 0 var(--ok)}table.list tr.r-A td:first-child{box-shadow:inset 4px 0 0 var(--bad)}table.list tr.r-H td:first-child{box-shadow:inset 4px 0 0 #e6a700}
table.list tr.r-L td:first-child{box-shadow:inset 4px 0 0 #3b82f6}table.list tr.r-W td:first-child{box-shadow:inset 4px 0 0 #8b5fd6}
.att{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:5px;font-size:11.5px;font-weight:800;background:#eef1f6;color:var(--muted)}
.att.a-P{background:#e3f3ea;color:var(--ok)}.att.a-A{background:#fde8e6;color:var(--bad)}.att.a-H{background:#fdf0dc;color:var(--warn)}.att.a-L{background:#e0ecff;color:#1d4ed8}.att.a-W{background:#efe6fa;color:#5b2a9a}.att.a-sun{background:#f3f1ec;color:#b3ab98}.att.a-none{background:transparent;color:#c9c3b5}
.legend-att{font-size:13px;color:var(--muted)}a .att{text-decoration:none}
table.reg{font-size:12.5px}table.reg th{padding:6px 3px;text-align:center;font-size:11px;letter-spacing:0}table.reg th.sun{background:#6a3fc9}table.reg th small{font-weight:400;opacity:.75}
table.reg td{padding:4px 2px}table.reg td.c{text-align:center}table.reg td.nm{white-space:nowrap;padding:4px 10px;position:sticky;left:0;background:#fff}
table.list.pay td,table.list.pay th{padding:8px 8px}table.list.pay td.net{color:var(--ok)}table.list tr.tot td{background:var(--cream);font-weight:800;color:var(--navy)}
.runbox{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}.runbox .check{margin:6px 0 0}
.decide{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-bottom:6px}.decide input{width:150px;margin:0;padding:6px 8px}
.pipe{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:6px 0 4px}.pipe a{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;text-decoration:none;text-align:center;border-top:4px solid #cfc8b8}
.pipe a b{display:block;font:700 24px Georgia,serif;color:var(--navy)}.pipe a span{font-size:13px;color:var(--muted);font-weight:600}
.st-applied{border-top-color:#94a3b8!important}.st-screening{border-top-color:#3b82f6!important}.st-interview{border-top-color:#e6a700!important}.st-offered{border-top-color:#8b5fd6!important}.st-hired{border-top-color:var(--ok)!important}.st-rejected{border-top-color:var(--bad)!important}
select.stagesel{width:auto;font-weight:700;border-left:5px solid #94a3b8}select.stagesel.st-screening{border-left-color:#3b82f6}select.stagesel.st-interview{border-left-color:#e6a700}select.stagesel.st-offered{border-left-color:#8b5fd6}select.stagesel.st-hired{border-left-color:var(--ok)}select.stagesel.st-rejected{border-left-color:var(--bad)}
.card.job h2{font:600 19px/1.3 Georgia,serif;color:var(--navy);margin:10px 0 6px}.card.job.off{opacity:.6}
.punch .btn.big{margin-top:10px}
.minis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;text-align:center}.minis div{background:var(--cream);border-radius:10px;padding:12px 4px}.minis b{display:block;font:700 24px Georgia,serif;color:var(--navy)}.minis span{font-size:12.5px;color:var(--muted)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:14px}.cal>b{text-align:center;font-size:12px;color:var(--muted);text-transform:uppercase}
.cal>span{min-height:74px;border:1px solid var(--line);border-radius:9px;padding:6px 7px;font-size:12px;background:#fff}.cal>span:empty{border:0;background:none}.cal i{font-style:normal;font-weight:800;color:var(--navy);display:block}.cal small{color:var(--muted);line-height:1.3;display:block;margin-top:3px}
.cal .c-P{background:#eef8f2}.cal .c-A{background:#fdeeed}.cal .c-H{background:#fdf5e6}.cal .c-L{background:#ecf2ff}.cal .c-W{background:#f4edfb}.cal .c-sun{background:#f6f4ef}.cal .today{outline:2px solid var(--gold)}
.dl{display:grid;grid-template-columns:140px 1fr;gap:8px 12px;margin:0 0 10px;font-size:14px}.dl dt{color:var(--muted)}.dl dd{margin:0;font-weight:600;color:var(--navy)}
/* payslip */
.slip-page{background:#eef0f4}.slip-page .tools{padding:16px;text-align:center}
.payslip{background:#fff;max-width:800px;margin:0 auto 24px;padding:28px 30px;border:1px solid var(--line);border-top:6px solid var(--gold);border-radius:12px;break-after:page}
.ps-head{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:2px solid var(--navy)}.ps-head img{height:52px}
.ps-org{flex:1}.ps-org b{display:block;font:700 19px/1.2 Georgia,serif;color:var(--navy)}.ps-org span{font-size:12.5px;color:var(--muted)}
.ps-title{text-align:right;font:700 20px Georgia,serif;color:var(--navy);text-transform:uppercase;letter-spacing:.08em}.ps-title small{display:block;font:600 13px "Segoe UI",sans-serif;color:#7a5d0c;letter-spacing:.04em;text-transform:none}
.ps-info{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;margin:16px 0}.ps-info dl{display:grid;grid-template-columns:120px 1fr;gap:5px 10px;margin:0;font-size:13.5px}.ps-info dt{color:var(--muted)}.ps-info dd{margin:0;font-weight:600;color:var(--navy)}
.ps-table{width:100%;border-collapse:collapse;font-size:13.5px}.ps-table th,.ps-table td{border:1px solid var(--line);padding:7px 10px;text-align:left}.ps-table th{background:var(--navy);color:#fff;font-weight:600;font-size:12.5px}
.ps-table .r{text-align:right}.ps-table tr.tot td{background:var(--cream);font-weight:800;color:var(--navy)}
.ps-net{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:16px 0 6px;padding:14px 16px;background:var(--cream);border-radius:10px}.ps-net span{font-weight:700;color:var(--muted)}.ps-net b{font:700 26px Georgia,serif;color:var(--ok)}.ps-net em{font-size:13px;color:var(--ink)}
.ps-foot{font-size:11.5px;color:var(--muted);text-align:center;margin:14px 0 0}
@media print{.slip-page{background:#fff}.payslip{border-radius:0;margin:0 auto;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.ps-table th,.ps-net,.ps-table tr.tot td{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4;margin:12mm}.tablewrap{overflow:visible}}
@media(max-width:900px){.three,.cols3{grid-template-columns:1fr}.cols3 .span2{grid-column:auto}.pipe{grid-template-columns:repeat(3,1fr)}.anav{margin-left:0;width:100%;order:3}.minis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.ps-info{grid-template-columns:1fr}.payslip{padding:18px 14px}.cal>span{min-height:54px;font-size:10.5px;padding:4px}.cal small{display:none}.hbar{grid-template-columns:110px 1fr 26px}.stats{grid-template-columns:1fr 1fr}}

/* ================= HMS additions ================= */
main.wrap{padding-top:18px}
.bar .anav{width:100%;order:3;margin:6px 0 0}.bar .anav a{font-size:13.5px;padding:6px 11px}
.who small{display:block;margin:0;font-weight:500;font-size:11.5px}.who{line-height:1.2;text-align:right}
.foot{text-align:center;color:var(--muted);font-size:12.5px;padding:0 20px 30px}
.tag.ok{background:#e3f3ea;color:var(--ok)}.tag.bad{background:#fde8e6;color:var(--bad)}.tag.warn{background:#fdf0dc;color:var(--warn)}.tag.info{background:#e0ecff;color:#1d4ed8}
.tri{display:inline-block;font-size:11px;font-weight:800;padding:2px 8px;border-radius:5px;color:#fff;letter-spacing:.04em}.tri-red{background:#c8102e}.tri-yellow{background:#e6a700;color:#3a2a00}.tri-green{background:#1d7a46}
.stats.five{grid-template-columns:repeat(5,1fr)}.stat a{text-decoration:none}
.qlinks{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 6px}
.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;margin:0;font-size:14px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600;color:var(--navy)}
.pthead{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.pthead .av{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;display:grid;place-items:center;font:700 22px Georgia,serif;flex:none}
.pthead h1{margin:0}.pthead .meta{color:var(--muted);font-size:14px}.pthead .meta b{color:var(--navy)}.pthead .acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.allergy{background:#fde8e6;color:var(--bad);border:1px solid #f2c0ba;border-radius:8px;padding:6px 12px;font-weight:700;font-size:13.5px;display:inline-block}
.timeline{list-style:none;padding:0;margin:0}.timeline li{border-left:3px solid var(--line);padding:4px 0 14px 16px;position:relative}.timeline li:before{content:"";position:absolute;left:-7px;top:8px;width:11px;height:11px;border-radius:50%;background:var(--gold)}
.timeline li b{color:var(--navy)}.timeline li small{color:var(--muted);display:block}
.beds{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:22px}
.bed{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;border-left:6px solid #9ca3af;font-size:13px;min-height:86px;text-decoration:none;color:var(--ink);display:block}
.bed b{display:block;color:var(--navy);font-size:14.5px}.bed.st-free{border-left-color:var(--ok)}.bed.st-occupied{border-left-color:var(--bad);background:#fffafa}.bed.st-cleaning{border-left-color:#e6a700;background:#fffcf3}.bed.st-blocked{border-left-color:#6b7280;background:#f5f5f5}
.bed small{display:block;color:var(--muted)}a.bed:hover{box-shadow:0 4px 14px rgba(59,21,133,.12)}
.wardhead{display:flex;justify-content:space-between;align-items:baseline;margin:18px 0 8px}.wardhead h3{margin:0}
.legend2{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:4px 0 12px}.legend2 i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.rxrow{display:grid;grid-template-columns:1.9fr .8fr 1fr .6fr 1.1fr 1.1fr 22px;gap:8px;align-items:end;margin-bottom:6px}.rxrow input,.rxrow select{margin:0;min-width:0}.rxrow select{padding-left:6px;padding-right:2px}
.rxhead{font-size:12px;color:var(--muted);font-weight:700}
.testpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 14px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:6px 0 10px}
.testpick label{display:flex;gap:8px;align-items:center;margin:0;font-weight:500;color:var(--ink);font-size:13.5px}.testpick label small{margin-left:auto;color:var(--muted)}
.vitals{display:grid;grid-template-columns:repeat(5,1fr);gap:0 12px}
.flagH{color:var(--bad);font-weight:800}.flagL{color:#1d4ed8;font-weight:800}
.totals{max-width:380px;margin-left:auto}.totals td{padding:5px 8px}.totals tr.big td{font:700 18px Georgia,serif;color:var(--navy);border-top:2px solid var(--navy)}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.inline-form label{margin:0;flex:1 1 140px}.inline-form .btn{flex:none}
.sidebox{position:sticky;top:120px}
.grid2{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;align-items:start}
.empty-note{color:var(--muted);font-style:italic;padding:8px 0}
.queue td.tok{font:700 20px Georgia,serif;color:var(--navy);width:56px;text-align:center}
.chk-list label{display:flex;gap:8px;align-items:center;font-weight:500;color:var(--ink)}
.roster td.c{text-align:center;padding:4px 2px}.roster select{width:auto;padding:3px 4px;margin:0;font-size:12.5px}
.sh{display:inline-block;width:24px;text-align:center;font-weight:800;font-size:11.5px;border-radius:5px;padding:2px 0}.sh-M{background:#e0ecff;color:#1d4ed8}.sh-E{background:#fdf0dc;color:var(--warn)}.sh-N{background:#2a1460;color:#fff}.sh-G{background:#e3f3ea;color:var(--ok)}.sh-O{background:#f1f1f1;color:#9ca3af}
.bars{display:flex;align-items:flex-end;gap:4px;height:160px;padding:10px 0 0;border-bottom:1px solid var(--line)}.bars div{flex:1;background:linear-gradient(180deg,var(--navy2),var(--navy));border-radius:4px 4px 0 0;position:relative;min-width:6px}
.bars div span{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted)}.bars-wrap{padding-bottom:24px}
.demo-box{margin-top:16px;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:13px}.demo-box code{font-size:12.5px}
/* printed documents */
.doc-page{background:#eef0f4}.doc{background:#fff;max-width:820px;margin:0 auto 24px;padding:26px 30px;border:1px solid var(--line);border-top:6px solid var(--gold);border-radius:12px}
.doc-head{display:flex;align-items:center;gap:14px;padding-bottom:12px;border-bottom:2px solid var(--navy)}.doc-head img{height:60px}
.doc-org{flex:1}.doc-org b{display:block;font:700 21px/1.2 Georgia,serif;color:var(--navy)}.doc-org span{display:block;font-size:12.5px;color:var(--muted)}
.doc-title{text-align:right;font:700 17px Georgia,serif;color:var(--navy);text-transform:uppercase;letter-spacing:.06em}.doc-title small{display:block;font:600 12.5px "Segoe UI",sans-serif;color:#7a5d0c;text-transform:none;letter-spacing:0}
.doc-info{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;margin:14px 0;font-size:13.5px}.doc-info div{display:grid;grid-template-columns:110px 1fr;gap:4px 8px}.doc-info span{color:var(--muted)}.doc-info b{color:var(--navy)}
.doc table.ps-table{margin:8px 0}.doc h4{font:600 15px Georgia,serif;color:var(--navy);margin:16px 0 6px;border-bottom:1px solid var(--line);padding-bottom:4px}
.doc .sign{display:flex;justify-content:space-between;margin-top:40px;font-size:13px;color:var(--muted)}.doc .sign div{border-top:1px solid #9ca3af;padding-top:4px;min-width:180px;text-align:center}
.doc .rxsym{font:700 30px Georgia,serif;color:var(--navy)}.doc pre{white-space:pre-wrap;font:inherit;margin:0}
.doc-foot{font-size:11.5px;color:var(--muted);text-align:center;margin-top:16px;border-top:1px solid var(--line);padding-top:8px}
@media print{.doc-page{background:#fff}.doc{border-radius:0;margin:0 auto;border:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}.ps-table th,.ps-table tr.tot td{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4;margin:12mm}main.wrap{padding:0;max-width:none}}
@media(max-width:1000px){.stats.five{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:1fr}.vitals{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.rxrow{grid-template-columns:1fr 1fr}.rxhead{display:none}.doc-info{grid-template-columns:1fr}.doc{padding:18px 14px}.stats.five{grid-template-columns:1fr 1fr}.kv{grid-template-columns:110px 1fr}.who{display:none}}
.filters select,.filters input{min-width:0;max-width:100%}.pipe.five{grid-template-columns:repeat(5,1fr)}@media(max-width:700px){.pipe.five{grid-template-columns:repeat(3,1fr)}.titlebar .qlinks{width:100%}}
