:root{
  --ink:#0C1B33; --ink-2:#33425E; --muted:#5A6678;
  --navy:#0E2A52; --navy-deep:#0A1F3E; --blue:#1B4E8F;
  --bg:#F2F6FC; --surface:#FFFFFF; --line:#E0E7F1; --ok:#1E8E3E; --warn:#B7791F;
  --r:14px; --shadow:0 1px 2px rgba(12,27,51,.05),0 8px 24px rgba(12,27,51,.06);
  --ff-d:"Saira",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --ff-b:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent} html,body{margin:0;padding:0}
body{font-family:var(--ff-b);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block}
input{font-family:inherit;font-size:16px}
.wrap{max-width:560px;margin:0 auto;min-height:100dvh;padding:0 14px calc(28px + var(--sab))}

/* login */
.login{position:fixed;inset:0;display:grid;place-items:center;background:linear-gradient(150deg,#13294D,#0C1B33 60%,#081427);padding:20px}
.login-card{width:100%;max-width:360px;background:var(--surface);border-radius:18px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}
.login-card img{height:40px;margin:0 auto 14px}
.login-card h1{font-family:var(--ff-d);font-size:22px;margin:0 0 2px}
.login-sub{color:var(--muted);font-size:13px;margin:0 0 18px}
.field{text-align:left;margin-bottom:12px}
.field label{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:5px}
.field input{width:100%;height:44px;padding:0 12px;border:1.5px solid var(--line);border-radius:10px}
.field input:focus{outline:0;border-color:var(--navy)}
.err{color:#C1272D;font-size:12.5px;min-height:16px;margin:8px 0 0}
.mode{color:var(--muted);font-size:11.5px;margin-top:10px;line-height:1.4}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 16px;border-radius:12px;font-weight:700;background:var(--navy);color:#fff;width:100%;transition:transform .08s,filter .15s}
.btn:hover{filter:brightness(1.06)} .btn:active{transform:scale(.98)}
.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.btn.ok{background:var(--ok)} .btn.ghost{background:var(--surface);color:var(--ink);border:1.5px solid var(--line)}
.btn.sm{height:38px;font-size:13px;width:auto;padding:0 14px}
.btn[disabled]{opacity:.5;pointer-events:none}
.btn svg{width:17px;height:17px}

/* top bar */
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;height:calc(58px + var(--sat));padding-top:var(--sat);background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);margin:0 -14px;padding-left:16px;padding-right:16px}
.top img{height:26px} .top .sp{flex:1} .who{font-size:12px;color:var(--muted)}
h2.hd{font-family:var(--ff-d);font-size:20px;margin:18px 0 2px}
.lead{color:var(--muted);font-size:13.5px;margin:0 0 14px}

/* job card */
.job{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:12px;box-shadow:var(--shadow)}
.job .r1{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.job h3{font-family:var(--ff-d);font-size:16px;margin:0}
.job .ref{font-size:11px;color:var(--muted);margin-top:1px}
.job .meta{font-size:13px;color:var(--ink-2);margin:7px 0 0;line-height:1.5}
.badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:#E9EFF8;color:var(--navy);white-space:nowrap}
.badge.go{background:#E6F4EA;color:var(--ok)} .badge.warn{background:#FBF3E2;color:var(--warn)}
.chips{display:flex;gap:8px;margin-top:11px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:600}
.chip svg{width:15px;height:15px;color:var(--navy)}
.acts{margin-top:12px}
.empty{background:var(--surface);border:1px dashed var(--line);border-radius:var(--r);padding:26px;text-align:center;color:var(--muted)}

.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:11px 16px;border-radius:11px;font-size:13.5px;opacity:0;transition:.25s;z-index:50;pointer-events:none;box-shadow:var(--shadow)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
