/* Generated by build.py: styles.css and its @imports flattened into one request.
   Edit the sources, not this file. */

/* ---- tokens/fonts.css ---- */
/* Brand typefaces. Picked from the five previewed on the live site and chosen by the founder:
   Bricolage Grotesque for display, Inter Tight for copy, Martian Mono for the tracked labels
   and the wordmark. This supersedes the Space Grotesk / Inter / JetBrains Mono set in
   brand-identity.md §04, which was decided on paper rather than on the page. All free on
   Google Fonts; no binaries ship in the branding repo. */

/* ---- tokens/colors.css ---- */
:root{
/* Core - warm neutrals (~90% of surfaces) */
--obsidian:#191313; /* primary bg - the signature */
--pitch:#0F0B0B; /* deeper panels / layering */
--bone:#D4C6C6; /* mark, headlines, key text on dark */
--ash:#9A8F8F; /* secondary text, captions */
--graphite:#2A2222; /* hairlines, dividers, card edges */
/* Channel triplets for rgba() alpha work. A literal rgba(212,198,198,.22) pins Bone into a
   rule and stops following the palette, so every translucent hairline, wash and scrim reads
   its channels from here instead. */
--obsidian-rgb:25,19,19;
--pitch-rgb:15,11,11;
--bone-rgb:212,198,198;
--ash-rgb:154,143,143;
--graphite-rgb:42,34,34;
--ember-rgb:255,90,44;
/* Tints that were hardcoded hexes: derived from the palette rather than sampled once. */
--bone-bright:#F4ECEC;
--bone-white:#FFFCFA;
--input-bg:#1c1515;
--placeholder:#6d6161;
/* Accent - strict, ~5-10%, one accent per view */
--ember:#FF5A2C;
--ember-hover:#FF7047;
--ember-sweep:linear-gradient(90deg,#FFB347 0%,#FF3D3D 50%,#C21E7A 100%); /* @kind color */ /* large hero graphics ONLY; never in logo, never behind text */
/* Severity - quarantined to audit/report contexts */
--sev-critical:#E5484D;
--sev-high:#F76808;
--sev-medium:#FFC53D;
--sev-low:#46A758;
--sev-info:#8B8080;
/* Semantic aliases */
--bg-page:var(--obsidian);
--bg-panel:var(--pitch);
--surface-card:var(--pitch);
--text-primary:var(--bone);
--text-secondary:var(--ash);
--text-on-accent:var(--pitch);
--border-hairline:var(--graphite);
--hairline-soft:rgba(212,198,198,.32); /* sanctioned readable hairline on Obsidian at small scale */
--wash-bone:rgba(212,198,198,.04); /* row/interactive hover wash */
--accent:var(--ember);
--link:var(--ember);
--link-hover:var(--ember-hover);
}

/* ---- tokens/typography.css ---- */
:root{
--font-display:"Bricolage Grotesque",system-ui,sans-serif; /* wordmark, headlines, big statements */
--font-body:"Inter Tight",system-ui,-apple-system,sans-serif; /* site copy, decks, long-form UI */
--font-wordmark:"Martian Mono",ui-monospace,monospace; /* EGIS SECURITY lockup - founder pick */
--font-mono:"Martian Mono",ui-monospace,monospace; /* code, PoCs, addresses, data, labels */
/* Scale */
--size-hero:56px; /* H1 hero: 40-64 */
--size-h2:32px; /* 28-36 */
--size-h3:22px; /* 20-24 */
--size-body:16px; /* 16-18 */
--size-caption:13px;
--size-label:12px; /* mono uppercase tracked labels: 11-13 */
--size-code:14px; /* 13-15 */
/* Line heights */
--leading-display:1.12;
--leading-body:1.55;
/* Weights */
--weight-display:500; /* Space Grotesk Medium; Semibold for hero */
--weight-body:400;
/* Tracking */
--track-display:-0.01em;
--track-label:0.08em; /* mono labels, uppercase */
--track-wordmark:0.06em; /* EGIS wordmark: +40-80 */
}

/* ---- tokens/spacing.css ---- */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;
/* Radii - sharp corners echo the shield's angular construction */
--radius-0:0px;
--radius-1:2px; /* max radius anywhere */
/* Layout

   The column is 1120px up to a 1700px viewport - the width every grid, ledger row and card wall
   in here was proportioned against, so nothing below that changes. Past it a fixed 1120 leaves
   the content a third of the screen on a wide display, so it grows at roughly a third of the
   surplus and stops at 1360. Reading measure is not affected by this: .prose and .led-after cap
   themselves in ch, so wider only ever buys room for the tables, grids and nav. */
--container:clamp(1120px, 1120px + (100vw - 1700px) * 0.34, 1360px);
--container-narrow:720px;
}

/* ---- tokens/effects.css ---- */
:root{
/* Flat, engineered - no drop shadows, glows, or bevels (brand rule). Depth comes from layering Pitch on Obsidian + Graphite hairlines. */
--shadow-none:none;
--border-card:1px solid var(--graphite);
--focus-ring:1px solid var(--ember);
--transition-fast:120ms ease; /* @kind other */
--transition-base:180ms ease; /* @kind other */
}

/* ---- tokens/base.css ---- */
body{background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--size-body);line-height:var(--leading-body);margin:0;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-display);line-height:var(--leading-display);letter-spacing:var(--track-display);margin:0}
a{color:var(--link);text-decoration:none;transition:color var(--transition-fast)}
a:hover{color:var(--link-hover)}
code,pre,kbd{font-family:var(--font-mono);font-size:var(--size-code)}
::selection{background:var(--ember);color:var(--pitch)}
hr{border:none;border-top:1px solid var(--border-hairline)}
.egis-label{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-secondary)}

/* ---- components/components.css ---- */
/* Egis component styles - flat, engineered, sharp corners. One Ember accent per view. */
.egis-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-mono);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;border:1px solid transparent;border-radius:var(--radius-1);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}
.egis-btn--sm{padding:8px 14px;font-size:11px}
.egis-btn--md{padding:12px 22px;font-size:12px}
.egis-btn--lg{padding:16px 30px;font-size:13px}
.egis-btn--primary{background:var(--ember);color:var(--pitch);border-color:var(--ember)}
.egis-btn--primary:hover{background:var(--ember-hover);border-color:var(--ember-hover);color:var(--pitch)}
.egis-btn--secondary{background:transparent;color:var(--bone);border-color:var(--bone)}
.egis-btn--secondary:hover{background:var(--bone);color:var(--obsidian)}
.egis-btn--ghost{background:transparent;color:var(--ash);border-color:var(--graphite)}
.egis-btn--ghost:hover{color:var(--bone);border-color:var(--ash)}
.egis-btn:disabled,.egis-btn[aria-disabled="true"]{opacity:.4;pointer-events:none}
.egis-btn:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.egis-field{display:flex;flex-direction:column;gap:8px}
.egis-field-label{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash)}
.egis-input,.egis-select{width:100%;box-sizing:border-box;background:var(--pitch);border:1px solid var(--graphite);border-radius:var(--radius-1);color:var(--bone);font-family:var(--font-body);font-size:15px;padding:12px 14px;transition:border-color var(--transition-fast)}
.egis-input::placeholder{color:rgba(var(--ash-rgb),.6)}
.egis-input:focus,.egis-select:focus{outline:none;border-color:var(--ember)}
.egis-input--mono{font-family:var(--font-mono);font-size:13px}
.egis-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%239A8F8F' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}
.egis-checkbox{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-family:var(--font-body);font-size:14px;color:var(--bone)}
.egis-checkbox input{appearance:none;-webkit-appearance:none;width:16px;height:16px;margin:0;background:var(--pitch);border:1px solid var(--ash);border-radius:0;cursor:pointer;display:grid;place-content:center;transition:background var(--transition-fast),border-color var(--transition-fast)}
.egis-checkbox input:checked{background:var(--ember);border-color:var(--ember)}
.egis-checkbox input:checked::after{content:"";width:8px;height:4px;border-left:1.5px solid var(--pitch);border-bottom:1.5px solid var(--pitch);transform:translateY(-1px) rotate(-45deg)}
.egis-checkbox input:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.egis-card{background:var(--surface-card);border:var(--border-card);border-radius:var(--radius-1);padding:var(--space-5)}
.egis-card--flush{padding:0}
.egis-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;padding:3px 9px;border:1px solid;border-radius:var(--radius-1);background:transparent}
.egis-badge--critical{color:var(--sev-critical);border-color:var(--sev-critical)}
.egis-badge--high{color:var(--sev-high);border-color:var(--sev-high)}
.egis-badge--medium{color:var(--sev-medium);border-color:var(--sev-medium)}
.egis-badge--low{color:var(--sev-low);border-color:var(--sev-low)}
.egis-badge--info{color:var(--sev-info);border-color:var(--sev-info)}
.egis-badge--solid.egis-badge--critical{background:var(--sev-critical);color:var(--pitch)}
.egis-badge--solid.egis-badge--high{background:var(--sev-high);color:var(--pitch)}
.egis-badge--solid.egis-badge--medium{background:var(--sev-medium);color:var(--pitch)}
.egis-badge--solid.egis-badge--low{background:var(--sev-low);color:var(--pitch)}
.egis-badge--solid.egis-badge--info{background:var(--sev-info);color:var(--pitch)}
.egis-tag{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--ash);border:1px solid var(--graphite);border-radius:var(--radius-1);padding:3px 10px}
.egis-stat{display:flex;flex-direction:column;gap:6px}
.egis-stat-value{font-family:var(--font-display);font-weight:500;font-size:40px;line-height:1.05;color:var(--bone);letter-spacing:-0.01em}
.egis-stat-value em{font-style:normal;color:var(--ember)}
.egis-stat-label{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash)}
.egis-table{width:100%;border-collapse:collapse;font-family:var(--font-body);font-size:14px;color:var(--bone)}
.egis-table th{font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);text-align:left;padding:10px 14px;border-bottom:1px solid var(--ash)}
.egis-table td{padding:12px 14px;border-bottom:1px solid var(--graphite);vertical-align:top}
.egis-table td code{font-size:13px;color:var(--bone)}
.egis-table tr:hover td{background:rgba(var(--bone-rgb),.03)}


/* ============================================================================
   BATCH ADDITIONS - completions + new components. Flat, sharp (radius ≤2px),
   warm palette only, one Ember accent per view. Severity colours stay in
   report/finding contexts. Hairlines use --hairline-soft on Obsidian.
   ============================================================================ */

/* --- Button completions: danger, active, loading spinner, icon-only ------- */
.egis-btn--danger{background:transparent;color:var(--sev-critical);border-color:var(--sev-critical)}
.egis-btn--danger:hover{background:var(--sev-critical);color:var(--pitch);border-color:var(--sev-critical)}
.egis-btn:active{transform:translateY(1px)}
.egis-btn--icon{padding:0;min-width:44px;min-height:44px;width:44px;height:44px}
.egis-btn--icon.egis-btn--sm{min-width:36px;min-height:36px;width:36px;height:36px}
.egis-btn--loading{position:relative;color:transparent!important;pointer-events:none}
.egis-btn__spinner{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;color:var(--pitch);opacity:.9}
.egis-btn--secondary.egis-btn--loading .egis-btn__spinner,.egis-btn--ghost.egis-btn--loading .egis-btn__spinner{color:var(--bone)}
.egis-btn--danger.egis-btn--loading .egis-btn__spinner{color:var(--sev-critical)}
@media (prefers-reduced-motion: no-preference){.egis-btn__spinner{animation:egis-spin 700ms linear infinite}}
@keyframes egis-spin{to{transform:rotate(360deg)}}

/* --- Input states: error, success, helper, required, message, disabled ---- */
.egis-field-req{color:var(--ember);margin-left:2px}
.egis-field-help{font-family:var(--font-body);font-size:13px;line-height:1.45;color:var(--ash)}
.egis-field-msg{display:flex;align-items:flex-start;gap:6px;font-family:var(--font-body);font-size:13px;line-height:1.45}
.egis-field-msg svg{flex:none;margin-top:1px}
.egis-field--error .egis-input,.egis-field--error .egis-select,.egis-input--error{border-color:var(--sev-critical)}
.egis-field--error .egis-input:focus,.egis-input--error:focus{border-color:var(--sev-critical)}
.egis-field--error .egis-field-msg{color:var(--sev-critical)}
.egis-field--success .egis-input,.egis-field--success .egis-select,.egis-input--success{border-color:var(--sev-low)}
.egis-field--success .egis-field-msg{color:var(--sev-low)}
.egis-input:disabled,.egis-select:disabled{opacity:.4;cursor:not-allowed}
.egis-input:disabled::placeholder{color:rgba(var(--ash-rgb),.4)}

/* --- Card completions: header/eyebrow/title/footer, interactive, accent ---- */
.egis-card__eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);margin:0 0 10px}
.egis-card__title{font-family:var(--font-display);font-weight:500;font-size:var(--size-h3);line-height:1.15;color:var(--bone);letter-spacing:-.01em;margin:0 0 10px}
.egis-card__footer{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--graphite);display:flex;align-items:center;justify-content:space-between;gap:12px}
.egis-card--interactive{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:border-color var(--transition-base),transform var(--transition-base)}
.egis-card--interactive:hover{border-color:var(--ash)}
.egis-card--interactive:focus-visible{outline:var(--focus-ring);outline-offset:2px}
@media (prefers-reduced-motion: no-preference){.egis-card--interactive:hover{transform:translateY(-2px)}}
.egis-card--accent{border-left:2px solid var(--ember)}

/* --- Table completions: sortable header, numeric col, caption ------------- */
.egis-table caption{caption-side:top;text-align:left;font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);padding:0 14px 12px}
.egis-table .egis-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.egis-th-sort{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.egis-th-sort:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.egis-th-sort svg{opacity:.4;transition:opacity var(--transition-fast),color var(--transition-fast)}
.egis-th-sort:hover svg{opacity:.8}
.egis-table th[aria-sort="ascending"] .egis-th-sort svg,.egis-table th[aria-sort="descending"] .egis-th-sort svg{opacity:1;color:var(--ember)}
.egis-table th[aria-sort="descending"] .egis-th-sort svg{transform:scaleY(-1)}

/* --- Tag removable + Badge count ------------------------------------------ */
.egis-tag--removable{padding-right:4px;gap:6px}
.egis-tag__remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;margin:0;background:none;border:0;border-radius:var(--radius-1);color:var(--ash);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}
.egis-tag__remove:hover{color:var(--bone);background:var(--wash-bone)}
.egis-tag__remove:focus-visible{outline:var(--focus-ring);outline-offset:1px}
.egis-badge--count{min-width:20px;height:20px;padding:0 6px;justify-content:center;font-variant-numeric:tabular-nums;color:var(--bone);border-color:var(--graphite)}
.egis-badge--count.egis-badge--accent{color:var(--ember);border-color:var(--ember)}

/* --- Wordmark ------------------------------------------------------------- */
.egis-wordmark{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-wordmark);font-weight:600;letter-spacing:var(--track-wordmark);text-transform:uppercase;color:var(--bone);text-decoration:none;font-size:18px;line-height:1}
.egis-wordmark img,.egis-wordmark svg{display:block;height:1.3em;width:auto}
.egis-wordmark b{font-weight:600}
.egis-wordmark span{color:var(--ash);font-weight:500}
.egis-wordmark--lg{font-size:26px}

/* --- Rule (hairline divider) ---------------------------------------------- */
.egis-rule{border:0;height:1px;background:var(--hairline-soft);margin:var(--space-6) 0}
.egis-rule--fade{background:linear-gradient(90deg,transparent,var(--hairline-soft) 12%,var(--hairline-soft) 88%,transparent)}
.egis-rule--vertical{height:auto;width:1px;align-self:stretch;margin:0 var(--space-5)}

/* --- Link with arrow ------------------------------------------------------ */
.egis-link{display:inline-flex;align-items:center;gap:6px;color:var(--ember);font-family:var(--font-body);font-weight:500;text-decoration:none;border-radius:var(--radius-1);transition:color var(--transition-fast)}
.egis-link:hover{color:var(--ember-hover)}
.egis-link:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.egis-link--arrow svg{transition:transform var(--transition-base)}
@media (prefers-reduced-motion: no-preference){.egis-link--arrow:hover svg{transform:translateX(3px)}}
.egis-link--muted{color:var(--ash)}
.egis-link--muted:hover{color:var(--bone)}

/* --- Avatar --------------------------------------------------------------- */
.egis-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:var(--radius-1);background:var(--pitch);border:1px solid var(--graphite);color:var(--bone);font-family:var(--font-display);font-weight:600;font-size:16px;overflow:hidden;text-transform:uppercase}
.egis-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.egis-avatar--sm{width:32px;height:32px;font-size:13px}
.egis-avatar--lg{width:64px;height:64px;font-size:22px}

/* --- Breadcrumb ----------------------------------------------------------- */
.egis-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--ash);margin:0;padding:0;list-style:none}
.egis-breadcrumb li{display:inline-flex;align-items:center;gap:8px}
.egis-breadcrumb a{color:var(--ash);text-decoration:none;transition:color var(--transition-fast)}
.egis-breadcrumb a:hover{color:var(--bone)}
.egis-breadcrumb a:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:var(--radius-1)}
.egis-breadcrumb [aria-current="page"]{color:var(--bone)}
.egis-breadcrumb .egis-breadcrumb__sep{color:var(--graphite);user-select:none}

/* --- Nav ------------------------------------------------------------------ */
.egis-nav{display:flex;align-items:center;gap:var(--space-6);width:100%;box-sizing:border-box;padding:16px 0;border-bottom:1px solid var(--graphite)}
.egis-nav__links{display:flex;align-items:center;gap:var(--space-6);margin:0 0 0 auto;list-style:none;padding:0}
.egis-nav__links a{font-family:var(--font-body);font-size:14px;color:var(--ash);text-decoration:none;transition:color var(--transition-fast)}
.egis-nav__links a:hover{color:var(--bone)}
.egis-nav__links a[aria-current="page"]{color:var(--bone)}
.egis-nav__links a:focus-visible{outline:var(--focus-ring);outline-offset:4px;border-radius:var(--radius-1)}
.egis-nav__cta{margin-left:var(--space-2)}
.egis-nav__toggle{display:none;margin-left:auto}

/* --- Footer --------------------------------------------------------------- */
.egis-footer{border-top:1px solid var(--graphite);padding:var(--space-8) 0 var(--space-6);color:var(--ash);font-family:var(--font-body);font-size:14px}
.egis-footer__grid{display:flex;flex-wrap:wrap;gap:var(--space-8);justify-content:space-between}
.egis-footer__col{display:flex;flex-direction:column;gap:10px;min-width:120px}
.egis-footer__col h4{font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);margin:0 0 4px}
.egis-footer__col a{color:var(--ash);text-decoration:none;transition:color var(--transition-fast)}
.egis-footer__col a:hover{color:var(--bone)}
.egis-footer__col a:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:var(--radius-1)}
.egis-footer__base{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--graphite);color:var(--ash);font-family:var(--font-mono);font-size:12px}

/* --- Hero ----------------------------------------------------------------- */
.egis-hero{position:relative;padding:var(--space-9) 0}
.egis-hero__eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ember);margin:0 0 var(--space-4)}
.egis-hero__title{font-family:var(--font-display);font-weight:600;font-size:clamp(40px,6vw,64px);line-height:1.08;letter-spacing:-.028em;color:var(--bone);margin:0;max-width:16ch}
.egis-hero__title em{font-style:normal;color:var(--ember)}
.egis-hero__lede{font-family:var(--font-body);font-size:18px;line-height:1.55;color:var(--ash);max-width:52ch;margin:var(--space-5) 0 0}
.egis-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--space-7)}

/* --- CTA band ------------------------------------------------------------- */
.egis-cta-band{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-8);background:var(--pitch);border:1px solid var(--graphite);border-radius:var(--radius-1)}
.egis-cta-band__title{font-family:var(--font-display);font-weight:500;font-size:var(--size-h2);line-height:1.12;letter-spacing:-.02em;color:var(--bone);margin:0;max-width:22ch}
.egis-cta-band__sub{font-family:var(--font-body);font-size:16px;color:var(--ash);margin:10px 0 0;max-width:44ch}
.egis-cta-band__actions{display:flex;flex-wrap:wrap;gap:12px}

/* --- Logo strip ----------------------------------------------------------- */
.egis-logo-strip{display:flex;flex-direction:column;gap:var(--space-5)}
.egis-logo-strip__label{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);margin:0}
.egis-logo-strip__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-7)}
.egis-logo-strip__row img{height:26px;width:auto;opacity:.7;filter:grayscale(1) brightness(1.6);transition:opacity var(--transition-base)}
.egis-logo-strip__row img:hover{opacity:1}
.egis-logo-strip__name{font-family:var(--font-display);font-weight:500;font-size:18px;color:var(--ash);transition:color var(--transition-fast)}
.egis-logo-strip__name:hover{color:var(--bone)}

/* --- Metric row ----------------------------------------------------------- */
.egis-metric-row{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--graphite);border-radius:var(--radius-1)}
.egis-metric-row .egis-metric{flex:1 1 0;min-width:150px;padding:var(--space-5) var(--space-6);border-left:1px solid var(--graphite)}
.egis-metric-row .egis-metric:first-child{border-left:0}
.egis-metric__value{font-family:var(--font-display);font-weight:500;font-size:36px;line-height:1.05;letter-spacing:-.01em;color:var(--bone);font-variant-numeric:tabular-nums}
.egis-metric__value em{font-style:normal;color:var(--ember)}
.egis-metric__label{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);margin-top:8px}

/* --- KPI ------------------------------------------------------------------ */
.egis-kpi{display:flex;flex-direction:column;gap:6px;padding:var(--space-5);background:var(--pitch);border:1px solid var(--graphite);border-radius:var(--radius-1)}
.egis-kpi__label{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash)}
.egis-kpi__value{font-family:var(--font-display);font-weight:500;font-size:32px;line-height:1;color:var(--bone);font-variant-numeric:tabular-nums}
.egis-kpi__delta{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:12px}
.egis-kpi__delta--up{color:var(--sev-low)}
.egis-kpi__delta--down{color:var(--sev-critical)}
.egis-kpi__delta--flat{color:var(--ash)}

/* --- Quote (pull quote) --------------------------------------------------- */
.egis-quote{margin:0;padding:0 0 0 var(--space-5);border-left:2px solid var(--ember)}
.egis-quote p{font-family:var(--font-display);font-weight:500;font-size:24px;line-height:1.3;letter-spacing:-.01em;color:var(--bone);margin:0}
.egis-quote footer{margin-top:var(--space-4);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--ash)}

/* --- Testimonial ---------------------------------------------------------- */
.egis-testimonial{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6);background:var(--pitch);border:1px solid var(--graphite);border-radius:var(--radius-1)}
.egis-testimonial__body{font-family:var(--font-body);font-size:17px;line-height:1.55;color:var(--bone);margin:0}
.egis-testimonial__attr{display:flex;align-items:center;gap:12px}
.egis-testimonial__meta{display:flex;flex-direction:column;gap:2px}
.egis-testimonial__name{font-family:var(--font-body);font-weight:600;font-size:14px;color:var(--bone)}
.egis-testimonial__role{font-family:var(--font-mono);font-size:12px;color:var(--ash)}

/* --- Person (named auditor card) ------------------------------------------ */
.egis-person{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);background:var(--pitch);border:1px solid var(--graphite);border-radius:var(--radius-1)}
.egis-person__head{display:flex;align-items:center;gap:14px}
.egis-person__id{display:flex;flex-direction:column;gap:3px;min-width:0}
.egis-person__name{font-family:var(--font-display);font-weight:600;font-size:18px;line-height:1.1;color:var(--bone)}
.egis-person__role{font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--ash)}
.egis-person__handle{font-family:var(--font-mono);font-size:12px;color:var(--ember);text-decoration:none}
.egis-person__handle:hover{color:var(--ember-hover)}
.egis-person__handle:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:var(--radius-1)}
.egis-person__specialisms{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}

/* --- Step (numbered process step) ----------------------------------------- */
.egis-step{display:flex;gap:var(--space-4);align-items:flex-start}
.egis-step__num{flex:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:13px;color:var(--ember);border:1px solid var(--graphite);border-radius:var(--radius-1);font-variant-numeric:tabular-nums}
.egis-step__body{display:flex;flex-direction:column;gap:6px;padding-top:4px}
.egis-step__title{font-family:var(--font-display);font-weight:500;font-size:var(--size-h3);line-height:1.2;color:var(--bone);margin:0}
.egis-step__text{font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--ash);margin:0}

/* --- Timeline ------------------------------------------------------------- */
.egis-timeline{list-style:none;margin:0;padding:0;position:relative}
.egis-timeline__item{position:relative;padding:0 0 var(--space-6) var(--space-6);border-left:1px solid var(--graphite)}
.egis-timeline__item:last-child{border-left-color:transparent;padding-bottom:0}
.egis-timeline__item::before{content:"";position:absolute;left:-4px;top:4px;width:7px;height:7px;background:var(--obsidian);border:1px solid var(--ash);border-radius:50%}
.egis-timeline__item--active::before{background:var(--ember);border-color:var(--ember)}
.egis-timeline__date{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash)}
.egis-timeline__title{font-family:var(--font-display);font-weight:500;font-size:var(--size-h3);line-height:1.2;color:var(--bone);margin:4px 0 6px}
.egis-timeline__text{font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--ash);margin:0}

/* --- Accordion (native details/summary) ----------------------------------- */
.egis-accordion{border-top:1px solid var(--graphite)}
.egis-accordion__item{border-bottom:1px solid var(--graphite)}
.egis-accordion__head{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;padding:var(--space-5) 4px;font-family:var(--font-display);font-weight:500;font-size:var(--size-h3);line-height:1.25;color:var(--bone);list-style:none;transition:color var(--transition-fast)}
.egis-accordion__head::-webkit-details-marker{display:none}
.egis-accordion__head:hover{color:var(--ember)}
.egis-accordion__head:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.egis-accordion__icon{flex:none;color:var(--ash);transition:transform var(--transition-base),color var(--transition-fast)}
.egis-accordion__item[open] .egis-accordion__icon{transform:rotate(180deg);color:var(--ember)}
.egis-accordion__body{padding:0 4px var(--space-5);font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--ash)}
@media (prefers-reduced-motion:reduce){.egis-accordion__icon{transition:none}}

/* --- Tabs ----------------------------------------------------------------- */
.egis-tabs__list{display:flex;gap:var(--space-5);border-bottom:1px solid var(--graphite);margin:0;padding:0}
.egis-tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:12px 2px;font-family:var(--font-mono);font-size:12px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}
.egis-tab:hover{color:var(--bone)}
.egis-tab[aria-selected="true"]{color:var(--bone);border-bottom-color:var(--ember)}
.egis-tab:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.egis-tabpanel{padding:var(--space-5) 0;font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--ash)}
.egis-tabpanel:focus-visible{outline:var(--focus-ring);outline-offset:2px}

/* --- Callout -------------------------------------------------------------- */
.egis-callout{display:flex;gap:12px;padding:var(--space-4) var(--space-5);border:1px solid var(--graphite);border-left-width:2px;border-radius:var(--radius-1);background:var(--pitch)}
.egis-callout__icon{flex:none;margin-top:1px;color:var(--ash)}
.egis-callout__body{font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--bone)}
.egis-callout__body :first-child{margin-top:0}
.egis-callout__body :last-child{margin-bottom:0}
.egis-callout__title{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);margin:0 0 6px}
.egis-callout--warn{border-left-color:var(--ember)}
.egis-callout--warn .egis-callout__icon{color:var(--ember)}
.egis-callout--note{border-left-color:var(--ash)}

/* --- Code (PoC block) ----------------------------------------------------- */
.egis-code{border:1px solid var(--graphite);border-radius:var(--radius-1);background:var(--pitch);overflow:hidden}
.egis-code-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--graphite);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--ash)}
.egis-code-head__file{color:var(--bone)}
.egis-code pre{margin:0;padding:16px 0;overflow-x:auto}
.egis-code code{display:block;font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--bone)}
.egis-code .egis-code__ln{display:block;padding:0 16px 0 56px;position:relative;white-space:pre}
.egis-code .egis-code__ln::before{content:attr(data-ln);position:absolute;left:0;width:40px;text-align:right;color:var(--ash);opacity:.6;font-variant-numeric:tabular-nums}
.egis-code .egis-code__ln--hl{background:rgba(var(--ember-rgb),.1);box-shadow:inset 2px 0 0 var(--ember)}
.egis-code .egis-code__ln--hl::before{color:var(--ember);opacity:1}

/* --- Finding (report block) ----------------------------------------------- */
.egis-finding{border:1px solid var(--graphite);border-radius:var(--radius-1);background:var(--pitch)}
.egis-finding__head{display:flex;align-items:center;gap:12px;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--graphite)}
.egis-finding__id{font-family:var(--font-mono);font-size:12px;color:var(--ash);font-variant-numeric:tabular-nums}
.egis-finding__title{font-family:var(--font-display);font-weight:500;font-size:var(--size-h3);line-height:1.2;color:var(--bone);margin:0 auto 0 0}
.egis-finding__body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}
.egis-finding__block h4{font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);margin:0 0 6px}
.egis-finding__block p{font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--bone);margin:0}
.egis-finding__block--mitigation{border-left:2px solid var(--sev-low);padding-left:14px}

/* --- Coverage (progress bar) ---------------------------------------------- */
.egis-coverage{display:flex;flex-direction:column;gap:8px}
.egis-coverage__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--ash)}
.egis-coverage__pct{color:var(--bone);font-variant-numeric:tabular-nums}
.egis-coverage__track{height:6px;background:var(--graphite);border-radius:var(--radius-1);overflow:hidden}
.egis-coverage__bar{height:100%;background:var(--ember);border-radius:var(--radius-1);transition:width var(--transition-base)}
.egis-coverage--full .egis-coverage__bar{background:var(--sev-low)}
@media (prefers-reduced-motion:reduce){.egis-coverage__bar{transition:none}}

/* --- Report cover --------------------------------------------------------- */
.egis-report-cover{position:relative;display:flex;flex-direction:column;min-height:520px;padding:var(--space-8);background:var(--obsidian);border:1px solid var(--graphite);border-radius:var(--radius-1);overflow:hidden}
.egis-report-cover__top{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;z-index:1}
.egis-report-cover__label{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash)}
.egis-report-cover__main{margin-top:auto;position:relative;z-index:1}
.egis-report-cover__client{font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;color:var(--ember);margin:0 0 12px}
.egis-report-cover__title{font-family:var(--font-display);font-weight:600;font-size:clamp(32px,4vw,48px);line-height:1.08;letter-spacing:-.02em;color:var(--bone);margin:0;max-width:20ch}
.egis-report-cover__meta{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--graphite)}
.egis-report-cover__meta div{display:flex;flex-direction:column;gap:4px}
.egis-report-cover__meta dt{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash)}
.egis-report-cover__meta dd{font-family:var(--font-body);font-size:15px;color:var(--bone);margin:0}

/* --- Table of contents ---------------------------------------------------- */
.egis-toc{font-family:var(--font-body)}
.egis-toc__label{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ash);margin:0 0 var(--space-4)}
.egis-toc ol{list-style:none;margin:0;padding:0;counter-reset:toc}
.egis-toc li{counter-increment:toc;border-top:1px solid var(--graphite)}
.egis-toc li:last-child{border-bottom:1px solid var(--graphite)}
.egis-toc a{display:flex;align-items:baseline;gap:12px;padding:12px 4px;color:var(--ash);text-decoration:none;transition:color var(--transition-fast)}
.egis-toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--font-mono);font-size:12px;color:var(--ember);flex:none}
.egis-toc a .egis-toc__page{margin-left:auto;font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--ash)}
.egis-toc a:hover{color:var(--bone)}
.egis-toc a:focus-visible{outline:var(--focus-ring);outline-offset:-2px}

/* --- Empty state ---------------------------------------------------------- */
.egis-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-8);border:1px dashed var(--graphite);border-radius:var(--radius-1);background:var(--pitch)}
.egis-empty__icon{color:var(--ash)}
.egis-empty__title{font-family:var(--font-display);font-weight:500;font-size:var(--size-h3);line-height:1.2;color:var(--bone);margin:0}
.egis-empty__text{font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--ash);margin:0;max-width:44ch}

/* --- Skeleton (loading placeholder; effect switchable via [data-fx]) ------- */
.egis-skeleton{display:block;background:var(--graphite);border-radius:var(--radius-1);height:14px;width:100%}
.egis-skeleton--text{height:12px}
.egis-skeleton--title{height:24px;width:60%}
.egis-skeleton--block{height:96px}
.egis-skeleton--avatar{width:44px;height:44px;flex:none}
.egis-skeleton--circle{border-radius:50%}
@media (prefers-reduced-motion: no-preference){
  .egis-skeleton{background:linear-gradient(90deg,var(--graphite) 25%,rgba(var(--bone-rgb),.09) 37%,var(--graphite) 63%);background-size:400% 100%;animation:egis-shimmer 1.4s ease infinite}
  [data-fx="off"] .egis-skeleton{animation:none;background:var(--graphite)}
  [data-fx="standard"] .egis-skeleton{animation-duration:1s}
}
@keyframes egis-shimmer{0%{background-position:100% 0}100%{background-position:0 0}}
