/* Academic Core Design Language (ACDL) v2.0
   Enterprise UI Redesign · Light only · Compact · Elegant · Academic · High information density */
:root{
  /* Brand */
  --bg:#f6f8fb;
  --bg-soft:#eef3f9;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --text:#142033;
  --text-soft:#334155;
  --muted:#64748b;
  --muted-2:#94a3b8;
  --line:#e2e8f0;
  --line-strong:#cbd5e1;
  --primary:#1e3a8a;
  --primary-2:#2563eb;
  --primary-soft:#eff6ff;
  --success:#15803d;
  --success-soft:#ecfdf3;
  --warning:#b45309;
  --warning-soft:#fff7ed;
  --danger:#b91c1c;
  --danger-soft:#fef2f2;
  --nav:#0f172a;
  --nav-2:#17233a;
  --nav-text:#dbeafe;
  --nav-muted:#93a4bb;

  /* Type scale */
  --font:Inter,"Segoe UI",Roboto,Arial,sans-serif;
  --fs-xs:11px;
  --fs-sm:12px;
  --fs-base:13px;
  --fs-input:13px;
  --fs-card:14px;
  --fs-section:15px;
  --fs-page:18px;
  --fs-display:22px;
  --lh:1.42;

  /* Spacing tokens */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px;
  --r-sm:8px; --r:10px; --r-lg:12px; --r-xl:16px;
  --shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.06);
  --shadow-soft:0 1px 2px rgba(15,23,42,.04);
  --focus:0 0 0 3px rgba(37,99,235,.15);
  --side:236px;
  --side-c:70px;
  --top:56px;
  --row:36px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:var(--fs-base);line-height:var(--lh);color:var(--text);background:linear-gradient(180deg,var(--bg),var(--bg-soft));letter-spacing:-.006em}
a{color:inherit;text-decoration:none}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:16px;top:12px;background:#fff;border:1px solid var(--line);padding:8px 10px;border-radius:8px;z-index:999}
.layout{display:flex;min-height:100vh}
/* Sidebar */
.side{width:var(--side);position:fixed;inset:0 auto 0 0;background:linear-gradient(180deg,var(--nav),var(--nav-2));color:#fff;padding:10px;overflow:auto;box-shadow:8px 0 24px rgba(15,23,42,.12);transition:width .18s ease;padding-bottom:18px;z-index:20}
.side::-webkit-scrollbar{width:7px}.side::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:99px}
.side-tools{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.collapse-btn{width:34px;height:34px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;border-radius:10px;cursor:pointer;font-weight:800;display:grid;place-items:center}.collapse-btn:hover{background:rgba(255,255,255,.12)}
.brand{display:flex;align-items:center;gap:10px;min-height:50px;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(255,255,255,.045);font-size:13px;font-weight:850;line-height:1.15;flex:1;overflow:hidden}
.brand:before{content:"AC";width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(145deg,#60a5fa,#1d4ed8);font-size:10.5px;letter-spacing:.04em;flex:0 0 auto}.brand small{display:block;margin-top:2px;color:var(--nav-muted);font-size:10px;font-weight:650;line-height:1.35}.brand-text{min-width:0}
.nav>a,.nav summary,.nav details a{display:flex;align-items:center;gap:8px;border-radius:9px;padding:7px 9px;color:var(--nav-text);font-size:12px;font-weight:690;transition:background .15s,color .15s,box-shadow .15s}
.nav>a{margin:4px 0}.nav>a:before,.nav details a:before{content:"";width:5px;height:5px;border-radius:50%;background:#60a5fa;opacity:.8;flex:0 0 auto}.nav a:hover,.nav a.active,.nav summary:hover{background:rgba(96,165,250,.14);color:#fff}.nav a.active{box-shadow:inset 2px 0 0 #60a5fa;background:rgba(96,165,250,.20)}
.nav details{margin:8px 0;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(255,255,255,.032);overflow:hidden}.nav summary{cursor:pointer;list-style:none;justify-content:space-between;text-transform:uppercase;letter-spacing:.055em;color:#b8c7db;font-size:10.8px;font-weight:850}.nav summary::-webkit-details-marker{display:none}.nav summary:after{content:"⌄";font-size:12px;color:#93c5fd;transition:.15s}.nav details:not([open]) summary:after{transform:rotate(-90deg)}.nav details a{margin:0 6px 5px 10px;padding:6px 9px;color:#c7d5e8;font-size:11.6px;border-radius:8px}
body.sidebar-collapsed .side{width:var(--side-c);padding:10px 8px}body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav summary span,body.sidebar-collapsed .nav a span{display:none}body.sidebar-collapsed .brand{justify-content:center;padding:9px 0}body.sidebar-collapsed .nav summary:after{display:none}body.sidebar-collapsed .nav a,body.sidebar-collapsed .nav summary{justify-content:center;padding:8px 5px}body.sidebar-collapsed .nav details a{margin:0 3px 5px}
/* Shell */
.main{margin-left:var(--side);width:calc(100% - var(--side));padding:14px 20px 22px;max-width:1480px;transition:margin-left .18s ease,width .18s ease}.sidebar-collapsed .main{margin-left:var(--side-c);width:calc(100% - var(--side-c))}
.topbar{position:sticky;top:0;z-index:10;min-height:var(--top);display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-14px -20px 14px;padding:10px 20px;background:rgba(246,248,251,.92);backdrop-filter:blur(10px) saturate(1.2);border-bottom:1px solid rgba(226,232,240,.85)}
.topbar-left{display:flex;flex-direction:column;gap:1px;min-width:0}.breadcrumb{font-size:10.8px;color:var(--muted);font-weight:700}.breadcrumb span{color:var(--primary-2)}.topbar h1{margin:0;font-size:var(--fs-page);line-height:1.18;font-weight:850;letter-spacing:-.025em;color:#111f35}.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.searchbox{position:relative}.searchbox:before{content:"⌕";position:absolute;left:11px;top:3px;font-size:15px;color:#64748b}.searchbox input{width:260px;max-width:32vw;height:32px;border:1px solid #d9e2ee;border-radius:999px;padding:0 12px 0 30px;background:#fff;box-shadow:var(--shadow-soft);outline:none;font-size:12px}.searchbox input:focus{border-color:#93c5fd;box-shadow:var(--focus)}.pill{height:30px;display:inline-flex;align-items:center;background:#fff;color:#1e3a8a;border:1px solid #dbeafe;padding:0 10px;border-radius:999px;font-size:10.8px;font-weight:750;box-shadow:var(--shadow-soft);white-space:nowrap}.bell{position:relative;width:32px;height:32px;border-radius:999px;border:1px solid #d9e2ee;background:#fff;display:grid;place-items:center;box-shadow:var(--shadow-soft);font-size:14px}.bell:after{content:"3";position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff;border-radius:99px;font-size:9px;font-weight:850;min-width:15px;height:15px;display:grid;place-items:center}.footer{margin-top:16px;padding-top:10px;border-top:1px solid #e7edf5;color:#8a97a8;font-size:11px}
/* Login redesign */
.login-body{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#eef4fb);display:grid;place-items:center;padding:26px}.login-shell{width:min(960px,100%);display:grid;grid-template-columns:1.15fr .85fr;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 24px 70px rgba(15,23,42,.12)}.login-hero{padding:38px;background:linear-gradient(145deg,#0f172a,#1e3a8a);color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:480px}.login-mark{width:54px;height:54px;border-radius:16px;background:linear-gradient(145deg,#60a5fa,#2563eb);display:grid;place-items:center;font-size:16px;font-weight:900;box-shadow:0 16px 36px rgba(37,99,235,.28);margin-bottom:18px}.login-hero h1{font-size:29px;line-height:1.1;margin:0 0 10px;letter-spacing:-.03em}.login-hero p{max-width:520px;font-size:14px;line-height:1.6;color:#dbeafe;margin:0 0 18px}.login-badges{display:flex;flex-wrap:wrap;gap:8px}.login-badges span{font-size:11px;font-weight:800;color:#dbeafe;border:1px solid rgba(219,234,254,.22);background:rgba(255,255,255,.08);padding:6px 9px;border-radius:99px}.login-card{padding:36px;display:flex;flex-direction:column;justify-content:center}.login-card-head h2{font-size:20px;margin:0 0 4px}.login-card-head p{font-size:12.5px;color:var(--muted);margin:0 0 18px}.login-form{display:flex;flex-direction:column;gap:7px}.login-form label{font-size:12px;font-weight:800;color:#334155}.login-form input[type=text],.login-form input[type=password]{height:38px;border:1px solid var(--line-strong);border-radius:10px;padding:0 11px;font-size:13px}.login-form input:focus{outline:none;border-color:#93c5fd;box-shadow:var(--focus)}.login-row{display:flex;justify-content:space-between;align-items:center;margin:3px 0 8px}.checkline{display:flex!important;align-items:center;gap:7px;font-weight:700!important;color:#475569!important}.login-note{font-size:11.6px;color:var(--muted);margin-top:14px;padding:10px;background:#f8fafc;border:1px solid var(--line);border-radius:10px}
/* Core components */
.grid{display:grid;gap:10px}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin-bottom:12px}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.split{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:12px}.card,.section,.form-card,.side-panel,.help-panel,.identity-section{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-soft)}.card{min-height:68px;padding:10px 12px}.card h3{font-size:9.8px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 4px;font-weight:850}.metric{font-size:20px;line-height:1.05;font-weight:900;letter-spacing:-.035em;color:#142033}.subtle,.muted{color:var(--muted);font-size:11.5px}.section{padding:12px;margin-bottom:11px}.section-header{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px}.section h2{font-size:14.5px;margin:0 0 8px;color:#142033}.section h3{font-size:13px;margin:10px 0 7px}.pre{white-space:pre-wrap;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:11.8px;color:#334155;max-height:240px;overflow:auto}.row{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.row.compact{gap:6px}.actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.inline-form{display:inline-flex;margin:0}
/* Buttons */
.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border:1px solid transparent;border-radius:8px;padding:6px 10px;background:var(--primary);color:#fff;font-size:11.6px;font-weight:800;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.btn:hover{box-shadow:0 3px 10px rgba(15,23,42,.08)}.btn.secondary{background:#eef2f7;color:#1f2a44;border-color:#dde6f0}.btn.ghost{background:#fff;color:#1f2a44;border-color:#dbe3ee}.btn.danger{background:var(--danger);color:#fff}.btn.small{min-height:26px;padding:4.5px 7px;font-size:10.8px}.btn.full{width:100%}
/* Forms */
.field{display:flex;flex-direction:column;gap:3px;min-width:180px;flex:1}.field label{font-size:11.6px;font-weight:800;color:#334155}.field input,.field select,.field textarea,input[type=file]{min-height:32px;border:1px solid var(--line-strong);border-radius:8px;padding:6px 9px;background:#fff;color:var(--text);font-family:var(--font);font-size:12.6px}.field textarea{min-height:76px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:#93c5fd;box-shadow:var(--focus)}.wide{min-width:280px}.form-card,.identity-section{padding:12px;margin-bottom:10px}.identity-section h3{font-size:13.4px;border-bottom:1px solid var(--line);padding-bottom:7px;margin:0 0 9px}.upload-preview{border:1px dashed var(--line-strong);border-radius:10px;padding:8px;background:#f8fafc}.upload-preview img{max-height:70px;max-width:160px;object-fit:contain}
/* Tabs */
.tabs{display:flex;gap:4px;margin:0 0 11px;padding:4px;background:#eaf0f7;border:1px solid #dce6f2;border-radius:11px;width:max-content;max-width:100%;overflow:auto}.tab{padding:6px 9px;border-radius:8px;color:#41516a;font-weight:800;font-size:11.6px;white-space:nowrap}.tab.active{background:#fff;color:var(--primary);box-shadow:var(--shadow-soft)}
/* DataGrid */
.table-wrap{position:relative;border:1px solid var(--line);border-radius:0 0 11px 11px;background:#fff;box-shadow:var(--shadow-soft);overflow:auto;margin-top:0}.table-wrap table{border:0;border-radius:0;box-shadow:none;min-width:720px}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden;box-shadow:var(--shadow-soft)}th,td{padding:5.8px 8px;font-size:12px;height:var(--row);vertical-align:middle;border-bottom:1px solid #eef2f7}th{position:sticky;top:0;z-index:2;background:#15223a;color:#fff;font-size:10.5px;text-transform:uppercase;letter-spacing:.055em;font-weight:850;text-align:left}tr:hover td{background:#f8fbff}tr:last-child td{border-bottom:0}.datagrid-toolbar{height:36px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 7px;background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid var(--line);border-bottom:0;border-radius:11px 11px 0 0;box-shadow:var(--shadow-soft)}.datagrid-title{font-size:10.8px;font-weight:850;color:#40506a;white-space:nowrap}.datagrid-search{position:relative;margin-left:auto}.datagrid-search:before{content:"⌕";position:absolute;left:9px;top:2px;color:#64748b;font-size:14px}.datagrid-search input{height:28px;width:220px;border:1px solid var(--line-strong);border-radius:99px;padding:0 10px 0 27px;font-size:11.4px;outline:none;background:#f8fafc}.datagrid-search input:focus{background:#fff;border-color:#93c5fd;box-shadow:var(--focus)}.bulk-action-bar{display:none;align-items:center;gap:6px;margin:0 0 6px;padding:6px 8px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:10px;color:#1d4ed8;font-size:11.5px;font-weight:800}.bulk-action-bar.active{display:flex}
/* Status/badges */
.badge,.status{display:inline-flex;align-items:center;gap:4px;border-radius:99px;padding:3.5px 7px;font-size:10.5px;font-weight:850;border:1px solid transparent;white-space:nowrap}.badge.green,.status-Aktif,.status-Valid,.status-Final,.status-Selesai{background:var(--success-soft);color:#166534;border-color:#bbf7d0}.badge.yellow,.status-Sementara,.status-Belum-Lengkap,.status-Perlu-Perbaikan{background:var(--warning-soft);color:#9a3412;border-color:#fed7aa}.badge.red,.status-Nonaktif,.status-Gagal{background:var(--danger-soft);color:#991b1b;border-color:#fecaca}.status-Arsip,.status-Terkunci{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.msg{border-radius:10px;padding:9px 12px;margin:0 0 11px;font-size:12.2px;font-weight:700;border:1px solid transparent;box-shadow:var(--shadow-soft);transition:.2s}.okbg{background:var(--success-soft);color:#166534;border-color:#bbf7d0}.errbg{background:var(--danger-soft);color:#991b1b;border-color:#fecaca}
/* Command Center dashboard */
.command-center{display:grid;gap:12px}.dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:11px;margin-bottom:12px}.hero-panel,.readiness-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-soft);padding:13px}.hero-panel{background:linear-gradient(135deg,#fff,#f8fbff)}.hero-panel h2{margin:0 0 4px;font-size:16px;letter-spacing:-.02em}.hero-panel p{margin:0;color:var(--muted);font-size:12px}.readiness-card{display:flex;flex-direction:column;justify-content:center;gap:3px;background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff}.readiness-card span{font-size:10.8px;font-weight:780;color:#dbeafe}.readiness-card strong{font-size:22px;line-height:1;font-weight:950}.quick-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}.progress-track{height:8px;border-radius:99px;background:#e6edf6;overflow:hidden}.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--primary-2))}.notification-list{display:grid;gap:7px}.notification-item{padding:8px 9px;border:1px solid var(--line);background:#fff;border-radius:10px}.notification-item strong{display:block;font-size:12px;margin-bottom:2px}.notification-item span{font-size:11.5px;color:var(--muted)}.insight{display:flex;gap:9px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:12px}.insight-icon{width:30px;height:30px;border-radius:10px;background:#ecfdf3;color:#166534;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.insight h3{margin:0 0 3px;font-size:13px}.insight p{margin:0;color:var(--muted);font-size:11.5px}.side-panel{background:transparent;border:0;box-shadow:none}.help-panel{padding:12px;margin-bottom:10px}.help-panel h3{margin:0 0 5px;font-size:13.5px}.help-panel p{margin:0;color:var(--muted);font-size:11.8px;line-height:1.5}
/* Wizard */
.wizard-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:9px}.wizard-step{display:flex;gap:9px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 11px;box-shadow:var(--shadow-soft);min-height:78px}.step-badge{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;font-weight:900;font-size:10.8px;background:#eff6ff;color:#1d4ed8;flex:0 0 auto}.wizard-step.done{border-color:#bbf7d0;background:linear-gradient(180deg,#fff,#f6fef9)}.wizard-step.done .step-badge{background:#dcfce7;color:#166534}.wizard-step.warning{border-color:#fed7aa;background:linear-gradient(180deg,#fff,#fffaf4)}.wizard-step.warning .step-badge{background:#ffedd5;color:#9a3412}.wizard-step.locked{border-color:#c7d2fe;background:linear-gradient(180deg,#fff,#f8f9ff)}.wizard-step.locked .step-badge{background:#e0e7ff;color:#3730a3}.step-content h3{font-size:12.8px;margin:0 0 3px}.step-content p{margin:0 0 7px;color:var(--muted);font-size:11.3px;line-height:1.35}.step-actions{display:flex;gap:6px;align-items:center;justify-content:space-between}
/* Empty states and matrix */
.empty-state{padding:17px 12px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px dashed #d7e2ee;border-radius:12px;text-align:center}.empty-state:before{content:"＋";width:32px;height:32px;border-radius:11px;background:#eff6ff;color:#2563eb;display:grid;place-items:center;margin:0 auto 8px;font-size:19px;font-weight:900}.empty-state h3{font-size:13.2px;margin:0 0 4px}.empty-state p{font-size:11.8px;margin:0 0 8px;color:var(--muted)}.matrix-scroll{border:1px solid var(--line);border-radius:11px;overflow:auto;background:#fff}.matrix-table{min-width:860px;border:0;box-shadow:none}.matrix-table th:first-child,.matrix-table td:first-child{position:sticky;left:0;z-index:2;background:#fff;box-shadow:1px 0 0 var(--line)}.matrix-table th:first-child{z-index:3;background:#15223a;color:#fff}.matrix-table .num{text-align:center;font-variant-numeric:tabular-nums}
/* Org tree */
.org-tree ul{list-style:none;margin:0 0 0 12px;padding-left:10px;border-left:1px solid var(--line)}.org-tree li{margin:5px 0}.org-tree details{border:1px solid var(--line);border-radius:10px;padding:6px 8px;background:#fff}.org-tree summary{cursor:pointer;font-weight:850;font-size:12px}.org-tree .node-meta{font-size:11px;color:var(--muted);margin-left:3px}
/* Responsive */
@media(max-width:1366px){:root{--side:220px;--fs-base:12.5px}.main{padding:12px 16px 20px}.topbar{margin:-12px -16px 12px;padding:9px 16px}.searchbox input{width:220px}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(124px,1fr))}}
@media(max-width:1080px){.split,.dashboard-hero{grid-template-columns:1fr}.side-panel{order:2}.datagrid-search input{width:170px}}
@media(max-width:860px){.layout{display:block}.side{position:relative;width:100%;height:auto}.main,.sidebar-collapsed .main{margin-left:0;width:100%;padding:14px}.topbar{position:relative;align-items:flex-start;flex-direction:column;margin:-14px -14px 12px;padding:10px 14px}.topbar-actions{width:100%}.searchbox{width:100%}.searchbox input{width:100%;max-width:none}.login-shell{grid-template-columns:1fr}.login-hero{min-height:auto;padding:26px}.login-card{padding:26px}.tabs{width:100%}}


/* ACDL v2.1 — UI Transformation Sprint
   Focus: command center hierarchy, enterprise data grid, consistent toolbar, compact forms. */
:root{
  --content-max:1520px;
  --card-pad-y:10px;
  --card-pad-x:12px;
  --toolbar-h:38px;
  --accent:#0f4c81;
}
body{background:radial-gradient(circle at top right,rgba(37,99,235,.06),transparent 36%),linear-gradient(180deg,#f7f9fc,#edf2f8)}
.main{max-width:var(--content-max)}
.topbar{box-shadow:0 1px 0 rgba(226,232,240,.75),0 8px 28px rgba(15,23,42,.035)}
.topbar h1{font-size:17.5px;letter-spacing:-.02em}.breadcrumb{letter-spacing:.01em}
.side{box-shadow:10px 0 32px rgba(15,23,42,.15)}
.brand{background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.025))}
.nav details{background:transparent;border-color:rgba(255,255,255,.06)}
.nav summary{padding-top:8px;padding-bottom:8px}.nav details a{position:relative}.nav details a.active:after{content:"";position:absolute;right:7px;width:6px;height:6px;border-radius:99px;background:#93c5fd}

/* Page shell */
.page-panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-soft);padding:12px;margin-bottom:12px}.page-panel.compact{padding:9px}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.page-intro p{margin:0;color:var(--muted);font-size:11.8px}.page-title-mini{font-size:13.5px;font-weight:850;margin:0;color:#142033}

/* Enterprise toolbar */
.ac-toolbar,.toolbar{min-height:var(--toolbar-h);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:var(--shadow-soft);margin:0 0 8px}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.toolbar-title{font-size:12.2px;font-weight:850;color:#334155}.toolbar .muted{font-size:11px}

/* Command dashboard refined */
.command-center{gap:10px}.dashboard-hero{grid-template-columns:minmax(0,1fr) 190px;gap:10px}.hero-panel,.readiness-card{padding:12px;border-radius:13px}.hero-panel h2{font-size:15.5px}.hero-panel p{font-size:11.6px}.readiness-card strong{font-size:21px}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}.card{min-height:60px;padding:var(--card-pad-y) var(--card-pad-x);border-radius:11px}.card h3{font-size:9.4px;margin-bottom:3px}.metric{font-size:18.5px}.subtle,.muted{font-size:11px}

/* Academic DataGrid v2.1 */
.table-wrap{border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#fff;max-height:520px;overflow:auto}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:12.4px}thead th{position:sticky;top:0;z-index:4;background:linear-gradient(180deg,#f8fafc,#eef4fb);color:#22304a;font-size:10.8px;letter-spacing:.045em;text-transform:uppercase;font-weight:900;border-bottom:1px solid var(--line-strong);height:34px;padding:0 9px;white-space:nowrap}td{height:34px;padding:5px 9px;border-bottom:1px solid #eef2f7;vertical-align:middle}tbody tr:nth-child(2n){background:#fbfdff}tbody tr:hover{background:#eff6ff}.datagrid-toolbar{margin-bottom:6px}.datagrid-title{font-size:11.5px;font-weight:900;color:#334155}.datagrid-search input{height:29px;width:230px}.num,.number{text-align:right;font-variant-numeric:tabular-nums}.action-cell{white-space:nowrap;text-align:right}

/* Form system v2.1 */
.form-card,.identity-section{padding:12px}.form-card h2,.identity-section h2{font-size:14px;margin:0 0 9px;padding-bottom:7px;border-bottom:1px solid var(--line);color:#142033}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}.form-grid.one{grid-template-columns:1fr}label{font-size:12px;font-weight:800;color:#334155;margin-bottom:4px}input,select,textarea{font-family:var(--font)}input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],select,textarea{min-height:34px;border:1px solid #d6e0ec;border-radius:9px;padding:6px 9px;font-size:12.5px;background:#fff;outline:none}textarea{min-height:74px}input:focus,select:focus,textarea:focus{border-color:#93c5fd;box-shadow:var(--focus)}.upload-card{border:1px dashed #b9c8da;border-radius:12px;background:#f8fafc;padding:12px;display:flex;align-items:center;gap:10px}.upload-preview{width:54px;height:54px;border-radius:12px;background:#eef4fb;border:1px solid var(--line);display:grid;place-items:center;color:#64748b;font-weight:900;font-size:11px}

/* Buttons */
.btn,button,input[type=submit]{height:34px;border-radius:9px;font-size:11.8px;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px}.btn.small,button.small{height:28px;font-size:11px;padding:0 8px}.btn.primary,input[type=submit]{background:#1e3a8a;color:#fff;border:1px solid #1e3a8a}.btn.secondary{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.btn.ghost{background:#fff;color:#334155;border:1px solid #d7e0eb}.btn.danger{background:#fff;color:#b91c1c;border:1px solid #fecaca}.btn:hover,button:hover,input[type=submit]:hover{filter:brightness(.98);transform:translateY(-.5px)}

/* Tabs and wizard */
.tabs{gap:5px;border-bottom:1px solid var(--line);margin-bottom:9px}.tabs a,.tabs button{height:32px;border-radius:9px 9px 0 0;font-size:11.7px;font-weight:850}.wizard-timeline{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.wizard-step{min-height:70px;padding:9px;border-radius:11px}.step-badge{width:25px;height:25px}.step-content h3{font-size:12.3px}.step-content p{font-size:10.9px;margin-bottom:5px}

/* Empty states */
.empty-state{padding:15px 10px}.empty-state:before{width:30px;height:30px;font-size:17px}.empty-state h3{font-size:12.8px}.empty-state p{font-size:11.2px}

/* Login refinement */
.login-shell{box-shadow:0 22px 64px rgba(15,23,42,.12)}.login-hero{min-height:440px}.login-hero h1{font-size:27px}.login-hero p{font-size:13.2px}.login-card{padding:32px}.login-form input[type=text],.login-form input[type=password]{height:36px}

@media(max-width:1366px){:root{--side:212px;--top:52px}.topbar h1{font-size:16.5px}.card{min-height:56px}.metric{font-size:17.5px}td{height:32px}thead th{height:32px}.form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:980px){.form-grid{grid-template-columns:1fr}.dashboard-hero{grid-template-columns:1fr}.grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ACDL v2.2 — Page-by-page Redesign Sprint
   Focus: stronger page hierarchy, compact command-center dashboard, clearer form sections,
   improved DataGrid controls, and light-only enterprise polish. */
:root{
  --fs-page:17px;
  --fs-display:21px;
  --row:34px;
  --page-gap:10px;
  --panel-pad:11px;
}
body{font-size:12.6px;color:#132238;background:linear-gradient(180deg,#f7f9fc 0%,#eef3f8 100%)}
.main{padding:12px 18px 20px}.topbar{min-height:52px;margin:-12px -18px 12px;padding:8px 18px}.topbar-left{gap:0}.topbar h1{font-size:16.8px}.breadcrumb{font-size:10.5px}.searchbox input{height:30px;width:240px}.pill{height:28px;font-size:10.5px}.bell{height:30px;width:30px}

/* Navigation compact hierarchy */
.side{padding:9px;width:226px}.brand{min-height:46px;padding:8px}.brand:before{width:28px;height:28px}.nav details{margin:6px 0}.nav summary{font-size:10.3px;padding:7px 8px}.nav>a,.nav details a{font-size:11.4px;padding:6px 8px}.nav details a{margin:0 5px 4px 9px}.nav a.active{background:rgba(96,165,250,.18);box-shadow:inset 2px 0 0 #93c5fd}

/* Page header / command bar */
.page-intro{padding:8px 0;margin-bottom:8px;border-bottom:1px solid rgba(226,232,240,.9)}
.page-title-mini{font-size:13.3px}.page-intro p{font-size:11.2px}.ac-toolbar,.toolbar{min-height:36px;padding:6px 7px;margin-bottom:8px;border-radius:10px}.toolbar-title{font-size:11.6px}.toolbar-left,.toolbar-right{gap:5px}

/* Dashboard command center refinement */
.command-center{display:grid;gap:9px}.dashboard-hero{grid-template-columns:minmax(0,1fr) 178px;gap:9px}.hero-panel{padding:11px 12px;border-left:4px solid #1e3a8a}.hero-panel h2{font-size:14.8px;margin-bottom:3px}.hero-panel p{font-size:11.2px;max-width:840px}.readiness-card{padding:10px 11px}.readiness-card strong{font-size:19px}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}.card{min-height:56px;padding:8px 10px;border-radius:10px}.card h3{font-size:9.1px}.metric{font-size:17.4px}.quick-actions .btn,.section .quick-actions .btn{height:30px}

/* Section and card density */
.section,.page-panel,.form-card,.identity-section,.help-panel{padding:var(--panel-pad);border-radius:11px}.section{margin-bottom:9px}.section-header{margin-bottom:7px}.section h2{font-size:13.8px;margin-bottom:7px}.section h3{font-size:12.5px}.help-panel h3{font-size:12.8px}.help-panel p{font-size:11.2px}.split{gap:10px;grid-template-columns:minmax(0,1fr) 288px}

/* Form system: compact but readable */
.form-grid{gap:8px 10px}.form-card h2,.identity-section h2{font-size:13.3px;padding-bottom:6px;margin-bottom:8px}label{font-size:11.7px;margin-bottom:3px}input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],select,textarea{min-height:32px;font-size:12.2px;border-radius:8px;padding:5px 8px}textarea{min-height:68px}.upload-card{padding:10px;border-radius:10px}.upload-preview{width:50px;height:50px;border-radius:10px}

/* Academic DataGrid v2.2 */
.table-wrap{max-height:560px;border-radius:10px}.datagrid-toolbar{min-height:34px;margin-bottom:5px}.datagrid-title{font-size:11px}.datagrid-search input{height:28px;width:218px;font-size:11.8px}table{font-size:12px}thead th{height:31px;font-size:10.3px;padding:0 8px}td{height:31px;padding:4px 8px}.bulk-action-bar{padding:5px 7px;border-radius:9px}.bulk-action-bar .bulk-count{font-size:11px}.action-cell .btn,.actions .btn{height:26px;font-size:10.6px;padding:0 7px}

/* Buttons and badges */
.btn,button,input[type=submit]{height:32px;font-size:11.4px;border-radius:8px;padding:0 9px}.btn.small,button.small{height:26px;font-size:10.6px;padding:0 7px}.badge{height:22px;padding:0 7px;font-size:10.2px;border-radius:999px;font-weight:850}.msg,.alert{font-size:11.6px;padding:8px 9px;border-radius:9px}

/* Tabs and matrix */
.tabs{gap:4px;margin-bottom:8px}.tabs a,.tabs button{height:30px;font-size:11.2px;padding:0 9px}.matrix-scroll{border-radius:10px}.matrix-table{min-width:820px}.matrix-table td,.matrix-table th{height:30px}

/* Wizard as compact roadmap */
.wizard-timeline{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px}.wizard-step{min-height:64px;padding:8px;border-radius:10px}.step-badge{width:23px;height:23px;border-radius:8px;font-size:10px}.step-content h3{font-size:11.9px}.step-content p{font-size:10.5px;margin-bottom:4px}.step-actions{gap:4px}

/* Empty state: academic, not oversized */
.empty-state{padding:13px 10px}.empty-state:before{width:28px;height:28px;font-size:16px;margin-bottom:6px}.empty-state h3{font-size:12.4px}.empty-state p{font-size:10.9px}

/* Focus and hover consistency */
.card:hover,.section:hover,.page-panel:hover{border-color:#d6e3f2}.btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:none;box-shadow:var(--focus)}

/* Density toggle classes */
body.ac-density-comfortable{--row:38px;font-size:13px}body.ac-density-comfortable td{height:36px}body.ac-density-comfortable thead th{height:34px}body.ac-density-comfortable .card{min-height:64px;padding:10px 12px}body.ac-density-comfortable .btn{height:34px}
.density-toggle{height:28px;border:1px solid #d9e2ee;border-radius:999px;background:#fff;padding:0 9px;font-size:10.5px;font-weight:800;color:#334155;box-shadow:var(--shadow-soft);cursor:pointer}

@media(max-width:1366px){.main{padding:10px 14px 18px}.topbar{margin:-10px -14px 10px;padding:8px 14px}.side{width:208px}.dashboard-hero{grid-template-columns:1fr}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}.searchbox input{width:200px}.split{grid-template-columns:1fr}}

/* ACDL v2.3 · Navigation, accessibility, and enterprise micro-interaction polish */
:root{
  --ac-page-max:1500px;
  --ac-toolbar-h:34px;
  --ac-transition:160ms ease;
}
.main{max-width:var(--ac-page-max)}
/* More disciplined page rhythm */
.section + .section{margin-top:10px}.grid + .section,.section + .grid{margin-top:10px}
/* Enterprise command bar consistency */
.page-toolbar,.datagrid-toolbar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;background:linear-gradient(180deg,#ffffff,#fbfdff);border:1px solid var(--line);border-radius:10px;padding:5px 7px;box-shadow:var(--shadow-soft)}
.sticky-tools{position:sticky;top:calc(var(--top) + 2px);z-index:8;backdrop-filter:blur(8px)}
.page-toolbar:empty{display:none}
/* Action clarity */
.actions .btn,.action-cell .btn,.inline-form .btn{white-space:nowrap}.actions{row-gap:5px}.inline-form,.inline{display:inline-flex;margin:0}.btn.danger:hover,button.danger:hover{filter:saturate(1.08);box-shadow:0 2px 8px rgba(185,28,28,.12)}
.btn.secondary:hover,button.secondary:hover{background:#eff6ff;border-color:#bfdbfe}.btn:hover,button:hover,input[type=submit]:hover{transform:translateY(-1px);transition:transform var(--ac-transition),background var(--ac-transition),border-color var(--ac-transition)}
/* Better form readability with compact density */
.field{min-width:180px}.field.wide{min-width:min(520px,100%)}.field label::after{content:""}.field input[required] + .field-help,.field select[required] + .field-help{display:block}.form-card .row,.section form.row{align-items:flex-end}.field-help{font-size:10.6px;color:var(--muted);margin-top:2px}
input[type=file]{padding:5px;background:#fff;border-style:dashed;cursor:pointer}input[type=file]::file-selector-button{border:0;background:var(--primary-soft);color:var(--primary);border-radius:7px;padding:5px 8px;margin-right:8px;font-size:11px;font-weight:800;cursor:pointer}
/* DataGrid refinements */
.table-wrap{background:#fff;overflow:auto}.table-wrap table{min-width:720px}thead th{position:sticky;top:0;z-index:3}thead th.sorted-asc::after{content:" ↑";color:var(--primary-2);font-weight:900}thead th.sorted-desc::after{content:" ↓";color:var(--primary-2);font-weight:900}td:first-child,th:first-child{border-left:0}td:last-child,th:last-child{border-right:0}.action-cell,.actions{white-space:nowrap}.select-all{margin-right:5px;vertical-align:middle}
/* Status and validation states */
.status,.badge{letter-spacing:.01em}.status-Aktif,.status-Valid,.status-Final{background:var(--success-soft);color:var(--success);border:1px solid #bbf7d0}.status-Nonaktif,.status-Arsip{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.status-Sementara,.status-Pending,.status-Belum{background:var(--warning-soft);color:var(--warning);border:1px solid #fed7aa}.status-Error,.status-Rejected{background:var(--danger-soft);color:var(--danger);border:1px solid #fecaca}
/* More elegant org tree */
.org-tree{font-size:12px;color:#253247}.org-tree ul{margin:4px 0 4px 14px;padding-left:12px;border-left:1px dashed #cbd5e1}.org-tree li{margin:3px 0}.org-tree details{border:0;background:transparent;margin:2px 0}.org-tree summary{cursor:pointer;font-weight:800;color:#1e3a8a}
/* Dashboard compact enterprise band */
.dashboard-hero{align-items:stretch}.dashboard-hero .section{height:100%}.notification-item{border-left:3px solid #bfdbfe;padding-left:9px;margin:7px 0}.notification-item strong{font-size:12px}.notification-item span{display:block;color:var(--muted);font-size:11px;margin-top:1px}
/* Login polish */
.login-card .btn{height:38px;font-size:12.5px}.login-form .errbg{margin-bottom:8px}.login-shell{isolation:isolate}.login-hero{position:relative;overflow:hidden}.login-hero:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(96,165,250,.16);right:-90px;bottom:-90px;filter:blur(2px)}.login-hero>*{position:relative;z-index:1}
/* Empty state compact but visible */
.empty-state{background:linear-gradient(180deg,#fff,#f8fafc);border:1px dashed #cbd5e1;border-radius:12px}.empty-state .btn{margin-top:4px}
/* Loading overlay and toast utility */
.ac-loading{position:fixed;inset:0;background:rgba(248,250,252,.72);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:9999}.ac-loading.active{display:flex}.ac-loading-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:14px 18px;font-weight:850;color:#1e3a8a;display:flex;align-items:center;gap:10px}.ac-spinner{width:18px;height:18px;border:3px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;animation:acspin .8s linear infinite}@keyframes acspin{to{transform:rotate(360deg)}}
/* Print mode for reports/pages */
@media print{.side,.topbar,.footer,.page-toolbar,.datagrid-toolbar,.bulk-action-bar,.actions,.btn,button{display:none!important}.main{margin:0!important;width:100%!important;max-width:none!important;padding:0!important}.section,.card{box-shadow:none!important;border-color:#cbd5e1!important}body{background:#fff!important;color:#111827!important}}
/* Smaller laptop polish */
@media(max-width:1024px){:root{--side:212px}.topbar{align-items:flex-start}.topbar-actions{justify-content:flex-end}.searchbox input{width:170px}.grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.login-shell{grid-template-columns:1fr}.login-hero{min-height:260px;padding:28px}.login-card{padding:28px}.table-wrap{max-height:440px}}

/* ACDL v2.5-v2.10 Final Enterprise Stable polish
   Scope: final page-by-page consistency, responsive behavior, UI QA, and release-level visual standardization. */
:root{
  --ac-sidebar-expanded:232px;
  --ac-sidebar-collapsed:68px;
  --ac-content-pad-x:18px;
  --ac-content-pad-y:12px;
  --ac-card-pad:10px;
  --ac-table-row:32px;
  --ac-muted-surface:#f8fafc;
  --ac-info:#0369a1;
  --ac-info-soft:#e0f2fe;
}
body{font-variant-numeric:tabular-nums}.main{padding:var(--ac-content-pad-y) var(--ac-content-pad-x) 18px}.topbar{margin:calc(-1 * var(--ac-content-pad-y)) calc(-1 * var(--ac-content-pad-x)) 12px;padding:8px var(--ac-content-pad-x)}
/* Final compact title hierarchy */
.topbar h1{font-size:17px}.breadcrumb{font-size:10.4px}.section h2{font-size:13.4px}.section h3{font-size:12.2px}.card h3{font-size:9px}.metric{font-size:17px}.muted,.subtle{font-size:11px}
/* Final page shell */
.page-shell{display:grid;gap:10px}.page-header-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow-soft)}.page-header-panel h2{font-size:14px;margin:0 0 3px}.page-header-panel p{font-size:11.2px;color:var(--muted);margin:0}
/* Unified command surfaces */
.ac-toolbar,.toolbar,.page-toolbar,.datagrid-toolbar{border-radius:10px;background:linear-gradient(180deg,#fff,#fbfdff);border-color:#dfe7f1;box-shadow:var(--shadow-soft)}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.toolbar-spacer{flex:1}
/* Final data density */
.table-wrap{max-height:calc(100vh - 250px);border:1px solid var(--line);box-shadow:var(--shadow-soft)}table{font-size:11.7px}thead th{height:30px;padding:0 7px;background:#f3f6fb}td{height:var(--ac-table-row);padding:4px 7px}tbody tr:hover{background:#f8fbff}.table-caption{font-size:10.5px;color:var(--muted);margin-top:4px}
/* Better matrix readability */
.matrix-table th:first-child,.matrix-table td:first-child{position:sticky;left:0;background:#fff;z-index:2;box-shadow:1px 0 0 var(--line)}.matrix-table thead th:first-child{z-index:4;background:#f3f6fb}.matrix-table td:not(:first-child),.matrix-table th:not(:first-child){text-align:center;min-width:64px}
/* Form standardization */
.form-section-title{font-size:12.2px;font-weight:850;color:#1e3a8a;margin:0 0 6px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field.required label:after{content:' *';color:var(--danger)}.form-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--line);margin-top:10px}
/* Refined buttons */
.btn,button,input[type=submit]{height:31px;min-width:auto}.btn.icon,button.icon{width:31px;padding:0;display:inline-grid;place-items:center}.btn.ghost,button.ghost{background:transparent;border-color:transparent;color:var(--text-soft);box-shadow:none}.btn.ghost:hover,button.ghost:hover{background:#f1f5f9;border-color:#e2e8f0}.btn.info{background:var(--ac-info);border-color:var(--ac-info);color:#fff}.btn.info.soft{background:var(--ac-info-soft);color:var(--ac-info);border-color:#bae6fd}
/* Dashboard final command center */
.dashboard-grid-final{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);gap:10px}.kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.kpi-mini{background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 10px;box-shadow:var(--shadow-soft)}.kpi-mini .label{font-size:9.3px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:850}.kpi-mini .value{font-size:18px;font-weight:900;color:#142033;line-height:1.1;margin-top:2px}.kpi-mini .hint{font-size:10.4px;color:var(--muted);margin-top:2px}.quick-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px}.quick-action-card{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 9px;box-shadow:var(--shadow-soft)}.quick-action-card strong{font-size:11.7px}.quick-action-card span{font-size:10.3px;color:var(--muted);display:block}.quick-action-icon{width:26px;height:26px;border-radius:8px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:900}
/* Wizard final */
.wizard-rail{display:flex;gap:8px;overflow:auto;padding:2px 0 8px;scrollbar-width:thin}.wizard-rail .wizard-step{min-width:220px}.wizard-step.current{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.wizard-step.done .step-badge{background:var(--success);color:#fff}.wizard-step.locked{opacity:.72;background:#f8fafc}
/* Empty state and help */
.empty-state.compact{padding:10px}.empty-state.compact:before{display:none}.help-inline{font-size:11px;color:#475569;background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:7px 8px}.callout{border-left:3px solid var(--primary-2);background:#f8fbff;border-radius:10px;padding:8px 10px;font-size:11.5px;color:#334155}
/* Document center and notification polish */
.document-card,.notification-card{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px}.document-card strong,.notification-card strong{font-size:12px}.document-card small,.notification-card small{font-size:10.5px;color:var(--muted)}
/* Final responsive behavior */
@media(max-width:1280px){:root{--side:214px;--ac-content-pad-x:14px}.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid-final{grid-template-columns:1fr}.searchbox input{width:190px}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){body:not(.sidebar-collapsed) .side{width:var(--side-c)}body:not(.sidebar-collapsed) .brand-text,body:not(.sidebar-collapsed) .nav summary span,body:not(.sidebar-collapsed) .nav a span{display:none}.main{margin-left:var(--side-c);width:calc(100% - var(--side-c))}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.topbar{align-items:flex-start}.topbar-actions{width:100%;justify-content:flex-start}.searchbox input{width:min(100%,260px);max-width:100%}.kpi-strip{grid-template-columns:1fr}.grid.cards{grid-template-columns:1fr 1fr}}
/* Final release QA visual indicators */
.ui-approved{display:inline-flex;align-items:center;height:22px;border:1px solid #bbf7d0;color:var(--success);background:var(--success-soft);border-radius:999px;padding:0 7px;font-size:10px;font-weight:850}.ui-review-note{font-size:10.5px;color:var(--muted);border-top:1px dashed var(--line);padding-top:6px;margin-top:8px}

/* RC2 Outcome Analytics */
.page-intro{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin:0 0 14px 0;padding:14px 16px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--border,#e5e7eb);border-radius:12px}
.page-intro h2{margin:0 0 4px 0;font-size:18px;line-height:1.25;color:#0f172a}.page-intro p{margin:0}.quick-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.compact-form .field{min-width:150px}.filter-panel{margin-bottom:12px}.outcome-tabs{margin-bottom:12px}.command-kpi .kpi small{display:block;color:#64748b;font-size:11px;margin-top:3px}.two-col{grid-template-columns:1fr 1fr}.mt-12{margin-top:12px}.data-grid.compact th,.data-grid.compact td{padding:7px 9px;font-size:12.5px}.data-grid.compact th{background:#f8fafc;position:sticky;top:0;z-index:1}.insight-list{display:grid;gap:10px}.insight-card{border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px;background:#fff}.insight-card h3{margin:6px 0 6px;font-size:15px}.insight-card p{margin:4px 0;color:#334155}.insight-card small{color:#64748b}.badge.success{background:#dcfce7;color:#166534;border-color:#bbf7d0}@media(max-width:900px){.page-intro{display:block}.quick-actions{margin-top:10px}.two-col{grid-template-columns:1fr}}
/* RC-3.1 OARS */
.page-hero.compact{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px 18px;border:1px solid var(--border,#dbe3ef);border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);margin-bottom:14px}.page-hero h1{font-size:22px;margin:2px 0 4px}.eyebrow{font-size:11px;font-weight:700;color:#2563eb;letter-spacing:.08em;text-transform:uppercase}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.compact-tabs{margin:10px 0 14px}.compact-section{padding:14px 16px;margin-bottom:12px}.kpi-grid.compact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.kpi-card{border:1px solid #dbe3ef;border-radius:12px;background:#fff;padding:12px 14px;min-height:76px}.kpi-card span{font-size:12px;color:#64748b}.kpi-card strong{display:block;font-size:24px;line-height:1.1;margin:4px 0;color:#0f172a}.kpi-card small{font-size:11px;color:#94a3b8}.toolbar-row.compact-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.form-grid.compact-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.full{grid-column:1/-1}.readonly-box{min-height:36px;border:1px solid #dbe3ef;border-radius:9px;padding:8px 10px;background:#f8fafc;color:#334155}.metadata-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0}.metadata-grid>div{border:1px solid #dbe3ef;border-radius:10px;padding:10px;background:#fff}.compact-list{margin:8px 0 0 18px;padding:0}.compact-grid th,.compact-grid td{font-size:12.5px;padding:7px 9px}.btn.small{padding:5px 8px;font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.info-strip{border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:10px;padding:10px 12px;margin:8px 0}.info-strip.success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.badge.info{background:#e0f2fe;color:#075985}.badge.success{background:#dcfce7;color:#166534}.badge.warning{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.badge.muted{background:#f1f5f9;color:#64748b}
@media(max-width:1100px){.kpi-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.compact-form,.metadata-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.page-hero.compact{display:block}.hero-actions{margin-top:10px}.kpi-grid.compact,.form-grid.compact-form,.metadata-grid{grid-template-columns:1fr}}

/* =========================================================
   Layer 9 - Enterprise UX Finalization
   Focus: micro-interaction, accessibility, responsive density,
   keyboard flow, loading/skeleton states, and polished feedback.
   ========================================================= */
:root{
  --ux-focus:#2563eb;
  --ux-focus-ring:0 0 0 3px rgba(37,99,235,.18);
  --ux-ease:cubic-bezier(.2,.8,.2,1);
  --ux-dur-fast:120ms;
  --ux-dur:180ms;
  --ux-dur-slow:260ms;
}
html{scroll-behavior:smooth;}
*{box-sizing:border-box;}
button,a,input,select,textarea,.btn{transition:background-color var(--ux-dur) var(--ux-ease),border-color var(--ux-dur) var(--ux-ease),box-shadow var(--ux-dur) var(--ux-ease),transform var(--ux-dur-fast) var(--ux-ease),color var(--ux-dur) var(--ux-ease);}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,summary:focus-visible{outline:none;box-shadow:var(--ux-focus-ring);border-color:var(--ux-focus)!important;}
.skip-link{position:absolute;left:8px;top:-48px;z-index:99999;background:#fff;color:#1e3a8a;border:1px solid #bfdbfe;border-radius:9px;padding:8px 12px;font-weight:850;text-decoration:none;box-shadow:var(--shadow);}
.skip-link:focus{top:8px;}
.side,.main,.topbar,.section,.card,.table-wrap,.page-hero,.page-intro{transition:all var(--ux-dur-slow) var(--ux-ease);}
.nav a,.nav summary{transition:background-color var(--ux-dur) var(--ux-ease),color var(--ux-dur) var(--ux-ease),padding-left var(--ux-dur) var(--ux-ease);}
.nav a:hover,.nav summary:hover{background:#f1f5f9;color:#1e3a8a;}
.nav a.active{background:#eaf2ff;color:#1d4ed8;box-shadow:inset 3px 0 0 #2563eb;}
.side details[open] summary{color:#0f172a;}
.topbar{backdrop-filter:blur(10px);}
.card,.section,.kpi-card,.kpi-mini,.quick-action-card,.document-card,.notification-card{transition:transform var(--ux-dur-fast) var(--ux-ease),box-shadow var(--ux-dur) var(--ux-ease),border-color var(--ux-dur) var(--ux-ease);}
.card:hover,.kpi-card:hover,.kpi-mini:hover,.quick-action-card:hover,.document-card:hover,.notification-card:hover{border-color:#c7d2fe;box-shadow:0 10px 24px rgba(15,23,42,.07);}
.quick-action-card:hover{transform:translateY(-1px);}
.btn:active,button:active,input[type=submit]:active{transform:translateY(0) scale(.99);}
/* Enterprise feedback */
.ac-toast-stack{position:fixed;right:18px;bottom:18px;z-index:9998;display:grid;gap:8px;max-width:min(360px,calc(100vw - 36px));}
.ac-toast{background:#fff;border:1px solid #dbe3ef;border-left:4px solid #2563eb;border-radius:12px;padding:10px 12px;box-shadow:0 12px 30px rgba(15,23,42,.12);font-size:12px;color:#334155;animation:toastIn .22s var(--ux-ease);}
.ac-toast.success{border-left-color:#16a34a}.ac-toast.warning{border-left-color:#d97706}.ac-toast.danger{border-left-color:#dc2626}
@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* Skeleton loading helpers */
.skeleton{position:relative;overflow:hidden;background:#eef2f7;border-radius:8px;min-height:14px;}
.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:skeleton 1.4s infinite;}
@keyframes skeleton{to{transform:translateX(100%)}}
.ac-loading-card{min-width:190px;justify-content:center;}
/* Density modes */
body.ac-density-comfortable{--ac-card-pad:14px;--ac-table-row:38px;--ac-content-pad-x:24px;--ac-content-pad-y:16px;}
body.ac-density-comfortable table{font-size:12.6px;}body.ac-density-comfortable td{padding:7px 9px;}body.ac-density-comfortable .section,body.ac-density-comfortable .card{padding:14px;}
body.ac-density-compact{--ac-card-pad:8px;--ac-table-row:30px;--ac-content-pad-x:16px;--ac-content-pad-y:10px;}
/* Accessible status patterns: color + label support */
.badge,.status{display:inline-flex;align-items:center;gap:4px;min-height:20px;}
.badge:before,.status:before{content:"";width:6px;height:6px;border-radius:99px;background:currentColor;opacity:.75;}
/* Better error and validation visuals */
.msg{border-radius:11px;border:1px solid #dbe3ef;box-shadow:var(--shadow-soft);transition:opacity var(--ux-dur-slow),transform var(--ux-dur-slow);}
.errbg{border-color:#fecaca;background:#fef2f2;color:#991b1b}.okbg{border-color:#bbf7d0;background:#f0fdf4;color:#166534}
.field.error input,.field.error select,.field.error textarea,input.error,select.error,textarea.error{border-color:#dc2626!important;box-shadow:0 0 0 3px rgba(220,38,38,.12)!important;}
.error-text{font-size:11px;color:#b91c1c;margin-top:3px;}
/* Responsive enterprise rhythm */
@media(max-width:1366px){
  :root{--ac-content-pad-x:14px;--ac-content-pad-y:10px;--side:218px;}
  .topbar h1{font-size:16px}.kpi-mini .value,.kpi-card strong{font-size:17px}.table-wrap{max-height:calc(100vh - 230px)}
  .btn,button,input[type=submit]{height:30px;font-size:11.4px}.field input,.field select,.field textarea{font-size:12px;}
}
@media(max-width:768px){
  .side{position:fixed;z-index:50}.main{padding:10px;margin-left:var(--side-c);width:calc(100% - var(--side-c));}
  .topbar{position:sticky;top:0;z-index:20}.topbar-left,.topbar-actions{width:100%}.breadcrumb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90vw;}
  .tabs,.compact-tabs{overflow:auto;white-space:nowrap;display:flex;gap:6px;}
  .btn,button,input[type=submit]{min-height:32px;}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:0.01ms!important;}
}
/* Layer 11+12 Enterprise Operations Center */
.hero.compact{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px;border:1px solid #dbe3ef;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);margin-bottom:12px}.hero.compact h2{font-size:20px;margin:2px 0 4px}.hero.compact p{margin:0;color:#64748b;font-size:12.5px}.grid.cards4{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.grid.cards3{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.timeline.compact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.timeline-item{display:flex;gap:8px;align-items:center;border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:8px 10px;font-size:12px}.timeline-item span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;font-weight:900}.timeline-item.done span{background:#dcfce7;color:#166534}.timeline-item.pending span{background:#fef3c7;color:#92400e}.notice{border:1px solid #dbe3ef;border-left:4px solid #2563eb;border-radius:11px;padding:10px 12px;background:#fff;margin-bottom:8px}.notice p{margin:4px 0;color:#334155}.notice small{color:#64748b}.notice.warning{border-left-color:#d97706;background:#fffbeb}.notice.critical{border-left-color:#dc2626;background:#fef2f2}.notice.info{border-left-color:#0284c7;background:#f0f9ff}.card.action{text-decoration:none;color:inherit;display:block}.card.action strong{display:block;font-size:14px;margin-bottom:4px}.card.action small{color:#64748b}.data-table.compact th,.data-table.compact td{padding:7px 9px;font-size:12.2px}@media(max-width:1100px){.grid.cards4,.grid.cards3,.timeline.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.hero.compact{display:block}.hero-actions{margin-top:10px}.grid.cards4,.grid.cards3,.timeline.compact{grid-template-columns:1fr}}


/* UAT dashboard fix: compact metrics and real vertical charts */
.outcome-metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 12px 0}
.metric-card{background:#fff;border:1px solid #dbe3ef;border-radius:12px;padding:10px 12px;box-shadow:0 4px 14px rgba(15,23,42,.04);min-height:70px}
.metric-card span{display:block;font-size:11px;color:#64748b;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.metric-card strong{display:block;font-size:20px;line-height:1.15;color:#0f172a;font-weight:900}
.metric-card small{display:block;font-size:11px;color:#64748b;margin-top:2px}
.vertical-chart{height:250px;display:flex;align-items:flex-end;gap:18px;padding:18px 14px 8px;border:1px solid #e2e8f0;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fafc);overflow-x:auto;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.vbar-item{min-width:58px;max-width:84px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:5px}
.vbar-plot{height:170px;width:44px;border-radius:10px 10px 6px 6px;background:repeating-linear-gradient(to top,#eef2f7 0,#eef2f7 1px,transparent 1px,transparent 34px);border:1px solid #e2e8f0;display:flex;align-items:flex-end;overflow:hidden}
.vbar-fill{width:100%;border-radius:9px 9px 4px 4px;background:linear-gradient(180deg,#2563eb,#60a5fa);min-height:2px;transition:height .25s ease}
.vbar-fill.good{background:linear-gradient(180deg,#2563eb,#60a5fa)}
.vbar-fill.mid{background:linear-gradient(180deg,#d97706,#fbbf24)}
.vbar-fill.low{background:linear-gradient(180deg,#dc2626,#f87171)}
.vbar-value{font-size:12px;font-weight:800;color:#0f172a;line-height:1}
.vbar-label{font-size:11px;font-weight:700;color:#334155;text-align:center;line-height:1.15;max-width:84px;white-space:normal;word-break:break-word}
.empty-chart{border:1px dashed #cbd5e1;border-radius:12px;padding:18px;background:#f8fafc;color:#64748b}.empty-chart strong{display:block;color:#334155;margin-bottom:4px}.empty-chart p{margin:0;font-size:12px}
@media(max-width:1100px){.outcome-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.vertical-chart{height:230px;gap:12px}.vbar-plot{height:150px;width:38px}}
@media(max-width:720px){.outcome-metric-strip{grid-template-columns:1fr}.vertical-chart{height:220px}}


/* UAT searchable dropdown enhancement */
.ac-select-search-wrap{display:flex;flex-direction:column;gap:6px}
.ac-select-search{height:30px;border:1px solid var(--border,#d8e0ea);border-radius:8px;padding:0 10px;font-size:12.5px;background:#fff;color:var(--text,#132033)}
.ac-select-search:focus{outline:2px solid rgba(37,99,235,.18);border-color:#2563eb}

/* =========================================================
   ACEDS Sprint 1 — Design Foundation
   Academic Core Enterprise Design System · Light only
   Focus: premium, elegant, modern, minimal, consistent.
   This layer intentionally changes visual language only.
   ========================================================= */
:root{
  /* ACEDS Brand Core */
  --aceds-bg:#f7f9fc;
  --aceds-bg-elevated:#ffffff;
  --aceds-bg-subtle:#f1f5f9;
  --aceds-text:#111827;
  --aceds-text-muted:#64748b;
  --aceds-border:#e5e7eb;
  --aceds-border-strong:#cbd5e1;
  --aceds-primary:#2563eb;
  --aceds-primary-strong:#1d4ed8;
  --aceds-primary-soft:#eff6ff;
  --aceds-success:#16a34a;
  --aceds-warning:#f59e0b;
  --aceds-danger:#dc2626;
  --aceds-info:#0284c7;

  /* ACEDS Typography */
  --aceds-font:Inter,"Plus Jakarta Sans","Segoe UI",Roboto,Arial,sans-serif;
  --aceds-fs-display:22px;
  --aceds-fs-page:18px;
  --aceds-fs-section:15px;
  --aceds-fs-card:14px;
  --aceds-fs-body:13px;
  --aceds-fs-small:12px;
  --aceds-fs-caption:11px;
  --aceds-line:1.45;

  /* ACEDS Spacing, radius, shadow */
  --aceds-space-1:4px;
  --aceds-space-2:8px;
  --aceds-space-3:12px;
  --aceds-space-4:16px;
  --aceds-space-5:20px;
  --aceds-space-6:24px;
  --aceds-radius-sm:8px;
  --aceds-radius-md:12px;
  --aceds-radius-lg:16px;
  --aceds-shadow-soft:0 1px 2px rgba(15,23,42,.04),0 8px 22px rgba(15,23,42,.05);
  --aceds-shadow-hover:0 8px 28px rgba(15,23,42,.09);
  --aceds-focus:0 0 0 3px rgba(37,99,235,.16);

  /* Map old ACDL tokens to ACEDS tokens */
  --bg:var(--aceds-bg);
  --bg-soft:#edf2f8;
  --surface:var(--aceds-bg-elevated);
  --surface-soft:var(--aceds-bg-subtle);
  --text:var(--aceds-text);
  --text-soft:#334155;
  --muted:var(--aceds-text-muted);
  --line:var(--aceds-border);
  --line-strong:var(--aceds-border-strong);
  --primary:var(--aceds-primary);
  --primary-2:var(--aceds-primary-strong);
  --primary-soft:var(--aceds-primary-soft);
  --success:var(--aceds-success);
  --warning:#b45309;
  --danger:#b91c1c;
  --font:var(--aceds-font);
  --fs-base:var(--aceds-fs-body);
  --fs-page:var(--aceds-fs-page);
  --fs-display:var(--aceds-fs-display);
  --lh:var(--aceds-line);
  --r:var(--aceds-radius-md);
  --r-lg:var(--aceds-radius-md);
  --r-xl:var(--aceds-radius-lg);
  --shadow:var(--aceds-shadow-soft);
  --shadow-soft:0 1px 2px rgba(15,23,42,.04);
  --focus:var(--aceds-focus);
}

body{
  font-family:var(--aceds-font);
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.05), transparent 34rem),
    linear-gradient(180deg,#fbfdff 0%,#f2f6fb 100%);
  color:var(--aceds-text);
  font-size:var(--aceds-fs-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ACEDS elevated shell */
.topbar{
  background:rgba(248,250,252,.88);
  border-bottom:1px solid rgba(226,232,240,.82);
  backdrop-filter:blur(18px) saturate(1.35);
}
.topbar h1{
  font-weight:780;
  letter-spacing:-.03em;
  color:#0f172a;
}
.breadcrumb{
  letter-spacing:.01em;
  color:#7a8797;
}

/* ACEDS sidebar foundation */
.side{
  background:linear-gradient(180deg,#0b1220 0%,#111827 55%,#172033 100%);
  box-shadow:8px 0 30px rgba(15,23,42,.16);
}
.brand{
  border-color:rgba(255,255,255,.10);
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.brand:before{
  background:linear-gradient(145deg,#3b82f6,#1d4ed8);
  box-shadow:0 8px 20px rgba(37,99,235,.28);
}
.nav details{
  border-color:rgba(255,255,255,.075);
  background:rgba(255,255,255,.025);
}
.nav summary{
  color:#9fb2cc;
  font-weight:800;
}
.nav>a,.nav details a{
  color:#d6e3f5;
}
.nav a:hover,.nav a.active,.nav summary:hover{
  background:rgba(96,165,250,.13);
}
.nav a.active{
  background:rgba(96,165,250,.18);
  box-shadow:inset 3px 0 0 #60a5fa;
}

/* ACEDS component foundation */
.card,.section,.form-card,.side-panel,.help-panel,.identity-section,.page-panel{
  border-color:rgba(226,232,240,.92);
  border-radius:var(--aceds-radius-md);
  box-shadow:var(--aceds-shadow-soft);
  transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.card:hover,.section:hover,.form-card:hover,.page-panel:hover{
  border-color:#d7e3f2;
  box-shadow:var(--aceds-shadow-hover);
  transform:translateY(-1px);
}
.card h3{
  color:#64748b;
  font-weight:800;
  letter-spacing:.075em;
}
.metric{
  color:#0f172a;
  font-weight:820;
}

/* ACEDS buttons */
.btn,button,input[type=submit]{
  border-radius:10px;
  font-weight:780;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.btn.primary,input[type=submit]{
  background:linear-gradient(180deg,var(--aceds-primary),var(--aceds-primary-strong));
  border-color:var(--aceds-primary-strong);
  box-shadow:0 4px 12px rgba(37,99,235,.18);
}
.btn.primary:hover,input[type=submit]:hover{
  box-shadow:0 7px 18px rgba(37,99,235,.22);
}
.btn.secondary{
  background:var(--aceds-primary-soft);
  color:var(--aceds-primary-strong);
  border-color:#bfdbfe;
}
.btn.ghost{
  background:#fff;
  color:#334155;
  border-color:#dbe3ee;
}
.btn.danger{
  color:var(--aceds-danger);
  border-color:#fecaca;
  background:#fff;
}

/* ACEDS inputs */
input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],select,textarea{
  border-color:#d8e1ed;
  border-radius:10px;
  background:#fff;
}
input:focus,select:focus,textarea:focus{
  border-color:#93c5fd;
  box-shadow:var(--aceds-focus);
}
.searchbox input{
  border-radius:999px;
  box-shadow:0 1px 2px rgba(15,23,42,.035);
}

/* ACEDS table foundation */
.table-wrap, .matrix-scroll{
  border-color:#e5e7eb;
  border-radius:14px;
  box-shadow:0 1px 2px rgba(15,23,42,.03);
}
thead th{
  background:linear-gradient(180deg,#f8fafc,#f1f5f9);
  color:#475569;
  font-weight:800;
  letter-spacing:.04em;
}
tbody tr:hover td{
  background:#f8fbff;
}

/* ACEDS badges and alerts */
.badge,.pill{
  border-radius:999px;
  font-weight:780;
}
.msg,.alert{
  border-radius:12px;
  box-shadow:0 1px 2px rgba(15,23,42,.035);
}

/* ACEDS dashboard/chart foundation */
.chart-box,.chart-card,.kpi-card{
  border-radius:16px;
  border:1px solid rgba(226,232,240,.9);
  background:#fff;
  box-shadow:var(--aceds-shadow-soft);
}
.bar-vertical,.chart-bar,.mini-bar-fill{
  border-radius:999px 999px 4px 4px;
  background:linear-gradient(180deg,#3b82f6,#2563eb);
}

/* ACEDS empty state foundation */
.empty-state{
  background:linear-gradient(180deg,#fff,#f8fafc);
  border:1px dashed #cbd5e1;
  border-radius:16px;
}
.empty-state:before{
  background:var(--aceds-primary-soft);
  color:var(--aceds-primary-strong);
}

/* ACEDS login foundation */
.login-shell{
  border-radius:26px;
  border-color:rgba(226,232,240,.9);
  box-shadow:0 30px 90px rgba(15,23,42,.14);
}
.login-hero{
  background:
    radial-gradient(circle at 20% 20%, rgba(96,165,250,.34), transparent 24rem),
    linear-gradient(145deg,#0b1220,#1e3a8a 70%,#2563eb);
}
.login-mark{
  background:linear-gradient(145deg,#60a5fa,#2563eb);
}
.login-card-head h2{
  letter-spacing:-.025em;
}

/* ACEDS accessibility */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}

/* ACEDS Sprint 2 — Enterprise Component Library
   Component tokens and reusable patterns for Academic Core. */
:root{
  --ac-color-primary: #2563eb;
  --ac-color-primary-strong: #1d4ed8;
  --ac-color-primary-soft: #eff6ff;
  --ac-color-neutral-50: #f8fafc;
  --ac-color-neutral-100: #f1f5f9;
  --ac-color-neutral-200: #e2e8f0;
  --ac-color-neutral-500: #64748b;
  --ac-color-neutral-700: #334155;
  --ac-color-neutral-900: #0f172a;
  --ac-radius-sm: 8px;
  --ac-radius-md: 12px;
  --ac-radius-lg: 16px;
  --ac-shadow-card: 0 1px 2px rgba(15,23,42,.04), 0 10px 28px rgba(15,23,42,.06);
  --ac-shadow-hover: 0 2px 6px rgba(15,23,42,.08), 0 16px 38px rgba(15,23,42,.10);
  --ac-transition: 150ms ease;
}
.ac-stack{display:flex;flex-direction:column;gap:var(--s3)}
.ac-inline{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.ac-cluster{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap}
.ac-kicker{font-size:10.5px;text-transform:uppercase;letter-spacing:.075em;font-weight:900;color:var(--muted)}
.ac-title{font-size:18px;line-height:1.2;font-weight:900;letter-spacing:-.025em;color:var(--text)}
.ac-description{font-size:12.2px;color:var(--muted);max-width:760px}
.ac-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--ac-radius-md);box-shadow:var(--shadow-soft);padding:var(--s4)}
.ac-panel:hover{border-color:#cbdff7;box-shadow:var(--ac-shadow-card)}
.ac-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3);margin-bottom:var(--s3)}
.ac-panel-title{font-size:14px;font-weight:900;color:var(--text);margin:0}
.ac-panel-subtitle{font-size:11.5px;color:var(--muted);margin:2px 0 0}
.ac-metric-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-soft);padding:12px;min-height:82px;display:flex;justify-content:space-between;gap:10px;transition:transform var(--ac-transition),box-shadow var(--ac-transition),border-color var(--ac-transition)}
.ac-metric-card:hover{transform:translateY(-1px);border-color:#bfdbfe;box-shadow:var(--ac-shadow-hover)}
.ac-metric-icon{width:32px;height:32px;border-radius:10px;background:var(--primary-soft);color:var(--primary-2);display:grid;place-items:center;font-size:15px;flex:0 0 auto}
.ac-metric-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--muted);margin-bottom:3px}
.ac-metric-value{font-size:22px;line-height:1;font-weight:950;letter-spacing:-.04em;color:var(--text)}
.ac-metric-delta{font-size:11px;font-weight:850;border-radius:999px;padding:3px 7px;background:#ecfdf3;color:#15803d;align-self:flex-start;white-space:nowrap}
.ac-metric-delta.warning{background:var(--warning-soft);color:var(--warning)}
.ac-metric-delta.danger{background:var(--danger-soft);color:var(--danger)}
.ac-btn{height:34px;border-radius:10px;border:1px solid transparent;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:11.8px;font-weight:900;line-height:1;cursor:pointer;transition:transform var(--ac-transition),background var(--ac-transition),border-color var(--ac-transition),box-shadow var(--ac-transition);white-space:nowrap}
.ac-btn:hover{transform:translateY(-1px)}
.ac-btn:focus-visible{outline:none;box-shadow:var(--focus)}
.ac-btn-primary{background:var(--primary-2);border-color:var(--primary-2);color:#fff}.ac-btn-primary:hover{background:var(--primary)}
.ac-btn-secondary{background:var(--primary-soft);border-color:#bfdbfe;color:var(--primary)}
.ac-btn-outline{background:#fff;border-color:var(--line-strong);color:var(--text-soft)}
.ac-btn-danger{background:#fff;border-color:#fecaca;color:var(--danger)}
.ac-btn-sm{height:28px;border-radius:8px;padding:0 8px;font-size:10.8px}
.ac-badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:10.4px;font-weight:900;border:1px solid var(--line);background:#fff;color:var(--text-soft);white-space:nowrap}
.ac-badge.success{background:var(--success-soft);border-color:#bbf7d0;color:var(--success)}
.ac-badge.warning{background:var(--warning-soft);border-color:#fed7aa;color:var(--warning)}
.ac-badge.danger{background:var(--danger-soft);border-color:#fecaca;color:var(--danger)}
.ac-badge.info{background:var(--primary-soft);border-color:#bfdbfe;color:var(--primary)}
.ac-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-soft);padding:7px 8px;margin-bottom:10px}
.ac-toolbar-title{font-size:12px;font-weight:950;color:var(--text)}
.ac-filterbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-soft);margin-bottom:10px}
.ac-filterbar select,.ac-filterbar input{min-height:31px;border-radius:9px;font-size:11.8px}
.ac-input-group{display:flex;flex-direction:column;gap:4px}.ac-input-group label{font-size:11.7px;font-weight:900;color:var(--text-soft)}
.ac-form-section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow-soft);margin-bottom:12px}
.ac-form-section h2{font-size:14.5px;font-weight:950;letter-spacing:-.02em;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.ac-data-grid{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff;box-shadow:var(--shadow-soft)}
.ac-data-grid .table-wrap{border:0;border-radius:0;box-shadow:none;margin:0;max-height:560px}
.ac-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border-top:1px solid var(--line);background:#fbfdff;color:var(--muted);font-size:11.2px}
.ac-empty{border:1px dashed #cbd5e1;background:#f8fafc;border-radius:14px;padding:24px;text-align:center;color:var(--muted);display:grid;place-items:center;gap:8px}
.ac-empty-icon{width:42px;height:42px;border-radius:14px;background:#eff6ff;color:#2563eb;display:grid;place-items:center;font-size:20px}
.ac-empty h3{margin:0;color:var(--text);font-size:14px;font-weight:950}.ac-empty p{margin:0;font-size:12px;max-width:520px}
.ac-alert{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;display:flex;gap:9px;align-items:flex-start;font-size:12px}.ac-alert.info{background:var(--primary-soft);border-color:#bfdbfe}.ac-alert.warning{background:var(--warning-soft);border-color:#fed7aa}.ac-alert.danger{background:var(--danger-soft);border-color:#fecaca}.ac-alert.success{background:var(--success-soft);border-color:#bbf7d0}
.ac-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:10px;overflow:auto}.ac-tabs a,.ac-tabs button{height:32px;padding:0 11px;border:1px solid transparent;border-bottom:0;background:transparent;border-radius:10px 10px 0 0;color:var(--muted);font-size:11.6px;font-weight:900}.ac-tabs .active,.ac-tabs a:hover,.ac-tabs button:hover{background:#fff;border-color:var(--line);color:var(--primary);box-shadow:0 -1px 0 #fff inset}
.ac-stepper{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.ac-step{background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px;display:flex;gap:9px;min-height:72px}.ac-step-num{width:28px;height:28px;border-radius:10px;background:#eff6ff;color:#1d4ed8;display:grid;place-items:center;font-size:11px;font-weight:950;flex:0 0 auto}.ac-step.done .ac-step-num{background:#ecfdf3;color:#15803d}.ac-step.warn .ac-step-num{background:#fff7ed;color:#b45309}.ac-step h3{margin:0 0 3px;font-size:12.4px}.ac-step p{margin:0;color:var(--muted);font-size:10.8px}
.ac-skeleton{position:relative;overflow:hidden;background:#eaf0f7;border-radius:10px;min-height:16px}.ac-skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:ac-shimmer 1.4s infinite}@keyframes ac-shimmer{100%{transform:translateX(100%)}}
.ac-toast-region{position:fixed;right:16px;bottom:16px;z-index:9999;display:flex;flex-direction:column;gap:8px}.ac-toast{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:10px 12px;min-width:240px;font-size:12px;color:var(--text);animation:ac-toast-in .18s ease}.ac-toast.success{border-color:#bbf7d0}.ac-toast.warning{border-color:#fed7aa}.ac-toast.danger{border-color:#fecaca}@keyframes ac-toast-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.ac-component-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.ac-component-swatch{display:flex;align-items:center;gap:8px;margin:5px 0}.ac-color-chip{width:24px;height:24px;border-radius:8px;border:1px solid rgba(15,23,42,.08)}
@media(max-width:900px){.ac-toolbar,.ac-cluster{align-items:stretch}.ac-toolbar>*,.ac-cluster>*{max-width:100%}.ac-filterbar{display:grid}.ac-metric-card{min-height:76px}.ac-component-grid{grid-template-columns:1fr}}

/* ACEDS Sprint 3 · Workspace Navigation Framework */
.workspace-nav{display:flex;flex-direction:column;gap:6px}
.workspace-root{min-height:34px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07)}
.workspace-root .nav-ico,.workspace-group summary .nav-ico{width:20px;height:20px;display:grid;place-items:center;font-size:14px;flex:0 0 auto;filter:saturate(.95)}
.workspace-group{border-radius:14px!important;background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.075)!important;margin:4px 0 6px!important}
.workspace-group summary{min-height:34px;padding:8px 9px!important;text-transform:none!important;letter-spacing:0!important;font-size:12.3px!important;color:#e2edff!important;font-weight:850!important;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025));}
.workspace-group summary span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace-group[open] summary{border-bottom:1px solid rgba(255,255,255,.06);border-bottom-left-radius:0;border-bottom-right-radius:0}
.workspace-group a{margin:0 7px 4px 12px!important;min-height:28px;padding:6px 9px 6px 12px!important;font-size:11.7px!important;color:#cbd9ef!important;position:relative}
.workspace-group a:before{content:""!important;position:absolute;left:4px;width:4px!important;height:4px!important;background:#7dd3fc!important;opacity:.65!important}
.workspace-group a:hover{background:rgba(96,165,250,.13)!important;color:#fff!important}
.workspace-group a.active{background:rgba(96,165,250,.20)!important;color:#fff!important;box-shadow:inset 2px 0 0 #60a5fa!important}
.workspace-group.active-workspace{border-color:rgba(96,165,250,.24)!important;background:rgba(37,99,235,.08)!important}
.workspace-group.active-workspace summary{color:#fff!important;background:linear-gradient(180deg,rgba(37,99,235,.18),rgba(255,255,255,.04))}
body.sidebar-collapsed .workspace-root .nav-ico,body.sidebar-collapsed .workspace-group summary .nav-ico{width:24px;height:24px;font-size:15px}
body.sidebar-collapsed .workspace-group a{display:none!important}
body.sidebar-collapsed .workspace-group{overflow:visible!important;margin:5px 0!important}
body.sidebar-collapsed .workspace-group summary{border-radius:12px!important;border-bottom:0!important;justify-content:center!important;padding:7px!important}
body.sidebar-collapsed .workspace-root{justify-content:center!important;padding:7px!important}
body.sidebar-collapsed .workspace-root span:last-child{display:none!important}
body.sidebar-collapsed .workspace-root .nav-ico{display:grid!important}
.workspace-header{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:12px;box-shadow:var(--shadow-soft);display:flex;align-items:center;justify-content:space-between;gap:12px}
.workspace-header h2{font-size:16px;margin:0;color:#142033;letter-spacing:-.02em}.workspace-header p{margin:2px 0 0;color:var(--muted);font-size:11.6px}.workspace-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.workspace-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px;border-radius:999px;border:1px solid #dbeafe;background:#eff6ff;color:#1e3a8a;font-size:10.5px;font-weight:850}
@media(max-width:1024px){.workspace-header{flex-direction:column;align-items:flex-start}.workspace-actions{width:100%}.workspace-chip{height:24px}}


/* ACEDS Sprint 4 — Executive Home Dashboard */
.ac-home{display:grid;gap:14px}
.home-hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:14px;align-items:stretch}
.home-hero-main{border:1px solid rgba(203,213,225,.9);background:linear-gradient(135deg,#ffffff 0%,#f8fbff 52%,#eef6ff 100%);border-radius:22px;padding:22px 24px;box-shadow:0 18px 54px rgba(15,23,42,.08);position:relative;overflow:hidden}
.home-hero-main:after{content:"";position:absolute;right:-42px;top:-50px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.12),transparent 64%)}
.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:10px;font-weight:900;color:#2563eb;margin-bottom:5px;display:block}
.home-hero-main h2{margin:0 0 6px;font-size:24px;letter-spacing:-.035em;color:#0f172a;font-weight:900}
.home-hero-main p{margin:0;max-width:760px;font-size:13px;line-height:1.55;color:#475569}
.hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.readiness-orb{border:1px solid rgba(191,219,254,.9);background:linear-gradient(180deg,#ffffff,#eff6ff);border-radius:22px;padding:18px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;box-shadow:0 18px 54px rgba(37,99,235,.10)}
.readiness-orb span{font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:#475569}.readiness-orb strong{font-size:42px;letter-spacing:-.06em;color:#1d4ed8;line-height:1;margin:12px 0 8px}.readiness-orb em{font-style:normal;font-size:12px;font-weight:800;color:#334155;background:#fff;border:1px solid #dbeafe;border-radius:999px;padding:5px 10px}
.metric-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.metric-card.premium{min-height:82px;border:1px solid #e2e8f0;background:#fff;border-radius:18px;padding:13px 14px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 2px rgba(15,23,42,.04)}.metric-card.premium:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(15,23,42,.08);border-color:#cbd5e1}.metric-icon{width:36px;height:36px;border-radius:14px;background:#eff6ff;display:grid;place-items:center;font-size:17px}.metric-card p{margin:0 0 2px;font-size:11px;text-transform:uppercase;letter-spacing:.055em;color:#64748b;font-weight:900}.metric-card strong{font-size:24px;letter-spacing:-.04em;color:#0f172a;display:block}.metric-card small{font-size:11px;color:#64748b}
.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px}.home-grid.lower{grid-template-columns:1fr 1fr}.workspace-panel{border:1px solid #e2e8f0;background:#fff;border-radius:18px;padding:14px;box-shadow:0 1px 2px rgba(15,23,42,.04)}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-header h2{margin:0;font-size:15.5px;letter-spacing:-.02em}.panel-header.compact{margin-bottom:8px}.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.action-tile{border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;padding:13px;display:flex;flex-direction:column;gap:6px;min-height:110px;transition:.16s ease}.action-tile:hover{background:#fff;border-color:#bfdbfe;box-shadow:0 14px 36px rgba(37,99,235,.08);transform:translateY(-1px)}.action-tile span{font-size:21px}.action-tile strong{font-size:13.2px;color:#0f172a}.action-tile small{font-size:11.2px;color:#64748b;line-height:1.35}.readiness-list{display:grid;gap:8px}.readiness-list div{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.readiness-list span{font-size:11.6px;color:#475569;font-weight:750}.readiness-list strong{font-size:11.5px;color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:3px 8px}.activity-list{display:grid;gap:8px}.activity-item{display:flex;align-items:center;gap:9px;border:1px solid #e2e8f0;background:#f8fafc;border-radius:13px;padding:9px}.activity-item .dot{width:8px;height:8px;border-radius:50%;background:#2563eb;flex:0 0 auto}.activity-item strong{display:block;font-size:12.2px}.activity-item small{display:block;font-size:10.8px;color:#64748b;margin-top:2px}.notification-stack{display:grid;gap:9px}.notice-card{border:1px solid #e2e8f0;border-radius:14px;padding:11px 12px;background:#f8fafc}.notice-card strong{display:block;font-size:12.5px;margin-bottom:3px}.notice-card span{display:block;font-size:11.4px;color:#64748b}.notice-card.info{border-left:4px solid #2563eb}.notice-card.warning{border-left:4px solid #f59e0b}.notice-card.success{border-left:4px solid #16a34a}.empty-state.elegant{border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc}
@media(max-width:1366px){.home-hero{grid-template-columns:1fr 210px}.home-hero-main h2{font-size:21px}.metric-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.metric-card.premium{padding:10px;min-height:74px}.metric-icon{width:30px;height:30px;border-radius:11px}.metric-card strong{font-size:20px}.home-grid{grid-template-columns:1fr}.home-grid.lower{grid-template-columns:1fr 1fr}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.home-hero,.home-grid,.home-grid.lower{grid-template-columns:1fr}.metric-row,.action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ACEDS Sprint 5 - Academic Workspace */
.workspace-hero.academic {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4, 16px);
  align-items: flex-start;
  padding: 18px 20px;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 55%, #eef6ff 100%);
  box-shadow: var(--shadow-soft, 0 8px 24px rgba(15, 23, 42, .06));
  margin-bottom: 16px;
}
.workspace-hero.academic .eyebrow {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #2563eb;
  font-weight: 700;
  margin-bottom: 6px;
}
.workspace-hero.academic h2 {
  margin: 0 0 4px;
  font-size: 20px;
  line-height: 1.25;
  color: #0f172a;
}
.workspace-hero.academic p {
  margin: 0;
  color: #64748b;
  max-width: 760px;
  font-size: 13px;
}
.workspace-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.academic-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  margin-bottom: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
}
.academic-toolbar .left,
.academic-toolbar .right { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.academic-info-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.academic-mini-card {
  border: 1px solid #e2e8f0;
  background: #fff;
  border-radius: 14px;
  padding: 12px 14px;
  box-shadow: 0 3px 12px rgba(15,23,42,.04);
}
.academic-mini-card span { display: block; font-size: 12px; color: #64748b; }
.academic-mini-card strong { display: block; margin-top: 4px; font-size: 18px; color: #0f172a; }
.data-grid table, table.data-grid { width: 100%; border-collapse: separate; border-spacing: 0; }
.data-grid th, table.data-grid th { position: sticky; top: 0; z-index: 1; background: #f8fafc; }
.data-grid tr:hover td, table.data-grid tr:hover td { background: #f8fbff; }
.form-section {
  border: 1px solid #e2e8f0;
  background: #fff;
  border-radius: 16px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.form-section-title { font-size: 15px; margin: 0 0 10px; color: #0f172a; }
@media (max-width: 1100px) {
  .academic-info-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .workspace-hero.academic { flex-direction: column; }
  .workspace-actions { justify-content: flex-start; }
}


/* ACEDS Sprint 6 · Learning Workspace
   Standardizes learning pages: Template Skor, Upload Skor, Calculation Center,
   Monitoring CPL/PL, and Outcome Dashboard without changing OBE engine logic. */
.learning-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:12px;
  margin-bottom:12px;
}
.learning-hero-main{
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 58%,#eef6ff 100%);
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px 18px;
  box-shadow:var(--shadow-soft);
  position:relative;
  overflow:hidden;
}
.learning-hero-main:after{
  content:"";
  position:absolute;
  right:-30px;top:-42px;
  width:150px;height:150px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(37,99,235,.10),rgba(37,99,235,0));
}
.learning-hero-kicker{font-size:10.6px;text-transform:uppercase;letter-spacing:.09em;color:var(--primary-2);font-weight:900;margin-bottom:4px}
.learning-hero h2{font-size:18px;line-height:1.2;margin:0 0 5px;font-weight:900;color:#0f172a}
.learning-hero p{font-size:12.5px;color:var(--muted);max-width:760px;margin:0}
.learning-status-card{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;
  box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:7px;justify-content:center
}
.learning-status-card .label{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:850}
.learning-status-card .value{font-size:24px;font-weight:950;color:#0f172a;line-height:1}
.learning-status-card .hint{font-size:11.4px;color:var(--muted)}
.learning-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-bottom:12px}
.learning-step-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px 12px;box-shadow:var(--shadow-soft);display:flex;gap:9px;align-items:flex-start;min-height:72px}
.learning-step-number{width:28px;height:28px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:950;font-size:12px;flex:0 0 auto}
.learning-step-card h3{margin:0 0 2px;font-size:12.5px;font-weight:900;color:#0f172a}
.learning-step-card p{margin:0;color:var(--muted);font-size:11.2px;line-height:1.35}
.learning-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:var(--shadow-soft);margin-bottom:12px}
.learning-panel-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.learning-panel-title{display:flex;flex-direction:column;gap:2px}.learning-panel-title strong{font-size:13.5px;color:#0f172a}.learning-panel-title span{font-size:11.2px;color:var(--muted)}
.learning-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:7px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;margin-bottom:10px}
.learning-toolbar .left,.learning-toolbar .right{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.learning-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-bottom:10px}
.learning-chart-card{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:var(--shadow-soft);min-height:220px}
.learning-chart-title{font-size:12.8px;font-weight:900;color:#0f172a;margin-bottom:8px}.learning-chart-placeholder{height:160px;border-radius:12px;background:repeating-linear-gradient(90deg,#eef6ff 0 22px,#f8fafc 22px 44px);border:1px solid #dbeafe;display:flex;align-items:end;gap:10px;padding:14px}
.learning-chart-placeholder span{display:block;flex:1;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#60a5fa,#2563eb);min-height:22px}.learning-chart-placeholder span:nth-child(2){height:70%}.learning-chart-placeholder span:nth-child(3){height:55%}.learning-chart-placeholder span:nth-child(4){height:82%}.learning-chart-placeholder span:nth-child(5){height:48%}
.learning-insight{border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px;padding:10px 12px;color:#1e3a8a;font-size:12px;line-height:1.45;margin-top:8px}
.learning-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.learning-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.learning-kpi{background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px 12px;box-shadow:var(--shadow-soft)}.learning-kpi .k{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:850}.learning-kpi .v{font-size:18px;font-weight:950;color:#0f172a}.learning-kpi .d{font-size:10.8px;color:var(--muted)}
@media(max-width:980px){.learning-hero,.learning-grid-2,.learning-grid-3{grid-template-columns:1fr}.learning-hero h2{font-size:16px}}

/* ACEDS Sprint 7 - Analytics Workspace */
.analytics-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 18px;
  align-items: stretch;
  margin-bottom: 18px;
}
.analytics-hero-main {
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 52%, #eef6ff 100%);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 20px;
  padding: 22px 24px;
  box-shadow: var(--shadow-sm, 0 4px 14px rgba(15, 23, 42, .06));
}
.analytics-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .09em;
  color: #2563eb;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.analytics-hero-main h2 {
  font-size: 24px;
  line-height: 1.15;
  margin: 0 0 8px;
  color: #0f172a;
}
.analytics-hero-main p {
  max-width: 760px;
  margin: 0;
  color: #64748b;
  font-size: 13.5px;
  line-height: 1.55;
}
.analytics-hero-side {
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 20px;
  padding: 18px;
  background: #ffffff;
  box-shadow: var(--shadow-sm, 0 4px 14px rgba(15, 23, 42, .06));
}
.analytics-hero-side .label { font-size: 12px; color: #64748b; font-weight: 700; }
.analytics-hero-side .score { font-size: 34px; line-height: 1; margin: 10px 0 6px; font-weight: 850; color: #1d4ed8; }
.analytics-hero-side .desc { font-size: 12.5px; color: #64748b; }
.analytics-switcher {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0 16px;
}
.analytics-switcher .tab {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 40px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #334155;
  font-size: 12.5px;
  font-weight: 750;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.analytics-switcher .tab:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(15,23,42,.08); border-color: #bfdbfe; }
.analytics-switcher .tab.active { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.analytics-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0;
}
.analytics-metric-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 14px 16px;
  box-shadow: 0 2px 10px rgba(15,23,42,.04);
}
.analytics-metric-card span { display:block; font-size: 12px; color:#64748b; font-weight:700; }
.analytics-metric-card strong { display:block; font-size: 24px; margin: 6px 0 2px; color:#0f172a; }
.analytics-metric-card small { color:#64748b; font-size: 12px; }
.analytics-board {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 14px;
}
.analytics-panel {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 2px 12px rgba(15,23,42,.04);
}
.analytics-panel h2 { margin: 0 0 12px; font-size: 15px; color:#0f172a; }
.analytics-panel-subtitle { margin: -8px 0 12px; color:#64748b; font-size:12px; }
.analytics-bar-chart {
  display:flex;
  gap: 12px;
  align-items:flex-end;
  min-height: 235px;
  padding: 12px 4px 2px;
  overflow-x:auto;
}
.analytics-bar-item { min-width: 54px; display:flex; flex-direction:column; align-items:center; gap:6px; }
.analytics-bar-plot { height: 170px; width: 34px; border-radius: 999px; background:#eef2f7; display:flex; align-items:flex-end; padding:4px; }
.analytics-bar-fill { width:100%; border-radius:999px; min-height: 4px; background: linear-gradient(180deg,#60a5fa,#2563eb); box-shadow: inset 0 1px 0 rgba(255,255,255,.35); }
.analytics-bar-fill.good { background: linear-gradient(180deg,#86efac,#16a34a); }
.analytics-bar-fill.mid { background: linear-gradient(180deg,#fcd34d,#f59e0b); }
.analytics-bar-fill.low { background: linear-gradient(180deg,#fca5a5,#dc2626); }
.analytics-bar-value { font-size: 11px; font-weight:800; color:#334155; }
.analytics-bar-label { max-width:62px; font-size:11px; color:#64748b; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.analytics-insight-card {
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 10px;
}
.analytics-insight-card h3 { font-size: 13px; margin: 0 0 6px; color:#0f172a; }
.analytics-insight-card p { font-size: 12.5px; margin:0; color:#475569; line-height:1.45; }
.analytics-filter-bar {
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:12px;
  margin-bottom:14px;
}
.analytics-filter-bar .compact-form { align-items: end; }
@media (max-width: 1100px) {
  .analytics-hero, .analytics-board { grid-template-columns: 1fr; }
  .analytics-switcher { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .analytics-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .analytics-switcher, .analytics-metric-grid { grid-template-columns: 1fr; }
}


/* ACEDS Sprint 8 - Reporting Workspace */
.reporting-hero {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 22px 24px;
  border: 1px solid #dbeafe;
  border-radius: 22px;
  background:
    radial-gradient(circle at top right, rgba(59,130,246,.14), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fbff 56%, #eef6ff 100%);
  box-shadow: 0 12px 34px rgba(15,23,42,.06);
  margin-bottom: 16px;
}
.reporting-hero h1 { margin: 4px 0 6px; font-size: 25px; letter-spacing: -.025em; color:#0f172a; }
.reporting-hero p { margin:0; color:#64748b; max-width: 760px; line-height:1.5; font-size:13.5px; }
.reporting-hero-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.reporting-workspace-tabs {
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap:10px;
  margin: 12px 0 16px;
}
.report-tab {
  display:block;
  padding:12px 14px;
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#fff;
  text-decoration:none;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.report-tab span { display:block; color:#0f172a; font-weight:800; font-size:13px; }
.report-tab small { display:block; color:#64748b; font-size:11.5px; margin-top:3px; }
.report-tab:hover { transform: translateY(-1px); border-color:#bfdbfe; box-shadow:0 8px 22px rgba(15,23,42,.07); }
.report-tab.active { background:#eff6ff; border-color:#93c5fd; box-shadow: inset 0 0 0 1px rgba(37,99,235,.08); }
.reporting-metric-grid {
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:12px;
  margin-bottom:14px;
}
.reporting-metric-grid .kpi-card {
  border-radius:18px;
  padding:14px 16px;
  border:1px solid #e2e8f0;
  background:#fff;
  box-shadow:0 4px 18px rgba(15,23,42,.05);
}
.reporting-panel {
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:20px;
  padding:16px;
  margin-bottom:14px;
  box-shadow:0 4px 18px rgba(15,23,42,.045);
}
.reporting-stepper {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin: 4px 0 14px;
}
.reporting-stepper span {
  border:1px solid #e2e8f0;
  background:#f8fafc;
  color:#64748b;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:750;
}
.reporting-stepper span.active { background:#eff6ff; color:#1d4ed8; border-color:#bfdbfe; }
.metadata-grid {
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:10px;
  margin-bottom:12px;
}
.metadata-grid > div {
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:14px;
  padding:10px 12px;
  color:#334155;
  font-size:12.5px;
}
@media (max-width: 1100px) {
  .reporting-hero { grid-template-columns: 1fr; }
  .reporting-workspace-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reporting-metric-grid, .metadata-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .reporting-workspace-tabs, .reporting-metric-grid, .metadata-grid { grid-template-columns: 1fr; }
  .reporting-hero-actions { justify-content:flex-start; }
}


/* ACEDS Sprint 9 · Governance Workspace + Enterprise Productivity */
.cmd-btn,.fav-btn{height:34px;border:1px solid var(--border,#e2e8f0);background:#fff;border-radius:10px;padding:0 10px;font-weight:700;color:var(--muted,#64748b);box-shadow:0 1px 2px rgba(15,23,42,.04);cursor:pointer}
.cmd-btn:hover,.fav-btn:hover{border-color:#bfdbfe;color:#1d4ed8;background:#eff6ff}
.command-palette{position:fixed;inset:0;z-index:1000;display:none}.command-palette.open{display:block}.cmd-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.28);backdrop-filter:blur(2px)}.cmd-dialog{position:relative;margin:8vh auto 0;width:min(680px,calc(100vw - 32px));background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.22);overflow:hidden}.cmd-head{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #e2e8f0;font-weight:800;color:#0f172a}.cmd-close{border:0;background:transparent;font-size:24px;color:#64748b;cursor:pointer}.cmd-input{width:calc(100% - 32px);margin:16px;border:1px solid #cbd5e1;border-radius:12px;padding:12px 14px;font-size:14px;outline:none}.cmd-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.cmd-list{max-height:390px;overflow:auto;padding:0 12px 12px}.cmd-item{display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:#0f172a;padding:11px 12px;border-radius:12px;border:1px solid transparent}.cmd-item:hover,.cmd-item.active{background:#eff6ff;border-color:#bfdbfe}.cmd-item small{color:#64748b;font-size:12px}.cmd-empty{padding:18px;color:#64748b;text-align:center}.cmd-foot{border-top:1px solid #e2e8f0;background:#f8fafc;color:#64748b;font-size:12px;padding:10px 16px}.quick-panel{position:fixed;right:18px;bottom:18px;width:270px;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 18px 50px rgba(15,23,42,.14);z-index:40;overflow:hidden}.quick-panel.closed{display:none}.quick-panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.quick-panel-head button{border:0;background:transparent;color:#64748b;font-size:18px;cursor:pointer}.quick-panel-body{padding:10px}.quick-card{border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;margin-bottom:8px;background:#fff}.quick-card span{display:block;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}.quick-card b{font-size:13px;color:#0f172a}.workspace-group summary{transition:background .15s ease,color .15s ease}.workspace-group.active-workspace>summary{background:linear-gradient(90deg,#eff6ff,#ffffff);color:#1d4ed8;border-radius:12px}.footer{display:flex;justify-content:center;gap:10px;color:#94a3b8;font-size:12px;padding:18px 0}.governance-hero,.workspace-hero{background:linear-gradient(135deg,#ffffff 0%,#eff6ff 100%);border:1px solid #dbeafe;border-radius:18px;padding:18px;margin-bottom:16px;box-shadow:0 8px 24px rgba(15,23,42,.06)}.governance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.governance-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px;box-shadow:0 4px 14px rgba(15,23,42,.04)}.workspace-header-actions{display:flex;gap:8px;flex-wrap:wrap}.notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#dc2626;color:white;font-size:11px;font-weight:800}@media(max-width:900px){.quick-panel{display:none}.cmd-dialog{margin-top:5vh}.topbar-actions{gap:6px}.cmd-btn{display:none}}

/* ACEDS Sprint 10 · Enterprise Polish */
:root{
  --ac-motion-fast:120ms;
  --ac-motion-base:180ms;
  --ac-focus-ring:0 0 0 3px rgba(37,99,235,.18);
}
*{scrollbar-width:thin;scrollbar-color:#cbd5e1 #f8fafc}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:#f8fafc}
*::-webkit-scrollbar-thumb{background:#cbd5e1;border:2px solid #f8fafc;border-radius:999px}
a,button,.btn,input,select,textarea,.card,.kpi-card,.metric-card,.quick-action,.cmd-item,.report-tab,.analytics-switcher .tab{transition:background var(--ac-motion-base) ease,border-color var(--ac-motion-base) ease,box-shadow var(--ac-motion-base) ease,transform var(--ac-motion-fast) ease,color var(--ac-motion-base) ease}
a:focus-visible,button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:none;box-shadow:var(--ac-focus-ring)!important;border-color:#2563eb!important}
.card:hover,.kpi-card:hover,.metric-card:hover,.reporting-panel:hover,.analytics-panel:hover,.governance-card:hover{box-shadow:0 10px 28px rgba(15,23,42,.07);transform:translateY(-1px)}
.btn:active,button:active,.quick-action:active,.cmd-item:active{transform:translateY(0) scale(.985)}
.table-wrap,.data-grid-wrap,.ac-datagrid-wrap{position:relative;overflow:auto;border-radius:16px;border:1px solid #e2e8f0;background:#fff}
table.ac-datagrid, .ac-datagrid-wrap table, .table-wrap table, .data-grid-wrap table{width:100%;border-collapse:separate;border-spacing:0}
table.ac-datagrid thead th,.ac-datagrid-wrap thead th,.table-wrap thead th,.data-grid-wrap thead th{position:sticky;top:0;z-index:2;background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#475569;font-size:12px;letter-spacing:.015em;font-weight:800}
table.ac-datagrid tbody tr,.ac-datagrid-wrap tbody tr,.table-wrap tbody tr,.data-grid-wrap tbody tr{transition:background var(--ac-motion-fast) ease}
table.ac-datagrid tbody tr:hover,.ac-datagrid-wrap tbody tr:hover,.table-wrap tbody tr:hover,.data-grid-wrap tbody tr:hover{background:#f8fbff}
.ac-density-comfort table td,.ac-density-comfort table th{padding-top:12px!important;padding-bottom:12px!important}
.ac-density-compact table td,.ac-density-compact table th{padding-top:7px!important;padding-bottom:7px!important}
.ac-skeleton{position:relative;overflow:hidden;background:#e2e8f0;border-radius:12px;min-height:14px}
.ac-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:acSkeleton 1.15s infinite}
@keyframes acSkeleton{100%{transform:translateX(100%)}}
.ac-loading-overlay{position:fixed;inset:0;z-index:1100;display:none;align-items:center;justify-content:center;background:rgba(248,250,252,.72);backdrop-filter:blur(3px)}
.ac-loading-overlay.open{display:flex}.ac-loading-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:16px 18px;box-shadow:0 24px 70px rgba(15,23,42,.15);color:#0f172a;font-weight:800}.ac-spinner{width:20px;height:20px;border:3px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;animation:acSpin .8s linear infinite}@keyframes acSpin{to{transform:rotate(360deg)}}
.ac-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:180px;padding:28px;border:1px dashed #cbd5e1;background:linear-gradient(180deg,#fff,#f8fafc);border-radius:18px;color:#64748b}.ac-empty-state .icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;font-size:22px;margin-bottom:10px}.ac-empty-state h3{font-size:15px;margin:0 0 6px;color:#0f172a}.ac-empty-state p{max-width:420px;font-size:13px;line-height:1.5;margin:0 0 14px}
.ac-toolbar,.enterprise-toolbar,.page-toolbar{position:sticky;top:0;z-index:20;background:rgba(248,250,252,.86);backdrop-filter:blur(8px);border:1px solid #e2e8f0;border-radius:16px;padding:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.ac-toolbar-left,.ac-toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ac-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;font-size:12px;font-weight:750}.ac-chip.active{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.ac-toast-stack{position:fixed;right:18px;top:72px;z-index:1200;display:flex;flex-direction:column;gap:8px}.ac-toast{min-width:260px;max-width:360px;background:#fff;border:1px solid #e2e8f0;border-left:4px solid #2563eb;border-radius:14px;padding:12px 14px;box-shadow:0 14px 40px rgba(15,23,42,.12);font-size:13px;color:#0f172a}.ac-toast.success{border-left-color:#16a34a}.ac-toast.danger{border-left-color:#dc2626}.ac-toast.warning{border-left-color:#f59e0b}.ac-toast.info{border-left-color:#2563eb}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
@media (max-width: 900px){.ac-toolbar,.enterprise-toolbar,.page-toolbar{position:static;align-items:flex-start;flex-direction:column}.ac-toolbar-left,.ac-toolbar-right{width:100%}.ac-toast-stack{right:10px;left:10px;top:64px}.ac-toast{max-width:none;min-width:0}}

/* ACEDS Sprint 11 - Enterprise Visualization & Icon System */
:root{
  --chart-blue:#2563eb;
  --chart-blue-2:#60a5fa;
  --chart-green:#16a34a;
  --chart-amber:#f59e0b;
  --chart-red:#dc2626;
  --chart-violet:#7c3aed;
  --chart-slate:#64748b;
  --chart-grid:#e5e7eb;
}
.chart-suite,.visual-suite{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:16px}.chart-card{grid-column:span 6;background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:18px;padding:18px;box-shadow:0 10px 28px rgba(15,23,42,.06)}.chart-card.full{grid-column:1/-1}.chart-card h3{font-size:15px;margin:0 0 4px}.chart-card .chart-subtitle{font-size:12px;color:var(--muted,#64748b);margin:0 0 14px}.analytics-bar-chart{display:flex;align-items:end;gap:12px;min-height:250px;padding:16px 10px 10px;border:1px solid rgba(226,232,240,.8);border-radius:16px;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);position:relative;overflow-x:auto}.analytics-bar-chart:before{content:"";position:absolute;inset:16px 10px 42px;background:repeating-linear-gradient(to top,transparent 0 48px,rgba(148,163,184,.18) 49px);pointer-events:none}.analytics-bar-item{position:relative;z-index:1;min-width:54px;display:flex;flex-direction:column;align-items:center;gap:7px}.analytics-bar-value{font-size:11px;color:#334155;font-weight:700;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:2px 7px;box-shadow:0 2px 8px rgba(15,23,42,.04)}.analytics-bar-plot{height:170px;width:34px;border-radius:999px;background:#eef2ff;display:flex;align-items:end;overflow:hidden;border:1px solid rgba(37,99,235,.12)}.analytics-bar-fill{width:100%;min-height:3px;border-radius:999px 999px 0 0;background:linear-gradient(180deg,var(--chart-blue-2),var(--chart-blue));box-shadow:0 8px 16px rgba(37,99,235,.25);transition:height .35s ease}.analytics-bar-fill.good{background:linear-gradient(180deg,#86efac,var(--chart-green));box-shadow:0 8px 16px rgba(22,163,74,.22)}.analytics-bar-fill.mid{background:linear-gradient(180deg,#fde68a,var(--chart-amber));box-shadow:0 8px 16px rgba(245,158,11,.22)}.analytics-bar-fill.low{background:linear-gradient(180deg,#fca5a5,var(--chart-red));box-shadow:0 8px 16px rgba(220,38,38,.22)}.analytics-bar-label{font-size:11px;color:#475569;font-weight:600;white-space:nowrap;max-width:76px;overflow:hidden;text-overflow:ellipsis}.chart-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;color:#64748b;font-size:12px}.legend-dot{width:9px;height:9px;border-radius:999px;display:inline-block;margin-right:4px}.legend-dot.good{background:var(--chart-green)}.legend-dot.mid{background:var(--chart-amber)}.legend-dot.low{background:var(--chart-red)}.visual-donut{--p:75;width:154px;height:154px;border-radius:50%;background:conic-gradient(var(--chart-blue) calc(var(--p)*1%),#e2e8f0 0);display:grid;place-items:center;margin:auto;position:relative}.visual-donut:after{content:"";width:110px;height:110px;border-radius:50%;background:white;position:absolute}.visual-donut strong{position:relative;z-index:1;font-size:26px}.visual-radar{min-height:280px;display:grid;place-items:center;background:radial-gradient(circle at center,rgba(37,99,235,.12) 0 18%,transparent 18% 100%),repeating-radial-gradient(circle at center,transparent 0 45px,rgba(100,116,139,.18) 46px 47px);border-radius:18px;border:1px solid #e2e8f0}.visual-radar .radar-note{font-size:13px;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:8px 12px}.icon-unified{font-family:Inter,Segoe UI,sans-serif;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:8px;background:#eff6ff;color:#2563eb;margin-right:6px;font-size:13px}.workspace-root .nav-ico,.workspace-group .nav-ico{filter:saturate(.9);opacity:.9}.report-chart-frame{border:1px solid #e2e8f0;border-radius:18px;background:#fff;padding:14px;box-shadow:0 10px 24px rgba(15,23,42,.05)}.analytics-insight-card{border-left:4px solid #2563eb;background:linear-gradient(90deg,#eff6ff,#fff);border-radius:14px;padding:14px;border-top:1px solid #e2e8f0;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.empty-chart{border:1px dashed #cbd5e1;background:#f8fafc;border-radius:16px;padding:24px;text-align:center;color:#64748b}
@media(max-width:1100px){.chart-card{grid-column:1/-1}.analytics-bar-item{min-width:46px}.analytics-bar-plot{height:140px;width:28px}}

/* RC1 Analytics usability refinements */
.h-progress{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;min-width:120px;margin:6px 0;}
.h-progress>div{height:100%;background:linear-gradient(90deg,#2563eb,#16a34a);border-radius:999px;transition:width .2s ease;}
.progress-card .h-progress{margin:8px 0 4px;}
.detail-row td{background:#f8fafc!important;padding:12px 16px!important;}
.detail-card{border:1px solid #e2e8f0;background:#fff;border-radius:14px;padding:14px;box-shadow:0 6px 18px rgba(15,23,42,.06);}
.detail-card h3{margin:0 0 4px;font-size:15px;}
.mini-detail-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px 14px;margin:12px 0;}
.mini-detail-bars>div{display:grid;grid-template-columns:52px 1fr 48px;align-items:center;gap:8px;font-size:12px;color:#334155;}
.mini-detail-bars b{text-align:right;color:#0f172a;}
.analytics-bar-item .analytics-bar-fill.empty,.vbar-fill.empty{background:#cbd5e1;}
.report-download-form .readonly-box{min-height:36px;display:flex;align-items:center;}

/* RC1 Outcome Basic Drill-Down Dashboard */
.outcome-mini-dashboard{background:#fff;border:1px solid var(--ac-border,#e2e8f0);border-radius:16px;padding:18px;box-shadow:0 12px 28px rgba(15,23,42,.06)}
.detail-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px;border-bottom:1px solid #e5e7eb;padding-bottom:12px}
.detail-header h3{margin:4px 0 4px;font-size:18px;color:#0f172a}.detail-header .btn{white-space:nowrap}.mini-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin:12px 0 14px}.mini-kpi-grid>div{border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;padding:10px 12px}.mini-kpi-grid span{display:block;font-size:12px;color:#64748b;margin-bottom:3px}.mini-kpi-grid strong{font-size:18px;color:#0f172a}.outcome-mini-dashboard h4{margin:14px 0 8px;color:#0f172a;font-size:14px}.mini-detail-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin:8px 0 14px}.mini-detail-bars>div{display:grid;grid-template-columns:56px 1fr 48px;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.mini-detail-bars span{font-weight:650;color:#334155}.mini-detail-bars b{text-align:right;color:#0f172a}.h-progress{height:9px;background:#e2e8f0;border-radius:999px;overflow:hidden}.h-progress>div{height:100%;border-radius:999px;background:#2563eb}.h-progress>div.good{background:#16a34a}.h-progress>div.mid{background:#f59e0b}.h-progress>div.low{background:#dc2626}.h-progress>div.empty{background:#cbd5e1}.small-note{font-size:12px;margin-top:10px}@media(max-width:900px){.mini-kpi-grid{grid-template-columns:repeat(2,1fr)}.detail-header{flex-direction:column}.mini-detail-bars>div{grid-template-columns:48px 1fr 42px}}

/* RC1 Package A - Outcome Intelligence Basic */
.outcome-hierarchy{display:flex;gap:10px;align-items:center;margin:12px 0 16px;padding:10px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;color:#475569;font-size:13px}.outcome-hierarchy b{color:#94a3b8}.coverage-summary{padding:10px 0 14px}.coverage-summary strong{font-size:22px;color:#0f172a;display:block;margin-bottom:8px}.detail-card.outcome-mini-dashboard{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.detail-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.detail-header h3,.detail-header h2{margin:.15rem 0}.mini-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.mini-kpi-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px}.mini-kpi-grid span{display:block;font-size:12px;color:#64748b;margin-bottom:4px}.mini-kpi-grid strong{font-size:18px;color:#0f172a}.mini-detail-bars{display:grid;gap:8px;margin:10px 0 14px}.mini-detail-bars>div{display:grid;grid-template-columns:90px 1fr 56px;align-items:center;gap:10px;font-size:13px}.h-progress{height:9px;background:#e2e8f0;border-radius:99px;overflow:hidden}.h-progress>div{height:100%;background:#2563eb;border-radius:99px}.h-progress>div.good{background:#16a34a}.h-progress>div.mid{background:#f59e0b}.h-progress>div.low{background:#dc2626}.h-progress>div.empty{background:#cbd5e1}.small-note{font-size:12px}.analytics-panel .detail-header{border-bottom:1px solid #e2e8f0;padding-bottom:10px}@media(max-width:900px){.mini-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-detail-bars>div{grid-template-columns:70px 1fr 48px}.detail-header{flex-direction:column}}

/* Bulk score upload */
.upload-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.upload-mode-card{margin-bottom:0;min-width:0}
.upload-mode-card-primary{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#f7fbff)}
.upload-form-stack{display:grid;gap:12px;align-items:end}
.upload-form-stack .field{min-width:0}
.upload-form-stack input[type=file]{width:100%}
.upload-check{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;font-weight:700}
.upload-result-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.bulk-result-table{max-height:520px;overflow:auto}
.bulk-file-name{max-width:440px;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}
@media(max-width:1180px){.upload-result-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.upload-mode-grid{grid-template-columns:1fr}.upload-result-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.upload-result-kpis{grid-template-columns:1fr}}


/* Reporting Center: batch course-report action */
.report-batch-note {
  margin-top: 8px;
  font-size: 0.88rem;
  line-height: 1.45;
  max-width: 900px;
}

/* Academic Core Faculty Edition */
.tenant-switcher{margin:8px 12px 14px;padding:12px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.055);display:grid;gap:4px}.tenant-switcher .tenant-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.65}.tenant-switcher strong{font-size:13px;line-height:1.35}.tenant-switcher small{font-size:10px;opacity:.62}.tenant-switcher form{margin-top:7px}.tenant-switcher select{width:100%;padding:7px 8px;border-radius:9px;border:1px solid rgba(255,255,255,.14);background:#17263a;color:#fff;font-size:11px}.faculty-nav{border-color:rgba(72,187,255,.22)!important;background:linear-gradient(145deg,rgba(51,119,255,.10),rgba(32,201,151,.05))}.user-pill{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:1px}.user-pill small{font-size:9px;opacity:.65}.faculty-hero{align-items:center}.faculty-health-grid{min-width:330px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.faculty-health-grid>div{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:16px 12px;text-align:center}.faculty-health-grid span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.72}.faculty-health-grid strong{display:block;font-size:27px;margin-top:5px}.faculty-grid{align-items:start}.faculty-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.faculty-form .field{min-width:0}.faculty-form .full{grid-column:1/-1}.faculty-check{align-self:end;margin-bottom:8px}.faculty-table-panel{margin-top:18px}.membership-stack{display:flex;flex-wrap:wrap;gap:5px}.membership-chip{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef4ff;border:1px solid #d8e5fb;font-size:10px;color:#28466c}.faculty-user-actions{min-width:250px}.inline-reset-form{display:flex;gap:5px;align-items:center;margin-top:6px}.inline-reset-form input{width:135px;padding:6px 8px;font-size:10px}.login-hero .eyebrow{color:rgba(255,255,255,.7);margin-bottom:8px}@media(max-width:900px){.faculty-health-grid{min-width:0;width:100%}.faculty-form{grid-template-columns:1fr}.faculty-form .full{grid-column:auto}}@media(max-width:640px){.faculty-health-grid{grid-template-columns:1fr}.faculty-user-actions{min-width:200px}}
