/* The EuroVAT visual system of card I-25, the same tokens and components as the mockups and the Windows program. */
/* SIL Open Font License 1.1 fonts, the static instances the Windows program embeds; the system uses weights 400, 600 and 700 only. */
@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("../fonts/BarlowCondensed-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("../fonts/BarlowCondensed-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/JetBrainsMono-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/JetBrainsMono-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
/* Palette sampled from the Grupa Euro VAT logo. Neutrals keep the logo's blue bias, never warm greys. */
:root{
/* Brand base */
--ink-900:#253338;--ink-800:#2E3F45;--ink-700:#3A4C53;--ink-600:#4A5D65;
--steel-800:#1B3448;--steel-700:#23415A;--steel-600:#2D4F6A;--steel-500:#3F6585;--steel-100:#E3ECF3;
--sky-300:#C8E8FB;--sky-200:#D6EEFC;--sky-100:#F2F9FE;
--grey-700:#4F616B;--grey-600:#637580;--grey-500:#879BAA;--grey-400:#A2BBCD;--grey-300:#C8D6DF;--grey-200:#E1E9EE;--grey-100:#F4F7F9;
--white:#FFFFFF;
/* Functional base */
--red-700:#962019;--red-600:#B3261E;--red-200:#F1B5AF;--red-100:#FDEDEB;
--maroon-700:#8E1C1C;
--amber-500:#F2B13D;--amber-600:#C98A16;--amber-text:#8A4B00;--amber-ink:#3A2600;--amber-100:#FFF4DE;
--green-700:#1B6A3A;--green-300:#A3D3B4;--green-100:#E6F4EB;
--indigo-700:#3E3A9E;--indigo-300:#BDB9EC;--indigo-100:#EDECFA;
--cerulean-700:#0A6496;--cerulean-300:#8FCBEE;--cerulean-100:#E4F3FC;
--teal-700:#1D5A72;--teal-300:#9EC3D2;--teal-100:#E3F0F4;
--harbor-700:#2B5F80;--harbor-100:#F7FBFE;

/* Text */
--text-primary:var(--ink-900);
--text-secondary:var(--grey-700);   /* AA on white AND on sky rows */
--text-tertiary:var(--grey-600);    /* AA on white only, meta text, never on selected rows */
--text-disabled:var(--grey-500);
--text-on-dark:var(--white);
--text-on-dark-muted:var(--grey-400);
--text-link:var(--steel-600);
--text-danger:var(--red-600);
--text-warning:var(--amber-text);
--text-success:var(--green-700);

/* Surfaces */
--surface-app:var(--grey-100);
--surface-panel:var(--white);
--surface-sunken:var(--grey-100);
--surface-quiet:var(--sky-100);
--surface-hover:var(--sky-100);
--surface-selected:var(--sky-200);
--surface-highlight:var(--sky-300);
--surface-dark:var(--ink-900);
--surface-dark-hover:var(--ink-800);
--surface-dark-active:var(--ink-700);
--surface-overlay:rgba(37,51,56,.48);

/* Borders */
--border-subtle:var(--grey-200);
--border-default:var(--grey-300);
--border-strong:var(--grey-400);
--border-hover:var(--grey-600);
--border-focus:var(--steel-600);
--border-danger:var(--red-600);

/* Actions */
--action-primary:var(--steel-600);
--action-primary-hover:var(--steel-700);
--action-primary-active:var(--steel-800);
--action-primary-busy:var(--steel-500);
--action-danger:var(--red-600);
--action-danger-hover:var(--red-700);
--action-disabled-bg:var(--grey-200);
--action-disabled-fg:var(--grey-500);
--focus-ring:0 0 0 2px var(--white),0 0 0 4px var(--steel-600);
--focus-ring-inset:0 0 0 1px var(--steel-600);

/* Feedback */
--feedback-info-bg:var(--sky-100);--feedback-info-border:var(--grey-400);--feedback-info-fg:var(--steel-600);
--feedback-warning-bg:var(--amber-100);--feedback-warning-border:var(--amber-600);--feedback-warning-fg:var(--amber-text);
--feedback-error-bg:var(--red-100);--feedback-error-border:var(--red-200);--feedback-error-fg:var(--red-600);
--feedback-success-bg:var(--green-100);--feedback-success-border:var(--green-300);--feedback-success-fg:var(--green-700);

/* Gateway */
--gateway-test-bg:var(--amber-500);--gateway-test-fg:var(--ink-900);
--gateway-prod-fg:var(--text-secondary);--gateway-prod-border:var(--border-default);

/* Application status, fg passes AA (≥4.5:1) on white, on --sky-300 and on its own bg */
--status-validation-error-fg:var(--red-600);--status-validation-error-bg:var(--red-100);--status-validation-error-border:var(--red-200);
--status-ready-fg:#46555D;--status-ready-bg:#EEF2F5;--status-ready-border:var(--grey-300);
--status-approved-fg:var(--teal-700);--status-approved-bg:var(--teal-100);--status-approved-border:var(--teal-300);
--status-signed-fg:var(--indigo-700);--status-signed-bg:var(--indigo-100);--status-signed-border:var(--indigo-300);
--status-sent-fg:var(--cerulean-700);--status-sent-bg:var(--cerulean-100);--status-sent-border:var(--cerulean-300);
--status-sent-unconfirmed-fg:var(--amber-ink);--status-sent-unconfirmed-bg:var(--amber-500);--status-sent-unconfirmed-border:var(--amber-600);
--status-awaiting-upo-fg:var(--harbor-700);--status-awaiting-upo-bg:var(--harbor-100);--status-awaiting-upo-border:var(--grey-400);
--status-accepted-fg:var(--green-700);--status-accepted-bg:var(--green-100);--status-accepted-border:var(--green-300);
--status-rejected-fg:var(--white);--status-rejected-bg:var(--maroon-700);--status-rejected-border:var(--maroon-700);
}

:root{
--font-display:"Barlow Condensed","Arial Narrow",sans-serif; /* 600/700, app name, page titles, section headings only */
--font-body:"Open Sans","Segoe UI",sans-serif;                /* 400/600, everything else */
--font-mono:"JetBrains Mono",Consolas,monospace;              /* NIP, reference numbers, file names, gateway codes */

--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-16:16px;--fs-18:18px;--fs-20:20px;--fs-24:24px;--fs-28:28px;--fs-32:32px;
--lh-16:16px;--lh-18:18px;--lh-20:20px;--lh-24:24px;--lh-28:28px;--lh-32:32px;--lh-36:36px;
--fw-regular:400; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */

--tracking-display:.01em;--tracking-eyebrow:.14em;--tracking-band:.12em;

/* Semantic type roles (font shorthand) */
--type-app-name:700 20px/24px var(--font-display);
--type-page-title:700 28px/32px var(--font-display);
--type-section:600 20px/24px var(--font-display);
--type-subsection:600 16px/20px var(--font-display);
--type-eyebrow:600 13px/16px var(--font-display);
--type-body:400 14px/20px var(--font-body);
--type-body-strong:600 14px/20px var(--font-body);
--type-table:400 13px/18px var(--font-body);
--type-label:600 13px/18px var(--font-body);
--type-caption:400 12px/16px var(--font-body);
--type-caption-strong:600 12px/16px var(--font-body);
--type-mono:400 13px/18px var(--font-mono);
--type-mono-sm:400 12px/16px var(--font-mono);
}
.ev-app-name{font:var(--type-app-name);letter-spacing:var(--tracking-display);color:var(--text-primary)}
.ev-page-title{font:var(--type-page-title);letter-spacing:var(--tracking-display);color:var(--text-primary);margin:0}
.ev-section-title{font:var(--type-section);letter-spacing:var(--tracking-display);color:var(--text-primary);margin:0}
.ev-subsection-title{font:var(--type-subsection);letter-spacing:.02em;color:var(--text-primary);margin:0}
.ev-eyebrow{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-secondary)}
.ev-body{font:var(--type-body);color:var(--text-primary)}
.ev-caption{font:var(--type-caption);color:var(--text-tertiary)}
.ev-label{font:var(--type-label);color:var(--text-primary)}
.ev-mono{font-family:var(--font-mono);font-size:.93em;font-variant-numeric:tabular-nums;letter-spacing:0}
.ev-num{font-variant-numeric:tabular-nums}

:root{
/* 8 px base grid; 2/4/12 are the half-steps used inside dense controls */
--space-0:0;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;

/* Radius */
--radius-chip:3px;      /* country / period / format chips */
--radius-control:4px;   /* buttons, inputs, checkboxes, nav items */
--radius-panel:6px;     /* panels, tables, banners, dialogs, toasts */
--radius-badge:999px;   /* status badges only, the pill shape is reserved for status */

/* Elevation, flat by default; shadows only for things that float above the page */
--elevation-0:none;
--elevation-1:0 1px 2px rgba(37,51,56,.08);                         /* menus, sticky table header edge */
--elevation-2:0 4px 12px rgba(37,51,56,.12),0 1px 2px rgba(37,51,56,.08); /* toasts, popovers */
--elevation-3:0 12px 32px rgba(37,51,56,.18),0 2px 4px rgba(37,51,56,.08); /* dialogs */

/* Sizes */
--control-h-sm:28px;--control-h:32px;--control-h-lg:36px;
--row-h:36px;--row-h-comfort:40px;
--sidebar-w:224px;--topbar-h:48px;--gateway-band-h:28px;
--content-max:1600px;

/* Motion, short, linear-ish, no bounce */
--dur-fast:120ms; /* @kind other */
--dur-base:180ms; /* @kind other */
--dur-slow:240ms; /* @kind other */
--ease-out:cubic-bezier(.2,0,0,1); /* @kind other */
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
body{font:var(--type-body);color:var(--text-primary);background:var(--surface-app);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
a{color:var(--text-link);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--action-primary-hover)}
:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
@keyframes ev-spin{to{transform:rotate(360deg)}}
@keyframes ev-pulse{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes ev-shimmer{0%,100%{opacity:.55}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:2.4s!important;transition-duration:0ms!important}}

.ev-icon{flex:none;display:inline-block;vertical-align:middle}
.ev-icon--spin{animation:ev-spin .9s linear infinite}
.ev-spinner{flex:none;display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ev-spin .8s linear infinite}
.ev-spinner--lg{width:24px;height:24px;border-width:2.5px}

.ev-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-h);padding:0 14px;border:1px solid transparent;border-radius:var(--radius-control);font:600 14px/20px var(--font-body);white-space:nowrap;cursor:pointer;user-select:none;transition:background-color var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}
.ev-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.ev-btn--sm{height:var(--control-h-sm);padding:0 10px;font-size:13px;gap:6px}
.ev-btn--lg{height:var(--control-h-lg);padding:0 18px}
.ev-btn--full{width:100%}
.ev-btn--primary{background:var(--action-primary);color:var(--white)}
.ev-btn--primary:hover{background:var(--action-primary-hover)}
.ev-btn--primary:active{background:var(--action-primary-active)}
.ev-btn--secondary{background:var(--white);border-color:var(--border-strong);color:var(--steel-600)}
.ev-btn--secondary:hover{background:var(--surface-hover);border-color:var(--steel-500)}
.ev-btn--secondary:active{background:var(--surface-selected)}
.ev-btn--quiet{background:transparent;color:var(--steel-600);padding:0 10px}
.ev-btn--quiet:hover{background:var(--surface-hover)}
.ev-btn--quiet:active{background:var(--surface-selected)}
.ev-btn--destructive{background:var(--action-danger);color:var(--white)}
.ev-btn--destructive:hover{background:var(--action-danger-hover)}
.ev-btn--destructive:active{background:#7C1A14}
.ev-btn.is-busy{cursor:progress;pointer-events:none}
.ev-btn--primary.is-busy{background:var(--action-primary-busy)}
.ev-btn--destructive.is-busy{background:#C9524B}
.ev-btn--secondary.is-busy,.ev-btn--quiet.is-busy{color:var(--grey-700)}
.ev-btn:disabled:not(.is-busy),.ev-btn.is-disabled{cursor:not-allowed;background:var(--action-disabled-bg);border-color:transparent;color:var(--action-disabled-fg)}
.ev-btn--secondary:disabled:not(.is-busy){background:var(--white);border-color:var(--border-subtle);color:var(--grey-400)}
.ev-btn--quiet:disabled:not(.is-busy){background:transparent;color:var(--grey-400)}
.ev-btn.is-error{box-shadow:0 0 0 1px var(--white),0 0 0 3px var(--red-600)}
.ev-btn-wrap{display:inline-flex;flex-direction:column;gap:4px;align-items:flex-start}
.ev-btn-error{display:flex;align-items:center;gap:6px;font:600 12px/16px var(--font-body);color:var(--text-danger)}

.ev-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h);height:var(--control-h);padding:0;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--grey-700);cursor:pointer;transition:background-color var(--dur-fast),color var(--dur-fast)}
.ev-iconbtn--sm{width:var(--control-h-sm);height:var(--control-h-sm)}
.ev-iconbtn:hover{background:var(--surface-hover);color:var(--steel-600)}
.ev-iconbtn:active{background:var(--surface-selected)}
.ev-iconbtn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.ev-iconbtn--secondary{border-color:var(--border-strong);background:var(--white);color:var(--steel-600)}
.ev-iconbtn--danger:hover{background:var(--red-100);color:var(--red-600)}
.ev-iconbtn--on-dark{color:var(--grey-400)}
.ev-iconbtn--on-dark:hover{background:var(--surface-dark-hover);color:var(--white)}
.ev-iconbtn:disabled{cursor:not-allowed;color:var(--grey-400);background:transparent}
.ev-iconbtn.is-busy{cursor:progress;pointer-events:none}

.ev-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.ev-field__label{display:flex;align-items:baseline;gap:4px;font:var(--type-label);color:var(--text-primary)}
.ev-field__req{color:var(--text-danger)}
.ev-field__hint{font:var(--type-caption);color:var(--text-tertiary)}
.ev-field__error{display:flex;align-items:flex-start;gap:6px;font:600 12px/16px var(--font-body);color:var(--text-danger)}
.ev-field__error .ev-icon{margin-top:0}
.ev-field__error-body{display:flex;flex-direction:column;gap:2px}
.ev-field__error-body span+span{font-weight:400;color:var(--text-primary)}

.ev-control{position:relative;display:flex;align-items:center;min-width:0}
.ev-control__lead,.ev-control__trail{position:absolute;top:0;bottom:0;display:flex;align-items:center;color:var(--grey-600);pointer-events:none}
.ev-control__lead{left:10px}.ev-control__trail{right:10px}
.ev-input,.ev-select{width:100%;height:var(--control-h);padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--white);font:var(--type-body);color:var(--text-primary);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.ev-input::placeholder{color:var(--grey-600)}
.ev-input--lead{padding-left:32px}.ev-input--trail{padding-right:32px}
.ev-input--mono{font:var(--type-mono);letter-spacing:.02em}
.ev-input:hover,.ev-select:hover{border-color:var(--border-hover)}
.ev-input:focus,.ev-select:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--focus-ring-inset)}
.ev-input.is-error,.ev-select.is-error{border-color:var(--border-danger)}
.ev-input.is-error:focus,.ev-select.is-error:focus{box-shadow:0 0 0 1px var(--border-danger)}
.ev-input:disabled,.ev-select:disabled{cursor:not-allowed;background:var(--grey-100);border-color:var(--border-default);color:var(--text-disabled)}
.ev-input[readonly]{background:var(--grey-100);border-color:var(--border-subtle);color:var(--text-primary)}
.ev-select{appearance:none;-webkit-appearance:none;padding-right:32px;cursor:pointer}

.ev-check,.ev-radio{display:inline-flex;align-items:flex-start;gap:8px;font:var(--type-body);color:var(--text-primary);cursor:pointer;user-select:none}
.ev-check input,.ev-radio input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.ev-check__box,.ev-radio__dot{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-top:2px;border:1px solid var(--grey-600);background:var(--white);color:var(--white);transition:background-color var(--dur-fast),border-color var(--dur-fast)}
.ev-check__box{border-radius:3px}
.ev-radio__dot{border-radius:50%}
.ev-check:hover .ev-check__box,.ev-radio:hover .ev-radio__dot{border-color:var(--steel-600);background:var(--sky-100)}
.ev-check input:focus-visible+.ev-check__box,.ev-radio input:focus-visible+.ev-radio__dot{box-shadow:var(--focus-ring)}
.ev-check.is-on .ev-check__box{background:var(--steel-600);border-color:var(--steel-600)}
.ev-radio.is-on .ev-radio__dot{border:5px solid var(--steel-600);background:var(--white)}
.ev-check.is-error .ev-check__box{border-color:var(--red-600)}
.ev-check.is-disabled,.ev-radio.is-disabled{cursor:not-allowed;color:var(--text-disabled)}
.ev-check.is-disabled .ev-check__box,.ev-radio.is-disabled .ev-radio__dot{border-color:var(--grey-300);background:var(--grey-100)}
.ev-check.is-disabled.is-on .ev-check__box{background:var(--grey-400);border-color:var(--grey-400)}
.ev-radio.is-disabled.is-on .ev-radio__dot{border-color:var(--grey-400)}
.ev-check__text,.ev-radio__text{display:flex;flex-direction:column;gap:2px}
.ev-check__desc,.ev-radio__desc{font:var(--type-caption);color:var(--text-tertiary)}
.ev-check--bare{gap:0}

.ev-drop{display:flex;align-items:center;gap:16px;padding:20px 24px;border:1px dashed var(--grey-500);border-radius:var(--radius-panel);background:var(--white);color:var(--text-primary);cursor:pointer;transition:background-color var(--dur-fast),border-color var(--dur-fast)}
.ev-drop:hover{border-color:var(--steel-600);background:var(--sky-100)}
.ev-drop:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.ev-drop.is-over{border-style:solid;border-color:var(--steel-600);background:var(--sky-200)}
.ev-drop.is-busy{cursor:progress;border-style:solid;border-color:var(--border-default);background:var(--grey-100)}
.ev-drop.is-error{border-color:var(--red-600);background:var(--red-100)}
.ev-drop.is-disabled{cursor:not-allowed;border-color:var(--border-default);background:var(--grey-100);color:var(--text-disabled)}
.ev-drop__icon{flex:none;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-panel);background:var(--sky-200);color:var(--steel-600)}
.ev-drop.is-error .ev-drop__icon{background:var(--white);color:var(--red-600)}
.ev-drop.is-disabled .ev-drop__icon,.ev-drop.is-busy .ev-drop__icon{background:var(--grey-200);color:var(--grey-600)}
.ev-drop__text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ev-drop__title{font:var(--type-body-strong)}
.ev-drop__hint{font:var(--type-caption);color:var(--text-secondary)}
.ev-drop.is-error .ev-drop__hint{color:var(--text-danger);font-weight:600}
.ev-drop__alt{flex:none;padding:0;border:0;background:none;font:600 13px/18px var(--font-body);color:var(--text-link);text-decoration:underline;text-underline-offset:2px;cursor:pointer;white-space:nowrap}
.ev-drop__alt:hover{color:var(--steel-800)}
.ev-drop__alt:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:2px}

.ev-status{flex:none;display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px 0 7px;border:1px solid;border-radius:var(--radius-badge);font:600 12px/16px var(--font-body);white-space:nowrap;vertical-align:middle}
.ev-status--lg{height:28px;padding:0 12px 0 9px;font-size:13px;gap:7px}
.ev-status__label{white-space:nowrap}
.ev-status--fit{max-width:100%;min-width:0}
.ev-status--fit .ev-status__label{overflow:hidden;text-overflow:ellipsis}
.ev-status__code{font:600 12px/16px var(--font-mono);padding-left:7px;margin-left:1px;border-left:1px solid currentColor}
.ev-status__pulse{width:6px;height:6px;border-radius:50%;background:currentColor;animation:ev-pulse 1.6s ease-in-out infinite}
.ev-status--validation-error{color:var(--status-validation-error-fg);background:var(--status-validation-error-bg);border-color:var(--status-validation-error-border)}
.ev-status--ready{color:var(--status-ready-fg);background:var(--status-ready-bg);border-color:var(--status-ready-border)}
.ev-status--approved{color:var(--status-approved-fg);background:var(--status-approved-bg);border-color:var(--status-approved-border)}
.ev-status--signed{color:var(--status-signed-fg);background:var(--status-signed-bg);border-color:var(--status-signed-border)}
.ev-status--sent{color:var(--status-sent-fg);background:var(--status-sent-bg);border-color:var(--status-sent-border)}
.ev-status--sent-unconfirmed{color:var(--status-sent-unconfirmed-fg);background:var(--status-sent-unconfirmed-bg);border-color:var(--status-sent-unconfirmed-border);font-weight:700}
.ev-status--awaiting-upo{color:var(--status-awaiting-upo-fg);background:var(--status-awaiting-upo-bg);border-color:var(--status-awaiting-upo-border);border-style:dashed}
.ev-status--accepted{color:var(--status-accepted-fg);background:var(--status-accepted-bg);border-color:var(--status-accepted-border)}
.ev-status--rejected{color:var(--status-rejected-fg);background:var(--status-rejected-bg);border-color:var(--status-rejected-border)}

.ev-gateway-band{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;height:var(--gateway-band-h);padding:0 16px;background:var(--gateway-test-bg);color:var(--gateway-test-fg);border-bottom:1px solid var(--amber-600);flex:none;overflow:hidden}
.ev-gateway-band__title{flex:none;display:flex;align-items:center;gap:6px;font:700 15px/1 var(--font-display);letter-spacing:var(--tracking-band);text-transform:uppercase;white-space:nowrap}
.ev-gateway-band__note{min-width:0;font:600 12px/16px var(--font-body);color:var(--gateway-test-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-gateway-label{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--gateway-prod-border);border-radius:var(--radius-control);background:var(--white);font:600 12px/16px var(--font-body);color:var(--gateway-prod-fg);white-space:nowrap}
.ev-gateway-label--test{background:var(--amber-100);border-color:var(--amber-600);color:var(--amber-ink)}
.ev-gateway-inline{display:inline-flex;align-items:center;gap:6px;font:var(--type-body-strong);white-space:nowrap}
.ev-gateway-inline--test{padding:0 6px;border-radius:var(--radius-chip);background:var(--amber-500);color:var(--amber-ink)}
.ev-gateway-inline--prod{color:var(--text-primary)}
.ev-gateway-band__sep{flex:none;font:700 15px/1 var(--font-display);margin:0 -8px}

.ev-gwcode{display:flex;align-items:flex-start;gap:8px;min-width:0;font:var(--type-caption);color:var(--text-primary)}
.ev-gwcode__num{flex:none;display:inline-flex;align-items:center;height:18px;padding:0 5px;border-radius:var(--radius-chip);font:600 12px/16px var(--font-mono);background:var(--grey-200);color:var(--text-primary)}
.ev-gwcode--bad .ev-gwcode__num{background:var(--maroon-700);color:var(--white)}
.ev-gwcode--ok .ev-gwcode__num{background:var(--green-100);color:var(--green-700);box-shadow:inset 0 0 0 1px var(--green-300)}
.ev-gwcode__body{min-width:0;white-space:normal;text-wrap:pretty}
.ev-gwcode__what{font-weight:600}
.ev-gwcode--bad .ev-gwcode__what{color:var(--text-danger)}
.ev-gwcode__todo{margin-left:4px}
.ev-gwcode--block{gap:12px;font:var(--type-body)}
.ev-gwcode--block .ev-gwcode__num{height:24px;padding:0 8px;font-size:14px}
.ev-gwcode--block .ev-gwcode__body{display:flex;flex-direction:column;gap:2px}
.ev-gwcode--block .ev-gwcode__todo{margin-left:0}

.ev-table-wrap{position:relative;overflow:auto;border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-panel)}
.ev-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font:var(--type-table);font-variant-numeric:tabular-nums;color:var(--text-primary)}
.ev-table th{position:sticky;top:0;z-index:2;height:var(--row-h);padding:0 12px;overflow:hidden;text-overflow:ellipsis;background:var(--grey-100);border-bottom:1px solid var(--border-default);text-align:left;font:600 12px/16px var(--font-body);color:var(--text-secondary);white-space:nowrap}
.ev-table td{height:var(--row-h);padding:0 12px;border-bottom:1px solid var(--border-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;background:var(--surface-panel);transition:background-color var(--dur-fast)}
.ev-table--comfort td{height:var(--row-h-comfort)}
.ev-table tbody tr:last-child td{border-bottom:0}
.ev-table tbody tr:hover td{background:var(--surface-hover)}
.ev-table tbody tr.is-selected td{background:var(--surface-selected)}
.ev-table tbody tr.is-blocked td{background:#FFFBFA}
.ev-table tbody tr.is-blocked:hover td{background:var(--red-100)}
.ev-table tbody tr.has-note td{border-bottom:0}
.ev-table tbody tr.is-readonly td{color:var(--text-secondary)}
.ev-table td.ev-table__note{height:auto;padding:0 12px 10px 52px;white-space:normal}
.ev-table .is-num{text-align:right}
.ev-table .is-check{width:40px;padding:0 0 0 14px}
.ev-table__sort{display:inline-flex;align-items:center;gap:4px;padding:0;margin:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer}
.ev-table__sort:hover{color:var(--text-primary)}
.ev-table__sort:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:2px}
.ev-table__sort.is-active{color:var(--text-primary)}
.ev-table__sort .ev-icon{color:var(--grey-500)}
.ev-table__sort.is-active .ev-icon{color:var(--steel-600)}
.ev-table__trunc{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-table__reason{display:flex;align-items:flex-start;gap:6px;font:600 12px/16px var(--font-body);color:var(--text-danger)}
.ev-table__reason span{font-weight:400;color:var(--text-primary)}
.ev-table__state{padding:32px 16px}
.ev-skel{display:block;height:10px;border-radius:2px;background:var(--grey-200);animation:ev-shimmer 1.4s ease-in-out infinite}

.ev-filterbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;padding:12px;border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-panel)}
.ev-filterbar__search{flex:1 1 240px;min-width:220px;max-width:400px}
.ev-filterbar__item{flex:0 0 auto;width:168px}
.ev-filterbar__end{margin-left:auto;display:flex;align-items:center;gap:12px}
.ev-filterbar__meta{display:flex;align-items:center;height:var(--control-h);font:var(--type-caption);color:var(--text-secondary);white-space:nowrap}
.ev-filterbar__actions{display:flex;gap:8px;align-items:center}

.ev-chip{display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 6px;border:1px solid var(--border-default);border-radius:var(--radius-chip);background:var(--white);font:600 12px/16px var(--font-mono);letter-spacing:.02em;color:var(--text-primary);white-space:nowrap;vertical-align:middle}
.ev-chip__name{font:400 12px/16px var(--font-body);letter-spacing:0;color:var(--text-secondary)}
.ev-chip--period{background:var(--grey-100)}
.ev-chip--format{height:18px;padding:0 4px;font-size:11px;color:var(--text-secondary);background:var(--grey-100)}

.ev-monotext{display:inline-flex;align-items:center;gap:4px;font:var(--type-mono);font-variant-numeric:tabular-nums;color:inherit;white-space:nowrap}
.ev-monotext--sm{font:var(--type-mono-sm)}
.ev-monotext--muted{color:var(--text-secondary)}
.ev-monotext__copy{display:inline-flex;padding:2px;border:0;border-radius:2px;background:none;color:var(--grey-500);cursor:pointer}
.ev-monotext__copy:hover{color:var(--steel-600);background:var(--sky-100)}

.ev-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ev-timeline__item{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;padding-bottom:14px}
.ev-timeline__item:not(:last-child)::before{content:"";position:absolute;left:11px;top:26px;bottom:2px;width:2px;background:var(--grey-200)}
.ev-timeline__item:last-child{padding-bottom:0}
.ev-timeline__dot{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--sky-200);color:var(--steel-600)}
.ev-timeline__item--gw .ev-timeline__dot{background:var(--harbor-100);color:var(--harbor-700);box-shadow:inset 0 0 0 1px var(--grey-400)}
.ev-timeline__item--ok .ev-timeline__dot{background:var(--green-100);color:var(--green-700)}
.ev-timeline__item--bad .ev-timeline__dot{background:var(--maroon-700);color:var(--white)}
.ev-timeline__item--warn .ev-timeline__dot{background:var(--amber-500);color:var(--amber-ink)}
.ev-timeline__item--tech .ev-timeline__dot{background:var(--grey-200);color:var(--grey-700)}
.ev-timeline__body{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:2px}
.ev-timeline__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ev-timeline__title{font:var(--type-body-strong);min-width:0}
.ev-timeline__at{flex:none;font:var(--type-mono-sm);color:var(--text-secondary)}
.ev-timeline__who,.ev-timeline__detail{font:var(--type-caption);color:var(--text-secondary)}
.ev-filterbar__extra{display:flex;gap:8px;align-items:flex-end}

.ev-banner{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border:1px solid;border-radius:var(--radius-panel);font:var(--type-body);color:var(--text-primary)}
.ev-banner>.ev-icon{margin-top:2px}
.ev-banner__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ev-banner__title{font:var(--type-body-strong)}
.ev-banner__text{color:var(--text-primary)}
.ev-banner__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.ev-banner--info{background:var(--feedback-info-bg);border-color:var(--feedback-info-border)}.ev-banner--info>.ev-icon{color:var(--feedback-info-fg)}
.ev-banner--warning{background:var(--feedback-warning-bg);border-color:var(--feedback-warning-border)}.ev-banner--warning>.ev-icon{color:var(--feedback-warning-fg)}
.ev-banner--error{background:var(--feedback-error-bg);border-color:var(--feedback-error-border)}.ev-banner--error>.ev-icon{color:var(--feedback-error-fg)}
.ev-banner--success{background:var(--feedback-success-bg);border-color:var(--feedback-success-border)}.ev-banner--success>.ev-icon{color:var(--feedback-success-fg)}

.ev-toast-stack{position:fixed;right:24px;bottom:24px;z-index:60;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.ev-toast{display:flex;align-items:flex-start;gap:12px;width:400px;max-width:calc(100vw - 48px);padding:12px 12px 12px 16px;border-radius:var(--radius-panel);background:var(--surface-dark);color:var(--text-on-dark);box-shadow:var(--elevation-2);font:var(--type-body)}
.ev-toast>.ev-icon{margin-top:2px}
.ev-toast--success>.ev-icon{color:#7FD39B}
.ev-toast--info>.ev-icon{color:var(--sky-300)}
.ev-toast--warning>.ev-icon{color:var(--amber-500)}
.ev-toast--error>.ev-icon{color:#FF9A92}
.ev-toast__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ev-toast__title{font:var(--type-body-strong)}
.ev-toast__text{font:var(--type-caption);color:var(--grey-300)}
.ev-toast__action{align-self:flex-start;margin-top:6px;padding:0;border:0;background:none;font:600 13px/18px var(--font-body);color:var(--sky-300);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.ev-toast__action:hover{color:var(--white)}

.ev-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center;color:var(--text-primary)}
.ev-state--compact{padding:24px 16px;gap:8px}
.ev-state__art{width:72px;height:auto;opacity:.9}
.ev-state__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--sky-200);color:var(--steel-600)}
.ev-state--offline .ev-state__icon,.ev-state--error .ev-state__icon{background:var(--red-100);color:var(--red-600)}
.ev-state--expired .ev-state__icon{background:var(--amber-100);color:var(--amber-text)}
.ev-state--forbidden .ev-state__icon{background:var(--grey-200);color:var(--grey-700)}
.ev-state--loading .ev-state__icon{background:transparent;color:var(--steel-600)}
.ev-state__title{margin:0;font:var(--type-section);letter-spacing:var(--tracking-display)}
.ev-state__text{max-width:460px;margin:0;font:var(--type-body);color:var(--text-secondary);text-wrap:pretty}
.ev-state__actions{display:flex;gap:8px;margin-top:4px}

.ev-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--surface-overlay)}
.ev-dialog{display:flex;flex-direction:column;width:520px;max-width:100%;max-height:calc(100vh - 48px);border-radius:var(--radius-panel);background:var(--surface-panel);box-shadow:var(--elevation-3);overflow:hidden}
.ev-dialog--inline{box-shadow:var(--elevation-2);border:1px solid var(--border-default)}
.ev-dialog__head{display:flex;align-items:flex-start;gap:12px;padding:20px 24px 12px}
.ev-dialog__head>.ev-icon{margin-top:3px}
.ev-dialog--danger .ev-dialog__head>.ev-icon{color:var(--red-600)}
.ev-dialog--strong .ev-dialog__head{padding-top:16px;border-top:4px solid var(--red-600)}
.ev-dialog__title{flex:1;margin:0;font:700 22px/28px var(--font-display);letter-spacing:var(--tracking-display)}
.ev-dialog__step{font:var(--type-caption-strong);color:var(--text-secondary);white-space:nowrap;margin-top:6px}
.ev-dialog__body{display:flex;flex-direction:column;gap:12px;padding:0 24px 20px;overflow:auto;font:var(--type-body);color:var(--text-primary)}
.ev-dialog__facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;padding:12px 16px;border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--grey-100)}
.ev-dialog__facts dt{font:var(--type-caption);color:var(--text-secondary);align-self:center}
.ev-dialog__facts dd{margin:0;font:var(--type-body-strong);min-width:0}
.ev-dialog__foot{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 24px;border-top:1px solid var(--border-subtle);background:var(--surface-panel)}
.ev-dialog__foot-note{margin-right:auto;font:var(--type-caption);color:var(--text-secondary)}

.ev-batch{display:flex;flex-direction:column;border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-panel);overflow:hidden}
.ev-batch__summary{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-default);background:var(--grey-100)}
.ev-batch__summary-row{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.ev-batch__headline{font:700 18px/24px var(--font-display);letter-spacing:var(--tracking-display)}
.ev-batch__counts{display:flex;gap:4px 16px;flex-wrap:wrap;white-space:nowrap;font:var(--type-caption);color:var(--text-secondary)}
.ev-batch__counts b{font-weight:600;color:var(--text-primary)}
.ev-batch__counts .is-bad b{color:var(--text-danger)}
.ev-batch__counts .is-warn b{color:var(--text-warning)}
.ev-batch__gw{margin-left:auto}
.ev-batch__bar{display:flex;height:8px;border-radius:2px;background:var(--grey-200);overflow:hidden;gap:1px}
.ev-batch__seg{height:100%;transition:flex-grow var(--dur-slow) var(--ease-out)}
.ev-batch__seg--done{background:var(--green-700)}
.ev-batch__seg--signed{background:var(--indigo-700)}
.ev-batch__seg--warn{background:var(--amber-500)}
.ev-batch__seg--bad{background:var(--maroon-700)}
.ev-batch__seg--active{background:var(--steel-500);animation:ev-shimmer 1.4s ease-in-out infinite}
.ev-batch__list{list-style:none;margin:0;padding:0;overflow:auto}
.ev-batch__item{display:grid;grid-template-columns:24px 124px minmax(120px,1fr) 40px minmax(200px,auto);align-items:center;gap:12px;min-height:var(--row-h);padding:0 16px;border-bottom:1px solid var(--border-subtle);font:var(--type-table)}
.ev-batch__item:last-child{border-bottom:0}
.ev-batch__item.is-active{background:var(--sky-100)}
.ev-batch__item.is-bad{background:#FFFBFA}
.ev-batch__idx{font:var(--type-mono-sm);color:var(--text-tertiary);text-align:right}
.ev-batch__who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-batch__msg{grid-column:3/-1;min-width:0;white-space:normal;padding:0 0 10px;font:var(--type-caption);color:var(--text-danger);display:flex;gap:6px;align-items:flex-start}
.ev-batch__msg span{color:var(--text-primary)}
.ev-batch__msg--warn{color:var(--text-warning)}

.ev-attach{display:flex;flex-direction:column;border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-panel);overflow:hidden}
.ev-attach__list{list-style:none;margin:0;padding:0}
.ev-attach__row{display:grid;grid-template-columns:16px minmax(0,1fr) auto 72px 32px;align-items:center;gap:10px;height:var(--row-h);padding:0 8px 0 12px;border-bottom:1px solid var(--border-subtle);font:var(--type-table)}
.ev-attach__row>.ev-icon{color:var(--grey-600)}
.ev-attach__name{font:var(--type-mono-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-attach__size{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-secondary)}
.ev-attach__row.is-large .ev-attach__size{color:var(--text-danger);font-weight:600}
.ev-attach__meter{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--grey-100)}
.ev-attach__meter-row{display:flex;justify-content:space-between;gap:12px;font:var(--type-caption);color:var(--text-secondary)}
.ev-attach__meter-row b{font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}
.ev-attach__track{position:relative;height:6px;border-radius:2px;background:var(--grey-200);overflow:hidden}
.ev-attach__fill{position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:var(--steel-600)}
.ev-attach__meter.is-near .ev-attach__fill{background:var(--amber-600)}
.ev-attach__meter.is-over{background:var(--red-100)}
.ev-attach__meter.is-over .ev-attach__fill{background:var(--red-600)}
.ev-attach__meter.is-over .ev-attach__meter-row b{color:var(--text-danger)}
.ev-attach__over{display:flex;gap:6px;align-items:flex-start;font:600 12px/16px var(--font-body);color:var(--text-danger)}
.ev-attach__over span{font-weight:400;color:var(--text-primary)}
.ev-attach__head{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-bottom:1px solid var(--border-default);background:var(--grey-100)}
.ev-attach__head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ev-attach__head-title{font:var(--type-body-strong)}
.ev-attach__head-text{font:var(--type-caption);color:var(--text-secondary)}
.ev-attach__fmt{display:inline-flex;align-items:center;gap:6px;font:var(--type-caption-strong);color:var(--text-secondary);white-space:nowrap}
.ev-attach__fmt.is-bad{color:var(--text-danger)}
.ev-attach--parth .ev-attach__row{grid-template-columns:32px minmax(0,1fr) auto 72px 20px;padding:0 12px}
.ev-attach__row.is-bad{height:auto;min-height:var(--row-h);padding-top:8px;padding-bottom:8px;row-gap:4px;background:#FFFBFA}
.ev-attach__pos{font:var(--type-mono-sm);color:var(--text-tertiary)}
.ev-attach__prob{grid-column:2/-1;min-width:0;font:var(--type-caption);color:var(--text-primary);white-space:normal}
.ev-attach__prob b{font-weight:600;color:var(--text-danger)}
.ev-attach__rules{padding:8px 12px;border-top:1px solid var(--border-subtle);font:var(--type-caption);color:var(--text-secondary)}
.ev-attach__list+.ev-attach__meter{border-top:0}

.ev-certs{display:flex;flex-direction:column;border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-panel);overflow:hidden}
.ev-cert{display:grid;grid-template-columns:16px minmax(0,1fr);gap:4px 10px;padding:8px 12px;border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background-color var(--dur-fast)}
.ev-cert:last-child{border-bottom:0}
.ev-cert:hover{background:var(--surface-hover)}
.ev-cert.is-on{background:var(--surface-selected)}
.ev-cert.is-expired{cursor:not-allowed;background:var(--grey-100)}
.ev-cert__main{display:flex;flex-direction:column;gap:2px;min-width:0}
.ev-cert__holder{font:var(--type-body-strong);color:var(--text-primary)}
.ev-cert.is-expired .ev-cert__holder{color:var(--text-secondary)}
.ev-cert__meta{display:flex;flex-direction:column;gap:2px;min-width:0;font:var(--type-caption);color:var(--text-secondary)}
.ev-cert__line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-cert__warn{grid-column:2;display:flex;align-items:flex-start;gap:6px;font:600 12px/16px var(--font-body)}
.ev-cert__warn .ev-icon{margin-top:1px}
.ev-cert__warn-text{min-width:0}
.ev-cert__warn-text span{font-weight:400;color:var(--text-primary)}
.ev-cert__warn--soon{color:var(--text-warning)}
.ev-cert__warn--expired{color:var(--text-danger)}
.ev-certs__state{display:flex;align-items:center;gap:10px;padding:16px;font:var(--type-body);color:var(--text-secondary)}

.ev-wait{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;text-align:center;border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-panel)}
.ev-wait__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--sky-200);color:var(--steel-600)}
.ev-wait__title{margin:0;font:var(--type-section);letter-spacing:var(--tracking-display);text-wrap:pretty}
.ev-wait__text{max-width:460px;margin:0;color:var(--text-secondary);text-wrap:pretty}
.ev-wait--each .ev-wait__title{max-width:520px}
.ev-wait__meter{display:flex;gap:3px;width:100%;max-width:360px}
.ev-wait__tick{flex:1;height:6px;border-radius:1px;background:var(--grey-200)}
.ev-wait__tick.is-done{background:var(--indigo-700)}
.ev-wait__tick.is-now{background:var(--steel-500);animation:ev-shimmer 1.4s ease-in-out infinite}
.ev-cert__ids{display:flex;align-items:center;gap:4px;color:var(--text-secondary)}

/* One page-level scroll: band, sidebar and top bar are sticky; content flows. No nested scroll areas. */
.ev-shell{display:flex;flex-direction:column;min-height:100vh;background:var(--surface-app)}
.ev-shell>.ev-gateway-band{position:sticky;top:0;z-index:40}
.ev-shell__body{flex:1;display:flex;align-items:flex-start}
.ev-sidebar{position:sticky;top:0;flex:none;display:flex;flex-direction:column;width:var(--sidebar-w);height:100vh;min-height:480px;background:var(--surface-dark);color:var(--text-on-dark)}
.ev-sidebar__brand{display:flex;flex-direction:column;gap:2px;height:var(--topbar-h);justify-content:center;padding:0 20px;border-bottom:1px solid var(--ink-700)}
.ev-sidebar__name{font:700 20px/22px var(--font-display);letter-spacing:.02em;color:var(--white)}
.ev-sidebar__name small{font:600 11px/1 var(--font-display);letter-spacing:.16em;color:var(--grey-400);margin-right:6px;vertical-align:2px}
.ev-sidebar__nav{display:flex;flex-direction:column;gap:2px;padding:12px 8px;flex:1}
.ev-nav{display:flex;align-items:center;gap:10px;height:36px;padding:0 12px;border:0;border-radius:var(--radius-control);background:transparent;font:600 14px/20px var(--font-body);color:var(--grey-300);text-align:left;cursor:pointer;transition:background-color var(--dur-fast),color var(--dur-fast)}
.ev-nav .ev-icon{color:var(--grey-500)}
.ev-nav:hover{background:var(--surface-dark-hover);color:var(--white)}
.ev-nav:focus-visible{outline:none;box-shadow:0 0 0 2px var(--sky-300)}
.ev-nav.is-active{background:var(--surface-dark-active);color:var(--white)}
.ev-nav.is-active .ev-icon{color:var(--sky-300)}
.ev-nav:disabled{cursor:not-allowed;color:var(--grey-600)}
.ev-nav:disabled .ev-icon{color:var(--grey-600)}
.ev-nav__label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-nav__count{min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:var(--ink-600);font:600 12px/20px var(--font-mono);text-align:center;color:var(--white)}
.ev-sidebar__foot{padding:12px 20px 16px;font:var(--type-caption);color:var(--grey-500);border-top:1px solid var(--ink-700)}
.ev-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:100vh}
.ev-shell--test .ev-sidebar{top:var(--gateway-band-h);height:calc(100vh - var(--gateway-band-h))}
.ev-shell--test .ev-main{min-height:calc(100vh - var(--gateway-band-h))}
.ev-shell--test .ev-topbar{top:var(--gateway-band-h)}
.ev-topbar{position:sticky;top:0;z-index:30;flex:none;display:flex;align-items:center;gap:16px;height:var(--topbar-h);padding:0 16px 0 24px;border-bottom:1px solid var(--border-default);background:var(--surface-panel)}
.ev-topbar__crumbs{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:var(--type-caption);color:var(--text-secondary)}
.ev-topbar__user{display:flex;align-items:center;gap:10px;padding-left:16px;border-left:1px solid var(--border-subtle)}
.ev-topbar__who{display:flex;flex-direction:column;line-height:1.15}
.ev-topbar__name{font:600 13px/16px var(--font-body);color:var(--text-primary)}
.ev-topbar__role{font:var(--type-caption);color:var(--text-secondary)}
.ev-topbar__avatar{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--sky-200);color:var(--steel-600);font:700 12px/1 var(--font-body)}
.ev-content{flex:1;padding:24px}
.ev-content__inner{display:flex;flex-direction:column;gap:16px;max-width:var(--content-max);margin:0 auto}

.ev-pagehead{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.ev-pagehead__text{flex:1;min-width:280px;display:flex;flex-direction:column;gap:4px}
.ev-pagehead__sub{font:var(--type-body);color:var(--text-secondary);margin:0;text-wrap:pretty}
.ev-pagehead__actions{display:flex;gap:8px;align-items:center}

.ev-panel{border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-panel)}
.ev-panel__head{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 16px;border-bottom:1px solid var(--border-subtle)}
.ev-panel__body{padding:16px}
