/* NG overlays are scoped to this independent build. No dependency on a web font. */
:root {
  color-scheme: dark;
  --ng-bg: #101218;
  --ng-panel: #191c24;
  --ng-panel-raised: #20242e;
  --ng-border: #2d313d;
  --ng-text: #f4f5f8;
  --ng-muted: #a8afbf;
  --ng-red: #f15b5b;
  --ng-red-soft: #3c242a;
  --ng-green: #95d6b6;
  --ng-rail: 250px;
  --lsfire-font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lsfire-text-color: var(--ng-text);
  --lsfire-text-color-muted: var(--ng-muted);
  --lsfire-gradient: none;
}
html { scroll-padding-top: 90px; }
*, *::before, *::after { box-sizing: border-box; }
body { background: var(--ng-bg); background-image: none; color: var(--ng-text); font-family: var(--lsfire-font-family); font-size: .925rem; line-height: 1.6; -webkit-font-smoothing: antialiased; }
* { scrollbar-color: #464c5d transparent; scrollbar-width: thin; }
[hidden] { display: none !important; }
a { color: #c7d7ff; text-underline-offset: .2em; }
a:hover { color: #fff; }
:focus-visible { outline: 3px solid #a9c6ff !important; outline-offset: 4px; }
button, input, select, textarea { font: inherit; }
button:disabled { cursor: wait; }
.ng-app { padding: 72px 0 0 var(--ng-rail); }
.ng-app > .container, .ng-app > .container-fluid, .ng-app > main { width: 100%; max-width: 1600px; margin-inline: auto; padding: 36px clamp(22px, 3.2vw, 52px) !important; }
.ng-app > .container > .row > .col-xl-10 { width: 100%; }
.ng-skip-link { position: fixed; left: 270px; top: -100px; z-index: 5000; padding: .7rem 1rem; border-radius: 8px; background: #fff; color: #12151b; }
.ng-skip-link:focus { top: 14px; color: #12151b; }
.ng-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 1050; display: flex; flex-direction: column; width: var(--ng-rail); background: #14161d; border-right: 1px solid var(--ng-border); }
.ng-brand { flex-shrink: 0; display: flex; gap: 12px; align-items: center; min-height: 100px; padding: 20px 23px; color: var(--ng-text); font-size: 1.5rem; font-weight: 750; letter-spacing: -.8px; text-decoration: none; line-height: 1.25; }
.ng-brand:hover { color: #fff; }
.ng-brand small { color: var(--ng-red); font-size: .65rem; font-weight: 700; letter-spacing: .5px; border: 1px solid #63323a; padding: 2px 5px; border-radius: 4px; vertical-align: middle; margin-left: 3px; }
.ng-brand-mark { display: grid; place-items: center; flex: 0 0 35px; width: 35px; height: 43px; color: var(--ng-red); }
.ng-brand-mark svg { width: 30px; height: 36px; }
.ng-brand-caption { display: block; margin-top: 6px; color: #9299a9; font-size: .62rem; font-weight: 450; letter-spacing: .05px; white-space: nowrap; }
.ng-navigation { overflow-y: auto; padding: 2px 14px 24px; }
.ng-nav-group { margin-bottom: 22px; }
.ng-nav-group > p, .ng-nav-more > summary { margin: 0 11px 8px; color: #949cad; font-size: .63rem; font-weight: 650; text-transform: uppercase; letter-spacing: 1.15px; }
.ng-nav-link { display: flex; align-items: center; gap: 12px; min-height: 42px; padding: 8px 12px; margin-bottom: 3px; border-radius: 7px; color: #bfc5d2; font-weight: 500; font-size: .79rem; text-decoration: none; transition: background .14s ease, color .14s ease; }
.ng-nav-link:hover { color: #fff; background: #20232d; }
.ng-nav-link[aria-current="page"] { color: #ffa7a7; background: #382329; box-shadow: inset 3px 0 var(--ng-red); }
.ng-nav-icon { display: inline-grid; place-items: center; width: 20px; font-size: 1.25rem; line-height: 1; color: #939db1; }
.ng-nav-link[aria-current="page"] .ng-nav-icon { color: var(--ng-red); }
.ng-nav-more > summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; min-height: 28px; }
.ng-nav-more > summary::-webkit-details-marker { display: none; }
.ng-nav-more[open] > summary span { transform: rotate(180deg); }
.ng-nav-more .ng-nav-link { padding-left: 13px; font-size: .75rem; }
.ng-sidebar-footer { display: flex; align-items: center; gap: 7px; flex-shrink: 0; margin-top: auto; border-top: 1px solid var(--ng-border); padding: 17px 16px; color: #959dae; font-size: .6rem; white-space: nowrap; }
.ng-environment-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ng-green); box-shadow: 0 0 0 3px #95d6b614; }
.ng-topbar { position: fixed; inset: 0 0 auto var(--ng-rail); z-index: 1030; height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 0 clamp(22px, 3.2vw, 52px); border-bottom: 1px solid var(--ng-border); background: #14161df5; backdrop-filter: blur(12px); }
.ng-topbar-context, .ng-topbar-actions { display: flex; align-items: center; gap: 15px; }
.ng-topbar-context { font-size: .76rem; font-weight: 550; white-space: nowrap; }
.ng-topbar-divider { color: #4a5162; }
.ng-topbar-muted { color: #8e97aa; font-weight: 400; }
.ng-topbar-actions { gap: 11px; }
.ng-search-trigger { display: flex; align-items: center; gap: 9px; margin-right: 12px; padding: 7px 10px; border: 1px solid #303544; border-radius: 7px; color: #a8b0c1; background: #1c1f28; font-size: .7rem; }
.ng-search-trigger > span:first-child { font-size: 1.25rem; line-height: 1; }
.ng-search-trigger kbd { background: #2b2f3b; padding: 2px 5px; font-size: .6rem; color: #bbc2d0; font-family: inherit; }
.ng-user-avatar { display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid #41485b; border-radius: 50%; background: #292f40; font-size: .64rem; color: #c5cce0; }
.ng-user-name { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; color: #d0d5df; }
.ng-logout { padding: 5px; color: #98a2b6; font-size: 1.2rem; line-height: 1; text-decoration: none; }
.ng-icon-button { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--ng-border); border-radius: 7px; background: transparent; color: #bdc6d7; font-size: 1.25rem; line-height: 1; }
.ng-menu-toggle, .ng-drawer-close { display: none; }
.ng-mobile-scrim { position: fixed; inset: 0; z-index: 1040; background: #0009; backdrop-filter: blur(2px); }
.ng-search-dialog { width: min(600px, calc(100vw - 32px)); max-height: min(650px, calc(100dvh - 48px)); margin: 10vh auto auto; padding: 22px; border: 1px solid #464e61; border-radius: 15px; background: #1b1e27; color: var(--ng-text); box-shadow: 0 30px 120px #000a; }
.ng-search-dialog::backdrop { background: #070a11bd; backdrop-filter: blur(4px); }
.ng-search-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.ng-search-heading h2 { font-size: 1.12rem; font-weight: 650; margin: 0; }
#ng-navigation-search { display: block; width: 100%; border: 1px solid #454f65; border-radius: 8px; background: #10131b; color: #fff; padding: 12px 14px; font-size: .9rem; }
.ng-search-hint { margin: 11px 0 14px; color: #969fb3; font-size: .69rem; }
.ng-search-results { list-style: none; padding: 0; margin: 0; }
.ng-search-results a { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: 7px; color: #d6dce8; text-decoration: none; font-size: .85rem; }
.ng-search-results a:hover, .ng-search-results a:focus { background: #2a3040; color: #fff; }
.ng-search-results a > span:last-child { color: #818da5; }
.ng-search-empty { padding: 25px 10px; color: var(--ng-muted); text-align: center; }
.ng-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.ng-icon { display: inline-block; width: 19px; height: 19px; flex-shrink: 0; vertical-align: middle; }
.ng-nav-icon .ng-icon { width: 18px; height: 18px; }
.ng-metric-icon .ng-icon { width: 17px; height: 17px; }
.ng-arrow-icon { width: 12px; height: 12px; margin-left: 3px; }
.ng-search-trigger > .ng-icon { width: 15px; height: 15px; }
/* Existing forms, tables and cards keep their controllers and semantic colors. */
.ng-app .glass-panel, .ng-app .card-translucent, .ng-app .card-glass { background: var(--ng-panel); border: 1px solid var(--ng-border); border-radius: 12px; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.ng-app .glass-panel { padding: clamp(20px, 2.5vw, 32px); }
.ng-app .hero-panel::before, .ng-app .hero-panel::after { display: none; }
.ng-app .hero-panel h1 { font-size: clamp(1.6rem, 3vw, 2.1rem); }
.ng-app .hero-badge { background: #2b2834; border-color: #4b3c47; color: #ffc2c2; letter-spacing: 1px; font-size: .65rem; }
.ng-app .btn { border-radius: 7px; font-weight: 550; font-size: .82rem; padding: .58rem .95rem; box-shadow: none; }
.ng-app .btn-glass { backdrop-filter: none; -webkit-backdrop-filter: none; transform: none; }
.ng-app .btn-primary, .ng-app .btn-glass.btn-primary { background: #ce424b; border-color: #dd545c; color: #fff; }
.ng-app .btn-primary:hover, .ng-app .btn-glass.btn-primary:hover { background: #e3535c; border-color: #ef6a72; }
.ng-app .btn-outline-light, .ng-app .btn-secondary { background: #272c37; border-color: #414959; color: #d9dfeb; }
.ng-app .btn-outline-light:hover, .ng-app .btn-secondary:hover { background: #343b4a; color: #fff; }
.ng-app .btn-outline-light.active { background: #424b5e; border-color: #63708a; color: #fff; }
.ng-app .form-control, .ng-app .form-select, .ng-app .input-group-text { border-color: #414957; border-radius: 7px; background-color: #11151d; color: #f0f2f7; }
.ng-app .input-group > .input-group-text { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.ng-app .input-group > .form-control { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.ng-app .form-control::placeholder { color: #909bad; opacity: 1; }
.ng-app .form-control:focus, .ng-app .form-select:focus { background-color: #151a24; color: #fff; border-color: #9fb9e8; box-shadow: 0 0 0 .2rem #9fb9e822; }
.ng-app .form-select option { background: #1b202b; color: #fff; }
.ng-app .text-muted, .ng-app .text-muted-on-dark { color: #a7b0c0 !important; }
.ng-app .filter-chip { border-color: #3a4251; background: #202530; border-radius: 7px; }
.ng-app .filter-chip:has(input:checked) { background: #35303c; border-color: #83515c; }
.ng-app .member-card { border-radius: 10px; box-shadow: none; border-color: var(--ng-border); }
.ng-app #membersList .member-card .card { background: var(--ng-panel); border-color: var(--ng-border); border-radius: 10px; box-shadow: none; }
.ng-app .member-profile.card, .ng-app .chart-box, .ng-app .stat-card { background: var(--ng-panel); border-color: var(--ng-border); border-radius: 10px; box-shadow: none; backdrop-filter: none; }
.ng-app .member-profile .profile-header { background: linear-gradient(110deg, #3d282f, #252b39); }
.ng-app .profile-section { background: #20252f; border-color: #363e4d; border-radius: 8px; }
.ng-app .missing-card .text-muted, .ng-app .checklist-member-row .text-muted { color: #5a6470 !important; }
.ng-app .table-dark { --bs-table-bg: #191d26; --bs-table-striped-bg: #202530; --bs-table-hover-bg: #2c3442; --bs-table-border-color: #353d4c; --bs-table-color: #e5e9f1; }
.ng-app .table > :not(caption) > * > * { vertical-align: middle; }
.ng-app .table-responsive { border-radius: 8px; }
.ng-app .modal-content { border-radius: 12px; border-color: #414a5b; }
.ng-app .view-toolbar { border-radius: 8px; }
/* Overview */
.ng-page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 30px; }
.ng-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; color: #aeb7c9; font-size: .65rem; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; }
.ng-page-heading h1 { margin: 0 0 7px; color: #f5f6fa; font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 650; letter-spacing: -1px; line-height: 1.2; }
.ng-page-description { margin: 0; color: var(--ng-muted); font-size: .83rem; }
.ng-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 14px; border: 1px solid #41495b; border-radius: 7px; background: #252a36; color: #e5e9f3; font-size: .76rem; font-weight: 550; text-decoration: none; cursor: pointer; white-space: nowrap; }
.ng-button:hover { background: #323948; color: #fff; }
.ng-button-primary { background: #d54b53; border-color: #e65f67; color: #fff; }
.ng-button-primary:hover { background: #e75c63; }
.ng-button-icon { font-size: 1.15rem; line-height: .9; font-weight: 400; }
.ng-metrics { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; margin-bottom: 26px; }
.ng-metric { position: relative; display: flex; flex-direction: column; min-height: 160px; padding: 21px 22px; border: 1px solid var(--ng-border); border-radius: 10px; background: var(--ng-panel); text-decoration: none; color: inherit; transition: border-color .15s ease; }
.ng-metric:hover { color: inherit; border-color: #596378; }
.ng-metric-label { color: #adb6c8; font-size: .7rem; font-weight: 500; }
.ng-metric-icon { position: absolute; top: 17px; right: 19px; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #383f50; border-radius: 7px; background: #252a37; color: #bbc7e0; font-size: 1rem; }
.ng-metric:nth-child(2) .ng-metric-icon { color: #d7c2f8; background: #2c253b; border-color: #49395c; }
.ng-metric:nth-child(3) .ng-metric-icon { color: #f2bd8a; background: #372b25; border-color: #564131; }
.ng-metric:nth-child(4) .ng-metric-icon { color: #93d9bb; background: #20342f; border-color: #335047; }
.ng-metric-value { display: block; margin-top: 13px; font-size: 2rem; font-weight: 650; line-height: 1.3; letter-spacing: -.8px; font-variant-numeric: tabular-nums; }
.ng-metric-detail { display: block; margin-top: auto; padding-top: 8px; color: #a3adbf; font-size: .65rem; }
.ng-overview-grid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(270px,1fr); gap: 22px; align-items: start; }
.ng-panel { border: 1px solid var(--ng-border); border-radius: 10px; overflow: hidden; background: var(--ng-panel); }
.ng-panel + .ng-panel { margin-top: 22px; }
.ng-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 21px 23px; border-bottom: 1px solid var(--ng-border); }
.ng-panel-heading h2 { margin: 0; font-size: .91rem; font-weight: 600; letter-spacing: -.15px; }
.ng-panel-heading a { font-size: .65rem; color: #aebad1; text-decoration: none; white-space: nowrap; }
.ng-panel-heading a:hover { color: #fff; }
.ng-tag { display: inline-flex; align-items: center; gap: 5px; padding: 3px 7px; border: 1px solid #394455; border-radius: 5px; color: #aebed7; background: #252c38; font-size: .58rem; font-weight: 550; }
.ng-event-list, .ng-task-list { list-style: none; margin: 0; padding: 0; }
.ng-event { display: flex; align-items: center; gap: 15px; min-height: 100px; padding: 18px 23px; border-bottom: 1px solid #292e3a; }
.ng-event:last-child { border-bottom: 0; }
.ng-date-tile { flex: 0 0 46px; display: flex; flex-direction: column; align-items: center; padding: 6px 4px; border-radius: 8px; border: 1px solid #3a4050; background: #252a36; line-height: 1.3; }
.ng-date-tile small { color: #aab6ce; font-size: .55rem; text-transform: uppercase; letter-spacing: .5px; }
.ng-date-tile strong { color: #f1f3f8; font-size: 1.15rem; font-weight: 600; }
.ng-event-body { min-width: 0; flex: 1; }
.ng-event-title { display: block; margin: 0 0 4px; font-size: .8rem; font-weight: 550; color: #e7ebf4; text-decoration: none; overflow-wrap: anywhere; }
.ng-event-meta { margin: 0; color: #a1adc0; font-size: .65rem; }
.ng-event-arrow { color: #9aa6bd; text-decoration: none; font-size: 1rem; padding: 6px; }
.ng-task { display: flex; align-items: flex-start; gap: 12px; padding: 17px 23px; border-bottom: 1px solid #292e3a; }
.ng-task:last-child { border-bottom: 0; }
.ng-task-dot { flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; margin-top: 7px; background: #e7a96c; box-shadow: 0 0 0 4px #e7a96c12; }
.ng-task strong { display: block; font-size: .74rem; font-weight: 550; color: #e5e9f1; }
.ng-task p { margin: 4px 0 0; color: #aab4c6; font-size: .65rem; line-height: 1.6; }
.ng-quick-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; padding: 20px 23px; }
.ng-quick-action { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 17px 14px; border: 1px solid #343c4c; border-radius: 8px; color: #dce2ef; background: #202530; text-decoration: none; font-size: .68rem; }
.ng-quick-action:hover { color: #fff; border-color: #626c80; background: #292f3d; }
.ng-quick-action > span:first-child { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 7px; background: #343142; color: #d6caef; font-size: 1.15rem; }
.ng-quick-action:nth-child(2) > span:first-child { color: #aad5ed; background: #253b49; }
.ng-quick-action:nth-child(3) > span:first-child { color: #f5bdab; background: #44312f; }
.ng-quick-action > .ng-icon { box-sizing: content-box; width: 18px; height: 18px; padding: 7px; border-radius: 7px; color: #d6caef; background: #343142; }
.ng-quick-action:nth-child(2) > .ng-icon { color: #aad5ed; background: #253b49; }
.ng-quick-action:nth-child(3) > .ng-icon { color: #f5bdab; background: #44312f; }
.ng-training-card { padding: 22px 23px; }
.ng-training-card > p { margin: 0 0 17px; color: #a7b1c3; font-size: .73rem; }
.ng-training-card .ng-button { width: 100%; }
.ng-dashboard-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 25px; color: #8d98ac; font-size: .62rem; }
.ng-dashboard-footer a { color: #aab7cf; text-decoration: none; }
.ng-empty { padding: 35px 24px; color: #a8b3c8; font-size: .75rem; line-height: 1.7; }
.ng-empty strong { display: block; color: #dce2ed; margin-bottom: 5px; font-weight: 550; }
.ng-status { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 16px; margin-bottom: 22px; border: 1px solid #675130; border-radius: 8px; color: #f0cc98; background: #30291e; font-size: .75rem; }
.ng-status button { flex-shrink: 0; }
.ng-skeleton { display: block; width: 100%; height: 12px; border-radius: 4px; background: #303644; }
.ng-skeleton-short { width: 60%; margin-top: 12px; }
/* Login */
.ng-login-body { background: #11141c; }
.ng-login-layout { display: grid; grid-template-columns: 1.05fr 1fr; min-height: 100dvh; }
.ng-login-intro { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: 45px 55px; overflow: hidden; border-right: 1px solid #303441; background: radial-gradient(ellipse at 30% 70%, #572c3560 0%, transparent 70%), #181a23; }
.ng-login-intro::after { content: ""; position: absolute; width: 540px; height: 540px; right: -300px; bottom: -140px; border: 1px solid #7b414430; border-radius: 50%; box-shadow: 0 0 0 65px #7b41440e, 0 0 0 130px #7b41440a; pointer-events: none; }
.ng-login-intro .ng-brand { padding: 0; min-height: auto; }
.ng-login-statement { max-width: 450px; position: relative; z-index: 1; margin: 70px 0; }
.ng-login-statement h1 { margin: 0 0 22px; font-size: clamp(2.6rem,4vw,4.2rem); letter-spacing: -2.5px; line-height: 1.12; font-weight: 650; }
.ng-login-statement h1 span { color: #ed777a; }
.ng-login-statement > p:not(.ng-eyebrow) { max-width: 350px; margin: 0; color: #b7b8c6; font-size: .95rem; line-height: 1.85; }
.ng-login-footnote { color: #9599ac; font-size: .7rem; }
.ng-login-main { display: flex; align-items: center; justify-content: center; padding: 50px; }
.ng-login-card { width: 100%; max-width: 360px; }
.ng-login-card h2 { margin: 13px 0 10px; font-size: 1.9rem; font-weight: 650; letter-spacing: -.9px; }
.ng-login-card > p { color: #a8b0c1; font-size: .85rem; line-height: 1.8; }
.ng-login-card .ng-button { width: 100%; margin: 20px 0 18px; padding: 13px 16px; font-size: .83rem; }
.ng-login-note { display: flex; gap: 10px; align-items: flex-start; padding: 16px 0; border-top: 1px solid #2d3341; }
.ng-login-note > span { color: #a9bdde; }
.ng-login-note p { margin: 0; color: #929eb3; font-size: .69rem; line-height: 1.8; }
.ng-login-error { border: 1px solid #96414d; padding: 12px; border-radius: 7px; background: #3e222b; color: #ffc5ce !important; font-size: .78rem !important; }
#ng-auth-message { position: fixed; top: 18px; right: 18px; z-index: 6000; max-width: min(430px, calc(100vw - 36px)); padding: 14px 18px; border: 1px solid #96414d; border-radius: 9px; background: #3e222b; color: #ffc5ce; box-shadow: 0 8px 32px #0005; font-size: .8rem; }
@media (min-width: 1600px) { .ng-app > main { padding-top: 45px !important; } .ng-metric { min-height: 170px; } }
@media (max-width: 1280px) { .ng-user-name { max-width: 105px; } .ng-search-trigger kbd { display: none; } .ng-overview-grid { grid-template-columns: minmax(0,1.4fr) minmax(255px,1fr); } .ng-metric { padding: 18px 16px; } .ng-metric-icon { right: 14px; } }
@media (max-width: 1099px) {
  .ng-app { padding-left: 0; }
  .ng-topbar { left: 0; }
  .ng-sidebar { transform: translateX(-100%); transition: transform .18s ease; }
  .ng-menu-open { overflow: hidden; }
  .ng-menu-open .ng-sidebar { transform: translateX(0); }
  .ng-menu-toggle { display: grid; }
  .ng-drawer-close { display: grid; position: absolute; top: 8px; right: 7px; width: 25px; height: 25px; border: 0; }
  .ng-skip-link { left: 15px; }
}
@media (max-width: 767px) {
  .ng-app { padding-top: 64px; }
  .ng-topbar { height: 64px; padding: 0 17px; }
  .ng-topbar-context { gap: 10px; font-size: .71rem; }
  .ng-topbar-muted, .ng-topbar-divider, .ng-user-name, .ng-search-trigger kbd, .ng-search-trigger > span:nth-child(2) { display: none; }
  .ng-search-trigger { margin-right: 1px; padding: 5px 8px; }
  .ng-topbar-actions { gap: 8px; }
  .ng-user-avatar { width: 29px; height: 29px; }
  .ng-app > .container, .ng-app > .container-fluid, .ng-app > main { padding: 26px 17px !important; }
  .ng-page-heading { align-items: flex-start; gap: 15px; margin-bottom: 23px; }
  .ng-page-heading h1 { font-size: 1.7rem; }
  .ng-page-description { font-size: .73rem; }
  .ng-heading-action { padding: 8px 10px; font-size: .68rem; }
  .ng-heading-action .ng-button-icon { display: none; }
  .ng-eyebrow { font-size: .57rem; letter-spacing: 1px; }
  .ng-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; margin-bottom: 20px; }
  .ng-metric { padding: 16px; min-height: 148px; }
  .ng-metric-label { font-size: .63rem; padding-right: 22px; }
  .ng-metric-value { font-size: 1.8rem; }
  .ng-metric-detail { font-size: .6rem; }
  .ng-metric-icon { width: 25px; height: 25px; right: 12px; top: 12px; font-size: .9rem; }
  .ng-overview-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .ng-panel + .ng-panel { margin-top: 20px; }
  .ng-panel-heading { padding: 18px; }
  .ng-event, .ng-task { padding: 16px 18px; }
  .ng-quick-actions { gap: 8px; padding: 17px; }
  .ng-quick-action { padding: 14px 10px; font-size: .63rem; }
  .ng-training-card { padding: 20px 18px; }
  .ng-status { align-items: flex-start; flex-direction: column; }
  .ng-login-layout { grid-template-columns: 1fr; }
  .ng-login-intro { padding: 28px; min-height: 350px; border-right: 0; border-bottom: 1px solid #303441; }
  .ng-login-statement { margin: 40px 0 30px; }
  .ng-login-statement h1 { font-size: 2.5rem; letter-spacing: -1.5px; margin-bottom: 17px; }
  .ng-login-statement > p:not(.ng-eyebrow) { font-size: .85rem; max-width: 400px; }
  .ng-login-main { padding: 40px 28px; }
  .ng-login-card { max-width: 100%; }
  .ng-login-card h2 { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media print { .ng-sidebar, .ng-topbar, .ng-skip-link, .ng-search-dialog, .ng-dashboard-footer, .ng-heading-action { display: none !important; } .ng-app { padding: 0; } body { background: #fff !important; color: #000 !important; } .ng-metric, .ng-panel { break-inside: avoid; background: #fff !important; color: #000 !important; box-shadow: none; } }
