/* Merci HRMS — design system (day/night via CSS variables). Bootstrap-neutral. */
:root{
  --bg:#f4f6fb; --bg2:#ffffff; --card:#ffffff; --ink:#1f2937; --muted:#6b7280;
  --line:#e5e7eb; --brand:#0d3b66; --brand2:#1d6fb8; --accent:#f4a300;
  --good:#16a34a; --good-bg:#dcfce7; --warn:#d97706; --warn-bg:#fef3c7;
  --bad:#dc2626; --bad-bg:#fee2e2; --info:#2563eb; --info-bg:#dbeafe;
  --shadow:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.06);
  --radius:14px; --nav:#0d3b66; --nav-ink:#eaf2fb;
}
[data-theme="dark"]{
  --bg:#0b1220; --bg2:#111a2b; --card:#141f34; --ink:#e5edf7; --muted:#93a4bd;
  --line:#243449; --brand:#4f9fe0; --brand2:#6bb3ea; --accent:#f4a300;
  --good:#4ade80; --good-bg:#062e1a; --warn:#fbbf24; --warn-bg:#3a2b06;
  --bad:#f87171; --bad-bg:#3a1113; --info:#60a5fa; --info-bg:#0c2748;
  --shadow:0 1px 3px rgba(0,0,0,.4); --nav:#0a1424; --nav-ink:#cfe0f5;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--brand2);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{color:var(--ink);margin:.2em 0 .5em;line-height:1.2}
.container{max-width:1200px;margin:0 auto;padding:0 18px}
.muted{color:var(--muted)}
.small{font-size:12.5px}
img{max-width:100%}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;border:1px solid transparent;background:var(--brand);color:#fff;padding:10px 16px;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:.15s;line-height:1;min-height:40px}
.btn:hover{filter:brightness(1.07);text-decoration:none}
.btn:disabled,.btn.is-busy{opacity:.65;cursor:not-allowed}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-accent{background:var(--accent);color:#0d0d0d}
.btn-good{background:var(--good);color:#fff}
.btn-bad{background:var(--bad);color:#fff}
.btn-sm{padding:6px 11px;min-height:32px;font-size:13px;border-radius:8px}
.btn-block{width:100%}

/* cards & layout */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-p{padding:18px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.g2,.g3,.g4{grid-template-columns:1fr}}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.spread{justify-content:space-between}

/* stat tiles */
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.stat .k{font-size:12.5px;color:var(--muted);font-weight:600;letter-spacing:.02em;text-transform:uppercase}
.stat .v{font-size:26px;font-weight:800;margin-top:6px;color:var(--ink)}
.stat .d{font-size:12.5px;color:var(--muted);margin-top:2px}

/* forms */
label{display:block;font-weight:600;font-size:13px;margin:0 0 5px;color:var(--ink)}
input,select,textarea{width:100%;background:var(--bg2);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:15px;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand2);outline-offset:-1px;border-color:var(--brand2)}
.field{margin-bottom:14px}
.help{font-size:12px;color:var(--muted);margin-top:4px}

/* tables */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
table.tbl{width:100%;border-collapse:collapse;min-width:640px}
table.tbl th,table.tbl td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);font-size:14px;white-space:nowrap}
table.tbl th{background:var(--bg2);font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);position:sticky;top:0}
table.tbl tr:last-child td{border-bottom:none}
table.tbl tbody tr:hover{background:color-mix(in srgb,var(--brand2) 6%,transparent)}

/* pills */
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.5}
.pill.good{background:var(--good-bg);color:var(--good)}
.pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.bad{background:var(--bad-bg);color:var(--bad)}
.pill.info{background:var(--info-bg);color:var(--info)}
.pill.mut{background:var(--line);color:var(--muted)}

/* toast + modal */
#toastwrap{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:92vw}
.toast{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand2);border-radius:10px;box-shadow:var(--shadow);padding:12px 16px;min-width:240px;animation:slidein .2s}
.toast.good{border-left-color:var(--good)} .toast.bad{border-left-color:var(--bad)} .toast.warn{border-left-color:var(--warn)}
@keyframes slidein{from{transform:translateX(20px);opacity:0}to{transform:none;opacity:1}}
.modal-back{position:fixed;inset:0;background:rgba(6,12,22,.55);backdrop-filter:blur(2px);z-index:9998;display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.35);max-width:440px;width:100%;padding:24px;animation:pop .18s}
@keyframes pop{from{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}
.modal h3{margin-top:0}
.modal .modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}

/* theme toggle */
.theme-toggle{background:transparent;border:1px solid var(--line);color:inherit;border-radius:9px;width:38px;height:38px;cursor:pointer;font-size:16px;display:inline-flex;align-items:center;justify-content:center}

/* section + spacing utils */
.mt{margin-top:16px}.mt2{margin-top:24px}.mb{margin-bottom:16px}
.center{text-align:center}.right{text-align:right}
.section{padding:56px 0}
.empty{padding:44px 16px;text-align:center;color:var(--muted)}
