/* HRMS - dye-house palette: indigo (vat), madder (exceptions), teal (ok), turmeric (pending) */
:root{
  --ink:#172033;--muted:#5d6779;--line:#dde2ea;--line-strong:#c4ccd8;
  --bg:#f3f5f8;--card:#ffffff;
  --indigo:#1b2559;--indigo-2:#273375;--indigo-soft:#e8ebf7;
  --madder:#b23a2b;--madder-soft:#fbe9e6;
  --teal:#0f766e;--teal-soft:#dff3f0;
  --turmeric:#c98a0b;--turmeric-soft:#fdf1d6;
  --radius:10px;--side:236px;
  --font:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:14px/1.5 var(--font);background:var(--bg);color:var(--ink);font-variant-numeric:tabular-nums}
a{color:var(--indigo-2)}
:focus-visible{outline:3px solid #7b8de0;outline-offset:2px;border-radius:4px}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:var(--side) 1fr;min-height:100vh}
.side{background:var(--indigo);color:#dfe3f6;padding:1rem .75rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;align-items:center;gap:.6rem;padding:.25rem .5rem 1rem;color:#fff;text-decoration:none;font-weight:700;font-size:1.05rem;letter-spacing:.2px}
.brand i{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,#e9edff,#8d9be8);display:inline-block;position:relative}
.brand i::after{content:"";position:absolute;inset:7px 8px;border-left:3px solid var(--indigo);border-right:3px solid var(--indigo)}
.nav-group{margin:.9rem 0 .25rem;padding:0 .6rem;color:#9aa4d6;font-size:.78rem;font-weight:600}
.side a.nav{display:block;padding:.42rem .6rem;border-radius:7px;color:#e6e9fa;text-decoration:none}
.side a.nav:hover{background:rgba(255,255,255,.09)}
.side a.nav.on{background:#fff;color:var(--indigo);font-weight:600}
.side .who{margin-top:1.2rem;padding:.7rem .6rem;border-top:1px solid rgba(255,255,255,.14);font-size:.85rem}
.side .who small{color:#aeb7e6;display:block}
.side .who form{display:inline}
.side .who button{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:6px;padding:.2rem .6rem;cursor:pointer;margin-top:.4rem}
.side .who a{color:#dfe3f6}
.topbar{display:none}
#navtoggle{display:none}
.main-wrap{min-width:0}
main{max-width:1240px;margin:0 auto;padding:1.4rem 1.6rem 3rem}
h1{font-size:1.5rem;line-height:1.25;margin:.1rem 0 1rem;letter-spacing:-.2px}
h2{font-size:1.05rem;margin:1.4rem 0 .55rem}

/* ---------- surfaces ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem}
.card>h2:first-child{margin-top:0}
table{border-collapse:separate;border-spacing:0;width:100%;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:1rem}
th,td{padding:.5rem .65rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
tr:last-child>td,tr:last-child>th{border-bottom:0}
th{background:#eef1f7;font-weight:600;color:#33405c;font-size:.86rem}
tbody tr:hover td,table tr:hover>td{background:#fafbfd}
td.num,th.num{text-align:right}
table table{border:0;border-radius:0}
label{display:block;font-weight:600;margin:.55rem 0 .2rem;font-size:.9rem}
input,select,textarea{width:100%;padding:.45rem .6rem;border:1px solid var(--line-strong);border-radius:7px;font:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--indigo-2)}
input[type=checkbox]{width:auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 1rem}
.row{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap}
.row>*{flex:1;min-width:140px}
button,.btn{background:var(--indigo);color:#fff;border:1px solid var(--indigo);border-radius:7px;padding:.45rem .9rem;cursor:pointer;font:inherit;font-weight:600;text-decoration:none;display:inline-block}
button:hover,.btn:hover{background:var(--indigo-2)}
button.secondary,.btn.secondary{background:#fff;color:var(--indigo);border:1px solid var(--line-strong);font-weight:500}
button.secondary:hover,.btn.secondary:hover{background:var(--indigo-soft)}
button.danger{background:var(--madder);border-color:var(--madder)}
button[disabled]{opacity:.45;cursor:not-allowed}
.flash{padding:.7rem 1rem;border-radius:var(--radius);margin-bottom:1rem;background:var(--teal-soft);color:#0b4f4a;border:1px solid #a9ddd6}
.errors{padding:.7rem 1rem;border-radius:var(--radius);margin-bottom:1rem;background:var(--madder-soft);color:#7d2419;border:1px solid #efb9b1}
.badge{display:inline-block;padding:.08rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;background:#e7eaf0;color:#34405a;vertical-align:middle}
.badge.raw{background:#dfe8ff;color:#193c9c}.badge.processed{background:var(--turmeric-soft);color:#7a5200}
.badge.approved{background:var(--teal-soft);color:#0b5c56}.badge.draft{background:var(--madder-soft);color:#8b2a1d}
.badge.blocked{background:var(--madder-soft);color:#8b2a1d}
.banner{padding:.6rem .9rem;border-left:4px solid var(--turmeric);background:var(--turmeric-soft);margin:.6rem 0;border-radius:0 8px 8px 0}
.banner.bad{border-color:var(--madder);background:var(--madder-soft)}
.muted,small{color:var(--muted)}
.noprint a.btn{margin:0 .25rem .35rem 0}
.id-card{width:340px;border:2px solid var(--ink);padding:.9rem;background:#fff;border-radius:10px}
.id-card .photo{width:110px;height:130px;border:1px solid var(--line);object-fit:cover;display:block;margin:.4rem 0}

/* ---------- login ---------- */
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--indigo) 0 46%,var(--bg) 46%)}
.login-page main{padding:1rem;width:100%;max-width:420px}
.login-page .card{box-shadow:0 18px 40px rgba(23,32,51,.18);padding:1.6rem}

/* ---------- dashboard ---------- */
.dash-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.dash-head p{margin:0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;margin-bottom:1rem}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1rem;border-top:3px solid var(--indigo)}
.kpi.warn{border-top-color:var(--turmeric)}.kpi.bad{border-top-color:var(--madder)}.kpi.ok{border-top-color:var(--teal)}
.kpi .k{font-size:.84rem;color:var(--muted);font-weight:600}
.kpi .v{font-size:clamp(1.35rem,1.2vw + 1rem,1.8rem);white-space:nowrap;font-weight:700;line-height:1.15;letter-spacing:-.5px;margin:.15rem 0}
.kpi .s{font-size:.82rem;color:var(--muted)}
.kpi a.s{text-decoration:none}
.kpi a.s:hover{text-decoration:underline}
.ribbon{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;margin-bottom:1rem;display:grid;grid-template-columns:minmax(180px,230px) 1fr;gap:1.2rem;align-items:center}
.ribbon .big{font-size:3.1rem;font-weight:700;line-height:1;letter-spacing:-1.5px;color:var(--indigo)}
.ribbon svg{width:100%;height:150px;display:block}
.ribbon .bar{fill:var(--indigo)}
.ribbon .bar.low{fill:var(--madder)}
.ribbon .bar.off{fill:#cfd5e2}
.ribbon .grid-line{stroke:#d5dbe7;stroke-dasharray:3 4}
.ribbon .axis{font-size:10px;fill:var(--muted)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}
.cols>.card{margin:0}
.todo{list-style:none;margin:0;padding:0}
.todo li{display:flex;justify-content:space-between;gap:.8rem;padding:.5rem 0;border-bottom:1px solid var(--line)}
.todo li:last-child{border-bottom:0}
.todo .n{font-weight:700;min-width:2rem;text-align:right}
.todo .n.zero{color:#9aa3b3;font-weight:500}
.hbar{display:grid;grid-template-columns:minmax(90px,150px) 1fr 2.4rem;gap:.55rem;align-items:center;margin:.35rem 0;font-size:.9rem}
.hbar .t{height:10px;border-radius:6px;background:#e7ebf3;overflow:hidden}
.hbar .t i{display:block;height:100%;background:var(--indigo-2);border-radius:6px}
.checklist{list-style:none;margin:0;padding:0}
.checklist li{padding:.45rem 0 .45rem 1.7rem;position:relative;border-bottom:1px solid var(--line)}
.checklist li:last-child{border-bottom:0}
.checklist li::before{content:"";position:absolute;left:.2rem;top:.78rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--madder)}
.checklist li.done::before{background:var(--teal)}
.checklist li.wait::before{background:var(--turmeric)}

/* ---------- small screens ---------- */
@media (max-width:860px){
  .shell{display:block}
  .topbar{display:flex;align-items:center;gap:.7rem;background:var(--indigo);color:#fff;padding:.6rem .9rem;position:sticky;top:0;z-index:5}
  .topbar label{margin:0;cursor:pointer;font-size:1.4rem;line-height:1;padding:.1rem .5rem;border:1px solid rgba(255,255,255,.4);border-radius:6px}
  .side{display:none;position:fixed;inset:0 auto 0 0;width:min(82vw,290px);z-index:10;height:100vh}
  #navtoggle:checked~.side{display:block}
  main{padding:1rem}
  .ribbon{grid-template-columns:1fr}
  table{display:block;overflow-x:auto}
}
@media (prefers-reduced-motion:no-preference){
  .ribbon .bar{transform-origin:bottom;animation:rise .6s ease-out both;transform-box:fill-box}
  @keyframes rise{from{transform:scaleY(.05)}to{transform:scaleY(1)}}
}
@media print{
  .side,.topbar,.noprint{display:none!important}
  .shell{display:block}body{background:#fff}main{padding:0;max-width:none}
  .card,table{border-color:#999}
}
