:root{--brand:#17633a;--brand-dark:#124e2f;--gold:#c9a227;--line:#e2e8f0}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
.card{background:#fff;border:1px solid var(--line);border-radius:.75rem;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#475569;margin-bottom:.35rem}
.input{width:100%;border:1px solid #cbd5e1;border-radius:.5rem;padding:.6rem .75rem;background:#fff;font-size:.9rem;color:#0f172a}
.input:focus{outline:2px solid var(--brand);border-color:var(--brand)}
.input:disabled{background:#f1f5f9;color:#64748b}
.input.invalid{border-color:#b91c1c}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:.5rem;padding:.55rem 1rem;font-size:.875rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .15s;text-decoration:none}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover:not(:disabled){background:var(--brand-dark)}
.btn-ghost{background:#fff;border-color:#cbd5e1;color:#334155}
.btn-ghost:hover:not(:disabled){background:#f8fafc}
.btn-danger{background:#b91c1c;color:#fff}
.btn-sm{padding:.3rem .65rem;font-size:.8rem}
.tbl{width:100%;border-collapse:collapse;font-size:.85rem}
.tbl th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#475569;background:#f8fafc;padding:.7rem .85rem;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:.7rem .85rem;border-bottom:1px solid #f1f5f9;vertical-align:middle}
.tbl tbody tr:hover{background:#f8fafc}
.badge{display:inline-block;border-radius:999px;padding:.12rem .6rem;font-size:.72rem;font-weight:700}
.badge-green{background:#dcfce7;color:#166534}
.badge-red{background:#fee2e2;color:#991b1b}
.badge-slate{background:#e2e8f0;color:#334155}
.err{color:#b91c1c;font-size:.78rem;margin-top:.25rem}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.skel{background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);background-size:200% 100%;animation:sh 1.2s infinite;border-radius:.4rem}
@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Landing-page watermark */
.watermark{position:fixed;inset:0;z-index:0;pointer-events:none;background:url("../img/logo.png") center/min(70vmin,560px) no-repeat;opacity:.07}

/* Printable department list (hidden on screen) */
#printSheet{display:none}
@media print{
  @page{size:A4;margin:14mm}
  body{background:#fff!important}
  body>*:not(#printSheet){display:none!important}
  #printSheet{display:block!important;position:relative;font-family:Georgia,"Times New Roman",serif;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #printSheet .wm{position:fixed;inset:0;z-index:-1;background:url("../img/logo.png") center/380px no-repeat;opacity:.07}
  #printSheet header{text-align:center;border-bottom:2px solid #17633a;padding-bottom:8px;margin-bottom:10px}
  #printSheet header img{width:70px;height:70px;object-fit:contain;margin:0 auto 4px}
  #printSheet h1{font-size:15pt;margin:0;text-transform:uppercase;letter-spacing:.03em}
  #printSheet h2{font-size:12pt;margin:2px 0 0}
  #printSheet .meta{font-size:9.5pt;margin-top:4px;color:#333}
  #printSheet table{width:100%;border-collapse:collapse;font-size:10.5pt}
  #printSheet thead{display:table-header-group}
  #printSheet tr{break-inside:avoid}
  #printSheet th,#printSheet td{border:1px solid #444;padding:5px 7px;text-align:left}
  #printSheet th{background:#e8f1ec!important;font-size:9.5pt;text-transform:uppercase}
  #printSheet footer{margin-top:10px;font-size:9pt;color:#444;text-align:right}
}
