@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root { --bg:#09111f; --surface:#101b2d; --surface-2:#15233a; --ink:#edf4ff; --muted:#adbdd3; --line:rgba(167,190,224,.14); --dark:#080f1c; --dark-2:#0c1728; --accent:#43d4a0; --accent-2:#69a7ff; --danger:#fb7185; --success:#43d4a0; --chip:#1c304c; --shadow:0 18px 50px rgba(0,0,0,.24); }
* { box-sizing:border-box; }
html { background:var(--bg); }
body { margin:0; min-width:320px; background:radial-gradient(circle at 76% -20%,#18385b 0,transparent 31%),var(--bg); color:var(--ink); font:14px/1.6 Manrope,Segoe UI,sans-serif; }
a { color:inherit; text-decoration:none; } a:hover { text-decoration:none; }
button,input,select,textarea { font:inherit; }
.app-shell { display:grid; grid-template-columns:248px minmax(0,1fr); min-height:100vh; }
.sidebar { background:linear-gradient(180deg,#07101d,#0a1525); border-right:1px solid var(--line); color:#d7e4f5; display:flex; flex-direction:column; padding:18px 12px 14px; }
.sidebar-left { height:100vh; overflow:visible; position:sticky; top:0; z-index:20; }
.sidebar-head { padding:0 8px 22px; }.brand { align-items:center; display:flex; gap:11px; }.brand-logo { background:#102846; border:1px solid rgba(105,167,255,.25); border-radius:16px; flex:0 0 76px; height:76px; object-fit:contain; padding:8px; width:76px; }.brand strong { display:block; font-size:15px; letter-spacing:-.03em; }.brand small { color:#a2afc4; display:block; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.side-nav { display:grid; gap:5px; flex:1; overflow:auto; scrollbar-width:thin; }.nav-group { position:relative; }.nav-group summary { align-items:center; border-radius:9px; cursor:pointer; display:flex; list-style:none; min-height:42px; padding:0 10px; }.nav-group summary::-webkit-details-marker { display:none; }.nav-summary { align-items:center; display:flex; gap:10px; min-width:0; }.nav-icon { align-items:center; background:#13243b; border:1px solid rgba(144,180,226,.12); border-radius:7px; display:inline-flex; flex:0 0 25px; height:25px; justify-content:center; width:25px; }.nav-icon svg { height:13px; stroke:#7eb5ff; width:13px; }.nav-label { color:#b9c9dd; font-size:13px; font-weight:700; letter-spacing:.01em; }.nav-group > summary::after { color:#a2afc3; content:'+'; font-size:17px; margin-left:auto; }.nav-group[open] > summary { background:rgba(105,167,255,.1); }.nav-group[open] > summary::after { color:var(--accent); content:'–'; }.nav-group-panel { background:#0d192a; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); display:none; left:var(--flyout-left,258px); max-width:calc(100vw - 20px); opacity:0; padding:6px; pointer-events:none; position:fixed; top:var(--flyout-top,20px); transform:translateX(-8px); transition:.16s ease; width:272px; z-index:100; }.nav-group[open] > .nav-group-panel { display:block; opacity:1; pointer-events:auto; transform:translateX(0); }.nav-group-items { display:grid; gap:3px; }.nav-item { border-radius:8px; color:#c1d0e2; display:block; padding:9px 10px; }.nav-item:hover,.nav-item--active { background:rgba(67,212,160,.12); color:#fff; }.nav-item--active { box-shadow:inset 2px 0 var(--accent); }.nav-item-head { align-items:center; display:flex; justify-content:space-between; }.nav-item strong { font-size:13px; }.nav-count { background:#1c3854; border-radius:20px; color:#a8c9f5; font-size:12px; padding:2px 7px; }.nav-empty { color:var(--muted); padding:10px; }.sidebar-footer { display:flex; justify-content:center; padding-top:14px; }.sidebar-toggle { background:#14233a; border:1px solid var(--line); border-radius:8px; color:#a8c9f5; cursor:pointer; height:34px; width:34px; }
.workspace { display:flex; flex-direction:column; min-width:0; }.topbar { align-items:center; backdrop-filter:blur(15px); background:rgba(9,17,31,.76); border-bottom:1px solid var(--line); display:flex; gap:22px; justify-content:space-between; min-height:72px; padding:12px 30px; position:sticky; top:0; z-index:10; }.topbar-ident { display:grid; line-height:1.25; }.eyebrow { color:var(--accent); font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.topbar-ident strong { font-size:15px; }.topbar-shortcuts { display:flex; gap:5px; margin-right:auto; }.topbar-shortcuts a { border-radius:7px; color:var(--muted); font-size:13px; font-weight:700; padding:7px 9px; }.topbar-shortcut--active,.topbar-shortcuts a:hover { background:#16243a; color:#eaf3ff; }.account,.actions,.filters-actions,.layout-actions { align-items:center; display:flex; flex-wrap:wrap; gap:9px; }.user-chip { color:#b7c9e2; font-family:'DM Mono',monospace; font-size:12.5px; }.account form { margin:0; }
.workspace-body { display:block; padding:28px 30px 42px; width:100%; }.workspace-main.container { max-width:none; padding:0; width:100%; }.site-footer { border-top:1px solid var(--line); color:#a3afc1; display:flex; flex-wrap:wrap; font-size:12.5px; gap:12px; justify-content:space-between; margin-top:auto; padding:18px 30px; }
.page-heading,.auth-panel,.editor-panel,.article-detail,.article-card,.portal-panel,.table-panel,.form-panel,.profile-panel,.article-hero,.article-panel,.layout-card,.hub-card { background:linear-gradient(145deg,rgba(21,35,58,.94),rgba(14,25,43,.94)); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }.page-heading,.auth-panel,.editor-panel,.article-detail,.portal-panel,.table-panel,.form-panel,.profile-panel,.article-hero,.article-panel,.layout-card { padding:21px; }.page-heading { display:grid; gap:18px; overflow:hidden; position:relative; }.page-heading:after { background:radial-gradient(circle,rgba(105,167,255,.2),transparent 68%); content:''; height:260px; pointer-events:none; position:absolute; right:-70px; top:-130px; width:260px; }.page-heading > * { position:relative; z-index:1; }.page-heading h1,.article-detail h1,.article-card h2,.portal-panel h2,.form-panel h1 { letter-spacing:-.045em; margin:3px 0 7px; }.page-heading h1 { font-size:clamp(25px,3vw,38px); }.portal-panel h2,.layout-card h2 { font-size:14px; }.summary,.muted,.meta,.stat-card span,.tool-tile p,.link-tile p { color:var(--muted); }.summary { margin:0; max-width:770px; }.search,.filters,.form,.stack,.article-list,.right-list,.quick-grid,.tool-grid,.link-grid,.stats-grid { display:grid; gap:12px; }.search { grid-template-columns:minmax(0,1fr) auto; max-width:700px; }.stack { gap:18px; margin-top:18px; }.article-card { padding:19px 20px; transition:transform .18s ease,border-color .18s ease; }.article-card:hover,.hub-card:hover,.tool-tile:hover,.link-tile:hover { border-color:rgba(105,167,255,.4); transform:translateY(-2px); }.article-card h2 { font-size:18px; }.article-card h2 a:hover { color:var(--accent); }.meta,.badges { display:flex; flex-wrap:wrap; gap:7px; font-size:12.5px; }.meta span,.badges span,.article-kicker span,.article-meta span { background:#1b2d48; border:1px solid rgba(137,173,218,.1); border-radius:30px; color:#9fb4d0; padding:3px 8px; }.badges span { color:#83c7ee; }.stats-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.stat-card,.mini-card,.tool-tile,.link-tile { background:rgba(8,17,31,.4); border:1px solid rgba(161,189,225,.1); border-radius:10px; padding:13px; }.stat-card strong { color:#f2f7ff; display:block; font-size:26px; letter-spacing:-.06em; }.stat-card span { display:block; font-size:12.5px; }.mini-card { color:#dfebfa; display:grid; gap:3px; }.mini-card strong { font-size:13px; }.mini-card small { color:#9eafc7; }.mini-card:hover { border-color:rgba(67,212,160,.35); }.link-grid,.tool-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.link-tile,.tool-tile { color:#e8f2fe; }.link-tile h3,.tool-tile h3 { font-size:13px; margin:0 0 4px; }.link-tile p,.tool-tile p { font-size:13px; margin:0; }
.filters-grid,.form-grid { display:grid; gap:12px; grid-template-columns:repeat(3,minmax(0,1fr)); }.field-grid { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }.span-2 { grid-column:span 2; } label { color:#a4b5cd; display:grid; font-size:12.5px; font-weight:700; gap:6px; } input,select,textarea { background:#0b1729; border:1px solid rgba(164,191,225,.18); border-radius:8px; color:#edf4ff; min-width:0; outline:none; padding:10px 11px; width:100%; } input:focus,select:focus,textarea:focus { border-color:#69a7ff; box-shadow:0 0 0 3px rgba(105,167,255,.12); } textarea { min-height:200px; } button,.button { align-items:center; background:linear-gradient(135deg,#2563c9,#4f46d8); border:1px solid rgba(147,197,253,.35); border-radius:8px; color:white; cursor:pointer; display:inline-flex; font-size:13px; font-weight:800; justify-content:center; padding:9px 13px; transition:.16s ease; } button:hover,.button:hover { filter:brightness(1.08); transform:translateY(-1px); }.button-secondary,button.button-secondary { background:transparent; border-color:rgba(166,193,228,.24); color:#c9daee; }.button-danger { background:var(--danger); }
.table-panel { overflow:auto; }.table { border-collapse:collapse; width:100%; }.table th,.table td { border-bottom:1px solid rgba(161,189,225,.1); padding:11px 10px; text-align:left; vertical-align:top; }.table th { color:#a0afc6; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }.table td { color:#c9d8eb; font-size:13px; }.table tr:hover td { background:rgba(105,167,255,.04); }.portal-grid { display:grid; gap:18px; grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr); margin-top:18px; }.layout-grid { display:grid; gap:16px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:18px; }.layout-card { display:grid; gap:14px; }.layout-card-head,.section-head { align-items:flex-start; display:flex; justify-content:space-between; }.article-shell { display:grid; gap:18px; }.article-layout,.article-editor-grid { display:grid; gap:18px; grid-template-columns:minmax(0,1.6fr) minmax(270px,.8fr); }.article-hero { background:linear-gradient(135deg,#18385b,#101e33); }.article-panel { display:grid; gap:16px; }.rich-content,.rich-body { color:#cbd8e8; line-height:1.8; }.rich-content h1,.rich-content h2,.rich-content h3,.rich-body h2,.rich-body h3 { color:#f0f6ff; }.rich-content img,.rich-body img { border-radius:10px; max-width:100%; }.rich-content pre,.rich-content code { background:#07111f; border-radius:7px; color:#dbeafe; }.rich-content pre { overflow:auto; padding:14px; }.messages { background:rgba(251,191,36,.12); border:1px solid rgba(251,191,36,.32); border-radius:10px; margin-bottom:16px; padding:11px 14px; }.messages p { margin:0; }.auth-panel { margin:8vh auto; max-width:440px; }.permission-list { display:grid; gap:7px; grid-template-columns:repeat(2,minmax(0,1fr)); max-height:340px; overflow:auto; }.permission-list ul,.checkbox-list ul { display:contents; list-style:none; }.permission-list label,.checkbox-list label { align-items:center; background:var(--surface-2); border:1px solid var(--line); border-radius:8px; color:var(--ink); display:flex; gap:8px; padding:8px; }
html.sidebar-collapsed .app-shell { grid-template-columns:72px minmax(0,1fr); } html.sidebar-collapsed [data-sidebar-shell] { padding-inline:8px; width:72px; } html.sidebar-collapsed .brand span,html.sidebar-collapsed .nav-label,html.sidebar-collapsed .nav-group > summary::after { display:none; } html.sidebar-collapsed .brand { justify-content:center; } html.sidebar-collapsed .brand-logo { border-radius:11px; flex-basis:48px; height:48px; padding:4px; width:48px; } html.sidebar-collapsed .nav-group summary { justify-content:center; padding:0; } html.sidebar-collapsed .nav-summary { justify-content:center; } html.sidebar-collapsed .nav-group-panel { left:var(--flyout-left,80px); }
@media (max-width:1080px) { .stats-grid { grid-template-columns:repeat(2,1fr); }.link-grid,.tool-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px) { .app-shell { display:block; }.sidebar-left { height:auto; position:relative; }.sidebar { padding:12px; }.side-nav { display:flex; overflow:auto; }.nav-group { flex:0 0 auto; }.nav-group-panel { left:12px; max-width:calc(100vw - 24px); }.topbar { align-items:flex-start; flex-wrap:wrap; padding:14px 18px; }.topbar-shortcuts { display:none; }.workspace-body { padding:18px; }.search,.filters-grid,.form-grid,.field-grid,.article-layout,.article-editor-grid,.portal-grid,.layout-grid { grid-template-columns:1fr; }.search .actions { justify-content:flex-start; }.link-grid,.tool-grid { grid-template-columns:1fr; }.stats-grid { grid-template-columns:repeat(2,1fr); }.site-footer { padding:18px; }.span-2 { grid-column:auto; } }

/* Article editor: textarea remains usable when JavaScript is unavailable. */
.article-summary { min-height:120px; resize:vertical; }
.field-optional { color:var(--muted); font-size:12px; font-weight:500; }
.required-mark { color:#ff405c; font-size:15px; font-weight:900; line-height:1; margin-left:2px; }
.editor-section-heading { align-items:end; display:flex; justify-content:space-between; margin-top:6px; }
.editor-section-heading label { color:var(--ink); display:block; font-size:13px; }
.editor-section-heading p { color:var(--muted); font-size:12.5px; margin:3px 0 0; }
.editor-toolbar { align-items:center; background:#0b1729; border:1px solid rgba(164,191,225,.18); border-radius:10px 10px 0 0; display:flex; flex-wrap:wrap; gap:5px; padding:8px; }
.editor-toolbar button { background:#14243a; border-color:rgba(164,191,225,.16); min-height:32px; min-width:34px; padding:6px 9px; }
.editor-toolbar button:hover,.editor-toolbar button:focus-visible { background:#203858; border-color:#69a7ff; }
.editor-font-size { align-items:center; display:flex; flex-direction:row; gap:6px; }
.editor-font-size span { color:var(--muted); font-size:12px; white-space:nowrap; }
.editor-font-size select { min-width:110px; padding:6px 8px; width:auto; }
.editor-stage { position:relative; }
.editor-source { min-height:420px; resize:vertical; }
.editor-canvas { display:none; }
.editor-stage.is-enhanced .editor-source { display:none; }
.editor-stage.is-enhanced .editor-canvas { background:#0b1729; border:1px solid rgba(164,191,225,.18); border-radius:0 0 10px 10px; color:#edf4ff; display:block; height:520px; line-height:1.75; max-height:520px; min-height:420px; outline:none; overflow:auto; overflow-wrap:anywhere; padding:18px; }
.editor-stage.is-enhanced .editor-canvas:focus { border-color:#69a7ff; box-shadow:0 0 0 3px rgba(105,167,255,.12); }
.editor-canvas:empty::before { color:#a3b0c2; content:attr(data-placeholder); pointer-events:none; }
.article-editor-grid > * { min-width:0; }
.editor-canvas * { max-width:100%; }
.editor-canvas img { height:auto; max-width:100%; }
.editor-canvas table { border-collapse:collapse; display:block; max-width:100%; overflow-x:auto; width:max-content; }
.editor-canvas td,.editor-canvas th { border:1px solid rgba(164,191,225,.18); padding:6px; }
.editor-canvas pre { background:#07111f; border-radius:8px; overflow:auto; padding:12px; }
.editor-preview { max-height:420px; min-height:120px; overflow:auto; overflow-wrap:anywhere; }
.field-errors,.errorlist { color:#fda4af; font-size:12.5px; margin:5px 0 0; }
.field-stack { display:grid; gap:12px; }
.editor-actions { margin-top:18px; }
.vulnerability-support-grid { display:grid; gap:18px; grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:1080px) { .vulnerability-support-grid { grid-template-columns:1fr; } }

/* Central Content CMS */
.cms-heading,.cms-dashboard-grid .table-panel,.cms-dashboard-grid .portal-panel,.cms-register,.cms-filters { background:linear-gradient(145deg,#182b46,#0e1d33); border:1px solid rgba(137,187,255,.38); border-radius:14px; box-shadow:0 14px 34px rgba(0,0,0,.3); }
.cms-heading { align-items:end; grid-template-columns:minmax(0,1fr) auto; }
.cms-heading h1,.cms-dashboard-grid h2,.cms-register h2 { color:#f8fbff; text-shadow:0 1px 0 rgba(0,0,0,.3); }
.cms-heading .summary { color:#c4d5e9; }.cms-heading .eyebrow,.cms-dashboard-grid .eyebrow { color:#6ee7b7; }
.cms-stat-grid { display:grid; gap:12px; grid-template-columns:repeat(5,minmax(0,1fr)); margin:18px 0; }
.cms-stat-grid .stat-card { background:linear-gradient(145deg,#19304e,#10223a); border-color:rgba(126,181,255,.38); box-shadow:0 9px 22px rgba(0,0,0,.22); transition:border-color .18s ease,transform .18s ease; }
.cms-stat-grid .stat-card strong { color:#fff; font-size:30px; }.cms-stat-grid .stat-card span { color:#c5d7ec; font-size:12.5px; font-weight:750; }
.cms-stat-grid .stat-card:hover { border-color:#74b3ff; box-shadow:0 12px 27px rgba(0,0,0,.3); transform:translateY(-2px); }
.cms-stat-grid--compact { grid-template-columns:repeat(3,minmax(0,220px)); }
.cms-dashboard-grid { align-items:start; display:grid; gap:18px; grid-template-columns:minmax(0,2fr) minmax(280px,.75fr); }
.cms-section-head { margin-bottom:14px; }
.cms-section-head h2 { color:#fff; margin:2px 0 0; }
.cms-section-head > a { color:#8fc0ff; font-size:13px; font-weight:750; }
.table-scroll { overflow-x:auto; }
.cms-table { min-width:900px; }
.cms-table th { background:#0b1b30; color:#afc7e5; }.cms-table td { border-bottom-color:rgba(151,197,255,.2); color:#e5effb; }.cms-table tr:hover td { background:rgba(105,167,255,.09); }.cms-table td > strong,.cms-table td > small { display:block; }.cms-table td > strong { color:#f7fbff; }.cms-table td > small { color:#a9bfd9; margin-top:3px; }.cms-table td > a { color:#8fc0ff; font-weight:750; }
.cms-category-list { display:grid; gap:7px; }
.cms-category-list a { align-items:center; background:#10243d; border:1px solid rgba(137,187,255,.28); border-radius:9px; display:flex; gap:12px; justify-content:space-between; padding:10px 11px; }
.cms-category-list a:hover { background:#17304f; border-color:#43d4a0; }
.cms-category-list span { color:#e1ecf8; font-size:13px; font-weight:650; }
.cms-category-list strong { background:#20517a; border:1px solid rgba(137,187,255,.35); border-radius:20px; color:#e8f4ff; min-width:28px; padding:2px 8px; text-align:center; }
.cms-filter-grid { grid-template-columns:2fr repeat(4,minmax(150px,1fr)); }
.cms-register { margin-top:18px; }.cms-filters { margin-top:18px; padding:16px; }.cms-filters label { color:#d2e2f5; }.cms-filters input,.cms-filters select { background:#071528; border-color:rgba(151,197,255,.38); color:#f6faff; }.cms-filters input::placeholder { color:#9fb0c5; opacity:1; }.cms-filters input:focus,.cms-filters select:focus { background:#0a1b31; border-color:#74b3ff; box-shadow:0 0 0 3px rgba(105,167,255,.2); }
.cms-title-cell { max-width:380px; }
.status-badge { border:1px solid transparent; border-radius:20px; display:inline-flex; font-size:12px; font-weight:800; letter-spacing:.04em; padding:4px 8px; text-transform:uppercase; white-space:nowrap; }
.status-draft { background:#28394f; border-color:#94a3b8; color:#eef4fb; }
.status-review { background:#4b380c; border-color:#fbbf24; color:#fff0af; }
.status-published { background:#0d4939; border-color:#43d4a0; color:#c5ffec; }
.status-archived { background:#38245f; border-color:#a78bfa; color:#e4dcff; }
.publication-link { color:#75f0c3; display:block; font-size:12.5px; font-weight:750; margin-top:4px; }
.not-live { color:#a9bfd9; display:block; font-size:12.5px; margin-top:4px; }
.cms-row-actions { display:flex; flex-wrap:wrap; gap:9px; }
.cms-row-actions a { color:#9ac8ff; font-size:12.5px; font-weight:800; }.cms-row-actions a:hover { color:#fff; }
.cms-row-actions .danger-link { color:#ff9caf; }
.cms-empty { align-items:center; display:flex; flex-direction:column; gap:4px; padding:36px; }
.cms-empty strong { color:#f7fbff; }.cms-empty span { color:#b4c7de; }
.pagination { align-items:center; display:flex; gap:12px; justify-content:center; padding:16px 0 2px; }
.pagination a { color:var(--accent-2); font-weight:700; }
.pagination span { color:var(--muted); font-size:12.5px; }
@media (max-width:1180px) { .cms-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.cms-dashboard-grid { grid-template-columns:1fr; }.cms-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .cms-heading { grid-template-columns:1fr; }.cms-stat-grid,.cms-stat-grid--compact,.cms-filter-grid { grid-template-columns:1fr; } }

/* Audit logging workspace */
.logging-heading,.logging-filters,.logging-register,.logging-scope-note { background:linear-gradient(145deg,#182b46,#0e1d33); border:1px solid rgba(137,187,255,.38); border-radius:14px; box-shadow:0 14px 34px rgba(0,0,0,.3); }
.logging-heading { align-items:end; grid-template-columns:minmax(0,1fr) auto; }
.logging-heading h1,.logging-scope-note h2 { color:#f8fbff; text-shadow:0 1px 0 rgba(0,0,0,.3); }
.logging-heading .summary,.logging-scope-note .summary { color:#c4d5e9; }.logging-heading .eyebrow { color:#6ee7b7; }
.logging-stat-grid { display:grid; gap:12px; grid-template-columns:repeat(5,minmax(0,1fr)); margin:18px 0; }
.logging-stat-grid .stat-card { background:linear-gradient(145deg,#19304e,#10223a); border-color:rgba(126,181,255,.38); box-shadow:0 9px 22px rgba(0,0,0,.22); }
.logging-stat-grid .stat-card strong { color:#fff; font-size:30px; }.logging-stat-grid .stat-card span { color:#c5d7ec; font-size:12.5px; font-weight:750; }
.logging-stat-grid .stat-card:nth-child(3) { border-color:rgba(67,212,160,.5); }.logging-stat-grid .stat-card:nth-child(3) strong { color:#75f0c3; }
.logging-stat-grid .stat-card:nth-child(4) { border-color:rgba(105,167,255,.55); }.logging-stat-grid .stat-card:nth-child(4) strong { color:#9ac8ff; }
.logging-stat-grid .stat-card:nth-child(5) { border-color:rgba(251,113,133,.55); }.logging-stat-grid .stat-card:nth-child(5) strong { color:#ff9caf; }
.logging-filter-grid { display:grid; gap:12px; grid-template-columns:2fr repeat(3,minmax(150px,1fr)); }
.logging-filters { margin-top:18px; padding:16px; }.logging-filters label { color:#d2e2f5; }.logging-filters input,.logging-filters select { background:#071528; border-color:rgba(151,197,255,.38); color:#f6faff; }.logging-filters input::placeholder { color:#9fb0c5; opacity:1; }.logging-filters input:focus,.logging-filters select:focus { background:#0a1b31; border-color:#74b3ff; box-shadow:0 0 0 3px rgba(105,167,255,.2); }
.logging-register { margin-top:18px; }
.logging-table { min-width:1050px; }
.logging-table th { background:#0b1b30; color:#afc7e5; }.logging-table td { border-bottom-color:rgba(151,197,255,.2); color:#e5effb; }.logging-table tr:hover td { background:rgba(105,167,255,.09); }
.logging-table td > strong,.logging-table td > small,.logging-table td > span { display:block; }.logging-table td > strong { color:#f7fbff; }
.logging-table td > small,.logging-table td > span { color:#a9bfd9; font-size:12px; }
.logging-table time { color:#d4e4f6; font-family:'DM Mono',monospace; font-size:12.5px; }
.logging-message { color:#d7e5f5!important; line-height:1.55; max-width:360px; overflow-wrap:anywhere; white-space:normal; }
.audit-action { border:1px solid transparent; border-radius:20px; display:inline-flex!important; font-size:12px!important; font-weight:850; letter-spacing:.035em; padding:4px 8px; text-transform:uppercase; width:max-content; }
.audit-action-1 { background:#0d4939; border-color:#43d4a0; color:#c5ffec!important; }
.audit-action-2 { background:#15385f; border-color:#69a7ff; color:#d7eaff!important; }
.audit-action-3 { background:#5b1626; border-color:#fb7185; color:#ffd4dc!important; }
.logging-scope-note { margin-top:18px; }.logging-scope-note { border-left:3px solid #69a7ff; }
@media (max-width:1100px) { .logging-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.logging-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .logging-heading,.logging-stat-grid,.logging-filter-grid { grid-template-columns:1fr; } }

/* Identity and access management */
.iam-stat-grid { display:grid; gap:12px; grid-template-columns:repeat(4,minmax(0,1fr)); margin:18px 0; }
.iam-stat-grid--groups { grid-template-columns:repeat(3,minmax(0,220px)); }
.role-badge { border:1px solid transparent; border-radius:20px; display:inline-flex; font-size:12px; font-weight:800; padding:4px 9px; text-transform:uppercase; }
.role-admin { background:rgba(251,113,133,.12); border-color:rgba(251,113,133,.28); color:#fda4af; }
.role-editor { background:rgba(105,167,255,.12); border-color:rgba(105,167,255,.28); color:#93c5fd; }
.role-author { background:rgba(67,212,160,.12); border-color:rgba(67,212,160,.28); color:#6ee7b7; }
.role-viewer { background:rgba(148,163,184,.12); border-color:rgba(148,163,184,.25); color:#cbd5e1; }
.system-managed-label { color:#fcd34d!important; display:block; font-size:12px; margin-top:3px; }
.system-managed-notice { border-color:rgba(251,191,36,.32); margin:18px 0; }
.permission-effective-list { display:flex; flex-wrap:wrap; gap:6px; max-height:260px; overflow:auto; }
.permission-effective-list code { background:#0b1729; border:1px solid rgba(164,191,225,.14); border-radius:6px; color:#a8c9f5; font-size:12px; padding:4px 7px; }
@media (max-width:760px) { .iam-stat-grid,.iam-stat-grid--groups { grid-template-columns:1fr; } }

/* IAM: direct grants are exceptional and must remain visually distinct from role/group access. */
.direct-permissions-panel { background:linear-gradient(145deg,rgba(35,31,58,.98),rgba(20,27,46,.98)); border-color:rgba(251,191,36,.42); box-shadow:inset 3px 0 0 #fbbf24,var(--shadow); }
.permission-panel-heading { align-items:center; display:flex; gap:14px; justify-content:space-between; margin-bottom:10px; }
.permission-panel-heading h2 { color:#fff7d6; font-size:17px; letter-spacing:-.02em; margin:2px 0 0; }
.permission-panel-kicker { color:#fcd66d; font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.permission-panel-badge { background:#fbbf24; border-radius:999px; color:#241800; flex:0 0 auto; font-size:12px; font-weight:900; letter-spacing:.04em; padding:5px 9px; text-transform:uppercase; }
.permission-panel-guidance { background:rgba(251,191,36,.1); border:1px solid rgba(251,191,36,.28); border-radius:9px; color:#fff1bd; font-size:13px; line-height:1.55; margin:0 0 10px; padding:10px 12px; }
.permission-panel-notice { background:rgba(96,165,250,.12); border:1px solid rgba(96,165,250,.32); border-radius:8px; color:#cfe5ff; font-size:12.5px; font-weight:700; margin:0 0 12px; padding:9px 11px; }
.direct-permissions-panel .permission-list { gap:9px; }
.direct-permissions-panel .permission-list label { background:#101b30; border-color:rgba(181,202,232,.22); color:#edf5ff; font-size:12.5px; line-height:1.35; min-height:42px; }
.direct-permissions-panel .permission-list label:hover { background:#172641; border-color:rgba(251,191,36,.45); }
.direct-permissions-panel .permission-list input[type="checkbox"] { accent-color:#fbbf24; flex:0 0 auto; height:16px; min-width:16px; padding:0; width:16px; }
.direct-permissions-panel .permission-list input:disabled + label,.direct-permissions-panel .permission-list input:disabled { cursor:not-allowed; }
@media (max-width:760px) { .permission-panel-heading { align-items:flex-start; }.permission-panel-badge { margin-top:2px; }.direct-permissions-panel .permission-list { grid-template-columns:1fr; } }

/* Left navigation accordion: submenu expands downward; the navigation itself scrolls. */
.side-nav { align-content:start; display:block; min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:2px 4px 14px; scrollbar-gutter:stable; scrollbar-width:thin; }
.side-nav::-webkit-scrollbar { width:7px; }
.side-nav::-webkit-scrollbar-thumb { background:rgba(126,181,255,.34); border-radius:10px; }
.nav-group { border:1px solid transparent; border-radius:11px; margin-bottom:6px; overflow:visible; position:relative; transition:background .18s ease,border-color .18s ease,box-shadow .18s ease; }
.nav-group > summary { border-radius:10px; min-height:44px; padding:0 11px; transition:background .18s ease,color .18s ease,transform .18s ease; }
.nav-group > summary:hover { background:linear-gradient(90deg,rgba(105,167,255,.18),rgba(67,212,160,.08)); transform:translateX(2px); }
.nav-group:hover { border-color:rgba(105,167,255,.2); }
.nav-group[open] { background:linear-gradient(145deg,rgba(15,30,50,.94),rgba(8,19,34,.94)); border-color:rgba(105,167,255,.32); box-shadow:inset 3px 0 0 var(--accent-2),0 8px 20px rgba(0,0,0,.18); }
.nav-group[open] > summary { background:rgba(105,167,255,.12); }
.nav-group > summary::after,.nav-group[open] > summary::after { content:none; display:none; }
.nav-group--direct{align-items:center;display:flex;min-height:44px;padding:0 11px;text-decoration:none}.nav-group--direct:hover{background:linear-gradient(90deg,rgba(105,167,255,.18),rgba(67,212,160,.08));border-color:rgba(105,167,255,.2);transform:translateX(2px)}.nav-group--direct.nav-group--active{background:linear-gradient(145deg,rgba(15,30,50,.94),rgba(8,19,34,.94));border-color:rgba(105,167,255,.32);box-shadow:inset 3px 0 0 var(--accent-2),0 8px 20px rgba(0,0,0,.18)}html.sidebar-collapsed .nav-group--direct{justify-content:center;padding:0}
.nav-group-panel { background:transparent; border:0; border-radius:0; box-shadow:none; display:none; left:auto; margin:0; max-width:none; opacity:1; padding:0; pointer-events:none; position:static; top:auto; transform:none; transition:none; width:auto; }
.nav-group[open] > .nav-group-panel { display:block; margin:3px 0 8px; padding:0 7px; pointer-events:auto; transform:none; }
.nav-group-panel-inner { max-height:none; min-height:0; overflow:visible; }
.nav-group-items { display:grid; gap:4px; padding:3px 0 3px 28px; }
.nav-item { border:1px solid transparent; border-radius:8px; color:#afc1d8; padding:8px 10px; position:relative; transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease; }
.nav-item::before { background:#658ab9; border-radius:50%; content:''; height:4px; left:-15px; opacity:.55; position:absolute; top:50%; transform:translateY(-50%); transition:opacity .16s ease,background .16s ease,transform .16s ease; width:4px; }
.nav-item:hover { background:rgba(67,212,160,.12); border-color:rgba(67,212,160,.22); color:#fff; transform:translateX(3px); }
.nav-item:hover::before,.nav-item--active::before { background:var(--accent); opacity:1; transform:translateY(-50%) scale(1.4); }
.nav-item--active { background:rgba(67,212,160,.14); border-color:rgba(67,212,160,.22); box-shadow:none; color:#f5fffb; }
html.sidebar-collapsed .nav-group-panel,html.sidebar-collapsed .nav-group[open] > .nav-group-panel { display:none; }
@media (max-width:760px) { .side-nav { display:block; overflow-y:visible; }.nav-group { width:100%; }.nav-group-panel { max-width:none; } }

/* Incident Management */
.incident-heading,.incident-register,.incident-chart-card,.incident-form-panel,.incident-detail-grid .portal-panel { background:linear-gradient(145deg,#182b46,#0e1d33); border-color:rgba(137,187,255,.38); box-shadow:0 14px 34px rgba(0,0,0,.3); }
.incident-heading h1,.incident-form-panel h1,.incident-detail-grid h2,.incident-chart-card h2,.incident-register h2 { color:#f8fbff; text-shadow:0 1px 0 rgba(0,0,0,.3); }
.incident-heading .summary,.incident-form-panel .summary { color:#c4d5e9; }
.incident-heading .eyebrow,.incident-chart-card .eyebrow,.incident-register .eyebrow { color:#6ee7b7; }
.incident-heading { align-items:end; grid-template-columns:minmax(0,1fr) auto; }
.incident-stat-grid { display:grid; gap:12px; grid-template-columns:repeat(5,minmax(0,1fr)); margin:18px 0; }
.incident-stat-grid .stat-card { background:linear-gradient(145deg,#19304e,#10223a); border-color:rgba(126,181,255,.38); box-shadow:0 9px 22px rgba(0,0,0,.22); }
.incident-stat-grid .stat-card strong { color:#ffffff; font-size:30px; }
.incident-stat-grid .stat-card span { color:#c5d7ec; font-size:12.5px; font-weight:750; letter-spacing:.025em; }
.incident-stat-critical { border-color:rgba(251,113,133,.4); box-shadow:inset 3px 0 #fb7185; }
.incident-stat-critical strong { color:#ff9fb0!important; }
.incident-dashboard-grid { align-items:start; display:grid; gap:18px; grid-template-columns:minmax(0,1.7fr) minmax(320px,.8fr); margin-top:18px; }
.incident-dashboard-grid--lower { grid-template-columns:minmax(0,2fr) minmax(260px,.65fr); }
.incident-dashboard-grid .table-panel,.incident-dashboard-grid--lower > .portal-panel { background:linear-gradient(145deg,#142946,#0c1a2e); border-color:rgba(137,187,255,.34); }
.incident-chart-card { background:linear-gradient(145deg,#142946,#0c1a2e); }
.incident-chart-card canvas { background:rgba(4,13,25,.38); border:1px solid rgba(137,187,255,.2); border-radius:10px; display:block; max-width:100%; width:100%; }
.incident-chart-card .section-head,.incident-register .section-head { margin-bottom:14px; }
.incident-status-list { display:grid; gap:8px; margin-top:14px; }
.incident-status-list div { align-items:center; background:rgba(8,17,31,.45); border:1px solid rgba(161,189,225,.12); border-radius:9px; display:flex; justify-content:space-between; padding:10px 11px; }
.incident-status-list div { background:#10243d; border-color:rgba(137,187,255,.28); }
.incident-status-list span { color:#d2e1f3; font-size:13px; font-weight:700; }.incident-status-list strong { color:#ffffff; font-size:18px; }
.incident-register { margin-top:18px; }.incident-filter-grid { display:grid; gap:12px; grid-template-columns:2fr repeat(3,minmax(145px,1fr)); }
.incident-register .filters { background:#0d1e34; border:1px solid rgba(137,187,255,.28); border-radius:11px; padding:14px; }
.incident-register label,.incident-form-panel label { color:#d2e2f5; font-size:12.5px; }
.incident-register input,.incident-register select,.incident-form-panel input,.incident-form-panel select,.incident-form-panel textarea { background:#071528; border-color:rgba(151,197,255,.38); color:#f6faff; }
.incident-register input::placeholder,.incident-form-panel input::placeholder,.incident-form-panel textarea::placeholder { color:#9fb0c5; opacity:1; }
.incident-register input:focus,.incident-register select:focus,.incident-form-panel input:focus,.incident-form-panel select:focus,.incident-form-panel textarea:focus { background:#0a1b31; border-color:#74b3ff; box-shadow:0 0 0 3px rgba(105,167,255,.2); }
.incident-table { min-width:980px; }.incident-table th { background:#0b1b30; color:#afc7e5; }.incident-table td { border-bottom-color:rgba(151,197,255,.2); color:#e5effb; }.incident-table tr:hover td { background:rgba(105,167,255,.09); }.incident-table a { color:#86bcff; font-weight:750; }.incident-table td > strong,.incident-table td > small { display:block; }.incident-table td > strong { color:#f7fbff; }.incident-table td > small { color:#a9bfd9; margin-top:4px; }
.severity-badge,.incident-status { border:1px solid transparent; border-radius:999px; display:inline-flex; font-size:12px; font-weight:850; letter-spacing:.035em; padding:4px 8px; text-transform:uppercase; white-space:nowrap; }
.severity-critical { background:#5b1626; border-color:#fb7185; color:#ffd4dc; }.severity-high { background:#55250f; border-color:#fb923c; color:#ffdab5; }.severity-medium { background:#4b380c; border-color:#fbbf24; color:#fff0af; }.severity-low { background:#0d4939; border-color:#43d4a0; color:#c5ffec; }
.incident-status { background:#15385f; border-color:#69a7ff; color:#d7eaff; }.status-resolved,.status-closed { background:#0d4939; border-color:#43d4a0; color:#c5ffec; }.status-contained { background:#38245f; border-color:#a78bfa; color:#e4dcff; }.status-new { background:#4b380c; border-color:#fbbf24; color:#fff0af; }
.incident-form-panel { max-width:1180px; }.incident-form-section { background:#10243d; border:1px solid rgba(137,187,255,.32); border-radius:11px; display:grid; gap:12px; padding:16px; }.incident-form-section h2 { color:#ffffff; font-size:14px; margin:0; }.incident-form-section textarea { min-height:110px; }
.incident-detail-grid { align-items:start; display:grid; gap:18px; grid-template-columns:minmax(0,1.8fr) minmax(280px,.65fr); margin-top:18px; }.incident-detail-main { display:grid; gap:8px; }.incident-detail-main .rich-body { color:#d9e7f7; }.incident-detail-main h2 { border-bottom:1px solid rgba(151,197,255,.3); margin:18px 0 4px; padding-bottom:8px; }.incident-detail-main h2:first-child { margin-top:0; }.incident-facts { position:sticky; top:90px; }.incident-facts dl { display:grid; gap:0; margin:12px 0 0; }.incident-facts dt { color:#a8c1df; font-size:12px; font-weight:850; letter-spacing:.06em; padding-top:11px; text-transform:uppercase; }.incident-facts dd { border-bottom:1px solid rgba(151,197,255,.22); color:#f1f7ff; font-size:13px; margin:0; padding:4px 0 11px; }
.delete-panel { margin:7vh auto; max-width:650px; }
@media (max-width:1100px) { .incident-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.incident-dashboard-grid,.incident-dashboard-grid--lower,.incident-detail-grid { grid-template-columns:1fr; }.incident-facts { position:static; }.incident-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .incident-heading,.incident-stat-grid,.incident-filter-grid { grid-template-columns:1fr; } }

/* Vendor contract management */
.contract-heading,.contract-dashboard-grid .portal-panel,.contract-dashboard-grid .table-panel,.contract-filters,.contract-register,.contract-form-panel,.renewal-form-panel,.contract-detail-grid .portal-panel { background:linear-gradient(145deg,#182b46,#0e1d33); border:1px solid rgba(137,187,255,.38); border-radius:14px; box-shadow:0 14px 34px rgba(0,0,0,.3); }
.contract-heading { align-items:end; grid-template-columns:minmax(0,1fr) auto; }.contract-heading h1,.contract-dashboard-grid h2,.contract-form-panel h1,.contract-form-panel h2,.renewal-form-panel h1,.contract-detail-grid h2 { color:#f8fbff; }.contract-heading .summary,.contract-form-panel .summary,.renewal-form-panel .summary { color:#c4d5e9; }.contract-heading .eyebrow,.contract-dashboard-grid .eyebrow { color:#6ee7b7; }
.contract-stat-grid { display:grid; gap:12px; grid-template-columns:repeat(5,minmax(0,1fr)); margin:18px 0; }.contract-stat-grid .stat-card { background:linear-gradient(145deg,#19304e,#10223a); border-color:rgba(126,181,255,.38); box-shadow:0 9px 22px rgba(0,0,0,.22); }.contract-stat-grid strong { color:#fff; font-size:30px; }.contract-stat-grid span { color:#c5d7ec; font-weight:750; }.contract-warning { border-color:#fbbf24!important; }.contract-warning strong { color:#fff0af!important; }.contract-danger { border-color:#fb7185!important; }.contract-danger strong { color:#ffd4dc!important; }
.contract-dashboard-grid { align-items:start; display:grid; gap:18px; grid-template-columns:minmax(0,1.7fr) minmax(320px,.8fr); margin-top:18px; }.contract-dashboard-lower { grid-template-columns:minmax(0,2fr) minmax(300px,.7fr); }.contract-chart-card canvas { background:rgba(4,13,25,.38); border:1px solid rgba(137,187,255,.2); border-radius:10px; display:block; max-width:100%; width:100%; }.contract-dashboard-grid .section-head { margin-bottom:14px; }.contract-dashboard-grid .section-head > a { color:#8fc0ff; font-weight:750; }
.contract-filters { margin-top:18px; padding:16px; }.contract-filter-grid { display:grid; gap:12px; grid-template-columns:2fr repeat(4,minmax(145px,1fr)); }.contract-filters label,.contract-form-panel label,.renewal-form-panel label { color:#d2e2f5; }.contract-filters input,.contract-filters select,.contract-form-panel input,.contract-form-panel select,.contract-form-panel textarea,.renewal-form-panel input,.renewal-form-panel select,.renewal-form-panel textarea { background:#071528; border-color:rgba(151,197,255,.38); color:#f6faff; }.contract-filters input:focus,.contract-filters select:focus,.contract-form-panel input:focus,.contract-form-panel select:focus,.contract-form-panel textarea:focus,.renewal-form-panel input:focus,.renewal-form-panel select:focus,.renewal-form-panel textarea:focus { border-color:#74b3ff; box-shadow:0 0 0 3px rgba(105,167,255,.2); }
.contract-register { margin-top:18px; }.contract-table { min-width:980px; }.contract-table th { background:#0b1b30; color:#afc7e5; }.contract-table td { border-bottom-color:rgba(151,197,255,.2); color:#e5effb; }.contract-table tr:hover td { background:rgba(105,167,255,.09); }.contract-table td > strong,.contract-table td > small,.contract-table a > strong,.contract-table a > small { display:block; }.contract-table td > strong,.contract-table a > strong { color:#f7fbff; }.contract-table td > small,.contract-table a > small { color:#a9bfd9; margin-top:3px; }.contract-table a { color:#8fc0ff; }
.contract-status,.renewal-status,.contract-days { border:1px solid transparent; border-radius:999px; display:inline-flex; font-size:12px; font-weight:850; padding:4px 8px; text-transform:uppercase; white-space:nowrap; }.contract-status-draft { background:#28394f;border-color:#94a3b8;color:#eef4fb;}.contract-status-active { background:#0d4939;border-color:#43d4a0;color:#c5ffec;}.contract-status-expiring { background:#4b380c;border-color:#fbbf24;color:#fff0af;}.contract-status-expired,.contract-status-terminated { background:#5b1626;border-color:#fb7185;color:#ffd4dc;}.contract-days { background:#15385f;border-color:#69a7ff;color:#d7eaff;}.contract-days-danger { background:#5b1626;border-color:#fb7185;color:#ffd4dc; }
.renewal-list { display:grid; gap:8px; margin-top:14px; }.renewal-list a { align-items:center; background:#10243d; border:1px solid rgba(137,187,255,.28); border-radius:9px; display:flex; justify-content:space-between; padding:10px; }.renewal-list span strong,.renewal-list span small { display:block; }.renewal-list span strong { color:#f7fbff; }.renewal-list span small { color:#a9bfd9; }.renewal-pending { background:#4b380c;border-color:#fbbf24;color:#fff0af;}.renewal-approved,.renewal-completed { background:#0d4939;border-color:#43d4a0;color:#c5ffec;}.renewal-rejected,.renewal-cancelled { background:#5b1626;border-color:#fb7185;color:#ffd4dc;}
.contract-form-panel { max-width:1180px; }.contract-form-section { background:#10243d; border:1px solid rgba(137,187,255,.32); border-radius:11px; display:grid; gap:12px; padding:16px; }.contract-form-section h2 { font-size:14px; margin:0; }.contract-form-section textarea { min-height:110px; }.contract-check input { height:18px; width:18px; }
.contract-detail-grid { align-items:start; display:grid; gap:18px; grid-template-columns:minmax(0,1.8fr) minmax(280px,.65fr); margin-top:18px; }.contract-detail-main { display:grid; gap:8px; }.contract-detail-main .rich-body { color:#d9e7f7; }.contract-detail-main > h2 { border-bottom:1px solid rgba(151,197,255,.3); margin:18px 0 4px; padding-bottom:8px; }.contract-detail-main > h2:first-child { margin-top:0; }.contract-facts { position:sticky; top:90px; }.contract-facts dl { margin:10px 0 0; }.contract-facts dt { color:#a8c1df; font-size:12px; font-weight:850; letter-spacing:.06em; padding-top:11px; text-transform:uppercase; }.contract-facts dd { border-bottom:1px solid rgba(151,197,255,.22); color:#f1f7ff; font-size:13px; margin:0; padding:4px 0 11px; }
.renewal-history { display:grid; gap:10px; }.renewal-history article { background:#10243d; border:1px solid rgba(137,187,255,.28); border-radius:10px; display:grid; gap:8px; grid-template-columns:minmax(0,1fr) auto; padding:12px; }.renewal-history article p,.renewal-history article a { grid-column:1/-1; margin:0; }.renewal-history small { color:#a9bfd9; display:block; }.renewal-history a { color:#8fc0ff; font-weight:750; }.renewal-form-panel { margin:4vh auto; max-width:760px; }.renewal-review-summary { background:#10243d; border:1px solid rgba(137,187,255,.28); border-radius:10px; color:#d9e7f7; margin:16px 0; padding:14px; }
@media (max-width:1180px) { .contract-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.contract-dashboard-grid,.contract-dashboard-lower,.contract-detail-grid { grid-template-columns:1fr; }.contract-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.contract-facts { position:static; } }
@media (max-width:760px) { .contract-heading,.contract-stat-grid,.contract-filter-grid { grid-template-columns:1fr; } }

/* VPN account management */
.vpn-heading,.vpn-dashboard-grid .portal-panel,.vpn-expiry-panel,.vpn-filters,.vpn-register,.vpn-form-panel,.vpn-detail-grid .portal-panel { background:linear-gradient(145deg,#182b46,#0e1d33); border:1px solid rgba(137,187,255,.38); border-radius:14px; box-shadow:0 14px 34px rgba(0,0,0,.3); }
.vpn-heading { align-items:end; grid-template-columns:minmax(0,1fr) auto; }.vpn-heading h1,.vpn-dashboard-grid h2,.vpn-expiry-panel h2,.vpn-form-panel h1,.vpn-form-panel h2,.vpn-detail-grid h2 { color:#f8fbff; }.vpn-heading .summary,.vpn-form-panel .summary { color:#c4d5e9; }.vpn-heading .eyebrow,.vpn-dashboard-grid .eyebrow,.vpn-expiry-panel .eyebrow { color:#6ee7b7; }
.vpn-stat-grid { display:grid; gap:12px; grid-template-columns:repeat(5,minmax(0,1fr)); margin:18px 0; }.vpn-stat-grid .stat-card { background:linear-gradient(145deg,#19304e,#10223a); border-color:rgba(126,181,255,.38); box-shadow:0 9px 22px rgba(0,0,0,.22); }.vpn-stat-grid strong { color:#fff; font-size:30px; }.vpn-stat-grid span { color:#c5d7ec; font-weight:750; }.vpn-warning { border-color:#fbbf24!important; }.vpn-warning strong { color:#fff0af!important; }.vpn-danger { border-color:#fb7185!important; }.vpn-danger strong { color:#ffd4dc!important; }
.vpn-dashboard-grid { display:grid; gap:18px; grid-template-columns:minmax(0,1.7fr) minmax(320px,.8fr); margin-top:18px; }.vpn-chart-card canvas { background:rgba(4,13,25,.38); border:1px solid rgba(137,187,255,.2); border-radius:10px; display:block; max-width:100%; width:100%; }.vpn-expiry-panel { margin-top:18px; }.vpn-expiry-panel .section-head { margin-bottom:14px; }.vpn-expiry-panel .section-head > a { color:#8fc0ff; font-weight:750; }
.vpn-filters { margin-top:18px; padding:16px; }.vpn-filter-grid { display:grid; gap:12px; grid-template-columns:2fr repeat(5,minmax(135px,1fr)); }.vpn-filters label,.vpn-form-panel label { color:#d2e2f5; }.vpn-filters input,.vpn-filters select,.vpn-form-panel input,.vpn-form-panel select,.vpn-form-panel textarea { background:#071528; border-color:rgba(151,197,255,.38); color:#f6faff; }.vpn-filters input:focus,.vpn-filters select:focus,.vpn-form-panel input:focus,.vpn-form-panel select:focus,.vpn-form-panel textarea:focus { border-color:#74b3ff; box-shadow:0 0 0 3px rgba(105,167,255,.2); }
.vpn-register { margin-top:18px; }.vpn-table { min-width:1050px; }.vpn-table th { background:#0b1b30; color:#afc7e5; }.vpn-table td { border-bottom-color:rgba(151,197,255,.2); color:#e5effb; }.vpn-table tr:hover td { background:rgba(105,167,255,.09); }.vpn-table td > strong,.vpn-table td > small,.vpn-table a > strong,.vpn-table a > small { display:block; }.vpn-table td > strong,.vpn-table a > strong { color:#f7fbff; }.vpn-table td > small,.vpn-table a > small { color:#a9bfd9; margin-top:3px; }.vpn-table a { color:#8fc0ff; }
.vpn-status,.vpn-mfa,.vpn-days { border:1px solid transparent; border-radius:999px; display:inline-flex; font-size:12px; font-weight:850; padding:4px 8px; text-transform:uppercase; white-space:nowrap; }.vpn-status-active,.vpn-mfa { background:#0d4939;border-color:#43d4a0;color:#c5ffec;}.vpn-status-suspended { background:#4b380c;border-color:#fbbf24;color:#fff0af;}.vpn-status-revoked,.vpn-status-expired,.vpn-mfa-off { background:#5b1626;border-color:#fb7185;color:#ffd4dc;}.vpn-days { background:#15385f;border-color:#69a7ff;color:#d7eaff;}.vpn-days-danger { background:#5b1626;border-color:#fb7185;color:#ffd4dc; }
.vpn-form-panel { max-width:1180px; }.vpn-form-section { background:#10243d; border:1px solid rgba(137,187,255,.32); border-radius:11px; display:grid; gap:12px; padding:16px; }.vpn-form-section h2 { font-size:14px; margin:0; }.vpn-form-section textarea { min-height:110px; }.vpn-check input { height:18px; width:18px; }
.vpn-qr-guidance { background:#15385f; border:1px solid rgba(105,167,255,.5); border-radius:9px; color:#d7eaff; font-size:13px; line-height:1.55; margin:0; padding:10px 12px; }.vpn-qr-dropzone { align-items:center; background:#071528; border:2px dashed rgba(116,179,255,.58); border-radius:12px; cursor:copy; display:flex; justify-content:center; min-height:260px; outline:none; overflow:hidden; padding:16px; transition:.18s ease; }.vpn-qr-dropzone:hover,.vpn-qr-dropzone:focus { background:#0b1d34; border-color:#74b3ff; box-shadow:0 0 0 4px rgba(105,167,255,.16); }.vpn-qr-placeholder { color:#d7e7f8; display:grid; gap:5px; text-align:center; }.vpn-qr-placeholder strong { color:#fff; font-size:15px; }.vpn-qr-placeholder span { color:#9eb6d3; font-size:12.5px; }.vpn-qr-preview { background:#fff; border:8px solid #fff; border-radius:10px; display:block; max-height:300px; max-width:100%; object-fit:contain; }.vpn-qr-preview.is-hidden { display:none; }.vpn-qr-dropzone:has(.vpn-qr-preview:not(.is-hidden)) .vpn-qr-placeholder { display:none; }.vpn-qr-feedback { font-size:12.5px; font-weight:750; margin:0; }.vpn-qr-feedback.is-success { color:#75f0c3; }.vpn-qr-feedback.is-error { color:#ff9caf; }.vpn-qr-remove { background:#5b1626; border:1px solid #fb7185; border-radius:8px; padding:9px 11px; }.vpn-qr-detail { align-items:start; background:#071528; border:1px solid rgba(137,187,255,.3); border-radius:12px; display:flex; flex-wrap:wrap; gap:16px; padding:16px; }.vpn-qr-detail img { background:#fff; border:8px solid #fff; border-radius:10px; height:auto; max-width:280px; width:100%; }.vpn-qr-detail p { background:#4b380c; border:1px solid #fbbf24; border-radius:8px; color:#fff2bd; flex:1 1 260px; font-size:12.5px; margin:0; padding:10px; }
.vpn-detail-grid { align-items:start; display:grid; gap:18px; grid-template-columns:minmax(0,1.8fr) minmax(280px,.65fr); margin-top:18px; }.vpn-detail-grid article { display:grid; gap:8px; }.vpn-detail-grid article h2 { border-bottom:1px solid rgba(151,197,255,.3); margin:18px 0 4px; padding-bottom:8px; }.vpn-detail-grid article h2:first-child { margin-top:0; }.vpn-detail-grid .rich-body { color:#d9e7f7; }.vpn-facts { position:sticky; top:90px; }.vpn-facts dl { margin:10px 0 0; }.vpn-facts dt { color:#a8c1df; font-size:12px; font-weight:850; letter-spacing:.06em; padding-top:11px; text-transform:uppercase; }.vpn-facts dd { border-bottom:1px solid rgba(151,197,255,.22); color:#f1f7ff; font-size:13px; margin:0; padding:4px 0 11px; }
@media (max-width:1180px) { .vpn-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.vpn-dashboard-grid,.vpn-detail-grid { grid-template-columns:1fr; }.vpn-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.vpn-facts { position:static; } }
@media (max-width:760px) { .vpn-heading,.vpn-stat-grid,.vpn-filter-grid { grid-template-columns:1fr; } }

/* Global high-contrast baseline for operational workspaces and system feedback. */
.workspace-main > .page-heading { background:linear-gradient(145deg,#182b46,#0e1d33); border-color:rgba(137,187,255,.38); box-shadow:0 14px 34px rgba(0,0,0,.3); }
.workspace-main > .page-heading h1 { color:#f8fbff; text-shadow:0 1px 0 rgba(0,0,0,.35); }
.workspace-main > .page-heading .summary { color:#c7d8eb; }
.summary,.muted { color:#b8cbe2; }
.portal-panel,.table-panel,.form-panel,.profile-panel,.layout-card { border-color:rgba(137,187,255,.3); }
.portal-panel > h2,.table-panel h2,.form-panel h1,.profile-panel h2,.layout-card h2,.section-head h2 { color:#f4f8ff; }
.portal-panel,.table-panel,.form-panel,.profile-panel { background:linear-gradient(145deg,rgba(22,42,68,.98),rgba(12,27,47,.98)); }
.layout-card,.mini-card,.tool-tile,.link-tile { background:#10243d; border-color:rgba(137,187,255,.26); }
.layout-card:hover,.mini-card:hover,.tool-tile:hover,.link-tile:hover { background:#17304f; border-color:rgba(105,167,255,.58); }
.layout-card p,.mini-card p,.tool-tile p,.link-tile p { color:#bfd1e6; }
.mini-card strong,.tool-tile h3,.link-tile h3 { color:#f4f8ff; }.mini-card small { color:#9eb6d3; }

.stats-grid .stat-card,.iam-stat-grid .stat-card { background:linear-gradient(145deg,#19304e,#10223a); border-color:rgba(126,181,255,.38); box-shadow:0 9px 22px rgba(0,0,0,.22); }
.stats-grid .stat-card strong,.iam-stat-grid .stat-card strong { color:#fff; font-size:30px; }
.stats-grid .stat-card span,.iam-stat-grid .stat-card span { color:#c5d7ec; font-weight:750; }
.stats-grid .stat-card:hover,.iam-stat-grid .stat-card:hover { border-color:#74b3ff; transform:translateY(-2px); }

.filters-panel,.workspace-main > .table-panel > .filters { background:#0d1e34; border:1px solid rgba(137,187,255,.3); border-radius:11px; padding:15px; }
.filters label,.form label { color:#d1e1f3; }
.filters input,.filters select,.form input,.form select,.form textarea { border-color:rgba(151,197,255,.34); color:#f5f9ff; }
.filters input::placeholder,.form input::placeholder,.form textarea::placeholder { color:#9eb0c7; opacity:1; }
.filters input:disabled,.filters select:disabled,.form input:disabled,.form select:disabled,.form textarea:disabled { background:#111d2e; border-color:rgba(151,197,255,.2); color:#9eb1c8; opacity:1; }

.table th { background:#0b1b30; color:#afc7e5; }.table td { border-bottom-color:rgba(151,197,255,.19); color:#e1ebf7; }.table tr:hover td { background:rgba(105,167,255,.09); }.table td strong { color:#f7fbff; }.table td small { color:#a8bdd6; }
.table a:not(.button) { color:#91c3ff; }.table a:not(.button):hover { color:#fff; }
.rich-content,.rich-body { color:#d5e2f1; }
.nav-empty,.cms-empty span,.empty-state,.field-optional { color:#a9bfd9; }
.permission-effective-list code { background:#071528; border-color:rgba(151,197,255,.3); color:#cce2ff; }

.messages { background:transparent; border:0; display:grid; gap:9px; margin:0 0 18px; padding:0; }
.system-message { align-items:center; background:#15385f; border:1px solid #69a7ff; border-left-width:4px; border-radius:10px; box-shadow:0 10px 24px rgba(0,0,0,.26); color:#e4f1ff; display:flex; font-size:13px; font-weight:700; line-height:1.5; margin:0; min-height:46px; padding:11px 14px; }
.system-message::before { background:#69a7ff; border-radius:50%; color:#071525; content:'i'; display:inline-grid; flex:0 0 20px; font-size:13px; font-weight:900; height:20px; margin-right:10px; place-items:center; width:20px; }
.system-message--success { background:#0d4939; border-color:#43d4a0; color:#d2ffef; }.system-message--success::before { background:#43d4a0; content:'✓'; }
.system-message--warning { background:#4b380c; border-color:#fbbf24; color:#fff2bd; }.system-message--warning::before { background:#fbbf24; content:'!'; }
.system-message--error { background:#5b1626; border-color:#fb7185; color:#ffe0e6; }.system-message--error::before { background:#fb7185; content:'×'; }
.field-errors,.errorlist { background:rgba(91,22,38,.62); border:1px solid rgba(251,113,133,.65); border-radius:7px; color:#ffd7df; font-weight:700; list-style-position:inside; padding:7px 9px; }
.system-managed-notice,.logging-scope-note { background:linear-gradient(145deg,#182b46,#0e1d33); }

.workspace-main canvas { background:rgba(4,13,25,.42); border:1px solid rgba(137,187,255,.24); border-radius:10px; }
.page-vulnerability-dashboard .stats-grid { margin:18px 0; }
.page-vulnerability-dashboard .portal-panel,.page-vulnerability-dashboard .table-panel { border-color:rgba(137,187,255,.34); }
.page-vulnerability-dashboard .summary { color:#c3d4e8; }
.pagination span { color:#b8cbe2; }.pagination a { color:#8fc0ff; }

@media (prefers-contrast:more) {
  .portal-panel,.table-panel,.form-panel,.profile-panel,.stat-card,.layout-card { border-color:rgba(174,211,255,.62); }
  .summary,.muted { color:#d6e3f2; }
  .table td { color:#f2f7ff; }
}

/* Content CMS taxonomy and full-page review workflow. */
.review-status-panel { display:grid; gap:10px; grid-template-columns:repeat(4,minmax(0,1fr)); margin:18px 0; }.review-status-panel > div { background:linear-gradient(145deg,#19304e,#10223a); border:1px solid rgba(126,181,255,.38); border-radius:10px; padding:12px; }.review-status-panel span,.review-status-panel strong { display:block; }.review-status-panel > div > span { color:#a9bfd9; font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }.review-status-panel > div > strong { color:#f7fbff; margin-top:5px; }
.review-layout { align-items:start; display:grid; gap:18px; grid-template-columns:minmax(0,1.8fr) minmax(280px,.55fr); }.review-document { background:linear-gradient(145deg,#182b46,#0e1d33); min-height:680px; padding:32px; }.review-document > header { border-bottom:1px solid rgba(151,197,255,.25); margin-bottom:24px; padding-bottom:22px; }.review-document > header h1 { color:#fff; font-size:clamp(28px,4vw,44px); margin:7px 0 10px; }.review-summary { color:#c7d8eb; font-size:16px; line-height:1.7; }.review-body { color:#e1ebf7; font-size:15px; line-height:1.85; }.review-sidebar { display:grid; gap:16px; position:sticky; top:90px; }.review-actions { display:grid; gap:9px; }.review-actions button { width:100%; }.review-metadata dl { margin:0; }.review-metadata dt { color:#a8c1df; font-size:12px; font-weight:800; padding-top:10px; text-transform:uppercase; }.review-metadata dd { border-bottom:1px solid rgba(151,197,255,.2); color:#f1f7ff; margin:0; padding:4px 0 10px; }.review-metadata a { color:#8fc0ff; }
.taxonomy-grid { display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:18px; }.taxonomy-group { background:linear-gradient(145deg,#182b46,#0e1d33); }.taxonomy-group .section-head a,.taxonomy-topic-list a,.taxonomy-add-link { color:#8fc0ff; font-size:12.5px; font-weight:750; }.taxonomy-topic-list { display:grid; gap:8px; margin-top:14px; }.taxonomy-topic-list > div { align-items:center; background:#10243d; border:1px solid rgba(137,187,255,.28); border-radius:9px; display:flex; justify-content:space-between; padding:10px 11px; }.taxonomy-topic-list strong,.taxonomy-topic-list small { display:block; }.taxonomy-topic-list strong { color:#f7fbff; }.taxonomy-topic-list small { color:#a9bfd9; margin-top:3px; }.taxonomy-add-link { display:inline-block; margin-top:12px; }.taxonomy-form-panel { margin:4vh auto; max-width:760px; }

/* Content Studio */
.article-editor-shell { margin:0 auto; max-width:1480px; }.article-editor-header { align-items:end; background:linear-gradient(135deg,#193a60,#0c2039); grid-template-columns:minmax(0,1fr) auto; margin-bottom:18px; }.article-editor-grid { align-items:start; grid-template-columns:minmax(0,2.15fr) minmax(300px,.72fr); }.editor-main { background:linear-gradient(145deg,#162b47,#0b1c31); border-color:rgba(137,187,255,.42); padding:25px; }.editor-document-label { align-items:center; border-bottom:1px solid rgba(151,197,255,.2); display:flex; justify-content:space-between; margin:-4px 0 4px; padding-bottom:13px; }.editor-document-label span { color:#7fb7ff; font-size:12px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }.editor-document-label small,.editor-word-count { color:#9eb5d1; font-size:12.5px; }.editor-title-field input { font-size:22px; font-weight:750; letter-spacing:-.025em; padding:13px 14px; }.article-summary { min-height:92px; resize:vertical; }.editor-section-heading { align-items:center; }.editor-toolbar { border-color:rgba(137,187,255,.34); gap:7px; padding:9px; position:sticky; top:66px; z-index:8; }.editor-tool-group { align-items:center; border-right:1px solid rgba(151,197,255,.2); display:flex; gap:4px; padding-right:7px; }.editor-tool-group:last-of-type { border-right:0; }.editor-toolbar select { background:#10243d; border-color:rgba(151,197,255,.32); color:#eef6ff; font-size:12.5px; min-height:32px; padding:5px 8px; width:auto; }.editor-toolbar button { color:#dceaff; font-size:12.5px; font-weight:750; }.editor-stage.is-enhanced .editor-canvas { background:#f7f9fc; border-color:rgba(137,187,255,.46); color:#17263a; font-family:Georgia,"Times New Roman",serif; font-size:16px; height:620px; line-height:1.8; max-height:620px; min-height:520px; padding:34px clamp(22px,5vw,64px); }.editor-stage.is-enhanced .editor-canvas:focus { background:#fff; }.editor-canvas h2,.editor-canvas h3,.editor-canvas h4 { color:#10243d; font-family:Inter,Segoe UI,sans-serif; line-height:1.25; }.editor-canvas blockquote { border-left:4px solid #367ac4; color:#40536b; margin-left:0; padding:8px 18px; }.editor-canvas a { color:#145da0; }.editor-canvas:empty::before { color:#a6afbd; }.editor-side { display:grid; gap:15px; }.editor-settings-card,.editor-advanced { background:linear-gradient(145deg,#182f4d,#0d2038); border-color:rgba(137,187,255,.38); padding:18px; }.editor-settings-card h2 { color:#f8fbff; font-size:16px; margin:4px 0 0; }.editor-card-copy { color:#b3c7df; font-size:12.5px; line-height:1.55; margin:5px 0 0; }.editor-settings-card label,.editor-advanced label { color:#dbe8f7; }.editor-settings-card select,.editor-settings-card input,.editor-advanced input { background:#071528; border-color:rgba(151,197,255,.38); color:#f6faff; }.editor-settings-card select[multiple] { min-height:135px; }.editor-advanced { display:block; }.editor-advanced summary { cursor:pointer; list-style:none; }.editor-advanced summary::-webkit-details-marker { display:none; }.editor-advanced summary > span { display:grid; gap:3px; position:relative; }.editor-advanced summary > span:after { color:#8fc0ff; content:'Open'; font-size:12px; position:absolute; right:0; top:8px; }.editor-advanced[open] summary > span:after { content:'Close'; }.editor-advanced summary strong { color:#f4f8ff; font-size:14px; }.editor-advanced summary small { color:#9fb4cf; }.editor-advanced-fields { border-top:1px solid rgba(151,197,255,.2); margin-top:14px; padding-top:14px; }.editor-keywords-field { display:none !important; }.editor-actions { background:#0c1c31; border:1px solid rgba(137,187,255,.3); border-radius:12px; bottom:14px; box-shadow:0 12px 30px rgba(0,0,0,.28); padding:12px; position:sticky; z-index:10; }
@media (max-width:980px) { .article-editor-grid { grid-template-columns:1fr; }.editor-side { grid-template-columns:repeat(2,minmax(0,1fr)); }.editor-advanced { grid-column:1/-1; }.editor-toolbar { top:0; }.editor-actions { bottom:8px; } }
@media (max-width:680px) { .article-editor-header { grid-template-columns:1fr; }.editor-main { padding:15px; }.editor-side { grid-template-columns:1fr; }.editor-advanced { grid-column:auto; }.editor-tool-group { border-right:0; padding-right:0; }.editor-stage.is-enhanced .editor-canvas { min-height:460px; padding:22px 18px; } }

/* External security tools */
.external-tools-heading { align-items:end; background:linear-gradient(135deg,#172f51,#0a1c32); border-color:rgba(112,181,255,.48); grid-template-columns:minmax(0,1fr) auto; }.external-tools-heading .eyebrow,.external-tool-section .eyebrow { color:#6ee7b7; }.external-tool-stats { display:grid; gap:14px; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:18px; }.external-tool-stats article { background:linear-gradient(145deg,#172e4c,#0c1d33); border:1px solid rgba(137,187,255,.38); border-radius:12px; box-shadow:0 10px 24px rgba(0,0,0,.22); padding:17px; }.external-tool-stats strong { color:#fff; display:block; font-size:29px; }.external-tool-stats span { color:#b6cae2; font-size:12.5px; }.external-tool-filters { background:#10243d; border-color:rgba(137,187,255,.38); margin-top:18px; padding:15px; }.external-tool-filters .filters-grid { grid-template-columns:minmax(260px,2fr) repeat(2,minmax(160px,1fr)); }.external-tool-filters input,.external-tool-filters select { background:#071528; border-color:rgba(151,197,255,.4); color:#f6faff; }.external-tool-section { margin-top:25px; }.external-tool-section .section-head { margin-bottom:11px; }.external-tool-section h2 { color:#f5f9ff; font-size:18px; margin:3px 0; }.external-tool-grid { display:grid; gap:13px; grid-template-columns:repeat(4,minmax(0,1fr)); }.external-tool-card { background:linear-gradient(145deg,#172d4a,#0c1d32); border:1px solid rgba(137,187,255,.3); border-radius:13px; color:#ecf5ff; display:grid; gap:13px; grid-template-columns:48px minmax(0,1fr); min-height:145px; padding:16px; position:relative; transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease; }.external-tool-card:before { background:var(--tool-accent); border-radius:13px 13px 0 0; content:''; height:3px; left:0; position:absolute; right:0; top:0; }.external-tool-card:hover { border-color:var(--tool-accent); box-shadow:0 15px 30px rgba(0,0,0,.3); transform:translateY(-3px); }.external-tool-icon,.external-tool-list-icon { align-items:center; background:color-mix(in srgb,var(--tool-accent) 22%,#10243d); border:1px solid var(--tool-accent); border-radius:11px; color:#fff; display:flex; font-size:13px; font-weight:900; height:48px; justify-content:center; letter-spacing:-.02em; width:48px; }.external-tool-copy { display:grid; gap:6px; min-width:0; }.external-tool-copy strong { color:#fff; font-size:14px; }.external-tool-copy small { color:#b3c7df; font-size:12.5px; line-height:1.45; }.external-tool-domain { color:#82b9ff; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.external-tool-featured,.external-tool-disabled { background:#163d34; border:1px solid #2e806a; border-radius:20px; color:#8ff0cf; font-size:10.5px; font-weight:850; padding:3px 6px; position:absolute; right:9px; text-transform:uppercase; top:9px; }.external-tool-disabled { background:#44242b; border-color:#9f4856; color:#ffc3cc; }.external-tool-card.is-inactive { filter:saturate(.45); opacity:.68; }.external-tools-empty,.external-tool-notice { margin-top:18px; }.external-tool-notice { align-items:flex-start; background:#382e18; border:1px solid #8f7434; border-radius:11px; color:#f5dfaa; display:flex; gap:12px; padding:13px 15px; }.external-tool-notice span { font-size:12.5px; line-height:1.55; }.external-tool-register { margin-top:18px; }.external-tool-register td:first-child strong,.external-tool-register td:first-child small { display:block; margin-left:60px; }.external-tool-register .external-tool-list-icon { float:left; height:42px; width:42px; }.external-tool-form { margin:3vh auto; max-width:1000px; }.external-tool-form section { background:#10243d; border:1px solid rgba(137,187,255,.3); border-radius:11px; display:grid; gap:12px; padding:16px; }.external-tool-form h2 { color:#fff; font-size:14px; margin:0; }.external-tool-form input,.external-tool-form select,.external-tool-form textarea { background:#071528; border-color:rgba(151,197,255,.4); color:#f6faff; }.external-tool-check { align-items:center; display:flex; gap:8px; }.external-tool-check input { height:18px; width:18px; }
@media (max-width:1180px) { .external-tool-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:850px) { .external-tools-heading { grid-template-columns:1fr; }.external-tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.external-tool-stats { grid-template-columns:repeat(2,1fr); }.external-tool-filters .filters-grid { grid-template-columns:1fr; } }
@media (max-width:560px) { .external-tool-grid { grid-template-columns:1fr; }.external-tool-notice { display:grid; } }
@media (max-width:1000px) { .review-status-panel { grid-template-columns:repeat(2,minmax(0,1fr)); }.review-layout,.taxonomy-grid { grid-template-columns:1fr; }.review-sidebar { position:static; } }
@media (max-width:600px) { .review-status-panel { grid-template-columns:1fr; }.review-document { padding:20px; } }

/* Compact, high-contrast external tool directory. */
.external-tools-heading .summary { color:#d8e8f9; }.external-tool-stats { gap:10px; margin-top:14px; }.external-tool-stats article { border-color:rgba(157,204,255,.58); padding:12px 14px; }.external-tool-stats strong { font-size:24px; }.external-tool-stats span { color:#d7e8fb; font-weight:750; }.external-tool-filters { border-color:rgba(157,204,255,.6); margin-top:14px; padding:13px; }.external-tool-filters label > span { color:#f4f8ff; font-size:12.5px; font-weight:850; }.external-tool-filters input,.external-tool-filters select { border-color:rgba(174,214,255,.62); color:#fff; }.external-tool-section { margin-top:20px; }.external-tool-section .section-head { border-bottom:1px solid rgba(151,197,255,.34); margin-bottom:9px; padding-bottom:7px; }.external-tool-section .eyebrow { color:#9affdd; font-size:12px; font-weight:900; }.external-tool-section h2 { color:#fff; font-size:17px; font-weight:900; letter-spacing:-.01em; margin:2px 0; text-shadow:0 1px 0 #000; }.external-tool-grid { gap:9px; grid-template-columns:repeat(5,minmax(0,1fr)); }.external-tool-card { background:linear-gradient(145deg,#193352,#0d223b); border-color:rgba(157,204,255,.5); border-radius:10px; gap:10px; grid-template-columns:38px minmax(0,1fr); min-height:108px; padding:11px; }.external-tool-card:before { border-radius:10px 10px 0 0; }.external-tool-card:hover { box-shadow:0 12px 25px rgba(0,0,0,.32); transform:translateY(-2px); }.external-tool-icon { border-radius:9px; font-size:12px; height:38px; width:38px; }.external-tool-copy { gap:4px; }.external-tool-copy strong { color:#fff; font-size:13px; font-weight:900; padding-right:28px; }.external-tool-copy small { color:#d5e4f5; display:-webkit-box; font-size:12px; line-height:1.38; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.external-tool-domain { color:#a5d0ff; font-size:11.5px; font-weight:750; }.external-tool-featured,.external-tool-disabled { font-size:10px; padding:2px 5px; right:6px; top:7px; }.external-tool-notice { border-color:#b4974e; color:#fff0c7; padding:11px 14px; }.external-tool-notice strong { color:#fff7e1; }.external-tool-register th { color:#d3e6fb; }.external-tool-register td { color:#e7f1fc; }
@media (max-width:1380px) { .external-tool-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:1080px) { .external-tool-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:850px) { .external-tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .external-tool-grid { grid-template-columns:1fr; } }

/* Dense dark library: category containers must remain dark in every portal theme. */
.external-tools-heading { background:linear-gradient(135deg,#102945,#071625) !important; border-color:#315a7f !important; }.external-tool-filters { background:#081a2c !important; border-color:#315a7f !important; }.external-tool-section { background:linear-gradient(145deg,#0d2238,#071522) !important; border:1px solid #294b6b; border-radius:10px; box-shadow:0 10px 24px rgba(0,0,0,.3); margin-top:14px; padding:10px; }.external-tool-section .section-head { border-bottom:1px solid #294b6b; margin-bottom:7px; min-height:0; padding:0 2px 7px; }.external-tool-section h2 { color:#f5f9ff !important; font-size:13px; letter-spacing:.025em; margin:0; text-transform:uppercase; }.external-tool-grid { gap:7px; grid-template-columns:repeat(6,minmax(0,1fr)); }.external-tool-card { background:#102740 !important; border-color:#315779 !important; border-radius:8px; gap:8px; grid-template-columns:32px minmax(0,1fr); min-height:78px; padding:8px; }.external-tool-card:before { border-radius:8px 8px 0 0; height:2px; }.external-tool-icon { border-radius:7px; font-size:11.5px; height:32px; width:32px; }.external-tool-copy { gap:2px; }.external-tool-copy strong { color:#fff !important; font-size:12.5px; line-height:1.2; padding-right:0; }.external-tool-copy small { color:#c6d7e9 !important; font-size:11.5px; line-height:1.25; -webkit-line-clamp:1; }.external-tool-domain { color:#88bdf2 !important; font-size:10.5px; line-height:1.2; }.external-tool-featured,.external-tool-disabled { display:none; }.external-tool-notice { margin-top:12px; }.external-tools-empty { background:#0d2238 !important; }
@media (max-width:1450px) { .external-tool-grid { grid-template-columns:repeat(5,minmax(0,1fr)); } }
@media (max-width:1200px) { .external-tool-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:960px) { .external-tool-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:700px) { .external-tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:460px) { .external-tool-grid { grid-template-columns:1fr; } }
.internal-tool-filter-grid { grid-template-columns:minmax(240px,2fr) repeat(3,minmax(145px,1fr)) !important; }.internal-tool-card { min-height:82px; }.internal-tool-meta { color:#8fc7a9; font-size:10.5px; font-weight:750; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.internal-tool-notice { background:#153328; border-color:#39775e; color:#d5ffeb; }.internal-tool-section h2 { color:#e9fff5 !important; }
.tool-admin-bar { align-items:center; background:linear-gradient(135deg,#12375a,#0a243d); border:1px solid #4a84b5; border-radius:10px; box-shadow:0 8px 20px rgba(0,0,0,.28); display:flex; gap:18px; justify-content:space-between; margin-top:12px; padding:11px 14px; }.tool-admin-bar > div:first-child { display:grid; gap:2px; }.tool-admin-bar .eyebrow { color:#86efcc; font-size:11.5px; font-weight:900; }.tool-admin-bar strong { color:#fff; font-size:13px; }.tool-admin-bar small { color:#c8ddf2; font-size:12px; }.tool-admin-bar .button { border-color:#75b9f0; box-shadow:0 4px 12px rgba(0,0,0,.2); font-weight:850; }
@media (max-width:1000px) { .internal-tool-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:600px) { .internal-tool-filter-grid { grid-template-columns:1fr !important; } }
@media (max-width:700px) { .tool-admin-bar { align-items:stretch; display:grid; }.tool-admin-bar .actions { justify-content:flex-start; } }
.tool-category-tabs { background:#081a2c; border:1px solid #315a7f; border-radius:10px; display:flex; gap:5px; margin-top:14px; padding:7px; }.tool-category-tabs a { border-radius:7px; color:#bcd2e8; font-size:12.5px; font-weight:800; padding:7px 13px; }.tool-category-tabs a.is-active,.tool-category-tabs a:hover { background:#17446c; color:#fff; }.tool-category-grid { display:grid; gap:9px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:12px; }.tool-category-card { align-items:start; background:linear-gradient(145deg,#102b46,#081a2b); border:1px solid #315779; border-left:3px solid var(--tool-accent); border-radius:10px; display:grid; gap:12px; grid-template-columns:38px minmax(0,1fr) auto; padding:12px; }.tool-category-card h2 { color:#fff; font-size:14px; margin:2px 0 4px; }.tool-category-card p { color:#c7d9eb; font-size:12px; margin:0 0 5px; }.tool-category-card small { color:#91b2d2; }.tool-category-card .actions { align-self:center; }.tool-category-card .actions a { color:#9dccff; font-size:12px; font-weight:800; }
@media (max-width:800px) { .tool-category-grid { grid-template-columns:1fr; } }

/* Identity and access management dashboard */
.iam-dashboard-heading { align-items:end; background:linear-gradient(135deg,#172f51,#091c31); border-color:rgba(112,181,255,.55); grid-template-columns:minmax(0,1fr) auto; }.iam-dashboard-heading .summary { color:#d2e3f5; }.iam-kpi-grid { display:grid; gap:11px; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:15px; }.iam-kpi-grid article { background:linear-gradient(145deg,#183352,#0c2037); border:1px solid rgba(151,197,255,.48); border-radius:11px; padding:14px; }.iam-kpi-grid span,.iam-kpi-grid strong,.iam-kpi-grid small { display:block; }.iam-kpi-grid span { color:#bdd3eb; font-size:12px; font-weight:850; text-transform:uppercase; }.iam-kpi-grid strong { color:#fff; font-size:28px; margin:4px 0; }.iam-kpi-grid small { color:#a9c1da; }.iam-kpi-grid .iam-risk-card { background:linear-gradient(145deg,#4a3018,#271b10); border-color:#a9783d; }.iam-dashboard-grid { display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:14px; }.iam-dashboard-grid > .portal-panel { background:linear-gradient(145deg,#142d49,#0a1d33); border-color:rgba(151,197,255,.42); }.iam-dashboard-grid h2 { color:#fff; font-size:15px; }.iam-dashboard-grid .section-head a { color:#9dccff; font-size:12px; font-weight:800; }.iam-role-chart { display:grid; gap:13px; }.iam-role-row { align-items:center; display:grid; gap:10px; grid-template-columns:180px minmax(80px,1fr) 24px; }.iam-role-row strong,.iam-role-row small { display:block; }.iam-role-row strong { color:#f5f9ff; font-size:12.5px; }.iam-role-row small { color:#a8bfd8; font-size:11.5px; margin-top:2px; }.iam-role-row b { color:#fff; font-size:13px; text-align:right; }.iam-bar-track { background:#071523; border:1px solid #274763; border-radius:20px; height:10px; overflow:hidden; }.iam-bar { background:#599fea; border-radius:20px; display:block; height:100%; min-width:3px; }.iam-bar.role-admin { background:#f59e0b; }.iam-bar.role-editor { background:#8b5cf6; }.iam-bar.role-author { background:#22c55e; }.iam-health-grid { display:grid; gap:9px; grid-template-columns:repeat(3,1fr); }.iam-health-grid article { background:#0c2239; border:1px solid #2e5272; border-radius:9px; padding:12px; }.iam-health-grid strong,.iam-health-grid span { display:block; }.iam-health-grid strong { color:#fff; font-size:22px; }.iam-health-grid span { color:#b8cee5; font-size:11.5px; margin-top:3px; }.iam-health-grid .is-warning { background:#422d18; border-color:#9b6d35; }.iam-role-matrix { grid-column:1/-1; }.iam-role-matrix .table th { color:#bdd6ef; }.iam-role-matrix .table td { color:#e1ecf8; }.iam-governance-note { background:#0a2035; border:1px solid #2d5475; border-radius:8px; color:#bcd1e6; font-size:12px; margin:8px 0 0; padding:10px; }.iam-group-list,.iam-user-list { display:grid; gap:7px; }.iam-group-list a,.iam-user-list a { align-items:center; background:#0c2239; border:1px solid #2b4d6c; border-radius:8px; color:#edf6ff; display:flex; justify-content:space-between; padding:9px 10px; }.iam-group-list strong,.iam-group-list small,.iam-user-list strong,.iam-user-list small { display:block; }.iam-group-list strong,.iam-user-list strong { font-size:12.5px; }.iam-group-list small,.iam-user-list small { color:#a7bfd8; font-size:11.5px; margin-top:2px; }.iam-group-list b { color:#9fd0ff; font-size:12px; }.iam-user-list a { display:grid; gap:9px; grid-template-columns:32px minmax(0,1fr) auto; }.iam-avatar { align-items:center; background:#1d4f78; border:1px solid #4f89b8; border-radius:50%; color:#fff; display:flex; font-size:11.5px; font-weight:900; height:30px; justify-content:center; width:30px; }
@media (max-width:1000px) { .iam-dashboard-heading { grid-template-columns:1fr; }.iam-kpi-grid { grid-template-columns:repeat(2,1fr); }.iam-dashboard-grid { grid-template-columns:1fr; }.iam-role-matrix { grid-column:auto; } }
@media (max-width:600px) { .iam-kpi-grid { grid-template-columns:1fr; }.iam-role-row { grid-template-columns:120px minmax(60px,1fr) 22px; }.iam-health-grid { grid-template-columns:repeat(2,1fr); } }

/* System configuration control center */
.system-config-heading { align-items:end; background:linear-gradient(135deg,#172f51,#081a2d); border-color:rgba(112,181,255,.55); grid-template-columns:minmax(0,1fr) auto; }.system-config-heading .summary { color:#d3e3f4; }.system-runtime-strip { display:grid; gap:9px; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:14px; }.system-runtime-strip article { background:#102840; border:1px solid #315777; border-radius:9px; padding:10px 12px; }.system-runtime-strip span,.system-runtime-strip strong { display:block; }.system-runtime-strip span { color:#a9c3dc; font-size:10.5px; font-weight:900; text-transform:uppercase; }.system-runtime-strip strong { color:#fff; font-size:12.5px; margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.system-config-layout { align-items:start; display:grid; gap:14px; grid-template-columns:190px minmax(0,1fr); margin-top:14px; }.system-config-nav { background:#0a1d31; border:1px solid #315777; border-radius:11px; display:grid; gap:3px; padding:8px; position:sticky; top:80px; }.system-config-nav a { border-radius:7px; color:#b9cee3; font-size:12px; font-weight:800; padding:8px 9px; }.system-config-nav a:hover { background:#17466f; color:#fff; }.system-config-form { display:grid; gap:12px; min-width:0; }.system-config-section { background:linear-gradient(145deg,#142d49,#091c30); border:1px solid #315777; border-radius:11px; display:grid; gap:15px; padding:16px; scroll-margin-top:82px; }.system-config-section header { align-items:center; border-bottom:1px solid #294a67; display:flex; gap:11px; padding-bottom:11px; }.config-section-icon { align-items:center; background:#174d76; border:1px solid #4d82ad; border-radius:8px; color:#fff; display:flex; font-size:10.5px; font-weight:900; height:34px; justify-content:center; width:38px; }.system-config-section h2 { color:#fff; font-size:15px; margin:0; }.system-config-section header p { color:#aec4db; font-size:12px; margin:3px 0 0; }.system-config-section label > span { color:#dce9f6; font-size:12px; font-weight:800; }.system-config-section input,.system-config-section select,.system-config-section textarea { background:#071625; border-color:#3b6486; color:#fff; }.system-config-section input:focus,.system-config-section select:focus,.system-config-section textarea:focus { border-color:#75b9f0; box-shadow:0 0 0 3px rgba(75,156,222,.18); }.system-config-section textarea { resize:vertical; }.system-config-section small { color:#9fb8d1; display:block; font-size:11.5px; margin-top:4px; }.config-check { align-items:center; background:#0b233a; border:1px solid #2c506f; border-radius:8px; display:flex !important; gap:8px; min-height:40px; padding:8px 10px; }.config-check input { height:18px; width:18px; }.config-color-grid { grid-template-columns:repeat(4,minmax(120px,1fr)); }.config-color-grid input[type=color] { height:42px; padding:4px; }.config-json-editor { font-family:Consolas,monospace; font-size:12.5px; min-height:190px; }.system-config-save { align-items:center; background:#0a2238; border:1px solid #4a7ca4; border-radius:11px; bottom:10px; box-shadow:0 12px 30px rgba(0,0,0,.35); display:flex; gap:14px; justify-content:space-between; padding:12px 14px; position:sticky; z-index:10; }.system-config-save strong,.system-config-save small { display:block; }.system-config-save strong { color:#fff; font-size:12.5px; }.system-config-save small { color:#aac2da; font-size:11.5px; margin-top:2px; }
@media (max-width:1000px) { .system-config-heading { grid-template-columns:1fr; }.system-config-layout { grid-template-columns:1fr; }.system-config-nav { display:flex; overflow:auto; position:static; }.system-config-nav a { flex:0 0 auto; }.config-color-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:650px) { .system-runtime-strip { grid-template-columns:repeat(2,1fr); }.config-color-grid { grid-template-columns:1fr; }.system-config-save { align-items:stretch; display:grid; position:static; } }

/* Editorial article reading experience */
.article-reading-page { background:#050d16 !important; color:#e8f2fc; }.article-reading-page .workspace { background:#07121e !important; }.article-reading-page .workspace-body { background:radial-gradient(circle at 70% 0,rgba(30,91,128,.18),transparent 32%),linear-gradient(180deg,#081521,#050d16) !important; }.article-reading-page .workspace-main { background:transparent !important; }.article-reading-page .topbar { background:rgba(6,18,30,.97) !important; border-bottom-color:#294963 !important; }.article-reading-page .site-footer { background:#071522 !important; border-top-color:#294963 !important; color:#a9bfd3 !important; }
.article-editorial-hero { background:linear-gradient(135deg,#12314f 0%,#091a2b 67%,#12362f 100%); border-color:#396583; overflow:hidden; padding:clamp(28px,4vw,48px); position:relative; }.article-editorial-hero:after { background:radial-gradient(circle,rgba(67,212,160,.18),transparent 68%); content:''; height:420px; pointer-events:none; position:absolute; right:-110px; top:-235px; width:420px; }.article-editorial-hero > * { position:relative; z-index:1; }.article-editorial-hero h1 { color:#fff; font-size:clamp(32px,4vw,50px); letter-spacing:-.045em; line-height:1.12; margin:16px 0; max-width:980px; text-wrap:balance; }.article-editorial-hero--long h1 { font-size:clamp(29px,3.3vw,42px); line-height:1.16; max-width:1050px; }.article-editorial-hero--very-long h1 { font-size:clamp(26px,2.8vw,36px); letter-spacing:-.032em; line-height:1.2; max-width:1100px; }.article-editorial-hero .article-summary { color:#c8dbea; font-size:clamp(15px,1.6vw,19px); line-height:1.65; max-width:850px; }.article-editorial-kicker { align-items:center; display:flex; flex-wrap:wrap; gap:9px; }.article-editorial-kicker span { background:transparent; border:0; border-radius:0; color:#78ebbf; font-size:11.5px; font-weight:900; letter-spacing:.09em; padding:0; text-transform:uppercase; }.article-editorial-kicker span + span { border-left:1px solid #45647c; color:#acc4d9; padding-left:9px; }.article-byline { align-items:center; border-top:1px solid rgba(145,183,211,.28); display:flex; gap:11px; margin-top:25px; max-width:850px; padding-top:18px; }.article-author-mark { align-items:center; background:#1b5270; border:1px solid #5b8eaa; border-radius:50%; color:#fff; display:flex; font-size:11.5px; font-weight:900; height:38px; justify-content:center; width:38px; }.article-byline strong,.article-byline small { display:block; }.article-byline strong { color:#f5f9fd; font-size:12.5px; }.article-byline small { color:#99b2c8; font-size:11.5px; margin-top:3px; }
.article-reading-layout { align-items:start; display:grid; gap:18px; grid-template-columns:190px minmax(0,820px); justify-content:center; }.article-reading-rail { background:#0a1d2f; border:1px solid #2d506a; border-radius:11px; padding:15px; position:sticky; top:82px; }.article-reading-rail .eyebrow { color:#6ee7b7; }.article-reading-rail dl { margin:12px 0 0; }.article-reading-rail dl > div { border-top:1px solid #29475e; padding:9px 0; }.article-reading-rail dt { color:#9bb1c3; font-size:10.5px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }.article-reading-rail dd { color:#edf5fc; font-size:12px; line-height:1.4; margin:3px 0 0; overflow-wrap:anywhere; }.article-reading-rail .article-tags { border-top:1px solid #29475e; display:flex; flex-wrap:wrap; gap:5px; padding-top:10px; }.article-reading-rail .article-tags > span { color:#9bb1c3; display:block; flex-basis:100%; font-size:10.5px; font-weight:850; text-transform:uppercase; }.article-reading-rail .article-tags a { color:#8fc8ff; font-size:11.5px; }
.article-reading-panel { background:#0c1d2e; border-color:#31536d; padding:clamp(24px,4vw,52px); }.article-prose { color:#d6e1ec; font-family:Arial,'Segoe UI',sans-serif; font-size:16px; line-height:1.82; margin:0 auto; max-width:720px; overflow-wrap:anywhere; }.article-prose > :first-child { margin-top:0; }.article-prose > :last-child { margin-bottom:0; }.article-prose p,.article-prose > div { margin:0 0 1.15em; }.article-prose h1,.article-prose h2,.article-prose h3 { color:#fff; letter-spacing:-.025em; line-height:1.28; margin:2em 0 .7em; }.article-prose h2 { border-left:3px solid #43d4a0; font-size:25px; padding-left:13px; }.article-prose h3 { font-size:19px; }.article-prose ul,.article-prose ol { margin:10px 0 24px; padding-left:24px; }.article-prose li { margin:7px 0; padding-left:3px; }.article-prose li::marker { color:#50dda9; }.article-prose blockquote { background:#102a3e; border-left:3px solid #69a7ff; color:#ecf6ff; margin:24px 0; padding:15px 18px; }.article-prose a { color:#89c9ff; text-decoration:underline; text-decoration-color:rgba(137,201,255,.45); text-underline-offset:3px; }.article-prose img { box-shadow:0 14px 35px rgba(0,0,0,.35); height:auto; margin:18px auto; }.article-source { background:#081827; border:1px solid #294b65; border-radius:9px; display:grid; gap:4px; margin-top:30px; padding:13px 15px; }.article-source span { color:#9bb1c3; font-size:10.5px; font-weight:900; text-transform:uppercase; }.article-source a { color:#8fc8ff; font-size:12px; overflow-wrap:anywhere; }
@media (max-width:850px) { .article-reading-layout { grid-template-columns:1fr; }.article-reading-rail { display:none; }.article-editorial-hero h1 { font-size:clamp(28px,7.5vw,40px); }.article-editorial-hero--long h1 { font-size:clamp(25px,6.5vw,34px); }.article-editorial-hero--very-long h1 { font-size:clamp(23px,5.8vw,30px); } }

/* Unified editorial grid: article header and reading body share one measure. */
.article-reading-page .article-shell { margin:0 auto; max-width:1030px; width:100%; }.article-reading-page .article-breadcrumb { border-bottom:1px solid #29475e; padding:2px 0 12px; }.article-editorial-header { align-items:stretch; background:#0a1b2b; border:1px solid #31536d; border-radius:12px; display:grid; grid-template-columns:190px minmax(0,820px); overflow:hidden; }.article-header-label { background:#0d2438; border-right:1px solid #31536d; display:flex; flex-direction:column; padding:28px 20px; }.article-header-label span { color:#70eabb; font-size:10.5px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.article-header-label strong { color:#f3f8fc; font-size:13px; line-height:1.35; margin-top:12px; }.article-header-label small { color:#98b1c5; font-size:11.5px; line-height:1.5; margin-top:6px; }.article-header-main { padding:30px 38px 26px; }.article-header-main h1 { color:#fff; font-size:clamp(27px,2.7vw,36px); font-weight:800; letter-spacing:-.035em; line-height:1.18; margin:0; max-width:760px; text-wrap:balance; }.article-header-main--long h1 { font-size:clamp(25px,2.35vw,32px); line-height:1.22; }.article-header-main--very-long h1 { font-size:clamp(23px,2vw,28px); letter-spacing:-.025em; line-height:1.28; }.article-header-main .article-summary { color:#b8ccdd; font-size:14px; line-height:1.65; margin:16px 0 0; max-width:720px; }.article-header-main .article-byline { margin-top:20px; max-width:none; padding-top:15px; }.article-reading-page .article-reading-layout { grid-template-columns:190px minmax(0,820px); justify-content:stretch; }.article-reading-page .article-reading-panel { border-radius:11px; padding:38px 50px; }.article-reading-page .article-prose { font-size:15px; line-height:1.78; max-width:700px; }
@media (max-width:850px) { .article-reading-page .article-shell { max-width:720px; }.article-editorial-header { grid-template-columns:1fr; }.article-header-label { border-bottom:1px solid #31536d; border-right:0; padding:15px 20px; }.article-header-label strong { margin-top:5px; }.article-header-label small { margin-top:2px; }.article-header-main { padding:24px 20px; }.article-header-main h1,.article-header-main--long h1,.article-header-main--very-long h1 { font-size:clamp(23px,6.5vw,30px); line-height:1.24; }.article-reading-page .article-reading-layout { grid-template-columns:1fr; }.article-reading-page .article-reading-panel { padding:28px 22px; } }
.article-sequence { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }.article-sequence > a { background:linear-gradient(145deg,#0d2438,#091927); border:1px solid #31536d; border-radius:11px; display:grid; gap:5px; min-height:108px; padding:17px 19px; transition:border-color .18s ease,transform .18s ease; }.article-sequence > a:last-child { text-align:right; }.article-sequence > a:hover { border-color:#69a7d3; transform:translateY(-2px); }.article-sequence span { color:#6ee7b7; font-size:10.5px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.article-sequence strong { color:#f3f8fc; display:-webkit-box; font-size:13px; line-height:1.4; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.article-sequence small { color:#9ab1c3; font-size:10.5px; }
.article-discovery-section { border-top:1px solid #29475e; padding-top:22px; }.article-discovery-section > header { align-items:end; display:flex; justify-content:space-between; margin-bottom:12px; }.article-discovery-section > header h2 { color:#f5f9fd; font-size:18px; margin:4px 0 0; }.article-discovery-section > header > a { color:#8fc8ff; font-size:11.5px; font-weight:800; }.article-discovery-grid { display:grid; gap:9px; grid-template-columns:repeat(4,minmax(0,1fr)); }.article-discovery-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }.article-discovery-grid article { background:#0b2033; border:1px solid #2e5069; border-radius:10px; min-height:142px; padding:14px; transition:border-color .18s ease,transform .18s ease; }.article-discovery-grid article:hover { border-color:#5284a8; transform:translateY(-2px); }.article-discovery-grid article > span { color:#67dfb1; display:block; font-size:10.5px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }.article-discovery-grid h3 { font-size:13px; line-height:1.42; margin:7px 0; }.article-discovery-grid h3 a { color:#f1f7fd; }.article-discovery-grid p { color:#9db5c9; display:-webkit-box; font-size:11.5px; line-height:1.5; margin:0 0 9px; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }.article-discovery-grid small { color:#9cb1c2; font-size:10.5px; }.article-recommended .article-discovery-grid article { min-height:112px; }.article-recently-read[hidden] { display:none; }
@media (max-width:850px) { .article-discovery-grid,.article-discovery-grid--three { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .article-sequence { grid-template-columns:1fr; }.article-sequence > span { display:none; }.article-sequence > a:last-child { text-align:left; }.article-discovery-grid,.article-discovery-grid--three { grid-template-columns:1fr; }.article-discovery-section > header { align-items:start; gap:8px; } }

/* Public Security News publishing surface */
.security-news-page { background:#050d16 !important; color:#e8f2fc; }
.security-news-page .workspace { background:#07121e !important; }
.security-news-page .workspace-body { background:radial-gradient(circle at 72% 0,rgba(31,88,124,.22),transparent 34%),linear-gradient(180deg,#081521,#050d16) !important; }
.security-news-page .workspace-main { background:transparent !important; }
.security-news-page .topbar { background:rgba(6,18,30,.97) !important; border-bottom-color:#294963 !important; box-shadow:0 8px 24px rgba(0,0,0,.24); }
.security-news-page .topbar-label,.security-news-page .topbar-user { color:#d6e6f5 !important; }
.security-news-page .site-footer { background:#071522 !important; border-top-color:#294963 !important; color:#a9bfd3 !important; }
.security-news-page .section-head .eyebrow,.security-news-page .security-news-masthead .eyebrow { color:#70edbd !important; }
.security-news-page .news-feed-section .section-head { border-bottom-color:#294963; }
.security-news-page .news-empty { background:#0d2337 !important; border-color:#3a6382 !important; }
.security-news-page .news-empty h2 { color:#fff; }
.security-news-page .news-empty p { color:#c3d5e5; }
.security-news-masthead { align-items:end; background:linear-gradient(135deg,#122f4d,#081827 68%,#173b35); border:1px solid #315c7e; border-radius:14px; box-shadow:0 16px 38px rgba(0,0,0,.32); display:grid; gap:20px; grid-template-columns:minmax(0,1fr) auto; overflow:hidden; padding:28px; position:relative; }.security-news-masthead:after { background:radial-gradient(circle,rgba(53,211,157,.2),transparent 68%); content:''; height:280px; position:absolute; right:-80px; top:-150px; width:280px; }.security-news-masthead > * { position:relative; z-index:1; }.security-news-masthead h1 { color:#fff; font-size:clamp(30px,4vw,48px); letter-spacing:-.05em; margin:4px 0 8px; }.security-news-masthead p { color:#ccdeef; line-height:1.65; margin:0; max-width:800px; }.news-masthead-stat { border-left:1px solid #3b6584; padding-left:24px; text-align:right; }.news-masthead-stat strong,.news-masthead-stat span { display:block; }.news-masthead-stat strong { color:#fff; font-size:36px; }.news-masthead-stat span { color:#9fbad2; font-size:11.5px; font-weight:850; text-transform:uppercase; }.security-news-sections { background:#091c2e; border:1px solid #315777; border-radius:11px; display:flex; gap:6px; margin-top:13px; overflow:auto; padding:7px; }.security-news-sections a { background:#102941; border:1px solid #294b68; border-radius:8px; color:#e2edf8; display:grid; flex:1 0 125px; gap:2px; padding:8px 10px; }.security-news-sections a:hover,.security-news-sections a.is-active { background:#1a4b71; border-color:#6ca7d3; }.security-news-sections span,.security-news-sections > a:not(:has(span)) { font-size:12px; font-weight:850; }.security-news-sections small { color:#9eb7ce; font-size:10.5px; }.news-lead-layout { display:grid; gap:14px; grid-template-columns:minmax(0,1.65fr) minmax(260px,.7fr); margin-top:14px; }.news-lead,.news-latest-rail,.news-card,.news-section-list > article { background:linear-gradient(145deg,#142d49,#091c30); border:1px solid #315777; border-radius:12px; }.news-lead { min-height:330px; padding:30px; }.news-section-label { color:#6ee7b7; font-size:11.5px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.news-lead h2 { font-size:clamp(26px,3vw,40px); letter-spacing:-.045em; line-height:1.15; margin:10px 0 13px; }.news-lead h2 a,.news-card h3 a,.news-section-list h2 a { color:#fff; }.news-lead > p { color:#c5d7e9; font-size:14px; line-height:1.75; max-width:850px; }.news-meta { color:#96b1ca; display:flex; flex-wrap:wrap; font-size:11.5px; gap:7px; }.news-meta span { border-right:1px solid #35536d; padding-right:7px; }.news-read-link { color:#8fc8ff; display:inline-block; font-size:12px; font-weight:900; margin-top:18px; }.news-latest-rail { padding:17px; }.news-latest-rail h2 { color:#fff; font-size:14px; }.news-latest-rail > a { border-top:1px solid #294a66; display:grid; gap:3px; padding:10px 2px; }.news-latest-rail > a > span { color:#6ee7b7; font-size:10.5px; font-weight:850; text-transform:uppercase; }.news-latest-rail > a strong { color:#edf6ff; font-size:12.5px; line-height:1.35; }.news-latest-rail > a small { color:#97b1c7; font-size:10.5px; }.news-feed-section { margin-top:20px; }.news-feed-section .section-head { margin-bottom:10px; }.news-feed-section h2 { color:#fff; font-size:17px; }.news-card-grid { display:grid; gap:11px; grid-template-columns:repeat(4,minmax(0,1fr)); }.news-card { padding:15px; }.news-card h3 { font-size:14px; line-height:1.35; margin:7px 0; }.news-card p { color:#b9cde0; font-size:12px; line-height:1.55; }.news-empty { margin-top:14px; }.news-section-heading { padding:24px 28px; }.news-section-tools { background:#0b2137; border:1px solid #315777; border-radius:10px; margin-top:12px; padding:10px; }.news-section-tools form { display:flex; gap:7px; }.news-section-tools input { background:#061522; border-color:#3a6282; color:#fff; flex:1; }.news-section-list { display:grid; gap:9px; margin-top:12px; }.news-section-list > article { align-items:center; display:flex; gap:18px; justify-content:space-between; padding:18px 20px; }.news-section-list h2 { font-size:18px; margin:6px 0; }.news-section-list p { color:#bed0e1; font-size:12.5px; line-height:1.55; margin:0 0 8px; max-width:900px; }.article-breadcrumb { align-items:center; color:#98b1c6; display:flex; font-size:12px; gap:7px; }.article-breadcrumb a { color:#8fc8ff; font-weight:800; }
@media (max-width:1050px) { .news-lead-layout { grid-template-columns:1fr; }.news-card-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:650px) { .security-news-masthead { grid-template-columns:1fr; padding:20px; }.news-masthead-stat { border-left:0; border-top:1px solid #3b6584; padding-left:0; padding-top:12px; text-align:left; }.news-card-grid { grid-template-columns:1fr; }.news-section-list > article { align-items:flex-start; display:grid; }.news-section-tools form { flex-wrap:wrap; } }
.security-news-home-nav { position:sticky; top:64px; z-index:9; }.news-lead-labels { align-items:center; display:flex; gap:7px; }.news-breaking-label { background:#8b1e2d; border:1px solid #d15c6d; border-radius:20px; color:#fff; font-size:10.5px; font-weight:900; letter-spacing:.07em; padding:4px 8px; text-transform:uppercase; }.news-hot-section { background:linear-gradient(145deg,#102941,#081a2b); border:1px solid #315777; border-radius:12px; padding:16px; }.news-hot-section .section-head > a { color:#9dceff; font-size:12px; font-weight:850; }.news-hot-grid { display:grid; gap:8px; grid-template-columns:repeat(2,minmax(0,1fr)); }.news-hot-card { align-items:start; background:#0b2137; border:1px solid #2f5270; border-radius:9px; display:grid; gap:11px; grid-template-columns:30px minmax(0,1fr); padding:12px; }.news-hot-index { color:#97b1c6; font-size:20px; font-weight:900; letter-spacing:-.08em; }.news-hot-card h3 { font-size:13px; line-height:1.35; margin:4px 0; }.news-hot-card h3 a { color:#fff; }.news-hot-card p { color:#b7cce0; font-size:11.5px; line-height:1.45; margin:0 0 5px; }.news-hot-card:hover { border-color:#b64b5c; transform:translateY(-1px); }
@media (max-width:750px) { .security-news-home-nav { position:static; }.news-hot-grid { grid-template-columns:1fr; } }
.news-spotlight-cluster { display:grid; gap:12px; grid-template-columns:minmax(0,1.45fr) minmax(330px,.8fr); margin-top:14px; }.news-spotlight-lead { background:linear-gradient(145deg,#173754,#0a1e31 72%,#11372f); border:1px solid #3a6888; border-radius:13px; box-shadow:0 16px 36px rgba(0,0,0,.28); display:flex; flex-direction:column; justify-content:flex-end; min-height:430px; overflow:hidden; padding:clamp(27px,4vw,48px); position:relative; }.news-spotlight-lead:after { background:radial-gradient(circle,rgba(61,218,165,.2),transparent 68%); content:''; height:410px; pointer-events:none; position:absolute; right:-120px; top:-220px; width:410px; }.news-spotlight-lead > * { position:relative; z-index:1; }.news-spotlight-lead h2 { font-size:clamp(29px,3.5vw,46px); letter-spacing:-.048em; line-height:1.1; margin:15px 0; max-width:900px; text-wrap:balance; }.news-spotlight-lead h2 a { color:#fff; }.news-spotlight-lead > p { color:#c5d7e7; font-size:13px; line-height:1.7; margin:0; max-width:790px; }.news-spotlight-footer { align-items:end; border-top:1px solid rgba(137,183,215,.25); display:flex; gap:14px; justify-content:space-between; margin-top:25px; padding-top:16px; }.news-spotlight-footer .news-read-link { flex:0 0 auto; margin:0; }.news-editorial-fallback { color:#99b1c4; font-size:10.5px; font-weight:800; }.news-spotlight-side { background:#091c2e; border:1px solid #315777; border-radius:13px; padding:15px; }.news-spotlight-side > header { align-items:end; border-bottom:1px solid #294a66; display:flex; justify-content:space-between; padding:2px 2px 11px; }.news-spotlight-side h2 { color:#fff; font-size:14px; margin:3px 0 0; }.news-spotlight-side-grid { display:grid; }.news-spotlight-side-grid > article { align-items:start; border-bottom:1px solid #26465f; display:grid; gap:10px; grid-template-columns:27px minmax(0,1fr); padding:13px 2px; }.news-spotlight-side-grid > article:last-child { border-bottom:0; }.news-spotlight-side-grid .news-hot-index { font-size:17px; }.news-spotlight-side-grid h3 { font-size:12.5px; line-height:1.4; margin:4px 0 5px; }.news-spotlight-side-grid h3 a { color:#edf6fd; }.news-spotlight-side-grid small { color:#9bb1c4; font-size:10.5px; }.news-spotlight-side-grid article:hover h3 a { color:#9dd2ff; }.news-spotlight-empty { color:#99b1c4; font-size:12px; line-height:1.6; padding:18px 4px; }.editor-priority-option { align-items:flex-start; background:#102a3f; border:1px solid #376681; border-radius:9px; display:flex!important; gap:9px; padding:11px; }.editor-priority-option input { flex:0 0 auto; height:18px; margin-top:1px; width:18px; }.editor-priority-option strong,.editor-priority-option small { display:block; }.editor-priority-option strong { color:#fff; font-size:12px; }.editor-priority-option small { color:#9eb7ca; font-size:11.5px; line-height:1.45; margin-top:3px; }.cms-priority-badge { background:#713040; border:1px solid #d16176; border-radius:20px; color:#fff; display:inline-block; font-size:10.5px; font-weight:900; margin-top:5px; padding:3px 7px; text-transform:uppercase; }.cms-priority-help { background:#0b2033; border:1px solid #31536d; border-radius:8px; color:#9fb8cc; font-size:11.5px; line-height:1.5; margin:10px 0 0; padding:9px; }
@media (max-width:1050px) { .news-spotlight-cluster { grid-template-columns:1fr; }.news-spotlight-lead { min-height:360px; }.news-spotlight-side-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.news-spotlight-side-grid > article:nth-child(odd) { border-right:1px solid #26465f; padding-right:12px; }.news-spotlight-side-grid > article:nth-child(even) { padding-left:12px; } }
@media (max-width:650px) { .news-spotlight-lead { min-height:0; padding:24px 20px; }.news-spotlight-lead h2 { font-size:clamp(26px,8vw,36px); }.news-spotlight-footer { align-items:flex-start; display:grid; }.news-spotlight-side-grid { grid-template-columns:1fr; }.news-spotlight-side-grid > article:nth-child(odd) { border-right:0; padding-right:2px; }.news-spotlight-side-grid > article:nth-child(even) { padding-left:2px; } }
.news-priority-board { align-items:stretch; display:grid; gap:10px; grid-template-columns:minmax(320px,.85fr) minmax(0,1.45fr); margin-top:14px; }.news-priority-main { background:linear-gradient(145deg,#173754,#0a1e31 70%,#12382f); border:1px solid #3b6988; border-radius:12px; box-shadow:0 14px 30px rgba(0,0,0,.26); display:flex; flex-direction:column; min-height:315px; padding:25px; }.news-priority-main h2 { font-size:clamp(23px,2.6vw,34px); letter-spacing:-.042em; line-height:1.13; margin:13px 0; text-wrap:balance; }.news-priority-main h2 a { color:#fff; }.news-priority-main > p { color:#bfd2e2; font-size:12.5px; line-height:1.65; margin:0; }.news-priority-main .news-read-link { margin-top:auto; padding-top:18px; }.news-section-priorities { display:grid; gap:9px; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }.news-section-priorities > article { background:linear-gradient(145deg,#102a42,#091b2c); border:1px solid #315777; border-radius:10px; min-height:150px; padding:14px; }.news-section-priorities h3 { font-size:13px; line-height:1.4; margin:7px 0; }.news-section-priorities h3 a { color:#f1f7fd; }.news-section-priorities p { color:#9eb5c9; display:-webkit-box; font-size:11.5px; line-height:1.5; margin:0 0 8px; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.news-section-priorities small { color:#9bb1c2; font-size:10.5px; }.news-priority-empty { align-content:center; background:#0a1d2f; border:1px dashed #365c77; border-radius:10px; color:#99b1c4; display:grid; gap:5px; grid-column:1/-1; justify-items:center; min-height:150px; padding:20px; text-align:center; }.news-priority-empty strong { color:#c8d8e6; font-size:12.5px; }.news-priority-empty span { font-size:11.5px; }
.news-section-stream { display:grid; gap:16px; margin-top:20px; }.news-category-zone { background:linear-gradient(145deg,#0d2236,#081725); border:1px solid #2e526e; border-radius:12px; padding:16px; }.news-category-zone > header { align-items:end; border-bottom:1px solid #294961; display:flex; justify-content:space-between; margin-bottom:12px; padding:0 2px 11px; }.news-category-zone > header h2 { color:#fff; font-size:18px; margin:3px 0 0; }.news-category-zone > header > a { color:#8fc8ff; font-size:11.5px; font-weight:850; }.news-category-layout { display:grid; gap:10px; grid-template-columns:minmax(245px,.75fr) minmax(0,1.65fr); }.news-category-layout--without-priority { grid-template-columns:1fr; }.news-category-priority { background:linear-gradient(145deg,#15344e,#0b2235); border:1px solid #3a6380; border-left:3px solid #45d3a0; border-radius:9px; min-height:205px; padding:18px; }.news-category-priority h3 { font-size:17px; line-height:1.32; margin:9px 0; }.news-category-priority h3 a { color:#fff; }.news-category-priority p { color:#adc3d5; font-size:12px; line-height:1.58; }.news-category-satellites { display:grid; gap:8px; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }.news-category-satellites > article { background:#0b2032; border:1px solid #294b65; border-radius:8px; min-height:96px; padding:11px; }.news-category-satellites > article > span { color:#70deb4; font-size:10px; font-weight:850; }.news-category-satellites h3 { font-size:12px; line-height:1.38; margin:5px 0; }.news-category-satellites h3 a { color:#edf5fc; }.news-category-satellites small { color:#9cb1c1; font-size:10.5px; }.news-category-satellites > article:hover { border-color:#5183a5; }.cms-priority-badge--requested { background:#34445a; border-color:#71849b; color:#dbe6ef; }
@media (max-width:1050px) { .news-priority-board { grid-template-columns:1fr; }.news-priority-main { min-height:270px; }.news-category-layout { grid-template-columns:1fr; }.news-category-priority { min-height:0; } }
@media (max-width:620px) { .news-priority-main { min-height:0; padding:20px; }.news-section-priorities { grid-template-columns:1fr; }.news-category-zone > header { align-items:flex-start; display:grid; gap:7px; }.news-category-satellites { grid-template-columns:1fr; } }
.news-section-stream--editorial-two { align-items:stretch; grid-template-columns:repeat(2,minmax(0,1fr)); }.news-section-stream--magazine-three { align-items:stretch; gap:12px; grid-template-columns:repeat(3,minmax(0,1fr)); }.news-section-stream--newsroom-wide { grid-template-columns:1fr; }.news-section-stream--editorial-two .news-category-layout,.news-section-stream--magazine-three .news-category-layout { grid-template-columns:1fr; }.news-section-stream--editorial-two .news-category-satellites { grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); }.news-section-stream--magazine-three .news-category-satellites { grid-template-columns:1fr; }.news-section-stream--magazine-three .news-category-zone { padding:13px; }.news-section-stream--magazine-three .news-category-priority { min-height:0; padding:14px; }.news-section-stream--magazine-three .news-category-priority h3 { font-size:14px; }
.news-layout-presets { display:grid; gap:9px; grid-template-columns:repeat(3,minmax(0,1fr)); }.news-layout-presets article { background:#0a2135; border:1px solid #31536d; border-radius:9px; padding:11px; }.news-layout-presets strong,.news-layout-presets small { display:block; }.news-layout-presets strong { color:#f2f7fc; font-size:12px; margin-top:8px; }.news-layout-presets small { color:#99b1c4; font-size:10.5px; line-height:1.45; margin-top:3px; }.layout-preview { display:grid; gap:4px; height:42px; }.layout-preview i { background:#23577a; border:1px solid #4e83a7; border-radius:3px; }.layout-preview--two { grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(2,1fr); }.layout-preview--one { grid-template-columns:1fr; grid-template-rows:repeat(2,1fr); }.layout-preview--three { grid-template-columns:repeat(3,1fr); }.layout-preview--three i:nth-child(2) { background:#1e6957; }
@media (max-width:1200px) { .news-section-stream--magazine-three { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:820px) { .news-section-stream--editorial-two,.news-section-stream--magazine-three { grid-template-columns:1fr; }.news-layout-presets { grid-template-columns:1fr; } }
.landing-placement-head { align-items:end; border-top:1px solid #294a67; display:flex; justify-content:space-between; padding-top:14px; }.landing-placement-head h3 { color:#fff; font-size:13px; margin:3px 0; }.landing-placement-head p { color:#98b1c5; font-size:11.5px; margin:0; }.landing-placement-board { display:grid; gap:7px; grid-template-columns:repeat(2,minmax(0,1fr)); }.landing-placement-board[data-layout="newsroom-wide"] { grid-template-columns:1fr; }.landing-placement-board[data-layout="magazine-three"] { grid-template-columns:repeat(3,minmax(0,1fr)); }.landing-placement-board > article { align-items:center; background:#0a2135; border:1px solid #315672; border-radius:8px; cursor:grab; display:grid; gap:9px; grid-template-columns:20px minmax(0,1fr) auto; min-width:0; padding:9px; position:relative; }.landing-placement-board > article:before { align-items:center; background:#153d5a; border-radius:12px; color:#a7d6f5; content:attr(data-position); display:flex; font-size:10px; font-weight:900; height:17px; justify-content:center; left:-5px; position:absolute; top:-5px; width:17px; }.landing-placement-board > article.is-dragging { border-color:#6eb7e8; opacity:.55; }.placement-handle { color:#9ab1c2; font-size:13px; letter-spacing:-3px; }.landing-placement-board strong,.landing-placement-board small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.landing-placement-board strong { color:#f1f7fc; font-size:12px; }.landing-placement-board small { color:#9bb1c2; font-size:10.5px; margin-top:2px; }.placement-actions { display:flex; gap:3px; }.placement-actions button { background:#143b58; border:1px solid #3c6987; border-radius:5px; color:#d9ebf8; font-size:11.5px; min-height:25px; padding:3px 7px; }.placement-actions button:hover { background:#1c5278; }
@media (max-width:820px) { .landing-placement-board,.landing-placement-board[data-layout="magazine-three"] { grid-template-columns:1fr; }.landing-placement-head { align-items:flex-start; display:grid; gap:9px; } }

/* Public introduction pages and controlled administration */
.introduction-public-page { background:#050d16!important; color:#e8f2fc; }.introduction-public-page .workspace { background:#07121e!important; }.introduction-public-page .workspace-body { background:radial-gradient(circle at 72% 0,rgba(33,104,127,.2),transparent 34%),linear-gradient(180deg,#081521,#050d16)!important; }.introduction-public-page .workspace-main { background:transparent!important; }.introduction-shell { display:grid; gap:16px; margin:0 auto; max-width:1180px; }.introduction-hero { background:linear-gradient(135deg,#133451,#091a2b 68%,#12382f); border:1px solid #396480; border-radius:15px; box-shadow:0 18px 42px rgba(0,0,0,.3); display:grid; min-height:390px; overflow:hidden; }.introduction-hero.has-image { grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); }.introduction-hero-copy { align-self:center; padding:clamp(30px,5vw,62px); }.introduction-hero h1 { color:#fff; font-size:clamp(34px,4.5vw,58px); letter-spacing:-.052em; line-height:1.06; margin:12px 0 16px; max-width:850px; text-wrap:balance; }.introduction-hero-copy > p { color:#c5d8e8; font-size:clamp(14px,1.5vw,18px); line-height:1.7; margin:0; max-width:760px; }.introduction-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }.introduction-hero-media { margin:0; min-height:390px; overflow:hidden; position:relative; }.introduction-hero-media:after { background:linear-gradient(90deg,#0d2538 0,transparent 45%); content:''; inset:0; position:absolute; }.introduction-hero-media img { height:100%; object-fit:cover; width:100%; }.introduction-highlights { display:grid; gap:9px; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }.introduction-highlights article { background:#0c2235; border:1px solid #31536d; border-radius:10px; display:grid; gap:10px; grid-template-columns:28px minmax(0,1fr); padding:14px; }.introduction-highlights span { color:#55dba8; font-size:15px; font-weight:900; }.introduction-highlights p { color:#e4eef7; font-size:12.5px; line-height:1.5; margin:0; }.introduction-story { background:#0b1d2d; border:1px solid #2e5069; border-radius:13px; display:grid; overflow:hidden; }.introduction-story.has-image { grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); }.introduction-rich-content { color:#cfdeea; font-size:15px; line-height:1.8; padding:clamp(28px,5vw,56px); }.introduction-rich-content h1,.introduction-rich-content h2,.introduction-rich-content h3 { color:#fff; letter-spacing:-.03em; line-height:1.25; }.introduction-rich-content h2 { border-left:3px solid #43d4a0; font-size:25px; padding-left:13px; }.introduction-rich-content a { color:#8fc8ff; }.introduction-rich-content li::marker { color:#55dba8; }.introduction-story figure { margin:0; min-height:340px; }.introduction-story figure img { height:100%; object-fit:cover; width:100%; }.introduction-footer { border-top:1px solid #29475e; color:#9bb1c1; display:flex; font-size:10.5px; gap:14px; justify-content:space-between; padding:12px 2px; }.introduction-admin-heading { background:linear-gradient(135deg,#163551,#091b2e); border-color:#396480; }.introduction-admin-form { display:grid; gap:12px; margin-top:14px; }.introduction-admin-form .article-panel { background:linear-gradient(145deg,#122b44,#091c2f); border-color:#315777; }.introduction-admin-form .article-panel > header { border-bottom:1px solid #294a65; margin-bottom:13px; padding-bottom:10px; }.introduction-admin-form h2 { color:#fff; font-size:14px; margin:3px 0; }.introduction-admin-form label { color:#dce9f5; display:block; font-size:12px; font-weight:800; }.introduction-admin-form label + label { margin-top:12px; }.introduction-admin-form small { color:#99b1c4; display:block; font-size:10.5px; line-height:1.45; margin-top:4px; }.introduction-admin-form input,.introduction-admin-form textarea { background:#071625; border-color:#3b6486; color:#fff; }.intro-rich-editor { font-family:Arial,'Segoe UI',sans-serif; line-height:1.6; resize:vertical; }
@media (max-width:850px) { .introduction-hero.has-image,.introduction-story.has-image { grid-template-columns:1fr; }.introduction-hero-media { min-height:250px; order:-1; }.introduction-hero-media:after { background:linear-gradient(0deg,#0d2538 0,transparent 55%); }.introduction-story figure { max-height:360px; order:-1; }.introduction-footer { align-items:flex-start; display:grid; } }
.grc-hero,.grc-framework-heading{background:linear-gradient(135deg,#101d1a,#17342d 58%,#164e3f);border:1px solid #2f6d5a;color:#f4fff9}.grc-hero .summary,.grc-framework-heading .summary{color:#c9e9dd}.grc-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:18px 0}.grc-kpis article{background:#14231f;border:1px solid #315c50;border-radius:14px;padding:18px;color:#eafff7;box-shadow:0 12px 28px rgba(3,16,12,.18)}.grc-kpis span,.grc-kpis small{display:block;color:#aed3c7}.grc-kpis strong{display:block;font-size:2rem;margin:7px 0;color:#65e6b5}.grc-dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.grc-framework-panel{grid-column:1/-1}.grc-framework-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.grc-framework-card{display:block;padding:18px;border-radius:13px;background:#172822;border:1px solid #37685a;color:#edfff8;text-decoration:none}.grc-framework-card:hover{border-color:#58d6aa;transform:translateY(-2px)}.grc-framework-card>span,.grc-framework-card>div{color:#b5d8cd}.grc-framework-card>strong{display:block;color:#63e4b4;margin-top:10px}.grc-framework-card h3{margin:5px 0 15px}.grc-framework-card b{color:#fff}.grc-feed{display:grid;gap:9px}.grc-feed>a,.grc-feed>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:10px;background:#ecf4f0;border:1px solid #bfd2ca;text-decoration:none;color:#152a23}.grc-feed span,.grc-feed small{display:block}.grc-feed small{color:#526b62;margin-top:3px}.grc-status{display:inline-block;padding:4px 9px;border-radius:999px;background:#d9e4df;color:#213f35;font-size:.82rem;font-weight:800;white-space:nowrap}.grc-status.status-active,.grc-status.status-valid,.grc-status.status-implemented,.grc-status.status-applicable{background:#b9f2d7;color:#075b3c}.grc-status.status-expiring,.grc-status.status-partial,.grc-status.status-in_progress{background:#ffe4a8;color:#725000}.grc-status.status-expired,.grc-status.status-suspended,.grc-status.status-not_applicable,.grc-status.status-not_effective{background:#ffd0d0;color:#7e1818}.grc-meta-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin:18px 0}.grc-meta-grid article{padding:17px;border:1px solid #b9cec5;border-radius:12px;background:#f3f8f6}.grc-meta-grid span{font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#315a4c}.grc-meta-grid a{display:block}.grc-control-table small{display:block;max-width:350px;margin-top:5px;color:#49645a}.grc-form-panel{max-width:1180px;margin:auto}.grc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grc-form-grid label:has(textarea),.grc-form-grid label:has(select[multiple]),.grc-form-grid label:has(input[type=file]){grid-column:1/-1}.grc-form-grid label>span{display:block;margin-bottom:7px;font-weight:750}.grc-form-grid input,.grc-form-grid select,.grc-form-grid textarea{width:100%}.grc-form-grid select[multiple]{min-height:190px}.grc-soa-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.6fr);gap:18px;align-items:start}.grc-certificate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.grc-certificate-card{padding:20px;border-radius:15px;background:linear-gradient(145deg,#14241f,#1d382f);border:1px solid #3b6b5d;color:#effff9}.grc-certificate-card>div:first-child{display:flex;justify-content:space-between}.grc-certificate-card p{color:#c1ddd4}.grc-certificate-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.grc-certificate-card dt{font-size:.8125rem;color:#9fc8bb}.grc-certificate-card dd{margin:4px 0;font-weight:800}.grc-link-stack{display:grid;gap:9px;margin:12px 0 22px}.grc-link-stack a{display:flex;flex-direction:column;padding:12px;border:1px solid #b8cec5;border-radius:10px;background:#edf6f2;text-decoration:none}.required-mark{color:#d52d2d}@media(max-width:1050px){.grc-kpis{grid-template-columns:repeat(2,1fr)}.grc-dashboard-grid,.grc-soa-layout{grid-template-columns:1fr}.grc-framework-panel{grid-column:auto}}@media(max-width:700px){.grc-kpis,.grc-form-grid,.grc-meta-grid{grid-template-columns:1fr}.grc-form-grid label:has(textarea),.grc-form-grid label:has(select[multiple]),.grc-form-grid label:has(input[type=file]){grid-column:auto}}
.report-hero{background:linear-gradient(135deg,#10233a,#173c43 62%,#174f43);border:1px solid #3f7d70;color:#f4fffb}.report-hero .summary{color:#c9e3df}.report-hero h1{color:#fff}.report-hero select{background:#10283a;border:1px solid #55948a;color:#fff;border-radius:8px;padding:9px 12px}.report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:17px 0}.report-kpis article{background:linear-gradient(145deg,#173249,#10273a);border:1px solid #3d6a7b;border-radius:13px;padding:17px}.report-kpis span,.report-kpis strong{display:block}.report-kpis span{color:#b7d0dc;font-size:.8125rem;font-weight:800;text-transform:uppercase}.report-kpis strong{color:#63e6bb;font-size:2rem;margin-top:5px}.report-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.report-zone{background:linear-gradient(145deg,#152b3d,#102330);border:1px solid #355d6b;border-top:3px solid var(--report-accent,#4f9cf9);border-radius:14px;color:#eafff9;padding:17px}.report-zone header{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:11px}.report-zone header>a{color:#8ee7ca;font-size:.84rem;font-weight:800}.report-icon{align-items:center;background:color-mix(in srgb,var(--report-accent) 20%,#102330);border:1px solid var(--report-accent);border-radius:9px;color:#fff;display:flex;font-size:.8125rem;font-weight:900;height:38px;justify-content:center}.report-zone h2{color:#fff;font-size:1rem;margin:2px 0}.report-zone>p{color:#b6cdd5;min-height:38px}.report-zone-meta{display:flex;justify-content:space-between;color:#b6cdd5;font-size:.8125rem}.report-zone-meta b{color:#fff}.report-chart-title{color:#a5c9c2;font-size:.8125rem;font-weight:800;margin:14px 0 5px}.report-sparkline,.report-chart-card canvas{background:rgba(3,15,22,.35);border:1px solid rgba(135,194,185,.2);border-radius:9px;display:block;width:100%}.report-filterbar{align-items:end;background:#e9f2ef;border:1px solid #bad0c8;border-radius:12px;display:flex;justify-content:space-between;margin:15px 0;padding:12px}.report-filterbar form{align-items:end;display:flex;gap:12px}.report-filterbar label{font-size:.8125rem;font-weight:800}.report-filterbar select{display:block;margin-top:5px;min-width:150px}.report-category-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:16px;margin-bottom:16px}.report-chart-card{background:linear-gradient(145deg,#142b3c,#0d202e);border-color:#3c6877;color:#fff}.report-chart-card h2{color:#fff}.report-metric-list{display:grid;gap:8px}.report-metric-list>div{align-items:center;background:#edf5f2;border:1px solid #bfd1ca;border-radius:9px;display:flex;justify-content:space-between;padding:10px}.report-metric-list strong,.report-metric-list small{display:block}.report-metric-list small{color:#526c63}.report-status{background:#dce7e3;border-radius:999px;color:#28483e;display:inline-block;font-size:.8125rem;font-weight:850;padding:4px 8px}.report-status.status-published{background:#b9f1d6;color:#075b3c}.report-status.status-review{background:#ffe2a3;color:#765000}.report-metric-formset{display:grid;gap:10px}.report-metric-formset>div{align-items:end;background:#edf5f2;border:1px solid #bdd0c9;border-radius:10px;display:grid;gap:9px;grid-template-columns:1.3fr .6fr 1.5fr auto;padding:12px}.report-metric-formset label>span{display:block;font-size:.8125rem;font-weight:800;margin-bottom:4px}.report-detail-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.report-value-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.report-value-grid article{background:#eaf4f0;border:1px solid #b8cec5;border-radius:11px;padding:14px}.report-value-grid span,.report-value-grid strong{display:block}.report-value-grid strong{color:#123d31;font-size:1.6rem;margin-top:5px}.report-value-grid strong small{display:inline;font-size:.8125rem}.report-category-dot{border-radius:50%;display:inline-block;height:9px;margin-right:7px;width:9px}@media(max-width:1000px){.report-dashboard-grid,.report-category-layout,.report-detail-grid{grid-template-columns:1fr}}@media(max-width:700px){.report-kpis{grid-template-columns:repeat(2,1fr)}.report-filterbar,.report-filterbar form{align-items:stretch;display:grid}.report-metric-formset>div{grid-template-columns:1fr}}
.report-chart-data-panel{background:linear-gradient(145deg,#142c3c,#0b1d29);border:1px solid #447486;box-shadow:0 14px 30px rgba(3,15,22,.28);color:#f5fffc}.report-chart-data-panel .section-head{border-bottom:1px solid rgba(139,202,194,.28);margin-bottom:14px;padding-bottom:12px}.report-chart-data-panel .eyebrow{color:#63e6bb}.report-chart-data-panel h2{color:#fff;font-size:1.15rem;margin:3px 0}.report-chart-data-panel .section-head p{color:#bfd8d5;margin:5px 0 0}.report-chart-data-panel .report-metric-formset>div{background:#102838;border:1px solid #4f7d8b;box-shadow:inset 3px 0 0 #49d3a7;color:#f1fffb}.report-chart-data-panel .report-metric-formset label>span{color:#d8ede8;font-size:.82rem}.report-chart-data-panel .report-metric-formset input,.report-chart-data-panel .report-metric-formset select{background:#f8fffc;border:1px solid #8eb7ad;color:#102a22;min-height:40px}.report-chart-data-panel .report-metric-formset input:focus,.report-chart-data-panel .report-metric-formset select:focus{border-color:#45d5a5;box-shadow:0 0 0 3px rgba(69,213,165,.22);outline:0}.report-chart-data-panel .errorlist{background:#5a1d24;border:1px solid #fb7185;color:#fff;border-radius:7px;padding:8px 10px}
/* Vulnerability Management workspace */
.page-vulnerability-dashboard .content-column{background:radial-gradient(circle at top right,rgba(19,111,99,.16),transparent 32%)}
.vulnerability-hero{align-items:flex-start;border:1px solid #28515d;background:linear-gradient(135deg,#102b34,#0b1c25 65%,#123a3a);box-shadow:0 18px 42px rgba(0,0,0,.22)}
.vulnerability-hero h1{max-width:900px}.vulnerability-hero .summary{max-width:800px;color:#c9dce5}
.vulnerability-kpis{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;margin:0 0 18px}
.vulnerability-kpis article{padding:17px;border:1px solid #31505d;border-radius:14px;background:#102630;color:#dceaf0;box-shadow:0 8px 24px rgba(0,0,0,.16)}
.vulnerability-kpis span{display:block;color:#9fb7c4;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.vulnerability-kpis strong{display:block;margin-top:7px;font-size:1.75rem;color:#fff}
.vulnerability-kpis .is-critical{border-color:#873d45;background:#351b23}.vulnerability-kpis .is-warning{border-color:#8b672d;background:#362916}
.vulnerability-chart-grid,.vulnerability-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}
.vulnerability-chart-card{min-width:0;background:#102630;border-color:#31505d;color:#e7f0f4}.vulnerability-chart-card h2{color:#fff}.vulnerability-chart-card canvas{width:100%}
.chart-filter{display:flex;gap:8px;flex-wrap:wrap}.chart-filter select,.chart-filter button{min-height:36px;border:1px solid #426878;border-radius:8px;background:#0b1d26;color:#edf7fa;padding:6px 10px}
.vulnerability-register{background:#10232c;border:1px solid #31505d;color:#e5eff3}.vulnerability-register h2{color:#fff}
.vulnerability-register .filters{padding:14px;margin-bottom:14px;border:1px solid #31505d;border-radius:12px;background:#0c1d25}.vulnerability-register .filters-grid{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:10px}.vulnerability-register label span{display:block;margin-bottom:5px;color:#c7d9e2;font-weight:700}.vulnerability-register input,.vulnerability-register select{width:100%;background:#fff;color:#17242b;border:1px solid #78909a;border-radius:7px;padding:9px}
.column-picker,.export-picker{position:relative}.column-picker>div,.export-picker>div{position:absolute;right:0;z-index:20;min-width:230px;padding:12px;border:1px solid #426878;border-radius:10px;background:#0b1d26;box-shadow:0 16px 35px rgba(0,0,0,.4)}.column-picker label,.export-picker a{display:block;padding:7px;color:#eff8fa}.column-picker button{margin-top:8px}
.vulnerability-table{min-width:1450px}.vulnerability-table th{position:sticky;top:0;z-index:2;background:#173a46}.vulnerability-table th a{color:#fff;white-space:nowrap}.vulnerability-table td{vertical-align:top;color:#e0edf2;border-color:#294752}.vulnerability-table td small{display:block;max-width:320px;margin-top:4px;color:#9db4bf}.vul-wide-cell{min-width:260px}
.vul-severity,.vul-status,.fix-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.82rem;font-weight:800;white-space:nowrap}.severity-critical{background:#7f1d1d;color:#fff}.severity-high{background:#9a3412;color:#fff}.severity-medium{background:#854d0e;color:#fff}.severity-low{background:#166534;color:#fff}.severity-informational{background:#075985;color:#fff}.vul-status{background:#244755;color:#edf7fa}.fix-badge{background:#14532d;color:#dcfce7}.pagination{display:flex;justify-content:center;align-items:center;gap:14px;padding:18px}
.vulnerability-form{max-width:1180px}.vulnerability-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.vulnerability-form-grid label{display:block}.vulnerability-form-grid label>span{display:block;margin-bottom:6px;font-weight:750}.vulnerability-form-grid input,.vulnerability-form-grid select,.vulnerability-form-grid textarea{width:100%}.vulnerability-form-grid .field-name,.vulnerability-form-grid .field-description,.vulnerability-form-grid .field-affected_assets,.vulnerability-form-grid .field-remediation_plan,.vulnerability-form-grid .field-remediation_notes{grid-column:span 3}.required-mark{color:#ef4444;margin-left:3px}
.vulnerability-fix-panel{border-color:#36705d}.detail-list>div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #294752}.detail-list dt{color:#99b3c0}.detail-list dd{margin:0;color:#edf6f8}.vulnerability-timeline article{padding:16px;border-left:3px solid #2dd4bf;background:#102630;margin:10px 0}
@media(max-width:1050px){.vulnerability-kpis{grid-template-columns:repeat(3,1fr)}.vulnerability-register .filters-grid{grid-template-columns:repeat(2,1fr)}.vulnerability-form-grid{grid-template-columns:repeat(2,1fr)}.vulnerability-form-grid .field-name,.vulnerability-form-grid .field-description,.vulnerability-form-grid .field-affected_assets,.vulnerability-form-grid .field-remediation_plan,.vulnerability-form-grid .field-remediation_notes{grid-column:span 2}}
@media(max-width:720px){.vulnerability-kpis,.vulnerability-chart-grid,.vulnerability-detail-grid,.vulnerability-register .filters-grid,.vulnerability-form-grid{grid-template-columns:1fr}.vulnerability-form-grid .field-name,.vulnerability-form-grid .field-description,.vulnerability-form-grid .field-affected_assets,.vulnerability-form-grid .field-remediation_plan,.vulnerability-form-grid .field-remediation_notes{grid-column:auto}}
.page-vulnerability-trends .content-column{background:radial-gradient(circle at 82% 4%,rgba(20,184,166,.14),transparent 28%)}
.trend-controls{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px;padding:14px 18px;background:#102630;border-color:#31505d}.trend-controls label span{display:block;margin-bottom:5px;color:#a9c0ca;font-size:.8125rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.trend-controls select{min-width:130px;padding:9px 12px;border:1px solid #4b7180;border-radius:8px;background:#071820;color:#fff;font-weight:800}
.trend-segment{display:flex;padding:4px;border:1px solid #31505d;border-radius:10px;background:#071820}.trend-segment button{border:0;border-radius:7px;background:transparent;color:#adc2cc;padding:8px 13px;font-weight:750;cursor:pointer}.trend-segment button:hover,.trend-segment button.is-active{background:#176b61;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.trend-chart-shell{position:relative;margin-bottom:18px;background:linear-gradient(145deg,#102630,#0a1d25);border-color:#31505d;color:#e9f2f5}.trend-chart-shell h2{color:#fff}.trend-chart-shell canvas{display:block;width:100%;max-height:430px}.trend-legend{display:flex;gap:14px;flex-wrap:wrap}.trend-legend span{color:#d8e7ed;font-size:.84rem;font-weight:750}.trend-legend span:before{content:"";display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%}.trend-legend .critical:before{background:#ef4444}.trend-legend .high:before{background:#f97316}.trend-legend .medium:before{background:#eab308}.trend-legend .low:before{background:#22c55e}.chart-empty{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);padding:14px 18px;border:1px solid #426878;border-radius:10px;background:#102630;color:#d9e8ee}.trend-data-register{background:#10232c;border:1px solid #31505d;color:#e5eff3}.trend-data-register h2{color:#fff}.trend-data-register .danger{border-color:#86434a;color:#fecaca}
@media(max-width:800px){.trend-controls{align-items:stretch;flex-direction:column}.trend-segment{overflow:auto}.trend-segment button{flex:1;white-space:nowrap}}
.page-planning .content-column{background:radial-gradient(circle at 85% 2%,rgba(43,156,171,.16),transparent 30%)}.planning-hero{background:linear-gradient(135deg,#102f3c,#101c2a 68%,#25344a);border:1px solid #33586b}.planning-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.planning-kpis article{padding:17px;border:1px solid #335463;border-radius:14px;background:#102630;color:#dbeaf0}.planning-kpis span{display:block;color:#9db7c3;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.planning-kpis strong{display:block;margin-top:7px;color:#fff;font-size:1.8rem}.planning-kpis .is-overdue{background:#351c24;border-color:#87414c}.planning-visuals,.planning-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.planning-visuals .portal-panel,.planning-tree-panel,.planning-register{background:#102630;border-color:#335463;color:#e7f1f4}.planning-visuals h2,.planning-tree-panel h2,.planning-register h2{color:#fff}.planning-bars>div{display:grid;grid-template-columns:120px 1fr 30px;align-items:center;gap:10px;margin:11px 0}.planning-bars i{display:block;height:8px;border-radius:8px;background:linear-gradient(90deg,#2dd4bf,#38bdf8);width:min(calc(var(--value)*14%),100%)}.planning-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.planning-type-grid div{padding:12px;border:1px solid #345767;border-radius:10px;background:#0b1e27}.planning-type-grid strong{display:block;color:#fff;font-size:1.35rem}.planning-type-grid span{color:#a8c0cb;font-size:.84rem}.plan-node{position:relative;border:1px solid #335766;border-radius:12px;background:#0c2029}.plan-node.level-1{padding:16px;margin:12px 0}.plan-node.level-2{margin:12px 0 0 28px;padding:13px;border-left:3px solid #2dd4bf}.plan-node.level-3{display:flex;justify-content:space-between;gap:12px;margin:10px 0 0 28px;padding:11px 13px;border-left:3px solid #38bdf8}.plan-node h3,.plan-node h4{margin:4px 0;color:#fff}.plan-node p,.plan-node.level-3 span{margin:0;color:#a9c0ca}.plan-ref{font-size:.8125rem;color:#68d8ca;font-weight:800;letter-spacing:.08em}.plan-node-main{display:flex;justify-content:space-between;gap:18px}.plan-progress{min-width:110px;text-align:right}.plan-progress strong{color:#fff}.plan-progress span{display:block;width:110px;height:7px;margin-top:6px;border-radius:8px;background:#29424d;overflow:hidden}.plan-progress i{display:block;height:100%;background:#2dd4bf}.plan-add-child{display:inline-block;margin-top:9px;color:#6ee7d8;font-size:.84rem;font-weight:750}.planning-register .filters{padding:14px}.planning-register .filters-grid{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:10px}.planning-register label span{display:block;color:#c8d9e0;margin-bottom:5px;font-weight:700}.planning-register input,.planning-register select{width:100%;padding:9px;border-radius:7px}.plan-priority{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.8125rem;font-weight:800}.priority-critical{background:#7f1d1d;color:#fff}.priority-high{background:#9a3412;color:#fff}.priority-medium{background:#854d0e;color:#fff}.priority-low{background:#166534;color:#fff}.planning-form{max-width:1180px}.planning-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.planning-form-grid label>span{display:block;margin-bottom:6px;font-weight:750}.planning-form-grid input,.planning-form-grid select,.planning-form-grid textarea{width:100%}.planning-form-grid .field-title,.planning-form-grid .field-description,.planning-form-grid .field-expected_outcome,.planning-form-grid .field-notes{grid-column:span 3}.planning-child-card{display:flex;justify-content:space-between;padding:13px;margin:8px 0;border:1px solid #335463;border-radius:10px;background:#102630}.planning-child-card span{display:block;color:#a8bdc6;margin-top:4px}@media(max-width:900px){.planning-kpis,.planning-visuals,.planning-detail-grid{grid-template-columns:repeat(2,1fr)}.planning-register .filters-grid,.planning-form-grid{grid-template-columns:repeat(2,1fr)}.planning-form-grid .field-title,.planning-form-grid .field-description,.planning-form-grid .field-expected_outcome,.planning-form-grid .field-notes{grid-column:span 2}}@media(max-width:620px){.planning-kpis,.planning-visuals,.planning-detail-grid,.planning-register .filters-grid,.planning-form-grid{grid-template-columns:1fr}.planning-form-grid .field-title,.planning-form-grid .field-description,.planning-form-grid .field-expected_outcome,.planning-form-grid .field-notes{grid-column:auto}.plan-node.level-2,.plan-node.level-3{margin-left:12px}.plan-node-main{display:block}.plan-progress{margin-top:10px;text-align:left}}
.page-security-docs .content-column{background:radial-gradient(circle at 90% 2%,rgba(70,120,180,.16),transparent 30%)}.docs-hero{background:linear-gradient(135deg,#122d3a,#101d2c 65%,#27263d);border:1px solid #365468}.docs-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.docs-kpis article{padding:16px;border:1px solid #345363;border-radius:13px;background:#102630}.docs-kpis span{display:block;color:#9eb8c4;font-size:.8125rem;font-weight:750;text-transform:uppercase}.docs-kpis strong{display:block;margin-top:7px;color:#fff;font-size:1.7rem}.docs-kpis .warning{background:#382b16;border-color:#86652d}.docs-kpis .danger{background:#371d26;border-color:#88404d}.docs-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px}.docs-types,.docs-register{background:#102630;border-color:#345363;color:#e6f0f4}.docs-types h2,.docs-register h2{color:#fff}.docs-types>div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #294653}.docs-register .filters{padding:14px}.docs-register .filters-grid{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:9px}.docs-register label span{display:block;margin-bottom:5px;color:#c5d7df;font-weight:700}.docs-register input,.docs-register select{width:100%;padding:9px}.docs-register td small{display:block;margin-top:4px;color:#9fb5c0}.doc-status,.doc-class{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.8125rem;font-weight:800}.doc-status{background:#214654;color:#e9f7fa}.status-published,.status-approved{background:#14532d;color:#dcfce7}.status-in_review{background:#854d0e;color:#fef3c7}.status-retired{background:#374151;color:#e5e7eb}.doc-class{background:#214654;color:#dff4f7}.class-confidential{background:#7c2d12;color:#ffedd5}.class-restricted{background:#7f1d1d;color:#fee2e2}.security-doc-form{max-width:1200px}.security-doc-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.security-doc-form-grid label>span{display:block;margin-bottom:6px;font-weight:750}.security-doc-form-grid input,.security-doc-form-grid select,.security-doc-form-grid textarea{width:100%}.security-doc-form-grid .field-title,.security-doc-form-grid .field-summary,.security-doc-form-grid .field-content,.security-doc-form-grid .field-change_summary{grid-column:span 3}.docs-detail-grid{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:18px;margin-bottom:18px}.doc-content{max-height:600px;overflow:auto;padding:14px;border:1px solid #345363;border-radius:10px;background:#0c2029;color:#dce9ee;line-height:1.7}.docs-revisions article{padding:14px;margin:9px 0;border-left:3px solid #38bdf8;background:#102630}.docs-revisions article>div{display:flex;justify-content:space-between;gap:15px}.docs-revisions span{color:#9fb6c0}@media(max-width:1050px){.docs-kpis{grid-template-columns:repeat(3,1fr)}.docs-layout{grid-template-columns:1fr}.docs-types{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.docs-types h2,.docs-types>.eyebrow{grid-column:1/-1}.docs-register .filters-grid,.security-doc-form-grid{grid-template-columns:repeat(2,1fr)}.security-doc-form-grid .field-title,.security-doc-form-grid .field-summary,.security-doc-form-grid .field-content,.security-doc-form-grid .field-change_summary{grid-column:span 2}}@media(max-width:680px){.docs-kpis,.docs-types,.docs-detail-grid,.docs-register .filters-grid,.security-doc-form-grid{grid-template-columns:1fr}.security-doc-form-grid .field-title,.security-doc-form-grid .field-summary,.security-doc-form-grid .field-content,.security-doc-form-grid .field-change_summary{grid-column:auto}}
/* Report chart builder & monthly statistics */
.report-zone-charts{display:grid;gap:12px;margin-top:12px}.report-zone-charts .report-chart-tile{background:rgba(3,15,22,.35)}
.report-chart-section{margin:18px 0}.report-chart-section>h2{border-left:4px solid var(--report-accent,#49d3a7);font-size:1.05rem;margin:0 0 10px;padding-left:10px}
.report-chart-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.report-chart-tile{background:linear-gradient(145deg,#142b3c,#0d202e);border:1px solid #3c6877;border-radius:13px;color:#eafff9;min-width:0;padding:14px 16px}
.report-chart-full{grid-column:1/-1}
.report-chart-tile header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between;margin-bottom:8px}
.report-chart-tile h3{color:#fff;font-size:.95rem;margin:0}.report-chart-tile header p{color:#a9c4cc;font-size:.84rem;margin:3px 0 0}
.report-chart-period{background:rgba(99,230,187,.12);border:1px solid rgba(99,230,187,.35);border-radius:999px;color:#9ff0d3;font-size:.78rem;font-weight:800;padding:3px 9px;white-space:nowrap}
.report-chart-canvas{height:260px;position:relative}
.report-chart-empty{align-items:center;border:1px dashed rgba(155,196,222,.35);border-radius:10px;color:#a9c4cc;display:flex;font-size:.85rem;justify-content:center;min-height:120px;padding:12px;text-align:center}.report-chart-empty a{color:#8ee7ca;margin-left:4px}
.report-kpi-tiles{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.report-kpi-tile{background:rgba(3,15,22,.35);border:1px solid rgba(135,194,185,.25);border-radius:10px;padding:12px}
.report-kpi-tile span{color:#b7d0dc;display:block;font-size:.8125rem;font-weight:800;text-transform:uppercase}
.report-kpi-tile strong{color:#63e6bb;display:block;font-size:1.55rem;margin-top:4px;word-break:break-word}.report-kpi-tile strong small{color:#b7d0dc;font-size:.8125rem}
.report-kpi-tile em{color:#a9c4cc;display:block;font-size:.8125rem;font-style:normal;margin-top:4px}
.report-kpi-tile.trend-good em{color:#63e6bb}.report-kpi-tile.trend-bad em{color:#fca5a5}
.report-filterbar-report{align-items:center;display:flex;flex-wrap:wrap;gap:8px;font-size:.85rem}
.report-assessment{background:#dbeafe;border-radius:999px;color:#1e3a8a;display:inline-block;font-size:.8125rem;font-weight:850;padding:4px 8px}
.report-assessment.assessment-safe,.report-assessment.assessment-normal{background:#b9f1d6;color:#075b3c}
.report-assessment.assessment-needs_improvement{background:#ffe2a3;color:#765000}
.report-assessment.assessment-serious,.report-assessment.assessment-dangerous{background:#fecaca;color:#7f1d1d}
.report-source-bar{align-items:center;background:#e9f2ef;border:1px solid #bad0c8;border-radius:12px;display:flex;flex-wrap:wrap;gap:10px;margin:15px 0;padding:12px 14px}
.report-form-block{border:1px solid #bad0c8;border-radius:13px;margin:0 0 16px;padding:16px}
.report-form-block-head{align-items:flex-start;display:flex;gap:12px;margin-bottom:12px}.report-form-block-head h2{font-size:1.1rem;margin:0}.report-form-block-head p{margin:4px 0 0;opacity:.85}
.report-step{align-items:center;background:#0f766e;border-radius:50%;color:#fff;display:inline-flex;flex:0 0 30px;font-weight:900;height:30px;justify-content:center}
.form-grid .form-grid-wide{grid-column:1/-1}
.report-data-section{background:rgba(3,15,22,.25);border:1px solid #4f7d8b;border-radius:11px;margin-top:10px;padding:10px 12px}
.report-data-section summary{cursor:pointer;font-weight:850}.report-data-section summary small{color:#9fd8c8;font-weight:600;margin-left:6px}
.report-data-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-top:10px}
.report-data-field{display:flex;flex-direction:column;gap:4px}.report-data-field>span{color:#d8ede8;font-size:.82rem;font-weight:800}.report-data-field>span b{background:rgba(99,230,187,.15);border-radius:6px;color:#9ff0d3;font-size:.78rem;padding:1px 6px}
.report-data-field input,.report-data-field textarea{background:#f8fffc;border:1px solid #8eb7ad;border-radius:8px;color:#102a22;min-height:40px;padding:8px 10px;text-align:right}
.report-data-field textarea{font-family:ui-monospace,Consolas,monospace;font-size:.82rem;text-align:left;width:100%}
.report-data-field small{color:#a9c4cc;font-size:.8125rem}.report-data-field.has-error input,.report-data-field.has-error textarea{border-color:#fb7185;box-shadow:0 0 0 3px rgba(251,113,133,.25)}
.report-ranking-field{margin-top:10px}
.report-series-row{align-items:end;display:grid;gap:9px;grid-template-columns:2fr 1.1fr 1fr .7fr .5fr auto}
.report-series-row input[type=checkbox]{min-height:auto}
.report-value-section{color:#0f766e;font-size:.85rem;margin:14px 0 6px;text-transform:uppercase}
.report-value-table td.numeric{text-align:right;white-space:nowrap}
.report-ranking-list{display:grid;gap:6px;margin:0 0 16px;padding-left:22px}.report-ranking-list li span{overflow-wrap:anywhere}.report-ranking-list li{align-items:baseline;display:list-item}.report-ranking-list li strong{float:right;margin-left:10px}
.report-config-grid{display:grid;gap:16px;grid-template-columns:1.3fr .7fr}
tr.is-muted td{opacity:.55}
@media(max-width:1000px){.report-chart-grid,.report-config-grid{grid-template-columns:1fr}.report-series-row{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.report-series-row{grid-template-columns:1fr}.report-chart-canvas{height:220px}}
.report-filterbar,.report-source-bar{background:linear-gradient(145deg,#142b3c,#0d202e);border-color:#3c6877;color:#eafff9}.report-filterbar label{color:#b7d0dc}.report-filterbar-report{color:#d8ede8}.report-source-bar strong{color:#fff}.report-source-bar .muted{color:#a9c4cc}
.report-chart-section>h2{color:#0f2a36;font-weight:850}
.report-chart-data-panel .report-metric-formset>div.report-series-row{grid-template-columns:2fr 1.1fr 1fr .8fr .5fr auto}
.report-builder-table td small{display:block;opacity:.75}.report-builder-table .badge{display:inline-block;margin:2px 4px 2px 0}
@media(max-width:1000px){.report-chart-data-panel .report-metric-formset>div.report-series-row{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.report-chart-data-panel .report-metric-formset>div.report-series-row{grid-template-columns:1fr}}
.report-overview-picker{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.report-overview-picker label{color:#b7d0dc;font-size:.8125rem;font-weight:800}.report-overview-picker label small{color:#fcd34d;font-weight:600}
.report-overview-select{background:#10283a;border:1px solid #55948a;border-radius:8px;color:#fff;flex:1 1 220px;max-width:100%;min-height:34px;padding:6px 10px}
.report-overview-bar{justify-content:space-between}.report-overview-bar .report-overview-picker{margin-top:0}
.report-overview-set{font-size:.8125rem;padding:5px 9px;white-space:nowrap}
/* GRC: SoA coverage, control monitoring, evidence mapping */
.grc-status.status-effective,.grc-status.status-draft{background:#b9f2d7;color:#075b3c}.grc-status.status-draft{background:#d9e4df;color:#213f35}
.grc-status.status-partially_effective,.grc-status.status-planned,.grc-status.status-pending{background:#ffe4a8;color:#725000}
.grc-status.status-ineffective,.grc-status.status-superseded{background:#ffd0d0;color:#7e1818}
.grc-status.status-not_started,.grc-status.status-not_tested,.grc-status.status-archived{background:#e2e8f0;color:#334155}
.grc-coverage{display:grid;gap:6px;margin-top:10px}
.grc-meter-row{align-items:center;display:grid;gap:8px;grid-template-columns:82px 1fr 38px 52px;font-size:.8125rem}.grc-meter-row span{color:#b5d8cd}.grc-meter-row b{color:#fff;text-align:right}.grc-meter-row small{color:#9fc4b8}
.grc-meter{background:rgba(148,163,184,.25);border-radius:999px;height:8px;overflow:hidden}.grc-meter i{background:#22c55e;display:block;height:100%}
.grc-meter.meter-evidence i{background:#38bdf8}.grc-meter.meter-effective i{background:#a78bfa}
.grc-meter.compact{display:inline-block;height:7px;margin-right:6px;vertical-align:middle;width:90px}
.grc-attention-note{color:#fcd34d;display:block;font-size:.8125rem;font-style:normal;font-weight:800;margin-top:8px}
.grc-flags{display:flex;flex-wrap:wrap;gap:4px}
.grc-flag{border-radius:6px;display:inline-block;font-size:.78rem;font-weight:800;padding:3px 7px;white-space:nowrap;background:#fef3c7;color:#78350f}
.grc-flag.flag-ok{background:#dcfce7;color:#166534}
.grc-flag.flag-ineffective,.grc-flag.flag-assessment-overdue,.grc-flag.flag-review-overdue{background:#fee2e2;color:#991b1b}
.grc-flag.flag-pending-decision{background:#e0e7ff;color:#3730a3}
.grc-flag-bar{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.grc-health{border-radius:999px;font-size:.82rem;font-weight:800;padding:4px 10px}.grc-health.health-ok{background:#b9f2d7;color:#075b3c}.grc-health.health-attention{background:#ffe4a8;color:#725000}.grc-health.health-risk{background:#ffd0d0;color:#7e1818}.grc-health.health-excluded,.grc-health.health-pending{background:#e2e8f0;color:#334155}
.grc-control-table tr.health-risk td:first-child{box-shadow:inset 3px 0 0 #ef4444}.grc-control-table tr.health-attention td:first-child{box-shadow:inset 3px 0 0 #f59e0b}.grc-control-table tr.health-excluded td{opacity:.7}
.grc-domain-row th{background:#e6f0ec;color:#123d31;font-size:.82rem;text-align:left}.grc-domain-row small{color:#4b6b60;font-weight:600;margin-left:8px}
.grc-soa-document{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin:16px 0}
.grc-soa-document article{background:#fff;border:1px solid #c8d8d1;border-left:4px solid #0f766e;border-radius:11px;padding:12px 14px}
.grc-soa-document span,.grc-soa-document small{color:#4b6b60;display:block;font-size:.8125rem}.grc-soa-document strong{color:#123d31;display:block;margin:4px 0;overflow-wrap:anywhere}
.grc-status-bars{display:grid;gap:8px}.grc-status-bars>div{align-items:center;display:flex;justify-content:space-between}
.grc-import-form{border-top:1px solid #c8d8d1;margin-top:16px;padding-top:12px}.grc-import-form h3{margin:0 0 6px}.grc-import-form input[type=file]{margin:6px 0}
.grc-import-errors{background:#fef2f2;border:1px solid #fca5a5;border-radius:9px;color:#7f1d1d;margin-top:12px;max-height:240px;overflow:auto;padding:10px 12px}
.grc-filters{align-items:end;display:flex;flex-wrap:wrap;gap:10px}.grc-filters label{display:flex;flex-direction:column;font-size:.8125rem;font-weight:800;gap:4px}
.grc-attribute-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:14px}.grc-attribute-grid span{color:#4b6b60;font-size:.8125rem;font-weight:800;text-transform:uppercase}.grc-attribute-grid p{margin:4px 0 0}
.grc-tag{background:#e0f2fe;border-radius:6px;color:#075985;display:inline-block;font-size:.8125rem;font-weight:700;margin:2px 4px 2px 0;padding:2px 7px}
.grc-link-form{align-items:end;display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.grc-link-form label{display:flex;flex:1 1 360px;flex-direction:column;gap:4px}
.grc-warning{color:#b45309;font-weight:800}
.grc-form-grid label.grc-wide{grid-column:1/-1}
@media(max-width:1000px){.grc-soa-document{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.grc-soa-document{grid-template-columns:1fr}.grc-meter-row{grid-template-columns:70px 1fr 34px}.grc-meter-row small{display:none}}
/* Top bar: workspace menu centred, account menu on the right */
.topbar{display:grid;grid-template-columns:minmax(170px,1fr) auto minmax(170px,1fr);gap:18px;align-items:center}
.topbar-ident{min-width:0}.topbar-ident strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-menu{align-items:center;display:flex;gap:4px;justify-content:center;max-width:100%;overflow-x:auto;scrollbar-width:thin}
.topbar-link{border:1px solid transparent;border-radius:9px;color:#b9cde0;cursor:pointer;display:inline-flex;font-size:13.5px;font-weight:750;gap:5px;list-style:none;padding:8px 13px;white-space:nowrap}
.topbar-link::-webkit-details-marker{display:none}
.topbar-link:hover{background:#16243a;color:#f2f8ff}
.topbar-link.is-active{background:linear-gradient(135deg,rgba(15,139,111,.32),rgba(56,189,248,.18));border-color:#2f8f7b;color:#fff}
.topbar-dropdown{position:relative}.topbar-dropdown>summary{list-style:none}
.topbar-dropdown-panel{background:#0c1a2a;border:1px solid #2b4a63;border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.4);display:grid;left:50%;min-width:240px;padding:6px;position:fixed;transform:translateX(-50%);margin-top:8px;z-index:30}
.topbar-dropdown-panel a{border-radius:8px;color:#cfe0f0;font-size:13px;padding:8px 11px}.topbar-dropdown-panel a:hover,.topbar-dropdown-panel a.is-active{background:#16243a;color:#fff}
.topbar .account{justify-content:flex-end}
.user-menu{position:relative}.user-menu>summary{align-items:center;border:1px solid #294963;border-radius:12px;cursor:pointer;display:flex;gap:9px;list-style:none;padding:5px 10px 5px 5px}
.user-menu>summary::-webkit-details-marker{display:none}.user-menu>summary:hover,.user-menu[open]>summary{background:#12233a;border-color:#3b6d8f}
.user-avatar{align-items:center;background:linear-gradient(135deg,#0f8b6f,#2563eb);border-radius:9px;color:#fff;display:inline-flex;flex:0 0 32px;font-size:13px;font-weight:900;height:32px;justify-content:center;letter-spacing:.04em}
.user-avatar--large{flex-basis:44px;font-size:15px;height:44px;border-radius:12px}.user-avatar--xl{flex-basis:72px;font-size:24px;height:72px;width:72px;border-radius:18px}
.user-menu-name{display:grid;line-height:1.15;max-width:170px}.user-menu-name strong{color:#eef6ff;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-name small{color:#8fb3cf;font-size:12.5px}
.user-menu-caret{color:#8fb3cf;font-size:12.5px}
.user-menu-panel{background:#0c1a2a;border:1px solid #2b4a63;border-radius:14px;box-shadow:0 22px 48px rgba(0,0,0,.45);color:#dbe8f5;padding:14px;position:absolute;right:0;top:calc(100% + 8px);width:320px;z-index:40}
.user-menu-identity{align-items:center;border-bottom:1px solid #22405a;display:flex;gap:11px;padding-bottom:12px}.user-menu-identity strong{color:#fff;display:block}.user-menu-identity small{color:#8fb3cf;display:block;font-size:13px;overflow-wrap:anywhere}
.user-menu-section{border-bottom:1px solid #22405a;display:flex;flex-wrap:wrap;gap:5px;padding:11px 0}
.user-menu-heading{color:#63e6bb;flex-basis:100%;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.user-role-badge{background:#0f8b6f;border-radius:999px;color:#fff;display:inline-block;font-size:12.5px;font-weight:800;padding:3px 9px}
.user-profile-chip{background:#13263a;border:1px solid #2e5574;border-radius:999px;color:#cfe0f0;display:inline-block;font-size:12.5px;font-weight:700;padding:3px 9px}
.user-menu-links{display:grid;padding:8px 0}.user-menu-links a{border-radius:8px;color:#dbe8f5;font-size:13px;padding:8px 10px}.user-menu-links a:hover{background:#16243a;color:#fff}
.user-menu-logout{border-top:1px solid #22405a;margin:0;padding-top:10px}.user-menu-logout button{background:#3b1720;border:1px solid #7f2535;border-radius:9px;color:#fecdd3;cursor:pointer;font-weight:800;padding:9px;width:100%}.user-menu-logout button:hover{background:#5a1d2a;color:#fff}
.account-hero{align-items:center}.account-hero-identity{align-items:center;display:flex;gap:18px}
.account-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.account-wide{grid-column:1/-1}
.account-chip-list{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.account-chip-list .user-profile-chip{background:#e6f0ec;border-color:#b8cec5;color:#123d31}
.account-workspaces{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.account-workspaces article{border:1px solid #c8d8d1;border-radius:11px;padding:11px 13px}.account-workspaces strong,.account-workspaces small{display:block}.account-workspaces small{color:#4b6b60;margin-top:4px}
.account-form{max-width:760px}.account-password-fields{display:grid;gap:14px;max-width:480px}.account-password-fields label{display:grid;gap:6px}.account-help ul{margin:4px 0 0;padding-left:18px}
@media(max-width:1100px){.topbar{grid-template-columns:1fr auto}.topbar-menu{grid-column:1/-1;grid-row:2;justify-content:flex-start}}
@media(max-width:700px){.user-menu-name{display:none}.account-grid{grid-template-columns:1fr}.user-menu-panel{width:min(320px,calc(100vw - 32px))}}
/* VPN user_list.csv import/export */
.vpn-import-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.vpn-import-check{align-items:center;display:flex !important;gap:8px;margin:10px 0}
.vpn-import-errors{background:#fef2f2;border:1px solid #fca5a5;border-radius:9px;color:#7f1d1d;margin-top:12px;max-height:280px;overflow:auto;padding:10px 12px}
.vpn-import-result{background:#ecfdf5;border:1px solid #86efac;border-radius:9px;color:#14532d;margin-top:12px;padding:10px 12px}
.vpn-import-result .badge{margin:2px}
.vpn-format-sample{background:#0b1622;border:1px solid #2b4a63;border-radius:9px;color:#9ff0d3;font-family:ui-monospace,Consolas,monospace;padding:12px;white-space:pre}
.vpn-format-rules{display:grid;gap:6px;padding-left:18px}
@media(max-width:900px){.vpn-import-grid{grid-template-columns:1fr}}
.vpn-incomplete{color:#b45309 !important;font-weight:800}
.vpn-import-check{justify-content:flex-start}.vpn-import-check input{flex:0 0 auto;width:auto !important}
.vpn-auto-status{display:grid;gap:5px}.vpn-auto-status>span{font-weight:750}.vpn-auto-status small{opacity:.8}
/* Introduction pages: structured blocks usable inside the rich-content body (org chart, cards, duties, layers) */
.introduction-rich-content .intro-section{margin-bottom:34px}.introduction-rich-content .intro-section:last-child{margin-bottom:0}
.introduction-rich-content .intro-note{color:#94b2c8;font-size:13px}
.introduction-rich-content .org-chart{align-items:center;display:flex;flex-direction:column;margin:18px auto;max-width:560px}
.introduction-rich-content .org-node{background:#0f2a40;border:1px solid #3b6987;border-radius:12px;padding:14px 18px;text-align:center;width:100%}
.introduction-rich-content .org-node strong{color:#fff;display:block;font-size:16px}
.introduction-rich-content .org-node small{color:#55dba8;display:block;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.introduction-rich-content .org-node p{color:#c5d8e8;font-size:13.5px;line-height:1.6;margin:8px 0 0}
.introduction-rich-content .org-node--board{background:#162238;border-style:dashed;max-width:360px}
.introduction-rich-content .org-node--lead{background:linear-gradient(135deg,#124a3d,#0f2a40);border-color:#43d4a0;box-shadow:0 10px 26px rgba(67,212,160,.12)}
.introduction-rich-content .org-link{align-items:center;display:flex;flex-direction:column;height:46px;justify-content:center;position:relative}
.introduction-rich-content .org-link:before{background:#43d4a0;content:'';height:100%;left:50%;position:absolute;top:0;width:2px}
.introduction-rich-content .org-link:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #43d4a0;bottom:-2px;content:'';left:calc(50% - 5px);position:absolute}
.introduction-rich-content .org-link span{background:#0b1d2d;color:#94b2c8;font-size:12.5px;padding:0 8px;position:relative;z-index:1}
.introduction-rich-content .intro-card-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.introduction-rich-content .intro-card{background:#0f2a40;border:1px solid #31536d;border-radius:11px;padding:16px}
.introduction-rich-content .intro-card span{color:#55dba8;font-size:20px;font-weight:900}.introduction-rich-content .intro-card p{color:#dbe8f3;font-size:14px;line-height:1.6;margin:6px 0 0}
.introduction-rich-content .intro-duty-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.introduction-rich-content .intro-duty-group{background:#0d2336;border:1px solid #2e5069;border-left:3px solid #43d4a0;border-radius:11px;padding:14px 16px}
.introduction-rich-content .intro-duty-group h3{font-size:16px;margin:0 0 8px}.introduction-rich-content .intro-duty-group ul{margin:0;padding-left:18px}.introduction-rich-content .intro-duty-group li{font-size:14px;line-height:1.6;margin:5px 0}
.introduction-rich-content .intro-layers{counter-reset:layer;display:grid;gap:8px;list-style:none;margin:14px 0;padding:0}
.introduction-rich-content .intro-layers li{background:#0f2a40;border:1px solid #31536d;border-radius:10px;counter-increment:layer;display:grid;gap:2px 14px;grid-template-columns:44px minmax(0,1fr);padding:11px 14px}
.introduction-rich-content .intro-layers li:before{align-items:center;background:#124a3d;border-radius:8px;color:#55dba8;content:'L' counter(layer);display:flex;font-weight:900;grid-row:span 2;justify-content:center}
.introduction-rich-content .intro-layers li:nth-child(2){margin-left:18px}.introduction-rich-content .intro-layers li:nth-child(3){margin-left:36px}.introduction-rich-content .intro-layers li:nth-child(4){margin-left:54px}.introduction-rich-content .intro-layers li:nth-child(5){margin-left:72px}
.introduction-rich-content .intro-layers strong{color:#fff}.introduction-rich-content .intro-layers span{color:#c5d8e8;font-size:13.5px}
@media(max-width:700px){.introduction-rich-content .intro-layers li{margin-left:0!important}}
/* Introduction pages built from blocks */
.introduction-highlights{gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.introduction-highlights article{align-items:start;gap:14px;grid-template-columns:auto minmax(0,1fr);padding:20px 22px;border-radius:14px;background:linear-gradient(145deg,#0f2a40,#0b2133)}
.introduction-highlights span{color:#55dba8;font-size:26px;font-weight:900;line-height:1;letter-spacing:-.02em}
.introduction-highlights p{color:#eef6fd;font-size:16px;font-weight:600;line-height:1.55}
.introduction-blocks{display:grid;gap:16px}.introduction-blocks.has-image{grid-template-columns:minmax(0,1fr) minmax(260px,.42fr);align-items:start}
.introduction-block-flow{display:grid;gap:16px}
.introduction-side-figure{margin:0;border-radius:13px;overflow:hidden;position:sticky;top:96px}.introduction-side-figure img{display:block;width:100%}
.intro-block{background:#0b1d2d;border:1px solid #2e5069;border-radius:14px;color:#cfdeea;padding:clamp(24px,4vw,44px)}
.intro-block>h2{border-left:3px solid #43d4a0;color:#fff;font-size:26px;letter-spacing:-.03em;line-height:1.25;margin:0 0 14px;padding-left:13px}
.intro-block-lead{color:#a9c1d4;font-size:15.5px;line-height:1.7;margin:0 0 18px;max-width:820px}
.intro-block .introduction-rich-content{padding:0;font-size:16px}
.intro-block .intro-note{color:#94b2c8;font-size:13.5px;margin:16px 0 0}
.intro-block .intro-card-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.intro-block .intro-card{background:#0f2a40;border:1px solid #31536d;border-radius:12px;padding:18px}
.intro-block .intro-card.is-highlighted{border-color:#43d4a0;box-shadow:inset 0 3px 0 #43d4a0}
.intro-block .intro-card-number{color:#55dba8;font-size:22px;font-weight:900}
.intro-block .intro-card h3{color:#fff;font-size:17px;margin:8px 0 4px}.intro-block .intro-card small{color:#55dba8;font-weight:800;text-transform:uppercase;font-size:12.5px}
.intro-block .intro-card p{color:#dbe8f3;font-size:14.5px;line-height:1.6;margin:6px 0 0}
.intro-block .org-chart{align-items:center;display:flex;flex-direction:column;margin:8px auto;max-width:560px}
.intro-block .org-node{background:#0f2a40;border:1px solid #3b6987;border-radius:12px;padding:15px 18px;text-align:center;width:100%}
.intro-block .org-node strong{color:#fff;display:block;font-size:17px}
.intro-block .org-node small{color:#55dba8;display:block;font-size:13px;font-weight:800;letter-spacing:.04em;margin-top:2px;text-transform:uppercase}
.intro-block .org-node p{color:#c5d8e8;font-size:14px;line-height:1.6;margin:8px 0 0}
.intro-block .org-node--board{background:#162238;border-style:dashed;max-width:340px}
.intro-block .org-node--lead{background:linear-gradient(135deg,#124a3d,#0f2a40);border-color:#43d4a0;box-shadow:0 10px 26px rgba(67,212,160,.12)}
.intro-block .org-link{height:38px;position:relative;width:14px}
.intro-block .org-link:before{background:#43d4a0;content:'';height:100%;left:6px;position:absolute;top:0;width:2px}
.intro-block .org-link:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #43d4a0;bottom:-2px;content:'';left:1px;position:absolute}
.intro-block .intro-duty-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.intro-block .intro-duty-group{background:#0d2336;border:1px solid #2e5069;border-left:3px solid #43d4a0;border-radius:12px;padding:16px 18px}
.intro-block .intro-duty-group small{color:#55dba8;font-size:12.5px;font-weight:800;text-transform:uppercase}
.intro-block .intro-duty-group h3{color:#fff;font-size:17px;margin:2px 0 8px}.intro-block .intro-duty-group ul{margin:0;padding-left:18px}.intro-block .intro-duty-group li{font-size:14.5px;line-height:1.6;margin:5px 0}.intro-block .intro-duty-group li::marker{color:#55dba8}
.intro-block .intro-layers{counter-reset:layer;display:grid;gap:10px;list-style:none;margin:0;padding:0}
.intro-block .intro-layers li{background:#0f2a40;border:1px solid #31536d;border-radius:11px;counter-increment:layer;display:grid;gap:2px 14px;grid-template-columns:44px minmax(0,1fr);padding:13px 16px}
.intro-block .intro-layers li:before{align-items:center;background:#124a3d;border-radius:9px;color:#55dba8;content:counter(layer,decimal-leading-zero);display:flex;font-weight:900;grid-row:span 3;justify-content:center}
.intro-block .intro-layers strong{color:#fff;font-size:16px}.intro-block .intro-layers small{color:#55dba8;font-size:12.5px;font-weight:800;text-transform:uppercase}.intro-block .intro-layers span{color:#c5d8e8;font-size:14.5px;line-height:1.6}
@media(max-width:900px){.introduction-blocks.has-image{grid-template-columns:1fr}.introduction-side-figure{position:static}}
/* Introduction editor */
.intro-editor-head{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}
.intro-add-block{align-items:flex-end;display:flex;gap:8px}.intro-add-block label{display:grid;gap:4px;font-size:13px;font-weight:800}
.intro-block-list{display:grid;gap:8px;list-style:none;margin:14px 0 0;padding:0}
.intro-block-row{align-items:center;background:#0f2235;border:1px solid #2b4a63;border-radius:11px;display:grid;gap:12px;grid-template-columns:150px minmax(0,1fr) auto;padding:10px 12px}
.intro-block-row.is-hidden-block{opacity:.6}
.intro-block-type{border-radius:999px;font-size:12.5px;font-weight:800;padding:4px 10px;text-align:center;background:#16324a;color:#9fd8ff}
.intro-block-type.type-rich_text{background:#1e293b;color:#e2e8f0}.intro-block-type.type-org_chart{background:#124a3d;color:#9ff0d3}.intro-block-type.type-groups{background:#3b2a12;color:#fcd34d}.intro-block-type.type-steps{background:#2e1e47;color:#d8b4fe}
.intro-block-summary strong,.intro-block-summary small{display:block}.intro-block-summary small{color:#94b2c8;margin-top:2px}
.intro-block-actions{align-items:center;display:flex;gap:6px}.intro-block-actions form{display:flex;gap:4px;margin:0}
.intro-block-empty{color:#94b2c8;padding:14px}
.intro-item-list{display:grid;gap:10px;margin-top:12px}
.intro-item-row{background:#0f2235;border:1px solid #2b4a63;border-radius:11px;padding:12px 14px}
.intro-item-row.is-removed{opacity:.45}
.intro-item-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.intro-item-head b{color:#55dba8}
.intro-item-tools{display:flex;gap:6px}
.rich-field{border:1px solid #3b6987;border-radius:10px;overflow:hidden}
.rich-field-toolbar{background:#10263a;border-bottom:1px solid #2b4a63;display:flex;flex-wrap:wrap;gap:4px;padding:6px}
.rich-field-toolbar button{background:#16324a;border:1px solid #2e5574;border-radius:7px;color:#e2eef8;cursor:pointer;font-size:13px;font-weight:700;padding:5px 9px}
.rich-field-toolbar button:hover{background:#1f4466}.rich-field-toolbar .is-bold{font-weight:900}.rich-field-toolbar .is-italic{font-style:italic}
.rich-field-area{background:#f8fbfd;color:#10202c;font-size:15px;line-height:1.7;min-height:240px;outline:none;padding:14px 16px}
.rich-field-area h2{font-size:22px;margin:.6em 0 .3em}.rich-field-area h3{font-size:18px;margin:.6em 0 .3em}.rich-field-area blockquote{border-left:3px solid #0f8b6f;margin:8px 0;padding-left:12px;color:#334155}
@media(max-width:800px){.intro-block-row{grid-template-columns:1fr}}
/* Tag taxonomy */
.tag-hero .tag-type-dot{background:var(--tag-color,#43d4a0);border-radius:50%;display:inline-block;height:9px;margin-right:7px;width:9px}
.tag-toolbar{display:grid;gap:12px;margin:16px 0}
.tag-search{display:flex;flex-wrap:wrap;gap:8px}.tag-search input[type=search]{flex:1 1 320px;min-height:44px;font-size:15px}.tag-search select{min-height:44px}
.tag-type-filter{display:flex;flex-wrap:wrap;gap:6px}
.tag-type-filter a{border:1px solid #2b4a63;border-radius:999px;color:#b9cde0;font-size:13.5px;font-weight:750;padding:6px 12px}
.tag-type-filter a b{color:#55dba8;margin-left:4px}.tag-type-filter a.is-active,.tag-type-filter a:hover{background:#16324a;border-color:#43d4a0;color:#fff}
.tag-directory{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.tag-card{background:linear-gradient(150deg,#10263a,#0b1d2d);border:1px solid #2b4a63;border-left:4px solid var(--tag-color);border-radius:12px;color:#dbe8f3;display:flex;flex-direction:column;gap:6px;padding:14px 16px;transition:transform .15s,border-color .15s}
.tag-card:hover{border-color:var(--tag-color);transform:translateY(-2px)}
.tag-card-type{color:var(--tag-color);font-size:12.5px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.tag-card strong{color:#fff;font-size:17px}.tag-card p{color:#a9c1d4;font-size:13.5px;line-height:1.5;margin:0}.tag-card small{color:#8fb3cf;font-size:13px}
.tag-card-count{color:#55dba8;font-size:13.5px;font-weight:800;margin-top:auto}
.tag-chip{align-items:center;background:color-mix(in srgb,var(--tag-color,#64748b) 18%,transparent);border:1px solid color-mix(in srgb,var(--tag-color,#64748b) 60%,transparent);border-radius:999px;color:inherit;display:inline-flex;font-size:13.5px;font-weight:750;gap:5px;margin:2px 4px 2px 0;padding:3px 10px}
.tag-chip b{color:var(--tag-color);font-size:12.5px}
.tag-related{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.tag-related>span{color:#8fb3cf;font-size:13px;font-weight:800;margin-right:6px;text-transform:uppercase}
.tag-kpis{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin:16px 0}
.tag-kpis a{background:#14231f;border:1px solid #315c50;border-radius:13px;color:#eafff7;padding:14px 16px}.tag-kpis a.is-active{border-color:#65e6b5;box-shadow:inset 0 -3px 0 #65e6b5}
.tag-kpis span{color:#aed3c7;display:block;font-size:13px}.tag-kpis strong{color:#65e6b5;display:block;font-size:1.8rem}
.tag-manage-filters{align-items:end;display:flex;flex-wrap:wrap;gap:10px}.tag-manage-filters label{display:flex;flex-direction:column;font-size:13px;font-weight:800;gap:4px}
.tag-bulk-bar{align-items:center;background:#10263a;border:1px dashed #3b6987;border-radius:11px;display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;padding:10px 12px}
.tag-bulk-bar.has-selection{border-style:solid;border-color:#43d4a0}.tag-bulk-bar strong{color:#dbe8f3;margin-right:6px}
.tag-table td small{display:block;opacity:.7}.tag-table td:first-child,.tag-table th:first-child{width:36px}
.tag-state{background:#e2e8f0;border-radius:999px;color:#334155;font-size:13px;font-weight:800;padding:3px 9px}.tag-state.is-active{background:#b9f2d7;color:#075b3c}
.tag-form-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.tag-form-grid label{display:grid;gap:5px}.tag-span-2{grid-column:1/-1}
.tag-color-field input[type=color]{height:42px;padding:3px;width:90px}
@media(max-width:800px){.tag-kpis{grid-template-columns:repeat(2,1fr)}.tag-form-grid{grid-template-columns:1fr}}
.tag-bulk-bar select,.tag-search select,.tag-manage-filters select{width:auto;min-width:170px}
.tag-manage-filters input[type=search]{min-width:240px}
/* Back to top */
.portal-jump-up{align-items:center;background:#16324a;border:1px solid #43d4a0;border-radius:50%;bottom:24px;box-shadow:0 8px 24px rgba(0,0,0,.4);color:#65e6b5;cursor:pointer;display:flex;height:46px;justify-content:center;padding:0;position:fixed;right:24px;transition:background .15s,transform .15s;width:46px;z-index:90}
.portal-jump-up[hidden]{display:none}
.portal-jump-up:hover,.portal-jump-up:focus-visible{background:#43d4a0;color:#06251a;transform:translateY(-2px)}
.portal-jump-up svg{fill:none;height:22px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4;width:22px}
@media(max-width:760px){.portal-jump-up{bottom:16px;right:16px;height:42px;width:42px}}
@media print{.portal-jump-up{display:none!important}}
/* Article library (/articles/) */
.library-hero{align-items:stretch;background:linear-gradient(140deg,#17304d,#0d1c30 70%);border:1px solid rgba(137,187,255,.3);border-radius:16px;display:grid;gap:22px;grid-template-columns:minmax(0,1.5fr) minmax(260px,.9fr);padding:26px 28px}
.library-hero h1{color:#f8fbff;font-size:2rem;margin:4px 0 8px}.library-hero .summary{color:#c3d4e8;max-width:680px}
.library-search{display:flex;gap:8px;margin-top:16px;max-width:640px}.library-search input{flex:1;font-size:15px;min-height:46px}.library-search button{min-height:46px;padding-inline:20px}
.library-stats{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.library-stats div{background:rgba(6,16,30,.55);border:1px solid rgba(137,187,255,.18);border-radius:12px;padding:12px 14px}
.library-stats dt{color:#9fb6cf;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.library-stats dd{color:#65e6b5;font-size:1.7rem;font-weight:850;margin:4px 0 0}.library-stats .library-stat-date{font-size:1.15rem;padding-top:6px}
.library-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin:18px 0}
.library-view-switch{background:#0c1a2c;border:1px solid #2b4a63;border-radius:10px;display:inline-flex;padding:3px}
.library-view-switch a{border-radius:8px;color:#b9cde0;font-size:13px;font-weight:750;padding:7px 14px}.library-view-switch a.is-active{background:#1f4466;color:#fff}
.library-section-chips{display:flex;flex:1;flex-wrap:wrap;gap:6px}.library-section-chips a{border:1px solid #2b4a63;border-radius:999px;color:#b9cde0;font-size:13.5px;font-weight:700;padding:5px 12px}.library-section-chips a:hover{border-color:#43d4a0;color:#fff}
.library-zones{display:grid;gap:18px}.library-zones--grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.library-zones--grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.library-zones--wide{grid-template-columns:1fr}
.library-zone{background:linear-gradient(160deg,#122640,#0c1a2c);border:1px solid rgba(137,187,255,.22);border-radius:14px;display:flex;flex-direction:column;gap:12px;padding:18px 20px}
.library-zone>header{align-items:flex-end;border-bottom:2px solid #43d4a0;display:flex;justify-content:space-between;padding-bottom:10px}.library-zone>header h2{color:#fff;font-size:1.2rem;margin:2px 0 0}
.library-zone-count{background:#16324a;border-radius:999px;color:#8fe9c4;font-size:13px;font-weight:800;padding:4px 10px}
.library-zone-lead h3{font-size:1.08rem;line-height:1.4;margin:6px 0}.library-zone-lead h3 a{color:#f2f7ff}.library-zone-lead h3 a:hover{color:#65e6b5}.library-zone-lead p{color:#adc2d8;font-size:13.5px;line-height:1.6;margin:0}
.library-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;color:#98b0c9;font-size:13px}.library-meta a{color:#7fc4ff;font-weight:700}
.library-cve{background:rgba(239,68,68,.14);border:1px solid rgba(239,68,68,.45);border-radius:6px;color:#fca5a5;font-size:13px;font-weight:800;padding:1px 7px}
.library-zone-list{border-top:1px solid rgba(161,189,225,.12);list-style:none;margin:0;padding:0}
.library-zone-list li{align-items:baseline;border-bottom:1px solid rgba(161,189,225,.08);display:flex;gap:10px;justify-content:space-between;padding:8px 0}
.library-zone-list a{color:#d3e0ee;font-size:13.5px;line-height:1.45}.library-zone-list a:hover{color:#65e6b5}.library-zone-list time{color:#9eb0c4;flex:0 0 auto;font-size:13px}
.library-zone-more{color:#65e6b5;font-size:13px;font-weight:800;margin-top:auto}
.library-zones--wide .library-zone{display:grid;gap:12px 24px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.library-zones--wide .library-zone>header,.library-zones--wide .library-zone-more{grid-column:1/-1}
.library-results{align-items:start;display:grid;gap:18px;grid-template-columns:260px minmax(0,1fr)}
.library-filters{background:#0f2034;border:1px solid rgba(137,187,255,.22);border-radius:14px;padding:16px;position:sticky;top:84px}
.library-filters form{display:grid;gap:12px}.library-filters label{display:grid;font-size:13px;font-weight:800;gap:5px}.library-filters select,.library-filters input{width:100%}
.library-result-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.library-result-head strong{color:#fff;font-size:1.05rem}
.library-active-filters{display:flex;flex-wrap:wrap;gap:6px}.library-active-filters a{background:#16324a;border:1px solid #2f6a8f;border-radius:999px;color:#d6e6f5;font-size:13px;padding:4px 10px}.library-active-filters a span{color:#fca5a5;margin-left:4px}
.library-row{background:#0f2034;border:1px solid rgba(137,187,255,.16);border-radius:12px;display:grid;gap:16px;grid-template-columns:62px minmax(0,1fr);margin-bottom:10px;padding:14px 18px}.library-row:hover{border-color:rgba(101,230,181,.5)}
.library-row-date{align-self:start;background:#16324a;border-radius:10px;display:grid;padding:8px 0;text-align:center}.library-row-date b{color:#fff;font-size:1.35rem}.library-row-date span{color:#98b0c9;font-size:12.5px}
.library-row h2{font-size:1.05rem;line-height:1.4;margin:5px 0}.library-row h2 a{color:#f2f7ff}.library-row h2 a:hover{color:#65e6b5}.library-row p{color:#adc2d8;font-size:13.5px;margin:0 0 6px}
.library-row-tags{display:flex;flex-wrap:wrap;gap:4px}.library-status{background:#fde68a;border-radius:6px;color:#713f12;font-weight:800;padding:1px 7px}
@media(max-width:1100px){.library-zones--grid-three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.library-hero,.library-results,.library-zones--grid-two,.library-zones--grid-three,.library-zones--wide .library-zone{grid-template-columns:1fr}.library-filters{position:static}}
.library-zone-board{display:grid;gap:8px;margin-top:10px}
.library-zone-board article{align-items:center;background:#0a2135;border:1px solid #31536d;border-radius:9px;cursor:grab;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr) auto auto;padding:10px 12px}
.library-zone-board article.is-dragging{opacity:.5}.library-zone-board article.is-hidden-zone{opacity:.55;border-style:dashed}
.library-zone-board strong{color:#fff;display:block}.library-zone-board small{color:#98b0c9}
.library-zone-toggle{align-items:center;display:flex;font-size:13.5px;font-weight:700;gap:6px;white-space:nowrap}
/* Newsroom search, advanced filters and high-contrast chips */
.library-search{display:block;max-width:760px}
.library-search-row{display:flex;flex-wrap:wrap;gap:8px}
.library-search-row input{flex:1 1 280px;min-height:46px;font-size:15px;background:#0a1626;border:1px solid #3a6386;color:#f2f7ff}
.library-search-row input::placeholder{color:#9ab0c7}
.library-search-row input:focus{border-color:#43d4a0;box-shadow:0 0 0 3px rgba(67,212,160,.25);outline:none}
.library-advanced-toggle{align-items:center;background:#13263d;border:1px solid #4a7aa3;border-radius:10px;color:#e6f0fb;display:inline-flex;font-weight:750;gap:8px;min-height:46px;padding:0 16px}
.library-advanced-toggle:hover,.library-advanced-toggle[aria-expanded="true"]{background:#1d3a5a;border-color:#43d4a0;color:#fff}
.library-advanced-toggle svg{fill:none;height:18px;stroke:currentColor;stroke-linecap:round;stroke-width:2.2;width:18px}
.library-advanced-toggle b{background:#43d4a0;border-radius:999px;color:#04241a;font-size:13px;min-width:20px;padding:1px 6px;text-align:center}
.library-advanced{background:rgba(5,14,26,.72);border:1px solid #2f5677;border-radius:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px;padding:16px}
.library-advanced[hidden]{display:none}
.library-advanced label{color:#cfe0f1;display:grid;font-size:13px;font-weight:800;gap:5px;letter-spacing:.02em}
.library-advanced select,.library-advanced input{background:#0a1626;border:1px solid #34597a;border-radius:8px;color:#eef5fd;min-height:40px;width:100%}
.library-advanced-actions{align-items:center;display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}
.library-results{display:block}
.library-section-chips a{background:#122339;border:1px solid #34597a;box-shadow:0 2px 6px rgba(0,0,0,.25);color:#dbe8f5;transition:background .15s,border-color .15s,color .15s}
.library-section-chips a:hover{background:#1b3654;border-color:#43d4a0;color:#fff}
.library-section-chips a.is-active{background:#43d4a0;border-color:#43d4a0;color:#04241a}
.library-view-switch{background:#0a1626;border-color:#34597a;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.library-view-switch a{color:#c9d9ea}.library-view-switch a.is-active{background:linear-gradient(135deg,#2a5f8f,#1f4466);box-shadow:inset 0 0 0 1px rgba(143,200,255,.35);color:#fff}
@media(max-width:900px){.library-advanced{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.library-advanced{grid-template-columns:1fr}.library-advanced-toggle{flex:1 1 100%;justify-content:center}}
/* Button contrast & depth (site-wide) */
button,.button{box-shadow:0 2px 8px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.14);text-shadow:0 1px 1px rgba(0,0,0,.18)}
.button-secondary,button.button-secondary,a.button.button-secondary{background:linear-gradient(180deg,#1a2f4a,#132438);border:1px solid #426d93;box-shadow:0 2px 8px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06);color:#e6f0fb;text-shadow:none}
.button-secondary:hover,button.button-secondary:hover,a.button.button-secondary:hover{background:linear-gradient(180deg,#22405f,#1a3350);border-color:#43d4a0;color:#fff;filter:none}
.button-danger,button.button-danger,a.button.button-danger{background:linear-gradient(135deg,#e5484d,#be2d43);border-color:#f87171;color:#fff}
.button-danger:hover,button.button-danger:hover,a.button.button-danger:hover{background:linear-gradient(135deg,#f05a5f,#cf3550);color:#fff}
button:focus-visible,.button:focus-visible{outline:2px solid #65e6b5;outline-offset:2px}
button:disabled,button[disabled]{background:#1a2738;border-color:#2c405a;box-shadow:none;color:#a3afc0;cursor:not-allowed;filter:none;transform:none}
/* Tag colours are user-chosen: lighten text so dark custom colours stay legible on dark cards */
.tag-card-type,.tag-chip b{color:color-mix(in srgb,var(--tag-color) 45%,#ffffff)}
.tag-chip{color:#eef5fd}

/* Newsroom hero v2: compact stats strip, full-width search; stats give way to the advanced filters */
.library-hero{display:block;padding:22px 26px}
.library-hero-head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px 28px;justify-content:space-between}
.library-hero-text{flex:1 1 420px;min-width:0}
.library-hero h1{font-size:1.85rem;margin:2px 0 6px}
.library-hero .summary{margin:0}
.library-stats{align-self:flex-start;background:rgba(5,14,26,.55);border:1px solid rgba(137,187,255,.2);border-radius:12px;display:flex;flex:0 0 auto;gap:0;grid-template-columns:none;margin:0;overflow:hidden}
.library-stats div{background:none;border:0;border-radius:0;padding:9px 16px;text-align:center}
.library-stats div+div{border-left:1px solid rgba(137,187,255,.16)}
.library-stats dt{color:#9fb6cf;font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.library-stats dd{color:#65e6b5;font-size:1.15rem;font-weight:850;line-height:1.3;margin:2px 0 0;white-space:nowrap}
.library-search{margin-top:16px;max-width:none}
.library-search-row input{flex:1 1 320px}
.library-advanced{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-top:12px}
.library-advanced-actions{border-top:1px solid rgba(137,187,255,.14);grid-column:1/-1;margin-top:2px;padding-top:12px}
.library-hero.is-filtering .summary{display:none}
@media(max-width:720px){.library-stats{width:100%}.library-stats div{flex:1 1 0;padding:8px 6px}.library-stats dd{font-size:1rem}}
/* Article reading page: use the full workspace width (no centred 1030px column, no 700px prose cap) */
.article-reading-page .article-shell{max-width:none;width:100%}
.article-reading-page .article-editorial-header{grid-template-columns:230px minmax(0,1fr)}
.article-reading-page .article-reading-layout{gap:16px;grid-template-columns:230px minmax(0,1fr);justify-content:stretch}
.article-reading-page .article-reading-panel{padding:30px 38px}
.article-reading-page .article-prose{max-width:none}
.article-header-main{padding:28px 36px 24px}
.article-header-main h1,.article-header-main .article-summary{max-width:none}
.article-header-label span{font-size:12px}.article-header-label strong{font-size:15px}.article-header-label small{font-size:13px}
.article-reading-rail dt{font-size:12.5px}.article-reading-rail dd{font-size:13px}
@media (max-width:850px){.article-reading-page .article-shell{max-width:none}.article-reading-page .article-editorial-header,.article-reading-page .article-reading-layout{grid-template-columns:1fr}.article-reading-page .article-reading-panel{padding:22px 18px}.article-header-main{padding:22px 18px}}

/* System configuration: interface language */
.language-choice{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
.language-choice-card{align-items:center;background:#0a2135;border:1px solid #31536d;border-radius:12px;cursor:pointer;display:flex;gap:14px;padding:14px 16px;transition:border-color .15s,background .15s}
.language-choice-card:hover{border-color:#4a7aa3}
.language-choice-card.is-selected,.language-choice-card:has(input:checked){background:#123049;border-color:#43d4a0;box-shadow:inset 0 0 0 1px #43d4a0}
.language-choice-card input{accent-color:#43d4a0;height:18px;width:18px}
.language-choice-flag{background:#16324a;border:1px solid #3d6688;border-radius:8px;color:#e6f0fb;font-size:13px;font-weight:900;letter-spacing:.06em;padding:6px 8px}
.language-choice-card strong{color:#fff;display:block;font-size:15px}.language-choice-card small{color:#9fb6cf;font-size:13px}
.language-choice-note{color:#9fb6cf;display:block;margin-top:10px}
@media(max-width:640px){.language-choice{grid-template-columns:1fr}}

/* Readability: eyebrow labels use a fixed bright accent so a dark configured primary colour never dims them. */
.eyebrow{color:#6ee7b7;letter-spacing:.1em}
small,.muted,.helptext{line-height:1.5}
/* Readability floor for helper text: unstyled <small> (browser default "smaller") and form/config notes */
small{font-size:max(12.5px,.92em)}
label small,.system-config-section small,.system-config-section header p,.language-choice-note,.news-layout-presets small{font-size:12.5px;line-height:1.55}
.system-config-nav a{font-size:13px}
.system-config-section header p{color:#b9cadc}
.system-runtime-strip span{font-size:11px}
.brand small{font-size:10.5px;letter-spacing:.06em}
/* GRC SoA document cards: match the dark workspace instead of white light-theme cards */
.grc-soa-document article{background:linear-gradient(160deg,#122640,#0c1a2c);border:1px solid #2f5677;border-left:4px solid #43d4a0}
.grc-soa-document span,.grc-soa-document small{color:#a9bfd3;font-size:12.5px}
.grc-soa-document strong{color:#f2f7ff}
.tag-state{white-space:nowrap}

/* System configuration: validation summary */
.system-config-errors{background:rgba(229,72,77,.12);border:1px solid #f87171;border-left:4px solid #f87171;border-radius:12px;color:#fde2e2;margin-bottom:16px;padding:14px 18px}
.system-config-errors strong{color:#fff;font-size:15px}.system-config-errors p{color:#fecaca;margin:4px 0 8px}
.system-config-errors ul{display:grid;gap:6px;margin:0;padding-left:18px}.system-config-errors a{color:#fca5a5;font-weight:800;text-decoration:underline}
.system-config-errors span{display:block;font-size:13px}.system-config-errors b{color:#fff}
.system-config-nav a.has-error{color:#fca5a5;box-shadow:inset 3px 0 #f87171}.system-config-nav a.has-error::after{content:" ●";color:#f87171}
.system-config-form label.has-error input,.system-config-form label.has-error select,.system-config-form label.has-error textarea{border-color:#f87171;box-shadow:0 0 0 3px rgba(248,113,113,.2)}
.system-config-form .errorlist{color:#fca5a5;font-size:13px;font-weight:700;list-style:none;margin:6px 0 0;padding:0}
/* Dashboard KPI cards: one border colour and one surface everywhere (VPN, contracts, incidents, logging, IAM,
   GRC, reports, vulnerabilities, documents, planning, tags, tools). Status is carried by the number colour only. */
.stat-card,.grc-kpis article,.vulnerability-kpis article,.docs-kpis article,.planning-kpis article,.report-kpis article,
.iam-kpi-grid article,.external-tool-stats article,.tag-kpis a{
  background:linear-gradient(145deg,#19304e,#10223a)!important;border:1px solid rgba(126,181,255,.38)!important;
  border-radius:12px;box-shadow:0 9px 22px rgba(0,0,0,.22)!important;color:#eaf2fb}
.stat-card:hover,.grc-kpis article:hover,.vulnerability-kpis article:hover,.docs-kpis article:hover,.planning-kpis article:hover,
.report-kpis article:hover,.iam-kpi-grid article:hover,.external-tool-stats article:hover,.tag-kpis a:hover{border-color:#74b3ff!important}
.tag-kpis a.is-active{box-shadow:inset 0 -3px 0 #65e6b5,0 9px 22px rgba(0,0,0,.22)!important}
/* semantic number colours */
.vpn-warning strong,.contract-warning strong,.vulnerability-kpis .is-warning strong,.docs-kpis .warning strong,.iam-risk-card strong{color:#fbbf24!important}
.vpn-danger strong,.contract-danger strong,.incident-stat-critical strong,.vulnerability-kpis .is-critical strong,.docs-kpis .danger strong{color:#fb7185!important}
/* Layout rhythm: every block in the main workspace is separated by the same 20px gap, whatever margins
   individual sections declare, so borders of consecutive panels never touch. */
.workspace-main{display:flex;flex-direction:column;gap:20px}
.workspace-main > *{margin-top:0!important;margin-bottom:0!important}
/* Compact page heroes: less vertical padding and a slightly smaller title so KPIs stay above the fold. */
.workspace-main > .page-heading{gap:12px;padding:22px 26px}
.workspace-main > .page-heading h1{font-size:clamp(24px,2.4vw,32px);line-height:1.15;margin:2px 0 4px}
.workspace-main > .page-heading .summary{margin:0}
/* Stacked bordered lists: same breathing room as other card grids */
.news-category-satellites,.landing-placement-board,.library-zone-board{gap:12px}

/* Security News section pages: visitor-selectable article layouts */
.news-section-tools{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}
.news-section-tools form{display:flex;flex:1 1 360px;gap:8px}.news-section-tools form input[name=q]{flex:1;min-height:42px}
.news-layout-switch{align-items:center;background:#0a1626;border:1px solid #34597a;border-radius:11px;display:inline-flex;gap:2px;padding:3px}
.news-layout-switch > span{color:#b4c6da;font-size:12px;font-weight:800;letter-spacing:.06em;padding:0 8px;text-transform:uppercase}
.news-layout-switch a{align-items:center;border-radius:8px;color:#c9d9ea;display:inline-flex;font-size:13px;font-weight:750;gap:6px;padding:7px 10px}
.news-layout-switch a:hover{background:#16324a;color:#fff}
.news-layout-switch a.is-active{background:linear-gradient(135deg,#2a5f8f,#1f4466);box-shadow:inset 0 0 0 1px rgba(143,200,255,.35);color:#fff}
.news-layout-switch svg{fill:none;height:16px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:16px}
.news-section-list{gap:14px}
.news-section-list > article{transition:border-color .15s,transform .15s}
.news-section-list > article:hover{border-color:#5d8fbd}
.news-section-list p{font-size:13.5px}
/* list (default): full-width rows */
.news-layout--list > article{display:flex;align-items:center}
/* grid: three-column cards */
.news-layout--grid,.news-layout--magazine{grid-template-columns:repeat(3,minmax(0,1fr))}
.news-layout--grid > article,.news-layout--magazine > article{display:flex;flex-direction:column;gap:12px;justify-content:space-between}
.news-layout--grid h2,.news-layout--magazine h2,.news-layout--columns h2{font-size:16.5px;line-height:1.35}
.news-layout--grid p,.news-layout--magazine p{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;overflow:hidden}
.news-layout--grid > article:hover,.news-layout--magazine > article:hover{transform:translateY(-2px)}
/* two columns of rows */
.news-layout--columns{grid-template-columns:repeat(2,minmax(0,1fr))}
.news-layout--columns > article{display:flex;flex-direction:column;gap:10px;justify-content:space-between}
.news-layout--columns p{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden}
/* magazine: first article featured across two columns and two rows */
.news-layout--magazine > article.is-featured{background:linear-gradient(145deg,#1b3a5c,#0c2238);border-color:#4d7fab;grid-column:span 2;grid-row:span 2;padding:26px 28px}
.news-layout--magazine > article.is-featured h2{font-size:clamp(20px,2vw,26px);line-height:1.25}
.news-layout--magazine > article.is-featured p{-webkit-line-clamp:7;font-size:14.5px}
/* compact: dense headline list */
.news-layout--compact{gap:0;background:linear-gradient(145deg,#142d49,#091c30);border:1px solid #315777;border-radius:12px;overflow:hidden}
.news-layout--compact > article{align-items:center;background:none;border:0;border-bottom:1px solid rgba(137,187,255,.14);border-radius:0;display:flex;padding:12px 18px}
.news-layout--compact > article:last-child{border-bottom:0}
.news-layout--compact > article > div{align-items:baseline;display:grid;flex:1;gap:4px 16px;grid-template-columns:minmax(120px,170px) minmax(0,1fr) auto}
.news-layout--compact h2{font-size:15px;margin:0}
.news-layout--compact .news-meta{margin:0;white-space:nowrap}
.news-layout--compact .news-read-link{display:none}
.news-layout--compact > article:hover{background:rgba(105,167,255,.06)}
@media(max-width:1100px){.news-layout--grid,.news-layout--magazine{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.news-layout--grid,.news-layout--magazine,.news-layout--columns{grid-template-columns:1fr}
  .news-layout--magazine > article.is-featured{grid-column:auto;grid-row:auto}
  .news-layout-switch b{display:none}.news-layout--compact > article > div{grid-template-columns:1fr}}
.news-layout--grid .news-read-link,.news-layout--magazine .news-read-link,.news-layout--columns .news-read-link{align-self:flex-start}
/* magazine lead story spans the full row instead of two rows */
.news-layout--magazine > article.is-featured{grid-column:1/-1;grid-row:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px}
.news-layout--magazine > article.is-featured p{-webkit-line-clamp:4;max-width:1000px}
.news-layout--compact > article > div{grid-template-columns:minmax(150px,240px) minmax(0,1fr) auto}
.news-layout--compact .news-section-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.news-layout--magazine > article.is-featured{grid-template-columns:1fr}}

/* Shared article collection (section, tag, category, library list) */
.article-collection-toolbar{display:flex;justify-content:flex-end}
.library-result-head{justify-content:space-between}
.library-result-head .news-layout-switch{order:2}
.news-section-list .news-meta .tag-chip{margin:0}

/* Contracts & Vendors workspace */
.contract-kpis{display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr))}
.contract-kpis .stat-card{color:inherit;display:grid;gap:4px}.contract-kpis .stat-card strong{font-size:1.7rem;line-height:1}.contract-kpis .stat-card span{color:#c3d3e4;font-size:13px}
.contract-overview-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr)}
.contract-attention-list{display:grid;gap:10px;margin-top:10px}
.contract-attention-item{align-items:center;background:#0f2034;border:1px solid rgba(126,181,255,.28);border-radius:11px;color:inherit;display:flex;gap:14px;padding:10px 14px}
.contract-attention-item:hover{border-color:#74b3ff}
.contract-countdown{align-items:center;border-radius:10px;display:grid;flex:0 0 72px;justify-items:center;padding:6px 4px}
.contract-countdown b{font-size:1.35rem;line-height:1.1}.contract-countdown small{font-size:11px;opacity:.85}
.contract-countdown.is-notice{background:rgba(251,191,36,.14);color:#fcd34d}.contract-countdown.is-urgent{background:rgba(251,113,133,.16);color:#fda4af}.contract-countdown.is-expired{background:rgba(229,72,77,.22);color:#fecaca}
.contract-attention-text{display:grid;min-width:0}.contract-attention-text strong{color:#f2f7ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-attention-text small{color:#b4c6da}
.contract-side{display:grid;gap:10px;align-content:start}.contract-side h3{color:#fff;font-size:14px;margin:8px 0 0}
.contract-reminder-state{border-radius:10px;font-size:13px;line-height:1.5;margin:0;padding:10px 12px}
.contract-reminder-state b{border-radius:999px;font-size:11px;margin-right:6px;padding:2px 8px;text-transform:uppercase}
.contract-reminder-state.is-on{background:rgba(67,212,160,.1);border:1px solid rgba(67,212,160,.4)}.contract-reminder-state.is-on b{background:#43d4a0;color:#04241a}
.contract-reminder-state.is-off{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.4)}.contract-reminder-state.is-off b{background:#fbbf24;color:#3b2a05}
.contract-reminder-state a{color:#9fd0ff;text-decoration:underline}
.contract-renewal-mini{display:grid;gap:6px}.contract-renewal-mini a{align-items:center;color:#dbe8f5;display:flex;justify-content:space-between}
.contract-filters{align-items:end;display:grid;gap:10px;grid-template-columns:2fr repeat(6,minmax(0,1fr));margin-bottom:14px}
.contract-filters label{display:grid;font-size:12px;font-weight:800;gap:5px}.contract-filters select,.contract-filters input{width:100%}
.contract-filter-actions{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}
.contract-table td small{color:#a9bdd2;display:block;font-size:12.5px;margin-top:2px}
.contract-table .contract-title{color:#f2f7ff;font-weight:800}.contract-table th a{color:inherit}
.contract-row{cursor:pointer}.contract-row:hover td{background:rgba(105,167,255,.07)}
.contract-row.is-expired td:first-child{box-shadow:inset 3px 0 #fb7185}.contract-row.is-urgent td:first-child{box-shadow:inset 3px 0 #fb7185}.contract-row.is-notice td:first-child{box-shadow:inset 3px 0 #fbbf24}
.contract-term span:first-child{display:block;white-space:nowrap}
.contract-progress{background:rgba(137,187,255,.16);border-radius:999px;display:block;height:6px;margin-top:6px;overflow:hidden;width:150px}
.contract-progress i{background:linear-gradient(90deg,#43d4a0,#69a7ff);display:block;height:100%}
.contract-progress--large{height:10px;width:100%}
.contract-days{border-radius:999px;display:inline-block;font-size:12px;font-weight:850;padding:3px 10px;white-space:nowrap}
.contract-days.is-ok{background:rgba(67,212,160,.14);color:#86efc5}.contract-days.is-notice{background:rgba(251,191,36,.16);color:#fcd34d}
.contract-days.is-urgent{background:rgba(251,113,133,.18);color:#fda4af}.contract-days.is-expired{background:rgba(229,72,77,.24);color:#fecaca}
.contract-status-board{align-items:center;background:linear-gradient(145deg,#19304e,#10223a);border:1px solid rgba(126,181,255,.38);border-radius:14px;display:grid;gap:22px;grid-template-columns:auto minmax(0,1fr) auto;padding:18px 22px}
.contract-countdown-big{border-radius:14px;display:grid;justify-items:center;min-width:130px;padding:12px 16px;background:rgba(67,212,160,.12);color:#86efc5}
.contract-countdown-big b{font-size:2.6rem;line-height:1}.contract-countdown-big span{font-size:13px;font-weight:700}
.contract-countdown-big.is-notice{background:rgba(251,191,36,.14);color:#fcd34d}.contract-countdown-big.is-urgent,.contract-countdown-big.is-expired{background:rgba(251,113,133,.16);color:#fda4af}.contract-countdown-big.is-closed{background:rgba(148,163,184,.14);color:#cbd5e1}
.contract-timeline-dates{display:flex;justify-content:space-between;gap:12px}.contract-timeline-dates span{color:#f2f7ff;display:grid;font-weight:800}.contract-timeline-dates small{color:#a9bdd2;font-size:12px;font-weight:600}
.contract-timeline p{margin:8px 0 0}
.contract-quick-facts{display:grid;gap:8px;margin:0}.contract-quick-facts dt{color:#a9bdd2;font-size:12px}.contract-quick-facts dd{color:#fff;font-weight:800;margin:0}
.contract-detail-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start}
.contract-detail-main,.contract-detail-side{display:grid;gap:18px}
.contract-partner-card h2{margin:4px 0}.contract-partner-card h2 a{color:#fff}
.contract-contact{background:#0f2034;border:1px solid rgba(126,181,255,.24);border-radius:10px;display:grid;gap:3px;margin:10px 0;padding:10px 12px}
.contract-contact strong{color:#fff}.contract-contact small{color:#a9bdd2}.contract-contact a{color:#9fd0ff}
.contract-contact.is-primary{border-color:rgba(67,212,160,.5)}.vendor-primary{background:#43d4a0;border-radius:999px;color:#04241a;font-size:10.5px;margin-left:6px;padding:1px 7px}
.contract-milestones,.contract-reminder-log{display:grid;gap:6px;list-style:none;margin:10px 0;padding:0}
.contract-milestones li,.contract-reminder-log li{align-items:center;border-bottom:1px solid rgba(137,187,255,.12);display:flex;gap:10px;justify-content:space-between;padding:5px 0}
.contract-milestones li span,.contract-reminder-log li span{color:#a9bdd2;font-size:12.5px}.contract-milestones li.is-passed{opacity:.55}
.contract-reminder-log li{display:grid;grid-template-columns:auto 1fr;gap:2px 10px}.contract-reminder-log li small{grid-column:2;color:#a9bdd2}
.contract-reminder-log li.is-sent b{color:#86efc5}.contract-reminder-log li.is-failed b{color:#fda4af}
.vendor-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.vendor-card{background:linear-gradient(145deg,#19304e,#10223a);border:1px solid rgba(126,181,255,.38);border-radius:12px;color:inherit;display:grid;gap:10px;padding:14px 16px}
.vendor-card:hover{border-color:#74b3ff}.vendor-card.is-inactive{opacity:.6}
.vendor-card header{align-items:center;display:flex;gap:12px}.vendor-card strong{color:#fff;display:block}.vendor-card small{color:#a9bdd2}
.vendor-avatar{align-items:center;background:#16324a;border:1px solid #3d6688;border-radius:10px;color:#e6f0fb;display:inline-flex;flex:0 0 42px;font-weight:900;height:42px;justify-content:center}
.vendor-contact-line{color:#c3d3e4;font-size:13px;margin:0}.vendor-contact-line b{color:#fff}
.vendor-card footer{border-top:1px solid rgba(137,187,255,.14);color:#a9bdd2;display:flex;font-size:12.5px;gap:14px;padding-top:8px}
.vendor-facts{display:grid;gap:4px;margin:8px 0 0}.vendor-facts dt{color:#a9bdd2;font-size:12px}.vendor-facts dd{margin:0 0 6px}.vendor-facts a{color:#9fd0ff}
.vendor-contact-forms{display:grid;gap:12px}.vendor-contact-form{background:#0f2034;border:1px solid rgba(126,181,255,.24);border-radius:12px;margin:0;padding:14px}
@media(max-width:1200px){.contract-kpis{grid-template-columns:repeat(3,1fr)}.contract-filters{grid-template-columns:repeat(3,1fr)}.contract-filter-search{grid-column:1/-1}}
@media(max-width:900px){.contract-overview-grid,.contract-detail-grid,.contract-status-board{grid-template-columns:1fr}.contract-kpis{grid-template-columns:repeat(2,1fr)}}

/* Team projects */
.project-kpis{display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr))}
.project-kpis .stat-card{color:inherit;display:grid;gap:4px}.project-kpis .stat-card strong{font-size:1.7rem;line-height:1}.project-kpis .stat-card span{color:#c3d3e4;font-size:13px}
.project-overview-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr)}
.project-period-form{align-items:end;display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.project-period-form label{display:grid;font-size:12px;font-weight:800;gap:4px}.project-period-form select,.project-period-form input{min-width:90px}
.project-period-form .news-layout-switch button{background:none;border:0;border-radius:8px;box-shadow:none;color:#c9d9ea;font-size:13px;padding:7px 10px}
.project-period-form .news-layout-switch button.is-active{background:linear-gradient(135deg,#2a5f8f,#1f4466);color:#fff}
.project-chart{height:260px;position:relative}
.project-my-tasks{display:grid;gap:8px;margin-top:10px}
.project-my-task{background:#0f2034;border:1px solid rgba(126,181,255,.24);border-radius:10px;color:inherit;display:grid;gap:3px;padding:9px 12px}
.project-my-task:hover{border-color:#74b3ff}.project-my-task strong{color:#f2f7ff}.project-my-task small{color:#a9bdd2}
.project-my-task.is-overdue{border-left:3px solid #fb7185}.project-my-task .task-status{justify-self:start}
.project-filters{grid-template-columns:2fr repeat(3,minmax(0,1fr))}
.project-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.project-card{background:linear-gradient(145deg,#19304e,#10223a);border:1px solid rgba(126,181,255,.38);border-radius:12px;color:inherit;display:grid;gap:10px;padding:16px}
.project-card:hover{border-color:#74b3ff;transform:translateY(-2px)}.project-card.is-overdue{box-shadow:inset 3px 0 #fb7185}
.project-card header,.project-card footer{align-items:center;display:flex;justify-content:space-between;gap:8px}
.project-card h3{color:#fff;font-size:16.5px;line-height:1.35;margin:0}.project-card p{color:#b4c6da;font-size:13px;margin:0}
.project-code{color:#9fd0ff;font-size:12px;font-weight:800;letter-spacing:.04em}
.project-card-meta{align-items:center;color:#c3d3e4;display:flex;font-size:12.5px;gap:8px;justify-content:space-between}
.project-due{color:#a9bdd2;font-size:12.5px}
.project-progress{background:rgba(137,187,255,.16);border-radius:999px;height:7px;overflow:hidden}
.project-progress i{background:linear-gradient(90deg,#43d4a0,#69a7ff);display:block;height:100%}
.project-progress--large{height:11px;margin:8px 0 12px}
.project-status,.task-status,.task-priority,.project-role-badge{border:1px solid transparent;border-radius:999px;display:inline-flex;font-size:12px;font-weight:850;padding:3px 10px;white-space:nowrap}
.project-status-planning,.task-status-todo{background:#1e3149;border-color:#5b7fa3;color:#dbe8f5}
.project-status-active,.task-status-in_progress{background:#163c63;border-color:#69a7ff;color:#d7eaff}
.task-status-review{background:#3b2f63;border-color:#a78bfa;color:#ede9fe}
.project-status-on_hold,.task-status-blocked{background:#4b380c;border-color:#fbbf24;color:#fff0af}
.project-status-completed,.task-status-done{background:#0d4939;border-color:#43d4a0;color:#c5ffec}
.project-status-cancelled{background:#3a2430;border-color:#9f6b80;color:#f3d6e1}
.task-priority-low{background:#1e2c3d;color:#a9bdd2}.task-priority-medium{background:#163c63;color:#bfdbfe}
.task-priority-high{background:#4b380c;color:#fde68a}.task-priority-urgent{background:#5b1626;color:#fecdd3}
.project-role-badge{background:#16324a;border-color:#3d6688;color:#e6f0fb}
.avatar{align-items:center;background:#244a70;border:2px solid #0f2034;border-radius:50%;color:#fff;display:inline-flex;font-size:10.5px;font-weight:900;height:28px;justify-content:center;width:28px}
.avatar.is-owner{background:#2f7a5f}.avatar-stack{display:inline-flex}.avatar-stack .avatar+.avatar{margin-left:-7px}
.project-summary-grid{display:grid;gap:18px;grid-template-columns:minmax(260px,1fr) minmax(0,1.4fr) minmax(240px,1fr)}
.project-progress-big{align-items:baseline;display:flex;gap:10px;margin-top:6px}.project-progress-big b{color:#65e6b5;font-size:2.4rem;line-height:1}.project-progress-big span{color:#b4c6da}
.project-mini-stats{display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin:0}.project-mini-stats dt{color:#a9bdd2;font-size:12px}.project-mini-stats dd{color:#fff;font-size:1.25rem;font-weight:850;margin:0}
.project-mini-stats dd.is-bad,.is-bad{color:#fda4af!important}
.project-goals{display:grid;gap:6px;margin:8px 0;padding-left:18px}.project-goals li{color:#e6f0fb}
.project-description{color:#b4c6da;font-size:13.5px}
.project-milestone-list,.project-milestone-manage{display:grid;gap:6px;list-style:none;margin:8px 0;padding:0}
.project-milestone-list li,.project-milestone-manage li{align-items:center;border-bottom:1px solid rgba(137,187,255,.12);display:flex;gap:10px;padding:6px 0}
.project-milestone-list span,.project-milestone-manage span{color:#a9bdd2;font-size:12.5px;min-width:78px}
.project-milestone-list li.is-done b,.project-milestone-manage li.is-done b{color:#86efc5;text-decoration:line-through}
.project-milestone-manage form{display:flex;gap:6px;margin-left:auto}
.project-tabs{border-bottom:1px solid rgba(137,187,255,.2);display:flex;flex-wrap:wrap;gap:4px}
.project-tabs a{border-bottom:3px solid transparent;color:#c9d9ea;font-weight:800;padding:10px 14px}
.project-tabs a.is-active{border-bottom-color:#43d4a0;color:#fff}.project-tabs a b{background:#16324a;border-radius:999px;font-size:11px;margin-left:4px;padding:1px 7px}
.project-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}
.project-quick-add{display:flex;flex:1 1 360px;gap:8px}.project-quick-add input{flex:1;min-height:42px}
.project-assignee-filter{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.project-assignee-filter span{color:#a9bdd2;font-size:12.5px;font-weight:800}
.project-assignee-filter a{border:1px solid #34597a;border-radius:999px;color:#dbe8f5;font-size:12.5px;padding:5px 12px}.project-assignee-filter a.is-active{background:#43d4a0;border-color:#43d4a0;color:#04241a}
.kanban{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(220px,1fr));overflow-x:auto;padding-bottom:6px}
.kanban-column{background:rgba(8,17,31,.55);border:1px solid rgba(126,181,255,.2);border-radius:12px;display:flex;flex-direction:column;min-height:180px;padding:10px}
.kanban-column header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.kanban-column header b{color:#a9bdd2}
.kanban-cards{display:grid;gap:10px;align-content:start}.kanban-empty{color:#7f97b2;font-size:12.5px;text-align:center}
.task-card{background:linear-gradient(145deg,#19304e,#10223a);border:1px solid rgba(126,181,255,.3);border-left-width:4px;border-radius:10px;display:grid;gap:8px;padding:10px 12px}
.task-card:hover{border-color:#74b3ff}.task-card.is-overdue{box-shadow:0 0 0 1px rgba(251,113,133,.45)}
.task-priority-edge-low{border-left-color:#5b7fa3}.task-priority-edge-medium{border-left-color:#69a7ff}.task-priority-edge-high{border-left-color:#fbbf24}.task-priority-edge-urgent{border-left-color:#fb7185}
.task-card-title{color:#f2f7ff;font-weight:800;line-height:1.35}
.task-card-meta{align-items:center;color:#b4c6da;display:flex;flex-wrap:wrap;font-size:12px;gap:6px}
.task-card footer{align-items:center;display:flex;gap:6px;justify-content:space-between}.task-card footer select{font-size:12px;max-width:130px;min-height:30px;padding:3px 6px}
.task-unassigned{font-size:12px}
.project-task-table tr.is-overdue td:first-child{box-shadow:inset 3px 0 #fb7185}.task-status-select{font-size:12.5px;min-height:32px}
.gantt{display:grid;gap:4px;overflow-x:auto}
.gantt-head,.gantt-row{display:grid;grid-template-columns:minmax(200px,260px) minmax(560px,1fr);align-items:center}
.gantt-head{border-bottom:1px solid rgba(137,187,255,.2);padding-bottom:6px}
.gantt-label{color:#dbe8f5;display:grid;font-size:13px;padding-right:12px}.gantt-label a{color:#f2f7ff;font-weight:700}.gantt-label small{color:#a9bdd2;font-size:11.5px}
.gantt-track{height:30px;position:relative;background:repeating-linear-gradient(90deg,transparent 0 59px,rgba(137,187,255,.06) 59px 60px)}
.gantt-head .gantt-track{height:22px;background:none}
.gantt-tick{color:#a9bdd2;font-size:11.5px;position:absolute;top:2px;white-space:nowrap;border-left:1px solid rgba(137,187,255,.3);padding-left:4px}
.gantt-bar{background:#2c4a6b;border-radius:6px;display:block;height:16px;overflow:hidden;position:absolute;top:7px;min-width:6px}
.gantt-bar i{background:rgba(255,255,255,.35);display:block;height:100%}
.gantt-bar.task-bar-todo{background:#5b7fa3}.gantt-bar.task-bar-in_progress{background:#3b82f6}.gantt-bar.task-bar-review{background:#8b5cf6}
.gantt-bar.task-bar-blocked{background:#d97706}.gantt-bar.task-bar-done{background:#10b981}.gantt-bar.is-overdue{box-shadow:0 0 0 2px #fb7185}
.gantt-bar.is-estimated{opacity:.7;background-image:repeating-linear-gradient(45deg,transparent 0 6px,rgba(255,255,255,.12) 6px 12px)}
.gantt-row--project .gantt-bar--project{background:rgba(67,212,160,.25);border:1px solid #43d4a0;height:10px;top:10px}
.gantt-milestone{background:#fbbf24;height:12px;position:absolute;top:9px;transform:translateX(-6px) rotate(45deg);width:12px;z-index:2}
.gantt-milestone.is-done{background:#43d4a0}
.gantt-today{border-left:2px dashed #fb7185;bottom:-2px;position:absolute;top:-2px;z-index:1}
.project-members-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr)}
.project-permission-list{display:grid;gap:8px;margin:8px 0 14px;padding-left:18px;color:#c3d3e4;font-size:13.5px}.project-permission-list b{color:#fff}
.project-inline-form{align-items:end;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.project-inline-form label{display:grid;font-size:12px;font-weight:800;gap:4px}
.project-inline-form--stack{display:grid}.project-inline-form--stack select{width:100%}
.project-activity{display:grid;gap:0;list-style:none;margin:8px 0;padding:0}
.project-activity li{border-bottom:1px solid rgba(137,187,255,.1);display:grid;gap:12px;grid-template-columns:120px 1fr;padding:8px 0}
.project-activity li span{color:#a9bdd2;font-size:12.5px}.project-activity p{margin:0;color:#dbe8f5}.project-activity a{color:#9fd0ff}
.project-activity--compact li{grid-template-columns:80px 1fr}
.subtask-list{display:grid;gap:6px;list-style:none;margin:10px 0;padding:0}
.subtask-list li{align-items:center;background:#0f2034;border:1px solid rgba(126,181,255,.2);border-radius:9px;display:flex;gap:10px;padding:7px 10px}
.subtask-list li.is-done .subtask-title{color:#86efc5;text-decoration:line-through}
.subtask-check{align-items:center;background:#0a1626;border:2px solid #5b7fa3;border-radius:6px;box-shadow:none;color:#04241a;display:inline-flex;height:22px;justify-content:center;padding:0;width:22px}
li.is-done .subtask-check{background:#43d4a0;border-color:#43d4a0}
.subtask-title{flex:1}.subtask-remove{background:none;border:0;box-shadow:none;color:#fda4af;font-size:18px;padding:0 6px}
.task-comments{display:grid;gap:12px;list-style:none;margin:10px 0;padding:0}.task-comments li{display:flex;gap:10px}.task-comments p{margin:4px 0 0;color:#dbe8f5}
.task-comment-form{display:grid;gap:8px}
.task-status-buttons{display:grid;gap:6px;margin-top:8px}
.task-status-btn{background:#0f2034!important;border:1px solid #34597a!important;box-shadow:none!important;color:#dbe8f5;justify-content:flex-start;text-shadow:none}
.task-status-btn.is-current{background:#16324a!important;border-color:#43d4a0!important;color:#fff}
.task-assignees{display:grid;gap:8px;list-style:none;margin:8px 0;padding:0}.task-assignees li{align-items:center;display:flex;gap:8px}.task-assignees form{margin-left:auto}
.task-assignee-picker ul,.task-assignee-picker > div{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));list-style:none;margin:0;padding:0}
.task-assignee-picker label{align-items:center;background:#0f2034;border:1px solid rgba(126,181,255,.24);border-radius:9px;display:flex;gap:8px;padding:8px 10px}
.project-danger-zone{border:1px solid rgba(248,113,113,.4);border-radius:12px;margin-top:20px;padding:14px 16px}.project-danger-zone h2{color:#fda4af;font-size:15px;margin:0}
@media(max-width:1200px){.project-kpis{grid-template-columns:repeat(3,1fr)}.project-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.project-overview-grid,.project-members-grid,.project-summary-grid{grid-template-columns:1fr}.project-kpis{grid-template-columns:repeat(2,1fr)}.project-filters{grid-template-columns:1fr}}
.project-assignee-filter select,.project-milestone-manage select,.project-members-grid td select{width:auto;min-width:150px}
.project-task-table .task-status-select{width:auto;min-width:130px}

/* Projects: register page, hover card, dashboard attention list */
.project-list-filters{grid-template-columns:2fr repeat(4,minmax(0,1fr))}
.project-list-table td small{color:#a9bdd2;display:block;font-size:12.5px;margin-top:2px}
.project-list-row{cursor:pointer}.project-list-row:hover td,.project-list-row:focus td{background:rgba(105,167,255,.08)}
.project-list-row:focus{outline:2px solid #65e6b5;outline-offset:-2px}
.project-list-row.is-overdue td:first-child{box-shadow:inset 3px 0 #fb7185}
.project-list-progress{min-width:150px}.project-list-progress .project-progress{display:inline-block;vertical-align:middle;width:100px}.project-list-progress b{color:#e6f0fb;margin-left:8px}
.project-hovercard{background:linear-gradient(160deg,#16304d,#0c1a2c);border:1px solid #4a7aa3;border-radius:14px;box-shadow:0 18px 44px rgba(0,0,0,.5);display:grid;gap:10px;padding:14px 16px;pointer-events:none;position:fixed;z-index:200}
.project-hovercard[hidden]{display:none}
.hovercard-head{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.hovercard-head strong{color:#fff;display:block;font-size:15px}
.hovercard-facts{color:#c3d3e4;display:flex;flex-wrap:wrap;font-size:12.5px;gap:6px 14px}.hovercard-facts b{color:#65e6b5;font-size:15px}
.hovercard-statuses{align-items:center;display:flex;flex-wrap:wrap;gap:4px}.hovercard-statuses .task-status{padding:1px 9px}.hovercard-statuses small{margin-left:6px}
.hovercard-goal{color:#dbe8f5;font-size:13px;margin:0}
.mini-gantt{border-top:1px solid rgba(137,187,255,.16);display:grid;gap:4px;padding-top:8px}
.mini-gantt-row{align-items:center;display:grid;gap:8px;grid-template-columns:150px minmax(0,1fr)}
.mini-gantt-label{color:#c3d3e4;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-gantt-track{background:rgba(137,187,255,.06);border-radius:5px;height:16px;position:relative}
.mini-gantt-track .gantt-bar{height:10px;top:3px}.mini-gantt-track .gantt-milestone{height:9px;top:3px;width:9px}
.hovercard-foot{align-items:center;display:flex;gap:10px;justify-content:space-between}.hovercard-foot small{color:#c3d3e4}
.project-attention{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-top:10px}
.project-attention-item{background:#0f2034;border:1px solid rgba(126,181,255,.28);border-radius:11px;color:inherit;display:grid;gap:6px;padding:12px 14px}
.project-attention-item:hover{border-color:#74b3ff}.project-attention-item strong{color:#f2f7ff}.project-attention-item small{color:#b4c6da}
@media(max-width:1100px){.project-list-filters{grid-template-columns:1fr 1fr}}

/* System configuration: branding */
.branding-grid{display:grid;gap:18px;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);align-items:start}
.branding-preview{background:#0a1626;border:1px solid #34597a;border-radius:12px;display:grid;gap:12px;padding:14px}
.branding-preview-sidebar{align-items:center;background:linear-gradient(160deg,#0d1a2c,#091321);border:1px solid rgba(137,187,255,.2);border-radius:10px;display:flex;gap:12px;padding:12px}
.branding-preview-sidebar img{background:#102846;border:1px solid rgba(105,167,255,.25);border-radius:12px;height:58px;object-fit:contain;padding:6px;width:58px}
.branding-preview-sidebar strong{color:#fff;display:block;font-size:15px}.branding-preview-sidebar small{color:#a2afc4;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.branding-preview-footer{border-top:1px solid rgba(137,187,255,.16);color:#a9bdd2;display:grid;font-size:12px;gap:2px;padding-top:8px}
@media(max-width:900px){.branding-grid{grid-template-columns:1fr}}
.project-list-filters .config-check,.project-filters .config-check{align-self:end;min-height:42px;padding:8px 12px}

/* Sidebar: highlight the section of the current page without opening its flyout */
.nav-group--current > summary{background:rgba(67,212,160,.1);box-shadow:inset 3px 0 #43d4a0}
.nav-group--current > summary .nav-label{color:#fff}
.nav-group--current > summary .nav-icon{border-color:rgba(67,212,160,.5)}

/* Project Gantt (shared overview + timeline tab) */
.gantt-overview > summary{cursor:pointer;list-style:none}.gantt-overview > summary::-webkit-details-marker{display:none}
.gantt-collapse-hint{color:#9fd0ff;font-size:12.5px;font-weight:700}
.gantt-overview:not([open]) > summary{margin:0}
.gantt-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin:8px 0 12px}
.gantt-toolbar .news-layout-switch a{font-size:12.5px}
.gantt-legend{align-items:center;color:#c3d3e4;display:flex;flex-wrap:wrap;font-size:12px;gap:6px 14px}
.gantt-legend i{border-radius:3px;display:inline-block;height:10px;margin-right:6px;vertical-align:middle;width:18px}
.gantt-legend .task-bar-todo{background:#5b7fa3}.gantt-legend .task-bar-in_progress{background:#3b82f6}.gantt-legend .task-bar-review{background:#8b5cf6}
.gantt-legend .task-bar-blocked{background:#d97706}.gantt-legend .task-bar-done{background:#10b981}
.gantt-legend .legend-milestone{background:#fbbf24;height:9px;transform:rotate(45deg);width:9px}.gantt-legend .legend-today{border-left:2px dashed #fb7185;border-radius:0;width:2px}
.gantt--full .gantt-head,.gantt--full .gantt-row{grid-template-columns:minmax(220px,300px) minmax(640px,1fr)}
.gantt--full .gantt-row{border-bottom:1px solid rgba(137,187,255,.06);min-height:40px}
.gantt--full .gantt-row:hover{background:rgba(105,167,255,.05)}
.gantt--full .gantt-track{height:34px}
.gantt--full .gantt-bar{height:20px;top:7px}
.gantt-bar em{color:#fff;font-size:10.5px;font-style:normal;font-weight:800;left:6px;position:absolute;top:3px;text-shadow:0 1px 1px rgba(0,0,0,.4)}
.gantt-weekend{background:rgba(137,187,255,.05);bottom:0;position:absolute;top:0}
.gantt-row--milestones .gantt-track{height:44px}
.gantt-row--milestones .gantt-milestone{top:6px}
.gantt-milestone-label{color:#fde68a;font-size:11px;position:absolute;top:22px;transform:translateX(-50%);white-space:nowrap}
.gantt-group-head{align-items:center;background:rgba(22,50,74,.6);border-radius:8px;color:#e6f0fb;display:flex;font-size:12.5px;font-weight:800;gap:8px;margin-top:8px;padding:6px 10px}
.gantt-group-head b{background:#0f2034;border-radius:999px;color:#9fd0ff;font-size:11px;padding:1px 8px}
.avatar--xs{border-width:1px;font-size:8.5px;height:18px;margin-right:2px;width:18px}
.gantt-footnote{font-size:12.5px;margin:10px 0 0}
.gantt-weekend{background:rgba(137,187,255,.028)}

/* Project page: compact header + denser Gantt so the chart and board get the space */
.project-header{background:linear-gradient(145deg,#182b46,#0e1d33);border:1px solid rgba(137,187,255,.38);border-radius:14px;box-shadow:0 10px 26px rgba(0,0,0,.26);display:grid;gap:10px;padding:14px 18px}
.project-header-top{align-items:center;display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:space-between}
.project-header-title{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.project-header-title h1{color:#f8fbff;font-size:clamp(19px,1.7vw,24px);line-height:1.2;margin:0}
.project-header-actions .button,.project-header-actions button{padding:7px 12px}
.project-header-stats{align-items:stretch;border-top:1px solid rgba(137,187,255,.14);display:flex;flex-wrap:wrap;gap:6px 22px;margin:0;padding-top:10px}
.project-header-stats > div{display:grid;gap:2px;min-width:0}
.project-header-stats dt{color:#a9bdd2;font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.project-header-stats dd{align-items:center;color:#f2f7ff;display:flex;flex-wrap:wrap;font-size:14px;font-weight:750;gap:6px;margin:0}
.project-header-progress dd .project-progress{display:inline-block;width:120px}
.project-header-progress dd b{color:#65e6b5;font-size:16px}.project-header-progress dd small{color:#b4c6da;font-weight:600}
.project-goals-inline{color:#c3d3e4;font-size:13px;margin:0}
.project-goals-inline summary{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-goals-inline summary b{color:#fff}.project-goals-inline[open] summary span{display:none}
.project-goals-inline .project-goals{margin:6px 0}.project-goals-empty a{color:#9fd0ff}
.gantt-overview{padding:12px 16px}
.gantt-overview-head{align-items:center;cursor:pointer;display:flex;justify-content:space-between;list-style:none}
.gantt-overview-head::-webkit-details-marker{display:none}.gantt-overview-head h2{font-size:15px;margin:0}
.gantt-overview .gantt-toolbar{margin:6px 0 8px}
.gantt-overview .gantt--full .gantt-row{min-height:32px}.gantt-overview .gantt--full .gantt-track{height:28px}
.gantt-overview .gantt--full .gantt-bar{height:16px;top:6px}.gantt-overview .gantt-bar em{top:1px}
.gantt-overview .gantt-label small{font-size:11px}
.gantt-overview .gantt-footnote{margin-top:6px}
.project-tabs a{padding:8px 14px}
@media(max-width:900px){.project-header-stats{gap:8px 16px}.project-header-progress dd .project-progress{width:90px}}

/* System configuration: sidebar order board */
.sidebar-order-board{max-width:620px}.sidebar-order-board article{grid-template-columns:auto minmax(0,1fr) auto auto}.sidebar-order-board small{color:#9fd0ff;font-weight:800}
.sidebar-order-board{gap:6px}.sidebar-order-board article{padding:7px 12px}.sidebar-order-board strong{font-size:13.5px}

/* Sidebar order board: nested sub-menus */
.sidebar-order-board article{display:block;padding:0}
.sidebar-order-main{align-items:center;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr) auto auto;padding:7px 12px}
.sidebar-submenu-toggle{background:#13263d!important;border:1px solid #3d6688!important;box-shadow:none!important;color:#cfe0f1;font-size:12px;padding:4px 10px}
.sidebar-submenu-toggle[aria-expanded="true"]{border-color:#43d4a0!important;color:#fff}
.sidebar-direct{font-size:12px}
.sidebar-submenu-list{border-top:1px dashed rgba(137,187,255,.2);display:grid;gap:4px;list-style:none;margin:0;padding:8px 12px 10px 44px}
.sidebar-submenu-list li{align-items:center;background:#0d1d2f;border:1px solid rgba(126,181,255,.2);border-radius:8px;cursor:grab;display:grid;font-size:13px;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;padding:5px 10px}
.sidebar-submenu-list li.is-dragging{opacity:.5}.sidebar-submenu-list .placement-actions button{padding:2px 8px}
.sidebar-submenu-list.is-readonly li{cursor:default}
.sidebar-submenu-list .sidebar-submenu-note{background:none;border:0;color:#a9bdd2;display:block;font-size:12.5px}.sidebar-submenu-note a{color:#9fd0ff}
.visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}
/* keep the floating jump button clear of sticky save bars */
body:has(.system-config-save) .portal-jump-up{bottom:96px}

/* IAM: workspace access matrix, permission catalog, group explanations */
.access-matrix-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.access-matrix-head h2{margin:2px 0 4px}
.access-presets{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.access-presets span{font-size:13px;color:var(--muted,#9aa7bd);margin-right:4px}
.access-presets .button{padding:5px 10px;font-size:13px;min-height:0}
.access-matrix{width:100%;border-collapse:separate;border-spacing:0 6px}
.access-matrix thead th{text-align:left;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#9aa7bd);padding:0 10px}
.access-matrix tbody th,.access-matrix tbody td{background:rgba(148,163,184,.07);padding:10px;vertical-align:top}
.access-matrix tbody th{border-radius:10px 0 0 10px;width:210px;text-align:left}
.access-matrix tbody td{border-radius:0 10px 10px 0}
.access-matrix tbody th small,.access-overview th small{display:block;font-weight:600;font-size:12px;color:var(--muted,#9aa7bd);margin-top:2px}
.access-levels{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px}
.access-level{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid rgba(148,163,184,.28);border-radius:10px;cursor:pointer;margin:0}
.access-level input{margin-top:3px;flex:none}
.access-level b{display:block;font-size:14px}
.access-level small{display:block;font-size:12.5px;line-height:1.35;color:var(--muted,#9aa7bd);font-weight:500}
.access-level:has(input:checked){border-color:#4f8cff;background:rgba(79,140,255,.14)}
.access-level.is-disabled{opacity:.55;cursor:not-allowed}
.access-role-level{display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(148,163,184,.16);font-weight:700;margin-right:8px}
.access-role-level.is-granted{background:rgba(79,140,255,.18);color:#bcd3ff}
.access-chip{display:inline-block;padding:3px 9px;border-radius:999px;background:rgba(79,140,255,.16);color:#c7d8ff;font-size:12.5px;font-weight:700;white-space:nowrap}
.access-chip.is-partial{background:rgba(245,158,11,.16);color:#fcd38a}
.access-chips{gap:4px}
.access-summary-table tr.is-none td{opacity:.6}
.access-overview td{vertical-align:top}
.access-cell{display:block;padding:8px 10px;border:1px solid rgba(148,163,184,.25);border-radius:10px;text-decoration:none;color:inherit}
a.access-cell:hover{border-color:#4f8cff;background:rgba(79,140,255,.1)}
.access-cell b{display:block}
.access-cell code{display:block;font-size:12px;opacity:.8;margin:2px 0}
.access-cell small{display:block;font-size:12px;color:var(--muted,#9aa7bd)}
.permission-catalog{display:grid;gap:14px}
.permission-catalog h3{margin:0 0 6px;font-size:15px}
.permission-catalog details summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:6px 0}
.permission-catalog details summary h3{margin:0}
.permission-grid{width:100%;border-collapse:collapse;font-size:13.5px}
.permission-grid th,.permission-grid td{padding:6px 8px;border-bottom:1px solid rgba(148,163,184,.16);text-align:center}
.permission-grid th[scope=row],.permission-grid thead th:first-child{text-align:left}
.permission-grid thead th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#9aa7bd)}
.permission-grid td:nth-last-child(1),.permission-grid .perm-extra-cell{text-align:left}
.perm-yes{color:#4ade80;font-weight:800}
.perm-no{color:rgba(148,163,184,.55)}
.perm-extra{display:inline-block;margin:2px 6px 2px 0;font-size:12.5px;padding:2px 8px;border-radius:8px;background:rgba(148,163,184,.12)}
.permission-picker input[type=checkbox]{width:17px;height:17px}
.permission-filter{max-width:260px}
.group-explain strong{display:block;font-size:15px}
.group-explain p{margin:6px 0 0}
.group-explain .badges{margin-top:10px}
.group-explain-list{display:grid;gap:8px}
.group-explain-list a{display:block;padding:8px 10px;border:1px solid rgba(148,163,184,.22);border-radius:10px;text-decoration:none;color:inherit}
.group-explain-list a small{display:block;color:var(--muted,#9aa7bd);font-size:12.5px}
.group-explain-list--row{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.group-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.direct-permissions-panel>summary{cursor:pointer;list-style:none}
@media (max-width:900px){.access-levels{grid-template-columns:1fr 1fr}.access-matrix tbody th{width:auto}.group-detail-grid{grid-template-columns:1fr}}
@media (max-width:560px){.access-levels{grid-template-columns:1fr}}
:root[data-theme="light"] .access-chip{color:#1d4ed8}
:root[data-theme="light"] .access-chip.is-partial{color:#92400e}
:root[data-theme="light"] .access-role-level.is-granted{color:#1d4ed8}
.access-overview{table-layout:fixed}.access-overview th:first-child{width:220px}
.iam-stat-grid--groups{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.access-level input[type=radio],.permission-picker input[type=checkbox],.perm-extra input{width:auto;min-width:0;flex:none;padding:0;min-height:0}
.access-level>span{flex:1;min-width:0}

/* Access restricted: in-layout 403 page, locked sidebar entries, notice */
.access-denied{max-width:760px;margin:24px auto;padding:36px 32px;text-align:center;border:1px solid rgba(151,197,255,.22);border-radius:18px;background:linear-gradient(180deg,rgba(37,99,201,.10),rgba(15,23,42,.35))}
.access-denied-icon{width:76px;height:76px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;background:rgba(245,158,11,.14);color:#fbbf24;border:1px solid rgba(245,158,11,.35)}
.access-denied h1{margin:6px 0 10px;font-size:26px;line-height:1.3}
.access-denied .summary{margin:0 auto;max-width:580px}
.access-denied-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:22px 0 0;padding:0}
.access-denied-facts div{min-width:150px;padding:10px 14px;border:1px solid rgba(148,163,184,.25);border-radius:12px;background:rgba(148,163,184,.06)}
.access-denied-facts dt{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#9aa7bd);font-weight:700}
.access-denied-facts dd{margin:6px 0 0;font-weight:700}
.access-chip.is-none{background:rgba(148,163,184,.18);color:inherit}
.access-denied-help{margin:20px auto 0;max-width:600px;padding:14px 16px;border-radius:12px;background:rgba(79,140,255,.08);text-align:left}
.access-denied-help p{margin:6px 0 0}
.access-denied-admins a{font-weight:700}
.access-denied .actions{justify-content:center;margin-top:22px}
.access-denied-inline{padding:12px 14px;font-weight:600;color:#fcd38a}
.nav-item--locked{width:100%;text-align:left;background:none;border:0;font:inherit;color:inherit;cursor:not-allowed;opacity:.55}
.nav-item--locked .nav-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.nav-item--locked .nav-lock{flex:none;color:#fbbf24}
.nav-item--locked:hover,.nav-item--locked:focus-visible{opacity:.8}
.portal-notice{position:fixed;right:24px;bottom:88px;z-index:1200;display:flex;gap:10px;align-items:flex-start;max-width:380px;padding:12px 14px;border-radius:12px;background:#1f2937;color:#f8fafc;border:1px solid rgba(251,191,36,.45);box-shadow:0 12px 32px rgba(0,0,0,.35)}
.portal-notice[hidden]{display:none}
.portal-notice svg{flex:none;color:#fbbf24;margin-top:2px}
.portal-notice strong{display:block;margin-bottom:2px}
.portal-notice span{font-size:13.5px;line-height:1.45}
@media (max-width:560px){.access-denied{padding:26px 18px}.portal-notice{left:16px;right:16px;max-width:none}}
:root[data-theme="light"] .access-denied{background:linear-gradient(180deg,rgba(37,99,201,.06),#fff)}
:root[data-theme="light"] .access-denied-inline{color:#92400e}

/* Top-right account menu (compact) */
.user-menu-panel{width:300px;padding:0;overflow:hidden}
.user-menu-identity{padding:14px 16px;border-bottom:1px solid #22405a;align-items:flex-start}
.user-menu-identity strong{font-size:14.5px}
.user-menu-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px}
.user-menu-scope{font-size:12.5px;color:#8fb3cf}
.user-menu-links{padding:6px}
.user-menu-links a{display:flex;align-items:center;gap:11px;padding:8px 10px;text-decoration:none}
.user-menu-links a b{display:block;font-size:13.5px;font-weight:700;color:#e8f1fb}
.user-menu-links a small{display:block;font-size:12px;color:#8fb3cf;margin-top:1px}
.user-menu-icon{display:inline-grid;place-items:center;width:30px;height:30px;flex:none;border-radius:8px;background:#13263a;color:#9fd0ff}
.user-menu-links a:hover .user-menu-icon,.user-menu-links a:focus-visible .user-menu-icon{background:#1d3a5c;color:#fff}
.user-menu-logout{margin:0;padding:6px;border-top:1px solid #22405a}
.user-menu-logout button{display:flex;align-items:center;gap:11px;width:100%;padding:8px 10px;background:none;border:0;border-radius:8px;color:#fda4af;font:inherit;font-size:13.5px;font-weight:700;text-align:left;cursor:pointer}
.user-menu-logout button .user-menu-icon{background:rgba(159,18,57,.18);color:#fda4af}
.user-menu-logout button:hover{background:rgba(159,18,57,.18);color:#fff}
:root[data-theme="light"] .user-menu-links a b{color:#0f172a}
.user-menu .user-menu-logout button{justify-content:flex-start;border:0;box-shadow:none;background:none;min-height:0;color:#fda4af}
.user-menu .user-menu-logout button:hover{background:rgba(159,18,57,.18);color:#fff}

/* Content CMS · Security News sections */
.news-control-note{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;padding:12px 16px;border-radius:12px;border:1px solid rgba(79,140,255,.3);background:rgba(79,140,255,.08);font-size:14px}
.news-control-note strong{color:#9fd0ff}
.news-control-form{display:flex;flex-direction:column;gap:20px}
.news-section-board{display:grid;gap:8px}
.news-section-board article{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid rgba(148,163,184,.25);border-radius:12px;background:rgba(148,163,184,.05);cursor:grab}
.news-section-board article.is-dragging{opacity:.5}
.news-section-board article.is-hidden-section{opacity:.65;border-style:dashed}
.news-section-main strong{font-size:15px}
.news-section-main small{display:block;color:var(--muted,#9aa7bd);font-size:12.5px;margin-top:2px}
.news-section-meta{font-family:ui-monospace,Consolas,monospace}
.news-section-state{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:rgba(245,158,11,.16);color:#fcd38a;font-size:12px;font-weight:700}
.news-section-actions{display:flex;gap:10px;align-items:center;font-size:13.5px;font-weight:700;white-space:nowrap}
.news-section-actions a{text-decoration:none}
.news-section-actions .is-danger{color:#fda4af}
.link-button{background:none;border:0;padding:0;font:inherit;color:#9fd0ff;cursor:pointer;min-height:0;box-shadow:none}
.link-button:hover{text-decoration:underline}
.news-control-save{position:sticky;bottom:12px;display:flex;gap:10px;padding:12px;border-radius:12px;background:rgba(12,26,42,.92);border:1px solid rgba(151,197,255,.22);z-index:5}
@media (max-width:760px){.news-section-board article{grid-template-columns:auto minmax(0,1fr)}.news-section-actions,.news-section-board .placement-actions{grid-column:2}}
:root[data-theme="light"] .news-control-save{background:rgba(255,255,255,.95)}
:root[data-theme="light"] .news-section-state{color:#92400e}

/* Pentest workspace: network diagnostic tools */
.pentest-authz{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;border:1px solid rgba(245,158,11,.4);background:rgba(245,158,11,.1);margin-bottom:4px}
.pentest-authz svg{flex:none;color:#fbbf24;margin-top:1px}
.pentest-authz strong{color:#fcd34d}
.pentest-authz p{margin:3px 0 0;font-size:13.5px;color:var(--muted,#9aa7bd)}
.pentest-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.pentest-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.pentest-tabs{display:flex;gap:6px;flex-wrap:wrap}
.pentest-tabs button{padding:8px 16px;border-radius:10px;border:1px solid rgba(148,163,184,.3);background:rgba(148,163,184,.06);color:inherit;font:inherit;font-weight:700;font-size:13.5px;cursor:pointer}
.pentest-tabs button.is-active{border-color:#4f8cff;background:rgba(79,140,255,.16);color:#cfe0ff}
.pentest-panel h2{margin:0 0 4px}
.pentest-form{margin-top:12px;gap:12px}
.pentest-fields{display:flex;flex-wrap:wrap;gap:12px}
.pentest-fields>label{flex:1 1 220px;display:flex;flex-direction:column;gap:4px}
.pentest-fields>label.is-narrow{flex:0 0 120px}
.pentest-form input[type=text],.pentest-form input[type=number],.pentest-form select{font-family:ui-monospace,Consolas,monospace}
.pentest-result .section-head{align-items:center}
.pentest-summary{font-weight:600;margin:4px 0 12px}
.pentest-error{color:#fda4af;font-weight:600}
.pentest-badge{padding:3px 11px;border-radius:999px;font-size:12.5px;font-weight:800;white-space:nowrap}
.pentest-badge.is-ok{background:rgba(16,185,129,.18);color:#6ee7b7}
.pentest-badge.is-bad{background:rgba(159,18,57,.2);color:#fda4af}
.pentest-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:baseline}
.pentest-dot.is-open{background:#34d399}
.pentest-dot.is-closed{background:#9aa7bd}
.pentest-dot.is-filtered{background:#fbbf24}
.pentest-ports tr.state-open td{font-weight:700}
.pentest-ports tr.state-closed{opacity:.6}
.pentest-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:16px}
.pentest-runs{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.pentest-runs li{display:grid;grid-template-columns:auto 1fr auto;gap:2px 8px;padding:8px 10px;border:1px solid rgba(148,163,184,.2);border-radius:10px;font-size:13px}
.pentest-runs .pentest-run-tool{grid-column:1;align-self:center;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#9fd0ff}
.pentest-runs strong{grid-column:2}
.pentest-runs time{grid-column:3;color:var(--muted,#9aa7bd);font-size:12px}
.pentest-runs small{grid-column:1 / -1;color:var(--muted,#9aa7bd)}
.pentest-limits ul{margin:10px 0 0;padding-left:18px;display:grid;gap:5px;font-size:13px;color:var(--muted,#9aa7bd)}
@media (max-width:900px){.pentest-grid{grid-template-columns:1fr}.pentest-side{position:static}}
:root[data-theme="light"] .pentest-authz strong{color:#92400e}
:root[data-theme="light"] .pentest-tabs button.is-active{color:#1d4ed8}

/* Crypto toolkit + ping output */
.pentest-output{margin:0;padding:12px 14px;border-radius:10px;background:rgba(10,18,30,.6);border:1px solid rgba(148,163,184,.22);font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}
.pentest-output-field{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:13px;resize:vertical;background:rgba(10,18,30,.6)}
.pentest-digest{cursor:copy;word-break:break-all}
.pentest-digest:hover{color:#9fd0ff}
.pentest-warn{color:#fcd34d}
.pentest-result h3{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#9aa7bd)}

/* 404 page extras (reuses .access-denied layout) */
.not-found-path{margin:14px 0 0}
.not-found-path code{padding:4px 10px;border-radius:8px;background:rgba(148,163,184,.14);font-size:13px;word-break:break-all}
.not-found-links{margin:22px auto 0;max-width:620px;text-align:left}
.not-found-links>strong{display:block;margin-bottom:8px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#9aa7bd)}
.not-found-link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.not-found-link-grid a{padding:9px 12px;border:1px solid rgba(148,163,184,.25);border-radius:10px;text-decoration:none;color:inherit;font-weight:600;font-size:13.5px}
.not-found-link-grid a:hover{border-color:#4f8cff;background:rgba(79,140,255,.1)}

/* Vulnerability import: preview report + history */
.vuln-import-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.vuln-import-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.vuln-import-side{display:flex;flex-direction:column;gap:16px}
.vuln-import-mode{border:1px solid rgba(148,163,184,.25);border-radius:12px;padding:12px 14px;margin:4px 0}
.vuln-import-mode legend{font-weight:700;font-size:13.5px;padding:0 6px}
.vuln-import-mode ul{list-style:none;margin:6px 0;padding:0;display:grid;gap:6px}
.vuln-import-mode label{display:flex;gap:8px;align-items:flex-start;font-weight:600}
.vuln-import-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin:4px 0 14px}
.vuln-import-summary article{padding:10px;border:1px solid rgba(148,163,184,.22);border-radius:10px;text-align:center}
.vuln-import-summary strong{display:block;font-size:22px;font-weight:800}
.vuln-import-summary span{font-size:12px;color:var(--muted,#9aa7bd)}
.vuln-import-summary .is-new{border-color:rgba(52,211,153,.5)}
.vuln-import-summary .is-update{border-color:rgba(79,140,255,.5)}
.vuln-import-summary .is-skip{border-color:rgba(148,163,184,.5)}
.vuln-import-summary .is-dup{border-color:rgba(245,158,11,.5)}
.vuln-import-summary .is-invalid{border-color:rgba(248,113,113,.6);background:rgba(248,113,113,.08)}
.vuln-import-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:800;text-transform:capitalize}
.vuln-import-badge.is-new{background:rgba(52,211,153,.18);color:#6ee7b7}
.vuln-import-badge.is-update{background:rgba(79,140,255,.18);color:#bcd3ff}
.vuln-import-badge.is-skip{background:rgba(148,163,184,.18);color:#cbd5e1}
.vuln-import-badge.is-duplicate{background:rgba(245,158,11,.18);color:#fcd34d}
.vuln-import-badge.is-invalid{background:rgba(248,113,113,.2);color:#fca5a5}
.vuln-import-rows tr.action-invalid td{color:#fca5a5}
.vuln-import-confirm{margin-top:14px;padding-top:14px;border-top:1px solid rgba(148,163,184,.2)}
.vuln-import-warn{color:#fcd34d;font-size:13px;margin-top:8px}
.vuln-import-help,.vuln-import-history{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px;font-size:13px}
.vuln-import-help li{padding-left:16px;position:relative;color:var(--muted,#9aa7bd)}
.vuln-import-help li::before{content:"›";position:absolute;left:2px;color:#4f8cff;font-weight:800}
.vuln-import-history li{padding:8px 10px;border:1px solid rgba(148,163,184,.2);border-radius:10px}
.vuln-import-history strong{display:block}
.vuln-import-history small,.vuln-import-history span{display:block;color:var(--muted,#9aa7bd);font-size:12px}
@media (max-width:900px){.vuln-import-grid{grid-template-columns:1fr}}
.vuln-import-mode input[type=radio]{width:auto;min-width:0;flex:none;margin-top:3px}
.vuln-import-mode label{align-items:flex-start}
