:root{
  --acs-blue:#1f6fb2; --acs-blue-dark:#17567f; --acs-ink:#1f2933; --acs-muted:#6b7280;
  --acs-bg:#f4f6f9; --acs-card:#ffffff; --acs-border:#e3e8ef;
  --acs-sidebar:#122235; --acs-sidebar-ink:#c6d2e1;
  --ok:#1e9e5a; --warn:#d9822b; --danger:#d04444; --info:#2f80c4;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--acs-bg);color:var(--acs-ink)}
a{text-decoration:none;color:var(--acs-blue)}
.acs-shell{display:flex;min-height:100vh}
.acs-sidebar{width:230px;background:var(--acs-sidebar);color:var(--acs-sidebar-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.acs-brand{display:flex;align-items:center;gap:.6rem;padding:1.1rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.acs-logo{background:var(--acs-blue);color:#fff;font-weight:800;border-radius:7px;padding:.25rem .5rem;letter-spacing:1px;font-size:.95rem}
.acs-brand-text{font-weight:700;color:#fff;letter-spacing:.5px}
.acs-nav{display:flex;flex-direction:column;padding:.6rem .5rem;gap:.1rem;flex:1}
.acs-nav a{color:var(--acs-sidebar-ink);padding:.55rem .75rem;border-radius:7px;display:flex;align-items:center;gap:.6rem;font-size:.92rem}
.acs-nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.acs-nav a.active{background:var(--acs-blue);color:#fff}
.acs-nav-sep{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#6b7f96;padding:.9rem .85rem .3rem}
.acs-sidebar-foot{padding:.75rem 0;border-top:1px solid rgba(255,255,255,.08)}
.acs-main{flex:1;display:flex;flex-direction:column;min-width:0}
.acs-topbar{display:flex;justify-content:space-between;align-items:center;background:var(--acs-card);
  border-bottom:1px solid var(--acs-border);padding:.7rem 1.25rem}
.acs-page-title{font-weight:700;font-size:1.05rem}
.acs-user{display:flex;align-items:center;gap:.8rem;font-size:.85rem}
.acs-user-name{font-weight:600}
.acs-roles{color:var(--acs-muted);font-size:.78rem}
.acs-content{padding:1.25rem;max-width:1200px;width:100%}
/* KPI cards */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;margin-bottom:1.1rem}
.kpi{background:var(--acs-card);border:1px solid var(--acs-border);border-radius:10px;padding:.9rem 1rem;display:block;transition:.15s}
.kpi:hover{box-shadow:0 3px 14px rgba(20,34,53,.08);transform:translateY(-1px)}
.kpi .kpi-val{font-size:1.7rem;font-weight:800;line-height:1}
.kpi .kpi-label{color:var(--acs-muted);font-size:.8rem;margin-top:.35rem}
.kpi.ok .kpi-val{color:var(--ok)} .kpi.warn .kpi-val{color:var(--warn)}
.kpi.danger .kpi-val{color:var(--danger)} .kpi.info .kpi-val{color:var(--info)}
.card-acs{background:var(--acs-card);border:1px solid var(--acs-border);border-radius:10px;padding:1rem 1.1rem;margin-bottom:1.1rem}
.card-acs h2{font-size:.95rem;font-weight:700;margin:0 0 .75rem;display:flex;justify-content:space-between;align-items:center}
.table-acs{width:100%;border-collapse:collapse;font-size:.88rem}
.table-acs th,.table-acs td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--acs-border)}
.table-acs th{color:var(--acs-muted);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.03em}
.table-acs tbody tr:hover{background:#f8fafc}
.badge-status{font-size:.72rem;padding:.2rem .5rem;border-radius:20px;font-weight:600;text-transform:capitalize}
.s-verified{background:#e5f6ec;color:#1e7a46}.s-submitted{background:#e7f0fb;color:#1f6fb2}
.s-assigned{background:#eef1f5;color:#49566a}.s-in_progress{background:#fff3e0;color:#b4701d}
.s-correction_required{background:#fdeaea;color:#c0392b}.s-pending_evidence{background:#fef6e0;color:#a77b14}
.s-rejected{background:#f8d7da;color:#842029}.s-draft{background:#eceff3;color:#6b7280}
.s-cancelled{background:#eceff3;color:#99a}.s-closed{background:#e5f6ec;color:#1e7a46}
.flag-overdue{background:#f8d7da;color:#842029;font-size:.68rem;padding:.12rem .4rem;border-radius:5px;margin-left:.3rem}
.muted{color:var(--acs-muted)}
.btn-acs{background:var(--acs-blue);border-color:var(--acs-blue)}
.btn-acs:hover{background:var(--acs-blue-dark);border-color:var(--acs-blue-dark)}
.empty-state{text-align:center;color:var(--acs-muted);padding:1.5rem;font-size:.9rem}
/* Login */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#122235,#1f6fb2)}
.auth-card{background:#fff;border-radius:14px;padding:2rem;width:100%;max-width:380px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.auth-logo{text-align:center;margin-bottom:1.2rem}
.auth-logo .acs-logo{font-size:1.1rem;padding:.35rem .7rem}
@media(max-width:820px){
  .acs-sidebar{width:62px}.acs-brand-text,.acs-nav a span,.acs-nav-sep,.acs-sidebar-foot{display:none}
  .acs-nav a{justify-content:center}
}
