:root{--ink:#172033;--muted:#697386;--line:#e7eaf0;--accent:#173f73;--gold:#c89b3c;--bg:#f5f7fb;--ok:#0a7a4b;--warn:#a46200}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--ink)}aside{position:fixed;left:0;top:0;bottom:0;width:220px;background:#0f284b;color:white;padding:24px 18px}.brand{font-weight:800;letter-spacing:1.1px;font-size:18px;margin-bottom:28px}.brand:after{content:"";display:block;width:38px;height:3px;background:var(--gold);margin-top:8px}nav{display:grid;gap:6px}nav a{padding:11px 12px;border-radius:8px;color:#cdd8e8}nav a.active,nav a:hover{background:#173f73;color:white}main{margin-left:220px;padding:30px;max-width:1500px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}h1{margin:0;font-size:28px}header p{margin:5px 0 0;color:var(--muted)}.pill{background:#eef2f8;border:1px solid #dce2ec;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}.card,.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 12px rgba(20,33,61,.04)}.card{padding:18px}.card span{display:block;color:var(--muted);font-size:13px}.card strong{display:block;font-size:30px;margin-top:8px}.card.warn{border-left:4px solid #d68a18}.panel{padding:20px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center}.panel-head span{color:var(--muted);font-size:13px}h2{font-size:18px;margin:0 0 14px}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.status{display:inline-block;background:#edf4ff;color:#1f4f91;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:700}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid2 .panel{margin-bottom:0}code{background:#f2f4f8;padding:8px 10px;border-radius:7px}.verify-page{display:grid;place-items:center;min-height:100vh}.verify-card{background:white;border:1px solid var(--line);border-radius:18px;width:min(92vw,460px);padding:34px;text-align:center;box-shadow:0 18px 60px rgba(21,35,62,.12)}.brand.dark{color:#173f73}.avatar{width:90px;height:90px;border-radius:50%;background:#eaf0f8;margin:20px auto;display:grid;place-items:center;font-size:30px;font-weight:800;color:#173f73}.valid{display:inline-block;background:#e7f7ef;color:var(--ok);padding:8px 15px;border-radius:999px;font-weight:800}.valid.bad{background:#fdecec;color:#9f2f2f}.small{font-size:12px;color:var(--muted);line-height:1.5;margin-top:20px}@media(max-width:1000px){aside{display:none}main{margin:0}.cards{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}}@media(max-width:600px){main{padding:16px}.cards{grid-template-columns:1fr 1fr}.card strong{font-size:24px}table{font-size:12px}}
.loginbody{display:grid;place-items:center;min-height:100vh;background:#f3f5f7}.loginbox{width:min(420px,90vw);background:white;padding:34px;border-radius:14px;box-shadow:0 10px 35px #0002}.loginbox form{display:grid;gap:10px}.loginbox input{padding:12px;border:1px solid #ccd3da;border-radius:8px}.loginbox button{padding:12px;border:0;border-radius:8px;background:#0d2d4d;color:#fff;font-weight:700;margin-top:8px}.error{background:#fee;padding:10px;border-radius:8px;color:#900}header a{margin-left:12px;color:#53677a}td small{color:#657786}
.actions{margin:0 0 18px}.gridform{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end}.stackform{display:grid;gap:10px}.inline{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.inline input,.inline select{min-width:120px}.secondary{background:#334155}.danger{background:#991b1b}.publicbody{background:#f4f6f8;display:flex;justify-content:center;padding:40px 18px}.publicbox{background:white;max-width:720px;width:100%;padding:28px;border-radius:14px;box-shadow:0 12px 36px #0001}.publicbox form{display:grid;gap:10px}.publicbox input,.publicbox select,.publicbox textarea,.gridform input,.gridform select,.stackform input,.stackform select,.stackform textarea,.inline input,.inline select{padding:10px;border:1px solid #cbd5e1;border-radius:8px}.success{padding:12px;background:#dcfce7;border-radius:8px}.panel small{color:#64748b}
button{padding:10px 14px;border:0;border-radius:8px;background:#173f73;color:#fff;font-weight:700;cursor:pointer}button:disabled{opacity:.6;cursor:wait}textarea{min-height:90px}.shift-card h3{margin:4px 0 8px;font-size:15px}.compact{margin-top:14px}.training-content,.document-body{white-space:pre-wrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:14px;margin:12px 0;line-height:1.55}.id-wrap{display:grid;place-items:center}.id-card{width:min(420px,94vw);background:white;border:1px solid var(--line);border-radius:20px;padding:30px;text-align:center;box-shadow:0 18px 60px rgba(21,35,62,.12)}.qr{display:block;width:170px;height:170px;margin:18px auto 4px;border:8px solid white}.shift-card form{margin:4px 0}
/* v0.6 mobile/PWA additions */
.kv{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:10px 18px;margin-top:16px}.kv span{color:#64748b}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.tablewrap{overflow:auto}.btn{display:inline-block;text-decoration:none;padding:8px 12px;border-radius:8px;background:#17324d;color:#fff}.small{font-size:.85rem;padding:6px 10px}textarea{min-height:88px}
@media(max-width:760px){aside{position:relative;width:auto;min-height:auto}body{display:block}aside nav{display:flex;overflow-x:auto;gap:6px;padding-bottom:8px}aside nav a{white-space:nowrap}main{margin-left:0;padding:14px}header{align-items:flex-start;gap:8px}.grid2{grid-template-columns:1fr}.card{padding:14px}.kv{grid-template-columns:1fr 1fr}table{min-width:680px}}

.override-hours { width: 70px; }
