/* GCSS enterprise theme - Microsoft Defender/Purview inspired. Light+dark. */
:root {
    --sidebar-w: 250px;
    --accent: #0078d4; --accent-hover: #106ebe;
    --bg: #f5f5f5; --surface: #fff; --border: #e1dfdd;
    --text: #201f1e; --muted: #605e5c;
    --sb-bg: #1b1a19; --sb-text: #d2d0ce;
    --green: #107c10; --yellow: #c19c00; --orange: #ca5010; --red: #d13438;
}
[data-bs-theme="dark"] {
    --bg: #141414; --surface: #1f1f1f; --border: #333;
    --text: #f3f2f1; --muted: #a19f9d; --sb-bg: #0b0b0b;
}
body { background: var(--bg); color: var(--text); font-family: "Segoe UI", system-ui, sans-serif; font-size: .875rem; }
.gcss-sidebar { width: var(--sidebar-w); min-height: 100vh; background: var(--sb-bg); color: var(--sb-text);
    position: fixed; inset: 0 auto 0 0; z-index: 1040; display: flex; flex-direction: column; transition: transform .2s; }
.gcss-sidebar .brand { padding: 1rem 1.25rem; font-weight: 600; color: #fff; border-bottom: 1px solid rgba(255,255,255,.08); }
.gcss-sidebar .brand i { color: var(--accent); }
.gcss-sidebar .nav-link { color: var(--sb-text); padding: .55rem 1.25rem; border-left: 3px solid transparent;
    font-size: .85rem; display: flex; align-items: center; gap: .65rem; }
.gcss-sidebar .nav-link:hover { background: rgba(255,255,255,.06); color: #fff; }
.gcss-sidebar .nav-link.active { background: rgba(0,120,212,.18); border-left-color: var(--accent); color: #fff; }
.gcss-sidebar .nav-section { padding: .9rem 1.25rem .3rem; font-size: .68rem; text-transform: uppercase;
    letter-spacing: .08em; color: #8a8886; }
.gcss-main { margin-left: var(--sidebar-w); min-height: 100vh; display: flex; flex-direction: column; }
@media (max-width: 991.98px) {
    .gcss-sidebar { transform: translateX(-100%); }
    .gcss-sidebar.show { transform: translateX(0); }
    .gcss-main { margin-left: 0; }
}
.gcss-topbar { background: var(--surface); border-bottom: 1px solid var(--border); padding: .5rem 1.25rem;
    display: flex; align-items: center; gap: 1rem; position: sticky; top: 0; z-index: 1030; }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: 4px;
    box-shadow: 0 1.6px 3.6px rgba(0,0,0,.06); }
.stat-card { border-left: 4px solid var(--accent); }
.stat-card .stat-value { font-size: 1.6rem; font-weight: 600; line-height: 1.1; }
.stat-card .stat-label { color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.stat-card.risk-red { border-left-color: var(--red); }
.stat-card.risk-orange { border-left-color: var(--orange); }
.stat-card.risk-yellow { border-left-color: var(--yellow); }
.stat-card.risk-green { border-left-color: var(--green); }
.badge.risk-green { background: var(--green); } .badge.risk-yellow { background: var(--yellow); color: #201f1e; }
.badge.risk-orange { background: var(--orange); } .badge.risk-red { background: var(--red); }
.risk-ring { width: 110px; height: 110px; border-radius: 50%; display: flex; align-items: center;
    justify-content: center; font-size: 1.7rem; font-weight: 700; color: #fff; }
.btn-primary { background: var(--accent); border-color: var(--accent); }
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.table > :not(caption) > * > * { background: transparent; }
.evidence { font-size: .78rem; background: var(--bg); border-radius: 4px; padding: .5rem .75rem; overflow-x: auto; }
.disclaimer { font-size: .75rem; color: var(--muted); border-top: 1px solid var(--border); padding-top: .75rem; }
@media print {
    .gcss-sidebar, .gcss-topbar, .no-print, footer { display: none !important; }
    .gcss-main { margin-left: 0; }
    body { background: #fff; }
}
