/* RCB workspace. Final presentation layer, intentionally scoped to the signed-in
   shell: public/access pages, printable QR codes and Django Admin stay independent.
   Preserve semantic states, field errors and progressive-enhancement hooks. */
.portal-shell {
  --ev-bg: #f7f9fc;
  --ev-surface-subtle: #f8fafc;
  --ev-surface-strong: #edf2f8;
  --ev-text: #172b43;
  --ev-text-muted: #58687a;
  --ev-text-soft: #637286;
  --ev-border: #e1e7ef;
  --ev-border-strong: #c4cfdb;
  --ev-primary-soft: #edf4fc;
  --ev-radius-sm: .75rem;
  --ev-radius: 1rem;
  --ev-radius-lg: 1.25rem;
  --ev-shadow-soft: 0 2px 8px #172b4303;
  --ev-shadow-card: 0 3px 16px #172b4304;
  --ev-shadow-floating: 0 12px 40px #172b4314;
  --bs-body-color: var(--ev-text);
  --bs-body-bg: var(--ev-bg);
  --bs-secondary-color: var(--ev-text-muted);
  --bs-secondary-rgb: 88, 104, 122;
  --bs-border-color: var(--ev-border);
  --bs-border-radius: var(--ev-radius);
  color: var(--ev-text);
  background: var(--ev-bg);
  font-family: var(--rcb-font-sans);
  font-size: .875rem;
  line-height: 1.65;
}

/* Calm, light navigation, with the original blue symbol. */
.portal-shell .portal-sidebar {
  --elyvo-logo-filter: none;
  color: var(--ev-text-muted);
  background: #fff;
  border-right-color: var(--ev-border);
  height: 100dvh;
  min-height: 0;
  scrollbar-color: #c4cfdb transparent;
}
.portal-shell .portal-sidebar__header { border-bottom-color: var(--ev-border); min-height: 5rem; }
.portal-shell .portal-navigation { padding: 1.25rem .75rem; }
.portal-shell .portal-nav-destinations { gap: .45rem; }
.portal-shell :is(.portal-nav-destination__control, .portal-nav-link) {
  color: #526277;
  min-height: 2.875rem;
  font-size: .8125rem;
  font-weight: 500;
  border-radius: .875rem;
}
.portal-shell :is(.portal-nav-destination__control, .portal-nav-link):hover {
  color: var(--ev-primary);
  background: #f5f8fc;
  border-color: transparent;
}
.portal-shell .portal-nav-destination__control.is-active,
.portal-shell .portal-nav-destination.is-active > .portal-nav-group > .portal-nav-destination__control,
.portal-shell .portal-nav-link.is-active {
  color: var(--ev-primary);
  background: var(--ev-primary-soft);
  border-color: transparent;
}
.portal-shell :is(.portal-nav-destination__control, .portal-nav-link).is-active::before { content: none; }
.portal-shell :is(.portal-nav-destination__icon, .portal-nav-link__icon) { color: inherit; stroke-width: 1.6; }
.portal-shell .portal-navigation :is(.portal-nav-destination__icon, .portal-nav-link__icon) { color: inherit !important; }
.portal-shell .portal-nav-destination__icon { width: 1.35rem; height: 1.35rem; }
.portal-shell .portal-nav-link__badge { background: var(--ev-primary-soft); color: var(--ev-primary); font-weight: 500; }
.portal-shell .portal-sidebar__footer { gap: .25rem; color: var(--ev-text-muted); border-top-color: var(--ev-border); }
.portal-shell :is(.portal-sidebar__organization, .portal-sidebar__environment, .portal-navigation__empty) { color: var(--ev-text-muted); font-weight: 400; }
.portal-shell :is(.portal-sidebar__help, .portal-sidebar__logout) { color: var(--ev-primary); font-weight: 500; min-height: 2.75rem; display: inline-flex; align-items: center; }
.portal-shell .portal-sidebar :where(a, button, [tabindex]):focus-visible { outline-color: var(--ev-primary); }
.portal-shell .portal-icon-button { width: 2.75rem; height: 2.75rem; flex-shrink: 0; border-radius: 50%; }
.portal-shell .portal-icon-button:hover { background: var(--ev-primary-soft); color: var(--ev-primary); }
.portal-shell .portal-topbar { background: #fff; border-bottom-color: var(--ev-border); box-shadow: none; min-height: 5rem; }
.portal-shell .portal-topbar__eyebrow { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--ev-text-muted); }
.portal-shell .portal-topbar__organization { font-size: .875rem; font-weight: 500; }
.portal-shell .portal-topbar__context { flex: 1; }
.portal-shell .portal-topbar__actions { flex-shrink: 0; }
.portal-shell .portal-organization-switcher select { font-weight: 500; max-width: 100%; }
.portal-shell .portal-user-menu__avatar { background: var(--ev-primary-soft); color: var(--ev-primary); border: 1px solid #dce8f7; font-weight: 500; }
.portal-shell :is(.portal-user-menu__identity, .portal-user-menu__mobile-identity) strong { font-weight: 500; }
.portal-shell .portal-user-menu__panel { border-color: var(--ev-border); border-radius: 1rem; box-shadow: var(--ev-shadow-floating); }
.portal-shell .portal-health { font-size: .75rem; font-weight: 500; }

/* Same title/label hierarchy as login; operational content remains readable. */
.portal-shell .portal-main__inner { max-width: 90rem; padding: 2rem clamp(1.25rem, 2.5vw, 2.5rem) 3rem; }
.portal-shell .portal-main h1 { color: #12263d; font-size: 1.875rem; font-weight: 500; line-height: 1.3; letter-spacing: -.04em; overflow-wrap: anywhere; }
.portal-shell .portal-main :is(h2, .h5) { color: #172b43; font-size: 1.0625rem; font-weight: 500; line-height: 1.5; letter-spacing: -.02em; }
.portal-shell .portal-main :is(h3, .h6) { font-size: .9375rem; font-weight: 500; line-height: 1.5; letter-spacing: -.01em; }
.portal-shell .portal-page-header { gap: 1.25rem; margin-bottom: 1.75rem !important; }
.portal-shell .portal-page-header > div { min-width: 0; }
.portal-shell .portal-page-header :is(h1 + p, .text-secondary, .text-muted) { font-size: .8125rem; line-height: 1.7; max-width: 64rem; }
.portal-shell .portal-page-header .text-uppercase,
.portal-shell .overview-eyebrow { text-transform: none !important; color: var(--ev-text-muted) !important; font-size: .75rem; font-weight: 400 !important; letter-spacing: .01em; }
.portal-shell .breadcrumb { font-size: .75rem; gap: .25rem; margin-bottom: 1.25rem; }
.portal-shell .portal-main :is(.fw-bold, .fw-semibold) { font-weight: 500 !important; }
.portal-shell .portal-main :is(strong, b) { font-weight: 600; }
.portal-shell .portal-main dt { font-weight: 500; color: var(--ev-text-muted); }
.portal-shell .portal-main dd { overflow-wrap: anywhere; }
.portal-shell .portal-main :is(code, pre) { overflow-wrap: anywhere; }
.portal-shell .portal-main :is(.card, .bg-white.border, .ocpp-surface, .organization-sheet, .account-settings):not(.border-danger):not(.border-warning):not(.border-success) { border-color: var(--ev-border) !important; box-shadow: var(--ev-shadow-card); }
.portal-shell .portal-main .card { --bs-card-spacer-y: 1.5rem; --bs-card-spacer-x: 1.5rem; --bs-card-border-radius: 1.25rem; }
.portal-shell .portal-main .card.border-danger { border-color: var(--ev-danger) !important; }
.portal-shell .portal-main .card.border-warning { border-color: var(--ev-warning) !important; }
.portal-shell .portal-main :is(.card-header, .card-footer) { background: #fff; border-color: var(--ev-border); padding: 1rem 1.5rem; }
.portal-shell .portal-form-section { margin-bottom: 1.25rem; padding-block: 1.5rem; }
.portal-shell .portal-form-section > :is(h2, h3) { margin-bottom: 1rem; }
.portal-shell .portal-settings-panel { max-width: 56rem; background: #fff; padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--ev-border); border-radius: 1.25rem; margin-bottom: 1.25rem; }
.portal-shell .portal-surface { background: #fff; border: 1px solid var(--ev-border); border-radius: 1.25rem; padding: clamp(1.25rem, 2.5vw, 2rem); }
.portal-shell .portal-editor { background: #fff; border: 1px solid var(--ev-border); border-radius: 1.25rem; padding: clamp(1.125rem, 2.5vw, 2rem); }
.portal-shell .portal-editor > .portal-form-section:first-of-type { padding-top: 0; }
.portal-shell .accordion { --bs-accordion-border-color: var(--ev-border); --bs-accordion-active-bg: var(--ev-primary-soft); --bs-accordion-active-color: var(--ev-primary); --bs-accordion-btn-focus-box-shadow: 0 0 0 3px #054fa41a; }
.portal-shell .accordion-button { font-size: .875rem; line-height: 1.6; font-weight: 500; padding: 1.25rem; }
.portal-shell .accordion-body { font-size: .8125rem; line-height: 1.8; }

/* Forms: gently rounded, consistent heights, explicit focus and error states. */
.portal-shell :is(.form-control, .form-select),
.portal-shell .portal-field :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  min-height: 3rem;
  min-width: 0;
  border: 1px solid var(--ev-border-strong);
  border-radius: 1.5rem;
  padding: .75rem 1rem;
  color: var(--ev-text);
  background-color: #fff;
  box-shadow: none;
  font-size: .875rem;
  line-height: 1.5;
}
.portal-shell .form-select, .portal-shell .portal-field select { padding-right: 2.5rem; }
.portal-shell textarea.form-control, .portal-shell .portal-field textarea { border-radius: 1rem; min-height: 7.5rem; }
.portal-shell .form-control::placeholder { color: #697789; opacity: 1; }
.portal-shell :is(.form-control, .form-select):focus { border-color: var(--ev-primary); box-shadow: 0 0 0 3px #054fa41a; }
.portal-shell :is(.form-control, .form-select):disabled { background-color: #f1f4f8; color: #637286; }
.portal-shell :is(.form-control, .form-select)[readonly] { background-color: #f8fafc; }
.portal-shell :is(.form-label, .portal-field__label), .portal-shell .portal-field > label { color: #172b43; font-size: .8125rem; font-weight: 500; line-height: 1.6; margin-bottom: .5rem; }
.portal-shell .portal-field__label-row { margin-bottom: .5rem; font-size: .8125rem; line-height: 1.6; font-weight: 500; }
.portal-shell .portal-field__label-row label { margin: 0; font-size: inherit; font-weight: 500; }
.portal-shell .portal-field__label-row .small { font-size: .75rem; font-weight: 400; }
.portal-shell :is(.form-text, .portal-field__help, .portal-field__required) { font-size: .75rem; line-height: 1.7; color: var(--ev-text-muted); }
.portal-shell .portal-field__required { font-weight: 400; }
.portal-shell .portal-field.has-error :is(input, select, textarea),
.portal-shell :is(.form-control, .form-select).is-invalid,
.portal-shell [aria-invalid="true"] { border-color: var(--ev-danger); }
.portal-shell .form-check-input { min-width: 1.125rem; min-height: 1.125rem; border-color: #9baabd; }
.portal-shell .form-check-input:checked { background-color: var(--ev-primary); border-color: var(--ev-primary); }
.portal-shell .form-check-label { padding-left: .25rem; line-height: 1.7; }
.portal-shell .portal-choice-group { gap: .65rem; }
.portal-shell .portal-choice-group label { padding: .4rem 0; min-height: 2.75rem; }
.portal-shell .input-group { align-items: stretch; }
.portal-shell .input-group > :not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.portal-shell .input-group > :not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.portal-shell .input-group-text { background: #f8fafc; border-color: var(--ev-border-strong); font-size: .8125rem; }
.portal-shell input[type="file"].form-control { border-radius: .875rem; padding: .65rem .85rem; }
.portal-shell .btn { min-height: 2.75rem; padding: .65rem 1.125rem; border-radius: 1.5rem; font-size: .8125rem; font-weight: 500; line-height: 1.6; letter-spacing: 0; box-shadow: none; }
.portal-shell .btn-primary { --bs-btn-hover-bg: #043f84; --bs-btn-hover-border-color: #043f84; }
.portal-shell .btn-outline-secondary { --bs-btn-border-color: var(--ev-border-strong); --bs-btn-hover-bg: #f0f4f9; }
.portal-shell .btn-outline-primary { --bs-btn-border-color: #b9cee8; }
.portal-shell .btn-sm { padding: .55rem .875rem; font-size: .75rem; }
.portal-shell .btn-link { text-underline-offset: .2em; }
.portal-shell .btn-group > .btn:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.portal-shell .btn-group > .btn:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }

/* Lists and filters: quieter framing, readable rows, no hidden financial data. */
.portal-shell .portal-filter-bar { background: #fff; border: 1px solid var(--ev-border); border-radius: 1.25rem; padding: 1.25rem; margin-inline: 0; }
.portal-shell .portal-filter-bar.row { padding: .5rem .75rem 1.25rem; }
.portal-shell :is(.portal-table-region, .statement-sheet) { border-color: var(--ev-border); border-radius: 1.25rem; box-shadow: none; background: #fff; }
.portal-shell :is(.table, .portal-table) { --bs-table-bg: #fff; --bs-table-color: var(--ev-text); --bs-table-border-color: var(--ev-border); --bs-table-hover-bg: #f8fafd; --bs-table-striped-bg: #fafbfd; font-size: .8125rem; line-height: 1.6; }
.portal-shell :is(.table, .portal-table) > thead > tr > th { color: #58687a; background: #f8fafc; border-color: var(--ev-border); font-size: .75rem; font-weight: 500; letter-spacing: 0; text-transform: none; padding: 1rem; }
.portal-shell .portal-table > tbody > tr > :is(td, th) { padding: .95rem 1rem; border-color: #edf1f6; vertical-align: middle; }
.portal-shell .portal-table tbody th { font-weight: 500; }
.portal-shell .portal-table a:not(.btn) { font-weight: 500; }
.portal-shell .portal-table :is(td, th) .small { font-size: .75rem; }
.portal-shell .portal-status { font-size: .75rem; font-weight: 500; padding: .3rem .65rem; }
.portal-shell .badge { font-size: .6875rem; font-weight: 500; padding: .4rem .6rem; }
.portal-shell .portal-pagination { padding-block: 1rem; font-size: .75rem; }
.portal-shell .portal-pagination .page-link { min-width: 2.75rem; min-height: 2.75rem; display: inline-flex; justify-content: center; align-items: center; border-color: var(--ev-border); font-weight: 500; }
.portal-shell :is(.portal-tabs, .portal-section-tabs) { gap: .35rem; box-shadow: none; border-color: var(--ev-border); }
.portal-shell .portal-tabs { padding: .4rem; border-radius: 1.125rem; }
.portal-shell .portal-tab { border-radius: .8rem; font-size: .8125rem; font-weight: 500; padding: .65rem 1rem; }
.portal-shell .portal-section-tabs { padding-bottom: .65rem; margin-bottom: 1.75rem; }
.portal-shell .portal-section-tabs__link { font-size: .8125rem; font-weight: 500; border-bottom-width: 2px; border-radius: .75rem; }

/* Dashboard, energy and finance share the same restrained number scale. */
.portal-shell :is(.portal-kpi, .overview-kpi, .overview-panel, .finance-metric, .finance-panel, .finance-payment-list) { background: #fff; border-color: var(--ev-border); border-radius: 1.25rem; box-shadow: var(--ev-shadow-card); }
.portal-shell .portal-kpi { padding: 1.5rem; }
.portal-shell .portal-kpi::before { content: none; }
.portal-shell :is(.portal-kpi__label, .overview-kpi-top h3, .finance-metric__label) { font-size: .8125rem; font-weight: 500; color: var(--ev-text-muted); }
.portal-shell :is(.portal-kpi__value, .overview-kpi-value, .finance-metric__value, .portal-metric) { font-size: clamp(1.375rem, 1.8vw, 1.75rem); line-height: 1.4; font-weight: 500; letter-spacing: -.035em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.portal-shell :is(.overview-kpi--accent, .finance-metric--primary) { background: #f0f6fd; color: var(--ev-text); border-color: #dbe7f6; }
.portal-shell .finance-metric--primary .finance-metric__label { color: var(--ev-text-muted); }
.portal-shell .overview-heading { margin-top: 0; }
.portal-shell .overview-heading > div > p:last-child { font-size: .8125rem; line-height: 1.7; }
.portal-shell .overview-kpi { padding: 1.25rem; }
.portal-shell .overview-kpi-top { margin-bottom: .75rem; }
.portal-shell .overview-filters { border-radius: 1.25rem; }
.portal-shell .overview-periods { background: #f4f7fb; border-radius: 1.5rem; flex-wrap: wrap; }
.portal-shell .overview-periods a { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; border-radius: 1.25rem; font-size: .8125rem; font-weight: 500; }
.portal-shell .overview-periods a.is-active { background: var(--ev-primary-soft); color: var(--ev-primary); box-shadow: none; }
.portal-shell .overview-filter-form label { font-size: .75rem; font-weight: 500; }
.portal-shell .overview-arrow { min-width: 2.75rem; min-height: 2.75rem; border-radius: 50%; }
.portal-shell :is(.overview-link, .overview-tag, .overview-live a, .overview-ranking-station strong, .overview-data summary) { font-weight: 500; }
.portal-shell .overview-chart-switch { border-radius: .875rem; }
.portal-shell .overview-chart-switch button { min-height: 2.75rem; padding-inline: .75rem; border-radius: .65rem; font-weight: 500; }
.portal-shell :is(.overview-donut-center strong, .overview-fleet-highlight > strong) { font-size: 1.75rem; font-weight: 500; }
.portal-shell .overview-averages strong { font-size: 1.125rem; font-weight: 500; }
.portal-shell .statement-totals dd { font-size: 1.375rem; font-weight: 500; }
.portal-shell :is(.finance-payment__amount, .finance-breakdown dd, .statement-net) { font-weight: 500; }
.portal-shell .statement-filter-toggle { font-size: .8125rem; font-weight: 500; }

/* Details, configuration, notifications and embedded exports. */
.portal-shell .ocpp-surface { border-radius: 1.25rem; }
.portal-shell .ocpp-summary dd { font-size: .875rem; font-weight: 500; }
.portal-shell :is(.ocpp-note, .ocpp-help, .company-result) { border-radius: 1rem; }
.portal-shell .organization-heading { background: #fff; }
.portal-shell .organization-icon { border-radius: 1rem; }
.portal-shell .organization-save { border-color: var(--ev-border); }
.portal-shell .portal-notifications { border: 1px solid var(--ev-border); border-radius: 1.25rem; overflow: hidden; }
.portal-shell .portal-notifications .list-group-item { padding: 1.25rem 1.5rem; border-width: 0 0 1px; border-color: #edf1f6; }
.portal-shell .portal-notifications .list-group-item:last-child { border-bottom: 0; }
.portal-shell .portal-notifications .list-group-item > div { min-width: 0; overflow-wrap: anywhere; }
.portal-shell .portal-notifications strong { font-size: .875rem; font-weight: 500; }
.portal-shell .reports-inline { border-color: var(--ev-border); border-radius: 1.25rem; box-shadow: none; }
.portal-shell .reports-inline > summary { min-height: 3.25rem; padding: 1rem 1.25rem; font-size: .8125rem; font-weight: 500; }
.portal-shell .reports-field label { font-size: .8125rem; font-weight: 500; }
.portal-shell .reports-primary-action { border-radius: 1.5rem; font-weight: 500; }

/* Safety information stays semantic and visible, even when visual weight softens. */
.portal-shell :is(.alert, .portal-alert, .portal-form-error-summary) { border-radius: 1rem; font-size: .8125rem; line-height: 1.7; }
.portal-shell .portal-empty { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--ev-border); background: #fff; border-radius: 1.25rem; }
.portal-shell .portal-empty__mark { color: var(--ev-primary); background: var(--ev-primary-soft); border-radius: 1rem; }
.portal-shell .portal-empty h2 { font-size: 1rem; font-weight: 500; }
.portal-shell .portal-empty p { font-size: .8125rem; max-width: 40rem; line-height: 1.7; }
.portal-shell .modal-content { border: 1px solid var(--ev-border); border-radius: 1.25rem; box-shadow: var(--ev-shadow-floating); }
.portal-shell :is(.modal-header, .modal-body, .modal-footer) { padding: 1.25rem; }
.portal-shell .modal-title { font-size: 1.125rem; font-weight: 500; }
.portal-shell.portal-error-shell { display: block; background: #fff; }
.portal-shell.portal-error-shell .portal-error__content { max-width: 30rem; }
.portal-shell.portal-error-shell .elyvo-brand-symbol { width: 4rem; height: 4rem; }
.portal-shell.portal-error-shell .portal-error h1 { font-size: 1.875rem; line-height: 1.35; font-weight: 500; }
.portal-shell.portal-error-shell .portal-error__eyebrow { font-weight: 500; text-transform: none; letter-spacing: 0; }
.portal-shell.portal-error-shell .portal-error__content > p:not(.portal-error__eyebrow) { font-size: .8125rem; line-height: 1.7; }
.portal-shell [hidden] { display: none !important; }

@media (min-width: 992px) {
  .portal-shell .overview-filter-form { flex-wrap: wrap; justify-content: flex-end; }
  .portal-shell .overview-filters { flex-wrap: wrap; }
}
@media (max-width: 991.98px) {
  .portal-shell .portal-main__inner { padding: 1.5rem 1.25rem 2rem; }
  /* Do not disable zoom. 16px fields prevent involuntary iOS focus zoom. */
  .portal-shell :is(.form-control, .form-select),
  .portal-shell .portal-field :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) { font-size: 1rem; }
  .portal-shell .portal-organization-switcher { flex-wrap: wrap; gap: .35rem; }
  .portal-shell .portal-organization-switcher .form-select { min-height: 2.75rem; padding-block: .5rem; }
  .portal-shell .portal-topbar { gap: .5rem; padding-inline: .75rem; }
}
@media (max-width: 575.98px) {
  .portal-shell .portal-main__inner { padding-inline: max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right)); }
  .portal-shell .portal-main h1 { font-size: 1.625rem; }
  .portal-shell .portal-page-header { gap: 1rem; margin-bottom: 1.5rem !important; }
  .portal-shell .portal-page-header > .btn { align-self: flex-start; }
  .portal-shell .portal-main .card { --bs-card-spacer-y: 1.125rem; --bs-card-spacer-x: 1.125rem; }
  .portal-shell .portal-kpi, .portal-shell .overview-kpi { padding: 1rem; }
  .portal-shell .overview-kpi-top h3 { font-size: .75rem; }
  .portal-shell .overview-kpi-value { font-size: 1.375rem; }
  .portal-shell .overview-periods a { padding-inline: .7rem; }
  .portal-shell .overview-filter-form { width: 100%; }
  .portal-shell .overview-update { flex-wrap: wrap; }
  .portal-shell .overview-date-nav { flex-wrap: wrap; gap: .5rem; }
  .portal-shell .overview-panel-heading { padding: 1.125rem; }
  .portal-shell .overview-averages { grid-template-columns: 1fr; }
  .portal-shell .overview-averages > div + div { padding: .75rem 0 0; border-left: 0; border-top: 1px solid var(--ev-border); }
  .portal-shell .portal-notifications .list-group-item { padding: 1.125rem; }
  .portal-shell .ocpp-input-group { flex-wrap: wrap; }
  .portal-shell .ocpp-input-group > .form-control { flex-basis: 100%; }
  .portal-shell .ocpp-input-group > .btn { margin-top: .5rem; margin-left: 0; margin-right: .5rem; }
  .portal-shell .ocpp-input-group > * { border-radius: .875rem !important; }
  .portal-shell .portal-timeline > li { flex-wrap: wrap; }
  .portal-shell .portal-timeline time { padding-left: .5rem; }
  .portal-shell .portal-filter-bar.row { --bs-gutter-x: 1rem; }
  .portal-shell .reports-history .portal-table tbody td { padding: 0; border: 0; }
}
@media (max-width: 359.98px) {
  .portal-shell .overview-kpis { grid-template-columns: 1fr; }
  .portal-shell .portal-topbar__actions { gap: .25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-shell *, .portal-shell *::before, .portal-shell *::after { transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .portal-shell :is(.portal-nav-destination__control.is-active, .portal-nav-link.is-active, .portal-section-tabs__link.is-active) { border: 2px solid Highlight; }
}
@media print {
  .portal-shell { background: #fff; }
  .portal-shell .portal-main__inner { max-width: none; padding: 0; }
  .portal-shell :is(.portal-kpi, .overview-kpi, .overview-panel, .card) { box-shadow: none; }
}
