@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/space-grotesk-500-c09702de.woff2") format("woff2");
}

.individual-query-page { max-width: 92rem; }
.individual-query-page.individual-score-page { width: 100%; max-width: none; }
.individual-query-page:has(.individual-query-hero) { display: grid; width: 100%; max-width: none; gap: 1.5rem; margin: 0; }
.individual-query-page:has(.individual-query-hero) > * { width: 100%; min-width: 0; justify-self: stretch; }
.individual-query-hero-actions { align-items: center; }
.individual-query-hero-actions .button-link { min-height: 2.55rem; gap: .45rem; padding-inline: .9rem; border-radius: 999px; }
.individual-query-hero-actions .button-link .icon { width: 1rem; height: 1rem; }
.individual-query-hero .supplier-hero-star .icon { width: 1.15rem; height: 1.15rem; }
.individual-query-history { margin: 0; }
.individual-query-history .compact-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; margin-bottom: 1rem; padding: .7rem; border: 1px solid var(--color-brand-200); border-radius: 1rem; background: linear-gradient(135deg, var(--color-brand-50), var(--color-surface) 72%); box-shadow: var(--shadow-sm); }
.individual-query-history .compact-search input[type="search"] { width: 100%; min-height: 2.75rem; padding: .65rem .85rem; color: var(--color-ink); border: 1px solid var(--color-border); border-radius: .7rem; background: var(--color-surface); }
.individual-query-history .compact-search input[type="submit"] { min-height: 2.75rem; padding-inline: 1rem; border-radius: .7rem; }
.individual-query-header,
.individual-result-header { align-items: flex-start; gap: 1.5rem; }
.individual-query-form-panel { max-width: 78rem; margin-inline: auto; }
.individual-result-summary { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 1rem; margin-block: 1.25rem; }
.individual-result-summary .risk-card { display: grid; align-content: start; gap: .45rem; min-height: 10rem; }
.individual-result-summary .risk-card > small { color: var(--color-text-muted); font-weight: 700; }
.individual-result-summary .risk-card > strong { color: var(--color-brand-900); font-size: clamp(1.65rem, 3vw, 2.6rem); line-height: 1.05; }
.individual-result-primary { background: linear-gradient(145deg, color-mix(in srgb, var(--color-brand-100) 62%, white), white); }
.individual-source-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.individual-source-grid span { display: grid; gap: .2rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: .85rem; }
.individual-source-grid small,
.table-secondary { display: block; color: var(--color-text-muted); }
.individual-analysis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-block: 1.25rem; }
.individual-analysis-section { min-width: 0; }
.individual-analysis-section h2 { margin-bottom: .65rem; font-size: 1.08rem; }
.individual-analysis-section p,
.individual-analysis-section li { color: var(--color-text-muted); line-height: 1.6; }
.individual-agent-answer { max-width: 58rem; margin: 1.25rem auto; }
.individual-agent-answer > p { line-height: 1.7; }
.individual-agent-trace { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-block: 1rem; }
.individual-agent-trace span { display: grid; gap: .2rem; padding: .85rem; border: 1px solid var(--color-border); border-radius: .75rem; }
@media (max-width: 760px) {
  .individual-query-page:has(.individual-query-hero) { gap: 1rem; }
  .individual-query-hero-actions { display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .individual-query-hero-actions > span,
  .individual-query-hero-actions .button-link { justify-content: center; }
  .individual-result-summary { grid-template-columns: 1fr; }
  .individual-source-grid { grid-template-columns: 1fr; }
  .individual-analysis-grid { grid-template-columns: 1fr; }
  .individual-agent-trace { grid-template-columns: 1fr; }
  .individual-query-header .button-link,
  .individual-result-header .button-link { width: 100%; }
  .individual-identity-documents { grid-template-columns: 1fr; }
}

/* CopeNET target loader */
.copenet-loader {
  --copenet-loader-size: 2.65rem;
  position: relative;
  display: inline-grid;
  width: var(--copenet-loader-size);
  height: var(--copenet-loader-size);
  flex: 0 0 var(--copenet-loader-size);
  place-items: center;
  color: var(--color-brand-700, #075ea9);
  filter: drop-shadow(0 5px 8px rgb(7 94 169 / 18%));
  isolation: isolate;
}
.copenet-loader::after {
  position: absolute;
  z-index: -1;
  inset: 18%;
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-brand-200, #c7ddf2) 54%, transparent);
  box-shadow: 0 0 1.1rem color-mix(in srgb, var(--color-brand-300, #91bbe0) 42%, transparent);
  content: "";
  animation: copenet-loader-glow 1.35s ease-in-out infinite;
}
.copenet-loader--small { --copenet-loader-size: 1.7rem; }
.copenet-loader--medium { --copenet-loader-size: 2.65rem; }
.copenet-loader--large { --copenet-loader-size: clamp(4.75rem, 8vw, 6rem); }
.copenet-loader svg { display: block; width: 100%; height: 100%; overflow: visible; }
.copenet-loader__halo { fill: none; stroke: color-mix(in srgb, var(--color-brand-200, #c7ddf2) 74%, transparent); stroke-width: 1.25; }
.copenet-loader__outer-orbit,
.copenet-loader__inner-orbit,
.copenet-loader__sweep {
  transform-box: view-box;
  transform-origin: 32px 32px;
  will-change: transform;
}
.copenet-loader__outer-orbit { animation: copenet-loader-orbit 1.4s linear infinite; }
.copenet-loader__outer-orbit circle { fill: none; stroke: currentColor; stroke-width: 5; stroke-linecap: round; stroke-dasharray: 17 8; }
.copenet-loader__crosshair { fill: none; stroke: var(--color-brand-900, #0b2c5f); stroke-width: 5; stroke-linecap: round; }
.copenet-loader__inner-orbit { animation: copenet-loader-counter-orbit 1.05s linear infinite; }
.copenet-loader__inner-orbit circle { fill: none; stroke: var(--color-brand-500, #3e85c7); stroke-width: 4.5; stroke-linecap: round; stroke-dasharray: 15 10; }
.copenet-loader__sweep { fill: none; stroke: var(--color-brand-500, #3e85c7); stroke-width: 2; stroke-linecap: round; opacity: .48; animation: copenet-loader-orbit .95s linear infinite; }
.copenet-loader__core { fill: var(--color-brand-600, #176db4); animation: copenet-loader-core 1.1s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.copenet-loader__core-light { fill: rgb(255 255 255 / 72%); }

@keyframes copenet-loader-orbit { to { transform: rotate(360deg); } }
@keyframes copenet-loader-counter-orbit { to { transform: rotate(-360deg); } }
@keyframes copenet-loader-core { 50% { transform: scale(.78); opacity: .72; } }
@keyframes copenet-loader-glow { 50% { opacity: .4; transform: scale(.78); } }

@media (prefers-reduced-motion: reduce) {
  .copenet-loader::after,
  .copenet-loader__outer-orbit,
  .copenet-loader__inner-orbit,
  .copenet-loader__sweep,
  .copenet-loader__core { animation: none; }
}

.portal-theme-dark .copenet-loader {
  color: var(--color-brand-300, #91bbe0);
  filter: drop-shadow(0 5px 10px rgb(76 155 221 / 28%));
}
.portal-theme-dark .copenet-loader__crosshair { stroke: var(--color-brand-100, #deedf9); }
.portal-theme-dark .copenet-loader__inner-orbit circle,
.portal-theme-dark .copenet-loader__sweep { stroke: var(--color-brand-300, #91bbe0); }
.portal-theme-dark .copenet-loader__core { fill: var(--color-brand-400, #65a0d3); }

/* Full-page navigation, reloads and submissions; local updates keep their own loaders. */
html:has(> body.app-body) > .turbo-progress-bar,
html:has(> body.wizard-body) > .turbo-progress-bar,
.app-body .turbo-progress-bar,
.wizard-body .turbo-progress-bar { display: none !important; }
.page-navigation-loader {
  position: fixed;
  z-index: 300;
  inset: 0;
  display: grid;
  padding: 1.5rem;
  place-items: center;
  color: var(--color-ink, #17213b);
  background: radial-gradient(circle at center, rgb(229 241 252 / 72%), rgb(247 250 253 / 86%) 48%, rgb(247 250 253 / 92%));
  backdrop-filter: blur(7px);
  text-align: center;
}
.page-navigation-loader[hidden] { display: none; }
[data-page-navigation-loader-initial-loading] .page-navigation-loader[hidden] { display: grid; }
.page-navigation-loader__card {
  display: grid;
  width: min(100%, 22rem);
  min-height: 15rem;
  padding: 2rem;
  gap: .65rem;
  place-items: center;
  align-content: center;
  border: 1px solid color-mix(in srgb, var(--color-brand-300, #91bbe0) 55%, #fff);
  border-radius: 1.25rem;
  background: color-mix(in srgb, var(--color-surface, #fff) 94%, transparent);
  box-shadow: 0 24px 70px rgb(15 55 91 / 18%);
}
.page-navigation-loader__card strong { margin-top: .35rem; font-size: clamp(1.15rem, 3vw, 1.35rem); }
.page-navigation-loader__card small { color: var(--color-muted, #64748b); font-size: .92rem; }
.portal-theme-dark .page-navigation-loader {
  color: var(--color-ink);
  background: radial-gradient(circle at center, rgb(31 58 86 / 82%), rgb(17 24 39 / 94%) 52%, rgb(11 18 32 / 97%));
}
.portal-theme-dark .page-navigation-loader__card {
  border-color: color-mix(in srgb, var(--color-brand-400, #65a0d3) 38%, var(--color-border));
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  box-shadow: 0 24px 70px rgb(0 0 0 / 42%);
}
.portal-theme-dark .page-navigation-loader__card small { color: #b8c7d9; }

@media (max-width: 480px) {
  .page-navigation-loader { padding: 1rem; }
  .page-navigation-loader__card { min-height: 13rem; padding: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .page-navigation-loader,
  .page-navigation-loader__card { transition: none; }
}

/* Global commercial pricing */
.commercial-pricing-page { display: grid; width: 100%; gap: 1.25rem; }
.pricing-tabs { display: flex; gap: .35rem; padding: .35rem; overflow-x: auto; border: 1px solid var(--color-border); border-radius: .85rem; background: var(--color-surface); box-shadow: var(--shadow-sm); }
.pricing-tab { min-height: 2.8rem; padding: .65rem 1rem; color: var(--color-muted); border: 0; border-radius: .65rem; background: transparent; font: inherit; font-size: .86rem; font-weight: 750; white-space: nowrap; cursor: pointer; }
.pricing-tab:hover { color: var(--color-brand-800); background: var(--color-brand-50); }
.pricing-tab.is-active { color: #fff; background: var(--color-brand-800); box-shadow: 0 5px 14px rgb(19 82 145 / 18%); }
.pricing-tab:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.pricing-tab-panel[hidden] { display: none; }
.app-content .form-stack.commercial-pricing-form:not(.drawer-form) { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.app-content .form-stack.commercial-pricing-form:not(.drawer-form) > * { min-width: 0; grid-column: 1 / -1; }
.pricing-user-panel, .pricing-phase-panel { padding: clamp(1rem, 2vw, 1.5rem); }
.pricing-save-state { display: inline-flex; gap: .45rem; align-items: center; width: fit-content; margin: .85rem 0 1rem; padding: .45rem .7rem; color: var(--color-success-700, #168252); border-radius: 999px; background: var(--color-success-50, #edf9f3); font-size: .76rem; font-weight: 750; }
.pricing-save-state[data-state="pending"] { color: var(--color-brand-800); background: var(--color-brand-50); }
.pricing-save-state[data-state="warning"] { color: #8a5300; background: #fff7df; }
.pricing-save-state[data-state="error"] { color: var(--color-danger-700, #b42318); background: #fff0ee; }
.pricing-user-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.pricing-user-field { display: grid; gap: .45rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface-subtle, #f8fafc); }
.pricing-user-field label, .pricing-field-label { font-weight: 750; }
.pricing-user-field small { color: var(--color-muted); }
.currency-input, .table-currency-input { display: flex; min-width: 0; align-items: center; overflow: hidden; border: 1px solid var(--color-border); border-radius: .6rem; background: var(--color-surface); }
.currency-input:focus-within, .table-currency-input:focus-within { border-color: var(--color-brand-500); box-shadow: 0 0 0 3px rgb(109 94 252 / 14%); }
.currency-input span, .table-currency-input span { padding: .65rem .7rem; color: var(--color-muted); background: var(--color-surface-subtle, #f8fafc); font-size: .72rem; font-weight: 800; }
.currency-input input, .table-currency-input input { width: 100%; min-width: 6.5rem; border: 0; box-shadow: none; font-variant-numeric: tabular-nums; }
.pricing-table-scroll { margin-top: 1rem; }
.pricing-table { min-width: 60rem; border-collapse: separate; border-spacing: 0; }
.pricing-table th { padding-block: .85rem; color: #405363; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); background: var(--color-surface-subtle, #f8fafc); font-size: .72rem; letter-spacing: .055em; text-transform: uppercase; white-space: nowrap; }
.pricing-table tbody tr { transition: background 150ms ease; }
.pricing-table tbody tr:hover { background: color-mix(in srgb, var(--color-brand-50) 55%, transparent); }
.pricing-table tbody td { padding-block: 1rem; border-bottom: 1px solid var(--color-border); }
.pricing-table th:nth-child(1) { width: 6%; }
.pricing-table th:nth-child(2) { width: 26%; }
.pricing-table td { vertical-align: middle; }
.pricing-phase-badge { display: inline-flex; padding: .38rem .58rem; color: var(--color-brand-800); border-radius: 999px; background: var(--color-brand-50); font-size: .76rem; font-weight: 800; white-space: nowrap; }
.pricing-service-cell { display: grid; gap: .35rem; }
.pricing-inline-editor { position: relative; width: 100%; }
.pricing-inline-value { display: inline-flex; max-width: 100%; gap: .45rem; align-items: center; padding: .35rem .45rem; color: var(--color-ink); border: 1px solid transparent; border-radius: .45rem; background: transparent; font: inherit; font-size: .84rem; text-align: left; cursor: pointer; }
.pricing-inline-value:hover, .pricing-inline-value[aria-expanded="true"] { color: var(--color-brand-800); border-color: var(--color-brand-200); background: var(--color-brand-50); }
.pricing-inline-value:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 1px; }
.pricing-inline-value [data-role="display-value"] { overflow: hidden; text-overflow: ellipsis; }
.pricing-edit-mark { flex: none; color: var(--color-brand-600); font-size: .78rem; opacity: 0; transition: opacity 120ms ease; }
.pricing-inline-value:hover .pricing-edit-mark, .pricing-inline-value:focus .pricing-edit-mark, .pricing-inline-value[aria-expanded="true"] .pricing-edit-mark { opacity: 1; }
.pricing-editor-popover { position: absolute; z-index: 40; top: calc(100% + .65rem); left: 0; display: grid; width: max-content; min-width: 22rem; max-width: min(34rem, calc(100vw - 3rem)); grid-template-columns: minmax(12rem, 1fr) 2.8rem 2.8rem; gap: .55rem; padding: .9rem; border: 1px solid var(--color-border); border-radius: .8rem; background: var(--color-surface); box-shadow: 0 16px 40px rgb(31 42 55 / 20%); }
.pricing-editor-popover[hidden] { display: none; }
.pricing-editor-popover::before { position: absolute; top: -.42rem; left: 1.4rem; width: .75rem; height: .75rem; border-top: 1px solid var(--color-border); border-left: 1px solid var(--color-border); background: var(--color-surface); content: ""; transform: rotate(45deg); }
.pricing-table td:nth-child(6) .pricing-editor-popover { right: 0; left: auto; }
.pricing-table td:nth-child(6) .pricing-editor-popover::before { right: 1.4rem; left: auto; }
.pricing-editor-control { display: flex; min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: .55rem; background: var(--color-surface); }
.pricing-editor-control > span { display: grid; padding: .65rem; place-items: center; color: var(--color-muted); background: var(--color-surface-subtle, #f8fafc); font-size: .72rem; font-weight: 800; }
.pricing-editor-control input[type="number"], .pricing-editor-control textarea { width: 100%; min-width: 0; border: 0; box-shadow: none; }
.pricing-editor-control textarea { min-height: 3.2rem; resize: vertical; }
.pricing-editor-check { align-items: center; overflow: visible; border: 0; }
.pricing-editor-checkbox-label { display: flex !important; gap: .55rem; align-items: center; margin: 0 !important; padding: .65rem .75rem; border: 1px solid var(--color-border); border-radius: .55rem; white-space: nowrap; }
.pricing-editor-checkbox-label input { width: auto; }
.pricing-editor-action { display: grid; width: 2.8rem; height: 2.8rem; padding: 0; place-items: center; color: #fff; border: 0; border-radius: .55rem; font-size: 1.15rem; font-weight: 850; cursor: pointer; }
.pricing-editor-confirm { background: var(--color-brand-700); }
.pricing-editor-confirm:hover { background: var(--color-brand-800); }
.pricing-editor-cancel { background: #e45757; }
.pricing-editor-cancel:hover { background: #bc3030; }
.pricing-included-check { display: flex; gap: .45rem; align-items: center; margin-top: .5rem; color: var(--color-muted); font-size: .76rem; font-weight: 650; }
.pricing-included-check input { width: auto; }
.pricing-calculated { display: inline-block; padding: .72rem 0; white-space: nowrap; font-weight: 750; font-variant-numeric: tabular-nums; }
.pricing-profit { color: var(--color-success-700, #168252); }
.pricing-included-label { display: inline-block; max-width: 9rem; padding: .45rem .65rem; border-radius: 999px; color: var(--color-brand-800); background: var(--color-brand-50); font-size: .75rem; font-weight: 750; }
.pricing-included-label[hidden], [data-role="sale-wrapper"][hidden] { display: none; }
.pricing-simulator-panel { padding: clamp(1rem, 2vw, 1.5rem); }
.pricing-simulator-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 23rem); gap: 1.25rem; align-items: start; margin-top: 1rem; }
.pricing-charge-table { min-width: 38rem; }
.pricing-charge-table td { vertical-align: middle; }
.pricing-charge-table td:first-child strong, .pricing-charge-table td:first-child small { display: block; }
.pricing-charge-table td:first-child small { max-width: 25rem; margin-top: .2rem; color: var(--color-muted); }
.pricing-charge-table input { width: 6rem; min-height: 2.5rem; text-align: right; font-variant-numeric: tabular-nums; }
.pricing-charge-table td:nth-child(n+2) { white-space: nowrap; font-variant-numeric: tabular-nums; }
.pricing-total-card { display: grid; gap: .2rem; padding: 1.25rem; color: var(--color-ink); border: 1px solid var(--color-brand-200); border-radius: 1rem; background: linear-gradient(145deg, var(--color-brand-50), var(--color-surface)); box-shadow: var(--shadow-sm); }
.pricing-total-card > div { display: flex; gap: 1rem; justify-content: space-between; padding: .75rem 0; border-bottom: 1px solid var(--color-border); }
.pricing-total-card > div strong { white-space: nowrap; font-variant-numeric: tabular-nums; }
.pricing-total-card .pricing-grand-total { margin-top: .35rem; padding: 1rem; color: #fff; border: 0; border-radius: .75rem; background: var(--color-brand-800); }
.pricing-grand-total strong { font-size: 1.3rem; }
.pricing-total-card .pricing-gtq-total { display: grid; gap: .25rem; border: 0; }
.pricing-gtq-total strong { color: var(--color-brand-800); font-size: 1.55rem; }
.pricing-gtq-total small { grid-column: 1 / -1; color: var(--color-muted); }
.exchange-rate-panel { padding: clamp(1rem, 2vw, 1.5rem); }
.exchange-rate-current { display: grid; gap: .2rem; min-width: 12rem; padding: .75rem 1rem; border: 1px solid var(--color-brand-200); border-radius: var(--radius-md); background: var(--color-brand-50); text-align: right; }
.exchange-rate-current small { color: var(--color-muted); }
.exchange-rate-current strong { color: var(--color-brand-800); font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.exchange-rate-form { display: grid; grid-template-columns: minmax(14rem, 22rem) auto; gap: 1rem; align-items: end; margin-top: 1rem; }
.exchange-rate-form > div { display: grid; gap: .4rem; }
.exchange-rate-history { margin-top: 1.25rem; }
@media (max-width: 720px) { .pricing-user-grid { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .exchange-rate-form { grid-template-columns: 1fr; } .exchange-rate-current { text-align: left; } }
@media (max-width: 1350px) { .pricing-simulator-layout { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .pricing-editor-popover { position: fixed; z-index: 100; top: auto; right: 1rem; bottom: 1rem; left: 1rem; width: auto; min-width: 0; grid-template-columns: minmax(0, 1fr) 2.8rem 2.8rem; } .pricing-editor-popover::before { display: none; } }

/* Supplier directory */
.supplier-page { display: grid; width: 100%; max-width: none; gap: 1.5rem; margin: 0; }
.supplier-page > * { width: 100%; min-width: 0; justify-self: stretch; }
.supplier-page > * + * { margin-top: 1rem; }
.supplier-page-heading { margin-bottom: 0; }
.supplier-catalog-hero { position: relative; display: grid; width: 100%; min-width: 0; grid-template-columns: minmax(0, 1fr) clamp(9rem, 16vw, 13rem); min-height: 11.5rem; padding: clamp(1.1rem, 2vw, 1.5rem); overflow: hidden; color: var(--color-ink); border: 1px solid var(--color-brand-200); border-radius: 1.5rem; background: radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--color-brand-200) 62%, transparent), transparent 28%), linear-gradient(125deg, var(--color-surface), var(--color-brand-50)); box-shadow: 0 18px 50px rgb(7 94 169 / 9%); }
.supplier-catalog-copy { position: relative; z-index: 2; display: grid; align-content: center; max-width: 58rem; }
.supplier-catalog-copy h1 { margin: 0; font-family: var(--font-display); font-size: clamp(2.25rem, 3.5vw, 3.4rem); letter-spacing: -0.05em; line-height: 0.98; }
.supplier-catalog-copy > p:not(.eyebrow) { max-width: 48rem; margin: 0.65rem 0 0; color: var(--color-muted); font-size: clamp(0.9rem, 1.2vw, 1.05rem); line-height: 1.45; }
.supplier-catalog-summary { display: flex; gap: 0.6rem; margin-top: 0.85rem; flex-wrap: wrap; }
.supplier-catalog-summary > span { display: flex; gap: 0.4rem; align-items: baseline; padding: 0.45rem 0.7rem; border: 1px solid color-mix(in srgb, var(--color-brand-200) 72%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--color-surface) 82%, transparent); backdrop-filter: blur(10px); }
.supplier-catalog-summary strong { color: var(--color-brand-800); font-family: var(--font-display); font-size: 1rem; }
.supplier-catalog-summary small { color: var(--color-muted); font-size: 0.72rem; }
.supplier-hero-visual { position: relative; display: grid; min-height: 8rem; place-items: center; }
.supplier-hero-icon { position: relative; z-index: 2; display: grid; width: clamp(4.5rem, 7vw, 6rem); height: clamp(4.5rem, 7vw, 6rem); place-items: center; color: #fff; border-radius: 1.35rem; background: linear-gradient(145deg, var(--color-brand-600), var(--color-brand-900)); box-shadow: 0 16px 38px rgb(7 94 169 / 23%); transform: rotate(-5deg); }
.supplier-hero-icon .icon { width: 46%; height: 46%; }
.supplier-hero-star { position: absolute; z-index: 3; right: 15%; bottom: 8%; display: grid; width: 2.35rem; height: 2.35rem; place-items: center; color: #fff; border: 3px solid var(--color-surface); border-radius: 50%; background: #d98400; box-shadow: var(--shadow-md); }
.supplier-hero-orbit { position: absolute; border: 1px solid color-mix(in srgb, var(--color-brand-500) 35%, transparent); border-radius: 50%; }
.supplier-hero-orbit-one { width: 8.5rem; height: 8.5rem; }
.supplier-hero-orbit-two { width: 12rem; height: 12rem; border-style: dashed; }
.supplier-search-card { display: block; width: 100%; padding: 0.75rem; border: 1px solid var(--color-brand-200); border-radius: 1rem; background: linear-gradient(135deg, var(--color-brand-50), var(--color-surface) 72%); box-shadow: var(--shadow-sm); }
.supplier-search-form { display: grid; width: 100%; grid-template-columns: auto minmax(14rem, 1fr) minmax(9rem, 0.34fr) minmax(10rem, 0.4fr) auto auto; gap: 0.6rem; align-items: center; }
.supplier-search-icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; color: var(--color-brand-700); border-radius: 0.7rem; background: var(--color-brand-100); }
.supplier-search-control { min-width: 0; }
.supplier-search-control input, .supplier-search-control select { width: 100%; min-height: 2.65rem; padding: 0.6rem 0.75rem; color: var(--color-ink); border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); }
.supplier-search-form > input[type="submit"] { min-height: 2.65rem; }
.supplier-search-clear { padding-inline: 0.25rem; white-space: nowrap; }
.supplier-section { display: grid; gap: 0.9rem; }
.supplier-ranking-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.8rem; }
.supplier-ranking-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.8rem; min-width: 0; padding: 1rem; align-items: center; color: var(--color-ink); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-sm); text-decoration: none; transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease; }
.supplier-ranking-card:hover { color: var(--color-ink); border-color: var(--color-brand-200); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.supplier-rank { display: grid; width: 2rem; height: 2rem; place-items: center; color: var(--color-brand-800); border-radius: 50%; background: var(--color-brand-100); font-size: 0.78rem; font-weight: 850; }
.supplier-ranking-copy { display: grid; min-width: 0; gap: 0.2rem; }
.supplier-ranking-copy small { overflow: hidden; color: var(--color-muted); font-size: 0.7rem; text-overflow: ellipsis; white-space: nowrap; }
.supplier-ranking-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.supplier-ranking-copy > span { color: var(--color-muted); font-size: 0.78rem; }
.supplier-stars, .supplier-rating-inline > span:first-child { color: #d98400; letter-spacing: 0.05em; }
.supplier-stars-empty { color: #cbd3dc; }
.supplier-directory-card { display: grid; width: 100%; min-width: 0; gap: 1rem; }
.supplier-directory-heading { display: flex; gap: 1rem; align-items: center; justify-content: space-between; }
.supplier-directory-heading h2 { margin: 0; font-family: var(--font-display); font-size: clamp(1.35rem, 2vw, 1.8rem); }
.supplier-directory-heading p:not(.eyebrow) { margin: 0.35rem 0 0; color: var(--color-muted); }
.supplier-directory-decoration { display: grid; width: 3rem; height: 3rem; place-items: center; color: var(--color-brand-700); border-radius: 1rem; background: var(--color-brand-100); }
.supplier-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr)); gap: 1rem; }
.supplier-catalog-card { position: relative; display: grid; min-width: 0; min-height: 16rem; grid-template-rows: auto 1fr auto; gap: 1.1rem; padding: 1.25rem; overflow: hidden; color: var(--color-ink); border: 1px solid var(--color-border); border-radius: 1.1rem; background: linear-gradient(145deg, var(--color-surface), color-mix(in srgb, var(--color-brand-50) 45%, var(--color-surface))); box-shadow: 0 8px 24px rgb(15 35 60 / 6%); text-decoration: none; isolation: isolate; transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1); animation: supplier-card-enter 420ms both; animation-delay: calc(var(--supplier-card-index) * 55ms); }
.supplier-catalog-card::after { position: absolute; z-index: -1; right: -4rem; bottom: -5rem; width: 10rem; height: 10rem; border-radius: 50%; background: color-mix(in srgb, var(--color-brand-100) 60%, transparent); transition: transform 300ms ease; content: ""; }
.supplier-catalog-card:hover { color: var(--color-ink); border-color: var(--color-brand-200); box-shadow: 0 20px 45px rgb(7 94 169 / 14%); transform: translateY(-5px); }
.supplier-catalog-card:hover::after { transform: scale(1.35); }
.supplier-catalog-card:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.supplier-card-top { display: flex; gap: 0.7rem; align-items: center; }
.supplier-card-mark { display: grid; width: 3rem; height: 3rem; flex: none; place-items: center; color: #fff; border-radius: 0.9rem; background: linear-gradient(145deg, var(--color-brand-600), var(--color-brand-900)); font-family: var(--font-display); font-size: 1.25rem; font-weight: 800; box-shadow: 0 8px 20px rgb(7 94 169 / 18%); }
.supplier-category-chip { min-width: 0; overflow: hidden; padding: 0.4rem 0.65rem; color: var(--color-brand-800); border: 1px solid var(--color-brand-100); border-radius: 999px; background: var(--color-brand-50); font-size: 0.68rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.supplier-card-open { display: grid; width: 2rem; height: 2rem; margin-left: auto; flex: none; place-items: center; color: var(--color-subtle); border-radius: 50%; background: var(--color-canvas); transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
.supplier-card-open .icon { width: 1rem; height: 1rem; }
.supplier-catalog-card:hover .supplier-card-open { color: #fff; background: var(--color-brand-700); transform: translateX(3px); }
.supplier-card-copy { display: grid; align-content: start; gap: 0.55rem; }
.supplier-card-copy strong { font-family: var(--font-display); font-size: 1.2rem; line-height: 1.25; }
.supplier-card-copy small { display: -webkit-box; overflow: hidden; color: var(--color-muted); line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.supplier-card-footer { display: flex; gap: 0.75rem; align-items: center; justify-content: space-between; padding-top: 0.9rem; border-top: 1px solid var(--color-border); }
.supplier-card-rating { display: inline-flex; gap: 0.3rem; align-items: baseline; color: #d98400; }
.supplier-card-rating strong { color: var(--color-ink); font-size: 1.05rem; }
.supplier-card-rating small, .supplier-card-reviews { color: var(--color-muted); font-size: 0.7rem; }
.supplier-card-unrated { color: var(--color-muted); font-size: 0.76rem; }
.supplier-card-unrated span { color: #d98400; font-size: 1rem; }
.supplier-empty-state { display: grid; min-height: 22rem; place-items: center; align-content: center; padding: 3rem 1rem; color: var(--color-muted); border: 1px dashed var(--color-brand-200); border-radius: 1.25rem; background: radial-gradient(circle at 50% 45%, var(--color-brand-50), transparent 45%), var(--color-surface); text-align: center; }
.supplier-empty-visual { position: relative; display: grid; width: 5rem; height: 5rem; place-items: center; color: var(--color-brand-700); border-radius: 1.4rem; background: var(--color-brand-100); box-shadow: 0 15px 35px rgb(7 94 169 / 12%); }
.supplier-empty-visual .icon { width: 2.25rem; height: 2.25rem; }
.supplier-empty-visual i { position: absolute; right: -0.5rem; bottom: -0.5rem; display: grid; width: 2rem; height: 2rem; place-items: center; color: #fff; border: 3px solid var(--color-surface); border-radius: 50%; background: var(--color-brand-700); font-style: normal; font-weight: 800; }
.supplier-empty-state h3 { margin: 1.25rem 0 0.35rem; color: var(--color-ink); font-family: var(--font-display); font-size: 1.4rem; }
.supplier-empty-state p { max-width: 34rem; margin: 0; line-height: 1.6; }
.supplier-table td:first-child strong, .supplier-table td:first-child small { display: block; }
.supplier-table td:first-child small { max-width: 32rem; margin-top: 0.2rem; color: var(--color-muted); }
.supplier-rating-inline { display: inline-flex; gap: 0.35rem; align-items: center; }
.supplier-review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)); gap: 0.8rem; }
.supplier-review-card { min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.supplier-review-heading { display: flex; gap: 0.6rem; align-items: start; justify-content: space-between; }
.supplier-review-heading time { color: var(--color-subtle); font-size: 0.68rem; white-space: nowrap; }
.supplier-review-card h3 { margin: 0.7rem 0 0.2rem; font-size: 0.95rem; }
.supplier-review-card > small { color: var(--color-muted); }
.supplier-review-card p { margin-top: 0.65rem; color: var(--color-muted); line-height: 1.55; overflow-wrap: anywhere; }
.supplier-match-list { display: grid; gap: 0.45rem; margin: 0.8rem 0 0; padding: 0; list-style: none; }
.supplier-match-list li { display: flex; gap: 1rem; justify-content: space-between; }
.supplier-match-list span { color: var(--color-muted); }
.supplier-match-confirmation { display: flex; gap: 0.75rem; align-items: start; padding: 1rem; border: 1px solid var(--color-warning); border-radius: var(--radius-md); background: var(--color-warning-soft); cursor: pointer; }
.supplier-match-confirmation input { width: 1.1rem; height: 1.1rem; margin-top: 0.15rem; accent-color: var(--color-brand-700); }
.supplier-match-confirmation span { display: grid; gap: 0.2rem; }
.supplier-match-confirmation small { color: var(--color-muted); }
.supplier-match-confirmation:has(input:focus-visible) { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.supplier-form { display: grid; gap: 1rem; }
.supplier-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.supplier-form-grid > div, .supplier-review-fields > div { display: grid; gap: 0.4rem; }
.supplier-form-full { grid-column: 1 / -1; }
.supplier-form label, .supplier-star-fieldset legend { color: var(--color-ink); font-size: 0.8rem; font-weight: 750; }
.supplier-form input[type="text"], .supplier-form select, .supplier-form textarea { width: 100%; min-height: 2.8rem; padding: 0.7rem 0.8rem; color: var(--color-ink); border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); }
.supplier-form textarea { resize: vertical; }
.supplier-form input:focus-visible, .supplier-form select:focus-visible, .supplier-form textarea:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.supplier-review-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.supplier-star-fieldset { grid-column: 1 / -1; min-width: 0; margin: 0; padding: 1rem; scroll-margin-top: 5rem; border: 1px solid var(--color-brand-200); border-radius: var(--radius-md); background: linear-gradient(135deg, var(--color-brand-50), var(--color-surface)); }
.supplier-star-fieldset legend { padding: 0 0.35rem; font-size: 0.95rem; }
.supplier-star-fieldset legend span { color: var(--color-danger); }
.supplier-star-fieldset > p { margin: 0 0 0.75rem; color: var(--color-muted); font-size: 0.76rem; }
.supplier-star-options { display: grid; width: min(100%, 34rem); grid-template-columns: repeat(5, minmax(2.7rem, 1fr)); gap: 0.5rem; }
.supplier-star-options label { position: relative; display: grid; min-height: 4.35rem; place-items: center; align-content: center; gap: 0.1rem; color: var(--color-muted); border: 1px solid var(--color-border); border-radius: 0.8rem; background: var(--color-surface); box-shadow: 0 4px 12px rgb(15 35 60 / 4%); cursor: pointer; transition: color 150ms ease, border-color 150ms ease, background 150ms ease, box-shadow 150ms ease, transform 150ms ease; }
.supplier-star-options label:hover { color: #a76500; border-color: #e0a53a; background: #fffbf2; transform: translateY(-2px); }
.supplier-star-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.supplier-star-options label:has(input:checked) { color: #8a5400; border-color: #d79316; background: linear-gradient(145deg, #fffaf0, #fff1cf); box-shadow: 0 8px 20px rgb(217 132 0 / 16%); transform: translateY(-2px); }
.supplier-star-options label:has(input:focus-visible) { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.supplier-star-glyph { font-size: 1.65rem; line-height: 1; }
.supplier-star-value { font-size: 0.68rem; font-weight: 800; }
.supplier-optional-field { align-content: start; padding: 0.9rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); }
.supplier-optional-field label { display: flex; gap: 0.6rem; align-items: center; justify-content: space-between; }
.supplier-optional-field label span { padding: 0.2rem 0.45rem; color: var(--color-muted); border-radius: 999px; background: var(--color-canvas); font-size: 0.62rem; font-weight: 700; }
.supplier-form-actions { display: flex; gap: 0.75rem; align-items: center; justify-content: flex-end; }
.supplier-profile-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1.35rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
.supplier-profile-header h1 { margin: 0.1rem 0 0.35rem; }
.supplier-profile-header p:last-child { max-width: 55rem; color: var(--color-muted); line-height: 1.55; }
.supplier-profile-mark { display: grid; width: 4rem; height: 4rem; place-items: center; color: #fff; border-radius: 1rem; background: linear-gradient(145deg, var(--color-brand-700), var(--color-brand-900)); font-size: 1.6rem; font-weight: 850; }
.supplier-rating-overview { display: grid; grid-template-columns: minmax(12rem, 0.35fr) minmax(22rem, 1fr); gap: 1.5rem; padding: 1.25rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
.supplier-rating-score { display: grid; place-items: center; align-content: center; padding-right: 1.5rem; border-right: 1px solid var(--color-border); }
.supplier-rating-score strong { font-size: clamp(2.6rem, 5vw, 4rem); line-height: 1; }
.supplier-rating-score small { margin-top: 0.35rem; color: var(--color-muted); }
.supplier-rating-bars { display: grid; gap: 0.5rem; }
.supplier-rating-bars > div { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) 2rem; gap: 0.65rem; align-items: center; color: var(--color-muted); font-size: 0.75rem; }
.supplier-rating-bars meter { width: 100%; height: 0.75rem; accent-color: #d98400; }
.supplier-rating-bars strong { justify-self: end; }
.supplier-review-form-card { scroll-margin-top: 1rem; }
.supplier-empty-star { color: #d98400; font-size: 2.4rem; }
.supplier-dashboard-layout { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) minmax(19rem, 25rem); grid-template-areas: "directory ranking"; gap: 1.25rem; align-items: start; }
.supplier-dashboard-layout > turbo-frame#supplier-category-ranking { display: block; min-width: 0; grid-area: ranking; }
.supplier-dashboard-layout > .supplier-directory-card { min-width: 0; grid-area: directory; }
.supplier-dashboard-layout .supplier-top-ten { gap: 0.8rem; padding: 1rem; }
.supplier-dashboard-layout .supplier-top-ten-heading { display: grid; gap: 0.7rem; align-items: start; }
.supplier-dashboard-layout .supplier-top-ten-heading h2 { font-size: clamp(1.4rem, 2vw, 1.75rem); }
.supplier-dashboard-layout .supplier-top-ten-heading p { font-size: 0.82rem; }
.supplier-dashboard-layout .supplier-top-ten-current { width: 100%; min-width: 0; }
.supplier-dashboard-layout .supplier-podium { grid-template-columns: 1fr; gap: 0.55rem; }
.supplier-dashboard-layout .supplier-podium-card { padding: 0.8rem; }
.supplier-dashboard-layout .supplier-top-ten-list a { grid-template-columns: 2rem 2.15rem minmax(0, 1fr) auto; gap: 0.5rem; padding: 0.6rem 0.55rem; }
.supplier-dashboard-layout .supplier-top-ten-meter, .supplier-dashboard-layout .supplier-top-ten-arrow { display: none; }
.supplier-dashboard-layout .supplier-top-ten-score { min-width: 4.2rem; }
.supplier-dashboard-layout .supplier-category-rail { padding-bottom: 0.35rem; }
.supplier-dashboard-layout .supplier-category-tab { min-height: 2.25rem; padding: 0.45rem 0.65rem; font-size: 0.68rem; }
.supplier-dashboard-layout .supplier-ranking-note { padding-inline: 0.15rem; }
.supplier-ranking-select { display: grid; min-width: min(16rem, 100%); gap: 0.3rem; }
.supplier-ranking-select label { color: var(--color-muted); font-size: 0.64rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.supplier-ranking-select select { width: 100%; min-height: 2.8rem; padding: 0.65rem 2.4rem 0.65rem 0.8rem; color: var(--color-brand-800); border: 1px solid var(--color-brand-200); border-radius: 0.85rem; background: var(--color-surface); font-weight: 800; box-shadow: var(--shadow-sm); cursor: pointer; }
.supplier-ranking-select select:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.supplier-top-ten { position: relative; display: grid; min-width: 0; gap: 1rem; padding: clamp(1rem, 2vw, 1.5rem); overflow: hidden; color: var(--color-ink); border: 1px solid var(--color-brand-200); border-radius: 1.4rem; background: radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--color-brand-200) 52%, transparent), transparent 24%), linear-gradient(145deg, var(--color-surface), var(--color-brand-50)); box-shadow: 0 18px 45px rgb(7 94 169 / 10%); }
.supplier-top-ten::before { position: absolute; top: -5rem; right: -4rem; width: 14rem; height: 14rem; border: 1px dashed color-mix(in srgb, var(--color-brand-500) 25%, transparent); border-radius: 50%; content: ""; pointer-events: none; }
.supplier-top-ten-heading { position: relative; z-index: 1; display: flex; gap: 1.5rem; align-items: end; justify-content: space-between; }
.supplier-top-ten-heading h2 { margin: 0.25rem 0 0; font-family: var(--font-display); font-size: clamp(1.55rem, 2.6vw, 2.25rem); letter-spacing: -0.035em; }
.supplier-top-ten-heading p { max-width: 48rem; margin: 0.35rem 0 0; color: var(--color-muted); line-height: 1.45; }
.supplier-top-ten-kicker { display: inline-flex; gap: 0.35rem; align-items: center; color: #9a5d00; font-size: 0.7rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.supplier-top-ten-current { display: grid; min-width: min(16rem, 34vw); gap: 0.15rem; padding: 0.7rem 0.9rem; border: 1px solid color-mix(in srgb, var(--color-brand-200) 75%, transparent); border-radius: 0.9rem; background: color-mix(in srgb, var(--color-surface) 84%, transparent); box-shadow: var(--shadow-sm); backdrop-filter: blur(10px); }
.supplier-top-ten-current small { color: var(--color-muted); font-size: 0.64rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.supplier-top-ten-current strong { overflow: hidden; color: var(--color-brand-800); text-overflow: ellipsis; white-space: nowrap; }
.supplier-category-rail { position: relative; z-index: 1; display: flex; max-width: 100%; gap: 0.45rem; padding: 0.15rem 0 0.45rem; overflow-x: auto; scrollbar-width: thin; scroll-snap-type: x proximity; }
.supplier-category-tab { display: inline-flex; min-height: 2.5rem; flex: none; gap: 0.4rem; padding: 0.55rem 0.8rem; align-items: center; color: var(--color-muted); border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); font-size: 0.75rem; font-weight: 750; text-decoration: none; scroll-snap-align: start; transition: color 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.supplier-category-tab:hover { color: var(--color-brand-800); border-color: var(--color-brand-200); box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.supplier-category-tab.is-active { color: #fff; border-color: var(--color-brand-700); background: linear-gradient(135deg, var(--color-brand-600), var(--color-brand-800)); box-shadow: 0 8px 18px rgb(7 94 169 / 19%); }
.supplier-category-tab:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.supplier-leaderboard { position: relative; z-index: 1; display: grid; gap: 0.8rem; }
.supplier-podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.supplier-podium-card { position: relative; display: grid; min-width: 0; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.7rem; padding: 1rem; overflow: hidden; align-items: center; color: var(--color-ink); border: 1px solid var(--color-border); border-radius: 1rem; background: color-mix(in srgb, var(--color-surface) 92%, transparent); box-shadow: 0 8px 22px rgb(15 35 60 / 7%); text-decoration: none; isolation: isolate; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; animation: supplier-rank-enter 420ms both; }
.supplier-podium-card::after { position: absolute; z-index: -1; right: -2.5rem; bottom: -3rem; width: 7rem; height: 7rem; border-radius: 50%; background: color-mix(in srgb, var(--color-brand-100) 70%, transparent); content: ""; }
.supplier-podium-card:hover { color: var(--color-ink); border-color: var(--color-brand-200); box-shadow: 0 16px 30px rgb(7 94 169 / 13%); transform: translateY(-4px); }
.supplier-podium-card:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.supplier-podium-rank-1 { border-color: #e1a63c; background: linear-gradient(145deg, #fffaf0, var(--color-surface) 72%); box-shadow: 0 12px 28px rgb(217 132 0 / 14%); }
.supplier-podium-rank-2 { animation-delay: 65ms; }
.supplier-podium-rank-3 { animation-delay: 130ms; }
.supplier-podium-position { position: absolute; top: 0.55rem; right: 0.7rem; color: color-mix(in srgb, var(--color-brand-800) 72%, transparent); font-family: var(--font-display); font-size: 1.35rem; font-weight: 850; line-height: 1; }
.supplier-podium-position small, .supplier-top-ten-rank small { font-size: 0.55em; }
.supplier-podium-medal { position: absolute; top: -0.5rem; left: -0.35rem; display: grid; width: 2.1rem; height: 2.1rem; place-items: center; color: #fff; border-radius: 50%; background: #d98400; box-shadow: 0 6px 14px rgb(217 132 0 / 22%); transform: rotate(-12deg); }
.supplier-podium-rank-2 .supplier-podium-medal { background: #748292; }
.supplier-podium-rank-3 .supplier-podium-medal { background: #a66d3a; }
.supplier-podium-mark { display: grid; width: 3rem; height: 3rem; flex: none; place-items: center; color: #fff; border-radius: 0.9rem; background: linear-gradient(145deg, var(--color-brand-600), var(--color-brand-900)); font-family: var(--font-display); font-size: 1.15rem; font-weight: 850; box-shadow: 0 8px 18px rgb(7 94 169 / 17%); }
.supplier-podium-copy { display: grid; min-width: 0; gap: 0.3rem; }
.supplier-podium-copy > strong { padding-right: 1.7rem; overflow: hidden; font-family: var(--font-display); text-overflow: ellipsis; white-space: nowrap; }
.supplier-podium-copy > span { display: flex; gap: 0.55rem; align-items: baseline; }
.supplier-podium-copy b { color: #a76500; }
.supplier-podium-copy small { color: var(--color-muted); font-size: 0.68rem; }
.supplier-podium-open, .supplier-top-ten-arrow { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; color: var(--color-subtle); border-radius: 50%; background: var(--color-canvas); }
.supplier-podium-open .icon, .supplier-top-ten-arrow .icon { width: 0.85rem; height: 0.85rem; }
.supplier-top-ten-list { display: grid; margin: 0; padding: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 1rem; background: color-mix(in srgb, var(--color-surface) 92%, transparent); box-shadow: var(--shadow-sm); list-style: none; }
.supplier-top-ten-list li + li { border-top: 1px solid var(--color-border); }
.supplier-top-ten-list a { display: grid; min-width: 0; grid-template-columns: 2.4rem 2.25rem minmax(9rem, 1fr) minmax(5rem, 0.55fr) auto 1.7rem; gap: 0.7rem; padding: 0.65rem 0.8rem; align-items: center; color: var(--color-ink); text-decoration: none; transition: background 150ms ease, transform 150ms ease; }
.supplier-top-ten-list a:hover { color: var(--color-ink); background: color-mix(in srgb, var(--color-brand-50) 68%, transparent); transform: translateX(3px); }
.supplier-top-ten-list a:focus-visible { position: relative; z-index: 2; outline: 3px solid var(--focus-ring); outline-offset: -3px; }
.supplier-top-ten-rank { color: var(--color-brand-800); font-family: var(--font-display); font-weight: 850; text-align: center; }
.supplier-top-ten-mark { display: grid; width: 2.15rem; height: 2.15rem; place-items: center; color: var(--color-brand-800); border-radius: 0.65rem; background: var(--color-brand-100); font-size: 0.78rem; font-weight: 850; }
.supplier-top-ten-name { display: grid; min-width: 0; gap: 0.1rem; }
.supplier-top-ten-name strong, .supplier-top-ten-name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.supplier-top-ten-name small { color: var(--color-muted); font-size: 0.65rem; }
.supplier-top-ten-meter { height: 0.42rem; overflow: hidden; border-radius: 999px; background: var(--color-border); }
.supplier-top-ten-meter i { display: block; width: var(--supplier-score); height: 100%; border-radius: inherit; background: linear-gradient(90deg, #d98400, #f2b84b); animation: supplier-meter-grow 650ms cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.supplier-top-ten-score { display: grid; min-width: 5.5rem; justify-items: end; gap: 0.05rem; }
.supplier-top-ten-score strong { color: #a76500; }
.supplier-top-ten-score small { color: var(--color-muted); font-size: 0.64rem; white-space: nowrap; }
.supplier-ranking-note { display: flex; gap: 0.45rem; margin: 0; align-items: start; color: var(--color-muted); font-size: 0.68rem; line-height: 1.45; }
.supplier-ranking-empty { position: relative; z-index: 1; display: flex; min-height: 8rem; gap: 1rem; padding: 1.2rem; align-items: center; justify-content: center; color: var(--color-muted); border: 1px dashed var(--color-brand-200); border-radius: 1rem; background: color-mix(in srgb, var(--color-surface) 82%, transparent); text-align: left; }
.supplier-ranking-empty > span { color: #d98400; font-size: 2.5rem; }
.supplier-ranking-empty strong { color: var(--color-ink); }
.supplier-ranking-empty p { margin: 0.2rem 0 0; }
.supplier-contact-details { display: flex; gap: 0.55rem 1.25rem; margin-top: 0.75rem; flex-wrap: wrap; }
.supplier-contact-details span { display: inline-flex; gap: 0.4rem; color: var(--color-muted); font-size: 0.75rem; }
.supplier-contact-details strong { color: var(--color-ink); }
.supplier-contact-details a { overflow-wrap: anywhere; }
.supplier-ranking-loader { display: none; width: fit-content; gap: .55rem; margin: .7rem 0; padding: .5rem .75rem; align-items: center; color: var(--color-brand-800); border: 1px solid var(--color-brand-200); border-radius: 999px; background: var(--color-brand-50); font-size: .72rem; font-weight: 750; }
turbo-frame#supplier-category-ranking[busy] .supplier-top-ten { opacity: 0.62; }
turbo-frame#supplier-category-ranking[busy] .supplier-ranking-loader { display: flex; }
.portal-theme-dark .supplier-ranking-loader { color: #dcecff; border-color: #315170; background: var(--color-dark-info); }

@keyframes supplier-rank-enter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes supplier-meter-grow { from { width: 0; } }

.portal-theme-dark .supplier-search-card { border-color: var(--color-border); background: linear-gradient(135deg, var(--color-dark-info), var(--color-surface) 72%); }
.portal-theme-dark .supplier-catalog-hero { border-color: var(--color-border); background: radial-gradient(circle at 88% 18%, rgb(37 113 179 / 22%), transparent 28%), linear-gradient(125deg, var(--color-surface), var(--color-dark-info)); }
.portal-theme-dark .supplier-catalog-summary > span { border-color: var(--color-border); background: rgb(24 34 53 / 78%); }
.portal-theme-dark .supplier-catalog-card { border-color: var(--color-border); background: linear-gradient(145deg, var(--color-surface), var(--color-dark-raised)); }
.portal-theme-dark .supplier-catalog-card::after { background: rgb(37 113 179 / 12%); }
.portal-theme-dark .supplier-card-open { background: var(--color-dark-raised); }
.portal-theme-dark .supplier-empty-state { border-color: var(--color-border); background: radial-gradient(circle at 50% 45%, var(--color-dark-info), transparent 45%), var(--color-surface); }
.portal-theme-dark .supplier-search-main input,
.portal-theme-dark .supplier-search-filters select,
.portal-theme-dark .supplier-form input[type="text"],
.portal-theme-dark .supplier-form select,
.portal-theme-dark .supplier-form textarea,
.portal-theme-dark .supplier-ranking-card,
.portal-theme-dark .supplier-review-card,
.portal-theme-dark .supplier-profile-header,
.portal-theme-dark .supplier-rating-overview { color: var(--color-ink); border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .supplier-star-fieldset { border-color: var(--color-border); background: linear-gradient(135deg, var(--color-dark-info), var(--color-surface)); }
.portal-theme-dark .supplier-star-options label { border-color: var(--color-border); background: var(--color-dark-raised); }
.portal-theme-dark .supplier-star-options label:hover { color: #ffe0a3; border-color: #80642c; background: var(--color-dark-warning); }
.portal-theme-dark .supplier-star-options label:has(input:checked) { color: #ffe0a3; border-color: #80642c; background: var(--color-dark-warning); }
.portal-theme-dark .supplier-optional-field { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .supplier-optional-field label span { background: var(--color-dark-raised); }
.portal-theme-dark .supplier-top-ten { border-color: var(--color-border); background: radial-gradient(circle at 88% 10%, rgb(37 113 179 / 20%), transparent 24%), linear-gradient(145deg, var(--color-surface), var(--color-dark-info)); }
.portal-theme-dark .supplier-top-ten-current, .portal-theme-dark .supplier-podium-card, .portal-theme-dark .supplier-top-ten-list, .portal-theme-dark .supplier-ranking-empty { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .supplier-podium-rank-1 { border-color: #9f742f; background: linear-gradient(145deg, rgb(101 67 17 / 20%), var(--color-surface) 72%); }
.portal-theme-dark .supplier-category-tab { border-color: var(--color-border); background: var(--color-dark-raised); }
.portal-theme-dark .supplier-category-tab.is-active { color: #fff; border-color: var(--color-brand-600); background: linear-gradient(135deg, var(--color-brand-600), var(--color-brand-800)); }
.portal-theme-dark .supplier-ranking-select select { color: var(--color-ink); border-color: var(--color-border); background: var(--color-dark-raised); }
.portal-theme-dark .supplier-podium-open, .portal-theme-dark .supplier-top-ten-arrow { background: var(--color-dark-raised); }
.portal-theme-dark .supplier-match-confirmation { border-color: #80642c; background: var(--color-dark-warning); }
.portal-theme-dark .supplier-stars-empty { color: #526173; }

@media (max-width: 960px) {
  .supplier-dashboard-layout { grid-template-columns: 1fr; grid-template-areas: "ranking" "directory"; gap: 1.5rem; }
  .supplier-dashboard-layout .supplier-top-ten { padding: clamp(1rem, 2vw, 1.5rem); }
  .supplier-dashboard-layout .supplier-top-ten-heading { display: flex; }
  .supplier-dashboard-layout .supplier-top-ten-current { width: auto; min-width: min(16rem, 34vw); }
  .supplier-catalog-hero { grid-template-columns: minmax(0, 1fr) 10rem; }
  .supplier-search-form { grid-template-columns: auto minmax(10rem, 1fr) minmax(8rem, 0.4fr) minmax(9rem, 0.45fr) auto; }
  .supplier-search-clear { grid-column: 2 / -1; }
  .supplier-ranking-grid, .supplier-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .supplier-podium { grid-template-columns: 1fr; }
  .supplier-top-ten-list a { grid-template-columns: 2.4rem 2.25rem minmax(8rem, 1fr) auto 1.7rem; }
  .supplier-top-ten-meter { display: none; }
}

@media (max-width: 640px) {
  .supplier-page { gap: 1rem; }
  .supplier-dashboard-layout { gap: 1rem; }
  .supplier-dashboard-layout .supplier-top-ten { padding: 1rem 0.8rem; }
  .supplier-dashboard-layout .supplier-top-ten-heading { display: grid; }
  .supplier-dashboard-layout .supplier-top-ten-current { width: 100%; min-width: 0; }
  .supplier-catalog-hero { min-height: auto; grid-template-columns: 1fr; padding: 1.25rem; }
  .supplier-catalog-copy h1 { font-size: clamp(2.25rem, 13vw, 3.25rem); }
  .supplier-hero-visual { position: absolute; top: 0.75rem; right: 0.4rem; min-height: 0; opacity: 0.16; pointer-events: none; }
  .supplier-hero-icon { width: 5rem; height: 5rem; box-shadow: none; }
  .supplier-hero-orbit-one, .supplier-hero-orbit-two, .supplier-hero-star { display: none; }
  .supplier-catalog-summary > span { padding: 0.55rem 0.7rem; }
  .supplier-search-card { padding: 0.65rem; }
  .supplier-search-form { grid-template-columns: auto minmax(0, 1fr) auto; }
  .supplier-search-query { grid-column: 2; }
  .supplier-search-form > input[type="submit"] { grid-column: 3; grid-row: 1; }
  .supplier-search-control:not(.supplier-search-query) { grid-column: span 1; }
  .supplier-search-control:nth-of-type(2) { grid-column: 1 / 3; }
  .supplier-search-control:nth-of-type(3) { grid-column: 3; }
  .supplier-search-clear { grid-column: 1 / -1; }
  .supplier-directory-heading { align-items: start; }
  .supplier-directory-decoration { display: none; }
  .supplier-catalog-card { min-height: 14.5rem; }
  .supplier-ranking-grid, .supplier-review-grid, .supplier-form-grid, .supplier-review-fields { grid-template-columns: 1fr; }
  .supplier-top-ten { padding: 1rem 0.8rem; border-radius: 1rem; }
  .supplier-top-ten-heading { display: grid; gap: 0.75rem; align-items: start; }
  .supplier-top-ten-current { width: 100%; min-width: 0; }
  .supplier-category-rail { margin-inline: -0.8rem; padding-inline: 0.8rem; }
  .supplier-podium-card { padding: 0.8rem; }
  .supplier-top-ten-list a { grid-template-columns: 2rem 2.15rem minmax(0, 1fr) auto; gap: 0.5rem; padding: 0.65rem 0.55rem; }
  .supplier-top-ten-score { min-width: 4.2rem; }
  .supplier-top-ten-score small, .supplier-top-ten-arrow { display: none; }
  .supplier-ranking-note { padding-inline: 0.2rem; }
  .supplier-star-fieldset, .supplier-form-full { grid-column: 1; }
  .supplier-star-fieldset { padding: 0.8rem; }
  .supplier-star-options { gap: 0.35rem; }
  .supplier-star-options label { min-height: 3.8rem; border-radius: 0.65rem; }
  .supplier-profile-header { grid-template-columns: auto minmax(0, 1fr); }
  .supplier-profile-header > .button-link { grid-column: 1 / -1; width: 100%; }
  .supplier-rating-overview { grid-template-columns: 1fr; }
  .supplier-rating-score { padding: 0 0 1rem; border-right: 0; border-bottom: 1px solid var(--color-border); }
  .supplier-form-actions { flex-direction: column-reverse; }
  .supplier-form-actions .button, .supplier-form-actions .button-link { width: 100%; }
  .supplier-review-heading { align-items: start; flex-direction: column; }
}

/* Institutional knowledge forms */
.knowledge-upload-card { overflow: hidden; padding: 0; }
.knowledge-upload-heading { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; align-items: center; padding: 1.35rem 1.5rem 1.1rem; border-bottom: 1px solid var(--color-border); }
.knowledge-upload-heading h2, .knowledge-upload-heading p { margin: 0; }
.knowledge-upload-heading .eyebrow { margin-bottom: .3rem; }
.knowledge-upload-heading > div > p:last-child { margin-top: .28rem; color: var(--color-muted); line-height: 1.5; }
.knowledge-upload-icon { display: grid; width: 3rem; height: 3rem; place-items: center; color: var(--color-brand-700); border: 1px solid var(--color-brand-100); border-radius: .85rem; background: var(--color-brand-50); }
.knowledge-upload-icon .icon { width: 1.4rem; height: 1.4rem; }
.knowledge-privacy-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7rem; align-items: start; margin: 1.25rem 1.5rem 0; padding: .8rem .9rem; color: #285b54; border: 1px solid #cfe6df; border-radius: .7rem; background: #f5fbf8; }
.knowledge-privacy-note > .icon { width: 1.2rem; height: 1.2rem; margin-top: .08rem; color: #16816e; }
.knowledge-privacy-note p, .knowledge-privacy-note span { margin: 0; }
.knowledge-privacy-note strong, .knowledge-privacy-note span { display: block; }
.knowledge-privacy-note strong { color: #154a43; font-size: .82rem; }
.knowledge-privacy-note span { margin-top: .12rem; color: #58736e; font-size: .78rem; line-height: 1.45; }
.knowledge-document-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.05rem 1.15rem; padding: 1.25rem 1.5rem 1.5rem; }
.knowledge-document-form-compact { padding: 0; }
.knowledge-form-field { display: grid; min-width: 0; gap: .42rem; }
.knowledge-form-field-wide { grid-column: 1 / -1; }
.knowledge-form-field label { color: #253f52; font-size: .8rem; font-weight: 780; }
.knowledge-form-field label::after { margin-left: .2rem; color: var(--color-danger); content: "*"; }
.knowledge-form-field input:not([type="file"]), .knowledge-form-field select, .knowledge-form-field textarea { width: 100%; min-width: 0; min-height: 2.85rem; padding: .72rem .82rem; color: var(--color-ink); border: 1px solid #c7d3da; border-radius: .62rem; background: #fff; font: inherit; transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease; }
.knowledge-form-field textarea { min-height: 6.6rem; resize: vertical; line-height: 1.5; }
.knowledge-form-field input::placeholder, .knowledge-form-field textarea::placeholder { color: #91a0ab; opacity: 1; }
.knowledge-form-field input:not([type="file"]):hover, .knowledge-form-field select:hover, .knowledge-form-field textarea:hover { border-color: #9fb2bf; }
.knowledge-form-field input:not([type="file"]):focus, .knowledge-form-field select:focus, .knowledge-form-field textarea:focus { border-color: var(--color-brand-500); outline: 0; box-shadow: 0 0 0 3px var(--focus-ring); }
.knowledge-form-field > small { color: var(--color-muted); font-size: .74rem; line-height: 1.45; }
.knowledge-file-control { display: grid; grid-template-columns: auto minmax(12rem, 1fr) minmax(17rem, auto); gap: .85rem; align-items: center; min-height: 5.6rem; padding: 1rem; border: 1px dashed #9eb6c3; border-radius: .75rem; background: #f8fbfc; transition: border-color 150ms ease, background 150ms ease; }
.knowledge-file-control:focus-within, .knowledge-file-control:hover { border-color: var(--color-brand-500); background: var(--color-brand-50); }
.knowledge-file-control > span { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; color: var(--color-brand-700); border-radius: .7rem; background: #fff; box-shadow: 0 1px 3px rgb(30 58 72 / 10%); }
.knowledge-file-control > span .icon { width: 1.25rem; height: 1.25rem; }
.knowledge-file-control strong, .knowledge-file-control small { display: block; }
.knowledge-file-control strong { color: #223d51; font-size: .82rem; }
.knowledge-file-control small { margin-top: .18rem; color: var(--color-muted); font-size: .72rem; }
.knowledge-file-control input[type="file"] { width: 100%; min-width: 0; color: #607380; font-size: .76rem; }
.knowledge-file-control input[type="file"]::file-selector-button { min-height: 2.45rem; margin-right: .65rem; padding: .55rem .75rem; color: var(--color-brand-800); border: 1px solid var(--color-brand-100); border-radius: .55rem; background: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.knowledge-form-actions { display: flex; grid-column: 1 / -1; gap: 1rem; align-items: center; justify-content: space-between; margin-top: .1rem; padding-top: 1.15rem; border-top: 1px solid var(--color-border); }
.knowledge-form-actions > p { display: flex; gap: .5rem; align-items: flex-start; max-width: 42rem; margin: 0; color: var(--color-muted); font-size: .75rem; line-height: 1.45; }
.knowledge-form-actions > p .icon { width: 1rem; height: 1rem; flex: none; margin-top: .08rem; color: var(--color-brand-700); }
.knowledge-form-actions-end { justify-content: flex-end; }
.knowledge-version-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; }
.knowledge-file-control-compact { min-height: 4.7rem; grid-template-columns: auto minmax(10rem, 1fr) minmax(15rem, auto); }

.portal-theme-dark .knowledge-privacy-note { color: #b8e3d7; border-color: #315c56; background: #132d2a; }
.portal-theme-dark .knowledge-privacy-note strong { color: #d7f5ed; }
.portal-theme-dark .knowledge-privacy-note span { color: #a9c5bf; }
.portal-theme-dark .knowledge-form-field label, .portal-theme-dark .knowledge-file-control strong { color: var(--color-ink); }
.portal-theme-dark .knowledge-form-field input:not([type="file"]), .portal-theme-dark .knowledge-form-field select, .portal-theme-dark .knowledge-form-field textarea, .portal-theme-dark .knowledge-file-control { color: var(--color-ink); border-color: #475569; background: #111827; }
.portal-theme-dark .knowledge-file-control > span, .portal-theme-dark .knowledge-file-control input[type="file"]::file-selector-button { color: var(--color-ink); border-color: #475569; background: #1f2937; }

@media (max-width: 860px) {
  .knowledge-file-control, .knowledge-file-control-compact { grid-template-columns: auto minmax(0, 1fr); }
  .knowledge-file-control input[type="file"] { grid-column: 1 / -1; }
  .knowledge-version-form { grid-template-columns: 1fr; }
  .knowledge-version-form > .button { justify-self: end; }
}

@media (max-width: 640px) {
  .knowledge-upload-heading { padding: 1.1rem; }
  .knowledge-privacy-note { margin: 1rem 1rem 0; }
  .knowledge-document-form { grid-template-columns: 1fr; padding: 1rem; }
  .knowledge-form-field-wide { grid-column: auto; }
  .knowledge-form-actions { align-items: stretch; flex-direction: column; }
  .knowledge-form-actions .button, .knowledge-version-form > .button { width: 100%; justify-self: stretch; }
}

@media (prefers-reduced-motion: no-preference) {
  .supplier-hero-icon { animation: supplier-hero-float 4.5s ease-in-out infinite; }
  .supplier-hero-orbit-two { animation: supplier-orbit-spin 24s linear infinite; }
  .supplier-hero-star { animation: supplier-star-pulse 2.8s ease-in-out infinite; }
}

@media (prefers-reduced-motion: reduce) {
  .supplier-catalog-card, .supplier-hero-icon, .supplier-hero-orbit-two, .supplier-hero-star, .supplier-podium-card, .supplier-top-ten-meter i { animation: none; transition-duration: 0.01ms; }
}

@keyframes supplier-card-enter {
  from { opacity: 0; transform: translateY(14px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes supplier-hero-float {
  0%, 100% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-10px) rotate(-2deg); }
}

@keyframes supplier-orbit-spin {
  to { transform: rotate(360deg); }
}

@keyframes supplier-star-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}

@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/space-grotesk-600-3ac591a6.woff2") format("woff2");
}

@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/space-grotesk-700-8c2da502.woff2") format("woff2");
}

:root {
  color-scheme: light;
  --color-brand-950: #04335b;
  --color-brand-900: #053e70;
  --color-brand-800: #064d8b;
  --color-brand-700: #075ea9;
  --color-brand-600: #2571b3;
  --color-brand-500: #4586bf;
  --color-brand-200: #a8c7e1;
  --color-brand-100: #d2e2f0;
  --color-brand-50: #eef4f9;
  --color-ink: #242836;
  --color-muted: #626b7a;
  --color-subtle: #9299a6;
  --color-border: #e2e5ea;
  --color-surface: #ffffff;
  --color-canvas: #f7f8fa;
  --color-success: #138a5b;
  --color-success-soft: #e7f7ef;
  --color-warning: #ad6a00;
  --color-warning-soft: #fff6df;
  --color-danger: #bf3f4e;
  --color-danger-soft: #fff0f1;
  --focus-ring: rgb(7 94 169 / 28%);
  --shadow-sm: 0 1px 2px rgb(36 40 54 / 5%);
  --shadow-md: 0 12px 32px rgb(36 40 54 / 8%);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --sidebar-width: 13.75rem;
  --font-body: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Space Grotesk", var(--font-body);
  font-family: var(--font-body);
  color: var(--color-ink);
  background: var(--color-canvas);
}

* { box-sizing: border-box; }

html { min-width: 320px; overflow-x: clip; }

body { margin: 0; min-height: 100vh; overflow-x: clip; background: var(--color-canvas); }

body.nav-open { overflow: hidden; }
body.drawer-open { overflow: hidden; }
body:has(.confirmation-modal[open]) { overflow: hidden; }

[hidden] { display: none !important; }

.confirmation-modal {
  width: min(34rem, calc(100vw - 2rem));
  max-height: calc(100vh - 2rem);
  margin: auto;
  padding: 0;
  overflow: visible;
  color: var(--color-ink);
  background: transparent;
  border: 0;
}

.confirmation-modal::backdrop {
  background: rgb(20 24 34 / 58%);
  backdrop-filter: blur(3px);
}

.confirmation-modal-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  padding: 1.5rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: 0 24px 72px rgb(20 24 34 / 24%);
}

.confirmation-modal-icon {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  color: var(--color-brand-800);
  background: var(--color-brand-50);
  border-radius: var(--radius-md);
}

.confirmation-modal-copy { min-width: 0; }
.confirmation-modal-copy .eyebrow { margin-bottom: 0.35rem; }
.confirmation-modal-copy h2 { margin-bottom: 0.65rem; font-size: 1.35rem; }
.confirmation-modal-copy > p:not(.eyebrow) { color: var(--color-muted); line-height: 1.55; }
.confirmation-modal-copy .info-callout { margin: 1rem 0 0; }

.confirmation-modal-actions {
  display: flex;
  grid-column: 1 / -1;
  gap: 0.75rem;
  justify-content: flex-end;
  padding-top: 0.25rem;
}

@media (max-width: 520px) {
  .confirmation-modal { width: calc(100vw - 1rem); }
  .confirmation-modal-card { grid-template-columns: 1fr; padding: 1.15rem; }
  .confirmation-modal-icon { width: 2.5rem; height: 2.5rem; }
  .confirmation-modal-actions { grid-column: 1; flex-direction: column-reverse; }
  .confirmation-modal-actions .button { width: 100%; min-height: 2.75rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .confirmation-modal[open] { animation: confirmation-modal-in 180ms ease-out; }
  .confirmation-modal[open]::backdrop { animation: confirmation-backdrop-in 180ms ease-out; }
}

@keyframes confirmation-modal-in {
  from { opacity: 0; transform: translateY(0.5rem) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes confirmation-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

a { color: var(--color-brand-700); text-underline-offset: 0.18em; }

a:hover { color: var(--color-brand-900); }

button, input, select, textarea { font: inherit; }

button, a { -webkit-tap-highlight-color: transparent; }

:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 2px;
}

h1, h2, h3, p { margin-top: 0; }

h1 { margin-bottom: 0.5rem; font-family: var(--font-display); font-size: clamp(1.65rem, 3vw, 2.3rem); font-weight: 600; line-height: 1.12; letter-spacing: -0.02em; }

h2 { margin-bottom: 1rem; font-family: var(--font-display); font-size: 1.2rem; font-weight: 600; letter-spacing: -0.01em; }

.icon { width: 1.25rem; height: 1.25rem; flex: none; }

/* Application shell */
.app-layout { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); min-height: 100vh; transition: grid-template-columns 180ms ease; }

.sidebar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  padding: 1rem 0.75rem;
  color: var(--color-ink);
  background: #f3f1f8;
  border-right: 1px solid #dedbe8;
  box-shadow: none;
  transition: opacity 160ms ease, transform 180ms ease, visibility 180ms ease;
}

.brand { display: flex; align-items: center; gap: 0.75rem; min-height: 2.75rem; padding: 0 0.5rem; }
.brand-home-link { display: flex; min-width: 0; flex: 1; gap: 0.75rem; align-items: center; color: inherit; border-radius: 0.7rem; text-decoration: none; }
.brand-home-link:hover { color: inherit; }
.brand-home-link:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.brand-home-link .portal-company-brand { margin-inline: auto; }

.brand-mark {
  display: grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(145deg, var(--color-brand-700), #8a6dff);
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 30%);
}

.brand-mark-logo { overflow: hidden; padding: 0.18rem; background: var(--color-surface); border: 1px solid var(--color-brand-200); }
.brand-mark-logo img { width: 100%; height: 100%; object-fit: contain; border-radius: 8px; }
.platform-brand-logo { display: grid; height: 2.5rem; place-items: center; }
.platform-brand-logo img { display: block; width: auto; max-width: 7.5rem; height: 100%; object-fit: contain; }
.platform-brand-logo-compact { display: none; width: 2.5rem; }
.brand-platform-logo-only { gap: 0.5rem; min-height: 3.25rem; padding-left: 0.25rem; }
.brand-platform-logo-only .platform-brand-logo-main { width: 100%; min-width: 0; height: 3.25rem; flex: 1; justify-items: start; }
.brand-platform-logo-only .platform-brand-logo-main img { width: 100%; max-width: none; object-position: left center; }

.brand-copy { display: grid; line-height: 1.05; }
.brand strong { color: var(--color-ink); font-family: var(--font-display); font-size: 1.08rem; font-weight: 600; letter-spacing: 0.005em; }
.brand small { margin-top: 0.25rem; color: var(--color-subtle); font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; }
.sidebar-toggle { margin-left: auto; }
.sidebar-close { display: none !important; margin-left: auto; color: var(--color-muted) !important; }

.context-badge {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  margin: 1.25rem 0.25rem 1rem;
  padding: 0.72rem;
  border: 1px solid #dedbe8;
  border-radius: 10px;
  background: rgb(255 255 255 / 72%);
}

.context-dot { width: 0.5rem; height: 0.5rem; border-radius: 999px; background: var(--color-brand-700); box-shadow: 0 0 0 4px var(--color-brand-50); }
.context-badge > span:last-child { display: grid; min-width: 0; }
.context-badge small { color: var(--color-subtle); font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.06em; }
.context-badge strong { overflow: hidden; margin-top: 0.15rem; color: var(--color-ink); font-size: 0.78rem; text-overflow: ellipsis; white-space: nowrap; }

.primary-nav {
  display: grid;
  min-height: 0;
  flex: 1;
  gap: 0.55rem;
  padding-bottom: 0.5rem;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.app-layout:not(.app-layout-portal) .primary-nav {
  grid-auto-rows: max-content;
  align-content: start;
}

.nav-section { display: grid; gap: 0; }
.nav-section-title {
  margin: 0 0 0.15rem;
  padding: 0 0.7rem;
  color: var(--color-subtle);
  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.09em;
  line-height: 1.4;
  text-transform: uppercase;
}

.nav-group { min-width: 0; }
.nav-group-summary {
  display: flex;
  min-height: 2.15rem;
  gap: 0.5rem;
  padding: 0.4rem 0.7rem;
  align-items: center;
  justify-content: space-between;
  border-radius: 7px;
  color: var(--color-subtle);
  cursor: pointer;
  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  line-height: 1.35;
  list-style: none;
  text-transform: uppercase;
  transition: color 160ms ease, background 160ms ease;
}
.nav-group-summary::-webkit-details-marker { display: none; }
.nav-group-summary:hover { color: var(--color-ink); background: rgb(255 255 255 / 48%); }
.nav-group-summary .icon { width: 0.85rem; height: 0.85rem; transition: transform 160ms ease; }
.nav-group[open] > .nav-group-summary .icon { transform: rotate(90deg); }
.nav-group-links { display: grid; gap: 0.2rem; padding-top: 0.2rem; }

.nav-link {
  display: flex;
  gap: 0.8rem;
  align-items: center;
  min-height: 2.35rem;
  padding: 0.48rem 0.7rem;
  border-radius: 8px;
  color: var(--color-muted);
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}

.nav-link:hover { color: var(--color-ink); background: rgb(255 255 255 / 58%); }
.nav-link.is-active { color: var(--color-brand-800); background: #fff; box-shadow: inset 2px 0 0 var(--color-brand-700), 0 1px 3px rgb(39 35 63 / 7%); }

.sidebar-footer { display: grid; gap: 0.75rem; margin-top: auto; }

.user-card { display: flex; gap: 0.65rem; align-items: center; padding: 0.75rem 0.65rem 0; border-top: 1px solid var(--color-border); }
.avatar { display: grid; width: 2.15rem; height: 2.15rem; flex: none; place-items: center; border-radius: 9px; color: #fff; background: var(--color-brand-700); font-weight: 750; }
.user-card-copy { display: grid; min-width: 0; flex: 1; }
.user-card-copy strong, .user-card-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-card-copy strong { color: var(--color-ink); font-size: 0.78rem; }
.user-card-copy small { margin-top: 0.15rem; color: var(--color-subtle); font-size: 0.68rem; }
.user-profile-link { display: flex; gap: 0.65rem; min-width: 0; flex: 1; align-items: center; color: inherit; text-decoration: none; }
.user-profile-link:hover .user-card-copy strong { color: var(--color-brand-700); }

.icon-button { display: inline-grid; width: 2.5rem; height: 2.5rem; padding: 0; place-items: center; border: 0; border-radius: 9px; color: var(--color-muted); background: transparent; cursor: pointer; }
.icon-button:hover { color: var(--color-ink); background: rgb(98 116 130 / 9%); }
.table-action { width: 2.25rem; height: 2.25rem; border: 1px solid var(--color-border); background: var(--color-surface); box-shadow: 0 1px 2px rgb(15 23 42 / 4%); }
.table-action .icon { width: 1.05rem; height: 1.05rem; }
.applicant-table .table-action-cell .button-link { white-space: nowrap; }
.table-action:hover { color: var(--color-brand-700); border-color: var(--color-brand-200); background: var(--color-brand-50); }
.table-action:focus-visible { outline: 3px solid rgb(109 94 252 / 22%); outline-offset: 2px; }
.user-card .icon-button { color: var(--color-subtle); }
.user-card .icon-button:hover { color: var(--color-ink); background: #f0f1f4; }

/* Portal de cooperativa: sidebar clara, distinta de la administración global CopeNET */
.app-layout-portal .sidebar {
  color: var(--color-ink);
  background: var(--color-surface);
  border-right: 1px solid var(--color-border);
  box-shadow: none;
}

.app-layout-portal .brand strong { color: var(--color-ink); }
.app-layout-portal .brand small { color: var(--color-subtle); }
.app-layout-portal .sidebar-close { color: var(--color-muted) !important; }

.app-layout-portal .context-badge { border-color: var(--color-border); background: var(--color-brand-50); }
.app-layout-portal .context-badge small { color: var(--color-brand-700); }
.app-layout-portal .context-badge strong { color: var(--color-ink); }

.app-layout-portal .nav-link { color: var(--color-muted); }
.app-layout-portal .nav-link:hover { color: var(--color-ink); background: var(--color-canvas); }
.app-layout-portal .nav-link.is-active { color: var(--color-brand-800); background: var(--color-brand-50); box-shadow: inset 3px 0 0 var(--color-brand-600); }
.app-layout-portal .nav-section-title { color: var(--color-subtle); }

.app-layout-portal .user-card { border-top: 1px solid var(--color-border); }
.app-layout-portal .user-card-copy strong { color: var(--color-ink); }
.app-layout-portal .user-card-copy small { color: var(--color-subtle); }
.app-layout-portal .user-card .icon-button { color: var(--color-subtle); }
.app-layout-portal .user-card .icon-button:hover { color: var(--color-ink); background: rgb(98 116 130 / 9%); }
.user-card form { margin: 0; }
.theme-shortcut { display: flex; gap: 0.65rem; min-height: 3.5rem; margin: 0 0 0.75rem; padding: 0.65rem; align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-sm); color: var(--color-ink); background: var(--color-canvas); text-decoration: none; }
.theme-shortcut:hover { border-color: var(--color-brand-200); background: var(--color-brand-50); }
.theme-shortcut-icon { display: grid; width: 2rem; height: 2rem; flex: none; place-items: center; border-radius: 8px; color: var(--color-brand-700); background: var(--color-brand-100); }
.theme-shortcut-copy { display: grid; min-width: 0; flex: 1; }
.theme-shortcut-copy strong { font-size: 0.76rem; }
.theme-shortcut-copy small { margin-top: 0.12rem; color: var(--color-muted); font-size: 0.66rem; }
.theme-shortcut > .icon { width: 0.95rem; height: 0.95rem; color: var(--color-subtle); }

.app-column { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 15; display: none; gap: 0.75rem; align-items: center; min-height: 4rem; padding: 0.65rem 1.1rem; border-bottom: 1px solid var(--color-border); background: rgb(255 255 255 / 94%); backdrop-filter: blur(12px); }
.topbar-context { display: grid; }
.topbar small { color: var(--color-muted); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; }
.topbar strong { margin-top: 0.1rem; font-family: var(--font-display); font-size: 0.88rem; font-weight: 600; }
.topbar-actions { display: flex; gap: 0.25rem; margin-left: auto; align-items: center; }
.menu-button { margin-left: -0.35rem; }
.app-content { min-width: 0; background: #fafbfc; }
.nav-overlay { display: none; }

@media (min-width: 961px) {
  .app-layout.is-sidebar-collapsed { grid-template-columns: 4.75rem minmax(0, 1fr); }
  .app-layout.is-sidebar-collapsed .sidebar { visibility: visible; padding-inline: 0.55rem; opacity: 1; transform: none; pointer-events: auto; }
  .app-layout.is-sidebar-collapsed .topbar { display: flex; }
  .app-layout.is-sidebar-collapsed .brand { justify-content: center; padding-inline: 0; }
  .app-layout.is-sidebar-collapsed .brand-copy,
  .app-layout.is-sidebar-collapsed .sidebar-toggle,
  .app-layout.is-sidebar-collapsed .nav-section-title,
  .app-layout.is-sidebar-collapsed .nav-group-summary,
  .app-layout.is-sidebar-collapsed .nav-link > span,
  .app-layout.is-sidebar-collapsed .platform-signature > span:last-child,
  .app-layout.is-sidebar-collapsed .user-card-copy { display: none; }
  .app-layout.is-sidebar-collapsed .brand-mark,
  .app-layout.is-sidebar-collapsed .portal-company-brand { width: 3rem; height: 3rem; }
  .app-layout.is-sidebar-collapsed .platform-brand-logo-main { display: none; }
  .app-layout.is-sidebar-collapsed .platform-brand-logo-compact { display: grid; width: 3rem; height: 3rem; }
  .app-layout.is-sidebar-collapsed .primary-nav { gap: 0.8rem; }
  .app-layout.is-sidebar-collapsed .nav-section { gap: 0.35rem; }
  .app-layout.is-sidebar-collapsed .nav-group-links { display: grid !important; gap: 0.35rem; padding: 0; }
  .app-layout.is-sidebar-collapsed .nav-link { min-height: 3rem; justify-content: center; padding: 0.65rem; }
  .app-layout.is-sidebar-collapsed .nav-link .icon { width: 1.35rem; height: 1.35rem; }
  .app-layout.is-sidebar-collapsed .platform-signature { justify-content: center; padding-inline: 0; }
  .app-layout.is-sidebar-collapsed .platform-signature-logo-main { display: none; }
  .app-layout.is-sidebar-collapsed .platform-signature.platform-signature-logo-only > .platform-signature-logo-compact { display: grid; }
  .app-layout.is-sidebar-collapsed .user-profile-link { justify-content: center; }
}

/* Content */
.platform-logo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.platform-logo-field { display: grid; gap: 0.65rem; align-content: start; }
.platform-logo-preview { display: grid; min-height: 8rem; place-items: center; padding: 1rem; border: 1px dashed var(--color-border); border-radius: 12px; background: var(--color-canvas); color: var(--color-muted); }
.platform-logo-preview.is-compact { max-width: 10rem; }
.platform-logo-preview img { max-width: 100%; max-height: 7rem; object-fit: contain; }
.platform-logo-preview.is-compact img { max-width: 5rem; }
.platform-profile-panel .form-grid-span { grid-column: 1 / -1; }
.platform-profile-panel label:not(.check-row) { display: block; margin-bottom: 0.4rem; color: #304757; font-size: 0.82rem; font-weight: 750; }
.platform-profile-panel .check-row { display: flex; gap: 0.55rem; align-items: center; color: var(--color-muted); font-size: 0.82rem; }
@media (max-width: 720px) { .platform-logo-grid { grid-template-columns: 1fr; } }

.page-shell { min-height: 100vh; display: grid; place-items: center; padding: 2rem 1rem; }
.app-content .page-shell { min-height: 0; display: block; padding: 1.75rem clamp(1.25rem, 3vw, 2.5rem) 3rem; }
.page-shell-top { place-items: start center; }

.panel { width: min(100%, 44rem); padding: 2rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-md); }
.app-content .panel,
.app-content .panel.panel-wide,
.app-content .panel.interior-page { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.panel-wide { width: min(100%, 76rem); }
.auth-panel { max-width: 29rem; }

.auth-network-shell {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 8%, rgba(18, 133, 120, .16), transparent 32rem),
    radial-gradient(circle at 88% 90%, rgba(36, 105, 174, .12), transparent 30rem),
    linear-gradient(145deg, #f4f8fb 0%, #eef4f2 100%);
}
.auth-network-shell .auth-network-background { z-index: -1; opacity: .78; }
.auth-network-shell .auth-panel {
  position: relative;
  z-index: 1;
  border-color: rgb(255 255 255 / 75%);
  background: rgb(255 255 255 / 91%);
  box-shadow: 0 24px 70px rgb(16 39 61 / 14%);
  backdrop-filter: blur(14px);
}
.auth-split-layout {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(94rem, 88vw);
  height: min(45rem, calc(100svh - 7.5rem));
  min-height: min(36rem, calc(100svh - 7.5rem));
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 78%);
  border-radius: 1.75rem;
  background: rgb(255 255 255 / 48%);
  box-shadow: 0 30px 90px rgb(16 39 61 / 17%);
  backdrop-filter: blur(16px);
}
.auth-network-shell .auth-login-card {
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 0;
  display: grid;
  padding: clamp(2.25rem, 4vw, 4.5rem);
  border: 0;
  border-radius: 0;
  background: rgb(255 255 255 / 94%);
  box-shadow: none;
  place-items: center;
  grid-area: 1 / 2;
}
.auth-login-content { display: grid; width: min(100%, 30rem); margin: auto; align-content: center; }
.auth-login-card h1 { margin-bottom: .65rem; font-size: clamp(2rem, 3vw, 2.65rem); }
.auth-login-introduction { margin: 0 0 1.75rem; color: var(--color-muted); line-height: 1.55; }
.auth-login-card .form-stack { margin-bottom: 1rem; }
.auth-recovery-link { display: inline-flex; margin-top: .25rem; font-size: .88rem; font-weight: 650; }
.auth-network-callout {
  position: relative;
  display: flex;
  height: 100%;
  min-height: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(2.25rem, 4vw, 4.5rem);
  overflow: hidden;
  color: #10273d;
  border-right: 1px solid rgb(36 105 174 / 12%);
  background:
    radial-gradient(circle at 88% 8%, rgb(77 177 167 / 18%), transparent 17rem),
    radial-gradient(circle at 8% 92%, rgb(36 105 174 / 12%), transparent 20rem),
    linear-gradient(145deg, #f7fbff 0%, #edf7f6 100%);
  text-align: center;
  grid-area: 1 / 1;
}
.auth-network-callout::before,
.auth-network-callout::after {
  position: absolute;
  border: 1px solid rgb(36 105 174 / 11%);
  border-radius: 50%;
  pointer-events: none;
  content: "";
}
.auth-network-callout::before { top: -7rem; right: -5rem; width: 20rem; height: 20rem; }
.auth-network-callout::after { bottom: -9rem; left: -7rem; width: 24rem; height: 24rem; }
.auth-network-scene {
  position: relative;
  width: min(100%, 25rem);
  height: 9rem;
  margin: 0 auto 1.15rem;
}
.auth-scene-person,
.auth-scene-search,
.auth-scene-result {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  border: 1px solid rgb(36 105 174 / 16%);
  color: #2469ae;
  background: rgb(255 255 255 / 78%);
  box-shadow: 0 14px 32px rgb(16 39 61 / 10%);
  backdrop-filter: blur(8px);
}
.auth-scene-person { width: 3.4rem; height: 3.4rem; border-radius: 1rem; }
.auth-scene-person .icon { width: 1.45rem; height: 1.45rem; }
.auth-scene-person-one { top: .65rem; left: 5%; }
.auth-scene-person-two { right: 4%; bottom: .75rem; }
.auth-scene-person-three { bottom: .1rem; left: 18%; }
.auth-scene-search {
  top: 50%;
  left: 50%;
  width: 6.2rem;
  height: 6.2rem;
  border-radius: 50%;
  color: #0d756b;
  background: rgb(255 255 255 / 88%);
  transform: translate(-50%, -50%);
}
.auth-scene-search .icon { width: 3rem; height: 3rem; stroke-width: 1.5; }
.auth-scene-result { top: .5rem; right: 18%; width: 2.4rem; height: 2.4rem; border-radius: 50%; color: #07564f; background: #b9f3dc; }
.auth-scene-result .icon { width: 1.15rem; height: 1.15rem; }
.auth-scene-line {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  height: 1px;
  background: linear-gradient(90deg, rgb(36 105 174 / 5%), rgb(13 117 107 / 48%), rgb(36 105 174 / 5%));
  transform-origin: left center;
}
.auth-scene-line-one { width: 44%; transform: rotate(-155deg); }
.auth-scene-line-two { width: 42%; transform: rotate(29deg); }
.auth-callout-kicker { position: relative; z-index: 1; margin: 0 0 .6rem; color: #2469ae; font-size: .72rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.auth-network-callout h2 { position: relative; z-index: 1; max-width: 34rem; margin: 0 0 .8rem; color: #10273d; font-size: clamp(1.8rem, 2.6vw, 2.75rem); line-height: 1.05; }
.auth-network-callout > p:not(.auth-callout-kicker) { position: relative; z-index: 1; max-width: 36rem; margin-bottom: 1rem; color: #526879; line-height: 1.55; }
.auth-callout-benefits { position: relative; z-index: 1; display: grid; width: min(100%, 29rem); gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; text-align: left; }
.auth-callout-benefits li { display: flex; gap: .55rem; align-items: center; color: #30495e; font-size: .86rem; }
.auth-callout-benefits .icon { width: 1rem; height: 1rem; flex: none; color: #0d756b; }
.auth-network-callout .auth-callout-action { position: relative; z-index: 1; display: inline-flex; width: fit-content; gap: .65rem; align-items: center; margin: 0; color: #fff; background: #2469ae; box-shadow: 0 12px 30px rgb(36 105 174 / 22%); }
.auth-network-callout .auth-callout-action:hover { color: #fff; background: #174f87; transform: translateY(-2px); }
.auth-callout-action .icon { width: 1rem; height: 1rem; transition: transform 160ms ease; }
.auth-callout-action:hover .icon { transform: translateX(3px); }
.auth-network-callout > small { position: relative; z-index: 1; margin-top: .8rem; color: #718292; font-size: .72rem; }

@media (prefers-reduced-motion: no-preference) {
  .auth-network-callout {
    animation:
      auth-panel-enter .6s cubic-bezier(.2, .8, .2, 1) both,
      auth-callout-glow 3.6s .7s ease-in-out infinite;
  }
  .auth-scene-search { animation: auth-search-float 4s ease-in-out infinite; }
  .auth-scene-person-one { animation: auth-person-float 4.8s ease-in-out infinite; }
  .auth-scene-person-two { animation: auth-person-float 5.4s .6s ease-in-out infinite reverse; }
  .auth-scene-person-three { animation: auth-person-float 4.5s 1.1s ease-in-out infinite; }
  .auth-scene-result { animation: auth-result-pulse 2.8s ease-in-out infinite; }
  .auth-scene-line { animation: auth-line-pulse 2.8s ease-in-out infinite; }
}
@keyframes auth-panel-enter { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes auth-callout-glow { 0%, 100% { box-shadow: inset 0 0 0 1px rgb(13 117 107 / 0%); } 50% { box-shadow: inset 0 0 0 2px rgb(13 117 107 / 22%), inset 0 0 4rem rgb(77 177 167 / 8%); } }
@keyframes auth-search-float { 0%, 100% { transform: translate(-50%, -50%) rotate(-3deg); } 50% { transform: translate(-50%, calc(-50% - 8px)) rotate(3deg); } }
@keyframes auth-person-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -9px; } }
@keyframes auth-result-pulse { 0%, 100% { scale: 1; box-shadow: 0 0 0 0 rgb(185 243 220 / 0%); } 50% { scale: 1.08; box-shadow: 0 0 0 9px rgb(185 243 220 / 10%); } }
@keyframes auth-line-pulse { 0%, 100% { opacity: .48; } 50% { opacity: 1; } }

@media (max-width: 860px) {
  .auth-network-shell { overflow: visible; padding-block: 1rem; }
  .auth-split-layout { width: min(38rem, 100%); height: auto; min-height: 0; grid-template-columns: 1fr; }
  .auth-network-shell .auth-login-card,
  .auth-network-callout { min-height: 0; padding: 2rem; }
  .auth-network-shell .auth-login-card,
  .auth-network-callout { grid-area: auto; }
  .auth-network-callout { order: 2; }
  .auth-network-scene { height: 10rem; margin-bottom: 1rem; }
}

@media (max-width: 480px) {
  .auth-network-shell { padding: .5rem; }
  .auth-split-layout { border-radius: 1rem; }
  .auth-network-shell .auth-login-card,
  .auth-network-callout { padding: 1.5rem 1.2rem; }
  .auth-network-scene { height: 8.5rem; }
  .auth-scene-search { width: 5rem; height: 5rem; }
  .auth-scene-search .icon { width: 2.4rem; height: 2.4rem; }
  .auth-scene-person { width: 2.9rem; height: 2.9rem; }
  .auth-callout-action { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .auth-network-shell * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.eyebrow { margin: 0 0 0.55rem; color: var(--color-brand-700); font-family: var(--font-display); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.app-content .eyebrow { color: var(--color-brand-700); }

.page-header, .heading-row { display: flex; gap: 1.5rem; align-items: flex-start; justify-content: space-between; margin-bottom: 1.6rem; }
.heading-row > div:first-child, .page-header > div:first-child { max-width: 48rem; }
.heading-row h1, .page-header h1 { margin-bottom: 0.45rem; }
.heading-row p, .page-header p { margin-bottom: 0; color: var(--color-muted); line-height: 1.6; }

.surface { padding: clamp(1.1rem, 2.5vw, 1.5rem); border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); box-shadow: 0 1px 2px rgb(36 40 54 / 3%); }
.surface + .surface { margin-top: 1rem; }
.surface-header { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.surface-header h2 { margin: 0; }
.surface-header p { margin: 0; color: var(--color-muted); }

.service-test-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(20rem, .85fr); gap: 1rem; align-items: start; }
.service-test-form-card, .service-test-result-card { margin: 0 !important; }
.service-test-form { margin-bottom: 0; }
.service-test-external-fields { display: grid; gap: 1rem; margin: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fbfcfd; }
.service-test-external-fields[hidden] { display: none; }
.service-test-external-fields legend { padding: 0 .4rem; color: var(--color-ink); font-weight: 800; }
.service-test-external-fields > div > label { display: block; margin-bottom: .4rem; color: #304757; font-size: .82rem; font-weight: 750; }
.service-test-result-card { position: sticky; top: 1rem; }
.service-test-result-summary { display: grid; grid-template-columns: auto 1fr; gap: .9rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fbfcfd; }
.service-test-result-summary > .icon { width: 1.7rem; height: 1.7rem; margin-top: .15rem; }
.service-test-result-summary.is-success > .icon { color: var(--color-success); }
.service-test-result-summary.is-danger > .icon { color: var(--color-danger); }
.service-test-result-summary strong { display: block; margin: .75rem 0 .25rem; color: var(--color-ink); font-size: 1.05rem; }
.service-test-result-summary p { margin: 0; color: var(--color-muted); line-height: 1.55; }
.service-test-result-list { display: grid; gap: 0; margin: 1rem 0 0; }
.service-test-result-list > div { display: flex; gap: 1rem; padding: .75rem 0; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--color-border); }
.service-test-result-list dt { color: var(--color-muted); font-size: .78rem; }
.service-test-result-list dd { margin: 0; color: var(--color-ink); font-size: .82rem; font-weight: 750; text-align: right; }
.service-test-technical-details { margin-top: 1rem; color: var(--color-muted); font-size: .8rem; }
.service-test-technical-details summary { cursor: pointer; font-weight: 750; }
.service-test-technical-details code { display: block; margin-top: .6rem; padding: .65rem; border-radius: var(--radius-sm); background: #f4f6f8; overflow-wrap: anywhere; }
.service-test-empty-result { display: grid; min-height: 20rem; padding: 2rem; place-items: center; align-content: center; text-align: center; }
.service-test-empty-result .icon { width: 2.5rem; height: 2.5rem; color: var(--color-brand-700); }
.service-test-empty-result strong { margin-top: 1rem; color: var(--color-ink); }
.service-test-empty-result p { max-width: 25rem; margin: .45rem 0 0; color: var(--color-muted); line-height: 1.55; }

@media (max-width: 900px) {
  .service-test-layout { grid-template-columns: 1fr; }
  .service-test-result-card { position: static; }
}

.wallet-page { display: block; }
.wallet-page-header { width: 100%; margin-bottom: 1.25rem; }
.wallet-page-header .page-description { max-width: 42rem; }
.wallet-recharge-button .icon { width: 1rem; height: 1rem; }

.wallet-page > .wallet-trial-card,
.wallet-page > .wallet-surface { width: 100%; margin-top: 1.25rem !important; }

.wallet-balance-overview {
  display: grid;
  grid-template-columns: minmax(19rem, 1.05fr) minmax(0, 1.65fr);
  gap: 1.25rem;
}

.wallet-balance-primary {
  position: relative;
  display: flex;
  min-height: 12rem;
  gap: 1rem;
  padding: clamp(1.35rem, 3vw, 2rem);
  align-items: flex-start;
  overflow: hidden;
  border-radius: 1rem;
  color: #fff;
  background: linear-gradient(135deg, var(--color-brand-900), var(--color-brand-700));
  box-shadow: 0 16px 32px rgb(14 76 82 / 16%);
}

.wallet-balance-primary::after {
  position: absolute;
  right: -3rem;
  bottom: -5rem;
  width: 14rem;
  height: 14rem;
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 50%;
  box-shadow: 0 0 0 2.5rem rgb(255 255 255 / 5%);
  content: "";
}

.wallet-balance-primary > * { position: relative; z-index: 1; }
.wallet-balance-icon { display: grid; width: 2.75rem; height: 2.75rem; flex: none; place-items: center; border-radius: 0.75rem; background: rgb(255 255 255 / 15%); }
.wallet-balance-icon .icon { width: 1.4rem; height: 1.4rem; }
.wallet-balance-primary span { color: rgb(255 255 255 / 78%); font-size: 0.78rem; font-weight: 750; letter-spacing: 0.05em; text-transform: uppercase; }
.wallet-balance-primary strong { display: block; margin: 0.45rem 0 0.25rem; font-family: var(--font-display); font-size: clamp(2.25rem, 4vw, 3.4rem); line-height: 1; }
.wallet-balance-primary p { margin: 0; color: rgb(255 255 255 / 72%); font-size: 0.82rem; }

.wallet-balance-secondary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.wallet-balance-secondary article { display: flex; min-width: 0; padding: 1.1rem; justify-content: center; flex-direction: column; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-sm); }
.wallet-balance-secondary span { color: var(--color-muted); font-size: 0.72rem; font-weight: 750; letter-spacing: 0.04em; text-transform: uppercase; }
.wallet-balance-secondary strong { margin: 0.5rem 0 0.35rem; color: var(--color-ink); font-family: var(--font-display); font-size: clamp(1.15rem, 2vw, 1.55rem); overflow-wrap: anywhere; }
.wallet-balance-secondary small { color: var(--color-subtle); font-size: 0.72rem; line-height: 1.45; }

.wallet-trial-card {
  display: grid;
  grid-template-columns: auto minmax(15rem, 1fr) auto;
  gap: 1rem 1.25rem;
  padding: 1.15rem 1.3rem;
  align-items: center;
  border: 1px solid color-mix(in srgb, var(--color-brand-200) 78%, transparent);
  border-radius: 1rem;
  background: linear-gradient(110deg, var(--color-brand-50), var(--color-surface) 68%);
}

.wallet-trial-icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border-radius: 0.8rem; color: var(--color-brand-800); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.wallet-trial-copy .eyebrow { margin-bottom: 0.2rem; }
.wallet-trial-copy h2 { margin: 0; font-size: 1rem; }
.wallet-trial-copy > p:last-child { margin: 0.25rem 0 0; color: var(--color-muted); font-size: 0.78rem; }
.wallet-trial-metrics { display: flex; gap: 0.65rem; }
.wallet-trial-metrics div { min-width: 7.75rem; padding: 0.7rem 0.8rem; border-left: 1px solid var(--color-border); }
.wallet-trial-metrics strong { display: block; color: var(--color-brand-900); font-family: var(--font-display); font-size: 1.35rem; }
.wallet-trial-metrics span { color: var(--color-muted); font-size: 0.68rem; }
.wallet-trial-progress { grid-column: 2 / -1; }
.wallet-trial-progress > span { display: block; height: 0.4rem; overflow: hidden; border-radius: 999px; background: var(--color-border); }
.wallet-trial-progress i { display: block; width: var(--wallet-trial-progress); height: 100%; border-radius: inherit; background: var(--color-brand-600); }
.wallet-trial-progress small { display: block; margin-top: 0.45rem; color: var(--color-muted); font-size: 0.7rem; }

.wallet-surface .surface-header { align-items: flex-end; }
.wallet-surface .surface-header .eyebrow { margin-bottom: 0.25rem; }
.wallet-record-count { flex: none; padding: 0.35rem 0.6rem; border-radius: 999px; color: var(--color-muted); background: var(--color-canvas); font-size: 0.7rem; font-weight: 750; }
.wallet-table th { white-space: nowrap; }
.wallet-table td { vertical-align: middle; }
.wallet-money-cell, .wallet-entry-amount { font-variant-numeric: tabular-nums; white-space: nowrap; }
.wallet-entry-type { display: inline-flex; width: max-content; gap: 0.25rem; padding: 0.3rem 0.5rem; border-radius: 999px; font-size: 0.72rem; font-weight: 750; }
.wallet-entry-row.is-credit .wallet-entry-type, .wallet-entry-row.is-credit .wallet-entry-amount { color: var(--color-success); }
.wallet-entry-row.is-credit .wallet-entry-type { background: var(--color-success-soft); }
.wallet-entry-row.is-debit .wallet-entry-type, .wallet-entry-row.is-debit .wallet-entry-amount { color: var(--color-danger); }
.wallet-entry-row.is-debit .wallet-entry-type { background: var(--color-danger-soft); }

@media (max-width: 1040px) {
  .wallet-balance-overview { grid-template-columns: 1fr; }
  .wallet-balance-primary { min-height: 10rem; }
}

@media (max-width: 760px) {
  .wallet-balance-secondary { grid-template-columns: 1fr; }
  .wallet-balance-secondary article { min-height: 7rem; }
  .wallet-trial-card { grid-template-columns: auto minmax(0, 1fr); }
  .wallet-trial-metrics { grid-column: 1 / -1; }
  .wallet-trial-metrics div { flex: 1; }
  .wallet-trial-progress { grid-column: 1 / -1; }
  .wallet-surface .surface-header { align-items: flex-start; }
}

/* Importación rápida de la base de morosos */
.data-upload-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .75fr);
  gap: 1.5rem;
  align-items: center;
  margin-bottom: 1rem;
  padding: 1.6rem;
  border: 1px solid var(--color-brand-100);
  border-radius: 14px;
  background: linear-gradient(135deg, var(--color-brand-50), #fff 68%);
}
.data-upload-hero h1 { margin: .2rem 0 .55rem; color: #17324e; }
.data-upload-hero-copy > p:not(.eyebrow) { max-width: 46rem; margin: 0 0 1rem; color: var(--color-muted); line-height: 1.6; }
.data-upload-primary-action { display: inline-flex; width: fit-content; gap: .5rem; align-items: center; }
.data-upload-quick-steps { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; }
.data-upload-quick-steps li { display: flex; gap: .7rem; align-items: center; padding: .75rem; border: 1px solid #dce6ef; border-radius: 10px; background: rgb(255 255 255 / 88%); }
.data-upload-quick-steps li > span { display: grid; width: 1.8rem; height: 1.8rem; flex: none; place-items: center; border-radius: 50%; color: #fff; background: var(--color-brand-700); font-size: .75rem; font-weight: 800; }
.data-upload-quick-steps strong, .data-upload-quick-steps small { display: block; }
.data-upload-quick-steps small { margin-top: .1rem; color: var(--color-muted); }
.data-upload-privacy-note { display: flex; gap: .65rem; align-items: center; margin-bottom: 1rem; padding: .7rem .85rem; color: #31516e; border-radius: 9px; background: #f4f8fb; }
.data-upload-privacy-note .icon { flex: none; color: var(--color-brand-700); }
.data-upload-privacy-note p { margin: 0; font-size: .78rem; }
.data-upload-history-heading { margin-top: 1.4rem; }
.data-upload-record-search { grid-template-columns: minmax(16rem, 1fr) auto; align-items: end; }
.data-upload-record-search-field { min-width: 0; }
.data-upload-record-search .filter-actions { align-items: stretch; white-space: nowrap; }
.data-upload-record-search-help { grid-column: 1 / -1; margin-top: -.45rem; }
.data-upload-progress { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.data-upload-progress li { display: flex; gap: .55rem; align-items: center; min-height: 3rem; padding: .65rem .75rem; color: #718095; border: 1px solid #dbe4ed; border-radius: 9px; background: #fff; }
.data-upload-progress li > span { display: grid; width: 1.65rem; height: 1.65rem; flex: none; place-items: center; border-radius: 50%; background: #edf1f5; font-size: .72rem; font-weight: 800; }
.data-upload-progress li strong { font-size: .78rem; }
.data-upload-progress li.is-current { color: var(--color-brand-800); border-color: var(--color-brand-200); background: var(--color-brand-50); }
.data-upload-progress li.is-current > span { color: #fff; background: var(--color-brand-700); }
.data-upload-progress li.is-complete { color: #16633c; border-color: #bfe2ce; background: #f0faf4; }
.data-upload-progress li.is-complete > span { color: #fff; background: #16844c; }
.data-upload-form-card { max-width: 54rem; margin-inline: auto; }
.data-upload-dropzone { display: grid; justify-items: center; padding: 2rem 1.25rem; text-align: center; border: 2px dashed var(--color-brand-200); border-radius: 12px; background: var(--color-brand-50); }
.data-upload-dropzone-icon { display: grid; width: 3.5rem; height: 3.5rem; margin-bottom: .75rem; place-items: center; border-radius: 50%; color: var(--color-brand-700); background: #fff; box-shadow: 0 6px 18px rgb(20 49 77 / 10%); }
.data-upload-dropzone-icon .icon { width: 1.65rem; height: 1.65rem; }
.data-upload-dropzone label { display: block; color: #17324e; font-size: 1.05rem; font-weight: 800; }
.data-upload-dropzone p { margin: .2rem 0 .85rem; color: var(--color-muted); font-size: .8rem; }
.data-upload-dropzone input[type="file"] { width: min(100%, 30rem); padding: .65rem; border: 1px solid #cad7e3; border-radius: 8px; background: #fff; }
.data-upload-requirements { display: grid; gap: .55rem; margin-top: 1rem; }
.data-upload-requirements > div { display: flex; gap: .55rem; align-items: flex-start; color: #3f566d; font-size: .82rem; }
.data-upload-requirements .icon { width: 1rem; height: 1rem; flex: none; margin-top: .1rem; color: #16844c; }
.data-mapping-card { padding: 1.2rem; }
.data-mapping-list { display: grid; gap: .65rem; }
.data-mapping-row { display: grid; grid-template-columns: minmax(10rem, .8fr) 2rem minmax(14rem, 1fr); gap: .75rem; align-items: center; padding: .8rem; border: 1px solid #dce5ee; border-radius: 9px; background: #fbfcfe; }
.data-mapping-row small, .data-mapping-row strong { display: block; }
.data-mapping-row small { margin-bottom: .2rem; color: var(--color-muted); }
.data-mapping-row strong { overflow-wrap: anywhere; color: #17324e; }
.data-mapping-row select { width: 100%; min-height: 2.6rem; }
.data-mapping-arrow { color: var(--color-brand-600); text-align: center; }
.data-upload-auto-note, .data-upload-validating { display: flex; gap: .75rem; align-items: center; margin-top: 1rem; padding: .85rem 1rem; border: 1px solid #bfe2ce; border-radius: 9px; color: #245a3e; background: #f0faf4; }
.data-upload-auto-note p, .data-upload-validating p { margin: 0; }
.data-upload-auto-note .icon { flex: none; color: #16844c; }
.data-upload-validating { margin: 1rem 0; color: #31516e; border-color: var(--color-brand-200); background: var(--color-brand-50); }
.data-upload-validating strong { display: block; margin-bottom: .2rem; }
.data-upload-validating p { font-size: .8rem; }
.data-upload-actions-card .button-row { align-items: center; }
.data-upload-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .75rem 1rem; margin: 0 0 1.25rem; }
.data-upload-toolbar-main, .data-upload-toolbar-caution { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.data-upload-toolbar form { display: inline-flex; margin: 0; width: auto; }
.data-upload-toolbar .button, .data-upload-toolbar .button-link { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; margin: 0; }
.data-upload-toolbar .icon { flex: none; width: 1.1rem; height: 1.1rem; }
.data-upload-toolbar-caution { padding-left: 1rem; border-left: 1px solid var(--color-border); }
.data-upload-toolbar-caution .button { color: var(--color-danger, #b42318); }
.data-upload-toolbar-help { flex-basis: 100%; margin: 0; color: var(--color-muted); font-size: .875rem; text-align: right; }
@media (max-width: 720px) {
  .data-upload-toolbar-main { width: 100%; }
  .data-upload-toolbar-main form, .data-upload-toolbar-main .button-link { flex: 1 1 auto; }
  .data-upload-toolbar-main form .button { width: 100%; }
  .data-upload-toolbar-caution { padding-left: 0; border-left: 0; }
}

@media (max-width: 760px) {
  .data-upload-hero { grid-template-columns: 1fr; padding: 1rem; }
  .data-upload-primary-action { width: 100%; justify-content: center; }
  .data-upload-progress { grid-template-columns: 1fr; }
  .data-upload-progress li { min-height: 2.6rem; }
  .data-mapping-row { grid-template-columns: 1fr; }
  .data-mapping-arrow { transform: rotate(90deg); }
  .data-upload-dropzone { padding: 1.25rem .8rem; }
  .data-upload-record-search { grid-template-columns: 1fr; align-items: stretch; }
  .data-upload-record-search-field { grid-row: 1; }
  .data-upload-record-search-help { grid-row: 2; margin-top: -.45rem; }
  .data-upload-record-search .filter-actions { grid-row: 3; flex-direction: column; white-space: normal; }
  .data-upload-record-search .filter-actions .button,
  .data-upload-record-search .filter-actions .button-link { width: 100%; }
}

.document-camera-option {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  margin-top: 0.65rem;
}

.document-camera-button {
  display: inline-flex;
  min-height: 2.5rem;
  gap: 0.45rem;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.document-camera-button .icon {
  width: 1rem;
  height: 1rem;
}

.document-camera-status {
  color: var(--color-text-muted, #64748b);
  font-size: 0.82rem;
}

.device-camera-modal {
  width: min(94vw, 48rem);
  max-width: none;
  padding: 0;
  border: 0;
  border-radius: 1rem;
  background: transparent;
  color: var(--color-text, #182033);
}

.device-camera-modal::backdrop {
  background: rgb(7 18 38 / 72%);
  backdrop-filter: blur(3px);
}

.device-camera-card {
  padding: 1.15rem;
  border: 1px solid var(--color-border, #dbe3ee);
  border-radius: 1rem;
  background: var(--color-surface, #fff);
  box-shadow: 0 24px 70px rgb(4 16 37 / 34%);
}

.device-camera-card > header,
.device-camera-card > footer {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  justify-content: space-between;
}

.device-camera-card h2,
.device-camera-card p {
  margin: 0;
}

.device-camera-stage {
  position: relative;
  overflow: hidden;
  min-height: 18rem;
  margin: 1rem 0 0.75rem;
  border-radius: 0.85rem;
  background: #071226;
}

.device-camera-stage video {
  display: block;
  width: 100%;
  min-height: 18rem;
  max-height: 65vh;
  object-fit: contain;
}

.device-camera-error {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  margin: 0;
}

.device-camera-live-status {
  min-height: 1.5rem;
  margin-bottom: 1rem !important;
  color: var(--color-text-muted, #64748b);
}

.device-camera-card > footer {
  justify-content: flex-end;
}

@media (max-width: 520px) {
  .document-camera-option {
    align-items: stretch;
    flex-direction: column;
  }

  .document-camera-button {
    width: 100%;
  }

  .device-camera-card > header {
    align-items: flex-start;
  }

  .device-camera-stage,
  .device-camera-stage video {
    min-height: 14rem;
  }

  .device-camera-card > footer {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .device-camera-card > footer .button,
  .device-camera-card > footer .button-link {
    width: 100%;
    justify-content: center;
  }
}

/* Ayuda guiada exclusiva del portal privado */
.guided-help-trigger {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--color-border, #dbe3ee);
  border-radius: 0.7rem;
  background: var(--color-surface, #fff);
  color: var(--color-text, #172033);
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}

.guided-help-trigger:hover,
.guided-help-trigger:focus-visible {
  border-color: var(--color-brand-500, #2563eb);
  color: var(--color-brand-700, #174ea6);
}

.wizard-guided-help-trigger {
  flex: none;
  white-space: nowrap;
}

.portal-guide-open {
  overflow: hidden;
}

.portal-guide-layer {
  position: fixed;
  z-index: 3000;
  inset: 0;
  background: transparent;
}

.portal-guide-layer.is-centered {
  background: rgb(15 23 42 / 58%);
}

.portal-guide-layer[hidden] {
  display: none;
}

.portal-guide-spotlight {
  position: fixed;
  z-index: 3001;
  border: 3px solid #fff;
  border-radius: 0.85rem;
  box-shadow: 0 0 0 4px var(--color-brand-500, #2563eb),
              0 0 0 9999px rgb(15 23 42 / 58%),
              0 12px 36px rgb(15 23 42 / 28%);
  pointer-events: none;
  transition: inset 180ms ease, width 180ms ease, height 180ms ease;
}

.portal-guide-card {
  position: fixed;
  z-index: 3002;
  max-height: calc(100vh - 32px);
  overflow: auto;
  padding: 1.25rem;
  border: 1px solid var(--color-border, #dbe3ee);
  border-radius: 1.1rem;
  background: var(--color-surface, #fff);
  box-shadow: 0 24px 70px rgb(15 23 42 / 28%);
  color: var(--color-text, #172033);
}

.portal-guide-card:focus-visible {
  outline: 3px solid var(--color-brand-300, #93c5fd);
  outline-offset: 3px;
}

.portal-guide-heading {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.8rem;
  align-items: start;
}

.portal-guide-heading h2 {
  margin: 0.15rem 0 0;
  font-size: 1.25rem;
  line-height: 1.25;
}

.portal-guide-heading small {
  color: var(--color-brand-700, #174ea6);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-guide-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 0.85rem;
  background: var(--color-brand-50, #eff6ff);
  color: var(--color-brand-700, #174ea6);
}

.portal-guide-progress {
  height: .42rem;
  margin-top: 1rem;
  overflow: hidden;
  border-radius: 999px;
  background: var(--color-surface-soft, #e8eef6);
}

.portal-guide-progress > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--color-brand-500, #2563eb), var(--color-brand-700, #174ea6));
  box-shadow: 0 0 14px color-mix(in srgb, var(--color-brand-500, #2563eb) 45%, transparent);
  transition: width 260ms cubic-bezier(.2, .8, .2, 1);
}

.portal-guide-card > p {
  margin: 1rem 0;
  color: var(--color-text-muted, #64748b);
  line-height: 1.55;
}

.portal-guide-save-status {
  min-height: 1.2em;
  font-size: 0.8rem;
  color: var(--color-danger, #b4232f) !important;
}

.portal-guide-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.portal-guide-actions .portal-guide-skip {
  margin-left: auto;
  padding-inline: .3rem;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  color: var(--color-text-muted, #64748b);
  font-size: .76rem;
  white-space: nowrap;
}

.portal-guide-actions .portal-guide-skip:hover,
.portal-guide-actions .portal-guide-skip:focus-visible {
  background: var(--color-surface-soft, #f1f5f9);
  color: var(--color-text, #172033);
}

.portal-guide-previous::before { margin-right: .35rem; content: "←"; }
.portal-guide-next::after { margin-left: .35rem; content: "→"; }

.portal-guide-card.is-step-forward .portal-guide-heading,
.portal-guide-card.is-step-forward > #portal-guide-description {
  animation: portal-guide-step-forward 280ms cubic-bezier(.2, .8, .2, 1);
}

.portal-guide-card.is-step-backward .portal-guide-heading,
.portal-guide-card.is-step-backward > #portal-guide-description {
  animation: portal-guide-step-backward 280ms cubic-bezier(.2, .8, .2, 1);
}

@keyframes portal-guide-step-forward {
  from { opacity: .25; transform: translateX(1.1rem) scale(.985); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes portal-guide-step-backward {
  from { opacity: .25; transform: translateX(-1.1rem) scale(.985); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}

@media (max-width: 720px) {
  .guided-help-trigger span {
    display: none;
  }

  .portal-guide-card {
    max-height: min(72vh, 580px);
    border-radius: 1rem;
  }

  .portal-guide-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .portal-guide-actions .portal-guide-skip {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-left: 0;
  }
}

@media (max-width: 900px) {
  .wizard-topbar-actions {
    gap: 10px;
  }

  .wizard-guided-help-trigger {
    width: 42px;
    padding-inline: 0;
    justify-content: center;
  }

  .wizard-guided-help-trigger span {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-guide-spotlight,
  .portal-guide-progress > span {
    transition: none;
  }

  .portal-guide-card.is-step-forward .portal-guide-heading,
  .portal-guide-card.is-step-forward > #portal-guide-description,
  .portal-guide-card.is-step-backward .portal-guide-heading,
  .portal-guide-card.is-step-backward > #portal-guide-description {
    animation: none;
  }
}

@media (max-width: 460px) {
  .wallet-balance-primary { min-height: 9rem; padding: 1.2rem; }
  .wallet-balance-icon { width: 2.3rem; height: 2.3rem; }
  .wallet-trial-card { align-items: start; }
  .wallet-trial-metrics { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .wallet-trial-metrics div { min-width: 0; padding: 0.65rem; border: 1px solid var(--color-border); border-radius: 0.65rem; }
  .wallet-record-count { display: none; }
}

.help-text { color: var(--color-muted); font-size: 0.86rem; line-height: 1.55; }
.meta-text { color: var(--color-muted); font-size: 0.82rem; }
.info-callout { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; align-items: start; padding: 0.9rem 1rem; border: 1px solid var(--color-brand-100); border-radius: 10px; color: #454064; background: var(--color-brand-50); }
.info-callout::before { display: grid; width: 1.4rem; height: 1.4rem; place-items: center; border-radius: 999px; color: #fff; background: var(--color-brand-700); font-size: 0.75rem; font-weight: 800; content: "i"; }
.info-callout strong { display: block; margin-bottom: 0.2rem; color: var(--color-brand-900); font-size: 0.85rem; }
.info-callout p { margin: 0; font-size: 0.82rem; line-height: 1.5; }
.form-stack > .info-callout { grid-column: 1 / -1; }

/* Buttons and actions */
.button, .button-link {
  display: inline-flex;
  gap: 0.45rem;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  padding: 0.68rem 1rem;
  border: 1px solid var(--color-brand-700);
  border-radius: var(--radius-sm);
  color: #fff;
  background: var(--color-brand-700);
  box-shadow: 0 2px 5px rgb(99 91 255 / 20%);
  cursor: pointer;
  font-weight: 750;
  line-height: 1;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.button:hover, .button-link:hover { color: #fff; background: var(--color-brand-800); border-color: var(--color-brand-800); box-shadow: 0 3px 8px rgb(99 91 255 / 22%); transform: translateY(-1px); }
.button:active, .button-link:active { transform: translateY(0); }
.button:disabled { opacity: 0.6; cursor: not-allowed; box-shadow: none; transform: none; }
.button-secondary, .button-link-secondary { color: var(--color-ink); border-color: var(--color-border); background: #fff; box-shadow: none; }
.button-secondary:hover, .button-link-secondary:hover { color: var(--color-ink); border-color: #b9c8d1; background: #f8fafb; box-shadow: none; }
.button-quiet { color: var(--color-brand-700); border-color: transparent; background: transparent; box-shadow: none; }
.button-quiet:hover { color: var(--color-brand-900); border-color: var(--color-brand-100); background: var(--color-brand-50); box-shadow: none; }
.button-danger { color: var(--color-danger); border-color: #f2cbd0; background: #fff; box-shadow: none; }
.button-danger:hover { color: #fff; border-color: var(--color-danger); background: var(--color-danger); box-shadow: none; }
.button-small { min-height: 2.15rem; padding: 0.48rem 0.7rem; font-size: 0.78rem; }
.text-link { font-weight: 650; text-decoration: none; }

.actions { display: flex; gap: 0.7rem; align-items: center; flex-wrap: wrap; }
.actions-end { justify-content: flex-end; }
.form-actions { display: flex; gap: 0.75rem; align-items: center; justify-content: flex-end; margin-top: 0.5rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
.row-actions { display: flex; gap: 0.35rem; align-items: center; flex-wrap: nowrap; }
.row-actions form { margin: 0; }

/* Forms */
.form-stack { display: grid; gap: 1.1rem; margin: 1.5rem 0; }
.app-content .form-stack:not(.drawer-form) { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.app-content .form-stack:not(.drawer-form) > .flash,
.app-content .form-stack:not(.drawer-form) > .surface,
.app-content .form-stack:not(.drawer-form) > .form-section,
.app-content .form-stack:not(.drawer-form) > .form-actions { grid-column: 1 / -1; }
.app-content .form-stack:not(.drawer-form) > div:has(textarea) { grid-column: 1 / -1; }
.app-content .form-stack:not(.drawer-form) > .surface { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.app-content .form-stack:not(.drawer-form) > .surface > h2,
.app-content .form-stack:not(.drawer-form) > .surface > strong,
.app-content .form-stack:not(.drawer-form) > .surface > p { grid-column: 1 / -1; }
.form-stack label:not(.checkbox), .filter-grid label { display: block; margin-bottom: 0.4rem; color: #304757; font-size: 0.82rem; font-weight: 750; }
.form-stack input:not([type="checkbox"]):not([type="submit"]), .form-stack select, .form-stack textarea, .filter-grid input:not([type="submit"]), .filter-grid select, .inline-form select {
  width: 100%; min-height: 2.75rem; padding: 0.7rem 0.8rem; border: 1px solid #c7d3da; border-radius: var(--radius-sm); color: var(--color-ink); background: #fff; transition: border-color 150ms ease, box-shadow 150ms ease;
}
.form-stack textarea { min-height: 8rem; resize: vertical; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.84rem; line-height: 1.5; }
.form-stack input:focus, .form-stack select:focus, .form-stack textarea:focus, .filter-grid input:focus, .filter-grid select:focus { border-color: var(--color-brand-500); outline: 0; box-shadow: 0 0 0 3px var(--focus-ring); }
.password-visibility-control { position: relative; width: 100%; }
.password-visibility-control > input { padding-right: 3rem !important; }
.password-visibility-toggle {
  position: absolute; top: 50%; right: 0.38rem; display: inline-grid; width: 2.2rem; height: 2.2rem;
  padding: 0; place-items: center; color: #607487; border: 0; border-radius: 0.5rem;
  background: transparent; cursor: pointer; transform: translateY(-50%);
}
.password-visibility-toggle:hover, .password-visibility-toggle.is-visible { color: var(--color-brand-700); background: #edf6f8; }
.password-visibility-toggle:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 1px; }
.password-visibility-toggle .icon { width: 1.2rem; height: 1.2rem; }
.portal-theme-dark .password-visibility-toggle { color: #a8bacb; }
.portal-theme-dark .password-visibility-toggle:hover,
.portal-theme-dark .password-visibility-toggle.is-visible { color: #e5f6f3; background: #24384a; }
.form-section { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1.25rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fbfcfd; }
.form-section legend { padding: 0 0.45rem; color: var(--color-ink); font-weight: 800; }
.form-section > .help-text,
.form-section > .checkbox { grid-column: 1 / -1; }
.infile-recipient-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .6rem; align-items: stretch; }
.infile-recipient-control .button { min-height: 2.75rem; white-space: nowrap; }
.infile-recipient-status { grid-column: 1 / -1; min-height: 1.4rem; margin: 0; color: var(--color-muted); font-size: .82rem; }
.infile-recipient-status[data-state="loading"] { color: var(--color-info, #185f98); }
.infile-recipient-status[data-state="success"] { color: var(--color-success, #087365); font-weight: 700; }
.infile-recipient-status[data-state="error"] { color: var(--color-danger, #b42318); font-weight: 700; }
.checkbox { display: flex !important; gap: 0.65rem; align-items: flex-start; color: #304757; font-size: 0.9rem; font-weight: 650; }
.checkbox input { width: 1.05rem; height: 1.05rem; margin-top: 0.1rem; accent-color: var(--color-brand-700); }
.inline-form { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.inline-form select, .inline-form input:not([type="submit"]) { width: auto; min-width: 8.5rem; min-height: 2.2rem; padding: 0.4rem 0.55rem; font-size: 0.8rem; }

.stack-form { display: grid; gap: 1.1rem; margin: 1.5rem 0; }
.stack-form > label:not(.checkbox) { display: block; margin-bottom: 0.4rem; color: #304757; font-size: 0.82rem; font-weight: 750; }
.stack-form > div > label:not(.checkbox) { display: block; margin-bottom: 0.4rem; color: #304757; font-size: 0.82rem; font-weight: 750; }
.stack-form input:not([type="checkbox"]):not([type="submit"]), .stack-form select, .stack-form textarea {
  width: 100%; min-height: 2.75rem; padding: 0.7rem 0.8rem; border: 1px solid #c7d3da; border-radius: var(--radius-sm); color: var(--color-ink); background: #fff; transition: border-color 150ms ease, box-shadow 150ms ease;
}
.stack-form input:focus, .stack-form select:focus, .stack-form textarea:focus { border-color: var(--color-brand-500); outline: 0; box-shadow: 0 0 0 3px var(--focus-ring); }
.stack-form textarea { min-height: 6rem; resize: vertical; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.checkbox-row { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; margin: 0.25rem 0; }
.checkbox-row label { display: inline-flex !important; margin: 0 0.4rem 0 0.35rem; color: #304757; font-size: 0.86rem; font-weight: 650; }
.checkbox-row input[type="checkbox"] { width: 1.05rem; height: 1.05rem; accent-color: var(--color-brand-700); }

.filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 0.9rem; margin: 0; padding: 1.15rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fbfcfd; }
.filter-actions { display: flex; gap: 0.65rem; align-items: end; }
.contribution-delete-button { color: var(--color-danger); border: 1px solid transparent; }
.contribution-delete-button:hover { color: #fff; border-color: var(--color-danger); background: var(--color-danger); }

/* Tables */
.table-scroll { width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; margin: 0 -0.25rem; padding: 0 0.25rem; contain: inline-size; overscroll-behavior-inline: contain; }
table { width: 100%; margin: 0; border-collapse: separate; border-spacing: 0; }
th, td { padding: 0.9rem 0.8rem; border-bottom: 1px solid #e7edf0; text-align: left; vertical-align: middle; }
th { color: #607380; background: #f8fafb; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.055em; text-transform: uppercase; white-space: nowrap; }
th:first-child { border-radius: 9px 0 0 9px; }
th:last-child { border-radius: 0 9px 9px 0; }
td { color: #314857; font-size: 0.86rem; }
tbody tr { transition: background 140ms ease; }
tbody tr:hover { background: #fbfdfe; }
tbody tr:last-child td { border-bottom: 0; }
td strong { color: var(--color-ink); }

.status-badge { display: inline-flex; gap: 0.35rem; align-items: center; width: max-content; padding: 0.32rem 0.55rem; border-radius: 999px; color: var(--color-muted); background: #eef2f4; font-size: 0.72rem; font-weight: 750; white-space: nowrap; }
.status-badge::before { width: 0.4rem; height: 0.4rem; border-radius: 999px; background: currentColor; content: ""; }
.status-badge.is-success { color: var(--color-success); background: var(--color-success-soft); }
.status-badge.is-warning { color: var(--color-warning); background: var(--color-warning-soft); }
.status-badge.is-danger { color: var(--color-danger); background: var(--color-danger-soft); }

/* Cards, details and empty states */
.selection-list, .dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; margin: 1.4rem 0; }
.selection-card, .action-card { display: grid; gap: 0.45rem; min-height: 8rem; padding: 1.15rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-ink); background: #fff; box-shadow: var(--shadow-sm); text-decoration: none; transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease; }
.selection-card:hover, .action-card:hover { border-color: #abd4df; color: var(--color-ink); box-shadow: 0 10px 25px rgb(16 42 67 / 8%); transform: translateY(-2px); }
.identity-provider-selector { margin-bottom: 1rem; }
.identity-provider-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.identity-provider-option { min-height: 13rem; }
.identity-provider-option.is-selected { border-color: var(--color-success); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-success) 14%, transparent); }
.identity-provider-option-heading, .identity-provider-actions { display: flex; gap: 0.75rem; align-items: center; justify-content: space-between; }
.identity-provider-option span, .identity-provider-option small { color: var(--color-muted); }
.identity-provider-warning { color: var(--color-warning) !important; }
.identity-provider-actions { align-self: end; margin-top: auto; }
@media (max-width: 760px) {
  .identity-provider-options { grid-template-columns: 1fr; }
  .identity-provider-actions { align-items: stretch; flex-direction: column; }
  .identity-provider-actions form, .identity-provider-actions .button { width: 100%; }
}
.product-prestep-grid { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.product-prestep-card { position: relative; min-height: 9.5rem; cursor: pointer; }
.product-prestep-card:has(input:checked) { border-color: var(--color-brand-600); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-600) 18%, transparent); }
.product-prestep-card input { width: 1.15rem; height: 1.15rem; margin: 0; accent-color: var(--color-brand-700); }
.product-prestep-card span, .product-prestep-card small { color: var(--color-muted); }
.access-unavailable-panel { max-width: 48rem; }
.access-unavailable-message { margin: 1.5rem 0; }
.action-card .icon { width: 1.45rem; height: 1.45rem; color: var(--color-brand-700); }
.action-card strong { margin-top: auto; font-size: 0.95rem; }
.action-card span { color: var(--color-muted); font-size: 0.82rem; line-height: 1.45; }
.summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.8rem; margin: 1.25rem 0; }
.summary-grid-compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.integration-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.monitoring-summary-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.summary-item { display: grid; gap: 0.35rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fbfcfd; }
.summary-item small, .cell-note { color: var(--color-subtle); font-size: 0.72rem; }
.summary-item strong { overflow-wrap: anywhere; }
.cell-note { display: block; margin-top: 0.18rem; }
.service-availability-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 0.8rem; }
.service-availability-item { display: flex; gap: 0.75rem; align-items: center; justify-content: space-between; min-width: 0; padding: 0.9rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fbfcfd; }
.service-availability-item strong { overflow-wrap: anywhere; font-size: 0.84rem; }
.metamap-blocked-callout, .one-time-secret, .pending-definitions { margin-top: 1rem; }
.one-time-secret { padding: 1rem; border: 1px solid var(--color-warning); border-radius: var(--radius-md); background: var(--color-warning-soft); }
.one-time-secret p { margin: 0.3rem 0 0.8rem; color: var(--color-muted); }
.one-time-secret label { display: block; margin-bottom: 0.35rem; font-size: 0.8rem; font-weight: 750; }
.one-time-secret input { width: 100%; min-height: 2.75rem; padding: 0.7rem 0.8rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fff; }
.pending-definitions { padding: 1rem; border: 1px dashed var(--color-border); border-radius: var(--radius-md); }
.pending-definitions h3 { margin: 0 0 0.5rem; font-size: 0.8rem; }
.pending-definitions ul { margin: 0; padding-left: 1.2rem; color: var(--color-muted); font-size: 0.82rem; }

.empty-state { display: grid; max-width: 34rem; justify-items: start; padding: 2.25rem 1rem; }
.empty-state-mark { display: grid; width: 2.8rem; height: 2.8rem; margin-bottom: 1rem; place-items: center; border-radius: 12px; color: var(--color-brand-700); background: var(--color-brand-50); }
.empty-state h2 { margin-bottom: 0.4rem; }
.empty-state p { margin-bottom: 1rem; color: var(--color-muted); line-height: 1.55; }

.pagination-bar { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-top: 1rem; color: var(--color-muted); font-size: 0.84rem; }
.pagination-bar [aria-disabled="true"] { opacity: 0.45; pointer-events: none; }
.monitoring-filter { margin: 1rem 0; }
.execution-trend { display: grid; gap: 0.75rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.execution-trend-item { display: grid; gap: 0.55rem; padding: 0.9rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fbfcfd; }
.execution-trend-heading { display: flex; gap: 0.75rem; align-items: center; justify-content: space-between; color: var(--color-ink); font-size: 0.78rem; font-weight: 750; }
.trend-metric { display: grid; grid-template-columns: 5.8rem minmax(4rem, 1fr) 4.5rem; gap: 0.65rem; align-items: center; color: var(--color-muted); font-size: 0.75rem; }
.trend-metric meter { width: 100%; height: 0.75rem; accent-color: var(--color-brand-700); }
.trend-metric.is-rejected meter { accent-color: var(--color-danger); }
.trend-metric strong { justify-self: end; color: var(--color-ink); }
.execution-trend-item > small { color: var(--color-subtle); }
.preview-toolbar { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; padding: 0.8rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fbfcfd; }
.segmented-control { display: flex; gap: 0.35rem; align-items: center; flex-wrap: wrap; }
.segmented-control .is-active { color: #fff; border-color: var(--color-brand-700); background: var(--color-brand-700); }
.form-preview-frame { width: 100%; margin: 0 auto 1rem; padding: 1.25rem; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #f6f8fa; box-shadow: var(--shadow-sm); transition: width 180ms ease; }
.form-preview-frame.device-tablet { width: min(100%, 48rem); }
.form-preview-frame.device-mobile { width: min(100%, 24rem); }
.form-preview-header { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.form-preview-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.preview-question { min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fff; }
.preview-question legend { padding: 0 0.35rem; color: var(--color-ink); font-weight: 750; }
.preview-question input:not([type="checkbox"]):not([type="radio"]), .preview-question textarea, .preview-question select { width: 100%; min-height: 2.75rem; padding: 0.7rem 0.8rem; border: 1px solid #c7d3da; border-radius: var(--radius-sm); background: #fff; }
.preview-question textarea { resize: vertical; }
.preview-options { display: grid; gap: 0.65rem; }
.preview-options label { display: flex; gap: 0.55rem; align-items: center; min-height: 2.25rem; }
.field-contract { display: block; margin-top: 0.65rem; color: var(--color-subtle); }
.conversation-preview { display: grid; gap: 0.85rem; max-width: 44rem; margin: auto; }
.conversation-message { max-width: 82%; padding: 0.8rem 1rem; border-radius: 12px; line-height: 1.45; }
.conversation-message small { display: block; margin-top: 0.3rem; }
.conversation-message.is-agent { justify-self: start; border: 1px solid var(--color-border); background: #fff; }
.conversation-message.is-user { justify-self: end; color: #fff; background: var(--color-brand-700); }
.version-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; margin: 1rem 0; }
.version-flow-step { padding: 0.85rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fbfcfd; }
.version-flow-step strong, .version-flow-step small { display: block; }
.version-flow-step small { margin-top: 0.25rem; color: var(--color-muted); }
.consultation-flow { margin: 0 0 1.25rem; }
.consultation-flow ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.65rem; margin: 0; padding: 0; list-style: none; }
.consultation-flow li { display: flex; gap: 0.65rem; min-width: 0; padding: 0.8rem; align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fbfcfd; }
.consultation-flow li.is-current { border-color: var(--color-brand-700); background: var(--color-brand-50); box-shadow: inset 0 0 0 1px var(--color-brand-700); }
.consultation-flow li.is-complete { border-color: #bfe8d2; background: var(--color-success-soft); }
.consultation-flow li.is-pending { opacity: 0.72; }
.consultation-step-number { display: grid; width: 1.8rem; height: 1.8rem; flex: none; place-items: center; border-radius: 999px; color: #fff; background: var(--color-brand-700); font-size: 0.75rem; font-weight: 800; }
.consultation-flow li.is-complete .consultation-step-number { background: var(--color-success); }
.consultation-flow strong, .consultation-flow small { display: block; }
.consultation-flow strong { color: var(--color-ink); font-size: 0.8rem; }
.consultation-flow small { margin-top: 0.15rem; color: var(--color-muted); font-size: 0.68rem; line-height: 1.3; }
.consultation-action-card { border-color: var(--color-brand-200); background: linear-gradient(145deg, #fff, var(--color-brand-50)); }
.consultation-blocked-step { border-style: dashed; }

.detail-list { display: grid; gap: 0; margin: 0; }
.detail-list div { display: grid; grid-template-columns: minmax(10rem, 0.8fr) 2fr; gap: 1rem; padding: 0.9rem 0; border-bottom: 1px solid #e7edf0; }
.detail-list div:last-child { border-bottom: 0; }
.detail-list dt { color: var(--color-muted); font-size: 0.78rem; font-weight: 750; }
.detail-list dd { margin: 0; overflow-wrap: anywhere; color: var(--color-ink); }

/* Focused interior pages */
.interior-page { max-width: none; }

.breadcrumb {
  display: flex;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 1.1rem;
  color: var(--color-subtle);
  font-size: 0.78rem;
}

.breadcrumb a { color: var(--color-muted); font-weight: 650; text-decoration: none; }
.breadcrumb a:hover { color: var(--color-brand-800); }

.interior-header {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.4rem;
}

.interior-header h1 { max-width: 48rem; margin-bottom: 0.65rem; }
.header-meta { display: flex; gap: 0.85rem; align-items: center; color: var(--color-muted); font-size: 0.82rem; }
.header-actions { display: flex; gap: 0.65rem; align-items: center; flex: none; padding-top: 1rem; }

.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 20rem); gap: 1rem; align-items: start; }
.detail-main { min-width: 0; }
.detail-aside { display: grid; gap: 0.8rem; }

.summary-card {
  padding: 1.15rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: linear-gradient(155deg, #fff, #f7fbfc);
  box-shadow: var(--shadow-sm);
}

.summary-icon { display: grid; width: 2.5rem; height: 2.5rem; margin-bottom: 1rem; place-items: center; border-radius: 10px; color: var(--color-brand-700); background: var(--color-brand-50); }
.summary-card h2 { margin-bottom: 0.65rem; font-size: 1rem; }
.summary-list { display: grid; margin: 0; }
.summary-list div { display: grid; gap: 0.15rem; padding: 0.7rem 0; border-bottom: 1px solid #e7edf0; }
.summary-list div:last-child { border-bottom: 0; }
.summary-list dt { color: var(--color-muted); font-size: 0.7rem; font-weight: 750; text-transform: uppercase; letter-spacing: 0.04em; }
.summary-list dd { margin: 0; color: var(--color-ink); font-size: 0.84rem; font-weight: 680; }

.access-confirmation-surface { padding: clamp(1rem, 2vw, 1.5rem); }
.supervised-context-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid #c9bfff;
  border-radius: var(--radius-md);
  background: #f2efff;
  color: #352675;
}
.supervised-context-banner span { font-size: 0.82rem; }
.supervised-summary-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 1.5rem;
}

@media (max-width: 768px) {
  .supervised-context-banner { align-items: flex-start; flex-direction: column; }
  .supervised-summary-list { grid-template-columns: 1fr; }
}
.aside-note { margin: 0; padding: 0.25rem 0.4rem; color: var(--color-muted); font-size: 0.75rem; line-height: 1.55; }

.person-cell { display: flex; gap: 0.7rem; align-items: center; min-width: 13rem; }
.person-cell > span:last-child { display: grid; min-width: 0; }
.person-cell small { overflow: hidden; margin-top: 0.18rem; color: var(--color-muted); font-size: 0.72rem; text-overflow: ellipsis; white-space: nowrap; }
.avatar-light { color: var(--color-brand-800); background: var(--color-brand-50); }
.table-action-cell { position: relative; width: 1%; text-align: right; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.row-disclosure { position: relative; }
.row-disclosure summary { display: inline-flex; align-items: center; min-height: 2.15rem; padding: 0.45rem 0.7rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); color: var(--color-brand-700); background: #fff; cursor: pointer; font-size: 0.78rem; font-weight: 750; list-style: none; }
.row-disclosure summary::-webkit-details-marker { display: none; }
.row-disclosure summary:hover { border-color: #b7ccd5; background: var(--color-brand-50); }
.row-disclosure:not([open]) .row-disclosure-panel { display: none; }
.table-scroll:has(.row-disclosure[open]) { overflow: visible; }
.row-disclosure-panel { position: absolute; top: calc(100% + 0.45rem); right: 0; z-index: 10; width: 19rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); text-align: left; background: #fff; box-shadow: 0 16px 40px rgb(16 42 67 / 18%); }
.row-disclosure-panel > strong { display: block; margin-bottom: 0.85rem; font-size: 0.88rem; }
.compact-form { display: grid; gap: 0.75rem; }
.compact-form label { display: block; margin-bottom: 0.3rem; color: var(--color-muted); font-size: 0.72rem; font-weight: 750; }
.compact-form select { width: 100%; min-height: 2.45rem; padding: 0.5rem 0.6rem; border: 1px solid #c7d3da; border-radius: var(--radius-sm); background: #fff; }
.compact-form .button { width: 100%; margin-top: 0.15rem; }

.drawer-overlay { position: fixed; inset: 0; z-index: 60; background: rgb(11 32 46 / 48%); opacity: 0; transition: opacity 180ms ease; }
.drawer-overlay.is-visible { opacity: 1; }
.drawer { position: fixed; inset: 0 0 0 auto; z-index: 70; display: flex; width: min(30rem, 100vw); padding: 1.5rem; flex-direction: column; overflow-y: auto; border-left: 1px solid var(--color-border); background: #fff; box-shadow: -18px 0 48px rgb(16 42 67 / 16%); transform: translateX(100%); transition: transform 180ms ease; }
.drawer.is-open { transform: translateX(0); }
.drawer-header { display: flex; gap: 1rem; align-items: flex-start; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid var(--color-border); }
.drawer-header h2 { margin: 0; font-size: 1.35rem; }
.drawer-description { margin: 1rem 0 0; color: var(--color-muted); line-height: 1.55; }
.drawer-form { flex: 1; align-content: start; }
.drawer-actions { margin-top: auto; }
.table-secondary { display: block; max-width: 28rem; margin-top: 0.25rem; color: var(--color-muted); font-size: 0.78rem; font-weight: 500; }
.muted-text { color: var(--color-muted); font-size: 0.78rem; }
.role-editor { width: min(32rem, calc(100vw - 2rem)); max-height: min(42rem, calc(100vh - 8rem)); overflow-y: auto; }
.role-drawer { width: min(38rem, 100vw); }
.permission-fieldset { display: grid; gap: 0.55rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.permission-fieldset legend { margin-bottom: 0.4rem; color: #304757; font-size: 0.85rem; font-weight: 800; }
.permission-option { display: grid !important; grid-template-columns: auto minmax(0, 1fr); gap: 0.7rem; align-items: start; margin: 0 !important; padding: 0.7rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fff; cursor: pointer; }
.permission-option:has(input:checked) { border-color: var(--color-brand-700); background: var(--color-brand-50); }
.permission-option input { width: 1rem; height: 1rem; margin-top: 0.15rem; accent-color: var(--color-brand-700); }
.permission-option span, .permission-option small { display: block; }
.permission-option strong { color: var(--color-ink); font-size: 0.82rem; }
.permission-option small { margin-top: 0.15rem; color: var(--color-muted); font-size: 0.74rem; font-weight: 500; line-height: 1.35; }
.permissions-matrix-table { width: 100%; min-width: 58rem; border-collapse: separate; border-spacing: 0; }
.permissions-matrix-table th, .permissions-matrix-table td { padding: 0.75rem 0.9rem; border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.permissions-matrix-table thead th { position: sticky; top: 0; z-index: 2; color: #405363; background: #f4f7fa; font-size: 0.74rem; text-align: left; }
.permissions-matrix-table thead th:not(:first-child) { width: 12rem; text-align: center; }
.permission-role-heading a { color: var(--color-ink); text-decoration: none; }
.permission-role-heading a:hover { color: var(--color-brand-700); text-decoration: underline; }
.permissions-matrix-table .permission-group-row th { padding-block: 0.65rem; color: var(--color-brand-800); background: var(--color-brand-50); font-size: 0.74rem; letter-spacing: 0.04em; text-transform: uppercase; }
.permission-matrix-value { text-align: center; }
.permission-matrix-value .icon { width: 1.15rem; height: 1.15rem; }
.permission-matrix-value.is-granted { color: #087a42; background: #f5fbf7; }
.permission-matrix-value.is-denied { color: #9aa6b2; }
.danger-link { margin-top: 0.75rem; color: var(--color-danger); }

/* Perfil personal transversal */
.profile-page { display: grid; gap: 1rem; }
.profile-page .interior-header { margin-bottom: 0; }
.profile-errors { width: 100%; margin: 0; }
.profile-errors ul { margin: 0.45rem 0 0; padding-left: 1.2rem; }
.profile-summary { display: grid; grid-template-columns: auto minmax(12rem, 1fr) minmax(22rem, 1.2fr); gap: 1rem; padding: 1rem; align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: linear-gradient(145deg, var(--color-surface), var(--color-brand-50)); }
.profile-identity-mark { display: grid; width: 3.25rem; height: 3.25rem; place-items: center; border-radius: 12px; color: #fff; background: var(--color-brand-700); font-size: 1.2rem; font-weight: 800; }
.profile-identity-copy { display: grid; min-width: 0; gap: 0.2rem; }
.profile-identity-copy strong, .profile-identity-copy span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-identity-copy strong { color: var(--color-ink); }
.profile-identity-copy span { color: var(--color-muted); font-size: 0.8rem; }
.profile-access-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0; }
.profile-access-summary div { min-width: 0; padding-left: 0.85rem; border-left: 1px solid var(--color-border); }
.profile-access-summary dt { color: var(--color-subtle); font-size: 0.68rem; font-weight: 750; letter-spacing: 0.04em; text-transform: uppercase; }
.profile-access-summary dd { overflow: hidden; margin: 0.25rem 0 0; color: var(--color-ink); font-size: 0.82rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.profile-grid .surface { margin: 0; }
.profile-form { grid-template-columns: 1fr !important; }
.profile-form > * { grid-column: 1 / -1 !important; }
.profile-managed-access { display: grid; grid-template-columns: minmax(15rem, 0.7fr) minmax(22rem, 1.3fr); gap: 2rem; align-items: start; }
.profile-managed-access h2 { margin-bottom: 0.4rem; }
.profile-managed-access p { margin: 0; color: var(--color-muted); line-height: 1.55; }
.profile-managed-access .detail-list { margin: 0; }

/* Apariencia por cooperativa */
.company-identity-cell { display: flex; gap: 0.75rem; min-width: 13rem; align-items: center; }
.company-logo-mark, .company-logo-preview { display: grid; flex: none; place-items: center; overflow: hidden; color: #fff; background: var(--company-primary, var(--color-brand-700)); font-weight: 800; }
.company-logo-mark { width: 2.65rem; height: 2.65rem; border: 1px solid var(--color-border); border-radius: 10px; box-shadow: var(--shadow-sm); }
.company-logo-mark img, .company-logo-preview img { width: 100%; height: 100%; padding: 0.18rem; object-fit: contain; background: #fff; }
.company-identity-copy { display: grid; min-width: 0; gap: 0.18rem; }
.company-identity-copy strong, .company-identity-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.company-identity-copy small, .company-palette-cell small { color: var(--color-muted); font-size: 0.72rem; }
.company-palette-cell { display: grid; width: 10.5rem; gap: 0.42rem; }
.company-color-strip { display: grid; grid-template-columns: repeat(3, 1fr); width: 7.5rem; height: 0.72rem; overflow: hidden; border: 1px solid rgb(15 23 42 / 9%); border-radius: 999px; }
.company-color-strip span:nth-child(1) { background: var(--company-primary); }
.company-color-strip span:nth-child(2) { background: var(--company-secondary); }
.company-color-strip span:nth-child(3) { background: var(--company-accent); }
.company-branding-editor { grid-template-columns: minmax(16rem, 0.75fr) minmax(22rem, 1.25fr); }
.company-branding-explanation { grid-column: 1 / -1; padding-bottom: 0.9rem; border-bottom: 1px solid var(--color-border); }
.company-branding-explanation strong { color: var(--color-ink); }
.company-branding-explanation p { margin: 0.25rem 0 0; color: var(--color-muted); line-height: 1.5; }
.company-logo-editor { display: grid; grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; align-items: center; }
.company-logo-preview { width: 4rem; height: 4rem; border: 1px solid var(--color-border); border-radius: 13px; background: var(--color-brand-700); font-size: 1.3rem; }
.company-logo-editor input[type="file"] { padding: 0.45rem !important; }
.company-logo-editor .checkbox { margin-top: 0.65rem; }
.company-palette-picker, .company-mode-picker { min-width: 0; }
.page-description { margin: 0; color: var(--color-muted); line-height: 1.55; }
.publication-meta { display: grid; gap: 0.45rem; justify-items: end; color: var(--color-muted); }
.publication-meta strong { color: var(--color-ink); font-size: 0.82rem; }
.appearance-flow-callout { display: flex; gap: 0.75rem; margin-bottom: 1rem; align-items: flex-start; }
.appearance-flow-callout > .icon { width: 1.2rem; height: 1.2rem; flex: none; margin-top: 0.05rem; color: var(--color-brand-700); }
.appearance-flow-callout p { margin: 0.2rem 0 0; }
.appearance-layout { display: grid; grid-template-columns: minmax(18rem, 0.8fr) minmax(28rem, 1.2fr); gap: 1rem; align-items: start; }
.appearance-layout .surface + .surface { margin-top: 0; }
.appearance-form { grid-template-columns: 1fr !important; }
.appearance-form > * { grid-column: 1 / -1 !important; }
.appearance-column { display: grid; gap: 1rem; min-width: 0; }
.appearance-choice-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.appearance-choice-group legend { margin-bottom: 0.65rem; color: #304757; font-size: 0.82rem; font-weight: 800; }
.preset-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.preset-card, .mode-card { position: relative; display: flex; min-width: 0; min-height: 4.25rem; padding: 0.8rem; align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fff; cursor: pointer; transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease; }
.preset-card:hover, .mode-card:hover { border-color: var(--color-brand-200); background: var(--color-brand-50); }
.preset-card:has(input:checked), .mode-card:has(input:checked) { border-color: var(--color-brand-700); box-shadow: inset 0 0 0 1px var(--color-brand-700); }
.preset-card:has(input:focus-visible), .mode-card:has(input:focus-visible) { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.preset-card input, .mode-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.preset-card-copy, .mode-card > span:last-child { display: grid; gap: 0.45rem; width: 100%; }
.preset-card strong, .mode-card strong { color: var(--color-ink); font-size: 0.84rem; }
.preset-colors { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; height: 0.65rem; overflow: hidden; border-radius: 999px; }
.preset-colors span:nth-child(1) { background: var(--preset-primary); }
.preset-colors span:nth-child(2) { background: var(--preset-secondary); }
.preset-colors span:nth-child(3) { background: var(--preset-accent); }
.mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.mode-card { gap: 0.7rem; }
.mode-card-icon { display: grid; width: 2rem !important; height: 2rem; flex: none; place-items: center; border-radius: 8px; color: var(--color-brand-700); background: var(--color-brand-100); }
.mode-card-icon .icon { width: 1rem; height: 1rem; }
.mode-card small { color: var(--color-muted); font-size: 0.74rem; font-weight: 500; }
.appearance-publication-panel { display: grid; gap: 1rem; }
.appearance-publication-panel h2 { margin-bottom: 0.4rem; }
.appearance-publish-actions { display: grid; gap: 0.65rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.appearance-publish-actions form, .appearance-publish-actions .button { width: 100%; margin: 0; }
.appearance-preview-section { min-width: 0; }
.device-switcher { display: flex; gap: 0.4rem; margin-bottom: 1rem; flex-wrap: wrap; }
.device-button { min-height: 2.25rem; padding: 0.45rem 0.75rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); color: var(--color-muted); background: var(--color-surface); cursor: pointer; font-size: 0.78rem; font-weight: 750; }
.device-button.is-active { color: var(--color-brand-800); border-color: var(--color-brand-200); background: var(--color-brand-50); }
.theme-preview { display: grid; grid-template-columns: 9rem minmax(0, 1fr); width: 100%; max-width: 46rem; min-height: 29rem; margin: 0 auto; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); color: #242836; background: #f7f8fa; box-shadow: var(--shadow-sm); transition: width 180ms ease; }
.theme-preview.device-tablet { width: min(100%, 34rem); }
.theme-preview.device-mobile { width: min(100%, 20rem); grid-template-columns: 4.25rem minmax(0, 1fr); }
.theme-preview.is-dark { color: #e8edf5; background: #111827; }
.theme-preview-sidebar { display: flex; gap: 0.45rem; padding: 0.8rem; flex-direction: column; color: #fff; border-right: 0; background: linear-gradient(180deg, var(--color-brand-950), var(--color-brand-900) 58%, var(--color-brand-950)); }
.theme-preview.is-dark .theme-preview-sidebar { border-color: transparent; background: linear-gradient(180deg, var(--color-brand-950), var(--color-brand-900) 58%, var(--color-brand-950)); }
.theme-preview-brand { display: flex; gap: 0.45rem; align-items: center; min-height: 2.25rem; margin-bottom: 0.65rem; overflow: hidden; font-size: 0.72rem; }
.theme-preview-brand img, .theme-preview-brand > span { display: grid; width: 3.2rem; height: 2.4rem; flex: none; place-items: center; object-fit: contain; padding: 0.15rem; border-radius: 7px; color: var(--color-brand-950); background: #fff; }
.device-mobile .theme-preview-brand strong { display: none; }
.theme-preview-section-label { margin: 0.35rem 0 0.05rem; padding: 0 0.55rem; color: rgb(255 255 255 / 58%); font-size: 0.55rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.theme-preview-nav { padding: 0.48rem 0.55rem; border-radius: 6px; color: rgb(255 255 255 / 82%); font-size: 0.7rem; font-weight: 700; }
.theme-preview-nav.is-active { color: #fff; background: linear-gradient(135deg, var(--color-brand-700), var(--color-brand-800)); box-shadow: 0 4px 10px rgb(0 0 0 / 18%); }
.theme-preview.is-dark .theme-preview-nav { color: rgb(255 255 255 / 82%); }
.theme-preview.is-dark .theme-preview-nav.is-active { color: #fff; background: linear-gradient(135deg, var(--color-brand-700), var(--color-brand-800)); }
.theme-preview-platform { display: flex; gap: 0.35rem; margin-top: auto; padding-top: 0.55rem; align-items: center; border-top: 1px solid rgb(255 255 255 / 20%); color: rgb(255 255 255 / 82%); font-size: 0.55rem; }
.theme-preview-platform > span { display: grid; width: 1.2rem; height: 1.2rem; place-items: center; border: 1px solid var(--color-brand-200); border-radius: 4px; color: #fff; font-size: 0.6rem; }
.device-mobile .theme-preview-nav { overflow: hidden; text-indent: -999px; }
.device-mobile .theme-preview-nav::after { display: block; width: 1rem; height: 0.35rem; margin: auto; border-radius: 999px; background: currentColor; content: ""; }
.theme-preview-content { display: grid; gap: 0.8rem; align-content: start; min-width: 0; padding: 1rem; }
.theme-preview-card, .theme-preview-table, .theme-preview-field { border: 1px solid #e2e5ea; border-radius: 9px; background: #fff; }
.theme-preview-card { display: grid; gap: 0.25rem; padding: 0.9rem; }
.theme-preview-card small, .theme-preview-card span { color: #626b7a; font-size: 0.66rem; }
.theme-preview-card strong { color: var(--color-brand-800); font-size: 1.45rem; }
.theme-preview-table { overflow: hidden; font-size: 0.68rem; }
.theme-preview-table > div { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem; align-items: center; padding: 0.55rem 0.7rem; border-bottom: 1px solid #e7edf0; }
.theme-preview-table > div:last-child { border-bottom: 0; }
.theme-preview-field { display: grid; gap: 0.35rem; padding: 0.7rem; color: #626b7a; font-size: 0.68rem; font-weight: 700; }
.theme-preview-field input { width: 100%; min-width: 0; padding: 0.5rem; border: 1px solid #c7d3da; border-radius: 6px; color: #242836; background: #fff; }
.theme-preview-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.theme-preview-actions .button { min-height: 2.2rem; padding: 0.5rem 0.7rem; font-size: 0.68rem; }
.theme-preview.is-dark .button-secondary { color: #e8edf5; border-color: #475569; background: #1f2937; }
.theme-preview.is-dark .theme-preview-card,
.theme-preview.is-dark .theme-preview-table,
.theme-preview.is-dark .theme-preview-field,
.theme-preview.is-dark .theme-preview-field input { color: #e8edf5; border-color: #334155; background: #1f2937; }
.theme-preview.is-dark .theme-preview-card small,
.theme-preview.is-dark .theme-preview-card span,
.theme-preview.is-dark .theme-preview-field { color: #aab5c5; }
.theme-preview.is-dark .theme-preview-table > div { border-color: #334155; }

@media (max-width: 760px) {
  .company-branding-editor { grid-template-columns: 1fr; }
  .company-palette-picker, .company-mode-picker { grid-column: 1 / -1; }
  .company-logo-editor { grid-template-columns: 1fr; }
  .company-branding-editor .preset-grid { grid-template-columns: 1fr; }
  .company-table-scroll { margin: 0; padding: 0; overflow: visible; contain: none; }
  .company-table, .company-table tbody { display: grid; width: 100%; min-width: 0 !important; }
  .company-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .company-table tbody { gap: 0.75rem; }
  .company-table tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.55rem 0.75rem; padding: 0.85rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-sm); }
  .company-table td { padding: 0; border: 0; }
  .company-table td:nth-child(1), .company-table td:nth-child(2) { grid-column: 1 / -1; }
  .company-table td:nth-child(2) { padding: 0.6rem 0; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
  .company-table td:nth-child(5) { width: 5rem; grid-column: 2; grid-row: 3 / span 2; align-self: center; justify-self: end; }
  .company-table td[data-label]::before { display: block; margin-bottom: 0.25rem; color: var(--color-subtle); font-size: 0.62rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; content: attr(data-label); }
  .company-palette-cell { width: 100%; }
}

/* Solicitantes y expedientes */
.content-flash { width: 100%; margin: 0; }
.applicant-dpi-field { grid-column: 1 / -1; }
.search-surface { display: grid; gap: 1rem; }
.applicant-search-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.search-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.55rem; align-items: end; min-width: 0; }
.search-form > div { min-width: 0; }
.search-form label, .create-file-form label { display: block; margin-bottom: 0.4rem; color: #304757; font-size: 0.82rem; font-weight: 750; }
.search-form input, .create-file-form select,
.case-answer-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.case-answer-form select, .case-answer-form textarea { width: 100%; min-height: 2.75rem; padding: 0.7rem 0.8rem; border: 1px solid #c7d3da; border-radius: var(--radius-sm); color: var(--color-ink); background: #fff; transition: border-color 150ms ease, box-shadow 150ms ease; }
.search-form input:focus, .create-file-form select:focus,
.case-answer-form input:focus, .case-answer-form select:focus, .case-answer-form textarea:focus { border-color: var(--color-brand-500); outline: 0; box-shadow: 0 0 0 3px var(--focus-ring); }
.search-form .help-text { grid-column: 1 / -1; margin: -0.15rem 0 0; }
.active-search { display: flex; gap: 0.7rem; align-items: center; justify-content: space-between; padding: 0.7rem 0.8rem; border-radius: var(--radius-sm); color: var(--color-muted); background: #f7f9fa; font-size: 0.82rem; }
.applicant-results { margin-top: 1rem; }
.create-file-form { display: grid; grid-template-columns: minmax(14rem, 1fr) auto; gap: 0.75rem; align-items: end; }
.create-file-form .help-text { grid-column: 1 / -1; margin: -0.35rem 0 0; }
.case-table-wrap { margin-top: 1.25rem; }
.compact-empty-state { padding: 1.5rem 0.25rem; }
.case-section-header { align-items: flex-start; }
.case-section-header > div { min-width: 0; }
.case-section-header p { margin: -0.45rem 0 0; color: var(--color-muted); line-height: 1.5; }
.case-warning { margin-bottom: 1rem; }
.case-question-list { display: grid; gap: 0.8rem; }
.case-question { padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fbfcfd; }
.case-question-header { display: flex; gap: 0.75rem; align-items: flex-start; justify-content: space-between; }
.case-question-header h3 { margin: 0; font-size: 0.95rem; }
.case-question-header p { margin: 0.35rem 0 0; color: var(--color-muted); font-size: 0.8rem; line-height: 1.45; }
.required-mark { margin-left: 0.2rem; color: var(--color-danger); }
.answer-saved { flex: none; color: var(--color-success); font-size: 0.72rem; font-weight: 800; }
.case-answer-form { display: grid; gap: 0.7rem; margin-top: 0.85rem; }
.case-answer-form textarea { min-height: 7rem; resize: vertical; }
.case-answer-actions { display: flex; justify-content: flex-end; }
.correction-form { display: grid; gap: 1.25rem; }
.correction-section { min-width: 0; margin: 0; padding: 1.1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); }
.correction-section > legend { padding: 0 0.35rem; color: var(--color-ink); font-size: 1rem; font-weight: 800; }
.correction-section-help { margin: 0 0 1rem; color: var(--color-muted); font-size: 0.82rem; line-height: 1.5; }
.correction-product-request { border-color: #94baf4; background: linear-gradient(135deg, #f2f7ff 0%, #fff 72%); box-shadow: 0 10px 28px rgba(24, 99, 214, .08); }
.correction-product-heading { display: flex; gap: .9rem; margin-bottom: 1rem; padding-bottom: .9rem; align-items: center; border-bottom: 1px solid #cfe0fa; }
.correction-product-heading h3, .correction-product-heading p { margin: 0; }
.correction-product-heading h3 { color: #0b2f70; font-size: 1.25rem; }
.correction-product-heading p:last-child { margin-top: .25rem; color: var(--color-muted); font-size: .82rem; }
.correction-product-icon { display: grid; width: 48px; height: 48px; flex: none; place-items: center; border-radius: 14px; color: #fff; background: #1769e0; box-shadow: 0 8px 18px rgba(23, 105, 224, .22); }
.correction-product-icon .icon { width: 24px; height: 24px; }
.correction-form-grid, .correction-question-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.correction-form .field-group, .correction-question { min-width: 0; }
.correction-form label, .correction-readonly-field > span { display: block; margin-bottom: 0.4rem; color: #304757; font-size: 0.82rem; font-weight: 750; }
.correction-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), .correction-form select, .correction-form textarea { width: 100%; min-height: 2.75rem; padding: 0.7rem 0.8rem; border: 1px solid #c7d3da; border-radius: var(--radius-sm); color: var(--color-ink); background: #fff; }
.correction-form input:focus, .correction-form select:focus, .correction-form textarea:focus { border-color: var(--color-brand-500); outline: 0; box-shadow: 0 0 0 3px var(--focus-ring); }
.correction-form textarea { min-height: 7rem; resize: vertical; }
.obligation-contract-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.obligation-contract-grid small, .obligation-entry-grid small { display: block; margin-top: 0.35rem; color: var(--color-muted); font-size: 0.72rem; line-height: 1.4; }
.obligation-confirmation-label { display: block; margin-bottom: .4rem; color: #304757; font-size: .82rem; font-weight: 750; }
.obligation-binary-switch { position: relative; display: inline-flex !important; width: 9rem; margin: 0 !important; cursor: pointer; }
.obligation-binary-switch input { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.obligation-binary-switch-track { position: relative; display: grid; width: 100%; min-height: 2.75rem; padding: .2rem; overflow: hidden; align-items: center; color: #5c6d7d; border: 1px solid #bfcddb; border-radius: 999px; background: #edf2f6; grid-template-columns: repeat(2, minmax(0, 1fr)); transition: border-color 160ms ease, box-shadow 160ms ease; }
.obligation-binary-switch-track::before { position: absolute; top: .2rem; bottom: .2rem; left: .2rem; width: calc(50% - .2rem); border-radius: 999px; background: var(--color-brand-700); box-shadow: 0 2px 7px rgb(15 55 92 / 18%); content: ""; transition: transform 180ms ease; }
.obligation-binary-switch-track > span { position: relative; z-index: 1; text-align: center; font-size: .82rem; font-weight: 800; transition: color 160ms ease; }
.obligation-binary-switch input:not(:checked) + .obligation-binary-switch-track .obligation-binary-switch-no,
.obligation-binary-switch input:checked + .obligation-binary-switch-track .obligation-binary-switch-yes { color: #fff; }
.obligation-binary-switch input:checked + .obligation-binary-switch-track::before { transform: translateX(100%); }
.obligation-binary-switch input:focus-visible + .obligation-binary-switch-track { border-color: var(--color-brand-500); box-shadow: 0 0 0 3px var(--focus-ring); }
.obligation-binary-switch:hover .obligation-binary-switch-track { border-color: var(--color-brand-500); }
@media (prefers-reduced-motion: reduce) {
  .obligation-binary-switch-track,
  .obligation-binary-switch-track::before,
  .obligation-binary-switch-track > span { transition: none; }
}
.obligation-entries { display: grid; gap: 0.85rem; margin-top: 1rem; }
.obligation-entry { padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-canvas); }
.obligation-entry-heading { display: flex; gap: 1rem; align-items: start; justify-content: space-between; margin-bottom: 0.85rem; }
.obligation-entry-heading > div { display: grid; gap: 0.2rem; }
.obligation-entry-heading small { color: var(--color-muted); font-size: 0.75rem; }
.obligation-entry-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.85rem; align-items: start; }
.obligation-source-field { grid-column: span 2; }
.obligation-active-field { align-self: end; min-height: 2.75rem; }
.obligation-add-button { margin-top: 0.85rem; }
.money-input { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; border: 1px solid #c7d3da; border-radius: var(--radius-sm); background: #fff; }
.money-input > span { padding-left: 0.75rem; color: var(--color-muted); font-weight: 800; }
.correction-form .money-input input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]) { border: 0; box-shadow: none; }
.money-input:focus-within { border-color: var(--color-brand-500); box-shadow: 0 0 0 3px var(--focus-ring); }
.confirmed-obligations { display: grid; gap: 0.8rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.current-indebtedness-result { display: grid; gap: 0.8rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.current-indebtedness-result h4 { margin: 0; font-size: 1rem; }
.compact-metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.correction-readonly-field { min-height: 4.6rem; padding: 0.7rem 0.8rem; border: 1px dashed var(--color-border); border-radius: var(--radius-sm); background: #f7f9fa; }
.correction-readonly-field strong { display: block; overflow-wrap: anywhere; }
.correction-question { padding: 0.9rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fbfcfd; }
.correction-question-label { color: var(--color-ink) !important; font-size: 0.9rem !important; }
.correction-question .help-text { margin: -0.15rem 0 0.55rem; }
.correction-field-wide { grid-column: 1 / -1; }
.correction-actions { justify-content: flex-end; margin-top: 0; }

@media (max-width: 1024px) {
  .correction-form-grid, .correction-question-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .obligation-entry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compact-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .correction-form-grid, .correction-question-grid { grid-template-columns: minmax(0, 1fr); }
  .obligation-contract-grid, .obligation-entry-grid { grid-template-columns: 1fr; }
  .obligation-source-field { grid-column: 1; }
  .obligation-entry-heading { align-items: center; }
  .compact-metric-grid { grid-template-columns: 1fr; }
  .correction-field-wide { grid-column: auto; }
  .correction-actions .button { width: 100%; }
}
.option-group { display: grid; gap: 0.5rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.option-control { display: flex; gap: 0.65rem; min-height: 2.75rem; padding: 0.65rem 0.75rem; align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fff; cursor: pointer; }
.option-control:has(input:checked) { border-color: var(--color-brand-700); background: var(--color-brand-50); }
.option-control:has(input:focus-visible) { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.option-control input { width: 1rem; height: 1rem; flex: none; accent-color: var(--color-brand-700); }
.answer-value { margin: 0.8rem 0 0; color: var(--color-ink); }
.application-primary-action { display: flex; gap: 1rem; align-items: flex-start; justify-content: space-between; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.application-primary-action p { margin: 0.25rem 0 0; color: var(--color-muted); font-size: 0.82rem; }
.application-primary-action form { flex: none; margin: 0; }
.confirmation-copy { min-width: 12rem; padding-top: 0.65rem; }
.correction-confirmation-form { display: grid; width: min(100%, 48rem); gap: 1rem; }
.correction-metamap-section { display: grid; gap: 0.9rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fbfcfd; }
.correction-metamap-section > div > p { margin-top: 0.3rem; }
.correction-metamap-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.correction-metamap-grid label { display: block; margin-bottom: 0.4rem; color: #304757; font-size: 0.82rem; font-weight: 750; }
.correction-metamap-grid input { width: 100%; min-width: 0; padding: 0.65rem; border: 1px solid #c7d3da; border-radius: var(--radius-sm); background: #fff; }
.correction-confirmation-form > .button { justify-self: end; }

/* El modo oscuro se limita al portal privado; la administración global no hereda estas variables. */
.portal-theme-dark {
  color-scheme: dark;
  --color-ink: #e8edf5;
  --color-muted: #aab5c5;
  --color-subtle: #7f8ca1;
  --color-border: #334155;
  --color-surface: #182235;
  --color-canvas: #111827;
  --color-dark-field: #0f172a;
  --color-dark-raised: #202c40;
  --color-dark-info: #162a42;
  --color-dark-success: #132e24;
  --color-dark-warning: #332812;
  --color-dark-danger: #321d24;
  --color-dark-success-ink: #8ee0b2;
  --color-dark-warning-ink: #f3c777;
  --color-dark-danger-ink: #f0a4ad;
  --shadow-sm: 0 1px 2px rgb(0 0 0 / 24%);
  --shadow-md: 0 12px 32px rgb(0 0 0 / 32%);
}
.portal-theme-dark .app-content,
.portal-theme-dark .topbar { color: var(--color-ink); background: var(--color-canvas); }
.portal-theme-dark .app-layout-portal .sidebar { color: #fff; background: linear-gradient(180deg, var(--color-brand-950) 0%, var(--color-brand-900) 55%, var(--color-brand-950) 100%); }
.portal-theme-dark .topbar { background: rgb(17 24 39 / 94%); }
.portal-theme-dark .surface,
.portal-theme-dark .panel,
.portal-theme-dark .selection-card,
.portal-theme-dark .action-card,
.portal-theme-dark .summary-item,
.portal-theme-dark .service-availability-item,
.portal-theme-dark .summary-card,
.portal-theme-dark .drawer,
.portal-theme-dark .row-disclosure-panel,
.portal-theme-dark .row-disclosure summary { color: var(--color-ink); border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .summary-card { background: linear-gradient(155deg, #182235, #1d293d); }
.portal-theme-dark .form-stack label:not(.checkbox),
.portal-theme-dark .filter-grid label,
.portal-theme-dark .checkbox,
.portal-theme-dark td { color: var(--color-ink); }
.portal-theme-dark .form-stack input:not([type="checkbox"]):not([type="submit"]),
.portal-theme-dark .form-stack select,
.portal-theme-dark .form-stack textarea,
.portal-theme-dark .filter-grid input:not([type="submit"]),
.portal-theme-dark .filter-grid select,
.portal-theme-dark .inline-form select,
.portal-theme-dark .compact-form select { color: var(--color-ink); border-color: #475569; background: #111827; }
.portal-theme-dark .form-section,
.portal-theme-dark .filter-grid { border-color: var(--color-border); background: #141e30; }
.portal-theme-dark th { color: #b8c2d1; background: #202c40; }
.portal-theme-dark th,
.portal-theme-dark td,
.portal-theme-dark .detail-list div,
.portal-theme-dark .summary-list div { border-color: var(--color-border); }
.portal-theme-dark tbody tr:hover { background: rgb(255 255 255 / 4%); }
.portal-theme-dark .button-secondary,
.portal-theme-dark .button-link-secondary,
.portal-theme-dark .device-button { color: var(--color-ink); border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .app-layout-portal .nav-link:hover { background: rgb(255 255 255 / 5%); }
.portal-theme-dark .app-layout-portal .nav-link.is-active { color: #fff; border-color: var(--color-brand-800); background: linear-gradient(135deg, var(--color-brand-700), var(--color-brand-800)); }
.portal-theme-dark .app-layout-portal .context-badge { color: var(--color-ink); border-color: var(--color-border); background: rgb(255 255 255 / 7%); }
.portal-theme-dark .theme-shortcut { color: var(--color-ink); border-color: var(--color-border); background: rgb(255 255 255 / 5%); }
.portal-theme-dark .theme-shortcut:hover { background: rgb(255 255 255 / 9%); }
.portal-theme-dark .profile-summary { border-color: var(--color-border); background: linear-gradient(145deg, var(--color-surface), rgb(255 255 255 / 5%)); }
.portal-theme-dark .brand-mark-logo { background: #fff; }
.portal-theme-dark .preset-card,
.portal-theme-dark .mode-card,
.portal-theme-dark .option-control,
.portal-theme-dark .case-question,
.portal-theme-dark .responsive-table tr,
.portal-theme-dark .active-search { color: var(--color-ink); border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .search-form label,
.portal-theme-dark .create-file-form label,
.portal-theme-dark .appearance-choice-group legend { color: var(--color-ink); }
.portal-theme-dark .search-form input,
.portal-theme-dark .create-file-form select,
.portal-theme-dark .case-answer-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.portal-theme-dark .case-answer-form select,
.portal-theme-dark .case-answer-form textarea,
.portal-theme-dark .correction-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.portal-theme-dark .correction-form select,
.portal-theme-dark .correction-form textarea { color: var(--color-ink); border-color: #475569; background: #111827; }
.portal-theme-dark .obligation-entry { border-color: var(--color-border); background: var(--color-dark-raised); }
.portal-theme-dark .obligation-confirmation-label { color: var(--color-ink); }
.portal-theme-dark .obligation-binary-switch-track { color: var(--color-muted); border-color: #475569; background: #111827; }
.portal-theme-dark .money-input { border-color: #475569; background: #111827; }
.portal-theme-dark .correction-form label,
.portal-theme-dark .correction-readonly-field > span { color: var(--color-muted); }
.portal-theme-dark .correction-readonly-field,
.portal-theme-dark .correction-question,
.portal-theme-dark .correction-metamap-section { background: #111827; }
.portal-theme-dark .correction-metamap-grid label { color: var(--color-muted); }
.portal-theme-dark .correction-metamap-grid input { color: var(--color-ink); border-color: #475569; background: #111827; }
.portal-theme-dark .preset-card:hover,
.portal-theme-dark .mode-card:hover,
.portal-theme-dark .preset-card:has(input:checked),
.portal-theme-dark .mode-card:has(input:checked),
.portal-theme-dark .option-control:has(input:checked) { background: rgb(255 255 255 / 7%); }

/* Feedback */
.flash { width: min(calc(100% - 2rem), 52rem); margin: 1rem auto 0; padding: 0.85rem 1rem; border: 1px solid transparent; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.flash-notice { color: #0d6844; border-color: #bfe8d2; background: var(--color-success-soft); }
.flash-alert { color: #9e2f3d; border-color: #f3cbd0; background: var(--color-danger-soft); }
.app-column > .flash { position: relative; z-index: 2; width: auto; max-width: none; margin: 1.25rem clamp(1.25rem, 3vw, 2.5rem) 0; line-height: 1.5; overflow-wrap: anywhere; box-shadow: none; }
.app-column > .flash + .flash { margin-top: .75rem; }
.data-upload-page .interior-page > .flash { width: 100%; max-width: none; margin: 0 0 1.25rem; padding: 1rem 1.25rem; line-height: 1.5; overflow-wrap: anywhere; box-shadow: none; }
.data-upload-page .interior-page > .flash p { margin: 0 0 .75rem; }
@media (max-width: 720px) {
  .app-column > .flash { margin: 1rem 1rem 0; }
  .data-upload-page .interior-page > .flash { padding: .85rem 1rem; }
}

/* Public and authentication screens */
.public-body {
  background-color: var(--color-canvas);
  background-image:
    linear-gradient(rgb(23 101 140 / 5%) 1px, transparent 1px),
    linear-gradient(90deg, rgb(23 101 140 / 5%) 1px, transparent 1px);
  background-size: 28px 28px;
  background-position: center top;
}
.public-body .panel { position: relative; overflow: hidden; }
.public-body .panel::before { position: absolute; inset: 0 0 auto; height: 3px; background: #fff; content: ""; }

@media (max-width: 960px) {
  .app-layout { display: block; }
  .sidebar { position: fixed; left: 0; width: min(88vw, 17rem); transform: translateX(-105%); transition: transform 200ms ease; }
  .sidebar.is-open { transform: translateX(0); }
  .sidebar-close { display: inline-grid !important; }
  .sidebar-toggle { display: none; }
  .nav-overlay { position: fixed; inset: 0; z-index: 20; display: block; visibility: hidden; background: rgb(10 26 38 / 52%); opacity: 0; transition: opacity 200ms ease, visibility 200ms ease; }
  .nav-overlay.is-visible { visibility: visible; opacity: 1; }
  .topbar { display: flex; }
  .app-content .page-shell { padding-top: 1.5rem; }
  .detail-layout { grid-template-columns: 1fr; }
  .detail-aside { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .appearance-layout { grid-template-columns: 1fr; }
  .profile-summary { grid-template-columns: auto minmax(0, 1fr); }
  .profile-access-summary { grid-column: 1 / -1; }
  .profile-grid, .profile-managed-access { grid-template-columns: 1fr; }
  .monitoring-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .app-content .page-shell { padding: 1.25rem 1rem 2.5rem; }
  .page-header, .heading-row { display: grid; gap: 1rem; margin-bottom: 1.25rem; }
  .interior-header { display: grid; gap: 0.75rem; }
  .header-actions { display: grid; grid-template-columns: 1fr; width: 100%; padding-top: 0; }
  .header-actions .button, .header-actions .button-link { width: 100%; }
  .header-actions .button { grid-row: 1; }
  .detail-aside { grid-template-columns: 1fr; }
  .team-table .person-cell { min-width: 11rem; }
  .row-disclosure-panel { position: fixed; inset: auto 1rem 1rem; width: auto; }
  .drawer { padding: 1.2rem; }
  .page-header > .button-link, .heading-row > .button-link { width: 100%; }
  .surface { padding: 1rem; border-radius: var(--radius-md); }
  .profile-access-summary { grid-template-columns: 1fr; }
  .profile-access-summary div { padding: 0.6rem 0 0; border-top: 1px solid var(--color-border); border-left: 0; }
  .app-content .form-stack:not(.drawer-form),
  .app-content .form-stack:not(.drawer-form) > .surface,
  .form-section { grid-template-columns: 1fr; }
  .app-content .form-stack:not(.drawer-form) > div,
  .app-content .form-stack:not(.drawer-form) > label,
  .form-section > * { grid-column: 1 / -1; }
  .form-actions { align-items: stretch; flex-direction: column-reverse; }
  .form-actions .button, .form-actions .button-link { width: 100%; }
  .detail-list div { grid-template-columns: 1fr; gap: 0.3rem; }
  .filter-grid { grid-template-columns: 1fr; }
  .filter-actions { align-items: stretch; }
  .inline-form { align-items: stretch; flex-direction: column; }
  .inline-form select, .inline-form input:not([type="submit"]), .inline-form .button { width: 100%; }
  .infile-recipient-control { grid-template-columns: 1fr; }
  .infile-recipient-control .button { width: 100%; }
  .dashboard-grid, .selection-list { grid-template-columns: 1fr; }
  .summary-grid { grid-template-columns: 1fr; }
  .public-body .page-shell { padding: 1rem; }
  .public-body .panel { padding: 1.5rem; border-radius: var(--radius-md); }
  .row-actions { flex-wrap: wrap; }
  .table-scroll table { min-width: 44rem; }
  .publication-meta { justify-items: start; }
  .theme-preview { min-height: 25rem; }
  .pagination-bar, .preview-toolbar { align-items: stretch; flex-direction: column; }
  .pagination-bar .button-row, .segmented-control { width: 100%; }
  .segmented-control .button { flex: 1; }
  .form-preview-fields, .version-flow { grid-template-columns: 1fr; }
  .consultation-flow ol { grid-template-columns: 1fr; }
  .responsive-table { min-width: 0 !important; }
  .responsive-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .responsive-table tbody, .responsive-table tr, .responsive-table td { display: block; width: 100%; }
  .responsive-table tr { margin-bottom: 0.8rem; padding: 0.8rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fff; }
  .responsive-table td { display: grid; grid-template-columns: minmax(7rem, 0.7fr) 1fr; gap: 0.7rem; padding: 0.55rem 0; border: 0; }
  .responsive-table td[data-label]::before { color: var(--color-muted); content: attr(data-label); font-size: 0.72rem; font-weight: 800; text-transform: uppercase; }
  .responsive-table .table-action-cell { display: flex; justify-content: flex-end; width: 100%; }
  .applicant-search-grid, .preset-grid { grid-template-columns: 1fr; }
  .search-form, .create-file-form { grid-template-columns: 1fr; }
  .search-form .button, .create-file-form .button { width: 100%; }
  .application-primary-action { align-items: stretch; flex-direction: column; }
  .application-primary-action .button { width: 100%; }
  .correction-confirmation-form { width: 100%; }
  .correction-metamap-grid { grid-template-columns: 1fr; }
  .correction-confirmation-form > .button { justify-self: stretch; }
  .case-answer-actions .button { width: 100%; }
}

@media (max-width: 420px) {
  .mode-grid { grid-template-columns: 1fr; }
  .device-switcher { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .device-button { padding-inline: 0.35rem; }
  .theme-preview { grid-template-columns: 4.25rem minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

/* Cooperative operational portal */
.app-layout-portal { --sidebar-width: 13.75rem; }
.app-layout-portal .sidebar { padding: 1rem 0.7rem; color: #fff; background: linear-gradient(180deg, var(--color-brand-950) 0%, var(--color-brand-900) 55%, var(--color-brand-950) 100%); border: 0; }
.app-layout-portal .portal-theme-surface,
.portal-theme-dark .app-layout-portal .portal-theme-surface {
  isolation: isolate;
  background:
    radial-gradient(circle at 8% 4%, color-mix(in srgb, var(--color-brand-500), transparent 68%) 0, transparent 27%),
    radial-gradient(circle at 104% 47%, color-mix(in srgb, var(--color-brand-700), transparent 72%) 0, transparent 34%),
    linear-gradient(165deg, var(--color-brand-950) 0%, color-mix(in srgb, var(--color-brand-900) 82%, var(--color-brand-700)) 50%, var(--color-brand-950) 100%);
}
.portal-network-background {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  opacity: 0.42;
  pointer-events: none;
}
.app-layout-portal .portal-theme-surface > :not(.portal-network-background) { position: relative; z-index: 1; }
.app-layout-portal .brand { min-height: 4rem; padding-inline: .25rem; align-items: center; justify-content: center; }
.app-layout-portal .brand-mark { color: #fff; background: transparent; box-shadow: inset 0 0 0 2px var(--color-brand-200); }
.portal-company-brand { display: grid; width: min(100%, 10.5rem); height: 3.25rem; place-items: center; overflow: hidden; padding: 0.3rem; border: 0; border-radius: 10px; background: #ffffffb6; }
.portal-company-brand img { width: 100%; height: 100%; object-fit: contain; }
.portal-company-fallback { width: 3rem; height: 3rem; font-size: 1.35rem; }
.app-layout-portal .context-badge { display: none; }
.app-layout-portal .primary-nav { display: flex; min-height: 0; flex: 1; gap: 0.35rem; margin-top: 0.55rem; padding: 0 0.05rem 0.7rem 0; align-content: start; align-items: stretch; flex-direction: column; justify-content: flex-start; overflow-y: auto; scrollbar-gutter: stable; }
.app-layout-portal .nav-section { gap: 0; }
.app-layout-portal .portal-primary-links { gap: 0.08rem; margin-bottom: 0.22rem; padding-bottom: 0.55rem; border-bottom: 1px solid rgb(255 255 255 / 18%); }
.app-layout-portal .portal-primary-links .nav-link { font-weight: 400; }
.app-layout-portal .nav-section-title { padding: 0 0.75rem; color: rgb(255 255 255 / 58%); }
.app-layout-portal .nav-group-summary { min-height: 2.25rem; padding: 0.45rem 0.65rem; color: rgb(255 255 255 / 68%); font-size: .75rem; font-weight: 600; letter-spacing: .05em; }
.app-layout-portal .nav-group-summary > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-layout-portal .nav-group-summary:hover { color: #fff; background: rgb(255 255 255 / 8%); }
.app-layout-portal .nav-group:has(.nav-link.is-active) > .nav-group-summary { color: #fff; }
.app-layout-portal .nav-group-links { gap: 0.1rem; padding-top: 0.12rem; }
.app-layout-portal .nav-link { min-height: 2.75rem; gap: 0.62rem; padding: 0.56rem 0.65rem; color: rgb(244 249 253 / 86%); border-radius: 8px; font-size: 1rem; font-weight: 400; }
.app-layout-portal .nav-link > span { min-width: 0; line-height: 1.18; text-wrap: balance; }
.app-layout-portal .nav-link:hover { color: #fff; background: rgb(255 255 255 / 9%); }
.app-layout-portal .nav-link.is-active { color: #fff; border: 1px solid rgb(255 255 255 / 20%); background: rgb(255 255 255 / 12%); box-shadow: inset 2px 0 0 rgb(125 211 252 / 86%); font-weight: 500; }
.app-layout-portal .nav-link .icon { width: 1.12rem; height: 1.12rem; }
.app-layout-portal .sidebar-toggle, .app-layout-portal .user-card { display: none; }
.platform-signature { display: flex; gap: 0.6rem; align-items: center; padding: 0.7rem 0.65rem 0; color: #eef7ff; border-top: 1px solid rgb(255 255 255 / 22%); }
.platform-signature-mark { display: grid; width: 2rem; height: 2rem; flex: none; place-items: center; border: 1px solid var(--color-brand-200); border-radius: 8px; color: #fff; font-family: var(--font-display); font-weight: 750; }
.platform-signature > span:last-child { display: grid; min-width: 0; line-height: 1.2; }
.platform-signature strong { color: #fff; font-size: 0.78rem; }
.platform-signature small { margin-top: 0.15rem; color: #a8bfd4; font-size: 0.62rem; }
.platform-signature-logo-only { min-height: 4.75rem; justify-content: center; padding: 0.75rem; }
.platform-signature-logo { display: grid; width: 100%; height: 3.5rem; place-items: center; }
.platform-signature-logo img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.platform-signature-logo-compact { display: none; width: 3rem; height: 3rem; }
.app-layout-portal .topbar { display: flex; justify-content: flex-end; min-height: 4rem; padding: 0 2.25rem; background: #fff; border-color: #dfe6ee; }
.app-layout-portal .topbar-context { display: none; }
.app-layout-portal .topbar-actions { gap: 1rem; }
.app-layout-portal .topbar { display: flex; }
.topbar-actions form { margin: 0; }
.topbar-company { display: flex; gap: 0.65rem; align-items: center; min-width: 16rem; padding: 0.55rem 0.8rem; border: 1px solid #dce3eb; border-radius: 7px; color: #14263a; }
.topbar-divider { width: 1px; height: 2.5rem; background: #dce3eb; }
.notification-button { display: none; }
.notification-button small { position: absolute; top: 0; right: 0; display: grid; width: 1rem; height: 1rem; place-items: center; border-radius: 50%; color: #fff; background: #d93025; font-size: 0.6rem; }
.theme-mode-toggle > span { display: grid; place-items: center; }
.theme-mode-toggle > span[hidden] { display: none; }
.theme-mode-toggle .icon { width: 1.2rem; height: 1.2rem; }
.app-layout-portal .topbar-profile-link { display: flex; width: auto; height: 3rem; min-width: 13rem; max-width: 18rem; gap: 0.75rem; padding: 0 0.85rem; justify-content: flex-start; color: #17324e; text-decoration: none; }
.topbar-profile-link > .icon { width: 1.35rem; height: 1.35rem; flex: none; }
.topbar-user-copy { display: grid; min-width: 0; line-height: 1.2; text-align: left; }
.topbar-user-copy strong { display: block; overflow: hidden; max-width: 14rem; margin: 0; font-size: 0.84rem; text-overflow: ellipsis; white-space: nowrap; }
.topbar-user-copy small { display: block; overflow: hidden; max-width: 14rem; margin-top: 0.2rem; color: #728195; font-size: 0.68rem; letter-spacing: normal; text-overflow: ellipsis; text-transform: none; white-space: nowrap; }
.app-layout-portal .button-link:not(.button-secondary), .app-layout-portal .button:not(.button-secondary) { color: #fff; background: linear-gradient(135deg, var(--color-brand-700), var(--color-brand-800)); border-color: var(--color-brand-800); }
.risk-portal-page { min-height: calc(100vh - 4rem); padding: 1.6rem 1.7rem 2.5rem; color: #0f253e; background: #f5f8fc; }
.risk-page-heading { display: flex; justify-content: space-between; gap: 1.5rem; align-items: end; margin-bottom: 1.25rem; }
.risk-page-heading h1 { margin-bottom: 0.35rem; font-size: 1.85rem; font-weight: 700; }
.risk-page-heading h1::after { display: block; width: 2rem; height: 3px; margin-top: 0.8rem; background: var(--color-brand-700); content: ""; }
.risk-page-heading p { margin: 0; color: #627286; }
.risk-new-consultation-button { display: inline-flex; min-height: 3rem; gap: 0.55rem; padding-inline: 1.25rem; align-items: center; border-radius: 10px; box-shadow: 0 10px 22px color-mix(in srgb, var(--color-brand-800), transparent 76%); font-size: 0.9rem; font-weight: 750; }
.risk-new-consultation-button .icon { width: 1.2rem; height: 1.2rem; }
.risk-new-consultation-button:hover { transform: translateY(-1px); box-shadow: 0 12px 25px color-mix(in srgb, var(--color-brand-800), transparent 68%); }
.risk-home-page { display: grid; gap: 1.15rem; }
.risk-home-hero { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .7fr); gap: 1rem; padding: clamp(1.4rem, 3vw, 2.4rem); overflow: hidden; border: 1px solid #cfe0ef; border-radius: 16px; background: linear-gradient(135deg, #fff 0%, var(--color-brand-50) 62%, #eaf7f4 100%); box-shadow: 0 12px 32px rgb(19 48 78 / 7%); }
.risk-home-hero-copy { align-self: center; max-width: 52rem; }
.risk-home-hero .eyebrow, .risk-home-section .eyebrow { margin: 0 0 .55rem; color: var(--color-brand-700); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.risk-home-hero h1 { max-width: 48rem; margin: 0; color: #102b48; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; }
.risk-home-hero-copy > p:not(.eyebrow) { max-width: 47rem; margin: 1rem 0 0; color: #526a80; font-size: 1rem; line-height: 1.65; }
.risk-home-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.4rem; }
.risk-home-actions .button-link { min-height: 3.15rem; }
.risk-home-primary-action { display: inline-flex; gap: .55rem; align-items: center; border-radius: 10px; box-shadow: 0 12px 24px color-mix(in srgb, var(--color-brand-800), transparent 74%); font-weight: 800; }
.risk-home-primary-action .icon { width: 1.15rem; height: 1.15rem; }
.risk-home-summary { display: grid; align-content: center; padding: 1.35rem; border: 1px solid rgb(255 255 255 / 70%); border-radius: 13px; background: rgb(255 255 255 / 78%); box-shadow: 0 12px 28px rgb(27 67 100 / 9%); }
.risk-home-summary > span { display: grid; width: 3rem; height: 3rem; place-items: center; color: #fff; border-radius: 12px; background: linear-gradient(135deg, var(--color-brand-700), #168d73); }
.risk-home-summary > span .icon { width: 1.45rem; height: 1.45rem; }
.risk-home-summary > strong { margin-top: 1rem; color: #17324e; font-size: 1.05rem; }
.risk-home-summary > p { margin: .45rem 0 0; color: #64768a; font-size: .82rem; line-height: 1.55; }
.risk-home-summary ul { display: grid; gap: .55rem; margin: 1rem 0 0; padding: 1rem 0 0; border-top: 1px solid #dbe6ee; list-style: none; }
.risk-home-summary li { display: flex; gap: .5rem; align-items: center; color: #36536c; font-size: .77rem; font-weight: 650; }
.risk-home-summary li .icon { width: 1rem; height: 1rem; color: #15945a; }
.risk-home-section { padding: clamp(1.2rem, 2.4vw, 1.8rem); border: 1px solid #d6e0ea; border-radius: 14px; background: #fff; }
.risk-home-section-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 1.35rem; }
.risk-home-section-heading h2 { margin: 0; color: #17324e; font-size: 1.45rem; }
.risk-home-section-heading > p { max-width: 29rem; margin: 0; color: #718095; font-size: .82rem; line-height: 1.5; }
.risk-home-phases { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; margin: 0; padding: 0; list-style: none; counter-reset: phase; }
.risk-home-phase { position: relative; display: grid; min-width: 0; grid-template-rows: auto 1fr; align-content: stretch; padding: 1rem; border: 1px solid #dbe4ed; border-radius: 12px; background: linear-gradient(180deg, #fff, #f9fbfd); transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.risk-home-phase:hover, .risk-home-phase:focus-within { border-color: var(--color-brand-400); box-shadow: 0 12px 24px rgb(19 67 106 / 12%); transform: translateY(-2px); }
.risk-home-phase::after { position: absolute; top: 2.15rem; left: calc(100% + 1px); z-index: 1; width: .8rem; height: 1px; background: #b9cddd; content: ""; }
.risk-home-phase:last-child::after { display: none; }
.risk-home-phase-number { position: absolute; top: .7rem; right: .7rem; display: grid; width: 1.65rem; height: 1.65rem; place-items: center; color: var(--color-brand-700); border: 1px solid #b9d9d1; border-radius: 50%; background: #fff; font-size: .7rem; font-weight: 850; }
.risk-home-phase-icon { display: grid; width: 2.8rem; height: 2.8rem; margin-bottom: .9rem; place-items: center; color: var(--color-brand-700); border-radius: 11px; background: var(--color-brand-50); }
.risk-home-phase-icon .icon { width: 1.35rem; height: 1.35rem; }
.risk-home-phase-content { display: flex; min-height: 100%; flex-direction: column; }
.risk-home-phase h3 { margin: 0 0 .55rem; color: #17324e; font-size: .96rem; line-height: 1.25; }
.risk-home-phase p { margin: 0; color: #66798c; font-size: .75rem; line-height: 1.55; }
.risk-home-phase-action { position: static; justify-content: space-between; width: 100%; margin-top: auto; padding: .65rem .75rem; font-size: .75rem; }
.risk-home-phase-action::after { position: absolute; inset: 0; z-index: 2; content: ""; }
.risk-home-phase-action:focus-visible { outline: none; }
.risk-home-phase:has(.risk-home-phase-action:focus-visible) { outline: 3px solid color-mix(in srgb, var(--color-brand-500), transparent 48%); outline-offset: 3px; }
.risk-home-phase-action .icon { width: .9rem; height: .9rem; }
.risk-home-member-only { display: inline-flex; gap: .3rem; align-items: center; width: fit-content; margin: 0 0 .6rem; padding: .28rem .48rem; color: var(--color-brand-800); border: 1px solid var(--color-brand-100); border-radius: 999px; background: var(--color-brand-50); font-size: .64rem; font-weight: 800; line-height: 1.2; }
.risk-home-member-only .icon { width: .78rem; height: .78rem; flex: none; }
.risk-home-platform-signature { display: flex; gap: .65rem; align-items: center; justify-content: center; margin-top: 1.25rem; padding-top: 1rem; color: #7a8495; border-top: 1px solid #edf1f4; font-size: .7rem; }
.risk-home-platform-signature img { display: block; width: auto; max-width: 11rem; max-height: 2.6rem; object-fit: contain; }
.risk-home-platform-signature strong { color: #17324e; font-size: .95rem; }
.risk-home-footer-grid { display: grid; gap: 1.15rem; }
.risk-home-council { display: flex; gap: 1rem; align-items: center; padding: 1.25rem 1.35rem; border: 1px solid #cfe0ef; border-radius: 13px; background: linear-gradient(120deg, #f4f9fd, #eef9f5); box-shadow: 0 10px 24px rgb(19 48 78 / 5%); }
.risk-home-council > span { display: grid; width: 3rem; height: 3rem; flex: none; place-items: center; color: #fff; border-radius: 11px; background: linear-gradient(135deg, var(--color-brand-800), #168d73); }
.risk-home-council > span .icon { width: 1.35rem; height: 1.35rem; }
.risk-home-council .eyebrow { margin: 0 0 .25rem; color: var(--color-brand-700); font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.risk-home-council h2 { margin: 0; color: #17324e; font-size: 1.05rem; }
.risk-home-council div > p:last-child { max-width: 62rem; margin: .35rem 0 0; color: #5e7387; font-size: .82rem; line-height: 1.55; }
.risk-home-final-cta { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; padding: 1.2rem 1.35rem; color: #fff; border-radius: 13px; background: linear-gradient(120deg, var(--color-brand-900), var(--color-brand-700)); }
.risk-home-final-cta > div { display: flex; gap: .9rem; align-items: center; }
.risk-home-final-cta > div > span { display: grid; width: 2.8rem; height: 2.8rem; flex: none; place-items: center; border-radius: 10px; background: rgb(255 255 255 / 13%); }
.risk-home-final-cta h2 { margin: 0; color: #fff; font-size: 1.05rem; }
.risk-home-final-cta p { margin: .25rem 0 0; color: rgb(255 255 255 / 76%); font-size: .78rem; }
.risk-home-final-cta .risk-home-primary-action { color: var(--color-brand-900) !important; border-color: #fff !important; background: #fff !important; box-shadow: none; }

@media (min-width: 1051px) and (min-height: 700px) {
  .risk-home-page { height: calc(100dvh - 4rem); min-height: 0; grid-template-rows: auto minmax(0, 1fr) auto; gap: .65rem; padding: .7rem .9rem 5rem; overflow: hidden; }
  .risk-home-hero { grid-template-columns: minmax(0, 1.65fr) minmax(16rem, .65fr); gap: .75rem; padding: .85rem 1rem; border-radius: 12px; }
  .risk-home-hero h1 { font-size: clamp(1.7rem, 2.6vw, 2.45rem); line-height: 1; }
  .risk-home-hero .eyebrow { margin-bottom: .3rem; font-size: .62rem; }
  .risk-home-hero-copy > p:not(.eyebrow) { margin-top: .45rem; font-size: .77rem; line-height: 1.38; text-align: left; }
  .risk-home-actions { gap: .5rem; margin-top: .65rem; }
  .risk-home-actions .button-link { min-height: 2.45rem; padding: .5rem .75rem; font-size: .76rem; }
  .risk-home-summary { padding: .75rem .85rem; border-radius: 10px; }
  .risk-home-summary > span { width: 2.2rem; height: 2.2rem; border-radius: 8px; }
  .risk-home-summary > span .icon { width: 1.05rem; height: 1.05rem; }
  .risk-home-summary > strong { margin-top: .45rem; font-size: .85rem; }
  .risk-home-summary > p { display: none; }
  .risk-home-summary ul { gap: .22rem; margin-top: .4rem; padding-top: .4rem; }
  .risk-home-summary li { gap: .35rem; font-size: .63rem; }
  .risk-home-section { display: grid; min-height: 0; grid-template-rows: auto minmax(0, 1fr) auto; padding: .65rem .75rem; border-radius: 11px; overflow: hidden; }
  .risk-home-section-heading { gap: 1rem; margin-bottom: .55rem; align-items: center; }
  .risk-home-section-heading .eyebrow { margin-bottom: .2rem; font-size: .6rem; }
  .risk-home-section-heading h2 { font-size: 1rem; }
  .risk-home-section-heading > p { max-width: 27rem; font-size: .65rem; line-height: 1.3; text-align: left; }
  .risk-home-phases { min-height: 0; gap: .45rem; }
  .risk-home-phase { padding: .58rem; border-radius: 9px; overflow: hidden; }
  .risk-home-phase::after { top: 1.65rem; width: .45rem; }
  .risk-home-phase-number { top: .45rem; right: .45rem; width: 1.35rem; height: 1.35rem; font-size: .58rem; }
  .risk-home-phase-icon { width: 2rem; height: 2rem; margin-bottom: .42rem; border-radius: 7px; }
  .risk-home-phase-icon .icon { width: 1rem; height: 1rem; }
  .risk-home-phase h3 { margin-bottom: .3rem; font-size: .75rem; line-height: 1.18; }
  .risk-home-phase p { font-size: .61rem; line-height: 1.32; text-align: left; }
  .risk-home-member-only { margin-bottom: .3rem; padding: .18rem .3rem; font-size: .52rem; }
  .risk-home-phase-action { min-height: 2rem; margin-top: .38rem; padding: .38rem .45rem; font-size: .62rem; }
  .risk-home-platform-signature { margin-top: .4rem; padding-top: .32rem; font-size: .58rem; }
  .risk-home-platform-signature strong { font-size: .72rem; }
  .risk-home-footer-grid { grid-template-columns: minmax(0, 1.15fr) minmax(25rem, .85fr); gap: .65rem; }
  .risk-home-council, .risk-home-final-cta { min-height: 4.2rem; padding: .55rem .7rem; border-radius: 10px; }
  .risk-home-council { gap: .65rem; }
  .risk-home-council > span, .risk-home-final-cta > div > span { width: 2.2rem; height: 2.2rem; border-radius: 7px; }
  .risk-home-council > span .icon { width: 1rem; height: 1rem; }
  .risk-home-council .eyebrow { margin-bottom: .08rem; font-size: .52rem; }
  .risk-home-council h2, .risk-home-final-cta h2 { font-size: .78rem; }
  .risk-home-council div > p:last-child, .risk-home-final-cta p { margin-top: .12rem; font-size: .61rem; line-height: 1.25; text-align: left; }
  .risk-home-final-cta { gap: .65rem; }
  .risk-home-final-cta > div { gap: .55rem; }
  .risk-home-final-cta .button-link { min-height: 2.2rem; flex: none; padding: .4rem .62rem; font-size: .66rem; }
}

.portal-agent-shell { position: fixed; right: 1.35rem; bottom: 1.35rem; z-index: 70; font-size: .875rem; }
.portal-agent-launcher { display: inline-flex; gap: .55rem; align-items: center; justify-content: center; min-height: 3.25rem; padding: .75rem 1.05rem; color: #fff; border: 0; border-radius: 999px; background: linear-gradient(135deg, var(--color-brand-800), var(--color-brand-600)); box-shadow: 0 16px 36px rgb(15 62 105 / 28%); font: inherit; font-weight: 800; cursor: pointer; }
.portal-agent-launcher[hidden] { display: none; }
.portal-agent-launcher .icon { width: 1.15rem; height: 1.15rem; }
.portal-agent-backdrop { position: fixed; inset: 0; z-index: 0; border: 0; background: rgb(9 27 45 / 32%); cursor: default; opacity: 0; backdrop-filter: blur(1px); transition: opacity 220ms ease; }
.portal-agent-backdrop.is-visible { opacity: 1; }
.portal-agent-backdrop[hidden] { display: none; }
.portal-agent-panel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 1; display: grid; width: 50vw; height: 100dvh; overflow: hidden; border: 0; border-left: 1px solid #ccdae7; border-radius: 0; opacity: .98; background: #fff; box-shadow: -20px 0 60px rgb(12 36 62 / 24%); transform: translate3d(100%, 0, 0); transition: transform 280ms cubic-bezier(.22, 1, .36, 1), opacity 180ms ease; will-change: transform; grid-template-rows: auto minmax(0, 1fr); }
.portal-agent-panel.is-open { opacity: 1; transform: translate3d(0, 0, 0); }
.portal-agent-panel[hidden] { display: none; }
.portal-agent-header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .95rem 1rem; color: #fff; background: linear-gradient(120deg, var(--color-brand-900), var(--color-brand-700)); }
.portal-agent-identity { display: flex; gap: .7rem; align-items: center; min-width: 0; }
.portal-agent-identity > span { display: grid; width: 2.45rem; height: 2.45rem; flex: none; place-items: center; border-radius: 10px; background: rgb(255 255 255 / 15%); }
.portal-agent-identity .icon { width: 1.2rem; height: 1.2rem; }
.portal-agent-identity div { display: grid; min-width: 0; }
.portal-agent-identity strong { font-size: .92rem; }
.portal-agent-identity small { color: rgb(255 255 255 / 72%); font-size: .7rem; }
.portal-agent-header-actions { display: flex; gap: .25rem; }
.portal-agent-header-actions button { display: grid; width: 2rem; height: 2rem; place-items: center; color: #fff; border: 0; border-radius: 8px; background: transparent; font: inherit; font-size: 1.1rem; cursor: pointer; }
.portal-agent-header-actions .portal-agent-clear-button { display: inline-flex; width: auto; min-width: max-content; padding: 0 .65rem; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.portal-agent-header-actions button:hover { background: rgb(255 255 255 / 14%); }
.portal-agent-header-actions .icon { width: 1rem; height: 1rem; }
#portal-agent-frame { min-height: 0; }
.portal-agent-body { display: grid; height: 100%; min-height: 0; padding: .85rem; background: #f8fafc; grid-template-rows: minmax(0, 1fr) auto auto auto; }
.portal-agent-messages { display: flex; gap: .75rem; flex-direction: column; min-height: 0; overflow-y: auto; padding: .15rem .2rem .8rem; overscroll-behavior: contain; }
.portal-agent-welcome { display: flex; gap: .7rem; padding: .85rem; border: 1px solid #dbe6ef; border-radius: 13px; background: #fff; }
.portal-agent-welcome > span { display: grid; width: 2rem; height: 2rem; flex: none; place-items: center; color: var(--color-brand-700); border-radius: 9px; background: var(--color-brand-50); }
.portal-agent-welcome .icon { width: 1rem; height: 1rem; }
.portal-agent-welcome strong { color: #17324e; font-size: .88rem; }
.portal-agent-welcome p { margin: .35rem 0 0; color: #64768a; font-size: .84rem; line-height: 1.55; }
.portal-agent-message { max-width: 88%; padding: .7rem .8rem; border: 1px solid #dce6ee; border-radius: 13px 13px 13px 4px; background: #fff; color: #354e65; box-shadow: 0 4px 12px rgb(20 52 80 / 4%); }
.portal-agent-message--user { align-self: flex-end; color: #fff; border-color: var(--color-brand-700); border-radius: 13px 13px 4px; background: var(--color-brand-700); }
.portal-agent-message > strong { display: block; margin-bottom: .25rem; font-size: .76rem; }
.portal-agent-response { display: grid; gap: .55rem; text-align: left; }
.portal-agent-response p { margin: 0; font-size: .88rem; line-height: 1.58; }
.portal-agent-response h4 { margin: .18rem 0 0; color: #20394e; font-size: .82rem; line-height: 1.35; }
.portal-agent-response ul,
.portal-agent-response ol { display: grid; gap: .35rem; margin: 0; padding-left: 1.2rem; }
.portal-agent-response li { padding-left: .15rem; font-size: .88rem; line-height: 1.5; }
.portal-agent-product { display: grid; gap: .3rem; margin-top: .7rem; padding: .7rem; border: 1px solid #bcd9d0; border-radius: 10px; background: linear-gradient(135deg, #f4fbf8, #f3f8fc); }
.portal-agent-product > small { color: #4d7167; font-size: .64rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.portal-agent-product > strong { color: #173f39; font-size: .86rem; }
.portal-agent-product p { margin: 0; color: #4f6870; font-size: .76rem; line-height: 1.45; }
.portal-agent-product a { width: fit-content; margin-top: .15rem; color: var(--color-brand-700); font-size: .74rem; font-weight: 800; }
.portal-agent-sources { display: grid; gap: .3rem; margin-top: .65rem; padding-top: .55rem; border-top: 1px solid #e2e9ef; }
.portal-agent-sources > small { color: #697b8d; font-size: .64rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.portal-agent-source-list { display: grid; gap: .4rem; margin: 0; padding: 0; list-style: none; counter-reset: portal-agent-source; }
.portal-agent-source-list li { min-width: 0; counter-increment: portal-agent-source; }
.portal-agent-source-list a { display: grid; position: relative; min-width: 0; gap: .08rem; padding: .48rem .55rem .48rem 2rem; color: var(--color-brand-700); border: 1px solid #dce6ee; border-radius: 9px; background: #f8fbfd; font-size: .76rem; font-weight: 750; line-height: 1.35; text-decoration: none; }
.portal-agent-source-list a::before { position: absolute; top: .48rem; left: .55rem; display: grid; width: 1rem; height: 1rem; place-items: center; color: #fff; border-radius: 50%; background: var(--color-brand-700); content: counter(portal-agent-source); font-size: .58rem; }
.portal-agent-source-list a:hover { border-color: #b7cedd; background: #f0f7fb; text-decoration: underline; }
.portal-agent-source-list a span { min-width: 0; overflow-wrap: break-word; }
.portal-agent-source-list a small { color: #718295; font-size: .65rem; font-weight: 650; }
.portal-agent-thinking { display: flex; gap: .55rem; align-items: center; width: fit-content; padding: .65rem .8rem; color: #597084; border: 1px solid #dce6ee; border-radius: 12px; background: #fff; }
.portal-agent-feedback { margin: 0 0 .55rem; padding: .55rem .65rem; color: #8e2635; border-radius: 8px; background: #fff0f2; font-size: .7rem; }
.portal-agent-suggestions { display: grid; gap: .4rem; min-width: 0; padding: 0 0 .65rem; }
.portal-agent-suggestions > small { color: #6c7d8e; font-size: .7rem; font-weight: 800; letter-spacing: .02em; }
.portal-agent-suggestions > div { display: grid; gap: .4rem; min-width: 0; }
.portal-agent-suggestions form { min-width: 0; margin: 0; }
.portal-agent-suggestions button { display: grid; width: 100%; min-width: 0; min-height: 2.65rem; padding: .55rem .65rem .55rem .75rem; align-items: center; color: var(--color-brand-800); border: 1px solid #cbdde9; border-radius: 10px; background: #fff; font: inherit; font-size: .76rem; line-height: 1.35; text-align: left; cursor: pointer; grid-template-columns: minmax(0, 1fr) auto; }
.portal-agent-suggestions button:hover { border-color: #a9c7dc; background: #f2f8fc; }
.portal-agent-suggestions button span { min-width: 0; overflow-wrap: anywhere; }
.portal-agent-suggestions button .icon { width: .85rem; height: .85rem; margin-left: .45rem; color: var(--color-brand-600); }
.portal-agent-composer { display: grid; gap: .5rem; align-items: end; padding: .55rem; border: 1px solid #cbd9e5; border-radius: 13px; background: #fff; grid-template-columns: minmax(0, 1fr) auto; }
.portal-agent-composer textarea { min-height: 2.9rem; max-height: 7rem; padding: .5rem; resize: vertical; color: #243e56; border: 0; outline: 0; background: transparent; font: inherit; font-size: .87rem; }
.portal-agent-composer input[type="submit"] { min-height: 2.6rem; padding: .55rem .8rem; color: #fff; border: 0; border-radius: 9px; background: var(--color-brand-700); font: inherit; font-size: .8rem; font-weight: 800; cursor: pointer; }
.portal-agent-disclaimer { margin: .5rem .15rem 0; color: #7a8794; font-size: .7rem; line-height: 1.4; text-align: center; }
.app-content .portal-agent-page { height: calc(100dvh - 4rem); min-height: 0; overflow: hidden; padding: 0; background: #fff; }
.portal-agent-page-card { display: grid; width: 100%; height: 100%; min-height: 0; overflow: hidden; background: #fff; grid-template-rows: auto minmax(0, 1fr); }
.portal-agent-page-card #portal-agent-frame { height: 100%; min-height: 0; overflow: hidden; }
.portal-agent-page-header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; min-height: 3.75rem; padding: .65rem 1.25rem; border-bottom: 1px solid #ececec; background: rgb(255 255 255 / 92%); backdrop-filter: blur(12px); }
.portal-agent-page-header .portal-agent-identity > span { width: 2rem; height: 2rem; color: #fff; border-radius: 50%; background: var(--color-brand-700); }
.portal-agent-page-header .portal-agent-identity strong { color: #202123; font-size: .95rem; }
.portal-agent-page-header .portal-agent-identity small { color: #8e8e8e; font-size: .68rem; }
.portal-agent-page-actions { display: flex; gap: .65rem; align-items: center; }
.portal-agent-page-actions form { margin: 0; }
.portal-agent-page-status { display: inline-flex; gap: .45rem; align-items: center; padding: .4rem .7rem; color: #5f6368; border: 1px solid #e5e5e5; border-radius: 999px; background: #fafafa; font-size: .72rem; font-weight: 700; }
.portal-agent-page-status i { width: .45rem; height: .45rem; border-radius: 50%; background: #10a37f; box-shadow: 0 0 0 3px rgb(16 163 127 / 12%); }
.portal-agent-page .portal-agent-body { height: 100%; min-height: 0; overflow: hidden; padding: 0 clamp(.85rem, 2vw, 1.5rem) 1rem; background: #fff; }
.portal-agent-page .portal-agent-messages { gap: 1.5rem; padding: 2.5rem max(.1rem, calc((100% - 48rem) / 2)) 1.5rem; }
.portal-agent-page .portal-agent-welcome { display: grid; max-width: 42rem; margin: auto; padding: 2rem 1rem; justify-items: center; border: 0; background: transparent; text-align: center; }
.portal-agent-page .portal-agent-welcome > span { width: 3.25rem; height: 3.25rem; color: #fff; border-radius: 50%; background: var(--color-brand-700); }
.portal-agent-page .portal-agent-welcome .icon { width: 1.45rem; height: 1.45rem; }
.portal-agent-page .portal-agent-welcome strong { color: #202123; font-size: clamp(1.45rem, 3vw, 2rem); letter-spacing: -.025em; }
.portal-agent-page .portal-agent-welcome p { max-width: 36rem; margin-top: .75rem; color: #6b6b6b; font-size: .95rem; }
.portal-agent-page .portal-agent-message { width: 100%; max-width: 48rem; margin: 0 auto; padding: 0; color: #292929; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.portal-agent-page .portal-agent-message--user { width: fit-content; max-width: min(85%, 42rem); margin-right: max(.1rem, calc((100% - 48rem) / 2)); padding: .75rem 1rem; color: #292929; border-radius: 1.35rem; background: #f4f4f4; }
.portal-agent-page .portal-agent-message > strong { color: #6b6b6b; font-size: .72rem; }
.portal-agent-page .portal-agent-response { gap: .75rem; }
.portal-agent-page .portal-agent-response p,
.portal-agent-page .portal-agent-response li { font-size: .95rem; line-height: 1.65; }
.portal-agent-page .portal-agent-response h4 { color: #292929; font-size: 1rem; }
.portal-agent-page .portal-agent-source-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-agent-page .portal-agent-thinking { width: min(48rem, 100%); margin: 0 auto; padding: .75rem 0; border: 0; background: transparent; }
.portal-agent-page .portal-agent-suggestions,
.portal-agent-page .portal-agent-composer,
.portal-agent-page .portal-agent-disclaimer { width: min(48rem, 100%); margin-right: auto; margin-left: auto; }
.portal-agent-page .portal-agent-suggestions { gap: .5rem; padding-bottom: .8rem; }
.portal-agent-page .portal-agent-suggestions > small { color: #747474; font-size: .75rem; }
.portal-agent-page .portal-agent-suggestions > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.portal-agent-page .portal-agent-suggestions button { min-height: 4rem; padding: .7rem .8rem; color: #454545; border-color: #e3e3e3; border-radius: 1rem; background: #fff; font-size: .78rem; }
.portal-agent-page .portal-agent-suggestions button:hover { background: #f7f7f7; }
.portal-agent-page .portal-agent-composer { min-height: 4.25rem; padding: .65rem .7rem .65rem 1rem; border-color: #dedede; border-radius: 1.65rem; box-shadow: 0 3px 14px rgb(0 0 0 / 8%); }
.portal-agent-page .portal-agent-composer:focus-within { border-color: #c7c7c7; box-shadow: 0 4px 18px rgb(0 0 0 / 11%); }
.portal-agent-page .portal-agent-composer textarea { min-height: 2.75rem; color: #202123; font-size: .95rem; }
.portal-agent-page .portal-agent-send { display: grid; width: 2.5rem; min-height: 2.5rem; padding: 0; place-items: center; color: #fff; border: 0; border-radius: 50%; background: #202123; cursor: pointer; transform: rotate(-90deg); }
.portal-agent-page .portal-agent-send .icon { width: 1rem; height: 1rem; }
.portal-agent-page .portal-agent-disclaimer { color: #8b8b8b; font-size: .68rem; }
.risk-card { padding: 1.15rem; border: 1px solid #d6e0ea; border-radius: 10px; background: #fff; box-shadow: 0 2px 8px rgb(19 48 78 / 4%); }
.risk-card-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: start; margin-bottom: 1rem; }
.risk-card-heading h2 { margin: 0 0 0.2rem; color: #172f4b; font-size: 1.05rem; }
.risk-card-heading p { margin: 0; color: #718095; font-size: 0.78rem; }
.risk-dashboard-page { display: grid; gap: 1rem; }
.risk-dashboard-page .risk-page-heading { margin-bottom: .25rem; }
.risk-dashboard-heading .eyebrow { margin: 0 0 .4rem; color: var(--color-brand-700); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.risk-dashboard-heading-actions { display: flex; gap: .65rem; align-items: center; }
.risk-dashboard-heading-actions .button-link { min-height: 3rem; }
.risk-dashboard-overview { display: grid; gap: 1rem; align-items: stretch; padding: 1.15rem; border: 1px solid #d6e0ea; border-radius: 14px; background: linear-gradient(135deg, #fff 0%, #f8fbfe 100%); box-shadow: 0 8px 24px rgb(19 48 78 / 5%); }
.risk-dashboard-overview .risk-kpi-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 0; }
.risk-dashboard-section-heading { display: flex; gap: 1rem; align-items: center; justify-content: space-between; }
.risk-dashboard-section-heading h2 { margin: 0 0 .2rem; color: #172f4b; font-size: 1.05rem; }
.risk-dashboard-section-heading p { margin: 0; color: #718095; font-size: .78rem; }
.risk-dashboard-date { display: inline-flex; min-height: 2.35rem; gap: .45rem; padding: .5rem .75rem; align-items: center; color: #46627d; border: 1px solid #d8e3ed; border-radius: 999px; background: #fff; font-size: .72rem; font-weight: 700; }
.risk-dashboard-date .icon { width: 1rem; height: 1rem; color: var(--color-brand-700); }
.risk-trial-card { display: grid; align-content: space-between; gap: 1rem; min-width: 0; padding: 1.15rem; color: #f7fffc; border: 1px solid color-mix(in srgb, var(--color-brand-600), #fff 15%); border-radius: 10px; background: linear-gradient(145deg, var(--color-brand-800), var(--color-brand-600)); box-shadow: 0 8px 20px rgb(10 64 69 / 14%); }
.risk-trial-card-heading { display: flex; gap: 0.75rem; align-items: center; }
.risk-trial-card-heading > span { display: grid; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; place-items: center; border-radius: 9px; background: rgb(255 255 255 / 14%); }
.risk-trial-card-heading .icon { width: 1.25rem; height: 1.25rem; }
.risk-trial-card-heading small, .risk-trial-note { color: rgb(255 255 255 / 76%); }
.risk-trial-card h2 { margin: 0.15rem 0 0; color: #fff; font-size: 1rem; }
.risk-trial-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.risk-trial-metrics > div { min-width: 0; padding: 0.75rem; border: 1px solid rgb(255 255 255 / 15%); border-radius: 8px; background: rgb(255 255 255 / 9%); }
.risk-trial-metrics strong, .risk-trial-metrics span { display: block; }
.risk-trial-metrics strong { color: #fff; font-family: var(--font-display); font-size: 1.65rem; line-height: 1; }
.risk-trial-metrics span { margin-top: 0.3rem; color: rgb(255 255 255 / 82%); font-size: 0.68rem; }
.risk-trial-card p { margin: 0; color: rgb(255 255 255 / 88%); font-size: 0.74rem; line-height: 1.45; }
.risk-trial-card p strong { color: #fff; }
.risk-trial-note { font-size: 0.65rem; line-height: 1.4; }
.risk-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.8rem; margin-bottom: 0.9rem; }
.risk-kpi-grid-small { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.risk-kpi { position: relative; display: grid; min-height: 9rem; padding: 1rem; overflow: hidden; border: 1px solid #d6e0ea; border-radius: 12px; background: linear-gradient(155deg, #fff, #fbfdff); box-shadow: 0 5px 16px rgb(19 48 78 / 5%); }
.risk-kpi::after { position: absolute; right: 0; bottom: 0; width: 4.5rem; height: 4.5rem; border-radius: 100% 0 0; background: color-mix(in srgb, var(--color-brand-100), transparent 62%); content: ""; pointer-events: none; }
.risk-kpi > span { position: absolute; top: 1rem; right: 1rem; display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border-radius: 8px; color: var(--color-brand-700); background: var(--color-brand-50); }
.risk-kpi small { color: #66778b; font-size: 0.75rem; font-weight: 600; }
.risk-kpi strong { margin: 0.25rem 0; color: #0d2d4f; font-family: var(--font-display); font-size: 2rem; }
.risk-kpi p { align-self: end; margin: 0; color: #8290a0; font-size: 0.7rem; }
.risk-kpi.is-success > span { color: #139755; background: #eaf8ef; }
.risk-kpi.is-warning > span { color: #d98400; background: #fff5df; }
.risk-kpi-change.is-up { color: #137a4b; }
.risk-kpi-change.is-down { color: #795a21; }
.risk-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(18rem, 0.8fr); gap: 0.9rem; margin-bottom: 0.9rem; }
.risk-dashboard-page .risk-dashboard-grid { margin-bottom: 0; }
.risk-dashboard-visual-grid { grid-template-columns: minmax(0, 1.85fr) minmax(18rem, .65fr); }
.risk-dashboard-secondary-grid { grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); }
.risk-chart-card { min-width: 0; padding: 1.35rem; }
.risk-chart-heading { align-items: center; }
.risk-period-filter { display: inline-flex; flex: none; gap: .2rem; padding: .22rem; border: 1px solid #d9e3ec; border-radius: 9px; background: #f4f7fa; }
.risk-period-option { min-height: 2rem; padding: .42rem .65rem; color: #627286; border-radius: 7px; font-size: .7rem; font-weight: 750; text-decoration: none; }
.risk-period-option:hover { color: var(--color-brand-800); background: #fff; }
.risk-period-option.is-active { color: #fff; background: var(--color-brand-700); box-shadow: 0 3px 8px rgb(7 94 169 / 18%); }
.risk-period-option:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.risk-bar-chart { display: grid; grid-template-columns: repeat(var(--chart-columns, 12), minmax(2rem, 1fr)); gap: 0.6rem; align-items: end; min-height: 14rem; padding: 1.5rem .35rem 0; overflow-x: auto; border-bottom: 1px solid #dce5ee; }
.risk-bar-column { display: grid; grid-template-rows: 1.2rem 9rem 1.5rem; gap: 0.35rem; align-items: end; justify-items: center; color: #718095; font-size: 0.66rem; }
.risk-bar-column i { position: relative; display: block; width: min(78%, 2rem); height: var(--bar-height); min-height: 2px; align-self: end; border-radius: 7px 7px 2px 2px; background: linear-gradient(180deg, var(--color-brand-accent), var(--color-brand-700) 58%, var(--color-brand-900)); box-shadow: 0 7px 14px color-mix(in srgb, var(--color-brand-800), transparent 78%); }
.risk-chart-empty { display: flex; min-height: 14rem; gap: 1rem; align-items: center; justify-content: center; padding: 2rem; border: 1px dashed #cbd8e5; border-radius: 12px; color: #526177; background: linear-gradient(135deg, #f8fbfe, #f2f7fb); text-align: left; }
.risk-chart-empty-icon { display: grid; width: 3.25rem; height: 3.25rem; flex: 0 0 auto; place-items: center; border-radius: 14px; color: var(--color-brand-700); background: var(--color-brand-50); }
.risk-chart-empty-icon .icon { width: 1.6rem; height: 1.6rem; }
.risk-chart-empty h3 { margin: 0 0 .3rem; color: #19334f; font-size: 1rem; }
.risk-chart-empty p { margin: 0; font-size: .82rem; }
.risk-bar-value { color: #36506b; font-size: 0.67rem; }
.risk-chart-data { margin-top: .85rem; }
.risk-chart-data summary { width: fit-content; color: var(--color-brand-700); font-size: .72rem; font-weight: 750; cursor: pointer; }
.risk-chart-data .table-scroll { margin-top: .75rem; }
.risk-monthly-table th:last-child, .risk-monthly-table td:last-child { text-align: right; }
.risk-monthly-table tbody tr:first-child td { color: #17324e; background: var(--color-brand-50); }
@media (max-width: 1400px) { .topbar-company { display: none; } }
.risk-ranking { display: grid; gap: 1rem; }
.risk-ranking > div { display: grid; gap: 0.45rem; }
.risk-ranking span { display: flex; justify-content: space-between; gap: 0.6rem; font-size: 0.75rem; }
.risk-ranking span small { color: #78889b; }
.risk-ranking i { display: block; height: 0.38rem; overflow: hidden; border-radius: 999px; background: #e6ebf0; }
.risk-ranking b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #149f5c, #28b873); }
.risk-card-total { display: grid; min-width: 2.3rem; height: 2.3rem; padding: 0 .55rem; place-items: center; color: var(--color-brand-800); border-radius: 9px; background: var(--color-brand-50); font-size: .9rem; }
.risk-operations-card { display: grid; align-content: start; min-width: 0; padding: 1.35rem; }
.risk-operational-status { display: flex; gap: .75rem; padding: .9rem; align-items: flex-start; border: 1px solid #cfe6da; border-radius: 10px; color: #17623f; background: #f1faf5; }
.risk-operational-status.is-warning { color: #7a5417; border-color: #efd397; background: #fff9ed; }
.risk-operational-status > span { display: grid; width: 2.15rem; height: 2.15rem; flex: none; place-items: center; border-radius: 8px; background: rgb(255 255 255 / 70%); }
.risk-operational-status .icon { width: 1.1rem; height: 1.1rem; }
.risk-operational-status strong { display: block; font-size: .82rem; }
.risk-operational-status p { margin: .28rem 0 0; font-size: .7rem; line-height: 1.45; }
.risk-quick-actions { display: grid; gap: .45rem; margin-top: .9rem; }
.risk-quick-actions > a { display: grid; grid-template-columns: 2.35rem minmax(0, 1fr) auto; min-height: 3.8rem; gap: .7rem; padding: .65rem .75rem; align-items: center; color: #26435f; border: 1px solid #dbe5ee; border-radius: 10px; background: #fbfdff; text-decoration: none; }
.risk-quick-actions > a:hover { color: var(--color-brand-800); border-color: var(--color-brand-200); background: var(--color-brand-50); }
.risk-quick-actions > a:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.risk-quick-actions > a > span:first-child { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border-radius: 8px; color: var(--color-brand-700); background: var(--color-brand-50); }
.risk-quick-actions > a > span:nth-child(2) { display: grid; min-width: 0; }
.risk-quick-actions strong { font-size: .78rem; }
.risk-quick-actions small { margin-top: .12rem; color: #7a8999; font-size: .66rem; }
.risk-quick-actions .icon { width: 1rem; height: 1rem; }
.risk-quick-actions > a > .icon { color: #8ca0b2; }
.risk-month-summary-card { display: grid; align-content: start; }
.risk-month-comparison { display: grid; grid-template-columns: 1fr auto 1fr; gap: .75rem; align-items: center; }
.risk-month-comparison > div { display: grid; min-height: 5.5rem; padding: .9rem; align-content: center; text-align: center; border: 1px solid #dbe5ee; border-radius: 10px; background: #f8fbfd; }
.risk-month-comparison small { color: #718095; font-size: .68rem; }
.risk-month-comparison strong { margin-top: .25rem; color: #17324e; font-size: 1.65rem; }
.risk-month-comparison > span { color: var(--color-brand-600); }
.risk-month-comparison > span .icon { width: 1rem; height: 1rem; }
.risk-month-summary-card > p { margin: .85rem 0 0; color: #718095; font-size: .7rem; line-height: 1.5; }
.risk-recent-card { margin-bottom: 0.9rem; }
.risk-table td small { display: block; margin-top: 0.2rem; color: #7a8999; }
.risk-empty, .risk-empty-compact { display: grid; justify-items: center; color: #728195; text-align: center; }
.risk-empty { padding: 3rem 1rem; }
.risk-empty .icon, .risk-empty-compact .icon { width: 2rem; height: 2rem; color: var(--color-brand-600); }
.risk-empty h3 { margin: 0.7rem 0 0.25rem; }
.risk-empty-compact { padding: 2rem 1rem; }
.risk-responsibility-note, .risk-pending-banner { display: flex; gap: 0.85rem; align-items: flex-start; padding: 0.9rem 1rem; border: 1px solid #d4e1ef; border-radius: 9px; color: #294763; background: #f8fbff; }
.risk-responsibility-note p, .risk-pending-banner p { margin: 0; font-size: 0.8rem; }
.risk-pending-banner { margin: 1.25rem 0; color: #72501b; border-color: #efd397; background: #fff9ed; }
.risk-pending-banner strong { display: block; margin-bottom: 0.25rem; }
.risk-upload-card { display: grid; max-width: 52rem; margin: 0 auto 1rem; justify-items: center; padding: 3rem; text-align: center; }
.risk-upload-icon { display: grid; width: 4rem; height: 4rem; margin-bottom: 1rem; place-items: center; border-radius: 50%; color: var(--color-brand-700); background: var(--color-brand-50); }
.risk-upload-icon .icon { width: 2rem; height: 2rem; }
.risk-filter-card { margin-bottom: 0.9rem; }
.risk-filter-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr auto; gap: 0.8rem; align-items: end; }
.risk-filter-grid > div { display: grid; gap: 0.35rem; }
.risk-filter-grid label { color: #40546a; font-size: 0.72rem; font-weight: 650; }
.risk-filter-grid input:not([type="submit"]), .risk-filter-grid select { min-height: 2.6rem; padding: 0.6rem 0.7rem; border: 1px solid #ccd8e4; border-radius: 7px; color: #17324e; background: #fff; }
.risk-filter-actions { display: flex !important; grid-template-columns: 1fr 1fr; }
.risk-consultation-page .breadcrumb, .risk-consultation-page .consultation-flow { display: none; }
.risk-consultation-page .interior-header { margin-bottom: 0.8rem; }
.risk-consultation-page .interior-header h1 { font-size: 1.85rem; }
.risk-consultation-page .interior-header h1::after { display: block; width: 2rem; height: 3px; margin-top: 0.75rem; background: var(--color-brand-700); content: ""; }
.risk-consultation-page .eyebrow { display: none; }
.risk-consultation-page .surface { border: 1px solid #d6e0ea; border-radius: 10px; box-shadow: none; }
.risk-consultation-page .search-surface { margin-bottom: 0.8rem; }
.risk-consultation-page .applicant-search-grid { grid-template-columns: 1fr 1fr; }
.risk-section-title { display: flex; gap: 0.65rem; align-items: center; margin-bottom: 0.6rem; }
.risk-section-title h2 { margin: 0; color: #17324e; font-size: 1.05rem; }
.risk-analysis-grid { display: grid; grid-template-columns: 15rem minmax(0, 1fr) 17rem; gap: 0.7rem; }
.risk-analysis-grid > *, .risk-analysis-statuses article { padding: 1rem; border: 1px solid #d6e0ea; border-radius: 9px; background: #fff; }
.risk-score-placeholder { display: grid; min-height: 17rem; justify-items: center; align-content: center; text-align: center; }
.risk-score-ring { --score-color: var(--color-brand-700); position: relative; display: grid; width: 9.5rem; height: 9.5rem; margin: 0 auto; place-items: center; }
.risk-score-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.risk-score-ring circle { fill: none; stroke-width: 12; }
.risk-score-track { stroke: var(--color-border); }
.risk-score-progress { stroke: var(--score-color); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: calc(100 - var(--score-progress)); animation: score-ring-enter 850ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.risk-score-ring strong { position: relative; color: var(--score-color); font-size: 2.35rem; line-height: 1; animation: score-value-enter 500ms ease-out both; }
.risk-score-ring.is-danger { --score-color: #c5303f; }
.risk-score-ring.is-high { --score-color: #d65a1f; }
.risk-score-ring.is-warning { --score-color: #d28a00; }
.risk-score-ring.is-info { --score-color: #1479a0; }
.risk-score-ring.is-success { --score-color: #16844c; }
.risk-score-placeholder span { margin: 0.7rem 0; color: #8a5a00; font-weight: 700; }
.risk-score-placeholder p { margin: 0; color: #718095; font-size: 0.75rem; }
.score-coverage { display: grid; width: 100%; gap: 0.3rem; margin: 0.75rem 0; text-align: left; }
.score-coverage > span { display: flex; justify-content: space-between; margin: 0; color: var(--color-muted); font-size: 0.72rem; }
.score-coverage > span strong { color: var(--color-ink); }
.score-coverage > i { display: block; height: 0.45rem; overflow: hidden; border-radius: 999px; background: var(--color-border); }
.score-coverage > i span { display: block; width: var(--coverage-progress); height: 100%; margin: 0; border-radius: inherit; background: var(--color-brand-600); transform-origin: left; animation: score-coverage-enter 700ms ease-out both; }
.score-policy-warning { padding: 0.55rem 0.65rem; border: 1px solid #efc46f; border-radius: 0.5rem; color: #7b4d00 !important; background: #fff8e8; font-weight: 750; }
.score-coverage-checklist { display: grid; gap: 0.8rem; margin-bottom: 0.7rem; }
.score-checklist-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; }
.score-checklist-summary > div { display: grid; gap: 0.2rem; padding: 0.8rem 1rem; }
.score-checklist-summary > div + div { border-left: 1px solid var(--color-border); }
.score-checklist-summary dt { color: var(--color-muted); font-size: 0.72rem; font-weight: 750; }
.score-checklist-summary dd { margin: 0; color: var(--color-ink); font-size: 1.2rem; font-weight: 850; font-variant-numeric: tabular-nums; }
.score-checklist-definition { margin: 0; color: var(--color-muted); font-size: 0.78rem; }
.score-checklist-complete { display: flex; gap: 0.65rem; align-items: flex-start; padding: 0.75rem 0.85rem; color: #126b3e; border: 1px solid #9bd8b5; border-radius: var(--radius-md); background: #f0faf4; }
.score-checklist-complete .icon { width: 1.2rem; height: 1.2rem; flex: none; margin-top: 0.05rem; }
.score-checklist-complete p { margin: 0; color: inherit; }
.score-checklist-table { width: 100%; min-width: 0; table-layout: fixed; }
.score-checklist-table th:nth-child(1) { width: 20%; }
.score-checklist-table th:nth-child(2) { width: 14%; }
.score-checklist-table th:nth-child(3) { width: 22%; }
.score-checklist-table th:nth-child(4) { width: 30%; }
.score-checklist-table th:nth-child(5) { width: 14%; }
.score-checklist-table th, .score-checklist-table td { overflow-wrap: anywhere; }
.score-checklist-table th:nth-child(2), .score-checklist-table td:nth-child(2) { text-align: right; }
.score-checklist-table td:nth-child(4) { color: var(--color-muted); }
.score-checklist-table .status-badge { white-space: normal; text-align: left; }
.score-checklist-action { min-height: 2.4rem; padding: 0.45rem 0.65rem; }

@media (max-width: 700px) {
  .score-checklist-table th, .score-checklist-table td { width: 100%; }
  .score-checklist-table td:nth-child(2) { text-align: left; }
}

@keyframes score-ring-enter {
  from { stroke-dashoffset: 100; }
}

@keyframes score-value-enter {
  from { opacity: 0; transform: scale(0.82); }
}

@keyframes score-coverage-enter {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  .risk-score-progress, .risk-score-ring strong, .score-coverage > i span { animation: none; }
}
.risk-analysis-main { display: grid; min-width: 0; gap: 0.7rem; padding: 0; border: 0; background: transparent; }
.risk-analysis-statuses { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; }
.risk-analysis-statuses article { display: grid; gap: 0.5rem; align-content: start; justify-items: start; color: var(--color-brand-700); }
.risk-analysis-statuses article .icon { display: grid; width: 2rem; height: 2rem; flex: none; place-items: center; padding: 0.4rem; border-radius: 8px; background: #eaf4ff; }
.risk-analysis-statuses span { display: grid; min-width: 0; }
.risk-analysis-statuses strong, .risk-analysis-statuses small { overflow-wrap: anywhere; }
.risk-prequalification-form { display: grid; gap: 0.85rem; }
.professional-report { display: grid; gap: 0.8rem; }
.report-document-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.85rem; align-items: center; padding-bottom: 0.75rem; border-bottom: 1px solid var(--color-border); }
.report-document-mark { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; color: var(--color-brand-800); background: var(--color-brand-50); border-radius: var(--radius-md); }
.report-document-mark .icon { width: 1.45rem; height: 1.45rem; }
.report-document-title { min-width: 0; }
.report-document-title .eyebrow { margin-bottom: 0.15rem; }
.report-document-title h2 { margin: 0; font-size: 1.2rem; }
.report-document-title > p:last-child { margin: 0.15rem 0 0; color: var(--color-muted); font-size: 0.82rem; line-height: 1.35; }
.report-document-meta { display: grid; grid-template-columns: minmax(16rem, 0.85fr) minmax(0, 2fr); align-items: stretch; border-bottom: 1px solid var(--color-border); }
.report-document-identity { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 0.65rem; align-items: center; padding: 0.65rem 1rem 0.65rem 0; border-right: 1px solid var(--color-border); }
.report-document-identity > span { color: var(--color-muted); font-size: 0.68rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; writing-mode: vertical-rl; transform: rotate(180deg); }
.report-document-identity > strong { color: var(--color-brand-900); font-family: var(--font-display); font-size: 1.75rem; line-height: 1; }
.report-document-identity div { display: grid; min-width: 0; gap: 0.12rem; }
.report-document-identity b, .report-document-identity small { overflow-wrap: anywhere; }
.report-document-identity small { color: var(--color-muted); }
.report-document-meta dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.report-document-meta dl > div { min-width: 0; padding: 0.65rem 0.8rem; border-right: 1px solid var(--color-border); }
.report-document-meta dl > div:last-child { border-right: 0; }
.report-document-meta dt { display: flex; gap: 0.35rem; align-items: center; color: var(--color-muted); font-size: 0.68rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; }
.report-document-meta dt .icon { width: 0.85rem; height: 0.85rem; color: var(--color-brand-700); }
.report-document-meta dd { margin: 0.22rem 0 0; font-size: 0.84rem; font-weight: 750; overflow-wrap: anywhere; }
.report-document-scope { display: flex; gap: 0.65rem; align-items: flex-start; padding: 0.55rem 0.75rem; color: var(--color-brand-950); background: linear-gradient(90deg, var(--color-brand-50), transparent); border-left: 3px solid var(--color-brand-600); }
.report-document-scope > .icon { width: 1rem; height: 1rem; flex: none; margin-top: 0.12rem; color: var(--color-brand-700); }
.report-document-scope strong { font-size: 0.78rem; }
.report-document-scope p { margin: 0.08rem 0 0; color: var(--color-muted); font-size: 0.76rem; line-height: 1.4; }
.report-analysis-grid { grid-template-columns: 15rem minmax(0, 1fr); align-items: start; }
.report-analysis-grid > .report-side-column { display: grid; min-width: 0; gap: .8rem; padding: 0; border: 0; background: transparent; }
.report-side-column > .report-score-status { position: static; padding: 1rem; border: 1px solid #d6e0ea; border-radius: 9px; background: #fff; }
.report-risk-score-gauge { width: min(100%, 230px); margin-top: 0; }
.report-score-status .report-risk-score-gauge span { margin: 0; }
.report-score-status .report-risk-score-gauge .phase-three-risk-gauge-value span { margin-top: 4px; }
.report-workflow-progress .wizard-flow-guide { position: static; top: auto; }
.report-component-explorer { display: grid; min-width: 0; gap: 1.25rem; }
.report-component-explorer .report-statuses {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1.25rem;
  position: relative;
  z-index: 1;
}
.report-statuses .report-status-card {
  appearance: none;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.7rem;
  min-width: 0;
  min-height: 9rem;
  padding: 1rem;
  align-content: center;
  align-items: start;
  justify-items: start;
  border: 1px solid var(--color-border);
  border-radius: 0.75rem;
  color: #66778b;
  background: #f5f7f9;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease, background 180ms ease;
}
.report-statuses .report-status-card:hover { border-color: var(--color-brand-400); transform: translateY(-2px); }
.report-statuses .report-status-card:focus-visible { outline: 3px solid var(--color-brand-200); outline-offset: 2px; }
.report-statuses .report-status-card.is-active {
  z-index: 2;
  border-color: var(--color-brand-600);
  border-bottom-color: var(--color-brand-600);
  color: var(--color-brand-800);
  background: var(--color-surface);
  box-shadow: 0 -3px 0 var(--color-brand-600), 0 8px 18px rgb(15 71 125 / 10%);
  transform: translateY(-2px);
}
.report-statuses .report-status-card > .icon {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  flex: none;
  margin-top: 0.1rem;
  padding: 0.5rem;
  place-items: center;
  border-radius: 0.65rem;
}
.report-statuses .report-status-card span { align-content: start; }
.report-statuses .report-status-card span > strong { color: currentcolor; font-size: 0.92rem; }
.report-statuses .report-status-card small { margin-top: 0.3rem; font-size: 0.86rem; line-height: 1.3; }
.report-component-panels {
  position: relative;
  margin-top: 0;
  border: 1px solid var(--color-brand-200);
  border-radius: 0.85rem;
  background: var(--color-surface);
}
.report-component-panel { padding: 1rem; animation: report-panel-enter 220ms ease-out both; }
.report-component-panel[hidden] { display: none; }
.report-component-panel > .risk-card { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.report-component-panel[data-component="compliance"]:not([hidden]) { display: grid; gap: 1.25rem; }
.report-component-panel[data-component="compliance"] > .compliance-source-card {
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-top-width: 4px;
  border-radius: 0.9rem;
  background: var(--color-surface);
}
.report-component-panel .report-ai-status { position: static; min-height: auto; }
.report-decision-panel { display: grid; gap: 1rem; }
.report-decision-form { padding-top: 1rem; border-top: 1px solid var(--color-border); }
.report-component-intro { min-height: 8rem; align-content: center; }

@keyframes report-panel-enter {
  from { opacity: 0; transform: translateY(0.4rem); }
  to { opacity: 1; transform: translateY(0); }
}

.report-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0;
}
.report-metric-grid > div {
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: 0.75rem;
  background: var(--color-canvas);
}
.report-metric-grid dt { color: var(--color-muted); font-size: 0.78rem; font-weight: 700; }
.report-metric-grid dd { margin: 0.3rem 0 0; font-size: 1.05rem; font-weight: 800; overflow-wrap: anywhere; }
.network-history-card { display: grid; gap: 1rem; }
.network-history-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.8rem;
  align-items: center;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--color-border);
}
.network-history-heading h3 { margin: 0; }
.network-history-heading p { margin: 0.2rem 0 0; color: var(--color-muted); font-size: 0.84rem; }
.network-history-heading-icon,
.network-history-metric-icon,
.network-history-status-icon {
  display: grid;
  place-items: center;
  border-radius: 0.8rem;
}
.network-history-heading-icon {
  width: 2.75rem;
  height: 2.75rem;
  color: var(--color-brand-700);
  background: var(--color-brand-50);
}
.network-history-heading-icon .icon { width: 1.35rem; height: 1.35rem; }
.network-history-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
}
.network-history-metric {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.75rem;
  min-width: 0;
  min-height: 7rem;
  padding: 1rem;
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 0.85rem;
  background: var(--color-surface);
  box-shadow: 0 8px 22px rgb(31 55 79 / 7%);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.network-history-metric::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0.25rem;
  background: var(--color-brand-500);
  content: "";
}
.network-history-card.has-history .network-history-metric.is-history::before,
.network-history-card.has-history .network-history-metric.is-active-credit::before,
.network-history-card.has-history .network-history-metric.is-classification::before { background: #d88a08; }
.network-history-metric:hover { border-color: var(--color-brand-300); box-shadow: 0 11px 26px rgb(31 55 79 / 11%); transform: translateY(-2px); }
.network-history-metric-icon {
  width: 2.6rem;
  height: 2.6rem;
  color: var(--color-brand-700);
  background: var(--color-brand-50);
}
.network-history-card.has-history .network-history-metric.is-history .network-history-metric-icon,
.network-history-card.has-history .network-history-metric.is-active-credit .network-history-metric-icon,
.network-history-card.has-history .network-history-metric.is-classification .network-history-metric-icon {
  color: #925800;
  background: #fff3d6;
}
.network-history-metric-icon .icon { width: 1.25rem; height: 1.25rem; }
.network-history-metric dt { color: var(--color-muted); font-size: 0.76rem; font-weight: 750; line-height: 1.3; }
.network-history-metric dd {
  margin: 0.32rem 0 0;
  color: var(--color-ink);
  font-size: clamp(1.05rem, 1.45vw, 1.45rem);
  font-weight: 850;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.network-history-metric.is-history dd,
.network-history-metric.is-active-credit dd { font-size: 1.75rem; font-variant-numeric: tabular-nums; }
.network-history-card.has-history .network-history-metric.is-classification dd { color: #925800; }
.network-history-status {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.8rem;
  padding: 0.9rem 1rem;
  align-items: center;
  border: 1px solid;
  border-radius: 0.85rem;
}
.network-history-status.is-warning { color: #744800; border-color: #efc66f; background: #fff8e8; }
.network-history-status.is-clear { color: #12683e; border-color: #9bd8b5; background: #f0faf4; }
.network-history-status-icon { width: 2.3rem; height: 2.3rem; color: currentcolor; background: rgb(255 255 255 / 76%); }
.network-history-status-icon .icon { width: 1.15rem; height: 1.15rem; }
.network-history-status strong { display: block; color: currentcolor; font-size: 0.88rem; }
.network-history-status p { margin: 0.2rem 0 0; color: var(--color-ink); font-size: 0.82rem; line-height: 1.45; }
.financial-visual { display: grid; gap: 0.7rem; margin-top: 1rem; padding: 0.9rem 1rem; border: 1px solid var(--color-border); border-radius: 0.75rem; background: var(--color-canvas); }
.financial-visual-row { display: grid; grid-template-columns: minmax(8.5rem, 0.35fr) minmax(10rem, 1fr); gap: 0.8rem; align-items: center; }
.financial-visual-row > span { display: flex; gap: 0.5rem; justify-content: space-between; align-items: baseline; color: var(--color-muted); font-size: 0.75rem; }
.financial-visual-row strong { color: var(--color-ink); font-variant-numeric: tabular-nums; }
.financial-visual-track { height: 0.7rem; overflow: hidden; border-radius: 999px; background: var(--color-border); }
.financial-visual-track i { display: block; width: var(--financial-progress); height: 100%; border-radius: inherit; transform-origin: left; animation: financial-bar-enter 550ms ease-out both; }
.financial-visual-track .is-expense { background: #e6a11a; }
.financial-visual-track .is-installment { background: var(--color-brand-600); }
.financial-visual-track .is-installment.is-critical { background: #c9362b; }
.financial-visual-track .is-available { background: #16844c; }
.financial-capacity-alert { display: flex; gap: .8rem; margin-top: 1rem; padding: .9rem 1rem; align-items: flex-start; color: #8f231b; border: 1px solid #edaaa4; border-radius: .75rem; background: #fff2f0; }
.financial-capacity-alert > span { flex: none; }
.financial-capacity-alert strong { color: #8f231b; }
.financial-capacity-alert p { margin: .2rem 0 0; color: #63241f; font-size: .84rem; line-height: 1.5; }
.standard-product-selector { margin: 1rem 0 1.5rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-canvas); }
.standard-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.standard-product-card { display: grid; gap: .75rem; align-content: start; }
.standard-product-card.is-enabled { border-color: #9bd8b5; background: #f4fbf7; }
.standard-product-card div { display: grid; gap: .3rem; }
.standard-product-card span:not(.status-badge) { color: var(--color-muted); font-size: .78rem; line-height: 1.4; }
.standard-product-card form { margin-top: auto; }

@media (max-width: 1050px) { .standard-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .standard-product-grid { grid-template-columns: 1fr; } }

@keyframes financial-bar-enter {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
.report-result-clear {
  margin: 0.8rem 0 0;
  padding: 0.8rem 1rem;
  border-radius: 0.75rem;
  background: var(--color-brand-50);
  color: var(--color-brand-900);
  font-weight: 700;
}
.local-watchlist-source-list { display: grid; gap: 0.65rem; margin: 1rem 0; padding: 0; list-style: none; }
.local-compliance-disclosure .local-watchlist-source-list { margin: 0; padding: 0.75rem; gap: 0.5rem; }
.local-compliance-disclosure .local-watchlist-source-item { padding: 0.65rem 0.75rem; }
.local-watchlist-source-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.75rem; min-width: 0; padding: 0.8rem 0.9rem; align-items: center; border: 1px solid var(--color-border); border-radius: 0.75rem; background: var(--color-canvas); }
.local-watchlist-source-item.is-clear { border-color: #9bd8b5; background: #f0faf4; }
.local-watchlist-source-item.is-warning { border-color: #efc66f; background: #fff8e8; }
.local-watchlist-source-icon { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 999px; color: #16844c; background: #fff; }
.local-watchlist-source-item.is-warning .local-watchlist-source-icon { color: #9a5a00; }
.local-watchlist-source-item > span:nth-child(2) { display: grid; min-width: 0; gap: 0.15rem; }
.local-watchlist-source-item strong { overflow-wrap: anywhere; }
.local-watchlist-source-item small { color: var(--color-muted); }
@media (max-width: 640px) {
  .local-watchlist-source-item { grid-template-columns: auto minmax(0, 1fr); }
  .local-watchlist-source-item .status-badge { grid-column: 2; justify-self: start; white-space: normal; }
}
.metamap-result-summary { display: grid; gap: 1rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.metamap-result-summary .risk-card-heading { align-items: end; }
.metamap-result-summary .risk-card-heading small { color: var(--color-muted); white-space: nowrap; }
.metamap-result-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.metamap-result-item.is-success { border-color: #9bd8b5; background: #f0faf4; }
.metamap-result-item.is-success dd { color: #16844c; }
.metamap-result-item.is-warning { border-color: #efc66f; background: #fff8e8; }
.metamap-result-item.is-warning dd { color: #9a5a00; }
.metamap-result-item.is-danger { border-color: #efb3b3; background: #fff3f3; }
.metamap-result-item.is-danger dd { color: #b4232f; }
.identity-verification { display: grid; gap: 1.25rem; }
.identity-verification-heading { padding-bottom: 1rem; border-bottom: 1px solid var(--color-border); }
.section-eyebrow { display: block; margin-bottom: 0.35rem; color: var(--color-brand-700); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.09em; text-transform: uppercase; }
.identity-verification-status { display: grid; grid-template-columns: minmax(16rem, 1.2fr) minmax(28rem, 2fr); gap: 1rem; padding: 1.15rem; border: 1px solid var(--color-border); border-left: 4px solid var(--color-brand-600); border-radius: 0.9rem; background: linear-gradient(120deg, var(--color-brand-50), var(--color-surface) 62%); }
.identity-verification-status > div { display: grid; align-content: center; gap: 0.2rem; }
.identity-verification-status small, .identity-verification-status span, .identity-verification-status dt { color: var(--color-muted); }
.identity-verification-status strong { font-size: 1.15rem; }
.identity-verification-status dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.identity-verification-status dl div { padding: 0.35rem 0.85rem; border-left: 1px solid var(--color-border); }
.identity-verification-status dt { margin-bottom: 0.25rem; font-size: 0.72rem; font-weight: 750; text-transform: uppercase; }
.identity-verification-status dd { margin: 0; font-weight: 750; overflow-wrap: anywhere; }
.identity-verification-status.is-warning { border-left-color: #d98400; background: linear-gradient(120deg, #fff8e8, var(--color-surface) 62%); }
.identity-verification-status.is-danger { border-left-color: var(--color-danger); background: linear-gradient(120deg, #fff3f3, var(--color-surface) 62%); }
.identity-result-grid { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); margin: 0; }
.identity-detail-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.75fr); gap: 1rem; align-items: start; }
.identity-detail-panel { min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: 0.9rem; background: var(--color-surface); }
.identity-panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 0.85rem; }
.identity-panel-heading h4 { margin: 0.15rem 0 0; font-size: 1rem; }
.identity-panel-heading small, .identity-panel-heading p { color: var(--color-muted); }
.identity-panel-heading p { margin: 0.25rem 0 0; }
.identity-data-table td:first-child { color: var(--color-muted); width: 42%; }
.identity-check-list { display: grid; gap: 0.55rem; }
.identity-check-row { display: grid; grid-template-columns: 1.8rem 1fr; gap: 0.65rem; align-items: start; padding: 0.72rem; border-radius: 0.7rem; background: var(--color-canvas); }
.identity-check-row > span { display: grid; width: 1.55rem; height: 1.55rem; place-items: center; border: 1px solid var(--color-border); border-radius: 50%; color: var(--color-muted); font-weight: 900; }
.identity-check-row div { display: grid; gap: 0.15rem; }
.identity-check-row small { color: var(--color-muted); }
.identity-check-row.is-success > span { color: #16844c; border-color: #9bd8b5; background: #f0faf4; }
.identity-check-row.is-warning > span { color: #9a5a00; border-color: #efc66f; background: #fff8e8; }
.identity-check-row.is-danger > span { color: #b4232f; border-color: #efb3b3; background: #fff3f3; }
.compliance-aml-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.65rem; margin: 0; }
.compliance-aml-summary div { padding: 0.75rem; border-radius: 0.7rem; background: var(--color-canvas); }
.compliance-aml-summary dt { color: var(--color-muted); font-size: 0.75rem; }
.compliance-aml-summary dd { margin: 0.2rem 0 0; font-weight: 750; }
.identity-document-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin-bottom: 1rem; }
.identity-document-gallery figure { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 0.8rem; background: var(--color-canvas); }
.identity-document-gallery img { display: block; width: 100%; aspect-ratio: 1.45 / 1; object-fit: contain; background: #eef1f4; }
.identity-document-gallery figcaption { display: grid; gap: 0.12rem; padding: 0.65rem 0.75rem; }
.identity-document-gallery figcaption strong { font-size: 0.8rem; }
.identity-document-gallery figcaption small { color: var(--color-muted); font-size: 0.7rem; }
.identity-document-upload { display: grid; gap: 1rem; margin-top: 1rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: 0.9rem; background: var(--color-canvas); }
.identity-document-upload.is-direct { border-color: var(--color-brand-300); box-shadow: inset 3px 0 0 var(--color-brand-600); }
.identity-document-upload .identity-panel-heading { margin-bottom: 0; }
.identity-document-upload .identity-panel-heading p { margin: 0.35rem 0 0; color: var(--color-muted); }
.identity-document-upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.identity-document-upload-grid label { display: block; margin-bottom: 0.4rem; font-size: 0.82rem; font-weight: 750; }
.identity-document-upload-grid input { width: 100%; min-width: 0; }
.compliance-source-card { display: grid; gap: 1rem; }
.compliance-source-card.is-local { border-top: 4px solid var(--color-brand-600); }
.compliance-source-card.is-external { border-top: 4px solid #267f63; }
.report-component-panel[data-component="compliance"] > .compliance-source-card.is-local { border-top-color: var(--color-brand-600); }
.report-component-panel[data-component="compliance"] > .compliance-source-card.is-external { border-top-color: #267f63; }
.compliance-source-heading { align-items: center; }
.compliance-source-heading .status-badge { flex: 0 0 auto; }
.compliance-result-banner { display: grid; grid-template-columns: 2rem 1fr; gap: 0.75rem; align-items: start; padding: 0.9rem 1rem; border-radius: 0.8rem; }
.compliance-result-banner > span { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; }
.compliance-result-banner strong { display: block; margin-bottom: 0.2rem; }
.compliance-result-banner p { margin: 0; }
.compliance-result-banner.is-clear { color: #126b3e; background: #f0faf4; border: 1px solid #9bd8b5; }
.compliance-result-banner.is-warning { color: #7a4600; background: #fff8e8; border: 1px solid #efc66f; }
.compliance-watchlist-disclosure { overflow: hidden; border: 1px solid var(--color-border); border-radius: 0.75rem; background: var(--color-canvas); }
.compliance-watchlist-disclosure summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem 1rem; cursor: pointer; font-weight: 800; list-style-position: inside; transition: color 160ms ease, background-color 160ms ease; }
.compliance-watchlist-disclosure summary:hover { background: var(--color-brand-50); }
.compliance-watchlist-disclosure summary:focus-visible { outline: 3px solid var(--color-brand-200); outline-offset: -3px; }
.compliance-watchlist-disclosure summary small { min-width: 0; color: var(--color-muted); font-weight: 650; text-align: right; overflow-wrap: anywhere; }
.compliance-watchlist-disclosure[open] summary { border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.compliance-watchlist-disclosure .table-scroll { margin: 0; }
.compliance-watchlist-table td:first-child { min-width: 16rem; }
.identity-technical-action { padding: 0.8rem 1rem; border: 1px solid var(--color-border); border-radius: 0.75rem; background: var(--color-canvas); }
.identity-technical-action summary { cursor: pointer; font-weight: 750; }
.identity-technical-action > p { color: var(--color-muted); }
.report-statuses .report-status-card .icon { color: #66778b; background: #e6eaee; }
.report-statuses .report-status-card small { color: #3f4f60; font-weight: 800; }
.report-statuses .report-status-card p { margin: 0.4rem 0 0; color: #66778b; font-size: 0.72rem; line-height: 1.4; }
.report-statuses .report-status-card.is-success { border-color: #9bd8b5; color: #16844c; background: #f0faf4; }
.report-statuses .report-status-card.is-success .icon { color: #16844c; background: #dff4e8; }
.report-statuses .report-status-card.is-success small { color: #126b3e; }
.report-statuses .report-status-card.is-warning { border-color: #efc66f; color: #9a5a00; background: #fff8e8; }
.report-statuses .report-status-card.is-warning .icon { color: #a86200; background: #ffedbf; }
.report-statuses .report-status-card.is-warning small { color: #7a4600; }
.report-statuses .report-status-card.is-danger { border-color: #efb3b3; color: #b4232f; background: #fff3f3; }
.report-statuses .report-status-card.is-danger .icon { color: #b4232f; background: #fde1e1; }
.report-statuses .report-status-card.is-danger small { color: #921d27; }
.report-statuses .report-status-card.is-active,
.report-statuses .report-status-card.is-success.is-active,
.report-statuses .report-status-card.is-warning.is-active,
.report-statuses .report-status-card.is-danger.is-active {
  border-color: var(--color-brand-600);
  border-bottom-color: var(--color-brand-600);
  color: var(--color-brand-800);
  background: var(--color-surface);
}
.report-score-status, .report-ai-status { position: sticky; top: 5.5rem; }
.report-data-table td:nth-child(2) { font-variant-numeric: tabular-nums; }
.report-conclusion { border-left: 4px solid var(--color-warning); }
.report-conclusion h3, .report-ai-status h3 { display: flex; align-items: center; gap: 0.5rem; }
.report-ai-status { display: grid; gap: 0.75rem; }
.report-ai-status small { color: var(--color-muted); overflow-wrap: anywhere; }
.ai-observation-heading { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem; align-items: center; }
.ai-observation-heading h3, .ai-observation-heading p { margin: 0; }
.ai-observation-heading h3 { color: #0f1f3d; font-size: 1.3rem; }
.ai-observation-heading > div > p:last-child { margin-top: .3rem; color: #64748b; line-height: 1.45; }
.ai-observation-mark { display: grid; width: 3rem; height: 3rem; place-items: center; color: #fff; border-radius: .9rem; background: linear-gradient(145deg, #1769e0, #6e4ee8); box-shadow: 0 8px 20px rgb(23 105 224 / 20%); }
.ai-observation-mark .icon { width: 1.45rem; height: 1.45rem; }
.ai-observation-meta { display: flex; gap: .75rem; align-items: center; justify-content: space-between; padding: .7rem .85rem; border: 1px solid #e0e7f1; border-radius: .75rem; background: #f8fafc; }
.ai-observation-meta > span:last-child { display: flex; gap: .35rem; align-items: baseline; }
.ai-privacy-callout { margin: 0; padding-block: .7rem; }
.ai-executive-summary { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem; padding: 1.15rem; border: 1px solid #bdd4f5; border-radius: .9rem; background: linear-gradient(120deg, #edf5ff, #f7fbff 62%, #f0fbf8); }
.ai-executive-summary > span { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; color: #1769e0; border-radius: .75rem; background: #fff; box-shadow: 0 6px 16px rgb(23 105 224 / 10%); }
.ai-executive-summary .icon { width: 1.35rem; height: 1.35rem; }
.ai-executive-summary h4, .ai-executive-summary p { margin: 0; }
.ai-executive-summary h4 { color: #0f1f3d; font-size: 1.1rem; }
.ai-executive-summary div > p:last-child { margin-top: .4rem; color: #40536b; font-size: .95rem; line-height: 1.55; }
.ai-insight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.ai-insight-card { min-width: 0; padding: 1rem; border: 1px solid #dce3ed; border-top-width: 4px; border-radius: .85rem; background: #fff; }
.ai-insight-card.is-success { border-top-color: #15905b; }
.ai-insight-card.is-warning { border-top-color: #d58b0d; }
.ai-insight-card.is-info { border-top-color: #1769e0; }
.ai-insight-card.is-neutral { border-top-color: #718096; }
.ai-insight-card header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .65rem; align-items: center; }
.ai-insight-card header > span { display: grid; width: 2rem; height: 2rem; place-items: center; color: #1769e0; border-radius: .6rem; background: #edf4ff; }
.ai-insight-card.is-success header > span { color: #087a42; background: #e8f8ef; }
.ai-insight-card.is-warning header > span { color: #a86200; background: #fff2d1; }
.ai-insight-card.is-neutral header > span { color: #526175; background: #eef1f5; }
.ai-insight-card header .icon { width: 1.05rem; height: 1.05rem; }
.ai-insight-card h4 { margin: 0; color: #17213b; font-size: .95rem; }
.ai-insight-card header b { display: grid; width: 1.75rem; height: 1.75rem; place-items: center; color: #1769e0; border-radius: 50%; background: #edf4ff; font-size: .78rem; }
.ai-insight-card ul, .ai-human-review ul { display: grid; gap: .45rem; margin: .8rem 0 0; padding-left: 1.15rem; color: #475569; line-height: 1.45; }
.ai-insight-empty { margin: .8rem 0 0; color: #64748b; line-height: 1.45; }
.ai-human-review { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem; padding: 1rem 1.1rem; border: 1px solid #d8cff7; border-radius: .9rem; background: linear-gradient(120deg, #f7f3ff, #fff); }
.ai-human-review > span { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; color: #6543d8; border-radius: .75rem; background: #fff; }
.ai-human-review h4, .ai-human-review p { margin: 0; }
.ai-human-review h4 { color: #24184f; font-size: 1.05rem; }
.ai-human-review div > p:last-child { margin-top: .4rem; color: #5b5473; }
.ai-analysis-scope { display: flex; gap: .7rem; padding-top: .85rem; align-items: center; color: #526175; border-top: 1px solid #e2e8f0; }
.ai-analysis-scope > .icon { width: 1.2rem; height: 1.2rem; color: #1769e0; }
.ai-analysis-scope span { display: grid; gap: .15rem; }
.ai-analysis-scope strong { color: #31405b; font-size: .82rem; }
.ai-value-preview { padding: 1rem; border: 1px dashed #a9c8f4; border-radius: .85rem; background: #f7fbff; }
.ai-value-preview > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: .75rem; }
.ai-value-preview span { display: flex; gap: .45rem; align-items: center; color: #31405b; font-size: .82rem; font-weight: 750; }
.ai-value-preview span .icon { width: 1rem; height: 1rem; color: #1769e0; }
.ai-value-preview p { margin: .8rem 0 0; color: #64748b; font-size: .82rem; }
.ai-inline-loader { display: flex; gap: 0.75rem; align-items: center; width: 100%; padding: 0.9rem; color: var(--color-brand-900); background: var(--color-brand-50); border: 1px solid var(--color-brand-200); border-radius: var(--radius-md); }
.ai-inline-loader p { margin: 0.2rem 0 0; }

@media (prefers-reduced-motion: reduce) {
  .report-statuses .report-status-card, .network-history-metric { transition: none; }
  .report-component-panel, .financial-visual-track i { animation: none; }
  .compliance-watchlist-disclosure summary { transition: none; }
}

@media (max-width: 768px) {
  .metamap-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metamap-result-summary .risk-card-heading { align-items: start; }
  .identity-verification-status, .identity-detail-layout,
  .identity-document-upload-grid, .identity-document-gallery { grid-template-columns: 1fr; }
  .identity-verification-status dl, .compliance-aml-summary { grid-template-columns: 1fr; }
  .identity-verification-status dl div { border-top: 1px solid var(--color-border); border-left: 0; }
  .compliance-source-heading { align-items: start; }
  .compliance-source-heading .status-badge { white-space: normal; }
  .compliance-watchlist-disclosure summary { display: grid; gap: 0.35rem; }
  .compliance-watchlist-disclosure summary small { text-align: left; }
}

@media (max-width: 900px) {
  .report-document-meta { grid-template-columns: 1fr; }
  .report-document-identity { border-right: 0; }
  .report-document-meta dl { border-top: 1px solid var(--color-border); }
  .report-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .network-history-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-score-status, .report-ai-status { position: static; }
  .report-component-explorer .report-statuses {
    grid-template-columns: repeat(6, minmax(13rem, 1fr));
    overflow-x: auto;
    padding: 0.2rem 0.1rem 0.65rem;
    scroll-snap-type: x proximity;
  }
  .report-statuses .report-status-card { min-height: 8rem; border-radius: 0.75rem; scroll-snap-align: start; }
  .report-statuses .report-status-card.is-active { border-bottom-color: var(--color-brand-600); }
}

@media (max-width: 560px) {
  .report-document-header { grid-template-columns: auto minmax(0, 1fr); }
  .report-document-header > .status-badge { grid-column: 1 / -1; justify-self: start; }
  .report-document-meta dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-document-meta dl > div:nth-child(2) { border-right: 0; }
  .report-document-meta dl > div:nth-child(-n+2) { border-bottom: 1px solid var(--color-border); }
  .report-metric-grid { grid-template-columns: 1fr; }
  .score-checklist-summary { grid-template-columns: 1fr; }
  .score-checklist-summary > div + div { border-top: 1px solid var(--color-border); border-left: 0; }
  .network-history-heading { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .network-history-heading .status-badge { grid-column: 2; justify-self: start; }
  .network-history-grid { grid-template-columns: 1fr; }
  .network-history-metric { min-height: 5.8rem; }
  .financial-visual-row { grid-template-columns: 1fr; gap: 0.35rem; }
}
.technical-reference { overflow-wrap: anywhere; word-break: break-word; }
.risk-form-section { padding: 1.25rem; }
.risk-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.risk-form-grid > div { display: grid; min-width: 0; gap: 0.4rem; }
.risk-form-grid label, .risk-product-questions legend { color: #243b55; font-size: 0.75rem; font-weight: 700; }
.risk-form-grid input:not([type="checkbox"]):not([type="radio"]), .risk-form-grid select, .risk-form-grid textarea { width: 100%; min-height: 2.75rem; padding: 0.65rem 0.75rem; border: 1px solid #cbd7e3; border-radius: 7px; color: #132b45; background: #fff; }
.risk-automatic-date { align-content: center; padding: .65rem .75rem; border: 1px solid #d6e0ea; border-radius: 7px; background: #f7fafc; }
.risk-automatic-date span { color: #243b55; font-size: .75rem; font-weight: 700; }
.risk-automatic-date small { color: #6b7d90; line-height: 1.35; }
.risk-automatic-date strong { color: var(--color-brand-800); font-size: .9rem; }
.risk-field-wide { grid-column: span 2; }
.risk-input-wrap { position: relative; }
.risk-input-wrap input, .risk-input-wrap select { padding-right: 2.5rem !important; }
.risk-input-icon { position: absolute; top: 50%; right: 0.75rem; display: grid; color: #96a7ba; transform: translateY(-50%); pointer-events: none; }
.risk-input-icon .icon { width: 1.05rem; height: 1.05rem; }
.risk-card-heading .icon { flex: none; width: 1.15rem; height: 1.15rem; margin-top: 0.15rem; color: var(--color-brand-700); }
.risk-card-heading-icon { display: flex; gap: 0.6rem; }
.risk-product-questions { min-width: 0; margin: 0; padding: 0; border: 0; }
.risk-product-questions legend { margin-bottom: 1rem; color: var(--color-brand-800); font-size: 0.85rem; }
.risk-option-list { display: flex !important; flex-wrap: wrap; gap: 0.6rem; }
.risk-option-list label { display: flex; gap: 0.45rem; align-items: center; min-height: 2.6rem; padding: 0.55rem 0.7rem; border: 1px solid #d6e0ea; border-radius: 7px; background: #f9fbfd; }
.risk-form-footer { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 0.9rem 1rem; border: 1px solid #d4e1ef; border-radius: 9px; background: #fff; }
.risk-form-footer > p { display: flex; gap: 0.6rem; align-items: center; margin: 0; color: #51667c; font-size: 0.78rem; }
.risk-form-footer > div { display: flex; gap: 0.7rem; }
.risk-analysis-statuses small { margin-top: 0.2rem; color: #718095; }
.risk-recommendation-placeholder h3, .risk-ai-placeholder h3 { display: flex; gap: 0.5rem; align-items: center; margin: 0 0 0.8rem; }
.risk-recommendation-placeholder h3 .icon, .risk-ai-placeholder h3 .icon { width: 1.1rem; height: 1.1rem; color: var(--color-brand-700); }
.risk-recommendation-placeholder strong { display: block; padding: 0.8rem; color: #895500; border: 1px solid #efd397; border-radius: 7px; background: #fff9ed; }
.risk-recommendation-placeholder p, .risk-ai-placeholder p { color: #718095; font-size: 0.78rem; }
.risk-recommendation-actions { display: flex; gap: 0.6rem; margin-top: 1rem; }
.risk-recommendation-actions .button, .risk-recommendation-actions .button-link { flex: 1; }
.risk-ai-placeholder { display: grid; min-height: 17rem; justify-items: start; align-content: start; }
.risk-ai-placeholder-mark { display: grid; width: 2.6rem; height: 2.6rem; margin-bottom: 0.9rem; place-items: center; border-radius: 10px; color: var(--color-brand-700); background: var(--color-brand-50); }

@media (min-width: 769px) and (max-width: 1400px) {
  .risk-analysis-grid { grid-template-columns: 13rem minmax(0, 1fr) 14rem; }
  .risk-analysis-statuses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-analysis-grid { grid-template-columns: 12rem minmax(0, 1fr); }
  .report-component-explorer .report-statuses { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .report-statuses .report-status-card { gap: 0.45rem; min-height: 8.4rem; padding: 0.75rem; }
  .report-statuses .report-status-card > .icon { width: 2rem; height: 2rem; padding: 0.4rem; }
}

@media (max-width: 1050px) {
  .risk-home-phases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .risk-home-phase::after { display: none; }
  .risk-dashboard-overview { grid-template-columns: 1fr; }
  .risk-dashboard-overview .risk-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .risk-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .risk-dashboard-grid { grid-template-columns: 1fr; }
  .risk-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .risk-analysis-grid { grid-template-columns: 1fr; }
  .risk-analysis-statuses { grid-template-columns: 1fr; }
  .risk-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .risk-home-hero { grid-template-columns: 1fr; padding: 1.2rem; }
  .risk-home-hero h1 { font-size: 2rem; }
  .risk-home-actions { align-items: stretch; flex-direction: column; }
  .risk-home-actions .button-link { justify-content: center; width: 100%; }
  .risk-home-section-heading, .risk-home-final-cta { align-items: stretch; flex-direction: column; }
  .risk-home-council { align-items: flex-start; }
  .risk-home-phases { grid-template-columns: 1fr; }
  .risk-home-final-cta .button-link { justify-content: center; width: 100%; }
  .risk-home-footer-grid { gap: 1.15rem; }
  .risk-portal-page { padding: 1.2rem 1rem 2rem; }
  .risk-page-heading { align-items: stretch; flex-direction: column; }
  .risk-dashboard-heading-actions { align-items: stretch; flex-direction: column-reverse; }
  .risk-dashboard-heading-actions .button-link { justify-content: center; width: 100%; }
  .risk-dashboard-section-heading, .risk-chart-heading { align-items: stretch; flex-direction: column; }
  .risk-dashboard-date { width: fit-content; }
  .risk-kpi-grid, .risk-kpi-grid-small { grid-template-columns: 1fr; }
  .risk-dashboard-overview .risk-kpi-grid { grid-template-columns: 1fr; }
  .risk-bar-chart { grid-template-columns: repeat(var(--chart-columns, 12), minmax(2.5rem, 1fr)); gap: 0.25rem; overflow-x: auto; }
  .risk-period-filter { width: fit-content; }
  .risk-month-comparison { gap: .45rem; }
  .topbar-company { display: none; }
  .risk-filter-grid { grid-template-columns: 1fr; }
  .risk-form-grid { grid-template-columns: 1fr; }
  .risk-field-wide { grid-column: auto; }
  .risk-form-footer { align-items: stretch; flex-direction: column; }
  .risk-form-footer > div { display: grid; }
  .app-layout-portal .topbar { justify-content: space-between; padding: 0 1rem; }
  .app-layout-portal .topbar-profile-link { width: 2.5rem; min-width: 2.5rem; height: 2.5rem; padding: 0; justify-content: center; }
  .topbar-profile-link .topbar-user-copy { display: none; }
  .portal-agent-shell { right: .75rem; bottom: .75rem; }
  .portal-agent-panel { inset: 0 0 0 auto; width: min(100%, 30rem); height: 100dvh; border-radius: 0; }
  .portal-agent-page .portal-agent-source-list { grid-template-columns: 1fr; }
  .portal-agent-page .portal-agent-suggestions > div { grid-template-columns: 1fr; }
  .portal-agent-page .portal-agent-suggestions button { min-height: 3rem; }
}

/* Dark portal completion. Keep these rules after operational portal styles so
   later light component declarations cannot override the published mode. */
.portal-theme-dark .app-layout-portal .topbar {
  color: var(--color-ink);
  border-color: var(--color-border);
  background: rgb(17 24 39 / 96%);
}
.portal-theme-dark .topbar-company {
  color: var(--color-ink);
  border-color: var(--color-border);
  background: var(--color-surface);
}
.portal-theme-dark .topbar-divider { background: var(--color-border); }
.portal-theme-dark .notification-button,
.portal-theme-dark .app-layout-portal .topbar-profile-link { color: var(--color-ink); }
.portal-theme-dark .topbar-user-copy small { color: var(--color-muted); }

.portal-theme-dark .risk-portal-page {
  color: var(--color-ink);
  background: var(--color-canvas);
}
.portal-theme-dark .portal-agent-panel,
.portal-theme-dark .portal-agent-welcome,
.portal-theme-dark .portal-agent-message,
.portal-theme-dark .portal-agent-composer,
.portal-theme-dark .portal-agent-thinking,
.portal-theme-dark .portal-agent-suggestions button {
  color: var(--color-ink);
  border-color: var(--color-border);
  background: var(--color-surface);
}
.portal-theme-dark .portal-agent-body { background: var(--color-canvas); }
.portal-theme-dark .portal-agent-message--user { color: #fff; background: var(--color-brand-700); }
.portal-theme-dark .portal-agent-composer textarea { color: var(--color-ink); }
.portal-theme-dark .risk-page-heading p,
.portal-theme-dark .risk-dashboard-section-heading p,
.portal-theme-dark .risk-card-heading p,
.portal-theme-dark .risk-kpi small,
.portal-theme-dark .risk-kpi p,
.portal-theme-dark .risk-bar-column,
.portal-theme-dark .risk-ranking span small,
.portal-theme-dark .risk-table td small,
.portal-theme-dark .risk-empty,
.portal-theme-dark .risk-empty-compact,
.portal-theme-dark .risk-score-placeholder p,
.portal-theme-dark .risk-analysis-statuses small,
.portal-theme-dark .risk-recommendation-placeholder p,
.portal-theme-dark .risk-ai-placeholder p { color: var(--color-muted); }
.portal-theme-dark .risk-card,
.portal-theme-dark .risk-kpi,
.portal-theme-dark .risk-dashboard-overview,
.portal-theme-dark .risk-analysis-grid > *,
.portal-theme-dark .risk-analysis-statuses article {
  color: var(--color-ink);
  border-color: var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}
.portal-theme-dark .risk-card-heading h2,
.portal-theme-dark .risk-card-heading h3,
.portal-theme-dark .risk-dashboard-section-heading h2,
.portal-theme-dark .risk-section-title h2,
.portal-theme-dark .risk-kpi strong,
.portal-theme-dark .risk-score-ring strong,
.portal-theme-dark .risk-bar-value { color: var(--color-ink); }
.portal-theme-dark .risk-kpi > span,
.portal-theme-dark .risk-upload-icon,
.portal-theme-dark .risk-ai-placeholder-mark {
  color: var(--color-brand-200);
  background: var(--color-dark-info);
}
.portal-theme-dark .risk-analysis-grid > .risk-analysis-main {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.portal-theme-dark .report-analysis-grid > .report-side-column { padding: 0; border: 0; background: transparent; box-shadow: none; }
.portal-theme-dark .report-side-column > .report-score-status,
.portal-theme-dark .report-workflow-progress .wizard-flow-guide { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .score-checklist-complete {
  color: #9ee6bc;
  border-color: #286947;
  background: #102d20;
}
.portal-theme-dark .risk-bar-chart { border-color: var(--color-border); }
.portal-theme-dark .risk-chart-empty { border-color: var(--color-border); color: var(--color-text-muted); background: linear-gradient(135deg, var(--color-dark-card), var(--color-dark-info)); }
.portal-theme-dark .risk-chart-empty h3 { color: var(--color-text); }
.portal-theme-dark .risk-chart-empty-icon { color: var(--color-info); background: var(--color-dark-info); }
.portal-theme-dark .risk-dashboard-overview { background: linear-gradient(135deg, var(--color-surface), var(--color-dark-info)); }
.portal-theme-dark .risk-dashboard-date,
.portal-theme-dark .risk-period-filter,
.portal-theme-dark .risk-quick-actions > a,
.portal-theme-dark .risk-month-comparison > div { color: var(--color-ink); border-color: var(--color-border); background: var(--color-dark-raised); }
.portal-theme-dark .risk-period-option { color: var(--color-muted); }
.portal-theme-dark .risk-period-option:hover { color: #fff; background: rgb(255 255 255 / 7%); }
.portal-theme-dark .risk-period-option.is-active { color: #fff; background: var(--color-brand-700); }
.portal-theme-dark .risk-operational-status.is-clear { color: var(--color-dark-success-ink); border-color: #286947; background: var(--color-dark-success); }
.portal-theme-dark .risk-operational-status.is-warning { color: var(--color-dark-warning-ink); border-color: #6b5526; background: var(--color-dark-warning); }
.portal-theme-dark .risk-quick-actions small,
.portal-theme-dark .risk-month-comparison small,
.portal-theme-dark .risk-month-summary-card > p { color: var(--color-muted); }
.portal-theme-dark .risk-month-comparison strong { color: var(--color-ink); }
.portal-theme-dark .risk-card-total,
.portal-theme-dark .risk-quick-actions > a > span:first-child { color: var(--color-brand-200); background: var(--color-dark-info); }
.portal-theme-dark .risk-ranking i { background: var(--color-dark-raised); }
.portal-theme-dark .risk-responsibility-note {
  color: #c7ddf5;
  border-color: #315170;
  background: var(--color-dark-info);
}
.portal-theme-dark .risk-pending-banner,
.portal-theme-dark .risk-recommendation-placeholder strong {
  color: var(--color-dark-warning-ink);
  border-color: #6b5526;
  background: var(--color-dark-warning);
}
.portal-theme-dark .risk-filter-grid label { color: var(--color-muted); }
.portal-theme-dark .risk-filter-grid input:not([type="submit"]),
.portal-theme-dark .risk-filter-grid select,
.portal-theme-dark .risk-form-grid input:not([type="checkbox"]):not([type="radio"]),
.portal-theme-dark .risk-form-grid select,
.portal-theme-dark .risk-form-grid textarea {
  color: var(--color-ink);
  border-color: #475569;
  background: var(--color-dark-field);
}
.portal-theme-dark .risk-form-grid label,
.portal-theme-dark .risk-product-questions legend { color: var(--color-muted); }
.portal-theme-dark .risk-product-questions legend { color: var(--color-brand-200); }
.portal-theme-dark .risk-option-list label,
.portal-theme-dark .risk-form-footer {
  color: var(--color-ink);
  border-color: var(--color-border);
  background: var(--color-dark-raised);
}
.portal-theme-dark .risk-form-footer > p { color: var(--color-muted); }
.portal-theme-dark .risk-analysis-statuses article .icon {
  color: var(--color-brand-200);
  background: var(--color-dark-info);
}

.portal-theme-dark .info-callout {
  color: #c7ddf5;
  border-color: #315170;
  background: var(--color-dark-info);
}
.portal-theme-dark .info-callout strong { color: #dcecff; }
.portal-theme-dark .info-callout.warning,
.portal-theme-dark .one-time-secret {
  color: var(--color-dark-warning-ink);
  border-color: #6b5526;
  background: var(--color-dark-warning);
}
.portal-theme-dark .info-callout.warning strong { color: #ffe3a8; }
.portal-theme-dark .status-badge {
  color: #cbd5e1;
  background: var(--color-dark-raised);
}
.portal-theme-dark .status-badge.is-success {
  color: var(--color-dark-success-ink);
  background: var(--color-dark-success);
}
.portal-theme-dark .status-badge.is-warning {
  color: var(--color-dark-warning-ink);
  background: var(--color-dark-warning);
}
.portal-theme-dark .status-badge.is-danger {
  color: var(--color-dark-danger-ink);
  background: var(--color-dark-danger);
}
.portal-theme-dark .flash-notice {
  color: var(--color-dark-success-ink);
  border-color: #2c6a4a;
  background: var(--color-dark-success);
}
.portal-theme-dark .flash-alert {
  color: var(--color-dark-danger-ink);
  border-color: #743a47;
  background: var(--color-dark-danger);
}

.portal-theme-dark .professional-report,
.portal-theme-dark .report-document-header,
.portal-theme-dark .report-document-meta,
.portal-theme-dark .report-document-identity,
.portal-theme-dark .report-document-meta dl > div { border-color: var(--color-border); }
.portal-theme-dark .report-document-mark {
  color: var(--color-brand-200);
  background: var(--color-dark-info);
}
.portal-theme-dark .report-document-identity > strong { color: var(--color-brand-200); }
.portal-theme-dark .report-document-scope {
  color: #dcecff;
  background: linear-gradient(90deg, var(--color-dark-info), transparent);
}
.portal-theme-dark .report-result-clear,
.portal-theme-dark .ai-inline-loader {
  color: #dcecff;
  border-color: #315170;
  background: var(--color-dark-info);
}
.portal-theme-dark .metamap-result-item.is-success,
.portal-theme-dark .report-statuses .report-status-card.is-success {
  color: var(--color-dark-success-ink);
  border-color: #2c6a4a;
  background: var(--color-dark-success);
}
.portal-theme-dark .metamap-result-item.is-success dd,
.portal-theme-dark .report-statuses .report-status-card.is-success small { color: var(--color-dark-success-ink); }
.portal-theme-dark .metamap-result-item.is-warning,
.portal-theme-dark .report-statuses .report-status-card.is-warning {
  color: var(--color-dark-warning-ink);
  border-color: #6b5526;
  background: var(--color-dark-warning);
}
.portal-theme-dark .metamap-result-item.is-warning dd,
.portal-theme-dark .report-statuses .report-status-card.is-warning small { color: var(--color-dark-warning-ink); }
.portal-theme-dark .metamap-result-item.is-danger,
.portal-theme-dark .report-statuses .report-status-card.is-danger {
  color: var(--color-dark-danger-ink);
  border-color: #743a47;
  background: var(--color-dark-danger);
}
.portal-theme-dark .metamap-result-item.is-danger dd,
.portal-theme-dark .report-statuses .report-status-card.is-danger small { color: var(--color-dark-danger-ink); }
.portal-theme-dark .report-statuses .report-status-card {
  color: var(--color-muted);
  border-color: var(--color-border);
  background: var(--color-dark-raised);
}
.portal-theme-dark .report-statuses .report-status-card .icon {
  color: #cbd5e1;
  background: #29364a;
}
.portal-theme-dark .report-statuses .report-status-card small,
.portal-theme-dark .report-statuses .report-status-card p { color: var(--color-muted); }
.portal-theme-dark .report-statuses .report-status-card.is-success .icon {
  color: var(--color-dark-success-ink);
  background: #1d4935;
}
.portal-theme-dark .report-statuses .report-status-card.is-warning .icon {
  color: var(--color-dark-warning-ink);
  background: #55451f;
}
.portal-theme-dark .report-statuses .report-status-card.is-danger .icon {
  color: var(--color-dark-danger-ink);
  background: #522a34;
}
.portal-theme-dark .score-policy-warning {
  color: var(--color-dark-warning-ink) !important;
  border-color: #6b5526;
  background: var(--color-dark-warning);
}
.portal-theme-dark .risk-score-ring strong { color: var(--score-color); }
.portal-theme-dark .report-component-panels,
.portal-theme-dark .report-component-panel > .risk-card { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .report-component-panel[data-component="compliance"] > .compliance-source-card,
.portal-theme-dark .compliance-watchlist-disclosure {
  border-color: var(--color-border);
  background: var(--color-dark-raised);
}
.portal-theme-dark .compliance-watchlist-disclosure summary:hover,
.portal-theme-dark .compliance-watchlist-disclosure[open] summary { background: var(--color-surface); }
.portal-theme-dark .local-watchlist-source-item { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .local-watchlist-source-item.is-clear,
.portal-theme-dark .compliance-result-banner.is-clear {
  color: var(--color-dark-success-ink);
  border-color: #285b45;
  background: var(--color-dark-success);
}
.portal-theme-dark .local-watchlist-source-item.is-warning,
.portal-theme-dark .compliance-result-banner.is-warning {
  color: var(--color-dark-warning-ink);
  border-color: #6b5526;
  background: var(--color-dark-warning);
}
.portal-theme-dark .local-watchlist-source-icon { background: rgb(15 23 42 / 42%); }
.portal-theme-dark .local-watchlist-source-item small { color: var(--color-muted); }
.portal-theme-dark .financial-visual,
.portal-theme-dark .report-metric-grid > div { border-color: var(--color-border); background: var(--color-dark-raised); }
.portal-theme-dark .network-history-metric { border-color: var(--color-border); background: var(--color-dark-raised); box-shadow: none; }
.portal-theme-dark .network-history-heading-icon,
.portal-theme-dark .network-history-metric-icon { color: var(--color-brand-200); background: var(--color-dark-info); }
.portal-theme-dark .network-history-card.has-history .network-history-metric.is-history .network-history-metric-icon,
.portal-theme-dark .network-history-card.has-history .network-history-metric.is-active-credit .network-history-metric-icon,
.portal-theme-dark .network-history-card.has-history .network-history-metric.is-classification .network-history-metric-icon { color: var(--color-dark-warning-ink); background: var(--color-dark-warning); }
.portal-theme-dark .network-history-card.has-history .network-history-metric.is-classification dd { color: var(--color-dark-warning-ink); }
.portal-theme-dark .network-history-status.is-warning { color: var(--color-dark-warning-ink); border-color: #6b5526; background: var(--color-dark-warning); }
.portal-theme-dark .network-history-status.is-clear { color: var(--color-dark-success-ink); border-color: #285b45; background: var(--color-dark-success); }
.portal-theme-dark .network-history-status-icon { background: rgb(15 23 42 / 42%); }
.portal-theme-dark .report-statuses .report-status-card.is-active,
.portal-theme-dark .report-statuses .report-status-card.is-success.is-active,
.portal-theme-dark .report-statuses .report-status-card.is-warning.is-active,
.portal-theme-dark .report-statuses .report-status-card.is-danger.is-active {
  color: var(--color-brand-200);
  border-color: var(--color-brand-400);
  border-bottom-color: var(--color-surface);
  background: var(--color-surface);
}

.portal-theme-dark .confirmation-modal-card,
.portal-theme-dark .confirmation-modal-copy { color: var(--color-ink); }
.portal-theme-dark .confirmation-modal-icon {
  color: var(--color-brand-200);
  background: var(--color-dark-info);
}

/* Wizard comercial aprobado: progreso, saldo y agente local */
.workflow-progress { margin: 0 0 1.25rem; padding: 1rem 1.25rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); }
.workflow-progress ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.workflow-progress__step { display: flex; align-items: center; gap: .6rem; min-width: 0; color: var(--color-muted); }
.workflow-progress__step > span { display: grid; flex: 0 0 2rem; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-surface); }
.workflow-progress__step strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.workflow-progress__step.is-complete { color: var(--color-success, #087a42); }
.workflow-progress__step.is-complete > span { color: white; border-color: currentColor; background: currentColor; }
.agent-workspace { display: grid; grid-template-columns: minmax(14rem, .7fr) minmax(22rem, 1.6fr) minmax(14rem, .7fr); gap: 1rem; align-items: start; }
.agent-chat { min-height: 32rem; }
.agent-messages { display: grid; gap: .75rem; max-height: 32rem; margin: 1rem 0; overflow-y: auto; }
.agent-message { max-width: 85%; padding: .85rem 1rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface-subtle, #f6f8fb); }
.agent-message--user { justify-self: end; background: var(--color-brand-50); }
.agent-message p { margin: .3rem 0 0; white-space: pre-wrap; }
.agent-composer { display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: end; }
.portal-card--prominent { max-width: 48rem; margin: 3rem auto; padding: clamp(1.25rem, 4vw, 2.5rem); }
.form-actions--split { justify-content: space-between; }

@media (max-width: 768px) {
  .workflow-progress ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agent-workspace { grid-template-columns: 1fr; }
  .agent-chat { order: -1; min-height: 24rem; }
  .stack-form .form-grid { grid-template-columns: 1fr; }
  .stack-form .form-grid > div { min-width: 0; }
  .stack-form input[type="file"] { max-width: 100%; }
}

@media (max-width: 430px) {
  .workflow-progress { padding: .85rem; }
  .workflow-progress ol { grid-template-columns: 1fr; }
  .workflow-progress__step strong { white-space: normal; }
  .agent-composer { grid-template-columns: 1fr; }
  .agent-message { max-width: 95%; }
  .form-actions--split { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .workflow-progress *, .agent-workspace * { scroll-behavior: auto; transition: none !important; animation: none !important; }
}
/* Wizard de consulta: superficie independiente del expediente y del portal. */
.wizard-body { min-height: 100vh; display: flex; flex-direction: column; background: #fff; color: #091735; }
.wizard-topbar { min-height: 82px; padding: 0 34px; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: #fff; border-bottom: 1px solid #e5e9ef; box-shadow: 0 2px 8px rgb(15 31 61 / 3%); }
.wizard-brand { display: inline-flex; min-width: 0; align-items: center; gap: 12px; color: #091735; text-decoration: none; }
.wizard-brand:focus-visible { border-radius: 8px; outline: 3px solid var(--focus-ring); outline-offset: 5px; }
.wizard-company-logo { display: flex; width: min(220px, 34vw); height: 58px; align-items: center; }
.wizard-company-logo img { display: block; width: auto; max-width: 100%; max-height: 52px; object-fit: contain; }
.wizard-company-name { max-width: min(440px, 48vw); overflow: hidden; font-size: 1.72rem; font-weight: 780; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.wizard-topbar-actions { display: flex; align-items: center; gap: 24px; }
.wizard-case-link { min-height: 46px; gap: 8px; white-space: nowrap; }
.wizard-case-link .icon { width: 19px; height: 19px; }
.wizard-balance { min-width: 240px; min-height: 60px; padding: 8px 16px; display: flex; align-items: center; gap: 12px; color: inherit; border: 1px solid #bdebe4; border-radius: 12px; text-decoration: none; transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.wizard-balance:hover { color: inherit; border-color: #75d8c9; background: #f4fffc; box-shadow: 0 8px 20px rgb(0 118 101 / 10%); transform: translateY(-1px); }
.wizard-balance:focus-visible { outline: 3px solid rgb(0 151 130 / 24%); outline-offset: 3px; }
.wizard-balance-icon { width: 46px; height: 46px; display: grid; place-items: center; color: #00bea6; border: 1px solid #bdebe4; border-radius: 50%; }
.wizard-balance-icon svg { width: 25px; height: 25px; }
.wizard-balance > span:last-child { display: flex; flex-direction: column; color: #17213b; font-size: 1rem; line-height: 1.25; }
.wizard-balance strong { color: #091735; font-size: 1.32rem; }
.wizard-balance-suggestion { margin-top: 3px; color: #64748b; font-size: .72rem; font-weight: 650; }
.wizard-balance.is-low { border-color: #f3aaa5; background: #fff7f6; }
.wizard-balance.is-low:hover { border-color: #d92d20; background: #fff1f0; box-shadow: 0 8px 20px rgb(180 35 24 / 12%); }
.wizard-balance.is-low:focus-visible { outline-color: rgb(217 45 32 / 25%); }
.wizard-balance.is-low .wizard-balance-icon { color: #d92d20; border-color: #f3aaa5; background: #fff; }
.wizard-balance.is-low > span:last-child, .wizard-balance.is-low strong, .wizard-balance.is-low .wizard-balance-suggestion { color: #b42318; }
.wizard-page { width: min(100% - 32px, 1120px); margin: 0 auto; padding: 56px 0; flex: 1; }
.wizard-start-page { width: min(100% - 32px, 940px); padding: 94px 0 48px; display: flex; justify-content: center; align-items: flex-start; }
.wizard-start-card { width: 100%; background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; }
.wizard-result-card { background: var(--surface, #fff); border: 1px solid var(--border, #dce3ed); border-radius: 18px; box-shadow: 0 14px 36px rgb(15 31 61 / 7%); padding: clamp(28px, 5vw, 56px); }
.wizard-start-heading { text-align: center; margin-bottom: 42px; }
.wizard-start-heading h1 { margin: 0 0 13px; font-size: 3rem; line-height: 1.12; letter-spacing: -.04em; }
.wizard-result-card h1 { margin: 8px 0 10px; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.035em; }
.wizard-start-heading > p:last-child { color: #69758a; font-size: 1.05rem; }
.wizard-search-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 44px; }
.wizard-search-form label { display: block; margin-bottom: 8px; font-weight: 650; }
.wizard-search-form input:not([type="submit"]) { width: 100%; min-height: 78px; padding: 0 28px; border: 1px solid #d8dee8; border-radius: 10px; background: #fff; box-shadow: 0 8px 18px rgb(15 31 61 / 6%); font-size: 1.14rem; }
.wizard-search-form input::placeholder { color: #8a95a9; }
.wizard-field-wide, .wizard-form-actions { grid-column: 1 / -1; }
.wizard-form-actions { display: flex; justify-content: center; align-items: center; gap: 44px; margin-top: 32px; }
.wizard-form-actions form { margin: 0; }
.wizard-form-actions > .button, .wizard-form-actions > .button-link { width: 274px; min-height: 74px; justify-content: center; border-radius: 10px; font-size: 1.08rem; }
.wizard-search-button { display: inline-flex; align-items: center; gap: 16px; background: linear-gradient(135deg, #075adf, #145ff4); box-shadow: 0 8px 18px rgb(20 95 244 / 20%); }
.wizard-search-button svg { width: 30px; height: 30px; }
.wizard-save-note { margin: 34px 0 0; text-align: center; color: #69758a; font-size: 1rem; }
.individual-network-wizard-page { position: relative; }
.individual-network-wizard-history { display: flex; justify-content: flex-end; margin-bottom: 18px; }
.individual-network-wizard-history .button-link { gap: 8px; }
.individual-network-wizard-history .icon { width: 18px; height: 18px; }
.individual-network-wizard-page .wizard-start-heading .eyebrow { margin-bottom: 10px; color: var(--color-brand-700); font-size: .76rem; font-weight: 780; letter-spacing: .12em; text-transform: uppercase; }
.individual-kyc-allowance { display: flex; width: fit-content; gap: .75rem; margin: -18px auto 30px; padding: .75rem 1rem; align-items: center; border: 1px solid #cfe2df; border-radius: 12px; background: #f4faf9; }
.individual-kyc-allowance > span { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; color: var(--color-brand-700); border-radius: 50%; background: #fff; }
.individual-kyc-allowance small, .individual-kyc-allowance strong { display: block; }
.individual-kyc-allowance small { color: #69758a; }
.individual-identity-documents { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 28px; padding: 22px; border: 1px solid #d8dee8; border-radius: 12px; background: #f8fafc; }
.individual-identity-documents input[type="file"] { min-height: auto; padding: 16px; font-size: .9rem; }
.individual-identity-documents > p { grid-column: 1 / -1; margin: 0; color: #69758a; font-size: .86rem; }
.wizard-platform-footer { min-height: 76px; padding: 14px 24px 22px; display: flex; align-items: center; justify-content: center; gap: 10px; color: #7a8495; border-top: 1px solid #f0f2f5; font-size: .78rem; }
.wizard-platform-footer img { display: block; width: auto; max-width: 150px; max-height: 32px; object-fit: contain; }
.wizard-platform-footer strong { color: #17213b; font-size: 1rem; }
.wizard-platform-footer small { color: #69758a; }
.wizard-phase-two-status-card { overflow: hidden; }
.wizard-phase-two-status-body { display: grid; max-width: 52rem; justify-items: center; margin: 0 auto; padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 4vw, 3rem); text-align: center; }
.wizard-phase-two-status-symbol { display: grid; width: 4.5rem; height: 4.5rem; margin-bottom: 1rem; place-items: center; color: var(--color-brand-700); border-radius: 50%; background: var(--color-brand-50); box-shadow: 0 0 0 8px rgb(237 247 245 / 70%); }
.wizard-phase-two-status-symbol .icon { width: 2rem; height: 2rem; }
.wizard-phase-two-status-symbol.is-warning { color: #a2630a; background: #fff7e6; box-shadow: 0 0 0 8px rgb(255 247 230 / 65%); }
.wizard-phase-two-status-body > .status-badge { margin-bottom: .8rem; }
.wizard-phase-two-status-body > h2 { margin: 0 0 .65rem; color: #17324e; font-size: clamp(1.45rem, 3vw, 2rem); }
.wizard-phase-two-status-body > p { max-width: 40rem; margin: 0; color: #66798c; line-height: 1.65; }
.wizard-phase-two-status-note { display: flex; width: min(100%, 40rem); gap: .8rem; align-items: center; margin-top: 1.5rem; padding: 1rem; color: #31516e; text-align: left; border: 1px solid #cfe2df; border-radius: 11px; background: #f4faf9; }
.wizard-phase-two-status-note > .icon { flex: none; color: var(--color-brand-700); }
.wizard-phase-two-status-note strong, .wizard-phase-two-status-note small { display: block; }
.wizard-phase-two-status-note small { margin-top: .18rem; color: #66798c; line-height: 1.45; }
.wizard-phase-two-status-note.is-warning { color: #774a0c; border-color: #efd7a8; background: #fffaf0; }
.wizard-phase-two-status-note.is-warning > .icon { color: #a2630a; }
.wizard-phase-two-status-sources { display: grid; width: min(100%, 46rem); gap: .65rem; margin-top: 2rem; padding-top: 1.5rem; text-align: left; border-top: 1px solid #e5ebf0; }
.wizard-phase-two-status-sources h3 { margin: 0 0 .2rem; color: #17324e; font-size: .86rem; }
.wizard-phase-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.wizard-person-summary { margin: 28px 0; padding: 18px 20px; display: flex; flex-wrap: wrap; gap: 10px 24px; background: var(--surface-muted, #f7f9fc); border-radius: 12px; }
.wizard-person-summary strong { flex-basis: 100%; }
.wizard-person-summary span { color: var(--muted, #64748b); }
.wizard-result-summary { display: grid; grid-template-columns: auto 1fr auto 1fr; align-items: center; gap: 8px 14px; padding: 24px; border: 1px solid var(--border, #dce3ed); border-radius: 14px; }
.wizard-result-summary strong { font-size: 2rem; color: var(--brand-primary, #1165e8); }
.wizard-network-result-page { width: min(100% - 32px, 1480px); padding: 24px 0 112px; }
.wizard-network-result-page > .wizard-flow-shell { width: 100%; }
.wizard-phase-label { margin: 0 0 18px; color: var(--brand-primary, #075adf); font-size: 1.02rem; font-weight: 780; text-align: center; }
.wizard-network-result { overflow: hidden; padding: 0; border-radius: 16px; }
.wizard-network-heading { display: flex; gap: 28px; padding: 34px 48px 24px; align-items: flex-start; justify-content: space-between; }
.wizard-network-heading .eyebrow { margin: 0 0 7px; color: var(--brand-primary, #075adf); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.wizard-network-section-title { margin: 0 0 7px; color: #64748b; font-size: clamp(.92rem, 1.4vw, 1.08rem); font-weight: 650; }
.wizard-network-heading h1 { margin: 0 0 12px; font-size: clamp(2.25rem, 4.2vw, 3.35rem); line-height: 1.04; letter-spacing: -.04em; }
.wizard-network-identity { margin: 0; display: flex; gap: 8px 12px; align-items: baseline; color: #64748b; font-size: .92rem; flex-wrap: wrap; }
.wizard-network-identity > span:first-child { font-size: .74rem; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.wizard-network-identity strong { color: #17213b; font-size: inherit; letter-spacing: .035em; }
.wizard-network-file-number { padding-left: 12px; border-left: 1px solid #d8dee8; }
.wizard-network-updated-at { display: block; margin-top: 9px; color: #7a8495; font-size: .74rem; }
.wizard-network-heading-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.wizard-network-heading-actions > .status-badge { min-height: 32px; padding-inline: 13px; gap: 7px; flex: none; font-size: .76rem; }
.wizard-network-heading-actions > .status-badge .icon { width: 1.08rem; height: 1.08rem; }
.wizard-network-heading-actions .wizard-refresh-button { min-height: 40px; }
.wizard-network-cost-footer { display: block; }
.wizard-network-cost-footer .wizard-costs { width: 100%; }
.wizard-screen-loader { position: fixed; z-index: 200; inset: 0; display: flex; padding: 24px; align-items: center; justify-content: center; flex-direction: column; gap: 10px; color: #0b1d3a; background: radial-gradient(circle at center, rgb(229 241 252 / 86%), rgb(255 255 255 / 92%) 42%, rgb(255 255 255 / 96%)); backdrop-filter: blur(7px); text-align: center; }
.wizard-screen-loader[hidden] { display: none; }
.wizard-screen-loader strong { margin-top: 4px; font-size: 1.2rem; }
.wizard-screen-loader small { color: #64748b; }
.portal-theme-dark .wizard-screen-loader { color: #f1f5f9; background: radial-gradient(circle at center, rgb(40 58 78 / 96%), rgb(17 24 39 / 98%) 48%, rgb(11 18 32 / 99%)); }
.portal-theme-dark .wizard-screen-loader small { color: #b8c7d9; }
.phase-one-refresh-region { position: relative; min-height: 112px; overflow: hidden; border-radius: 13px; }
.phase-one-refresh-current { transition: opacity 160ms ease, filter 160ms ease; }
.phase-one-refresh-region.is-refreshing .phase-one-refresh-current { opacity: .2; filter: grayscale(1); pointer-events: none; user-select: none; }
.phase-one-refresh-loader { position: absolute; z-index: 4; inset: 0; display: flex; min-height: 112px; padding: 24px; align-items: center; justify-content: center; gap: 14px; color: #334155; background: rgb(241 245 249 / 92%); text-align: left; }
.phase-one-refresh-loader[hidden] { display: none; }
.phase-one-refresh-loader > div { display: grid; gap: 3px; }
.phase-one-refresh-loader strong { color: #334155; font-size: 1rem; }
.phase-one-refresh-loader small { color: #64748b; }
.portal-theme-dark .phase-one-refresh-loader { color: #dcecff; background: rgb(17 24 39 / 94%); }
.portal-theme-dark .phase-one-refresh-loader strong { color: #f1f5f9; }
.portal-theme-dark .phase-one-refresh-loader small { color: #b8c7d9; }
.wizard-refresh-button:disabled, .phase-one-refresh-button:disabled { color: #64748b; border-color: #cbd5e1; background: #e2e8f0; box-shadow: none; cursor: wait; transform: none; }
.wizard-network-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 48px 24px; border: 1px solid #cfe5d7; border-radius: 13px; background: linear-gradient(120deg, #fbfffc, #f4fbf6); }
.wizard-network-stat { min-width: 0; padding: 20px 34px; display: flex; gap: 20px; align-items: center; }
.wizard-network-stat + .wizard-network-stat { border-left: 1px solid #cfe5d7; }
.wizard-network-stat-icon { display: grid; width: 54px; height: 54px; flex: none; place-items: center; color: #087a42; border: 1px solid #c8ead5; border-radius: 50%; background: #eaf8ef; }
.wizard-network-stat-icon .icon { width: 28px; height: 28px; }
.wizard-network-stat > span:last-child { display: grid; }
.wizard-network-stat strong { color: #087a42; font-size: 2rem; line-height: 1; font-variant-numeric: tabular-nums; }
.wizard-network-stat small { margin-top: 6px; color: #17213b; font-size: .94rem; }
.wizard-network-table-wrap { margin: 0 48px 24px; overflow: hidden; border: 1px solid #d8e0e9; border-radius: 13px; background: #fff; }
.wizard-network-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.wizard-network-table caption { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.wizard-network-table th, .wizard-network-table td { padding: 18px 20px; text-align: left; vertical-align: middle; }
.wizard-network-table th { color: #657186; background: linear-gradient(90deg, #f5f8fc, #f8fbfd); font-size: .76rem; font-weight: 750; }
.wizard-network-table th span { display: inline-flex; gap: 9px; align-items: center; }
.wizard-network-table th .icon { width: 18px; height: 18px; color: #3d6f9f; }
.wizard-network-table th:first-child { width: 29%; }
.wizard-network-table th:nth-child(2) { width: 14%; }
.wizard-network-table th:last-child { width: 57%; }
.wizard-network-table td { color: #17213b; border-top: 1px solid #e3e8ef; font-size: .92rem; }
.wizard-network-table td strong { font-size: 1rem; }
.wizard-network-private-detail { display: grid; gap: 5px; }
.wizard-network-private-detail > span { display: block; }
.wizard-network-table tbody tr { transition: background 160ms ease; }
.wizard-network-table tbody tr:hover { background: #f7fbff; }
.wizard-network-credit { display: inline-flex; gap: 7px; align-items: center; font-weight: 750; }
.wizard-network-credit .icon { width: 18px; height: 18px; }
.wizard-network-credit.is-active { color: #087a42; }
.wizard-network-credit.is-clear { color: #657186; }
.wizard-network-empty { display: flex; gap: 18px; margin: 0 48px 24px; padding: 24px; align-items: center; color: #64748b; border: 1px solid #dce3ed; border-radius: 13px; background: #f7f9fc; }
.wizard-network-empty > span { display: grid; width: 46px; height: 46px; flex: none; place-items: center; border-radius: 50%; background: #e8edf3; }
.wizard-network-empty h2 { margin: 0; color: #364152; font-size: 1.12rem; }
.wizard-network-empty p { margin: 5px 0 0; font-size: .92rem; }
.wizard-network-saved { display: flex; gap: 17px; margin: 0 48px 28px; padding: 17px 22px; align-items: center; color: #087a42; border: 1px solid #c8ead5; border-radius: 12px; background: linear-gradient(90deg, #f4fbf6, #fbfffc); }
.wizard-network-saved > span { display: grid; width: 38px; height: 38px; flex: none; place-items: center; }
.wizard-network-saved > span .icon { width: 30px; height: 30px; }
.wizard-network-saved > div { display: grid; }
.wizard-network-saved strong { font-size: .96rem; }
.wizard-network-saved small { margin-top: 4px; color: #557064; font-size: .8rem; }
.wizard-network-actions { display: flex; gap: 32px; min-height: 112px; padding: 20px 48px; align-items: center; justify-content: space-between; border-top: 1px solid #e3e8ef; background: #fbfcfe; }
.wizard-costs { display: flex; min-width: 0; gap: 0; }
.wizard-costs > div { display: flex; min-width: 210px; gap: 13px; padding-right: 28px; align-items: center; }
.wizard-costs > div + div { padding-left: 28px; border-left: 1px solid #dce3ed; }
.wizard-costs > div > span { display: grid; width: 36px; height: 36px; flex: none; place-items: center; color: var(--brand-primary, #075adf); border: 1px solid #d8e4f5; border-radius: 50%; background: #fff; }
.wizard-costs > div > span .icon { width: 18px; height: 18px; }
.wizard-costs p { display: grid; margin: 0; color: #5f6b7e; font-size: .78rem; }
.wizard-costs strong { margin-top: 3px; color: #0753b5; font-size: 1.08rem; font-variant-numeric: tabular-nums; }
.wizard-costs small { margin-top: 3px; color: #087a42; font-size: .7rem; }
.wizard-network-buttons { display: flex; gap: 14px; align-items: flex-end; }
.wizard-network-buttons form { margin: 0; }
.wizard-network-buttons .button, .wizard-network-buttons .button-link { min-height: 58px; padding-inline: 28px; font-size: 1rem; white-space: nowrap; }
.wizard-refresh-action { position: relative; display: flex; gap: 7px; align-items: center; }
.wizard-refresh-confirmation { min-width: 0; }
.wizard-refresh-confirmation > summary { list-style: none; cursor: pointer; }
.wizard-refresh-confirmation > summary::-webkit-details-marker { display: none; }
.wizard-refresh-confirmation[open] { width: min(430px, calc(100vw - 64px)); }
.wizard-refresh-confirmation[open] > summary { width: 100%; justify-content: center; }
.wizard-refresh-confirmation-panel { display: grid; gap: 8px; margin-top: 10px; padding: 15px; color: #17213b; border: 1px solid #cbd9e8; border-radius: 11px; background: #f7fbff; box-shadow: 0 12px 28px rgb(15 42 72 / 12%); text-align: left; }
.wizard-refresh-confirmation-panel > strong { font-size: .94rem; }
.wizard-refresh-confirmation-panel > p { margin: 0; color: #526176; font-size: .82rem; line-height: 1.45; }
.wizard-refresh-confirmation-actions { display: flex; gap: 10px; align-items: center; justify-content: space-between; }
.wizard-refresh-confirmation-actions small { color: #69778b; font-size: .72rem; }
.wizard-refresh-confirmation-actions form { margin: 0; }
.wizard-refresh-confirm-button { display: inline-flex; gap: 7px; align-items: center; white-space: nowrap; }
.wizard-refresh-confirm-button .icon { width: 17px; height: 17px; }
.wizard-refresh-button { display: inline-flex; gap: 9px; align-items: center; }
.wizard-refresh-button .icon { width: 19px; height: 19px; }
.wizard-refresh-help { position: relative; display: inline-grid; width: 24px; height: 24px; place-items: center; color: #155ba6; border: 1px solid #a9c6e3; border-radius: 50%; background: #eef6ff; font-size: .76rem; font-weight: 800; cursor: help; }
.wizard-refresh-help:focus { outline: 3px solid rgb(21 91 166 / 22%); outline-offset: 2px; }
.wizard-refresh-popover { position: absolute; z-index: 5; right: -8px; bottom: calc(100% + 10px); width: 230px; padding: 10px 12px; color: #fff; border-radius: 9px; background: #102d4f; box-shadow: 0 8px 24px rgb(15 42 72 / 20%); font-size: .78rem; font-weight: 650; line-height: 1.35; opacity: 0; pointer-events: none; transform: translateY(4px); transition: opacity 140ms ease, transform 140ms ease; }
.wizard-refresh-popover::after { position: absolute; right: 13px; top: 100%; content: ""; border: 6px solid transparent; border-top-color: #102d4f; }
.wizard-refresh-help:hover .wizard-refresh-popover, .wizard-refresh-help:focus .wizard-refresh-popover, .wizard-refresh-help:focus-within .wizard-refresh-popover { opacity: 1; transform: translateY(0); }
.wizard-next-phase { display: grid; justify-items: end; }
.wizard-next-phase > small { margin: 0 12px 8px 0; color: #0753b5; font-size: .76rem; }
.wizard-next-button { display: inline-flex; gap: 14px; align-items: center; background: linear-gradient(135deg, #075adf, #145ff4); box-shadow: 0 8px 18px rgb(20 95 244 / 20%); }
.wizard-next-button .icon { width: 18px; height: 18px; }
.wizard-next-balance { margin-top: 7px; color: #64748b; font-size: .72rem; }
.wizard-next-balance strong { color: #0f2747; font-weight: 750; }
@media (max-width: 1120px) {
  .wizard-network-actions { align-items: stretch; flex-direction: column; }
  .wizard-network-buttons { justify-content: flex-end; }
}
@media (max-width: 900px) {
  .wizard-network-table { table-layout: auto; }
  .wizard-network-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .wizard-network-table, .wizard-network-table tbody, .wizard-network-table tr, .wizard-network-table td { display: block; width: 100%; }
  .wizard-network-table tbody tr { padding: 8px 18px; }
  .wizard-network-table tbody tr + tr { border-top: 1px solid #d8e0e9; }
  .wizard-network-table td { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; padding: 13px 0; align-items: center; border-top: 0; border-bottom: 1px solid #edf0f4; text-align: right; }
  .wizard-network-table td:last-child { border-bottom: 0; }
  .wizard-network-table td::before { color: #657186; content: attr(data-label); font-size: .76rem; font-weight: 700; text-align: left; }
  .wizard-network-table td strong, .wizard-network-credit, .wizard-network-private-detail { justify-self: end; text-align: right; }
}
@media (max-width: 760px) {
  .wizard-network-heading { padding: 26px 24px 20px; flex-direction: column; }
  .wizard-network-heading-actions { width: 100%; align-items: stretch; justify-content: flex-start; }
  .wizard-network-heading-actions .wizard-refresh-action,
  .wizard-network-heading-actions .wizard-refresh-action form,
  .wizard-network-heading-actions .wizard-refresh-button { width: 100%; }
  .wizard-network-summary { margin: 0 24px 20px; }
  .wizard-network-stat { padding: 17px; gap: 13px; }
  .wizard-network-stat-icon { width: 44px; height: 44px; }
  .wizard-network-stat strong { font-size: 1.45rem; }
  .wizard-network-table-wrap, .wizard-network-empty, .wizard-network-saved { margin-inline: 24px; }
  .wizard-network-actions { padding: 20px 24px; }
  .wizard-costs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wizard-costs > div { min-width: 0; padding-right: 16px; }
  .wizard-costs > div + div { padding-left: 16px; }
  .wizard-network-buttons { align-items: stretch; flex-direction: column-reverse; }
  .wizard-network-buttons form, .wizard-network-buttons .button, .wizard-network-buttons .button-link { width: 100%; }
  .wizard-refresh-action { width: 100%; }
  .wizard-refresh-confirmation, .wizard-refresh-confirmation[open] { width: calc(100% - 31px); }
  .wizard-refresh-action form { flex: 1; }
  .wizard-refresh-help { flex: 0 0 24px; }
  .wizard-refresh-confirmation-actions { align-items: stretch; flex-direction: column; }
  .wizard-refresh-confirmation-actions .button { width: 100%; justify-content: center; }
  .wizard-next-phase { justify-items: stretch; }
  .wizard-next-phase > small { text-align: center; }
  .wizard-next-button { justify-content: center; }
  .wizard-next-balance { text-align: center; }
}
@media (max-width: 480px) {
  .wizard-network-summary { grid-template-columns: 1fr; }
  .wizard-network-stat + .wizard-network-stat { border-top: 1px solid #cfe5d7; border-left: 0; }
  .wizard-costs { grid-template-columns: 1fr; gap: 14px; }
  .wizard-costs > div + div { padding: 14px 0 0; border-top: 1px solid #dce3ed; border-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .wizard-network-table tbody tr { transition: none; }
  .phase-one-refresh-current { transition: none; }
}
@media (max-width: 640px) {
  .wizard-topbar { min-height: 82px; padding: 12px 16px; }
  .wizard-company-logo { width: min(150px, 45vw); height: 54px; }
  .wizard-company-logo img { max-height: 48px; }
  .wizard-company-name { max-width: 48vw; font-size: 1.12rem; }
  .wizard-balance { min-width: 0; min-height: 54px; padding: 8px 10px; }
  .wizard-balance-icon { display: none; }
  .wizard-balance > span:last-child { font-size: .72rem; }
  .wizard-balance strong { font-size: .95rem; }
  .wizard-balance-suggestion { font-size: .62rem; }
  .wizard-page { padding: 24px 0; }
  .wizard-start-page { padding-top: 52px; }
  .wizard-start-heading { margin-bottom: 32px; }
  .wizard-start-heading h1 { font-size: 2.15rem; }
  .wizard-search-form { grid-template-columns: 1fr; }
  .wizard-search-form input:not([type="submit"]) { min-height: 58px; padding: 0 18px; }
  .wizard-field-wide, .wizard-form-actions { grid-column: auto; }
  .wizard-form-actions { gap: 12px; margin-top: 12px; flex-direction: column-reverse; align-items: stretch; }
  .wizard-form-actions .button, .wizard-form-actions .button-link, .wizard-form-actions form { width: 100%; }
  .wizard-phase-heading { flex-direction: column; }
  .wizard-result-summary { grid-template-columns: auto 1fr; }
  .wizard-platform-footer { min-height: 64px; padding: 12px 16px 18px; }
  .wizard-platform-footer img { max-width: 120px; max-height: 27px; }
  .wizard-platform-footer small { display: none; }
}
/* Wizard · Fase 2 */
.wizard-phase-two-page { width: min(100% - 32px, 1480px); padding: 24px 0 112px; }
.wizard-flow-shell { display: grid; grid-template-columns: 205px minmax(0, 1fr); gap: 24px; align-items: start; }
.wizard-no-side-guide { display: block; width: 100%; }
.wizard-no-side-guide > .wizard-result-card,
.wizard-no-side-guide > .wizard-start-card { width: 100%; min-width: 0; }
.wizard-flow-shell > .wizard-result-card, .wizard-flow-shell > .wizard-start-card { width: 100%; min-width: 0; }
.wizard-flow-shell > .wizard-result-card { min-height: min(680px, calc(100dvh - 188px)); }
.wizard-phase-two-card { max-width: none; padding: 28px 48px 0; }
.wizard-flow-guide { position: sticky; top: 18px; padding: 16px 14px; border: 1px solid #dce3ed; border-radius: 14px; background: #fbfcfe; }
.wizard-flow-guide > small { display: block; margin: 0 8px 12px; color: #69758a; font-size: .72rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.wizard-flow-guide ol { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.wizard-flow-guide li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 9px; padding: 9px 8px; align-items: center; color: #69758a; border-radius: 10px; }
.wizard-flow-guide li > span { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #cfd8e4; border-radius: 50%; background: #fff; font-size: .75rem; font-weight: 800; }
.wizard-flow-guide li div { display: grid; min-width: 0; }
.wizard-flow-guide-link { display: grid; min-width: 0; color: inherit; text-decoration: none; }
.wizard-flow-guide-link:focus-visible { border-radius: 5px; outline: 2px solid currentColor; outline-offset: 3px; }
.wizard-flow-guide li strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.wizard-flow-guide li small { margin-top: 1px; font-size: .66rem; }
.wizard-flow-guide li.is-current { color: var(--color-brand-800, #0753b5); background: var(--color-brand-50, #edf6fc); }
.wizard-flow-guide li.is-current > span { color: #fff; border-color: var(--color-brand-700, #075ea9); background: var(--color-brand-700, #075ea9); }
.wizard-flow-guide li.is-complete { color: #087a42; }
.wizard-flow-guide li.is-complete > span { color: #087a42; border-color: #bfe4cc; background: #eaf8ef; }
.wizard-phase-two-result-header { display: grid; justify-items: center; text-align: center; }
.wizard-phase-two-step { display: inline-flex; margin-bottom: .4rem; padding: .28rem .7rem; color: var(--color-brand-700, #075ea9); border-radius: 999px; background: var(--color-brand-50, #edf6fc); font-size: .76rem; font-weight: 750; }
.wizard-phase-two-result-header h1 { margin: 0; color: #0f1f3d; font-size: clamp(1.8rem, 3vw, 2.35rem); }
.wizard-phase-two-result-header > p { margin: .3rem 0 .75rem; color: var(--color-muted, #69758a); font-size: .9rem; }
.wizard-phase-two-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center; padding-bottom: 1.5rem; border-bottom: 1px solid var(--border); }
.wizard-phase-two-heading h1 { margin: .2rem 0 .55rem; font-size: clamp(2rem, 4vw, 3.25rem); }
.wizard-phase-two-heading > div:first-child > p:last-child { max-width: 700px; color: var(--muted); }
.wizard-phase-two-person { display: flex; width: min(100%, 480px); align-items: center; gap: .7rem; padding: .55rem .8rem; text-align: left; border: 1px solid var(--color-border, #dce3ed); border-radius: .75rem; background: var(--color-surface, #fff); }
.wizard-phase-two-person > span, .wizard-phase-two-service > span, .wizard-phase-two-group-title > span { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; flex: 0 0 auto; color: var(--color-brand-700, #075ea9); border-radius: .75rem; background: var(--color-brand-50, #edf6fc); }
.wizard-phase-two-person small, .wizard-phase-two-person strong { display: block; }
.wizard-phase-two-person small { color: var(--color-muted, #69758a); }
.wizard-phase-two-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.wizard-phase-two-service { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .9rem; align-items: center; padding: 1rem; border: 1px solid var(--border); border-radius: 1rem; background: var(--surface); }
.wizard-phase-two-service h2 { margin: 0 0 .2rem; font-size: 1rem; }
.wizard-phase-two-service p, .wizard-phase-two-service strong { margin: 0; }
.wizard-phase-two-service p { color: var(--muted); font-size: .9rem; }
.wizard-document-section { margin: 1.5rem 0; padding: 1.25rem; border: 1px solid var(--border); border-radius: 1.1rem; background: var(--surface-soft); }
.wizard-document-heading h2 { margin: 0 0 .3rem; }
.wizard-document-heading p { margin: 0 0 1rem; color: var(--muted); }
.wizard-document-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.wizard-document-upload { display: grid; justify-items: center; gap: .45rem; min-height: 185px; padding: 1.4rem; text-align: center; border: 1.5px dashed color-mix(in srgb, var(--brand) 35%, var(--border)); border-radius: 1rem; background: var(--surface); cursor: pointer; }
.wizard-document-upload > span { color: var(--brand); }
.wizard-document-upload small { color: var(--muted); }
.wizard-document-upload input { max-width: 100%; margin-top: .45rem; }
.wizard-phase-two-consent { display: flex; align-items: flex-start; gap: .7rem; margin-top: 1rem; line-height: 1.45; }
.wizard-phase-two-consent input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; flex: 0 0 auto; }
.wizard-phase-two-reuse, .wizard-phase-two-empty { display: flex; gap: .9rem; align-items: flex-start; margin: 1.5rem 0; padding: 1rem 1.15rem; border-radius: 1rem; background: color-mix(in srgb, var(--success) 9%, var(--surface)); border: 1px solid color-mix(in srgb, var(--success) 25%, var(--border)); }
.wizard-phase-two-reuse p, .wizard-phase-two-empty p { margin: .15rem 0 0; color: var(--muted); }
.wizard-phase-two-footer { display: grid; gap: .7rem; margin: 0 -2.2rem; padding: 1.2rem 2.2rem 1.45rem; border-top: 1px solid var(--color-border, #dce3ed); background: #fff; border-radius: 0 0 1.25rem 1.25rem; }
.wizard-phase-two-cost-footer { margin: .75rem -48px 0; border-radius: 0 0 1.25rem 1.25rem; }
.wizard-phase-two-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; align-items: stretch; }
.wizard-phase-two-actions form, .wizard-phase-two-actions .button, .wizard-phase-two-actions .button-link { width: 100%; }
.wizard-phase-two-actions .button-link { display: grid; place-items: center; gap: .1rem; text-align: center; }
.wizard-phase-two-actions .button-link small { font-size: .76rem; font-weight: 500; }
.wizard-phase-two-disclaimer { color: var(--color-muted, #69758a); text-align: center; }
.wizard-phase-two-verdict { display: flex; width: max-content; max-width: 100%; align-items: center; justify-content: center; flex-wrap: wrap; gap: .5rem; margin: .75rem auto 0; padding: .55rem 1rem; border: 1px solid transparent; border-radius: .8rem; text-align: center; }
.wizard-phase-two-verdict.is-success { color: var(--color-success, #119447); background: var(--color-success-soft, #eaf9ef); }
.wizard-phase-two-verdict.is-success { border-color: color-mix(in srgb, var(--color-success, #119447) 22%, transparent); }
.wizard-phase-two-verdict.is-warning { color: var(--color-warning, #a45c00); border-color: color-mix(in srgb, var(--color-warning, #a45c00) 22%, transparent); background: var(--color-warning-soft, #fff6dc); }
.wizard-phase-two-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin-top: .9rem; }
.wizard-phase-two-results:has(> .wizard-phase-two-result-group:only-child) { grid-template-columns: minmax(0, 1fr); width: 100%; }
.wizard-phase-two-result-group { min-height: 180px; padding: 1rem 1.15rem; border: 1px solid var(--color-border, #dce3ed); border-radius: .85rem; background: var(--color-surface, #fff); }
.wizard-phase-two-result-group.is-detailed { grid-column: 1 / -1; }
.wizard-phase-two-group-title { display: flex; gap: .7rem; align-items: center; margin-bottom: .45rem; }
.wizard-phase-two-group-title h2 { margin: 0; }
.wizard-phase-two-group-title h2 { font-size: 1.05rem; }
.wizard-phase-two-group-title p { color: var(--muted); font-size: .85rem; }
.wizard-phase-two-source { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .6rem; align-items: center; padding: .4rem 0; border-top: 1px solid var(--color-border, #dce3ed); }
.wizard-phase-two-source .status-badge { grid-column: 2; display: none; }
.wizard-phase-two-source > span:first-child { color: var(--color-muted, #69758a); }
.wizard-phase-two-source.is-completed > span:first-child { color: var(--color-success, #119447); }
.wizard-phase-two-source.is-review_required > span:first-child { color: var(--color-warning, #a45c00); }
.wizard-phase-two-source strong, .wizard-phase-two-source small { display: block; }
.wizard-phase-two-source small { margin-top: .12rem; color: var(--color-muted, #69758a); }
.wizard-unified-status-icon { display: grid; width: 2rem; height: 2rem; flex: 0 0 2rem; place-items: center; color: #fff; border-radius: 50%; font-size: 1.25rem; font-weight: 900; line-height: 1; box-shadow: 0 3px 9px rgb(7 148 71 / 20%); }
.wizard-unified-status-icon.is-success { background: #079447; }
.wizard-unified-status-icon.is-danger { background: #c62828; box-shadow: 0 3px 9px rgb(198 40 40 / 20%); }
.wizard-unified-status-icon.is-neutral { background: #69758a; box-shadow: 0 3px 9px rgb(105 117 138 / 20%); }
.wizard-phase-two-source > .wizard-unified-status-icon { width: 2rem; height: 2rem; color: #fff; }
.wizard-phase-two-primary-tabs { margin-top: .35rem; overflow: hidden; border: 1px solid #cfe2d6; border-radius: .85rem; background: #fff; }
.wizard-phase-two-primary-tablist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; padding: .65rem; border-bottom: 1px solid #dce9e1; background: #f7f9fb; }
.wizard-phase-two-primary-tab { display: flex; min-width: 0; min-height: 4.25rem; gap: .7rem; padding: .65rem .8rem; align-items: center; color: #475569; border: 1px solid #d7dee8; border-radius: .7rem; background: #fff; font: inherit; text-align: left; cursor: pointer; }
.wizard-phase-two-primary-tab:hover { border-color: #aebaca; }
.wizard-phase-two-primary-tab:focus-visible { outline: 3px solid var(--color-brand-200); outline-offset: 2px; }
.wizard-phase-two-primary-tab.is-active { color: #17243d; border-color: currentcolor; box-shadow: 0 5px 14px rgb(15 31 61 / 9%); }
.wizard-phase-two-primary-tab.is-success.is-active { color: #16844c; background: #effaf3; }
.wizard-phase-two-primary-tab.is-danger { color: #b42323; }
.wizard-phase-two-primary-tab.is-danger.is-active { background: #fff2f2; }
.wizard-phase-two-primary-tab > span:last-child { display: grid; min-width: 0; gap: .08rem; }
.wizard-phase-two-primary-tab strong { color: currentcolor; font-size: .95rem; }
.wizard-phase-two-primary-tab small { color: #69758a; font-size: .75rem; }
.wizard-phase-two-primary-panel { padding: .65rem; }
.wizard-phase-two-primary-panel[hidden] { display: none; }
.wizard-phase-two-accordion { overflow: hidden; border: 1px solid #cfe2d6; border-radius: .75rem; background: #fff; }
.wizard-phase-two-accordion > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .65rem;
  min-height: 58px;
  padding: .55rem .75rem;
  align-items: center;
  color: #26364f;
  list-style: none;
  cursor: pointer;
}
.wizard-phase-two-accordion > .wizard-phase-two-accordion-summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .8rem;
  min-height: 68px;
  padding: .65rem .85rem;
  align-items: center;
  border-bottom: 1px solid #dce9e1;
  background: linear-gradient(120deg, #effaf3, #fff);
}
.wizard-phase-two-accordion > summary::-webkit-details-marker { display: none; }
.wizard-phase-two-accordion > summary:hover { background: #f7fbf8; }
.wizard-phase-two-accordion > summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--color-brand-600, #075fe4) 35%, transparent); outline-offset: -3px; }
.wizard-phase-two-accordion[open] > summary { border-bottom: 1px solid #dce9e1; background: linear-gradient(120deg, #effaf3, #fff); }
.wizard-phase-two-accordion summary strong, .wizard-phase-two-accordion summary small,
.wizard-phase-two-accordion-summary strong, .wizard-phase-two-accordion-summary small { display: block; }
.wizard-phase-two-accordion summary strong, .wizard-phase-two-accordion-summary strong { font-size: 1.08rem; }
.wizard-phase-two-accordion summary small, .wizard-phase-two-accordion-summary small { margin-top: .08rem; color: #69758a; font-size: .84rem; }
.wizard-phase-two-accordion-icon { display: grid; width: 2.15rem; height: 2.15rem; place-items: center; color: #16844c; border-radius: 50%; background: #ecf9f1; }
.wizard-phase-two-accordion.is-neutral .wizard-phase-two-accordion-icon { color: #69758a; background: #f0f3f6; }
.wizard-phase-two-accordion.is-danger { border-color: #efc7c7; }
.wizard-phase-two-accordion.is-danger .wizard-phase-two-accordion-icon { color: #b42323; background: #fff0f0; }
.wizard-phase-two-accordion-icon svg { width: 1.3rem; height: 1.3rem; }
.wizard-phase-two-accordion-chevron { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; color: #69758a; transition: transform 180ms ease; }
.wizard-phase-two-accordion-chevron svg { width: 1rem; height: 1rem; }
.wizard-phase-two-accordion[open] .wizard-phase-two-accordion-chevron { transform: rotate(90deg); }
.wizard-phase-two-official-sources { padding: .45rem .7rem .6rem; background: #fff; }
.wizard-phase-two-official-sources > strong { display: block; margin-bottom: .2rem; color: #26364f; font-size: .8rem; }
.wizard-compliance-tabs { background: #fff; }
.wizard-compliance-tablist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: .65rem .75rem; border-bottom: 1px solid #dce9e1; background: #f7f9fb; }
.wizard-compliance-tab { display: flex; min-width: 0; min-height: 3.25rem; gap: .55rem; padding: .55rem .7rem; align-items: center; color: #475569; border: 1px solid #d7dee8; border-radius: .65rem; background: #fff; font: inherit; text-align: left; cursor: pointer; }
.wizard-compliance-tab:hover { border-color: #aebaca; }
.wizard-compliance-tab:focus-visible { outline: 3px solid var(--color-brand-200); outline-offset: 2px; }
.wizard-compliance-tab.is-active { color: #17243d; border-color: currentcolor; box-shadow: 0 4px 12px rgb(15 31 61 / 8%); }
.wizard-compliance-tab.is-success.is-active { color: #16844c; background: #f1faf5; }
.wizard-compliance-tab.is-danger { color: #b42323; }
.wizard-compliance-tab.is-danger.is-active { background: #fff2f2; }
.wizard-compliance-tab > span:last-child { display: grid; min-width: 0; gap: .08rem; }
.wizard-compliance-tab strong, .wizard-compliance-tab small { overflow-wrap: anywhere; }
.wizard-compliance-tab strong { color: currentcolor; font-size: .8rem; }
.wizard-compliance-tab small { color: #69758a; font-size: .68rem; }
.wizard-compliance-tabpanel[hidden] { display: none; }
.wizard-metamap-watchlists { margin: 0; padding: .65rem .75rem; background: #fff; }
.wizard-metamap-watchlists ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin: 0; padding: 0; list-style: none; }
.wizard-metamap-watchlists li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .55rem; padding: .55rem .65rem; align-items: center; color: #12633b; border: 1px solid #ccebd7; border-radius: .6rem; background: #f3fbf6; font-size: .76rem; }
.wizard-metamap-watchlists li.is-danger { color: #9f1f1f; border-color: #efc7c7; background: #fff2f2; }
.wizard-metamap-watchlists li > span:last-child { display: grid; gap: .05rem; min-width: 0; }
.wizard-metamap-watchlists li strong { color: currentcolor; overflow-wrap: anywhere; }
.wizard-metamap-watchlists li small { color: #5f6d7e; font-size: .7rem; }
.wizard-compliance-empty { margin: 0; padding: .7rem; color: #9f1f1f; border: 1px solid #efc7c7; border-radius: .6rem; background: #fff2f2; font-size: .75rem; font-weight: 700; }
.wizard-metamap-document-report { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); margin-top: .8rem; overflow: hidden; border: 1px solid #cfe2d6; border-radius: .85rem; background: #fff; }
.wizard-metamap-document-report > header { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7rem; padding: .9rem; color: #087a42; border-bottom: 1px solid #dce9e1; background: linear-gradient(120deg, #effaf3, #fff); }
.wizard-metamap-document-report > header > span { display: grid; width: 2rem; height: 2rem; place-items: center; }
.wizard-metamap-document-report > header svg { width: 1.45rem; height: 1.45rem; }
.wizard-metamap-document-report h3 { margin: 0; color: #12633b; font-size: 1rem; }
.wizard-metamap-document-report header p { margin: .2rem 0 0; color: #47725a; font-size: .78rem; }
.wizard-metamap-document-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; align-content: start; padding: .8rem; }
.wizard-metamap-document-gallery figure { min-width: 0; margin: 0; overflow: hidden; border: 1px solid #dce3ed; border-radius: .65rem; background: #f5f7f9; }
.wizard-metamap-document-gallery img { display: block; width: 100%; aspect-ratio: 1.55 / 1; object-fit: contain; background: #eef1f4; }
.wizard-metamap-document-gallery figcaption { padding: .4rem .55rem; color: #475569; font-size: .72rem; font-weight: 700; }
.wizard-user-dpi-evidence { margin: 0 0 .85rem; overflow: hidden; border: 1px solid #cfe2d6; border-radius: .85rem; background: #fff; }
.wizard-user-dpi-heading { display: flex; gap: .65rem; align-items: center; padding: .8rem; border-bottom: 1px solid #dce9e1; background: linear-gradient(120deg, #effaf3, #fff); }
.wizard-user-dpi-heading strong, .wizard-user-dpi-heading small { display: block; }
.wizard-user-dpi-heading strong { color: #12633b; }
.wizard-user-dpi-heading small { margin-top: .08rem; color: #69758a; font-size: .76rem; }
.wizard-user-dpi-heading > div { min-width: 0; flex: 1; }
.wizard-edit-dpi-button { display: inline-flex; min-height: 2.35rem; gap: .4rem; padding: .48rem .7rem; align-items: center; flex: none; font-size: .78rem; }
.wizard-edit-dpi-button .icon { width: 1rem; height: 1rem; }
.wizard-kyc-evidence-comparison { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(15rem, .65fr); gap: .75rem; padding: .8rem; align-items: stretch; }
.wizard-kyc-evidence-comparison .wizard-metamap-document-gallery { padding: 0; }
.wizard-kyc-evidence-comparison.is-authorized-comparison { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.wizard-comparison-column { min-width: 0; }
.is-authorized-comparison .wizard-comparison-column { overflow: hidden; border: 1px solid #d8e2df; border-radius: .75rem; background: #fff; }
.wizard-comparison-column-heading { display: flex; min-height: 4rem; gap: .65rem; padding: .75rem .85rem; align-items: center; border-bottom: 1px solid #dce9e1; }
.wizard-comparison-column-heading > span { display: grid; width: 2.25rem; height: 2.25rem; flex: none; color: #fff; border-radius: 50%; background: #1769e0; place-items: center; }
.wizard-comparison-column.is-community .wizard-comparison-column-heading { background: #effaf3; }
.wizard-comparison-column.is-community .wizard-comparison-column-heading > span { background: #16844c; }
.wizard-comparison-column-heading .icon { width: 1.2rem; height: 1.2rem; }
.wizard-comparison-column-heading strong, .wizard-comparison-column-heading small { display: block; }
.wizard-comparison-column-heading strong { color: #17243d; font-size: .9rem; }
.wizard-comparison-column-heading small { margin-top: .08rem; color: #69758a; font-size: .7rem; }
.is-authorized-comparison .wizard-metamap-document-gallery,
.is-authorized-comparison .wizard-community-verified-gallery { display: grid; grid-template-columns: 1fr; gap: .7rem; margin: 0; padding: .75rem; }
.is-authorized-comparison .wizard-metamap-document-gallery figure,
.is-authorized-comparison .wizard-community-verified-gallery figure { display: grid; grid-template-rows: minmax(0, 1fr) auto; }
.is-authorized-comparison .wizard-metamap-document-gallery img,
.is-authorized-comparison .wizard-community-verified-gallery img { width: 100%; height: clamp(180px, 18vw, 280px); max-height: none; aspect-ratio: auto; object-fit: contain; }
.wizard-verified-evidence-summary { display: grid; grid-template-columns: 2.35rem minmax(0, 1fr); gap: .65rem; padding: .85rem; align-content: center; color: #12633b; border: 1px solid #cfe2d6; border-radius: .7rem; background: linear-gradient(145deg, #effaf3, #fff); }
.wizard-verified-evidence-summary > span { display: grid; width: 2.35rem; height: 2.35rem; color: #fff; border-radius: 50%; background: #16844c; place-items: center; }
.wizard-verified-evidence-summary > span .icon { width: 1.35rem; height: 1.35rem; }
.wizard-verified-evidence-summary strong, .wizard-verified-evidence-summary small { display: block; }
.wizard-verified-evidence-summary p { margin: .3rem 0 .45rem; color: #53647a; font-size: .76rem; line-height: 1.45; }
.wizard-verified-evidence-summary small { color: #087a42; font-size: .74rem; font-weight: 750; }
.wizard-community-verified-gallery { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin-top: .25rem; }
.wizard-community-verified-gallery figure { min-width: 0; margin: 0; overflow: hidden; border: 1px solid #cfe2d6; border-radius: .55rem; background: #fff; }
.wizard-community-verified-gallery img { display: block; width: 100%; aspect-ratio: 1.55 / 1; object-fit: contain; background: #eef5f0; }
.wizard-community-verified-gallery figcaption { padding: .35rem .45rem; color: #12633b; font-size: .68rem; font-weight: 750; }
.wizard-metamap-document-report .wizard-metamap-document-checks { grid-column: 1 / -1; border-left: 0; }
.wizard-metamap-document-checks { display: grid; gap: .15rem; padding: .75rem .8rem .85rem; border-left: 1px solid #dce9e1; }
.wizard-metamap-document-check { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .55rem; align-items: center; padding: .55rem .45rem; border-radius: .55rem; }
.wizard-metamap-document-check:nth-child(odd) { background: #f7f9fb; }
.wizard-metamap-document-check svg { width: 1.15rem; height: 1.15rem; margin-top: .05rem; }
.wizard-metamap-document-check.is-success { color: #16844c; }
.wizard-metamap-document-check strong, .wizard-metamap-document-check small { display: block; }
.wizard-metamap-document-check strong { color: #26364f; font-size: .9rem; }
.wizard-metamap-document-check small { margin-top: .1rem; color: #69758a; font-size: .72rem; }
.wizard-phase-two-saved { display: flex; gap: .5rem; margin: .55rem 0; align-items: center; justify-content: center; color: #0c6670; font-size: .84rem; }
.wizard-phase-two-summary-bar { display: block; }
.wizard-phase-two-pending-help { display: flex; width: min(100%, 620px); gap: .65rem; margin: .65rem auto 0; padding: .65rem .85rem; align-items: center; color: #8a5300; border: 1px solid #f0d797; border-radius: 10px; background: #fff9e8; }
.wizard-phase-two-pending-help > span { flex: none; }
.wizard-phase-two-pending-help p, .wizard-phase-two-pending-help strong, .wizard-phase-two-pending-help small { display: block; margin: 0; }
.wizard-phase-two-pending-help small { margin-top: .1rem; color: #765f32; }
.wizard-action-dock { position: fixed; z-index: 80; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: minmax(150px, 220px) minmax(360px, 1fr) minmax(190px, 250px) minmax(120px, 170px); gap: 16px; min-height: 82px; padding: 10px max(24px, calc((100vw - 1480px) / 2)); align-items: center; border-top: 1px solid #dce3ed; background: rgb(255 255 255 / 96%); box-shadow: 0 -10px 30px rgb(15 31 61 / 8%); backdrop-filter: blur(12px); }
.wizard-action-dock--phase-three-complete { grid-template-columns: minmax(140px, 190px) minmax(320px, 1fr) minmax(390px, 470px) minmax(100px, 140px); }
.wizard-action-dock--menu-only { min-height: 76px; padding-block: 9px; }
.wizard-action-dock form { width: 100%; margin: 0; }
.wizard-bottom-phase-menu { grid-column: 2; grid-row: 1; min-width: 0; }
.wizard-action-dock--menu-only .wizard-bottom-phase-menu { grid-column: 1 / -1; }
.wizard-bottom-phase-menu ol { display: flex; width: 100%; gap: 8px; margin: 0; padding: 0; list-style: none; }
.wizard-bottom-phase-menu li { position: relative; flex: 1 1 0; min-width: 0; }
.wizard-bottom-phase-menu li:not(:last-child)::after { position: absolute; z-index: -1; top: 18px; right: -8px; width: 8px; height: 2px; background: #d6deea; content: ""; }
.wizard-bottom-phase-menu li > a, .wizard-bottom-phase-menu li > div { display: flex; min-height: 46px; gap: 7px; padding: 4px 6px; align-items: center; color: #69758a; border: 1px solid transparent; border-radius: 10px; text-decoration: none; }
.wizard-bottom-phase-menu li > a:hover { border-color: #cbdcf5; background: #f5f9ff; }
.wizard-bottom-phase-number { display: grid; width: 28px; height: 28px; min-width: 28px; place-items: center; color: #69758a; border: 1px solid #cdd6e3; border-radius: 50%; background: #fff; font-size: .72rem; font-weight: 850; }
.wizard-bottom-phase-copy { display: grid; min-width: 0; }
.wizard-bottom-phase-copy strong, .wizard-bottom-phase-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wizard-bottom-phase-copy strong { color: #31405b; font-size: .7rem; }
.wizard-bottom-phase-copy small { margin-top: 1px; color: #8490a3; font-size: .6rem; }
.wizard-bottom-phase-menu li.is-complete .wizard-bottom-phase-number { color: #fff; border-color: #16844c; background: #16844c; }
.wizard-bottom-phase-menu li.is-complete .wizard-bottom-phase-copy strong { color: #087a42; }
.wizard-bottom-phase-menu li.is-current > div { border-color: #a9c8f4; background: #eff6ff; box-shadow: inset 0 0 0 1px rgb(23 105 224 / 6%); }
.wizard-bottom-phase-menu li.is-current .wizard-bottom-phase-number { color: #fff; border-color: #1769e0; background: #1769e0; box-shadow: 0 4px 10px rgb(23 105 224 / 22%); }
.wizard-bottom-phase-menu li.is-current .wizard-bottom-phase-copy strong { color: #0b4fae; }
.wizard-bottom-phase-menu li.is-available .wizard-bottom-phase-number { color: #1769e0; border-color: #8db8ef; }
.wizard-bottom-phase-menu li.is-pending { opacity: .68; }
.wizard-dock-button { display: inline-flex; width: 100%; min-height: 52px; gap: 10px; align-items: center; justify-content: center; border-radius: 10px; white-space: nowrap; }
.wizard-dock-button .icon { width: 18px; height: 18px; }
.wizard-dock-button:disabled { color: #7d8798; border-color: #d8dee8; background: #eef1f5; box-shadow: none; cursor: not-allowed; }
.wizard-dock-decision-actions { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.wizard-dock-decision-actions:has(> :only-child) { grid-template-columns: 1fr; }
.wizard-dock-decision-actions .wizard-dock-button { padding-inline: 12px; font-size: .82rem; }
.wizard-back-icon { font-size: 1.55rem; line-height: .7; }
.wizard-action-dock-context { display: none; }
.wizard-action-dock-context strong { font-size: .88rem; }
.wizard-action-dock-context small { margin-top: 2px; color: #69758a; font-size: .72rem; }
.wizard-body:has(.wizard-action-dock) .wizard-page { padding-bottom: 132px; }
.wizard-body:has(.wizard-action-dock) .wizard-platform-footer { display: none; }
.wizard-dock-powered { grid-column: 4; grid-row: 1; display: flex; min-width: 0; gap: 7px; align-items: center; justify-content: flex-end; color: #7a8495; font-size: .68rem; white-space: nowrap; }
.wizard-dock-powered img { display: block; width: 112px; height: 26px; max-width: 112px; max-height: 26px; object-fit: contain; }
.wizard-dock-powered strong { max-width: 112px; color: #17213b; overflow: hidden; text-overflow: ellipsis; }
.wizard-dock-pending-actions { display: grid; gap: 4px; }
.phase-five-purchase-action { display: grid; min-width: 0; gap: 3px; }
.phase-five-purchase-action > small { color: #69758a; font-size: .66rem; font-weight: 700; text-align: center; }
.phase-four-agent-cta > .phase-five-purchase-action { display: grid; flex: 0 0 auto; gap: 5px; }
.wizard-dock-retry-link { color: var(--brand, #075fe4); font-size: .76rem; font-weight: 700; text-align: center; text-decoration: none; }
.wizard-dock-retry-link:hover { text-decoration: underline; }
.wizard-phase-two-retry-notice { display: flex; width: min(100%, 760px); gap: .8rem; margin-inline: auto; padding: .75rem 1rem; align-items: center; color: #214468; border: 1px solid #bdd5ed; border-radius: 10px; background: #f3f9ff; }
.wizard-phase-two-retry-notice p, .wizard-phase-two-retry-notice strong, .wizard-phase-two-retry-notice small { display: block; margin: 0; }
.wizard-phase-two-retry-notice small { margin-top: 2px; color: #5f7084; }
.wizard-phase-two-saved .icon { width: 1.55rem; height: 1.55rem; }
.wizard-phase-two-start-page { width: min(100% - 32px, 1140px); padding: 52px 0 112px; }
.wizard-phase-two-upload-form { align-items: end; }
.wizard-phase-two-form-wide { grid-column: 1 / -1; }
.wizard-kyc-choice { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 1rem; align-items: stretch; }
.wizard-kyc-choice > article { min-width: 0; padding: 1.1rem; border: 1px solid #d8e2ef; border-radius: 14px; background: #fff; box-shadow: 0 10px 24px rgb(15 31 61 / 7%); }
.wizard-kyc-choice h2 { margin: .65rem 0 .25rem; color: #0f1f3d; font-size: 1.12rem; }
.wizard-kyc-choice p { margin: 0; color: #69758a; font-size: .82rem; line-height: 1.45; }
.wizard-kyc-saved-result { border-color: #b9dfc8 !important; background: linear-gradient(145deg, #f0fbf4, #fff 68%) !important; }
.wizard-kyc-saved-result dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: .9rem 0; }
.wizard-kyc-saved-result dl > div { padding: .65rem; border: 1px solid #d8e8de; border-radius: 9px; background: rgb(255 255 255 / 80%); }
.wizard-kyc-saved-result dt { color: #69758a; font-size: .68rem; font-weight: 750; text-transform: uppercase; }
.wizard-kyc-saved-result dd { margin: .2rem 0 0; color: #173426; font-size: .78rem; font-weight: 800; }
.wizard-kyc-list-map { padding-top: .8rem; border-top: 1px solid #d8e8de; }
.wizard-kyc-list-map > strong { color: #173426; font-size: .8rem; }
.wizard-kyc-list-map ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem .65rem; max-height: 152px; margin: .6rem 0 0; padding: 0; overflow: auto; list-style: none; }
.wizard-kyc-list-map li { display: flex; min-width: 0; gap: .4rem; align-items: flex-start; color: #385246; font-size: .72rem; }
.wizard-kyc-list-map li .icon { width: .9rem; height: .9rem; flex: none; color: #0b8b4b; }
.wizard-kyc-current-photos { background: linear-gradient(145deg, #f3f8ff, #fff 68%) !important; }
.wizard-kyc-photo-previews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .85rem; }
.wizard-kyc-photo-previews figure { min-width: 0; margin: 0; overflow: hidden; border: 1px dashed #9eb9dc; border-radius: 10px; background: #eef5ff; }
.wizard-kyc-photo-previews img, .wizard-kyc-photo-previews figure > div { display: grid; width: 100%; aspect-ratio: 1.55 / 1; place-items: center; object-fit: contain; }
.wizard-kyc-photo-previews figure > div { gap: .35rem; align-content: center; color: #55708f; font-size: .72rem; }
.wizard-kyc-photo-previews figure > div .icon { width: 1.4rem; height: 1.4rem; }
.wizard-kyc-photo-previews figcaption { padding: .4rem .55rem; color: #334155; font-size: .72rem; font-weight: 750; background: #fff; }
.wizard-document-photo-guide { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; width: min(100%, 760px); margin: 0 auto 4px; padding: 1rem 1.1rem; align-items: center; border: 1px solid color-mix(in srgb, var(--brand) 22%, #d8dee8); border-radius: 12px; background: color-mix(in srgb, var(--brand) 5%, #fff); }
.wizard-document-photo-guide-icon { position: relative; display: grid; place-items: center; width: 4.35rem; height: 4.35rem; color: var(--brand); border: 1px solid color-mix(in srgb, var(--brand) 15%, transparent); border-radius: 15px; background: #fff; box-shadow: 0 8px 22px rgb(15 31 61 / 10%); overflow: hidden; }
.wizard-document-photo-guide-icon::after { position: absolute; inset: 8px; border: 1px solid color-mix(in srgb, var(--brand) 12%, transparent); border-radius: 10px; content: ""; animation: document-scan-halo 2.4s ease-in-out infinite; pointer-events: none; }
.wizard-document-photo-guide-icon .icon { position: relative; z-index: 1; width: 2.65rem; height: 2.65rem; }
.wizard-document-photo-guide-icon .document-search-beam { color: #20c7b5; stroke: currentColor; stroke-width: 2.4; filter: drop-shadow(0 0 3px rgb(32 199 181 / 65%)); animation: document-scan-beam 2.4s ease-in-out infinite; transform-origin: center; }
.wizard-document-photo-guide-icon .document-search-lens { animation: document-scan-lens 2.4s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.wizard-document-photo-guide strong { display: block; margin-bottom: .2rem; color: #0f1f3d; font-size: .98rem; }
.wizard-document-photo-guide p { margin: 0; color: #69758a; font-size: .88rem; line-height: 1.45; }
@keyframes document-scan-beam {
  0%, 100% { opacity: .35; transform: translateY(-2.8px) scaleX(.78); }
  50% { opacity: 1; transform: translateY(5.2px) scaleX(1); }
}
@keyframes document-scan-lens {
  0%, 100% { transform: scale(.94); }
  50% { transform: scale(1.08); }
}
@keyframes document-scan-halo {
  0%, 100% { opacity: .35; transform: scale(.96); }
  50% { opacity: .85; transform: scale(1); }
}
.wizard-phase-two-upload-field > label { display: block; margin-bottom: 8px; font-weight: 650; }
.wizard-phase-two-file-control { position: relative; display: flex; align-items: center; gap: 1rem; width: 100%; min-height: 78px; padding: 0 22px; border: 1px solid #d8dee8; border-radius: 10px; background: #fff; box-shadow: 0 8px 18px rgb(15 31 61 / 6%); }
.wizard-phase-two-file-control > svg { width: 1.5rem; height: 1.5rem; flex: 0 0 auto; color: var(--brand); }
.wizard-phase-two-file-control input[type="file"] { width: 100%; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; font-size: .95rem; }
.wizard-phase-two-file-control input[type="file"]::file-selector-button { min-height: 42px; margin-right: 1rem; padding: 0 1rem; border: 1px solid #d8dee8; border-radius: 8px; background: #fff; color: #0f1f3d; font: inherit; font-weight: 650; cursor: pointer; }
.wizard-phase-two-start-page .wizard-phase-two-consent { width: min(100%, 620px); justify-self: center; margin-top: -4px; color: #69758a; font-size: .92rem; }
.wizard-search-form .wizard-phase-two-consent input[type="checkbox"] { width: 1.1rem; height: 1.1rem; min-height: 0; padding: 0; border-radius: 4px; box-shadow: none; }
.wizard-phase-two-choice-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 4px; }
.wizard-phase-two-choice-actions:has(> :only-child) { grid-template-columns: minmax(280px, 520px); justify-content: center; }
.wizard-phase-two-choice-actions .button { display: inline-flex; width: 100%; min-height: 54px; gap: 10px; align-items: center; justify-content: center; white-space: normal; text-align: center; }
.wizard-phase-two-choice-actions .button .icon { width: 18px; height: 18px; flex: none; }
.wizard-action-dock--phase-two-preparation { grid-template-columns: minmax(150px, 220px) minmax(360px, 1fr) minmax(120px, 170px); }
.wizard-action-dock--phase-two-preparation .wizard-dock-powered { grid-column: 3; }
.wizard-phase-two-start-page .wizard-form-actions { margin-top: 0; }
.wizard-phase-two-start-page .wizard-form-actions .button,
.wizard-phase-two-start-page .wizard-form-actions .button-link { min-width: 275px; }

/* Resultado verificado: aprovecha el ancho del escritorio y reduce desplazamiento vertical. */
@media (min-width: 761px) {
  .wizard-phase-two-page:has(.wizard-phase-two-result-group.is-detailed) { padding-top: 12px; padding-bottom: 96px; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) { padding: 16px 28px 10px; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-result-header {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
    grid-template-rows: auto auto auto;
    column-gap: 1.25rem;
    justify-items: start;
    text-align: left;
  }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-step { margin-bottom: .15rem; padding: .2rem .6rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-result-header h1 { font-size: clamp(1.55rem, 2.3vw, 1.9rem); }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-result-header > p { margin: .12rem 0 0; font-size: .82rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-person {
    grid-column: 2;
    grid-row: 1 / 4;
    align-self: center;
    justify-self: end;
    padding: .45rem .7rem;
  }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-person > span { width: 2rem; height: 2rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-results { gap: .55rem; margin-top: .55rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-result-group { min-height: 0; padding: .7rem .85rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-group-title { margin-bottom: .25rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-group-title > span { width: 2rem; height: 2rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-source { padding: .28rem 0; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-watchlists { margin-top: .4rem; padding: .55rem .7rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-watchlists ul { gap: .3rem; margin: .35rem 0 .2rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-watchlists li { padding: .22rem .42rem; font-size: .7rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-report { grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); margin-top: .5rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-report > header { gap: .5rem; padding: .55rem .7rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-report header p { margin-top: .08rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-gallery { gap: .45rem; padding: .55rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-kyc-evidence-comparison:not(.is-authorized-comparison) .wizard-metamap-document-gallery img { max-height: 100px; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-gallery figcaption { padding: .28rem .45rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-checks {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .18rem .4rem;
    align-content: start;
    padding: .5rem .6rem;
  }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-check { padding: .3rem .35rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-check strong,
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-check small { display: inline; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-check small { margin: 0 0 0 .2rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-metamap-document-check small::before { content: "· "; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-verdict { margin-top: .4rem; padding: .4rem .8rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-summary-bar {
    display: grid;
    grid-template-columns: auto minmax(360px, 1fr);
    gap: .15rem .7rem;
    align-items: center;
  }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-summary-bar .wizard-phase-two-verdict { margin: .35rem 0 0; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-summary-bar .wizard-phase-two-pending-help { grid-column: 1 / -1; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-saved { margin: .3rem 0 .15rem; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-disclaimer { grid-column: 1 / -1; line-height: 1.1; }
  .wizard-phase-two-card:has(.wizard-phase-two-result-group.is-detailed) .wizard-phase-two-cost-footer { margin: .65rem -28px -10px; padding-inline: 28px; }
  .wizard-phase-two-card .wizard-phase-two-accordion > .wizard-metamap-document-report,
  .wizard-phase-two-card .wizard-phase-two-accordion > .wizard-metamap-watchlists { margin-top: 0; border: 0; border-radius: 0; }
}

@media (min-width: 901px) and (max-width: 1100px) {
  .wizard-action-dock--phase-three-complete { grid-template-columns: minmax(140px, 180px) minmax(300px, 1fr) minmax(250px, 300px) 90px; min-height: 132px; }
  .wizard-action-dock--phase-three-complete .wizard-dock-decision-actions { grid-template-columns: 1fr; gap: 6px; }
  .wizard-action-dock--phase-three-complete .wizard-dock-button { min-height: 46px; }
  .wizard-body:has(.wizard-action-dock--phase-three-complete) .wizard-page { padding-bottom: 170px; }
}

@media (max-width: 900px) {
  .wizard-action-dock { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 74px; gap: 8px 10px; min-height: 134px; padding: 8px 14px 10px; }
  .wizard-action-dock--menu-only { min-height: 70px; padding-block: 7px; }
  .wizard-bottom-phase-menu { grid-column: 1 / -1; grid-row: 1; overflow-x: auto; scrollbar-width: none; }
  .wizard-bottom-phase-menu::-webkit-scrollbar { display: none; }
  .wizard-bottom-phase-menu ol { width: max-content; min-width: 100%; }
  .wizard-bottom-phase-menu li { flex: 0 0 128px; }
  .wizard-bottom-phase-menu li > a, .wizard-bottom-phase-menu li > div { padding-inline: 6px; }
  .wizard-bottom-phase-copy strong { font-size: .72rem; }
  .wizard-body:has(.wizard-action-dock) .wizard-page { padding-bottom: 172px; }
  .wizard-body:has(.wizard-action-dock--menu-only) .wizard-page { padding-bottom: 100px; }
  .wizard-dock-powered { grid-column: 3; grid-row: 2; }
  .wizard-dock-powered span { display: none; }
  .wizard-dock-powered img { max-width: 70px; max-height: 24px; }
  .wizard-dock-powered strong { max-width: 70px; font-size: .72rem; }
  .wizard-action-dock--phase-two-preparation { grid-template-columns: minmax(0, 1fr) 74px; }
  .wizard-action-dock--phase-two-preparation .wizard-bottom-phase-menu { grid-column: 1 / -1; }
  .wizard-action-dock--phase-two-preparation .wizard-dock-powered { grid-column: 2; }
  .wizard-action-dock--phase-three-complete { min-height: 190px; }
  .wizard-action-dock--phase-three-complete .wizard-dock-decision-actions { grid-column: 1 / 3; grid-row: 3; }
  .wizard-body:has(.wizard-action-dock--phase-three-complete) .wizard-page { padding-bottom: 228px; }
}

@media (max-width: 760px) {
  .wizard-flow-shell { grid-template-columns: 1fr; gap: 12px; }
  .wizard-flow-guide { position: static; padding: 10px; overflow-x: auto; }
  .wizard-flow-guide > small { margin-bottom: 8px; }
  .wizard-flow-guide ol { display: flex; width: max-content; min-width: 100%; gap: 6px; }
  .wizard-flow-guide li { min-width: 145px; }
  .wizard-dock-button { min-height: 50px; padding-inline: 12px; }
  .wizard-phase-two-heading, .wizard-phase-two-footer { grid-template-columns: 1fr; }
  .wizard-phase-two-person { min-width: 0; }
  .wizard-phase-two-services, .wizard-document-grid, .wizard-phase-two-results { grid-template-columns: 1fr; }
  .wizard-flow-shell > .wizard-result-card { min-height: 0; }
  .wizard-phase-two-card { padding: 1.25rem 1.5rem 0; }
  .wizard-phase-two-footer { margin-inline: -1rem; padding-inline: 1rem; }
  .wizard-phase-two-cost-footer { margin-inline: -1.5rem; padding-inline: 1.5rem; }
  .wizard-phase-two-actions { display: flex; flex-direction: column-reverse; align-items: stretch; }
  .wizard-phase-two-actions .button, .wizard-phase-two-actions .button-link { width: 100%; }
  .wizard-phase-two-source { grid-template-columns: auto minmax(0, 1fr); }
  .wizard-phase-two-source > .status-badge { grid-column: 2; justify-self: start; }
  .wizard-metamap-document-report { grid-template-columns: 1fr; }
  .wizard-metamap-document-gallery { grid-template-columns: 1fr; }
  .wizard-kyc-evidence-comparison { grid-template-columns: 1fr; }
  .is-authorized-comparison .wizard-metamap-document-gallery img,
  .is-authorized-comparison .wizard-community-verified-gallery img { height: clamp(180px, 54vw, 280px); }
  .wizard-compliance-tablist, .wizard-metamap-watchlists ul { grid-template-columns: 1fr; }
  .wizard-user-dpi-heading { align-items: flex-start; flex-wrap: wrap; }
  .wizard-edit-dpi-button { width: 100%; justify-content: center; }
  .wizard-metamap-document-checks { border-top: 1px solid #dce9e1; border-left: 0; }
  .wizard-phase-two-start-page { padding-top: 52px; }
  .wizard-kyc-choice { grid-template-columns: 1fr; }
  .wizard-kyc-saved-result dl { grid-template-columns: 1fr; }
  .wizard-kyc-list-map ul { grid-template-columns: 1fr; max-height: none; }
  .wizard-document-photo-guide { gap: .75rem; padding: .85rem; align-items: start; }
  .wizard-document-photo-guide-icon { width: 3.65rem; height: 3.65rem; }
  .wizard-document-photo-guide-icon .icon { width: 2.25rem; height: 2.25rem; }
  .wizard-phase-two-file-control { min-height: 58px; padding: 10px 14px; }
  .wizard-phase-two-file-control input[type="file"]::file-selector-button { margin-right: .5rem; padding-inline: .7rem; }
  .wizard-phase-two-choice-actions, .wizard-phase-two-choice-actions:has(> :only-child) { grid-template-columns: 1fr; }
  .wizard-phase-two-start-page .wizard-form-actions .button,
  .wizard-phase-two-start-page .wizard-form-actions .button-link { min-width: 0; }
}
@media (max-width: 540px) {
  .wizard-phase-two-result-header h1 { font-size: 1.75rem; }
  .wizard-phase-two-result-header > p { font-size: .82rem; }
  .wizard-phase-two-person { width: 100%; }
  .wizard-action-dock { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 52px; gap: 6px; padding: 7px 8px max(8px, env(safe-area-inset-bottom)); }
  .wizard-dock-powered { display: flex; }
  .wizard-dock-powered img { max-width: 50px; max-height: 20px; }
  .wizard-dock-powered strong { max-width: 50px; font-size: .62rem; }
  .wizard-dock-button { font-size: .84rem; }
  .wizard-action-dock--phase-three-complete { min-height: 244px; }
  .wizard-action-dock--phase-three-complete .wizard-dock-decision-actions { grid-template-columns: 1fr; }
  .wizard-body:has(.wizard-action-dock--phase-three-complete) .wizard-page { padding-bottom: 282px; }
  .wizard-phase-two-card { padding-inline: 1rem; }
  .wizard-phase-two-cost-footer { margin-inline: -1rem; padding-inline: 1rem; }
  .wizard-phase-two-result-group { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .wizard-document-photo-guide-icon::after,
  .wizard-document-photo-guide-icon .document-search-beam,
  .wizard-document-photo-guide-icon .document-search-lens { animation: none; }
  .wizard-phase-two-accordion-chevron { transition: none; }
  .wizard-document-photo-guide-icon .document-search-beam { opacity: 1; }
}

/* Public cooperative onboarding */
.onboarding-shell {
  min-height: 100vh;
  padding: clamp(1.25rem, 4vw, 4rem);
  background:
    radial-gradient(circle at 12% 8%, rgba(18, 133, 120, .16), transparent 32rem),
    linear-gradient(145deg, #f4f8fb 0%, #eef4f2 100%);
}

.onboarding-hero,
.onboarding-form-panel,
.onboarding-status-panel {
  width: min(1120px, 100%);
  margin: 0 auto;
}

.onboarding-hero {
  padding: clamp(2rem, 6vw, 5rem);
  color: #10273d;
}

.onboarding-hero h1 {
  max-width: 850px;
  font-size: clamp(2.2rem, 6vw, 4.8rem);
  line-height: 1.02;
}

.onboarding-lead {
  max-width: 760px;
  font-size: clamp(1.1rem, 2vw, 1.4rem);
}

.onboarding-network {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 3rem 0;
}

.onboarding-network article,
.onboarding-network-core,
.onboarding-privacy-note,
.otp-card,
.onboarding-instructions,
.onboarding-validation-summary,
.onboarding-submit-box {
  padding: 1.25rem;
  border: 1px solid rgba(18, 133, 120, .22);
  border-radius: 1rem;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 16px 42px rgba(16, 39, 61, .07);
}

.onboarding-network-core {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: white;
  background: linear-gradient(120deg, #07564f, #148578);
}

.onboarding-network-core span { opacity: .85; }
.onboarding-steps-summary { display: flex; gap: 1rem; padding: 0; margin: 2rem 0; list-style: none; }
.onboarding-steps-summary li { flex: 1; display: flex; gap: .75rem; align-items: center; }
.onboarding-steps-summary span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; color: white; background: #128578; }
.onboarding-primary-action { margin-right: 1rem; }
.onboarding-back-link { display: inline-block; margin-top: 1rem; }

.onboarding-status-shell { display: grid; min-height: 100svh; place-items: center; }
.onboarding-status-panel { max-width: 920px; padding: clamp(1.5rem, 4vw, 3.5rem); overflow: hidden; }
.onboarding-status-hero { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.onboarding-status-hero h1 { margin: .2rem 0 .65rem; color: #10273d; font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.05; }
.onboarding-status-lead { max-width: 720px; margin: 0; color: #536779; font-size: clamp(1rem, 2vw, 1.18rem); line-height: 1.65; }
.onboarding-status-mark { display: grid; width: 4.25rem; height: 4.25rem; place-items: center; color: #087365; border: 1px solid #a8ddd3; border-radius: 1.25rem; background: #e7f7f3; box-shadow: 0 12px 28px rgba(8, 115, 101, .14); }
.onboarding-status-mark .icon { width: 2.25rem; height: 2.25rem; }
.onboarding-status-summary { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: 1rem 1.15rem; margin: 2rem 0; border: 1px solid #d8e5e8; border-radius: .9rem; background: #f5f9fa; }
.onboarding-status-summary > div { display: grid; gap: .2rem; }
.onboarding-status-summary span:not(.status-badge) { color: #637586; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.onboarding-status-summary strong { color: #17364e; overflow-wrap: anywhere; }
.onboarding-review-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0; margin: 0; list-style: none; }
.onboarding-review-steps li { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; padding-right: 1rem; }
.onboarding-review-steps li:not(:last-child)::after { position: absolute; top: 1.15rem; right: .3rem; left: 2.8rem; height: 2px; background: #dbe5e8; content: ""; }
.onboarding-review-steps li > span { z-index: 1; display: grid; width: 2.35rem; height: 2.35rem; place-items: center; color: #718292; border: 1px solid #d4dfe3; border-radius: 50%; background: #f5f8f9; }
.onboarding-review-steps li.is-complete > span { color: #087365; border-color: #9fd7cc; background: #e4f6f1; }
.onboarding-review-steps li.is-current > span { color: #185f98; border-color: #a9cae3; background: #eaf4fb; box-shadow: 0 0 0 5px rgba(24, 95, 152, .08); }
.onboarding-review-steps .icon { width: 1.1rem; height: 1.1rem; }
.onboarding-review-steps li > div { z-index: 1; padding-top: .05rem; background: white; }
.onboarding-review-steps small { display: block; margin-bottom: .18rem; color: #6b7e8e; font-size: .7rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.onboarding-review-steps strong { display: block; color: #17364e; }
.onboarding-review-steps p { margin: .35rem 0 0; color: #647687; font-size: .84rem; line-height: 1.45; }
.onboarding-waiting-note { display: flex; gap: .9rem; padding: 1rem 1.15rem; margin-top: 2rem; color: #174d48; border: 1px solid #b9ded7; border-radius: .9rem; background: #edf8f5; }
.onboarding-waiting-note > span { display: grid; width: 2.5rem; height: 2.5rem; flex: none; place-items: center; color: #087365; border-radius: .7rem; background: #d9f1eb; }
.onboarding-waiting-note .icon { width: 1.2rem; height: 1.2rem; }
.onboarding-waiting-note p { margin: .25rem 0 0; color: #4c6d69; line-height: 1.5; }
.onboarding-status-actions { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-top: 1.5rem; }
.onboarding-status-actions p { margin: 0; color: #687a89; font-size: .88rem; }

/* Full-screen public onboarding presentation */
.onboarding-landing { position: relative; display: grid; min-height: 100svh; padding: clamp(1rem, 2vw, 2rem); place-items: center; overflow: hidden; }
.onboarding-network-background { position: fixed; z-index: 0; inset: 0; display: block; width: 100vw; height: 100vh; opacity: .78; pointer-events: none; }
.onboarding-landing::before,
.onboarding-landing::after { position: fixed; z-index: 0; width: clamp(18rem, 34vw, 34rem); height: clamp(18rem, 34vw, 34rem); border-radius: 50%; filter: blur(4px); pointer-events: none; content: ""; }
.onboarding-landing::before { top: -18%; right: -8%; background: radial-gradient(circle, rgba(18, 133, 120, .15), transparent 68%); }
.onboarding-landing::after { bottom: -24%; left: -10%; background: radial-gradient(circle, rgba(36, 105, 174, .12), transparent 68%); }
.onboarding-landing .onboarding-hero { position: relative; z-index: 1; display: grid; width: min(1540px, 100%); max-width: none; grid-template-columns: minmax(0, 1.08fr) minmax(30rem, .92fr); gap: clamp(1.5rem, 4vw, 4.5rem); padding: clamp(1.25rem, 3.4vw, 3.75rem); align-items: center; }
.onboarding-hero-copy { min-width: 0; }
.onboarding-landing .onboarding-hero h1 { max-width: 980px; margin: 0; font-size: clamp(2.65rem, 5.6vw, 6rem); letter-spacing: -.055em; line-height: .96; text-wrap: balance; }
.onboarding-landing .onboarding-lead { max-width: 880px; margin: 1.2rem 0 0; color: #405568; font-size: clamp(1rem, 1.55vw, 1.35rem); line-height: 1.5; text-wrap: balance; }
.onboarding-landing .onboarding-network { position: relative; margin: 0; align-content: center; isolation: isolate; }
.onboarding-landing .onboarding-network-core { position: relative; z-index: 2; display: grid; min-height: 5rem; grid-template-columns: auto 1fr auto; gap: .8rem; padding: 1rem 1.15rem; border: 0; align-items: center; box-shadow: 0 18px 45px rgba(7, 86, 79, .2); }
.onboarding-core-mark { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid rgba(255, 255, 255, .24); border-radius: .75rem; background: rgba(255, 255, 255, .12); }
.onboarding-core-mark .icon { width: 1.2rem; height: 1.2rem; }
.onboarding-landing .onboarding-network article { position: relative; z-index: 2; display: grid; min-height: 8.4rem; grid-template-columns: auto minmax(0, 1fr); gap: .8rem; padding: 1rem; align-content: center; align-items: start; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.onboarding-landing .onboarding-network article:hover { border-color: rgba(18, 133, 120, .5); box-shadow: 0 20px 42px rgba(16, 39, 61, .12); transform: translateY(-4px); }
.onboarding-landing .onboarding-network article strong { display: block; color: #10273d; font-size: .92rem; line-height: 1.3; }
.onboarding-landing .onboarding-network article p { margin: .28rem 0 0; color: #5a6d7e; font-size: .8rem; line-height: 1.45; }
.onboarding-card-icon { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; color: #0d756b; border-radius: .7rem; background: rgba(18, 133, 120, .1); }
.onboarding-card-icon .icon { width: 1.12rem; height: 1.12rem; }
.onboarding-network-orbit { position: absolute; z-index: -1; border: 1px solid rgba(18, 133, 120, .18); border-radius: 50%; pointer-events: none; }
.onboarding-network-orbit-one { top: -3.5rem; right: -2rem; width: 12rem; height: 12rem; }
.onboarding-network-orbit-two { bottom: -4rem; left: -3rem; width: 15rem; height: 15rem; border-style: dashed; }
.onboarding-landing .onboarding-privacy-note { display: grid; max-width: 900px; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; margin-top: 1.5rem; padding: 1rem; align-items: start; box-shadow: 0 12px 30px rgba(16, 39, 61, .06); }
.onboarding-privacy-icon { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; color: #0d756b; border-radius: .7rem; background: rgba(18, 133, 120, .1); }
.onboarding-privacy-icon .icon { width: 1.15rem; height: 1.15rem; }
.onboarding-landing .onboarding-privacy-note p { margin: .25rem 0 0; color: #5a6d7e; font-size: .82rem; line-height: 1.5; }
.onboarding-landing .onboarding-steps-summary { grid-column: 1 / -1; width: min(1080px, 100%); margin: .25rem auto 0; justify-self: center; }
.onboarding-landing .onboarding-steps-summary li { position: relative; justify-content: center; min-width: 0; }
.onboarding-landing .onboarding-steps-summary li:not(:last-child)::after { position: absolute; top: 1rem; left: calc(50% + 1.4rem); width: calc(100% - 2.8rem); height: 1px; background: linear-gradient(90deg, rgba(18, 133, 120, .45), rgba(18, 133, 120, .08)); content: ""; }
.onboarding-landing .onboarding-steps-summary span { position: relative; z-index: 1; flex: none; box-shadow: 0 7px 16px rgba(18, 133, 120, .18); }
.onboarding-landing .onboarding-steps-summary strong { position: relative; z-index: 1; color: #20394e; font-size: .86rem; }
.onboarding-hero-actions { display: flex; grid-column: 1 / -1; gap: .75rem; justify-content: center; align-items: center; margin-top: -.1rem; }
.onboarding-hero-actions .button { min-width: 13rem; margin: 0; }
.onboarding-hero-actions .onboarding-primary-action .icon { width: 1rem; height: 1rem; transition: transform 160ms ease; }
.onboarding-hero-actions .onboarding-primary-action:hover .icon { transform: translateX(3px); }
.onboarding-hero-actions .onboarding-back-link { display: inline-flex; margin: 0; }

@media (prefers-reduced-motion: no-preference) {
  .onboarding-landing::before { animation: onboarding-ambient-one 10s ease-in-out infinite alternate; }
  .onboarding-landing::after { animation: onboarding-ambient-two 12s ease-in-out infinite alternate; }
  .onboarding-hero-copy { animation: onboarding-rise .7s cubic-bezier(.2, .8, .2, 1) both; }
  .onboarding-landing .onboarding-network-core { animation: onboarding-rise .7s .12s cubic-bezier(.2, .8, .2, 1) both, onboarding-core-glow 4s 1s ease-in-out infinite; }
  .onboarding-landing .onboarding-network article { animation: onboarding-rise .65s cubic-bezier(.2, .8, .2, 1) both; }
  .onboarding-landing .onboarding-network article:nth-of-type(1) { animation-delay: .2s; }
  .onboarding-landing .onboarding-network article:nth-of-type(2) { animation-delay: .28s; }
  .onboarding-landing .onboarding-network article:nth-of-type(3) { animation-delay: .36s; }
  .onboarding-landing .onboarding-network article:nth-of-type(4) { animation-delay: .44s; }
  .onboarding-network-orbit-one { animation: onboarding-orbit 16s linear infinite; }
  .onboarding-network-orbit-two { animation: onboarding-orbit 22s linear infinite reverse; }
  .onboarding-landing .onboarding-steps-summary { animation: onboarding-rise .65s .48s cubic-bezier(.2, .8, .2, 1) both; }
  .onboarding-hero-actions { animation: onboarding-rise .65s .58s cubic-bezier(.2, .8, .2, 1) both; }
}
@keyframes onboarding-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes onboarding-core-glow { 0%, 100% { box-shadow: 0 18px 45px rgba(7, 86, 79, .2); } 50% { box-shadow: 0 22px 55px rgba(7, 86, 79, .32); } }
@keyframes onboarding-orbit { to { transform: rotate(360deg); } }
@keyframes onboarding-ambient-one { to { transform: translate(-2rem, 2rem) scale(1.08); } }
@keyframes onboarding-ambient-two { to { transform: translate(2.5rem, -1.5rem) scale(.94); } }

@media (max-width: 1050px) {
  .onboarding-landing { overflow: visible; }
  .onboarding-landing .onboarding-hero { grid-template-columns: 1fr; }
  .onboarding-landing .onboarding-hero h1, .onboarding-landing .onboarding-lead { max-width: 900px; }
  .onboarding-landing .onboarding-network { margin-top: .5rem; }
}
@media (max-width: 700px) {
  .onboarding-landing { padding: .5rem; }
  .onboarding-landing .onboarding-hero { gap: 1.25rem; padding: 1.25rem .85rem 1.75rem; }
  .onboarding-landing .onboarding-hero h1 { font-size: clamp(2.35rem, 12vw, 3.35rem); line-height: .98; }
  .onboarding-landing .onboarding-lead { margin-top: .85rem; font-size: .96rem; }
  .onboarding-landing .onboarding-network article { min-height: 0; }
  .onboarding-landing .onboarding-network-core { grid-template-columns: auto 1fr; }
  .onboarding-landing .onboarding-network-core > span:last-child { grid-column: 2; }
  .onboarding-landing .onboarding-steps-summary { align-items: stretch; }
  .onboarding-landing .onboarding-steps-summary li { justify-content: flex-start; }
  .onboarding-landing .onboarding-steps-summary li::after { display: none; }
  .onboarding-hero-actions { width: 100%; flex-direction: column; }
  .onboarding-hero-actions .button { width: min(100%, 24rem); }
}
@media (prefers-reduced-motion: reduce) {
  .onboarding-landing *, .onboarding-landing::before, .onboarding-landing::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.onboarding-login-invitation {
  position: relative;
  display: grid;
  gap: .9rem;
  margin-top: 1.6rem;
  padding: 1.15rem;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-brand-200) 82%, var(--color-border));
  border-radius: 1rem;
  background:
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--color-brand-100) 75%, transparent), transparent 9rem),
    linear-gradient(145deg, var(--color-surface), color-mix(in srgb, var(--color-brand-50) 62%, var(--color-surface)));
  box-shadow: 0 12px 30px rgb(22 40 72 / 7%);
  isolation: isolate;
}
.onboarding-login-invitation::after {
  position: absolute;
  z-index: -1;
  right: -2.75rem;
  bottom: -3.25rem;
  width: 7.5rem;
  height: 7.5rem;
  border: 1px solid color-mix(in srgb, var(--color-brand-300) 35%, transparent);
  border-radius: 50%;
  content: "";
}
.onboarding-invitation-heading { display: flex; gap: .75rem; align-items: center; }
.onboarding-invitation-heading > div { display: grid; min-width: 0; gap: .18rem; }
.onboarding-invitation-icon {
  display: grid;
  width: 2.65rem;
  height: 2.65rem;
  flex: none;
  place-items: center;
  color: #fff;
  border-radius: .8rem;
  background: linear-gradient(145deg, var(--color-brand-600), var(--color-brand-900));
  box-shadow: 0 8px 20px color-mix(in srgb, var(--color-brand-700) 24%, transparent);
}
.onboarding-invitation-icon .icon { width: 1.25rem; height: 1.25rem; }
.onboarding-invitation-kicker { color: var(--color-brand-700); font-size: .66rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.onboarding-invitation-heading strong { color: var(--color-ink); font-family: var(--font-display); font-size: .98rem; line-height: 1.25; }
.onboarding-login-invitation > p:not(.onboarding-invitation-note) { margin: 0; color: var(--color-muted); font-size: .82rem; line-height: 1.5; }
.onboarding-invitation-action {
  display: flex;
  min-height: 2.8rem;
  gap: .75rem;
  align-items: center;
  justify-content: space-between;
  padding: .72rem .75rem .72rem .9rem;
  color: var(--color-brand-800);
  border: 1px solid var(--color-brand-200);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-surface) 88%, transparent);
  font-size: .84rem;
  font-weight: 800;
  text-decoration: none;
  transition: color 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.onboarding-invitation-action:hover { color: #fff; border-color: var(--color-brand-700); background: var(--color-brand-700); box-shadow: 0 8px 20px color-mix(in srgb, var(--color-brand-700) 22%, transparent); transform: translateY(-1px); }
.onboarding-invitation-action:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.onboarding-invitation-arrow { display: grid; width: 1.7rem; height: 1.7rem; flex: none; place-items: center; border-radius: 50%; background: var(--color-brand-100); transition: background 160ms ease, transform 160ms ease; }
.onboarding-invitation-arrow .icon { width: .9rem; height: .9rem; }
.onboarding-invitation-action:hover .onboarding-invitation-arrow { color: var(--color-brand-800); background: #fff; transform: translateX(2px); }
.onboarding-invitation-note { display: flex; gap: .42rem; align-items: center; margin: -.15rem 0 0; color: var(--color-muted); font-size: .7rem; line-height: 1.35; }
.onboarding-invitation-note .icon { width: .9rem; height: .9rem; flex: none; color: var(--color-success-700, #168252); }
@media (max-width: 480px) {
  .onboarding-login-invitation { padding: 1rem; border-radius: .9rem; }
  .onboarding-invitation-heading { align-items: flex-start; }
  .onboarding-invitation-heading strong { font-size: .92rem; }
}
.onboarding-form-panel fieldset { margin: 1.5rem 0; padding: 1.25rem; border: 1px solid #d8e4e7; border-radius: .9rem; }
.onboarding-form-panel legend { padding: 0 .5rem; font-size: 1.1rem; font-weight: 700; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.form-grid-wide { grid-column: 1 / -1; }
.otp-card { margin-top: 1.5rem; }
.otp-form { display: grid; grid-template-columns: minmax(12rem, 1fr) auto; gap: .75rem; align-items: end; margin-top: 1rem; }
.otp-form label { grid-column: 1 / -1; }

/* Guided onboarding application: roomy on desktop, naturally stacked on small screens. */
.onboarding-application-shell { display: grid; min-height: 100svh; padding: 30px; place-items: center; }
.onboarding-application-panel { display: grid; width: min(1520px, 100%); min-height: 0; grid-template-rows: auto auto auto; padding: clamp(1.35rem, 2vw, 2rem); overflow: visible; border: 1px solid rgb(255 255 255 / 78%); border-radius: 1.35rem; background: rgb(255 255 255 / 94%); box-shadow: 0 28px 80px rgb(16 39 61 / 12%); }
.public-body .onboarding-application-panel::before { display: none; content: none; }
.onboarding-application-header { position: relative; display: grid; grid-template-columns: minmax(24rem, .9fr) minmax(30rem, 1.1fr) auto; gap: clamp(1rem, 2vw, 2rem); padding-bottom: 1.15rem; border-bottom: 1px solid var(--color-border); align-items: center; }
.onboarding-step-label { display: flex; gap: .65rem; align-items: center; margin-bottom: .55rem; }
.onboarding-step-label > span { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; color: #fff; border-radius: .7rem; background: linear-gradient(145deg, #07564f, #148578); box-shadow: 0 8px 18px rgb(18 133 120 / 20%); font-weight: 850; }
.onboarding-step-label div { display: grid; gap: .05rem; }
.onboarding-step-label small { color: var(--color-muted); font-size: .68rem; font-weight: 750; letter-spacing: .075em; text-transform: uppercase; }
.onboarding-step-label strong { color: var(--color-brand-800); font-size: .85rem; }
.onboarding-application-intro h1 { margin: 0; color: #10273d; font-size: clamp(1.8rem, 2.5vw, 2.55rem); line-height: 1.08; letter-spacing: -.025em; text-wrap: balance; }
.onboarding-application-intro > p:last-child { max-width: 42rem; margin: .45rem 0 0; color: var(--color-muted); font-size: .9rem; line-height: 1.5; }
.onboarding-application-progress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.onboarding-application-progress li { position: relative; display: flex; min-width: 0; gap: .65rem; align-items: center; }
.onboarding-application-progress li:not(:last-child)::after { position: absolute; z-index: 0; top: 1rem; left: 2.25rem; width: calc(100% - 2.65rem); height: 2px; background: #dce5e8; content: ""; }
.onboarding-application-progress li.is-complete::after { background: #36a397; }
.onboarding-application-progress li > span { position: relative; z-index: 1; display: grid; width: 2rem; height: 2rem; flex: none; place-items: center; color: #758797; border: 2px solid #dce5e8; border-radius: 50%; background: #fff; font-size: .78rem; font-weight: 850; }
.onboarding-application-progress li.is-complete > span { color: #0d756b; border-color: #9dd8d0; background: #e8f8f5; }
.onboarding-application-progress li.is-current > span { color: #fff; border-color: #0d756b; background: #0d756b; box-shadow: 0 0 0 5px rgb(18 133 120 / 10%); }
.onboarding-application-progress .icon { width: 1rem; height: 1rem; }
.onboarding-application-progress li div { position: relative; z-index: 1; display: grid; min-width: 0; gap: .05rem; padding-right: .4rem; background: #fff; }
.onboarding-application-progress small { color: #8493a0; font-size: .62rem; font-weight: 750; text-transform: uppercase; }
.onboarding-application-progress strong { overflow: hidden; color: #5a6d7e; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.onboarding-application-progress .is-current strong { color: #10273d; }
.onboarding-exit-link { display: inline-flex; gap: .4rem; align-items: center; justify-self: end; padding: .45rem .65rem; color: #5b6d7d; border: 1px solid #d8e4e7; border-radius: .58rem; background: #fff; font-size: .74rem; font-weight: 750; text-decoration: none; transition: color 150ms ease, border-color 150ms ease, background 150ms ease; }
.onboarding-exit-link .icon { width: .9rem; height: .9rem; }
.onboarding-exit-link:hover { color: #07564f; border-color: #9bc9c3; background: #f3fbf9; }
.onboarding-exit-link:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.onboarding-resume-disclosure { position: absolute; z-index: 5; top: calc(100% + .55rem); right: 0; }
.onboarding-resume-disclosure > summary { color: var(--color-muted); font-size: .74rem; cursor: pointer; list-style: none; }
.onboarding-resume-disclosure > summary::-webkit-details-marker { display: none; }
.onboarding-resume-disclosure > summary span { margin-left: .3rem; color: var(--color-brand-700); font-weight: 800; }
.onboarding-resume-disclosure[open] > summary { text-align: right; }
.onboarding-resume-card { display: grid; grid-template-columns: minmax(0, .8fr) minmax(18rem, 1.2fr); gap: 1rem; margin: 0; padding: 1rem; border-color: var(--color-border); border-radius: .8rem; box-shadow: none; align-items: center; }
.onboarding-resume-disclosure .onboarding-resume-card { width: min(38rem, calc(100vw - 4rem)); margin-top: .5rem; background: #fff; box-shadow: 0 18px 50px rgb(16 39 61 / 16%); }
.onboarding-resume-card h2 { margin: 0; font-size: 1rem; line-height: 1.2; }
.onboarding-resume-card p { margin: .25rem 0 0; color: var(--color-muted); font-size: .78rem; line-height: 1.4; }
.onboarding-resume-form { grid-template-columns: minmax(10rem, 1fr) auto; gap: .5rem; margin: 0; align-items: center; }
.onboarding-resume-form input:not([type="submit"]) { min-height: 2.6rem; padding: .55rem .7rem; }
.onboarding-resume-form .button { min-height: 2.6rem; padding: .58rem .85rem; white-space: nowrap; }
.onboarding-application-form { height: auto; grid-template-columns: minmax(18rem, .72fr) minmax(0, 1.72fr); grid-template-rows: auto auto; gap: 1.15rem 1.25rem; margin: 1.35rem 0 0; align-items: stretch; }
.onboarding-form-panel .onboarding-form-section { min-width: 0; height: 100%; margin: 0; padding: 1.25rem 1.3rem 1.15rem; border: 1px solid #dce7e9; border-radius: 1rem; background: linear-gradient(155deg, #fff, #fbfdfd); box-shadow: 0 10px 28px rgb(16 39 61 / 5%); }
.onboarding-form-panel .onboarding-form-section::before { display: none; content: none; }
.onboarding-form-panel .onboarding-form-section legend { display: flex; gap: .7rem; padding: 0 .45rem; align-items: center; }
.onboarding-form-panel .onboarding-form-section legend > span:last-child { display: grid; gap: .08rem; }
.onboarding-form-panel .onboarding-form-section legend strong { color: #10273d; font-size: 1rem; }
.onboarding-form-panel .onboarding-form-section legend small { color: var(--color-muted); font-size: .7rem; font-weight: 500; }
.onboarding-section-icon { display: grid; width: 2.15rem; height: 2.15rem; place-items: center; color: #0d756b; border-radius: .68rem; background: #e7f6f3; }
.onboarding-section-icon .icon { width: 1.08rem; height: 1.08rem; }
.onboarding-application-form .form-grid { height: 100%; gap: .75rem 1rem; align-content: space-evenly; }
.onboarding-administrator-grid { grid-template-columns: 1fr; }
.onboarding-cooperative-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.onboarding-grid-span-two { grid-column: span 2; }
.onboarding-field { position: relative; display: grid; min-width: 0; gap: .28rem; align-content: center; }
.onboarding-field:focus-within { z-index: 40; }
.onboarding-application-form .onboarding-field label { margin: 0; color: #344b5e; font-size: .73rem; font-weight: 760; line-height: 1.2; }
.onboarding-field label span { color: #c24136; }
.onboarding-field > small { color: #728393; font-size: .65rem; line-height: 1.3; }
.onboarding-application-form input:not([type="checkbox"]):not([type="submit"]):not([type="file"]),
.onboarding-application-form select { width: 100%; min-height: 2.7rem; padding: .62rem .75rem; border: 1px solid #ccdadd; border-radius: .62rem; background: #fff; color: #20394e; font-size: .84rem; transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease; }
.onboarding-application-form input:not([type="checkbox"]):not([type="submit"]):not([type="file"])::placeholder { color: #9aa8b4; }
.onboarding-application-form input:not([type="checkbox"]):not([type="submit"]):not([type="file"]):hover,
.onboarding-application-form select:hover { border-color: #9fbabd; }
.onboarding-application-form input:not([type="checkbox"]):not([type="submit"]):not([type="file"]):focus,
.onboarding-application-form select:focus { border-color: #128578; background: #fff; box-shadow: 0 0 0 4px rgb(18 133 120 / 10%); outline: none; }
.onboarding-application-form input:not([type="checkbox"]):user-invalid { border-color: #dc766d; }
.onboarding-application-form input:disabled { color: #83929f; border-color: #dbe3e7; background: #f3f6f7; cursor: not-allowed; }
.onboarding-location-status { min-height: .85rem; }
.onboarding-municipality-options { position: absolute; z-index: 30; right: 0; bottom: calc(100% - .75rem); left: 0; max-height: 14rem; padding: .35rem; overflow-y: auto; overscroll-behavior: contain; border: 1px solid #b9cdcf; border-radius: .65rem; background: #fff; box-shadow: 0 14px 34px rgb(16 39 61 / 18%); }
.onboarding-municipality-options[hidden] { display: none; }
.onboarding-municipality-option { display: block; width: 100%; padding: .58rem .65rem; color: #20394e; border: 0; border-radius: .45rem; background: transparent; font: inherit; font-size: .8rem; text-align: left; cursor: pointer; }
.onboarding-municipality-option:hover,
.onboarding-municipality-option:focus-visible,
.onboarding-municipality-option.is-active { color: #07564f; background: #e7f6f3; outline: none; }
.onboarding-municipality-empty { margin: 0; padding: .7rem; color: #728393; font-size: .75rem; text-align: center; }
.onboarding-ownership-upload { display: grid; min-width: 0; grid-template-columns: minmax(12rem, .8fr) minmax(13rem, 1.2fr); gap: .7rem; padding: .65rem .75rem; border: 1px dashed #9bc9c3; border-radius: .72rem; background: #f3fbf9; align-items: center; }
.onboarding-upload-copy { display: flex; min-width: 0; gap: .6rem; align-items: center; }
.onboarding-upload-copy > div { display: grid; min-width: 0; gap: .12rem; }
.onboarding-upload-copy label { color: #204b48; font-size: .72rem; font-weight: 800; line-height: 1.25; }
.onboarding-upload-copy small { color: #6b817f; font-size: .63rem; }
.onboarding-upload-icon { display: grid; width: 2.2rem; height: 2.2rem; flex: none; place-items: center; color: #0d756b; border-radius: .65rem; background: #dff3ef; }
.onboarding-upload-icon .icon { width: 1rem; height: 1rem; }
.onboarding-ownership-upload input[type="file"] { width: 100%; min-width: 0; color: #536878; font-size: .7rem; }
.onboarding-ownership-upload input[type="file"]::file-selector-button { margin-right: .55rem; padding: .55rem .7rem; color: #07564f; border: 1px solid #9bc9c3; border-radius: .5rem; background: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.onboarding-file-attached { grid-column: 1 / -1; color: #0d756b; font-size: .65rem; }
.onboarding-application-actions { display: flex; grid-column: 1 / -1; gap: 1rem; justify-content: space-between; padding: .85rem 1rem; border: 1px solid #d8e7e5; border-radius: .9rem; background: linear-gradient(90deg, #f6fbfa, #fbfdfd); align-items: center; }
.onboarding-authority-confirmation { display: flex; max-width: none; gap: .7rem; margin: 0; align-items: center; text-align: left; cursor: pointer; }
.onboarding-authority-confirmation input { width: 1.18rem; height: 1.18rem; flex: none; accent-color: #0d756b; }
.onboarding-authority-confirmation > span { display: grid; gap: .08rem; }
.onboarding-authority-confirmation strong { color: #20394e; font-size: .78rem; }
.onboarding-authority-confirmation small { color: var(--color-muted); font-size: .68rem; }
.onboarding-save-action { display: flex; gap: .8rem; align-items: center; }
.onboarding-save-action > small { max-width: 12rem; color: var(--color-muted); font-size: .66rem; line-height: 1.3; text-align: right; }
.onboarding-application-actions .button { display: inline-flex; min-height: 2.75rem; gap: .55rem; padding: .68rem 1.05rem; align-items: center; white-space: nowrap; }
.onboarding-application-actions .button .icon { width: .95rem; height: .95rem; transition: transform 150ms ease; }
.onboarding-application-actions .button:hover .icon { transform: translateX(2px); }
.onboarding-application-panel > .otp-card { margin-top: .65rem; padding: .75rem; box-shadow: none; }
.onboarding-email-verification { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(19rem, .55fr); gap: 0; margin-top: 1.25rem; overflow: hidden; border: 1px solid #d7e3e7; border-radius: 1.15rem; background: #fff; box-shadow: 0 18px 48px rgb(16 39 61 / 9%); }
.onboarding-verification-main { display: grid; min-width: 0; gap: 1.15rem; padding: clamp(1.25rem, 2vw, 1.8rem); align-content: start; }
.onboarding-verification-header { display: flex; gap: .9rem; align-items: flex-start; }
.onboarding-verification-header > div { min-width: 0; }
.onboarding-verification-icon,
.onboarding-access-icon { display: grid; width: 2.85rem; height: 2.85rem; flex: none; place-items: center; border-radius: .85rem; }
.onboarding-verification-icon { color: #0d756b; background: #e5f6f3; box-shadow: inset 0 0 0 1px #c8e9e4; }
.onboarding-verification-icon .icon,
.onboarding-access-icon .icon { width: 1.35rem; height: 1.35rem; }
.onboarding-verification-kicker { margin: 0 0 .28rem; color: #0d756b; font-size: .68rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.onboarding-verification-header h2 { margin: 0; color: #10273d; font-size: clamp(1.35rem, 2vw, 1.75rem); letter-spacing: -.02em; }
.onboarding-verification-header p:last-child { margin: .35rem 0 0; color: #647787; font-size: .84rem; line-height: 1.5; }
.onboarding-email-destination { display: flex; min-width: 0; gap: .75rem; justify-content: space-between; padding: .78rem .9rem; border: 1px solid #dce7ea; border-radius: .75rem; background: #f7fafb; align-items: center; }
.onboarding-email-destination span { color: #718291; font-size: .76rem; }
.onboarding-email-destination strong { overflow: hidden; color: #20394e; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.onboarding-code-delivery { display: flex; gap: 1rem; justify-content: space-between; padding-top: .15rem; align-items: center; }
.onboarding-code-delivery > div { display: grid; gap: .18rem; }
.onboarding-code-delivery strong { color: #20394e; font-size: .86rem; }
.onboarding-code-delivery small { color: #718291; font-size: .72rem; }
.onboarding-code-delivery form { flex: none; margin: 0; }
.onboarding-send-code { display: inline-flex; min-height: 2.6rem; gap: .48rem; margin: 0; padding: .6rem .85rem; align-items: center; }
.onboarding-send-code .icon { width: .95rem; height: .95rem; }
.onboarding-otp-form { display: grid; grid-template-columns: minmax(12rem, 1fr) auto; gap: .85rem; align-items: end; }
.onboarding-otp-field { display: grid; min-width: 0; gap: .35rem; }
.onboarding-otp-field label { margin: 0; color: #344b5e; font-size: .76rem; font-weight: 800; }
.onboarding-otp-field input { width: 100%; min-height: 3.2rem; padding: .68rem 1rem; color: #10273d; border: 1px solid #b9cbd0; border-radius: .72rem; background: #fff; font-size: 1.15rem; font-weight: 850; letter-spacing: .34em; transition: border-color 150ms ease, box-shadow 150ms ease; }
.onboarding-otp-field input::placeholder { color: #aab6bd; }
.onboarding-otp-field input:focus { border-color: #128578; outline: 0; box-shadow: 0 0 0 4px rgb(18 133 120 / 12%); }
.onboarding-otp-field small { color: #7b8b97; font-size: .68rem; }
.onboarding-verification-primary { display: inline-flex; min-height: 3.2rem; gap: .55rem; margin: 0; padding: .75rem 1.15rem; align-items: center; justify-content: center; white-space: nowrap; }
.onboarding-verification-primary .icon { width: .95rem; height: .95rem; }
.onboarding-verification-complete { display: flex; gap: .75rem; padding: .85rem; color: #0b6b49; border: 1px solid #b9e3d3; border-radius: .75rem; background: #eefaf5; align-items: center; }
.onboarding-verification-complete > span { display: grid; width: 2rem; height: 2rem; flex: none; place-items: center; }
.onboarding-verification-complete .icon { width: 1.3rem; height: 1.3rem; }
.onboarding-verification-complete > div { display: grid; gap: .12rem; }
.onboarding-verification-complete strong { font-size: .84rem; }
.onboarding-verification-complete small { color: #4f7668; font-size: .72rem; }
.onboarding-access-explanation { position: relative; display: grid; gap: .7rem; padding: clamp(1.25rem, 2vw, 1.8rem); overflow: hidden; border-left: 1px solid #d5e5e7; background: linear-gradient(155deg, #eef8f7 0%, #f5f8fb 100%); align-content: start; }
.onboarding-access-explanation::after { position: absolute; right: -4rem; bottom: -4.5rem; width: 10rem; height: 10rem; border: 1px solid rgb(18 133 120 / 13%); border-radius: 50%; content: ""; pointer-events: none; }
.onboarding-access-icon { color: #fff; background: linear-gradient(145deg, #07564f, #148578); box-shadow: 0 10px 24px rgb(7 86 79 / 22%); }
.onboarding-access-explanation h3 { margin: -.1rem 0 0; color: #10273d; font-size: 1.12rem; line-height: 1.25; text-wrap: balance; }
.onboarding-access-explanation > p:not(.onboarding-verification-kicker) { margin: 0; color: #5e7281; font-size: .76rem; line-height: 1.5; }
.onboarding-access-steps { display: grid; gap: .78rem; margin: .25rem 0 0; padding: .9rem 0 0; border-top: 1px solid #d4e2e4; list-style: none; }
.onboarding-access-steps li { position: relative; display: grid; grid-template-columns: 1.7rem minmax(0, 1fr); gap: .65rem; align-items: start; }
.onboarding-access-steps li:not(:last-child)::after { position: absolute; top: 1.8rem; bottom: -.7rem; left: .82rem; width: 1px; background: #c5d9dc; content: ""; }
.onboarding-access-steps li > span { position: relative; z-index: 1; display: grid; width: 1.7rem; height: 1.7rem; place-items: center; color: #617783; border: 1px solid #c6d9dc; border-radius: 50%; background: #fff; font-size: .68rem; font-weight: 850; }
.onboarding-access-steps li.is-current > span { color: #fff; border-color: #0d756b; background: #0d756b; box-shadow: 0 0 0 4px rgb(18 133 120 / 10%); }
.onboarding-access-steps li > div { display: grid; gap: .12rem; padding-top: .08rem; }
.onboarding-access-steps strong { color: #294354; font-size: .76rem; }
.onboarding-access-steps small { color: #718590; font-size: .68rem; line-height: 1.35; }
.onboarding-terms-dialog { width: min(42rem, calc(100vw - 2rem)); padding: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 1rem; color: var(--color-ink); background: var(--color-surface); box-shadow: 0 28px 80px rgb(16 39 61 / 28%); }
.onboarding-terms-dialog::backdrop { background: rgb(10 26 38 / 58%); backdrop-filter: blur(3px); }
.onboarding-terms-dialog-header { display: flex; gap: 1rem; align-items: flex-start; justify-content: space-between; padding: 1.25rem 1.35rem 1rem; border-bottom: 1px solid var(--color-border); }
.onboarding-terms-dialog-header .eyebrow { margin-bottom: .25rem; }
.onboarding-terms-dialog-header h2 { margin: 0; font-size: 1.3rem; }
.onboarding-dialog-close { display: grid; width: 2.25rem; height: 2.25rem; flex: none; padding: 0; place-items: center; color: var(--color-muted); border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-surface); font-size: 1.35rem; cursor: pointer; }
.onboarding-dialog-close:hover { color: var(--color-ink); background: var(--color-canvas); }
.onboarding-dialog-close:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.onboarding-terms-scroll { max-height: min(20rem, 45vh); padding: 1rem 1.35rem; overflow-y: auto; scroll-behavior: smooth; }
.onboarding-terms-scroll p { margin: 0 0 1rem; color: var(--color-muted); font-size: .88rem; line-height: 1.55; }
.onboarding-terms-scroll p:last-child { margin-bottom: 0; }
.onboarding-terms-scroll strong { color: var(--color-ink); }
.onboarding-terms-hint { margin: 0; padding: .75rem 1.35rem; color: var(--color-brand-800); border-top: 1px solid var(--color-border); background: var(--color-brand-50); font-size: .78rem; font-weight: 750; }
.onboarding-terms-hint[hidden] { display: none; }
.onboarding-terms-actions { display: flex; gap: .75rem; justify-content: flex-end; padding: 1rem 1.35rem; border-top: 1px solid var(--color-border); }
.onboarding-terms-actions .button { margin: 0; }
.onboarding-terms-actions .button:disabled { color: #74818d; border-color: #d5dbe0; background: #e9edf0; box-shadow: none; cursor: not-allowed; }

@media (min-width: 901px) and (max-height: 800px) {
  .onboarding-application-shell { padding: 18px; }
  .onboarding-application-panel { min-height: 0; padding: 1rem 1.35rem; }
  .onboarding-application-header { padding-bottom: .65rem; }
  .onboarding-step-label { margin-bottom: .3rem; }
  .onboarding-step-label > span { width: 2rem; height: 2rem; }
  .onboarding-application-intro h1 { font-size: clamp(1.55rem, 2.25vw, 2.15rem); }
  .onboarding-application-intro > p:last-child { margin-top: .25rem; font-size: .78rem; }
  .onboarding-application-form { gap: .75rem 1rem; margin-top: .85rem; }
  .onboarding-form-panel .onboarding-form-section { padding: .85rem 1rem .8rem; }
  .onboarding-application-form .form-grid { gap: .45rem .8rem; }
  .onboarding-application-form input:not([type="checkbox"]):not([type="submit"]):not([type="file"]),
  .onboarding-application-form select { min-height: 2.4rem; padding: .48rem .65rem; }
  .onboarding-ownership-upload { padding-block: .45rem; }
  .onboarding-application-actions { padding: .55rem .8rem; }
  .onboarding-application-actions .button { min-height: 2.5rem; padding-block: .55rem; }
}

@media (max-width: 900px) {
  .onboarding-application-shell { display: block; }
  .onboarding-application-panel { min-height: 0; }
  .onboarding-application-header,
  .onboarding-application-form { grid-template-columns: 1fr; }
  .onboarding-resume-disclosure { position: static; grid-column: 1 / -1; justify-self: end; }
  .onboarding-exit-link { grid-column: 1 / -1; }
  .onboarding-resume-card { margin-top: .75rem; }
  .onboarding-cooperative-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .onboarding-administrator-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .onboarding-email-verification { grid-template-columns: 1fr; }
  .onboarding-access-explanation { border-top: 1px solid #d5e5e7; border-left: 0; }
  .onboarding-access-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 0; }
  .onboarding-access-steps li:not(:last-child)::after { top: .82rem; right: -.7rem; bottom: auto; left: 1.8rem; width: auto; height: 1px; }
}

@media (max-width: 600px) {
  .onboarding-application-shell { padding: 12px; }
  .onboarding-application-panel { padding: 1rem; }
  .onboarding-application-progress { gap: .35rem; }
  .onboarding-exit-link { grid-column: 1 / -1; justify-self: end; margin-bottom: -.25rem; }
  .onboarding-application-progress li { display: grid; justify-items: center; text-align: center; }
  .onboarding-application-progress li:not(:last-child)::after { top: 1rem; left: calc(50% + 1rem); width: calc(100% - 2rem); }
  .onboarding-application-progress li div { padding: .2rem 0 0; background: transparent; }
  .onboarding-application-progress li strong { font-size: .65rem; white-space: normal; }
  .onboarding-application-progress li small { display: none; }
  .onboarding-resume-card,
  .onboarding-resume-form,
  .onboarding-administrator-grid,
  .onboarding-cooperative-grid { grid-template-columns: 1fr; }
  .onboarding-grid-span-two { grid-column: auto; }
  .onboarding-ownership-upload { grid-template-columns: 1fr; }
  .onboarding-application-actions { align-items: stretch; flex-direction: column; }
  .onboarding-save-action { align-items: stretch; flex-direction: column; }
  .onboarding-save-action > small { max-width: none; text-align: left; }
  .onboarding-resume-form .button,
  .onboarding-application-actions .button { width: 100%; }
  .onboarding-authority-confirmation { max-width: none; align-self: stretch; }
  .onboarding-terms-actions { flex-direction: column-reverse; }
  .onboarding-terms-actions .button { width: 100%; }
  .onboarding-code-delivery { align-items: stretch; flex-direction: column; }
  .onboarding-send-code { width: 100%; justify-content: center; }
  .onboarding-otp-form { grid-template-columns: 1fr; }
  .onboarding-verification-primary { width: 100%; }
  .onboarding-email-destination { align-items: flex-start; flex-direction: column; gap: .25rem; }
  .onboarding-email-destination strong { width: 100%; }
  .onboarding-access-steps { grid-template-columns: 1fr; }
  .onboarding-access-steps li:not(:last-child)::after { top: 1.8rem; right: auto; bottom: -.7rem; left: .82rem; width: 1px; height: auto; }
}

.onboarding-upload-layout { display: grid; grid-template-columns: minmax(15rem, .75fr) minmax(0, 1.5fr); gap: 1.5rem; align-items: start; }
.onboarding-instructions { position: sticky; top: 1rem; }
.onboarding-validation-summary dl { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.onboarding-validation-summary dl div { padding: .75rem; border-radius: .65rem; background: #f1f6f7; }
.onboarding-validation-summary dt { font-size: .8rem; color: #5b6d7d; }
.onboarding-validation-summary dd { margin: .25rem 0 0; font-size: 1.5rem; font-weight: 700; }
.onboarding-submit-box { margin-top: 1.5rem; }

/* Onboarding: guided contribution and global human review */
.onboarding-contribution-shell { padding-block: clamp(1rem, 3vw, 2.5rem); }
.onboarding-contribution-panel { width: min(100%, 76rem); padding: clamp(1.25rem, 3vw, 2.5rem); }
.onboarding-contribution-header { display: flex; gap: 1.5rem; align-items: flex-start; justify-content: space-between; margin-bottom: 1.25rem; }
.onboarding-contribution-header h1 { margin: .2rem 0 .55rem; }
.onboarding-contribution-header p:last-child { max-width: 42rem; margin: 0; color: var(--color-muted); line-height: 1.55; }
.onboarding-contribution-header .button { flex: none; }
.onboarding-simple-columns,
.onboarding-contribution-upload-card,
.onboarding-validation-result,
.onboarding-final-submit { padding: clamp(1.1rem, 2vw, 1.5rem); border: 1px solid var(--color-border); border-radius: 1rem; background: #fff; }
.onboarding-simple-columns { margin-bottom: 1rem; background: linear-gradient(145deg, #fff, #f6fafb); }
.onboarding-columns-copy { display: flex; gap: .85rem; align-items: flex-start; }
.onboarding-columns-copy h2 { margin: 0 0 .25rem; font-size: 1.05rem; }
.onboarding-columns-copy p { margin: 0; color: var(--color-muted); line-height: 1.45; }
.onboarding-step-mark { display: grid; width: 2rem; height: 2rem; flex: none; place-items: center; border-radius: .65rem; color: #fff; background: var(--color-brand-700); font-size: .8rem; font-weight: 800; }
.onboarding-column-examples { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; margin-top: 1.15rem; }
.onboarding-column-examples > div { display: grid; gap: .18rem; min-width: 0; padding: .8rem; border: 1px solid #dce7ea; border-radius: .7rem; background: #fff; }
.onboarding-column-examples strong { color: var(--color-ink); font-size: .8rem; }
.onboarding-column-examples span { color: var(--color-muted); font-size: .72rem; overflow-wrap: anywhere; }
.onboarding-column-examples .is-optional { border-style: dashed; background: #fbfcfd; }
.onboarding-format-help { display: flex; gap: .65rem; margin: 1rem 0 0; padding: .75rem .85rem; align-items: flex-start; color: #145d56; border-radius: .75rem; background: #eaf7f4; font-size: .8rem; line-height: 1.45; }
.onboarding-format-help .icon { width: 1.05rem; height: 1.05rem; flex: none; margin-top: .05rem; }
.onboarding-contribution-upload-card { margin-bottom: 1rem; }
.onboarding-contribution-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; margin-top: 1rem; align-items: end; }
.onboarding-file-control { display: grid; gap: .4rem; }
.onboarding-file-control label { color: var(--color-ink); font-size: .8rem; font-weight: 750; }
.onboarding-file-control input[type="file"] { width: 100%; min-height: 3rem; padding: .55rem; border: 1px dashed #aebfc8; border-radius: .75rem; background: #f8fafb; }
.onboarding-file-control small { color: var(--color-subtle); }
.onboarding-validation-result { margin-top: 1rem; }
.onboarding-validation-result.is-ready { border-color: #abd9cf; background: #f5fbf9; }
.onboarding-validation-result.is-invalid { border-color: #efd7aa; background: #fffaf1; }
.onboarding-validation-heading { display: flex; gap: .85rem; align-items: flex-start; }
.onboarding-validation-heading > span { display: grid; width: 2.5rem; height: 2.5rem; flex: none; place-items: center; border-radius: .75rem; color: #087365; background: #def2ed; }
.onboarding-validation-result.is-invalid .onboarding-validation-heading > span { color: #986512; background: #f9eacb; }
.onboarding-validation-heading h2 { margin: .1rem 0 .3rem; font-size: 1.2rem; }
.onboarding-validation-heading p:last-child { margin: 0; color: var(--color-muted); line-height: 1.45; }
.onboarding-validation-metrics,
.onboarding-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; margin: 1rem 0 0; }
.onboarding-validation-metrics > div,
.onboarding-metric-grid > div { display: grid; gap: .2rem; padding: .75rem; border: 1px solid #e0e8eb; border-radius: .7rem; background: #fff; }
.onboarding-validation-metrics dt,
.onboarding-metric-grid span { color: var(--color-muted); font-size: .72rem; font-weight: 700; }
.onboarding-validation-metrics dd,
.onboarding-metric-grid strong { margin: 0; color: var(--color-ink); font-size: 1.35rem; }
.onboarding-validation-metrics .is-success,
.onboarding-metric-grid .is-success { border-color: #b9e0d8; background: #eff9f6; }
.onboarding-validation-metrics .is-danger,
.onboarding-metric-grid .is-danger { border-color: #f0c6cc; background: #fff3f4; }
.onboarding-validation-metrics .is-warning,
.onboarding-metric-grid .is-warning { border-color: #efd7aa; background: #fff8e9; }
.onboarding-correction-list { margin: 1rem 0 0; padding-left: 1.25rem; color: #73551f; font-size: .82rem; line-height: 1.55; }
.onboarding-final-submit { display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; margin-top: 1rem; border-color: #aad8cf; background: linear-gradient(135deg, #f4fbf9, #edf7fb); }
.onboarding-final-submit h2 { margin: .15rem 0 .25rem; }
.onboarding-final-submit p:last-child { margin: 0; color: var(--color-muted); }

.onboarding-review-page { max-width: 96rem; margin: 0 auto; }
.onboarding-review-header { margin-bottom: 1rem; }
.onboarding-review-decision { display: grid; grid-template-columns: auto minmax(0, 1.25fr) minmax(19rem, .85fr); gap: 1.25rem; padding: clamp(1.25rem, 2.5vw, 2rem); margin-bottom: 1rem; align-items: start; border: 1px solid var(--color-border); border-radius: 1rem; background: #fff; box-shadow: var(--shadow-sm); }
.onboarding-review-decision.is-blocked { border-color: #ecd5a6; background: linear-gradient(135deg, #fffdf8, #fff9ed); }
.onboarding-review-decision.is-ready { border-color: #aedbd2; background: linear-gradient(135deg, #fff, #f3faf8); }
.onboarding-decision-icon { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: .85rem; color: #936215; background: #f9eacb; }
.onboarding-review-decision.is-ready .onboarding-decision-icon { color: #087365; background: #def2ed; }
.onboarding-decision-icon .icon { width: 1.35rem; height: 1.35rem; }
.onboarding-decision-copy h2 { margin: .15rem 0 .45rem; font-size: clamp(1.35rem, 2.5vw, 1.85rem); }
.onboarding-decision-copy > p:not(.eyebrow) { max-width: 48rem; margin: 0; color: var(--color-muted); line-height: 1.55; }
.onboarding-decision-callout { display: grid; gap: .2rem; margin-top: 1rem; padding: .85rem; border-left: 3px solid #c6861f; border-radius: .4rem .7rem .7rem .4rem; color: #674b1c; background: #fff4dc; }
.onboarding-decision-callout span { font-size: .8rem; line-height: 1.45; }
.onboarding-primary-decision { display: inline-flex; gap: .5rem; margin-top: 1rem; align-items: center; }
.onboarding-primary-decision .icon { width: 1rem; height: 1rem; }
.onboarding-readiness-list { display: grid; gap: .4rem; padding: 0; margin: 0; list-style: none; }
.onboarding-readiness-list li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .6rem; padding: .55rem .65rem; border-radius: .6rem; background: rgb(255 255 255 / 70%); }
.onboarding-check-icon { display: grid; width: 1.55rem; height: 1.55rem; place-items: center; border-radius: 50%; }
.onboarding-check-icon .icon { width: .95rem; height: .95rem; }
.onboarding-readiness-list .is-complete .onboarding-check-icon { color: #087365; background: #def2ed; }
.onboarding-readiness-list .is-pending .onboarding-check-icon { color: #9a6714; background: #f9eacb; }
.onboarding-readiness-list strong { display: block; color: var(--color-ink); font-size: .78rem; }
.onboarding-readiness-list small { display: block; margin-top: .08rem; color: var(--color-muted); font-size: .7rem; line-height: 1.35; }
.onboarding-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.onboarding-review-card,
.onboarding-secondary-decisions,
.onboarding-review-note { padding: 1.25rem; border: 1px solid var(--color-border); border-radius: 1rem; background: #fff; box-shadow: var(--shadow-sm); }
.onboarding-contribution-card { grid-column: 1 / -1; }
.onboarding-card-heading { display: flex; gap: .7rem; align-items: center; padding-bottom: .85rem; border-bottom: 1px solid #e7edf0; }
.onboarding-card-heading > span { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border-radius: .7rem; color: var(--color-brand-700); background: var(--color-brand-50); }
.onboarding-card-heading .icon { width: 1.1rem; height: 1.1rem; }
.onboarding-card-heading p { margin: 0 0 .1rem; color: var(--color-subtle); font-size: .68rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.onboarding-card-heading h2 { margin: 0; font-size: 1rem; }
.onboarding-document-action { display: inline-flex; gap: .5rem; margin-top: 1rem; align-items: center; }
.onboarding-document-action .icon { width: 1rem; height: 1rem; }
.onboarding-contribution-meta { display: flex; gap: 1rem; justify-content: space-between; padding-top: .85rem; color: var(--color-muted); font-size: .75rem; }
.onboarding-contribution-meta strong { color: var(--color-ink); }
.onboarding-privacy-copy { margin: .7rem 0 0; color: var(--color-subtle); font-size: .75rem; }
.onboarding-secondary-decisions { display: grid; grid-template-columns: minmax(14rem, .7fr) minmax(0, 1.3fr); gap: 1.5rem; margin-top: 1rem; }
.onboarding-secondary-decisions h2 { margin: .15rem 0 .35rem; }
.onboarding-secondary-decisions p:last-child { margin: 0; color: var(--color-muted); }
.onboarding-secondary-decision-grid { display: grid; gap: .65rem; }
.onboarding-secondary-decision-grid details { border: 1px solid var(--color-border); border-radius: .7rem; background: #fbfcfd; }
.onboarding-secondary-decision-grid summary { padding: .85rem; color: var(--color-ink); font-weight: 750; cursor: pointer; }
.onboarding-secondary-decision-grid form { padding: 0 .85rem .85rem; }
.onboarding-review-note { margin-top: 1rem; }
.onboarding-review-note h2 { margin-bottom: .4rem; }
.onboarding-review-note p { margin: 0; color: var(--color-muted); white-space: pre-wrap; }
.onboarding-records-card { padding: 1.25rem; margin-top: 1rem; border: 1px solid var(--color-border); border-radius: 1rem; background: #fff; box-shadow: var(--shadow-sm); }
.onboarding-records-header { display: flex; gap: 1rem; align-items: flex-start; justify-content: space-between; margin-bottom: 1rem; }
.onboarding-records-header h2 { margin: .15rem 0 .3rem; }
.onboarding-records-header p:last-child { margin: 0; color: var(--color-muted); font-size: .8rem; }
.onboarding-records-header > span { padding: .45rem .7rem; flex: none; border-radius: 999px; color: var(--color-brand-800); background: var(--color-brand-50); font-size: .72rem; font-weight: 750; }
.onboarding-records-table-wrap { border: 1px solid var(--color-border); border-radius: .8rem; }
.onboarding-records-table { min-width: 66rem; }
.onboarding-records-table th { white-space: nowrap; }
.onboarding-records-table td { vertical-align: middle; }
.onboarding-records-table .masked-value { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--color-muted); letter-spacing: .03em; }
.onboarding-records-loading { display: flex; gap: .8rem; min-height: 6rem; align-items: center; color: var(--color-muted); }
.onboarding-loading-mark { display: grid; width: 2.5rem; height: 2.5rem; flex: none; place-items: center; border-radius: .75rem; color: var(--color-brand-700); background: var(--color-brand-50); }
.onboarding-records-loading p { margin: .2rem 0 0; font-size: .78rem; }
.onboarding-records-empty { max-width: none; padding-block: 1.5rem; }

@media (max-width: 700px) {
  .onboarding-network,
  .form-grid,
  .onboarding-upload-layout { grid-template-columns: 1fr; }
  .onboarding-steps-summary { flex-direction: column; }
  .onboarding-instructions { position: static; }
  .onboarding-validation-summary dl { grid-template-columns: repeat(2, 1fr); }
  .otp-form { grid-template-columns: 1fr; }
  .onboarding-network-core { align-items: flex-start; flex-direction: column; gap: .25rem; }
  .onboarding-status-hero { grid-template-columns: 1fr; }
  .onboarding-status-mark { width: 3.5rem; height: 3.5rem; border-radius: 1rem; }
  .onboarding-status-summary { align-items: flex-start; flex-direction: column; }
  .onboarding-review-steps { grid-template-columns: 1fr; gap: 1.25rem; }
  .onboarding-review-steps li { padding: 0; }
  .onboarding-review-steps li:not(:last-child)::after { top: 2.35rem; right: auto; bottom: -1.25rem; left: 1.15rem; width: 2px; height: auto; }
  .onboarding-status-actions { align-items: stretch; flex-direction: column; }
  .onboarding-status-actions .button { width: 100%; }
  .onboarding-contribution-header,
  .onboarding-final-submit { align-items: stretch; flex-direction: column; }
  .onboarding-contribution-header .button,
  .onboarding-final-submit .button { width: 100%; }
  .onboarding-column-examples { grid-template-columns: 1fr 1fr; }
  .onboarding-contribution-form { grid-template-columns: 1fr; }
  .onboarding-contribution-form .button { width: 100%; }
  .onboarding-validation-metrics,
  .onboarding-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .onboarding-contribution-meta { align-items: flex-start; flex-direction: column; gap: .35rem; }
}

@media (max-width: 980px) {
  .onboarding-review-decision { grid-template-columns: auto minmax(0, 1fr); }
  .onboarding-readiness-list { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .onboarding-review-header { align-items: stretch; flex-direction: column; }
  .onboarding-review-header .button { width: 100%; }
  .onboarding-review-decision { grid-template-columns: 1fr; }
  .onboarding-readiness-list { grid-column: auto; grid-template-columns: 1fr; }
  .onboarding-review-grid { grid-template-columns: 1fr; }
  .onboarding-contribution-card { grid-column: auto; }
  .onboarding-secondary-decisions { grid-template-columns: 1fr; }
  .onboarding-records-header { align-items: flex-start; flex-direction: column; }
  .onboarding-records-table { min-width: 0; }
  .onboarding-records-table thead { display: none; }
  .onboarding-records-table,
  .onboarding-records-table tbody,
  .onboarding-records-table tr,
  .onboarding-records-table td { display: block; width: 100%; }
  .onboarding-records-table tr { padding: .45rem .8rem; border-bottom: 1px solid var(--color-border); }
  .onboarding-records-table tr:last-child { border-bottom: 0; }
  .onboarding-records-table td { display: grid; grid-template-columns: minmax(7.5rem, .8fr) minmax(0, 1.2fr); gap: .65rem; padding: .38rem 0; border: 0; }
  .onboarding-records-table td::before { color: var(--color-subtle); font-size: .68rem; font-weight: 750; content: attr(data-label); }
  .onboarding-records-card .pagination-bar { align-items: stretch; flex-direction: column; }
}
.membership-price-preview {
  border: 1px solid var(--color-border, #d9deea);
  border-radius: 14px;
  padding: 16px;
  background: var(--color-surface-soft, #f8f9fc);
}

.membership-price-preview .surface-header {
  align-items: flex-start;
  margin-bottom: 12px;
}

.membership-price-preview h3 {
  margin: 2px 0 0;
}

.membership-price-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 12px;
}

.membership-price-grid div {
  padding: 10px;
  border-radius: 10px;
  background: var(--color-surface, #fff);
}

.membership-price-grid dt {
  color: var(--color-text-muted, #667085);
  font-size: .78rem;
}

.membership-price-grid dd {
  margin: 3px 0 0;
  font-weight: 700;
}

.wizard-phase-three-page { width: min(calc(100% - 32px), 1540px); padding: 16px 0 20px; align-items: start; }
.wizard-phase-three-result-page { width: calc(100% - 32px); }
.wizard-phase-three-result-page .wizard-phase-three-result { margin-inline: 0; }
.wizard-phase-three-card { width: 100%; }
.wizard-phase-three-card > .wizard-start-heading { margin-bottom: 12px; }
.wizard-phase-three-card > .wizard-start-heading h1 { margin-bottom: 6px; font-size: clamp(1.9rem, 2.7vw, 2.65rem); }
.wizard-phase-three-card > .wizard-start-heading > div > p:last-child { margin: 0; font-size: .95rem; }
.wizard-phase-three-ready,
.wizard-phase-three-pending { display: flex; gap: 16px; margin: 0 32px 32px; padding: 22px; align-items: flex-start; border: 1px solid #cfe0f0; border-radius: 13px; background: #f7fbff; }
.wizard-phase-three-ready > span,
.wizard-phase-three-pending > span { display: grid; width: 42px; height: 42px; flex: none; place-items: center; color: #087a42; border-radius: 50%; background: #eaf8ef; }
.wizard-phase-three-pending > span { color: #9a6700; background: #fff6d8; }
.wizard-phase-three-ready strong,
.wizard-phase-three-pending strong { color: #17213b; font-size: 1rem; }
.wizard-phase-three-ready p,
.wizard-phase-three-pending p { margin: 5px 0 0; color: #5f6b7e; line-height: 1.5; }
.wizard-phase-three-pending .button-link { margin-top: 16px; }
.wizard-phase-three-result { margin: 0 20px 28px; }
.wizard-phase-three-result:focus { outline: none; }
.wizard-phase-three-result .professional-report { margin: 0; }
.phase-three-calculation-note { margin: .8rem 0 0; color: var(--color-muted); font-size: .8rem; line-height: 1.5; }
.phase-three-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.phase-three-free-badge { display: inline-flex; gap: 8px; align-items: center; flex: none; padding: 10px 14px; border-radius: 999px; color: #087a42; background: #eaf8ef; font-weight: 750; font-size: .82rem; }
.phase-three-free-badge .icon { width: 18px; height: 18px; }
.phase-three-product-shell, .phase-three-form-shell, .phase-three-ai-action { margin: 0 20px 16px; }
.phase-three-heading-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; align-items: center; }
.phase-three-heading-actions form { margin: 0; }
.phase-three-heading-actions .button,
.phase-three-heading-actions .button-link { min-height: 42px; gap: 8px; padding-inline: 15px; justify-content: center; }
.phase-three-heading-actions .icon { width: 17px; height: 17px; }
.phase-three-heading-edit-action { color: #7a3a00 !important; border-color: #d97706 !important; background: #fff4dc !important; box-shadow: 0 7px 16px rgb(181 92 0 / 16%); font-weight: 850; }
.phase-three-heading-edit-action:hover { color: #fff !important; border-color: #a94f00 !important; background: #bd5b00 !important; box-shadow: 0 9px 20px rgb(166 76 0 / 24%); transform: translateY(-1px); }
.phase-three-heading-edit-action:focus-visible { outline: 3px solid rgb(217 119 6 / 32%); outline-offset: 3px; }
.phase-three-heading-products-action { box-shadow: 0 8px 18px rgb(23 105 224 / 20%); font-weight: 850; }
.phase-three-application-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 28px; }
.phase-three-application-card { display: grid; min-width: 0; gap: 18px; padding: 20px; border: 1px solid #d9e2ec; border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgb(22 48 74 / 6%); }
.phase-three-application-card header { display: flex; min-width: 0; gap: 12px; align-items: center; }
.phase-three-application-card h3 { margin: 0; overflow: hidden; color: #17213b; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.phase-three-application-card header small { color: #69758a; }
.phase-three-application-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.phase-three-application-card dl div { min-width: 0; }
.phase-three-application-card dt { color: #69758a; font-size: .72rem; }
.phase-three-application-card dd { margin: 3px 0 0; color: #17213b; font-size: .88rem; font-weight: 750; }
.phase-three-application-card .button-link { width: 100%; justify-content: center; }
.phase-three-product-results { display: grid; gap: 16px; }
.phase-three-product-analysis { overflow: hidden; border: 1px solid #d9e2ec; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgb(22 48 74 / 6%); }
.phase-three-product-analysis > summary { display: grid; grid-template-columns: auto minmax(180px, 1fr) auto auto auto; gap: 16px; min-height: 84px; padding: 18px 20px; align-items: center; color: #17213b; background: linear-gradient(120deg, #f6f9ff, #fff); cursor: pointer; list-style: none; }
.phase-three-product-analysis > summary::-webkit-details-marker { display: none; }
.phase-three-product-analysis > summary:hover { background: linear-gradient(120deg, #eef5ff, #fff); }
.phase-three-product-analysis > summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--color-brand-600, #075fe4) 35%, transparent); outline-offset: -3px; }
.phase-three-product-analysis[open] > summary { border-bottom: 1px solid #dce3ed; }
.phase-three-product-analysis-title { min-width: 0; }
.phase-three-product-analysis-title strong, .phase-three-product-analysis-title small,
.phase-three-product-analysis-metric small, .phase-three-product-analysis-metric strong { display: block; }
.phase-three-product-analysis-title strong { overflow: hidden; font-size: 1.05rem; text-overflow: ellipsis; white-space: nowrap; }
.phase-three-product-analysis-title small, .phase-three-product-analysis-metric small { margin-top: 3px; color: #69758a; font-size: .74rem; }
.phase-three-product-analysis-metric { min-width: 92px; padding-left: 16px; border-left: 1px solid #dce3ed; }
.phase-three-product-analysis-metric strong { margin-top: 3px; font-size: .88rem; }
.phase-three-product-analysis-action { display: inline-flex; gap: 7px; min-width: 132px; align-items: center; justify-content: flex-end; color: #1769e0; font-size: .78rem; font-weight: 800; }
.phase-three-product-analysis-action .icon { width: 15px; height: 15px; transition: transform 180ms ease; }
.phase-three-product-analysis .when-open { display: none; }
.phase-three-product-analysis[open] .when-open { display: inline; }
.phase-three-product-analysis[open] .when-closed { display: none; }
.phase-three-product-analysis[open] .phase-three-product-analysis-action .icon { transform: rotate(90deg); }
.phase-three-product-analysis-body { padding: 18px; }
.phase-three-product-analysis-body > .phase-three-score-result { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.phase-three-application-actions { display: flex; gap: 9px; margin-top: auto; align-items: stretch; }
.phase-three-application-actions > .button-link,
.phase-three-application-actions > form { min-width: 0; flex: 1 1 0; }
.phase-three-application-actions form { display: flex; margin: 0; }
.phase-three-application-actions .button { width: 100%; justify-content: center; }
.phase-three-application-actions .phase-three-edit-product-action { color: #7a3a00; border-color: #d97706; background: #fff4dc; box-shadow: 0 7px 16px rgb(181 92 0 / 16%); font-weight: 850; }
.phase-three-application-actions .phase-three-edit-product-action:hover { color: #fff; border-color: #a94f00; background: #bd5b00; box-shadow: 0 9px 20px rgb(166 76 0 / 24%); transform: translateY(-1px); }
.phase-three-application-actions .phase-three-edit-product-action:focus-visible { outline: 3px solid rgb(217 119 6 / 32%); outline-offset: 3px; }
.phase-three-add-product { padding-top: 24px; border-top: 1px solid #e2e8f0; }
.phase-three-product-actions .phase-three-add-product-action { min-width: 180px; color: #fff; border-color: #08766d; background: linear-gradient(135deg, #0b8b7e, #07665f); box-shadow: 0 9px 20px rgb(7 102 95 / 22%); font-weight: 850; }
.phase-three-product-actions .phase-three-add-product-action:hover { border-color: #064f4a; background: linear-gradient(135deg, #08766d, #054f4a); box-shadow: 0 11px 24px rgb(5 79 74 / 28%); transform: translateY(-1px); }
.phase-three-product-actions .phase-three-add-product-action:focus-visible { outline: 3px solid rgb(11 139 126 / 30%); outline-offset: 3px; }
.phase-three-products-complete { margin: 0; padding: 18px; color: #405363; border-radius: 12px; background: #f4f8fb; text-align: center; }
.case-product-switcher { display: flex; gap: 18px; justify-content: space-between; margin-bottom: 18px; padding: 14px 16px; border: 1px solid #dce5ee; border-radius: 13px; background: #f8fbfd; align-items: center; }
.case-product-switcher > div:first-child { display: grid; gap: 2px; }
.case-product-switcher > div:first-child small { color: #69758a; }
.case-product-switcher-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.case-product-switcher-links a { padding: 8px 11px; color: #405363; border: 1px solid #cfdbe6; border-radius: 999px; background: #fff; font-size: .8rem; font-weight: 750; text-decoration: none; }
.case-product-switcher-links a.is-active { color: #fff; border-color: #1769e0; background: #1769e0; }
.case-product-switcher-links a.case-product-add { color: #07564f; border-color: #9bc9c3; background: #effaf8; }
.case-overview-tabs { margin-bottom: 20px; border-bottom: 1px solid #dce3ed; }
.case-overview-tablist { display: flex; gap: 28px; border-bottom: 1px solid #dce3ed; }
.case-overview-tablist button { position: relative; padding: 13px 2px; color: #68758a; border: 0; background: transparent; font: inherit; font-weight: 800; cursor: pointer; }
.case-overview-tablist button::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; border-radius: 3px 3px 0 0; background: transparent; content: ""; }
.case-overview-tablist button.is-active { color: #0c5fbd; }
.case-overview-tablist button.is-active::after { background: #0c69db; }
.case-overview-tablist button:focus-visible { outline: 3px solid rgb(12 105 219 / 25%); outline-offset: 3px; }
.case-overview-panel { padding: 20px 0 24px; }
.case-overview-panel[hidden] { display: none; }
.case-overview-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 1px solid #dce3ed; border-bottom: 1px solid #dce3ed; }
.case-overview-summary > div { padding: 15px 18px; border-right: 1px solid #dce3ed; }
.case-overview-summary > div:last-child { border-right: 0; }
.case-overview-summary dt { color: #718096; font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.case-overview-summary dd { margin: 5px 0 0; color: #17213b; font-weight: 800; }
.case-phase-report { background: transparent; }
.case-phase-report-heading { display: flex; align-items: end; justify-content: space-between; padding-bottom: 14px; border-bottom: 2px solid #173f70; }
.case-phase-report-heading h2 { margin: 2px 0 0; }
.case-phase-report-heading > strong { color: #0c5fbd; font-size: 1.1rem; }
.case-phase-report-list { border-bottom: 1px solid #dce3ed; }
.case-phase-report-row { border-top: 1px solid #dce3ed; }
.case-phase-report-row:first-child { border-top: 0; }
.case-phase-report-row > summary { display: grid; grid-template-columns: 38px minmax(12rem, 1fr) auto auto; gap: 14px; align-items: center; padding: 15px 4px; cursor: pointer; list-style: none; }
.case-phase-report-row > summary::-webkit-details-marker { display: none; }
.case-phase-report-row > summary > span:nth-child(2) { display: grid; gap: 2px; }
.case-phase-report-row > summary small { color: #718096; }
.case-phase-number { display: grid; width: 30px; height: 30px; place-items: center; color: #087a50; border: 1px solid #a5dbc7; border-radius: 50%; background: #effaf5; font-weight: 900; }
.case-phase-report-detail { padding: 4px 52px 20px; color: #526174; }
.phase-one-report-heading { display: flex; gap: 18px; align-items: center; justify-content: space-between; }
.phase-one-report-heading p { margin: 0; }
.phase-one-report-records { margin-top: 12px; border-top: 1px solid #e2e8f0; }
.phase-one-report-records > div { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #e2e8f0; }
.phase-one-report-records > div > span:first-child { display: grid; gap: 3px; }
.phase-one-report-records small { color: #718096; }
.case-phase-inline-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid #e2e8f0; }
.case-phase-inline-results > div { display: grid; grid-template-columns: minmax(7rem, .45fr) 1fr; gap: 12px; padding: 13px 0; border-bottom: 1px solid #e2e8f0; }
.case-phase-inline-results > div:nth-child(odd) { padding-right: 20px; }
.case-phase-inline-results > div:nth-child(even) { padding-left: 20px; border-left: 1px solid #e2e8f0; }
.case-phase-inline-results dt { color: #718096; font-size: .76rem; font-weight: 800; text-transform: uppercase; }
.case-phase-inline-results dd { display: grid; gap: 3px; margin: 0; }
.case-phase-inline-results dd strong { color: #17213b; }
.case-phase-inline-results dd span { font-size: .8rem; }
.analyst-annotation-modal .confirmation-modal-card { width: min(42rem, calc(100vw - 2rem)); }
.analyst-annotation-form { grid-template-columns: auto minmax(0, 1fr); }
.analyst-annotation-field { display: grid; gap: 7px; margin-top: 16px; }
.analyst-annotation-field label { font-weight: 800; }
.analyst-annotation-field textarea { width: 100%; min-height: 10rem; resize: vertical; }
.application-surface.application-report-document { padding: 0; overflow: hidden; border: 0; border-top: 2px solid #173f70; border-bottom: 1px solid #cfd9e5; border-radius: 0; background: transparent; box-shadow: none; }
.application-report-document .surface-header { margin: 0; padding: 20px 0 14px; border-bottom: 1px solid #dce3ed; }
.application-report-note { margin: 0; padding: 12px 0; color: #5e6c80; border-bottom: 1px solid #dce3ed; font-size: .85rem; }
.application-report-table-wrap { margin: 0; }
.application-report-table { min-width: 42rem; }
.application-report-table th { color: #405166; background: #f4f7fa; font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; }
.application-report-table td { vertical-align: top; }
.application-report-table td:first-child { width: 38%; }
.application-report-table td:first-child strong, .application-report-table td:first-child small { display: block; }
.application-report-table td:first-child small { margin-top: 4px; color: #718096; font-size: .76rem; font-weight: 500; }
.application-report-document .confirmed-obligations { margin-top: 22px; padding: 0 0 20px; border-top: 1px solid #dce3ed; }
.portal-theme-dark .application-surface.application-report-document { background: var(--color-surface); }
@media (max-width: 760px) {
  .case-overview-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-overview-summary > div:nth-child(2) { border-right: 0; }
  .case-overview-summary > div:nth-child(-n+2) { border-bottom: 1px solid #dce3ed; }
  .case-phase-report-row > summary { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .case-phase-report-row > summary > small:last-child { grid-column: 2 / -1; }
  .case-phase-report-detail { padding-inline: 0; }
  .case-phase-inline-results { grid-template-columns: 1fr; }
  .case-phase-inline-results > div:nth-child(n) { padding-inline: 0; border-left: 0; }
  .phase-one-report-heading { align-items: stretch; flex-direction: column; }
}
.phase-three-product-switcher { margin: 20px 0 4px; }
.phase-three-product-switcher .case-product-switcher-links a { display: grid; gap: 2px; min-width: 150px; border-radius: 11px; }
.phase-three-product-switcher .case-product-switcher-links a small { color: #69758a; font-size: .68rem; font-weight: 650; }
.phase-three-product-switcher .case-product-switcher-links a.is-active small { color: rgb(255 255 255 / 78%); }
.phase-three-product-switcher .case-product-switcher-links a.case-product-add { display: flex; min-width: 0; align-items: center; }
.portal-theme-dark .case-product-switcher { border-color: var(--color-border); background: var(--color-dark-raised); }
.portal-theme-dark .case-product-switcher-links a { color: var(--color-ink); border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .case-product-switcher-links a.is-active { color: #fff; border-color: var(--color-brand-500); background: var(--color-brand-700); }
.phase-three-form-shell { position: relative; }
.wizard-phase-three-form-page { display: block; }
.wizard-phase-three-form-page > .wizard-phase-three-card { width: 100%; }
.phase-three-step-heading { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.phase-three-step-heading > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: #fff; background: #1769e0; font-weight: 800; }
.phase-three-step-heading h2 { margin: 0; color: #17213b; font-size: 1.2rem; }
.phase-three-step-heading p { margin: 3px 0 0; color: #5f6b7e; }
.phase-three-product-form fieldset { padding: 0; border: 0; }
.phase-three-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.phase-three-product-card { position: relative; display: flex; min-height: 104px; gap: 12px; align-items: center; padding: 18px; border: 1px solid #ccd6e4; border-radius: 12px; color: #17213b; background: #fff; cursor: pointer; }
.phase-three-product-card:has(input:checked) { border-color: #1769e0; box-shadow: 0 0 0 1px #1769e0; background: #f7faff; }
.phase-three-product-card input { position: absolute; opacity: 0; }
.phase-three-product-icon { display: grid; width: 48px; height: 48px; flex: none; place-items: center; border-radius: 50%; color: #1769e0; background: #edf4ff; }
.phase-three-product-icon .icon { width: 25px; height: 25px; }
.phase-three-card-check { position: absolute; top: 10px; right: 10px; color: #1769e0; opacity: 0; }
.phase-three-product-card:has(input:checked) .phase-three-card-check { opacity: 1; }
.phase-three-card-check .icon { width: 21px; height: 21px; fill: #1769e0; stroke: #fff; }
.phase-three-product-actions, .phase-three-confirmation { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-top: 20px; padding-top: 18px; border-top: 1px solid #e2e8f0; }
.phase-three-product-actions > span { display: inline-flex; gap: 7px; align-items: center; color: #087a42; font-size: .85rem; }
.phase-three-product-actions .icon { width: 18px; height: 18px; }
.phase-three-confirmation p { margin: 4px 0 0; color: #5f6b7e; }
.phase-three-ai-action { padding: 24px; border: 1px solid #cfe0f0; border-radius: 14px; background: #f8fbff; }
.phase-three-ai-copy { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; margin-bottom: 18px; }
.phase-three-ai-copy h2 { margin: 2px 0 4px; color: #17213b; }
.phase-three-ai-copy p { margin: 0; color: #5f6b7e; }
.phase-three-ai-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; color: #1769e0; background: #eaf2ff; }
.phase-three-ai-price { color: #17213b; font-size: 1.25rem; }
.phase-three-form-shell .correction-section { padding: 0; border: 0; border-radius: 0; }
.phase-three-form-shell .correction-section + .correction-section { margin-top: .65rem; padding-top: .65rem; border-top: 1px solid #e3eaf2; }
.phase-three-form-shell .correction-product-request { padding: 1rem; border: 1px solid #94baf4; border-radius: 16px; background: linear-gradient(135deg, #f2f7ff 0%, #fff 72%); box-shadow: 0 10px 28px rgba(24, 99, 214, .08); }
.phase-three-form-shell .correction-product-request + .correction-section { margin-top: 1rem; }
.phase-three-form-shell .correction-section > legend { padding: 0; font-size: 1.05rem; }
.phase-three-form-shell .correction-form { gap: .55rem; }
.phase-three-form-shell .info-callout { padding-block: .55rem; }
.phase-three-form-shell .correction-section-help { margin-bottom: .45rem; line-height: 1.3; }
.phase-three-form-shell .correction-question-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem 1.1rem; }
.phase-three-form-shell .correction-question { padding: 0; border: 0; border-radius: 0; background: transparent; }
.phase-three-form-shell .correction-question-label { margin-bottom: .2rem; font-size: .85rem !important; line-height: 1.25; }
.phase-three-form-shell .correction-question .help-text { min-height: 2em; margin: 0 0 .2rem; font-size: .72rem; line-height: 1.25; }
.phase-three-form-shell .correction-automatic-date strong { display: flex; min-height: 2.5rem; padding: .55rem .75rem; align-items: center; color: var(--color-brand-800); border: 1px solid #d7e1eb; border-radius: 9px; background: #f7fafc; font-size: .86rem; }
.portal-theme-dark .risk-automatic-date,
.portal-theme-dark .phase-three-form-shell .correction-automatic-date strong { color: var(--color-ink); border-color: var(--color-border); background: var(--color-dark-raised); }
.portal-theme-dark .risk-automatic-date span,
.portal-theme-dark .risk-automatic-date strong { color: var(--color-ink); }
.portal-theme-dark .risk-automatic-date small { color: var(--color-muted); }
.phase-three-form-shell .correction-request-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; }
.phase-three-form-shell input::placeholder,
.phase-three-form-shell textarea::placeholder { color: #8b98ab; opacity: 1; }
.phase-three-form-shell .correction-question input:not([type="checkbox"]):not([type="radio"]),
.phase-three-form-shell .correction-question select,
.phase-three-form-shell .correction-question textarea { min-height: 2.5rem; padding-block: .55rem; border-radius: 9px; }
.phase-three-form-shell .obligation-contract-grid { gap: 1.35rem; }
.phase-three-form-shell .obligation-add-button { margin-top: .5rem; }
.phase-three-form-shell .correction-actions { position: absolute; top: 0; right: 0; margin: 0; }
.phase-three-form-shell .phase-three-confirmation { margin-top: 10px; padding-top: 10px; }
.phase-three-analysis-ready { margin: 0 32px 32px; }
.phase-three-analysis-status { display: flex; gap: 14px; padding: 18px 20px; align-items: flex-start; border: 1px solid #bfe2cf; border-radius: 12px; background: #f2fbf6; }
.phase-three-analysis-status > .icon { width: 22px; height: 22px; flex: none; color: #087a42; }
.phase-three-analysis-status strong { color: #075f35; }
.phase-three-analysis-status p { margin: 4px 0 0; color: #456451; line-height: 1.5; }
.phase-three-analysis-status.is-blocked { border-color: #efd39b; background: #fff9eb; }
.phase-three-analysis-status.is-blocked > .icon { color: #9a6500; }
.phase-three-analysis-status.is-blocked strong { color: #704900; }
.phase-three-analysis-status.is-blocked p { color: #6d6047; }
.phase-three-activation-help { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.phase-three-activation-help > div { display: flex; gap: 10px; padding: 14px; border: 1px solid #e5e9f0; border-radius: 12px; background: #fff; }
.phase-three-activation-help span { display: grid; width: 28px; height: 28px; flex: none; place-items: center; border-radius: 50%; background: #eef6ff; color: #0a5da8; font-weight: 800; }
.phase-three-activation-help p { margin: 0; color: #617087; font-size: .88rem; line-height: 1.45; }
.phase-three-activation-help strong { color: #17243a; }
.phase-three-analysis-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.phase-three-analysis-card { position: relative; display: flex; min-width: 0; flex-direction: column; padding: 22px; border: 1px solid #d8e0eb; border-radius: 14px; background: #fff; box-shadow: 0 7px 20px rgb(15 35 70 / 5%); }
.phase-three-analysis-icon { display: grid; width: 44px; height: 44px; margin-bottom: 16px; place-items: center; border-radius: 12px; color: #1769e0; background: #edf4ff; }
.phase-three-analysis-icon .icon { width: 23px; height: 23px; }
.phase-three-analysis-card-heading h2 { margin: 2px 0 6px; color: #17213b; font-size: 1.13rem; }
.phase-three-analysis-card-heading > p:last-child { min-height: 3.9em; margin: 0; color: #5f6b7e; font-size: .86rem; line-height: 1.5; }
.phase-three-input-summary { display: grid; gap: 0; margin: 18px 0; border-top: 1px solid #e6ebf2; }
.phase-three-input-summary div { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid #e6ebf2; }
.phase-three-input-summary dt { color: #667085; font-size: .8rem; }
.phase-three-input-summary dd { margin: 0; color: #17213b; font-size: .84rem; font-weight: 750; text-align: right; }
.phase-three-formula { display: grid; gap: 4px; margin-bottom: 16px; padding: 12px; border-radius: 10px; background: #f7f9fc; }
.phase-three-formula strong { color: #344054; font-size: .79rem; }
.phase-three-formula span { color: #667085; font-size: .74rem; line-height: 1.45; }
.phase-three-analysis-card > .status-badge { align-self: flex-start; margin-top: auto; }
.phase-three-score-preview { display: flex; width: 112px; height: 112px; flex-direction: column; margin: 18px auto 14px; align-items: center; justify-content: center; border: 9px solid #e8eef7; border-radius: 50%; color: #17213b; }
.phase-three-score-preview strong { font-size: 2rem; line-height: 1; }
.phase-three-score-preview span { margin-top: 4px; color: #667085; font-size: .72rem; }
.phase-three-analysis-notes { margin: 0 0 18px; padding-left: 18px; color: #5f6b7e; font-size: .78rem; line-height: 1.55; }
.phase-three-deterministic-note { display: flex; gap: 13px; margin-top: 20px; padding: 16px 18px; align-items: flex-start; border: 1px solid #cddcf5; border-radius: 12px; background: #f6f9ff; }
.phase-three-deterministic-note > .icon { width: 21px; height: 21px; flex: none; color: #1769e0; }
.phase-three-deterministic-note strong { color: #173b75; }
.phase-three-deterministic-note p { margin: 4px 0 0; color: #51647f; font-size: .84rem; line-height: 1.5; }

.phase-three-score-result { padding: clamp(22px, 3vw, 36px); border: 1px solid #dce3ed; border-radius: 18px; background: #fff; box-shadow: 0 16px 42px rgb(15 31 61 / 6%); }
.phase-three-score-result-heading, .phase-four-heading, .phase-five-heading { display: flex; gap: 24px; align-items: flex-start; justify-content: space-between; }
.phase-three-score-result-heading h2, .phase-four-heading h1, .phase-five-heading h1 { margin: 4px 0 8px; color: #091735; }
.phase-three-score-result-heading p, .phase-four-heading p, .phase-five-heading p { margin: 0; color: #64748b; }
.phase-three-score-result-heading p strong { color: #25324a; }
.phase-three-result-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.phase-three-result-card { display: flex; min-width: 0; min-height: 390px; flex-direction: column; padding: 22px; border: 1px solid #dce3ed; border-radius: 16px; background: linear-gradient(180deg, #fff, #fbfcff); }
.phase-three-result-card > header { display: flex; gap: 12px; align-items: center; }
.phase-three-result-card > header .eyebrow { margin: 0 0 2px; }
.phase-three-result-card > header h3 { margin: 0; color: #101a32; font-size: 1.08rem; }
.phase-three-card-edit-form { margin-left: auto; }
.phase-three-card-edit-form .button { min-height: 34px; padding: 7px 10px; white-space: nowrap; }
.phase-three-result-card-icon { display: grid; width: 42px; height: 42px; flex: none; place-items: center; border-radius: 12px; color: #1769e0; background: #edf4ff; }
.phase-three-result-card-icon .icon { width: 22px; height: 22px; }
.phase-three-result-main-value { display: grid; gap: 3px; margin: 22px 0 14px; padding: 16px; border-radius: 12px; background: #f2f6fc; }
.phase-three-result-main-value small { color: #64748b; font-size: .75rem; font-weight: 750; text-transform: uppercase; }
.phase-three-result-main-value strong { color: #091735; font-size: 1.55rem; }
.phase-three-result-main-value span { color: #64748b; font-size: .77rem; line-height: 1.4; }
.phase-three-result-main-value.is-danger { border: 1px solid #ef9aa5; background: #fff0f2; }
.phase-three-result-main-value.is-danger small,
.phase-three-result-main-value.is-danger strong,
.phase-three-result-main-value.is-danger span { color: #a51f32; }
.phase-three-result-details { display: grid; gap: 0; margin: 0; border-top: 1px solid #e5eaf1; }
.phase-three-result-details > div { display: flex; gap: 12px; padding: 10px 0; align-items: center; justify-content: space-between; border-bottom: 1px solid #e5eaf1; }
.phase-three-result-details dt { color: #64748b; font-size: .78rem; }
.phase-three-result-details dd { margin: 0; color: #17213b; font-size: .82rem; font-weight: 800; text-align: right; }
.phase-three-result-details .is-highlight dd { color: #0a6790; font-size: 1rem; }
.phase-three-result-formula, .phase-three-result-formulas { margin: auto 0 0; padding-top: 14px; color: #718096; font-size: .72rem; line-height: 1.45; }
.phase-three-result-formulas p { margin: 2px 0; }
.phase-three-result-formulas strong { color: #46546a; }
.phase-three-indebtedness-actions { display: grid; gap: 10px; margin-top: 14px; }
.phase-three-missing-data { padding: 12px; border: 1px solid #efd49d; border-radius: 10px; background: #fff9ec; text-align: left; }
.phase-three-missing-data strong { color: #704900; font-size: .76rem; }
.phase-three-missing-data ul { margin: 7px 0 0; padding-left: 18px; color: #6d6047; font-size: .72rem; line-height: 1.45; }
.phase-three-complete-data { display: flex; gap: 6px; margin: 0; align-items: center; color: #08713e; font-size: .77rem; font-weight: 750; }
.phase-three-complete-data .icon { width: 17px; height: 17px; }
#current-indebtedness-editor { scroll-margin-top: 24px; }
.phase-three-score-primary { place-items: center; align-content: center; text-align: center; }
.phase-three-score-primary > header { width: 100%; align-self: flex-start; text-align: left; }
.phase-three-score-primary > strong { color: #101a32; font-size: 1.04rem; }
.phase-three-score-primary p { margin: 8px 0 0; color: #64748b; }
.phase-three-score-primary p strong { color: #24324c; }
.phase-three-score-primary .phase-three-score-capacity-floor { padding: 10px 12px; border: 1px solid #f1b5bc; border-radius: 10px; color: #8f2432; background: #fff4f5; font-size: .78rem; line-height: 1.45; }
.phase-three-score-primary .phase-three-score-capacity-floor strong { color: #8f2432; }
.phase-three-risk-gauge { --score-color: #1479a0; --gauge-motion-duration: 650ms; --gauge-motion-easing: ease-out; position: relative; width: min(100%, 250px); height: 184px; margin: 12px auto 2px; }
.phase-three-risk-gauge.is-danger { --score-color: #c5303f; }
.phase-three-risk-gauge.is-high { --score-color: #d65a1f; }
.phase-three-risk-gauge.is-warning { --score-color: #d28a00; }
.phase-three-risk-gauge.is-info { --score-color: #1479a0; }
.phase-three-risk-gauge.is-success { --score-color: #16844c; }
.phase-three-risk-gauge.is-neutral { --score-color: #8390a4; }
.phase-three-risk-gauge svg { position: absolute; top: 32px; left: 0; display: block; width: 100%; height: 150px; overflow: visible; }
.phase-three-risk-gauge path { fill: none; stroke-linecap: round; stroke-width: 23; }
.phase-three-risk-gauge-track { stroke: url("#phase-three-score-gradient"); opacity: .2; }
.phase-three-risk-gauge-progress { stroke: url("#phase-three-score-gradient"); stroke-dasharray: var(--score-progress) 100; animation: phase-three-gauge-fill var(--gauge-motion-duration) var(--gauge-motion-easing) both; }
.phase-three-risk-gauge-needle { stroke: #14284b; stroke-linecap: round; stroke-width: 7; transform: rotate(var(--score-angle)); transform-box: view-box; transform-origin: 120px 124px; animation: phase-three-gauge-needle var(--gauge-motion-duration) var(--gauge-motion-easing) both; }
.phase-three-risk-gauge-hub { fill: #14284b; }
.phase-three-risk-gauge-center { fill: #fff; }
.phase-three-risk-gauge-value { position: absolute; z-index: 2; inset: 0 0 auto; display: grid; place-items: center; }
.phase-three-risk-gauge-value strong { color: var(--score-color); font-size: 2rem; line-height: 1; }
.phase-three-risk-gauge-value span { margin-top: 4px; color: #758196; font-size: .7rem; }
.phase-three-risk-gauge-scale { position: absolute; right: 4px; bottom: 0; left: 4px; display: flex; align-items: center; justify-content: space-between; color: #68778c; font-size: .67rem; font-weight: 750; }
.phase-three-risk-gauge-scale span:first-child { color: #a92238; }
.phase-three-risk-gauge-scale span:last-child { color: #08713e; }
.phase-three-score-state { display: inline-flex; margin-top: 8px; padding: 5px 10px; border-radius: 999px; color: #344054; background: #eef1f5; font-size: .76rem; font-weight: 800; }
.phase-three-score-state.is-danger { color: #a51f32; background: #fff0f2; }
.phase-three-score-state.is-high, .phase-three-score-state.is-warning { color: #9a5700; background: #fff5df; }
.phase-three-score-state.is-info { color: #0b6689; background: #eaf7fb; }
.phase-three-score-state.is-success { color: #08713e; background: #e8f8ef; }
.phase-three-score-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.phase-three-score-metrics div { position: relative; min-height: 150px; padding: 20px; border: 1px solid #dce3ed; border-radius: 14px; background: #f8fafc; }
.phase-three-metric-icon { position: absolute; top: 16px; right: 16px; display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; color: #1769e0; background: #eaf2ff; }
.phase-three-metric-icon .icon { width: 20px; height: 20px; }
.phase-three-score-metrics dt { color: #64748b; font-size: .75rem; font-weight: 750; text-transform: uppercase; }
.phase-three-score-metrics dd { margin: 5px 0; color: #091735; font-size: 1.35rem; font-weight: 800; }
.phase-three-score-metrics small { color: #64748b; }
.phase-three-source-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.phase-three-source-summary article { display: flex; min-width: 0; gap: 12px; padding: 17px; border: 1px solid #dce3ed; border-radius: 14px; background: #fff; }
.phase-three-source-icon { display: grid; width: 38px; height: 38px; flex: none; place-items: center; border-radius: 11px; color: #1769e0; background: #edf4ff; }
.phase-three-source-icon .icon { width: 21px; height: 21px; }
.phase-three-source-summary article.is-success .phase-three-source-icon { color: #087a42; background: #e8f8ef; }
.phase-three-source-summary article.is-warning .phase-three-source-icon { color: #a96700; background: #fff5df; }
.phase-three-source-summary article.is-danger .phase-three-source-icon { color: #b42336; background: #fff0f2; }
.phase-three-source-summary span { min-width: 0; }
.phase-three-source-summary strong, .phase-three-source-summary small { display: block; }
.phase-three-source-summary small { margin-top: 2px; color: #334155; }
.phase-three-source-summary p { margin: 5px 0 0; color: #64748b; font-size: .75rem; }
.phase-three-human-notice { display: flex; gap: 10px; margin-top: 18px; padding: 14px 16px; border-radius: 12px; color: #173b75; background: #f2f7ff; }
.phase-three-human-notice p { margin: 0; }

@keyframes phase-three-gauge-fill { from { stroke-dasharray: 0 100; } }
@keyframes phase-three-gauge-needle {
  from { transform: rotate(-90deg); }
  to { transform: rotate(var(--score-angle)); }
}

.portal-theme-dark .phase-three-score-result,
.portal-theme-dark .phase-three-result-card,
.portal-theme-dark .phase-three-source-summary article { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .phase-three-product-analysis { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .phase-three-product-analysis > summary { color: var(--color-ink); border-color: var(--color-border); background: linear-gradient(120deg, var(--color-dark-raised), var(--color-surface)); }
.portal-theme-dark .phase-three-application-actions .phase-three-edit-product-action { color: #ffd9a3; border-color: #d98a2f; background: #4a2b0f; }
.portal-theme-dark .phase-three-application-actions .phase-three-edit-product-action:hover { color: #fff; background: #a94f00; }
.portal-theme-dark .phase-three-heading-edit-action { color: #ffd9a3 !important; border-color: #d98a2f !important; background: #4a2b0f !important; }
.portal-theme-dark .phase-three-heading-edit-action:hover { color: #fff !important; background: #a94f00 !important; }
.portal-theme-dark .phase-three-product-analysis-metric { border-color: var(--color-border); }
.portal-theme-dark .phase-three-result-card { background: linear-gradient(180deg, var(--color-surface), var(--color-dark-raised)); }
.portal-theme-dark .phase-three-score-metrics div { border-color: var(--color-border); background: var(--color-dark-raised); }
.portal-theme-dark .phase-three-score-result-heading h2,
.portal-theme-dark .phase-three-result-card > header h3,
.portal-theme-dark .phase-three-result-main-value strong,
.portal-theme-dark .phase-three-result-details dd,
.portal-theme-dark .phase-three-score-primary > strong,
.portal-theme-dark .phase-three-score-metrics dd { color: var(--color-ink); }
.portal-theme-dark .phase-three-risk-gauge-track { opacity: .28; }
.portal-theme-dark .phase-three-risk-gauge-center { fill: var(--color-surface); }
.portal-theme-dark .phase-three-risk-gauge-needle,
.portal-theme-dark .phase-three-risk-gauge-hub { stroke: #d7e4f6; fill: #d7e4f6; }

.wizard-phase-four-page, .wizard-phase-five-page { width: min(calc(100% - 32px), 1480px); padding: 24px 0 110px; }
.phase-four-card, .phase-five-card { padding: clamp(22px, 3vw, 38px); border: 1px solid #dce3ed; border-radius: 18px; background: #fff; box-shadow: 0 14px 36px rgb(15 31 61 / 7%); }
.phase-four-purchase { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin: 22px 0; padding: 22px 24px; border: 1px solid #b9d0f7; border-radius: 18px; background: linear-gradient(115deg, #f4f8ff 0%, #fff 58%, #eefcf8 100%); box-shadow: 0 14px 30px rgb(16 82 173 / 10%); }
.phase-four-purchase.is-processing { border-color: #f2cf80; background: linear-gradient(115deg, #fffaf0, #fff); }
.phase-four-purchase.is-complete { border-color: #a7dfc4; background: linear-gradient(115deg, #effcf5, #fff); }
.phase-four-purchase-copy { display: flex; align-items: center; gap: 16px; }
.phase-four-purchase-copy h2 { margin: 2px 0 4px; color: #091735; font-size: clamp(1.3rem, 2vw, 1.7rem); }
.phase-four-purchase-copy p { margin: 0; color: #5f6f86; }
.phase-four-purchase-benefits { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.phase-four-purchase-benefits span { padding: 5px 9px; color: #07564f; border: 1px solid #b7ddd7; border-radius: 999px; background: #f0fbf8; font-size: .72rem; font-weight: 750; }
.phase-four-purchase-icon { display: grid; place-items: center; flex: 0 0 52px; width: 52px; height: 52px; border-radius: 15px; color: #fff; background: linear-gradient(135deg, #1264d5, #10a88a); box-shadow: 0 9px 20px rgb(18 100 213 / 24%); }
.phase-four-purchase-button { display: inline-flex; align-items: center; gap: 10px; min-width: 260px; min-height: 54px; justify-content: center; font-size: 1.05rem; box-shadow: 0 10px 24px rgb(16 82 173 / 25%); }
.phase-four-purchase-button strong { padding-left: 10px; border-left: 1px solid rgb(255 255 255 / 45%); font-size: 1.15rem; }
.phase-four-purchase-unavailable { display: flex; align-items: center; gap: 14px; color: #9f1d2e; }
.phase-four-purchase-loader { display: inline-flex; min-width: 4rem; gap: .55rem; align-items: center; justify-content: center; }
.phase-four-purchase-loader[hidden] { display: none; }
.phase-four-evidence { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 24px 0; }
.phase-four-evidence article { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; padding: 16px; align-items: center; border: 1px solid #dce3ed; border-radius: 12px; }
.phase-four-evidence article > .icon { width: 24px; height: 24px; color: #087a42; }
.phase-four-evidence small { display: block; margin-top: 3px; color: #64748b; }
.phase-four-visual { position: relative; overflow: hidden; margin: 24px 0 18px; padding: clamp(20px, 2.5vw, 32px); border: 1px solid #cfe0f8; border-radius: 18px; background: linear-gradient(135deg, #f4f9ff 0%, #fff 52%, #f2fbf8 100%); }
.phase-four-visual::after { position: absolute; top: -90px; right: -70px; width: 250px; height: 250px; border: 42px solid rgb(23 105 224 / 5%); border-radius: 50%; content: ""; pointer-events: none; }
.phase-four-visual > header { position: relative; z-index: 1; display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; }
.phase-four-visual > header h2 { margin: 4px 0 0; color: #091735; }
.phase-four-visual > header > span { padding: 8px 12px; border: 1px solid #b8d3f8; border-radius: 999px; background: rgb(255 255 255 / 75%); color: #1769e0; font-size: .78rem; font-weight: 800; }
.phase-four-visual-overview { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(260px, .7fr) minmax(300px, 1.3fr); gap: 16px; margin-top: 20px; }
.phase-four-score-visual, .phase-four-coverage-visual { display: flex; gap: 18px; padding: 18px; align-items: center; border: 1px solid rgb(207 224 248 / 90%); border-radius: 15px; background: rgb(255 255 255 / 82%); box-shadow: 0 8px 24px rgb(15 51 105 / 5%); }
.phase-four-score-visual .risk-score-ring { width: 108px; min-width: 108px; }
.phase-four-score-visual > div:last-child { display: grid; gap: 4px; }
.phase-four-score-visual > div:last-child > strong { color: #091735; font-size: 1.05rem; }
.phase-four-score-visual small, .phase-four-coverage-visual small { color: #64748b; }
.phase-four-coverage-visual { display: grid; align-content: center; }
.phase-four-coverage-visual > div:first-child { display: flex; gap: 16px; justify-content: space-between; }
.phase-four-coverage-visual > div:first-child strong { color: #091735; }
.phase-four-coverage-visual > div:first-child span { color: #087a42; font-size: 1.2rem; font-weight: 850; }
.phase-four-meter { overflow: hidden; height: 12px; border-radius: 999px; background: #dfe7f2; }
.phase-four-meter span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1769e0, #12a59a); }
.phase-four-visual-metrics { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.phase-four-visual-metrics article { display: flex; gap: 12px; min-height: 88px; padding: 15px; align-items: center; border: 1px solid #dce3ed; border-radius: 14px; background: #fff; }
.phase-four-visual-metrics article > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: #edf4ff; color: #1769e0; }
.phase-four-visual-metrics article.is-success > span { background: #e8f8ef; color: #087a42; }
.phase-four-visual-metrics article.is-warning > span { background: #fff5df; color: #bd7300; }
.phase-four-visual-metrics article.is-info > span { background: #edf4ff; color: #1769e0; }
.phase-four-visual-metrics .icon { width: 22px; height: 22px; }
.phase-four-visual-metrics article > div { display: grid; }
.phase-four-visual-metrics strong { color: #091735; font-size: 1.25rem; line-height: 1.1; }
.phase-four-visual-metrics small { margin-top: 4px; color: #64748b; }
.phase-four-signal-map { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.phase-four-signal-map article { padding: 16px; border: 1px solid #dce3ed; border-top-width: 4px; border-radius: 14px; background: #fff; }
.phase-four-signal-map article.is-success { border-top-color: #15905b; }
.phase-four-signal-map article.is-warning { border-top-color: #d58b0d; }
.phase-four-signal-map article.is-info { border-top-color: #1769e0; }
.phase-four-signal-map article > header { display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; color: #091735; }
.phase-four-signal-map article > header > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: #f1f5f9; }
.phase-four-signal-map article > header .icon { width: 18px; height: 18px; }
.phase-four-signal-map article > header b { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #edf4ff; color: #1769e0; }
.phase-four-signal-map ul { display: grid; gap: 7px; margin: 14px 0 0; padding-left: 18px; color: #475569; font-size: .86rem; }
.phase-four-signal-map p { margin: 14px 0 0; color: #64748b; font-size: .86rem; }
.phase-four-visual-placeholder { position: relative; z-index: 1; display: flex; gap: 13px; margin-top: 14px; padding: 16px; align-items: center; border: 1px dashed #a9c8f4; border-radius: 14px; background: rgb(255 255 255 / 58%); }
.phase-four-visual-placeholder > .icon { width: 28px; height: 28px; color: #1769e0; }
.phase-four-visual-placeholder strong, .phase-four-visual-placeholder p { display: block; margin: 0; }
.phase-four-visual-placeholder p { margin-top: 4px; color: #64748b; }
.phase-four-visual-complete-note { position: relative; z-index: 1; display: flex; gap: 13px; margin-top: 14px; padding: 14px 16px; align-items: center; color: #12633b; border: 1px solid #b9dfc8; border-radius: 14px; background: rgb(240 251 244 / 82%); }
.phase-four-visual-complete-note > .icon { width: 25px; height: 25px; flex: none; color: #15905b; }
.phase-four-visual-complete-note strong, .phase-four-visual-complete-note p { display: block; margin: 0; }
.phase-four-visual-complete-note p { margin-top: 3px; color: #536b60; font-size: .84rem; }
.phase-four-value-grid { display: grid; grid-template-columns: 1fr; gap: 18px; padding: clamp(20px, 2.5vw, 30px); border: 1px solid #cddcf5; border-radius: 18px; background: linear-gradient(135deg, #f8fbff, #fff 48%, #f8f6ff); }
.phase-four-value-copy { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px 16px; align-items: center; }
.phase-four-value-copy h2 { margin: 2px 0 7px; color: #0f1f3d; }
.phase-four-value-copy p { margin: 0; color: #64748b; line-height: 1.5; }
.phase-four-ai-mark { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 16px; background: linear-gradient(145deg, #1769e0, #6e4ee8); color: #fff; box-shadow: 0 10px 24px rgb(23 105 224 / 22%); }
.phase-four-ai-mark .icon { width: 26px; height: 26px; }
.phase-four-capability-map { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 8px; }
.phase-four-capability-map span { display: flex; gap: 8px; padding: 11px; align-items: center; border: 1px solid #d8e4f5; border-radius: 11px; background: #fff; color: #31405b; font-size: .86rem; font-weight: 750; }
.phase-four-capability-map .icon { width: 18px; height: 18px; color: #1769e0; }
.phase-four-value-note { grid-column: 1 / -1; display: flex; gap: .55rem; padding: .8rem 1rem; align-items: center; color: #4d5e73 !important; border: 1px solid #dfe6ef; border-radius: .75rem; background: rgb(255 255 255 / 75%); font-size: .82rem; }
.phase-four-value-note .icon { width: 1.05rem; height: 1.05rem; flex: none; color: #1769e0; }
.phase-four-result .report-ai-status { position: static; height: auto; margin: 0; padding: clamp(18px, 2.3vw, 28px); border: 1px solid #d8e2ef; border-radius: 16px; background: #fff; box-shadow: 0 12px 28px rgb(15 51 105 / 6%); }
.phase-four-price-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) 1.6fr; gap: 0; margin-top: 18px; padding: 18px; align-items: center; border: 1px solid #dce3ed; border-radius: 14px; }
.phase-four-price-summary > div { padding: 0 18px; border-right: 1px solid #dce3ed; }
.phase-four-price-summary small, .phase-four-price-summary strong { display: block; }
.phase-four-price-summary strong { margin-top: 3px; font-size: 1.3rem; }
.phase-four-price-summary p { display: flex; gap: 9px; margin: 0; padding-left: 20px; color: #64748b; }
.phase-four-actions { display: flex; gap: 14px; margin-top: 20px; justify-content: flex-end; }
.phase-four-agent-cta { display: flex; width: 100%; gap: 20px; padding: 18px 20px; align-items: center; justify-content: space-between; border: 1px solid #b8d3f8; border-radius: 16px; background: linear-gradient(105deg, #eff6ff, #f4f0ff); box-shadow: 0 10px 26px rgb(23 105 224 / 8%); }
.phase-four-agent-cta > div { display: flex; gap: 13px; align-items: center; }
.phase-four-agent-cta > div > span { display: grid; width: 46px; height: 46px; min-width: 46px; place-items: center; border-radius: 14px; background: #1769e0; color: #fff; }
.phase-four-agent-cta p, .phase-four-agent-cta small { display: block; margin: 0; }
.phase-four-agent-cta strong { color: #091735; font-size: 1rem; }
.phase-four-agent-cta small { margin-top: 4px; color: #64748b; }
.phase-four-agent-cta .button { display: inline-flex; gap: 8px; min-width: max-content; align-items: center; }
.phase-four-agent-cta .button .icon { width: 18px; height: 18px; }
.portal-theme-dark .ai-observation-heading h3,
.portal-theme-dark .ai-executive-summary h4,
.portal-theme-dark .ai-insight-card h4,
.portal-theme-dark .ai-human-review h4 { color: var(--color-ink); }
.portal-theme-dark .ai-observation-heading > div > p:last-child,
.portal-theme-dark .ai-executive-summary div > p:last-child,
.portal-theme-dark .ai-insight-card ul,
.portal-theme-dark .ai-insight-empty,
.portal-theme-dark .ai-human-review div > p:last-child,
.portal-theme-dark .ai-value-preview p { color: var(--color-muted); }
.portal-theme-dark .ai-observation-meta,
.portal-theme-dark .ai-executive-summary,
.portal-theme-dark .ai-insight-card,
.portal-theme-dark .ai-human-review,
.portal-theme-dark .ai-value-preview { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .ai-observation-meta,
.portal-theme-dark .ai-executive-summary,
.portal-theme-dark .ai-human-review,
.portal-theme-dark .ai-value-preview { background: var(--color-dark-raised); }
.portal-theme-dark .ai-analysis-scope { border-color: var(--color-border); }
.portal-theme-dark .ai-analysis-scope strong,
.portal-theme-dark .ai-value-preview span { color: var(--color-ink); }
.phase-five-capabilities { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 22px 0; }
.phase-five-capabilities span { display: flex; gap: 9px; padding: 14px; align-items: center; border: 1px solid #dce3ed; border-radius: 12px; }
.phase-five-capabilities .icon { width: 22px; height: 22px; color: #1769e0; }
.phase-five-workspace { margin-top: 12px; }

/* Fase 5: presentación previa y espacio del Agente IA */
.agent-preview, .agent-console { display: grid; gap: 16px; color: #091735; }
.agent-preview-hero { position: relative; display: grid; min-height: 210px; grid-template-columns: 260px minmax(0, 1fr) auto; gap: 26px; padding: 26px 30px; align-items: center; overflow: hidden; border: 1px solid #cfe0f6; border-radius: 20px; background: radial-gradient(circle at 12% 30%, rgb(50 151 255 / 24%), transparent 25%), linear-gradient(115deg, #f1f8ff 0%, #fff 55%, #e8f5ff 100%); box-shadow: 0 14px 34px rgb(15 79 166 / 9%); }
.agent-preview-hero::after { position: absolute; right: -40px; bottom: -80px; width: 420px; height: 180px; border-radius: 50%; background: repeating-radial-gradient(ellipse at center, transparent 0 13px, rgb(23 105 224 / 8%) 14px 15px); content: ""; transform: rotate(-8deg); }
.agent-preview-illustration { position: relative; display: grid; width: 210px; height: 155px; place-items: center; }
.agent-preview-orbit { position: absolute; width: 145px; height: 145px; border: 1px solid rgb(23 105 224 / 28%); border-radius: 50%; box-shadow: 0 0 0 18px rgb(23 105 224 / 5%), 0 0 0 38px rgb(23 105 224 / 4%); }
.agent-preview-bot { position: relative; z-index: 1; display: grid; width: 98px; height: 98px; place-items: center; color: #fff; border: 8px solid #fff; border-radius: 35% 35% 43% 43%; background: linear-gradient(145deg, #087ae8, #083b9f); box-shadow: 0 14px 26px rgb(7 76 181 / 28%); }
.agent-preview-bot .icon { width: 48px; height: 48px; }
.agent-preview-shield { position: absolute; z-index: 2; right: 22px; bottom: 4px; display: grid; width: 62px; height: 70px; place-items: center; color: #fff; border: 5px solid #dff7f5; border-radius: 50% 50% 45% 45%; background: #087f86; box-shadow: 0 8px 18px rgb(8 127 134 / 24%); }
.agent-preview-shield .icon { width: 32px; height: 32px; }
.agent-preview-hero-copy { position: relative; z-index: 1; }
.agent-preview-hero-copy h1 { max-width: 850px; margin: 4px 0 10px; font-size: clamp(2rem, 3.3vw, 3.25rem); line-height: 1.05; }
.agent-preview-hero-copy > p:not(.eyebrow) { max-width: 800px; margin: 0; color: #536785; font-size: 1.05rem; }
.agent-preview-trust { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.agent-preview-trust span { display: inline-flex; gap: 7px; padding: 8px 12px; align-items: center; color: #27476e; border: 1px solid #cbdcf0; border-radius: 999px; background: rgb(255 255 255 / 76%); font-size: .8rem; font-weight: 750; }
.agent-preview-trust .icon { width: 17px; height: 17px; color: #078b87; }
.agent-preview-level { position: relative; z-index: 2; display: flex; gap: 8px; padding: 10px 14px; align-self: start; align-items: center; color: #fff; border-radius: 12px; background: linear-gradient(135deg, #062f9f, #1457d5); box-shadow: 0 9px 20px rgb(6 47 159 / 25%); }
.agent-preview-level .icon { color: #ffd546; }
.agent-preview-level small, .agent-preview-level strong { display: block; }
.agent-preview-level small { opacity: .8; font-size: .65rem; text-transform: uppercase; }
.agent-preview-main { display: grid; grid-template-columns: minmax(330px, .95fr) minmax(520px, 1.65fr); gap: 16px; }
.agent-preview-demo, .agent-preview-capabilities { padding: 22px; border: 1px solid #dce5f0; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgb(15 31 61 / 6%); }
.agent-preview-demo > header { display: flex; gap: 12px; padding-bottom: 15px; align-items: center; border-bottom: 1px solid #e5ebf3; }
.agent-preview-demo > header > span { display: grid; width: 44px; height: 44px; place-items: center; color: #fff; border-radius: 50%; background: #1769e0; }
.agent-preview-demo h2, .agent-preview-capabilities h2 { margin: 0; font-size: 1.1rem; }
.agent-preview-demo header p { margin: 3px 0 0; color: #718099; font-size: .77rem; }
.agent-preview-message { display: flex; gap: 10px; margin: 16px 0; padding: 14px; align-items: flex-start; border-radius: 4px 16px 16px 16px; background: linear-gradient(135deg, #eef6ff, #f3f5fb); }
.agent-preview-message > span { color: #1769e0; }
.agent-preview-message p { margin: 0; color: #344968; font-size: .88rem; line-height: 1.5; }
.agent-preview-demo-list { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.agent-preview-demo-list li { display: flex; gap: 10px; padding: 9px 4px; align-items: center; border-bottom: 1px solid #edf1f6; }
.agent-preview-demo-list .icon { width: 20px; height: 20px; color: #1769e0; }
.agent-preview-demo-list strong, .agent-preview-demo-list small { display: block; }
.agent-preview-demo-list strong { font-size: .82rem; }
.agent-preview-demo-list small { margin-top: 2px; color: #718099; font-size: .7rem; }
.agent-preview-capabilities > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.agent-preview-capabilities article { display: flex; min-height: 104px; gap: 11px; padding: 14px; align-items: flex-start; border: 1px solid #dbe5f2; border-radius: 14px; background: linear-gradient(150deg, #fff, #f8fbff); }
.agent-preview-capabilities article > span { display: grid; width: 39px; height: 39px; min-width: 39px; place-items: center; color: #1769e0; border-radius: 11px; background: #eaf3ff; }
.agent-preview-capabilities article:nth-child(2) > span { color: #d26b00; background: #fff3df; }
.agent-preview-capabilities article:nth-child(3) > span { color: #078b87; background: #e4f8f5; }
.agent-preview-capabilities article:nth-child(4) > span { color: #7137c9; background: #f2eaff; }
.agent-preview-capabilities article strong, .agent-preview-capabilities article small { display: block; }
.agent-preview-capabilities article strong { font-size: .78rem; }
.agent-preview-capabilities article small { margin-top: 4px; color: #65758e; font-size: .68rem; line-height: 1.4; }
.agent-preview-value { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 14px; overflow: hidden; border: 1px solid #dbe5f2; border-radius: 14px; }
.agent-preview-value div { padding: 12px 16px; text-align: center; }
.agent-preview-value div + div { border-left: 1px solid #dbe5f2; }
.agent-preview-value small, .agent-preview-value strong { display: block; }
.agent-preview-value small { color: #718099; font-size: .67rem; }
.agent-preview-value strong { margin-top: 3px; color: #0d6d68; font-size: 1.3rem; }
.agent-preview-purchase { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(380px, .8fr); gap: 24px; padding: 22px 26px; align-items: center; border: 1px solid #a8d5ef; border-radius: 18px; background: linear-gradient(110deg, #e8f8ff, #fff 52%, #eaf3ff); box-shadow: inset 0 0 32px rgb(23 105 224 / 7%), 0 12px 28px rgb(15 79 166 / 8%); }
.agent-preview-purchase-copy { display: flex; gap: 16px; align-items: flex-start; }
.agent-preview-purchase-copy > span { display: grid; width: 54px; height: 54px; min-width: 54px; place-items: center; color: #fff; border-radius: 16px; background: #078b87; }
.agent-preview-purchase-copy h2 { margin: 0 0 5px; font-size: 1.15rem; }
.agent-preview-purchase-copy p { margin: 0; color: #536785; font-size: .82rem; }
.agent-preview-purchase-copy ul { display: flex; flex-wrap: wrap; gap: 7px 20px; margin: 12px 0 0; padding: 0; color: #0b6b67; list-style: none; font-size: .75rem; font-weight: 750; }
.agent-preview-purchase-copy li::before { margin-right: 5px; content: "✓"; }
.agent-preview-price { display: grid; gap: 9px; }
.agent-preview-price > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.agent-preview-price > div > span { padding: 10px 12px; border-radius: 11px; background: rgb(255 255 255 / 76%); }
.agent-preview-price small, .agent-preview-price strong { display: block; }
.agent-preview-price small { color: #718099; font-size: .66rem; }
.agent-preview-price strong { margin-top: 2px; font-size: 1.08rem; }
.agent-preview-price form { margin: 0; }
.agent-preview-price .button { width: 100%; }
.agent-preview-accept { display: inline-flex; gap: 8px; justify-content: center; }
.agent-preview-price > p { display: flex; gap: 6px; margin: 0; color: #5f6f86; font-size: .67rem; }
.agent-preview-price > p .icon { width: 15px; height: 15px; }

.agent-console { padding: 20px; border: 1px solid #d8e3f0; border-radius: 20px; background: linear-gradient(#fff, #fbfdff); box-shadow: 0 14px 36px rgb(15 31 61 / 7%); }
.agent-console-header { display: flex; gap: 20px; padding: 4px 4px 16px; align-items: center; justify-content: space-between; border-bottom: 1px solid #e4eaf2; }
.agent-console-header > div:first-child, .agent-console-status { display: flex; gap: 11px; align-items: center; }
.agent-console-logo { display: grid; width: 48px; height: 48px; place-items: center; color: #fff; border-radius: 15px; background: linear-gradient(140deg, #0585e9, #0a3ba5); }
.agent-console-header h1 { margin: 2px 0 0; font-size: 1.35rem; }
.agent-console-status { flex-wrap: wrap; justify-content: flex-end; }
.agent-console-status span { display: inline-flex; gap: 5px; align-items: center; color: #087d72; font-size: .72rem; font-weight: 750; }
.agent-console-status .icon { width: 17px; height: 17px; }
.agent-console-grid { display: grid; grid-template-columns: 300px minmax(480px, 1fr) 245px; gap: 16px; align-items: stretch; }
.agent-case-summary, .agent-conversation, .agent-tools { min-width: 0; padding: 18px; border: 1px solid #dce5f0; border-radius: 16px; background: #fff; }
.agent-case-summary h2, .agent-tools h2, .agent-conversation h2 { display: flex; gap: 7px; margin: 0; align-items: center; font-size: .98rem; }
.agent-case-summary h2 .icon, .agent-tools h2 .icon { width: 21px; height: 21px; color: #1769e0; }
.agent-case-person { display: flex; gap: 10px; margin: 16px 0; padding-bottom: 15px; align-items: center; border-bottom: 1px solid #e5ebf3; }
.agent-case-person > span { display: grid; width: 44px; height: 44px; place-items: center; color: #fff; border-radius: 50%; background: #1559c9; }
.agent-case-person strong, .agent-case-person small { display: block; }
.agent-case-person small { margin-top: 3px; color: #718099; font-size: .7rem; }
.agent-case-summary dl { display: grid; gap: 9px; margin: 0; }
.agent-case-summary dl div { display: flex; gap: 10px; justify-content: space-between; }
.agent-case-summary dt { color: #718099; font-size: .7rem; }
.agent-case-summary dd { margin: 0; font-size: .75rem; font-weight: 800; text-align: right; }
.agent-case-phases { margin-top: 15px; padding-top: 13px; border-top: 1px solid #e5ebf3; }
.agent-case-phases > small { color: #718099; font-size: .67rem; }
.agent-case-phases > div { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.agent-case-phases span { padding: 4px 7px; color: #08784d; border: 1px solid #b8e0cc; border-radius: 999px; background: #effbf5; font-size: .62rem; font-weight: 750; }
.agent-case-signals { display: grid; gap: 5px; margin-top: 14px; }
.agent-case-signals p { display: flex; margin: 0; padding: 8px 9px; align-items: center; justify-content: space-between; border-radius: 9px; background: #f5f8fc; font-size: .68rem; }
.agent-case-signals span { display: flex; gap: 5px; align-items: center; }
.agent-case-signals .icon { width: 16px; height: 16px; color: #078b87; }
.agent-case-signals strong { color: #08784d; }
.agent-case-link { display: inline-flex; width: 100%; gap: 7px; margin-top: 14px; justify-content: center; }
.agent-conversation { display: grid; min-height: 590px; grid-template-rows: auto minmax(260px, 1fr) auto auto; }
.agent-conversation > header { display: flex; padding-bottom: 12px; align-items: center; justify-content: space-between; border-bottom: 1px solid #e5ebf3; }
.agent-conversation > header > div { display: flex; gap: 7px; align-items: center; }
.agent-conversation > header > span { padding: 5px 9px; color: #1559c9; border: 1px solid #cbdcf5; border-radius: 999px; font-size: .67rem; font-weight: 800; }
.agent-welcome-message { display: flex; max-width: 82%; gap: 9px; margin-top: 14px; align-items: flex-start; }
.agent-welcome-message > span { display: grid; width: 34px; height: 34px; min-width: 34px; place-items: center; color: #fff; border-radius: 50%; background: #1559c9; }
.agent-welcome-message > div { padding: 13px 15px; border-radius: 4px 14px 14px; background: #f3f6fb; }
.agent-welcome-message strong { font-size: .73rem; }
.agent-welcome-message p { margin: 4px 0 0; color: #344968; font-size: .78rem; line-height: 1.5; }
.agent-suggestions { padding: 10px 0; border-top: 1px solid #e5ebf3; }
.agent-suggestions > small { color: #718099; font-size: .65rem; }
.agent-suggestions > div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.agent-suggestions form { margin: 0; }
.agent-suggestions .button { min-height: 34px; padding: 6px 9px; font-size: .67rem; }
.agent-conversation .agent-composer { padding: 8px; border: 1px solid #ccd9ea; border-radius: 13px; background: #fff; }
.agent-conversation .agent-composer textarea { min-height: 52px; padding: 7px; border: 0; resize: vertical; }
.agent-tools ul { display: grid; gap: 2px; margin: 13px 0; padding: 0; list-style: none; }
.agent-tools li, .agent-tools details > summary { display: flex; gap: 9px; padding: 10px 5px; align-items: center; border-bottom: 1px solid #edf1f6; }
.agent-tools li > .icon, .agent-tools summary > .icon { width: 21px; height: 21px; color: #1769e0; }
.agent-tools li strong, .agent-tools li small, .agent-tools summary strong, .agent-tools summary small { display: block; }
.agent-tools li strong, .agent-tools summary strong { font-size: .72rem; }
.agent-tools li small, .agent-tools summary small { margin-top: 2px; color: #718099; font-size: .62rem; }
.agent-tools details > summary { cursor: pointer; list-style: none; }
.agent-tools details[open] > summary { color: #1559c9; }
.agent-tools .stack-form { margin-top: 10px; }
.agent-tool-actions { display: grid; gap: 4px; }
.agent-tool-actions form { margin: 0; }
.agent-tool-button { display: flex; width: 100%; gap: 9px; padding: 10px 5px; align-items: center; color: inherit; border: 0; border-bottom: 1px solid #edf1f6; background: transparent; text-align: left; text-decoration: none; cursor: pointer; }
.agent-tool-button:hover, .agent-tool-button:focus-visible { color: #0d55c5; background: #f4f8ff; }
.agent-tool-button .icon { width: 21px; height: 21px; flex: 0 0 21px; color: #1769e0; }
.agent-tool-button strong, .agent-tool-button small { display: block; }
.agent-tool-button strong { font-size: .72rem; }
.agent-tool-button small { margin-top: 2px; color: #718099; font-size: .62rem; }
.agent-tool-form { border-bottom: 1px solid #edf1f6; }
.agent-console-footer { display: flex; gap: 16px; padding: 15px 4px 2px; align-items: center; justify-content: space-between; border-top: 1px solid #e4eaf2; }
.agent-console-footer > p { display: flex; gap: 9px; margin: 0; align-items: center; }
.agent-console-footer > p > .icon { color: #1769e0; }
.agent-console-footer strong, .agent-console-footer small { display: block; }
.agent-console-footer strong { font-size: .76rem; }
.agent-console-footer small { margin-top: 2px; color: #718099; font-size: .66rem; }
.agent-console-footer form { margin: 0; }
.agent-console-reopen { display: flex; gap: 14px; padding: 28px; align-items: center; border: 1px solid #cfe0f6; border-radius: 16px; background: #f4f9ff; }
.agent-console-reopen > span { color: #1769e0; }
.agent-console-reopen h2, .agent-console-reopen p { margin: 0; }
.agent-console-reopen p { margin-top: 4px; color: #64748b; }
.agent-console-reopen form { margin-left: auto; }

@media (max-width: 1180px) {
  .agent-preview-hero { grid-template-columns: 190px minmax(0, 1fr); }
  .agent-preview-level { position: absolute; top: 18px; right: 18px; }
  .agent-preview-illustration { width: 170px; }
  .agent-preview-main { grid-template-columns: .8fr 1.2fr; }
  .agent-preview-capabilities > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agent-console-grid { grid-template-columns: 250px minmax(440px, 1fr); }
  .agent-tools { grid-column: 1 / -1; }
  .agent-tools ul { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .agent-preview-hero { grid-template-columns: 1fr; padding-top: 72px; text-align: center; }
  .agent-preview-illustration { display: none; }
  .agent-preview-trust { justify-content: center; }
  .agent-preview-main, .agent-preview-purchase, .agent-console-grid { grid-template-columns: 1fr; }
  .agent-preview-purchase { gap: 18px; }
  .agent-console-header, .agent-console-footer { align-items: stretch; flex-direction: column; }
  .agent-console-status { justify-content: flex-start; }
  .agent-case-summary { order: 2; }
  .agent-conversation { order: 1; min-height: 520px; }
  .agent-tools { order: 3; grid-column: auto; }
  .agent-tools ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agent-console-footer .button { width: 100%; }
}

@media (max-width: 540px) {
  .wizard-phase-five-page { width: min(calc(100% - 16px), 1480px); padding-top: 12px; }
  .agent-preview-hero, .agent-preview-demo, .agent-preview-capabilities, .agent-preview-purchase, .agent-console { padding: 16px; border-radius: 14px; }
  .agent-preview-hero-copy h1 { font-size: 1.8rem; }
  .agent-preview-trust { display: grid; }
  .agent-preview-capabilities > div, .agent-preview-value, .agent-preview-price > div, .agent-tools ul { grid-template-columns: 1fr; }
  .agent-preview-value div + div { border-top: 1px solid #dbe5f2; border-left: 0; }
  .agent-preview-purchase-copy { flex-direction: column; }
  .agent-console { padding: 10px; }
  .agent-case-summary, .agent-conversation, .agent-tools { padding: 13px; }
  .agent-conversation { min-height: 470px; }
  .agent-conversation .agent-composer { grid-template-columns: 1fr auto; }
  .agent-welcome-message { max-width: 100%; }
  .agent-console-reopen { align-items: stretch; flex-direction: column; }
  .agent-console-reopen form { margin-left: 0; }
}

@media (min-width: 1200px) {
  .phase-three-form-shell .correction-question-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .phase-three-form-shell .correction-request-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .phase-three-form-shell .correction-question-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .phase-three-result-cards { grid-template-columns: 1fr; }
  .phase-three-source-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .wizard-phase-three-page { padding-top: 18px; }
  .wizard-phase-three-ready,
  .wizard-phase-three-pending { margin: 0 18px 22px; padding: 18px; }
  .wizard-phase-three-pending .button-link { width: 100%; justify-content: center; }
  .wizard-phase-three-result { margin: 0 10px 20px; }
  .phase-three-heading, .phase-three-product-actions, .phase-three-confirmation { align-items: stretch; flex-direction: column; }
  .phase-three-heading-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .phase-three-heading-actions form,
  .phase-three-heading-actions .button,
  .phase-three-heading-actions .button-link,
  .phase-three-free-badge { width: 100%; }
  .phase-three-free-badge { justify-content: center; }
  .phase-three-product-shell, .phase-three-form-shell, .phase-three-ai-action { margin: 0 18px 22px; }
  .phase-three-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .phase-three-application-grid { grid-template-columns: 1fr; }
  .phase-three-product-analysis > summary { grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; padding: 15px; }
  .phase-three-product-analysis-metric { grid-column: 2; padding: 0; border-left: 0; }
  .phase-three-product-analysis-action { grid-row: 1 / span 3; grid-column: 3; min-width: 0; }
  .phase-three-product-analysis-action > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .phase-three-product-analysis-body { padding: 12px; }
  .case-product-switcher { align-items: stretch; flex-direction: column; }
  .case-product-switcher-links { justify-content: flex-start; }
  .phase-three-ai-copy { grid-template-columns: auto 1fr; }
  .phase-three-ai-price { grid-column: 2; }
  .phase-three-form-shell .correction-question-grid { grid-template-columns: 1fr; gap: 1.15rem; }
  .phase-three-form-shell .correction-question .help-text { min-height: 0; }
  .phase-three-form-shell .correction-actions { position: static; margin-top: 0; }
  .phase-three-analysis-ready { margin: 0 18px 22px; }
  .phase-three-analysis-grid { grid-template-columns: 1fr; }
  .phase-three-analysis-card-heading > p:last-child { min-height: 0; }
  .phase-three-score-result-heading, .phase-four-heading, .phase-five-heading { flex-direction: column; }
  .phase-four-purchase { align-items: stretch; flex-direction: column; }
  .phase-four-purchase-button { width: 100%; min-width: 0; }
  .phase-three-result-cards, .phase-four-value-grid, .phase-four-visual-overview,
  .phase-four-capability-map, .ai-insight-grid, .ai-value-preview > div { grid-template-columns: 1fr; }
  .phase-three-score-metrics { grid-template-columns: 1fr; }
  .phase-three-source-summary, .phase-four-evidence, .phase-five-capabilities, .phase-four-visual-metrics, .phase-four-signal-map { grid-template-columns: 1fr; }
  .phase-four-price-summary { grid-template-columns: 1fr; gap: 12px; }
  .phase-four-price-summary > div { padding: 0; border-right: 0; }
  .phase-four-price-summary p { padding-left: 0; }
  .phase-four-actions { align-items: stretch; flex-direction: column; }
  .phase-four-visual > header, .phase-four-agent-cta { align-items: stretch; flex-direction: column; }
  .phase-four-agent-cta .button { width: 100%; min-width: 0; justify-content: center; }
  .ai-observation-meta { align-items: flex-start; flex-direction: column; }
  .ai-observation-meta > span:last-child { align-items: flex-start; flex-direction: column; }
}
@media (min-width: 701px) and (max-width: 1050px) {
  .phase-four-capability-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 701px) and (max-width: 1050px) { .phase-three-application-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .phase-three-product-grid { grid-template-columns: 1fr; }
  .phase-three-product-card { min-height: 82px; }
}

@media (prefers-reduced-motion: reduce) {
  .phase-three-risk-gauge-progress { animation: none; }
  .phase-three-risk-gauge-needle { animation: none; }
}

/* Fase 5 · experiencia dedicada del Agente IA */
.agent-experience-body { min-width: 320px; color: #071642; background: #f8fbff; }
.agent-experience-body .turbo-progress-bar { display: none; }
.agent-experience-body > .platform-powered-by:not(.is-dock) { display: none; }
.agent-experience-body > .flash { position: fixed; z-index: 30; top: 98px; right: 24px; width: min(440px, calc(100% - 32px)); margin: 0; box-shadow: 0 12px 28px rgb(11 39 84 / 16%); }
.agent-app-header { display: grid; min-height: 88px; grid-template-columns: minmax(300px, 1fr) auto minmax(300px, 1fr); padding: 0 30px; align-items: center; border-bottom: 1px solid #d9e2ef; background: rgb(255 255 255 / 96%); box-shadow: 0 2px 12px rgb(16 43 91 / 4%); }
.agent-app-brand { display: flex; min-width: 0; gap: 11px; align-items: center; color: #071642; text-decoration: none; }
.agent-app-brand > span:last-child { display: flex; gap: 22px; align-items: center; }
.agent-app-brand strong { font-size: 1.75rem; letter-spacing: -.05em; white-space: nowrap; }
.agent-app-brand em { color: #087fdf; font-size: .72em; font-style: normal; letter-spacing: -.02em; }
.agent-app-brand small { color: #071642; font-size: .86rem; white-space: nowrap; }
.agent-app-mark { display: grid; width: 42px; height: 42px; place-items: center; color: #fff; border-radius: 14px 4px 14px 4px; background: linear-gradient(145deg, #079bdd, #1047d7); box-shadow: 0 8px 18px rgb(20 87 218 / 22%); }
.agent-app-mark .icon { width: 25px; height: 25px; }
.agent-phase-track { display: grid; gap: 6px; justify-items: center; }
.agent-phase-track > strong { color: #0c2e84; font-size: .76rem; }
.agent-phase-track ol { display: flex; margin: 0; padding: 0; list-style: none; }
.agent-phase-track li { position: relative; display: flex; width: 66px; align-items: center; }
.agent-phase-track li:not(:last-child)::after { height: 1px; flex: 1; background: #aebed6; content: ""; }
.agent-phase-track a, .agent-phase-track li > span { display: grid; width: 24px; height: 24px; flex: 0 0 24px; place-items: center; color: #49638a; border: 1px solid #9db1cf; border-radius: 50%; background: #fff; font-size: .67rem; font-weight: 800; text-decoration: none; }
.agent-phase-track li[aria-current="step"] > span { color: #fff; border-color: #0d5bdd; background: #0d5bdd; box-shadow: 0 4px 12px rgb(13 91 221 / 23%); }
.agent-app-actions { display: flex; gap: 20px; align-items: center; justify-content: flex-end; }
.agent-app-balance { display: flex; gap: 10px; align-items: center; color: #0b315f; text-decoration: none; }
.agent-app-balance > .icon { width: 25px; height: 25px; color: #0d5bdd; }
.agent-app-balance span, .agent-app-balance strong { display: block; }
.agent-app-balance span { font-size: .72rem; }
.agent-app-balance strong { margin-top: 2px; color: #006d70; font-size: .97rem; }
.agent-app-user { display: grid; width: 42px; height: 42px; place-items: center; color: #0a4aba; border-radius: 50%; background: #e9f2ff; }
.agent-app-user .icon { width: 27px; height: 27px; }
.agent-app-subbar { display: grid; min-height: 62px; grid-template-columns: 1fr 1fr 1fr; padding: 0 30px; align-items: center; color: #16335f; border-bottom: 1px solid #dbe5f1; background: #f7fbff; font-size: .78rem; }
.agent-app-subbar span { display: flex; gap: 8px; align-items: center; }
.agent-app-subbar span:nth-child(2) { justify-content: center; }
.agent-app-subbar span:last-child { justify-content: flex-end; color: #0c55c7; }
.agent-app-subbar .is-active { color: #009765; }
.agent-app-subbar .icon { width: 20px; height: 20px; color: #0d5bdd; }
.agent-experience-body .wizard-phase-five-page { display: block; width: 100%; max-width: none; padding: 22px 30px 126px; }
.agent-experience-body .agent-preview, .agent-experience-body .agent-console { max-width: 1480px; margin: 0 auto; gap: 16px; }

.agent-experience-body .agent-preview-hero { min-height: 212px; grid-template-columns: 300px minmax(0, 1fr) 150px; gap: 10px; padding: 20px 28px; border-radius: 17px; background: radial-gradient(circle at 13% 34%, rgb(11 114 229 / 13%), transparent 25%), linear-gradient(108deg, #f5fbff 0%, #fff 55%, #eef7ff 100%); box-shadow: 0 8px 24px rgb(14 59 129 / 8%); }
.agent-experience-body .agent-preview-hero::after { right: 0; bottom: 0; width: 39%; height: 56%; border-radius: 0; background: linear-gradient(150deg, transparent 0 45%, rgb(38 119 214 / 8%) 46% 48%, transparent 49%), linear-gradient(18deg, transparent 0 45%, rgb(15 139 166 / 10%) 46% 48%, transparent 49%); clip-path: polygon(0 55%, 25% 28%, 42% 52%, 62% 15%, 100% 45%, 100% 100%, 0 100%); transform: none; }
.agent-experience-body .agent-preview-illustration { z-index: 2; width: 285px; height: 190px; align-self: end; }
.agent-preview-robot { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 14px 14px rgb(17 71 155 / 17%)); }
.agent-experience-body .agent-preview-hero-copy { align-self: center; }
.agent-experience-body .agent-preview-hero-copy h1 { max-width: 850px; margin: 0 0 12px; color: #071b58; font-size: clamp(2rem, 3vw, 2.65rem); letter-spacing: -.035em; }
.agent-experience-body .agent-preview-hero-copy > p:not(.eyebrow) { color: #597096; font-size: 1rem; }
.agent-experience-body .agent-preview-trust { margin-top: 20px; }
.agent-experience-body .agent-preview-trust span { padding: 8px 13px; color: #17345e; background: rgb(255 255 255 / 86%); font-size: .72rem; }
.agent-experience-body .agent-preview-level { margin-top: 0; align-self: start; }
.agent-experience-body .agent-preview-main { grid-template-columns: minmax(440px, 1.05fr) minmax(570px, .95fr); gap: 16px; }
.agent-experience-body .agent-preview-demo, .agent-experience-body .agent-preview-capabilities { padding: 20px; border-radius: 17px; }
.agent-experience-body .agent-preview-demo { min-height: 390px; }
.agent-preview-demo > header b { margin-left: auto; color: #6680a5; font-size: 1.2rem; }
.agent-experience-body .agent-preview-message { width: min(78%, 480px); margin: 18px 0 28px 42px; padding: 15px 17px; }
.agent-preview-prompts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.agent-preview-prompts span { display: flex; min-height: 64px; gap: 7px; padding: 9px; align-items: center; color: #0b49b7; border: 1px solid #b9d0f0; border-radius: 10px; background: #fff; font-size: .67rem; font-weight: 700; line-height: 1.3; }
.agent-preview-prompts .icon { width: 20px; height: 20px; flex: 0 0 20px; }
.agent-preview-composer { display: flex; min-height: 56px; margin-top: 20px; padding: 9px 10px 9px 16px; align-items: center; justify-content: space-between; color: #7a8ba6; border: 1px solid #ccd9eb; border-radius: 12px; font-size: .76rem; }
.agent-preview-composer b { display: grid; width: 40px; height: 40px; place-items: center; color: #fff; border-radius: 10px; background: #0d5bdd; transform: rotate(180deg); }
.agent-experience-body .agent-preview-capabilities > div { gap: 9px; margin-top: 16px; }
.agent-experience-body .agent-preview-capabilities article { min-height: 94px; padding: 12px; }
.agent-experience-body .agent-preview-capabilities h3 { margin: 18px 0 0; padding-top: 15px; border-top: 1px solid #e1e8f2; font-size: .9rem; }
.agent-experience-body .agent-preview-value { margin-top: 10px; }
.agent-experience-body .agent-preview-value div { display: grid; grid-template-columns: auto auto; gap: 0 9px; padding: 12px; align-items: center; text-align: left; }
.agent-experience-body .agent-preview-value div > span { display: grid; width: 38px; height: 38px; grid-row: 1 / 3; place-items: center; color: #0d5bdd; border-radius: 11px; background: #edf4ff; }
.agent-experience-body .agent-preview-value .icon { width: 22px; height: 22px; }
.agent-experience-body .agent-preview-value strong { margin: 0; color: #e14a56; }
.agent-experience-body .agent-preview-value div:nth-child(2) strong { color: #e67c15; }
.agent-experience-body .agent-preview-value div:nth-child(3) strong { color: #07867f; }
.agent-experience-body .agent-preview-purchase { min-height: 210px; grid-template-columns: 250px minmax(360px, .85fr) minmax(520px, 1.15fr); gap: 24px; padding: 20px 28px; border: 2px solid #a8e2f7; border-radius: 17px; background: radial-gradient(circle at 10% 65%, rgb(3 184 237 / 18%), transparent 22%), linear-gradient(110deg, #e6f8ff, #fff 52%, #e8f3ff); box-shadow: inset 0 0 34px rgb(23 105 224 / 8%), 0 8px 25px rgb(15 79 166 / 9%); }
.agent-preview-purchase-visual { position: relative; display: grid; height: 160px; place-items: center; }
.agent-preview-purchase-visual::before { position: absolute; bottom: 4px; width: 145px; height: 38px; border: 3px solid #29d2ee; border-radius: 50%; background: radial-gradient(ellipse, #0c57cb 0 38%, #0b2f8e 40% 62%, #18d7ee 64% 68%, transparent 70%); box-shadow: 0 0 28px #5fdcf1; content: ""; }
.agent-preview-purchase-visual > span { z-index: 1; display: grid; width: 94px; height: 104px; place-items: center; color: #fff; border: 8px solid #6be7f6; border-radius: 50% 50% 44% 44%; background: linear-gradient(#0b61dd, #052c91); clip-path: polygon(50% 0, 95% 16%, 88% 73%, 50% 100%, 12% 73%, 5% 16%); filter: drop-shadow(0 0 16px #2ecce8); }
.agent-preview-purchase-visual .icon { width: 45px; height: 45px; }
.agent-experience-body .agent-preview-purchase-copy { display: block; }
.agent-experience-body .agent-preview-purchase-copy h2 { color: #0835a0; font-size: 1.18rem; }
.agent-experience-body .agent-preview-purchase-copy ul { display: grid; gap: 8px; margin-top: 14px; font-size: .76rem; }
.agent-preview-sources { display: inline-block; margin-top: 13px; color: #0b55ca; font-size: .72rem; text-decoration: none; }
.agent-experience-body .agent-preview-price { padding-left: 24px; border-left: 1px solid #b8cce7; }
.agent-experience-body .agent-preview-price-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.agent-experience-body .agent-preview-price-summary > span { padding: 7px 15px; background: transparent; }
.agent-experience-body .agent-preview-price-summary > span + span { border-left: 1px solid #cdd9e8; }
.agent-experience-body .agent-preview-price-summary strong { color: #08387b; font-size: 1.25rem; }
.agent-experience-body .agent-preview-price-summary span:last-child strong { color: #08834d; }
.agent-preview-actions { display: grid; grid-template-columns: .8fr 1.2fr; gap: 12px; margin-top: 16px; }
.agent-experience-body .agent-preview-actions form { margin: 0; }
.agent-experience-body .agent-preview-actions .button { min-height: 48px; }

.agent-experience-body .agent-console { padding: 0; border: 0; background: transparent; box-shadow: none; }
.agent-experience-body .agent-console-grid { grid-template-columns: 290px minmax(0, 1fr); gap: 20px; }
.agent-experience-body turbo-frame#financial-agent-chat { display: block; min-width: 0; }
.agent-experience-body .agent-case-summary, .agent-experience-body .agent-conversation { border-radius: 15px; box-shadow: 0 6px 22px rgb(12 45 95 / 7%); }
.agent-experience-body .agent-case-summary { padding: 24px 20px; }
.agent-experience-body .agent-case-summary h1, .agent-experience-body .agent-conversation h1 { display: flex; gap: 9px; margin: 0; align-items: center; font-size: 1.05rem; }
.agent-experience-body .agent-case-summary dl { gap: 0; }
.agent-experience-body .agent-case-summary dl div { display: block; padding: 13px 5px; border-bottom: 1px solid #e2e9f2; }
.agent-experience-body .agent-case-summary dt { display: flex; gap: 8px; align-items: center; font-size: .72rem; }
.agent-experience-body .agent-case-summary dt .icon { width: 18px; height: 18px; color: #0d5bdd; }
.agent-experience-body .agent-case-summary dd { margin-top: 4px; padding-left: 26px; text-align: left; }
.agent-experience-body .agent-case-signals p { min-height: 51px; padding: 10px; }
.agent-experience-body .agent-case-signals .is-warning strong { color: #e17800; }
.agent-experience-body .agent-conversation { position: relative; display: flex; min-height: 690px; padding: 20px 24px; overflow: visible; flex-direction: column; }
.agent-experience-body .agent-conversation header > div:first-child { display: flex; gap: 9px; align-items: center; }
.agent-experience-body .agent-conversation header small { display: block; margin-top: 3px; color: #687d9c; font-size: .7rem; }
.agent-chat-controls { display: flex; gap: 10px; align-items: center; }
.agent-chat-controls span, .agent-chat-controls button { display: inline-flex; min-height: 37px; gap: 7px; padding: 7px 12px; align-items: center; color: #0d4fbd; border: 1px solid #cbdaf0; border-radius: 10px; background: #fff; font: inherit; font-size: .7rem; cursor: pointer; }
.agent-chat-controls button { border-color: #0e65e8; font-weight: 800; }
.agent-chat-controls button b { display: inline-block; transition: transform .16s ease; }
.agent-chat-controls button[aria-expanded="true"] b { transform: rotate(180deg); }
.agent-chat-controls .icon { width: 17px; height: 17px; }
.agent-tools[hidden] { display: none !important; }
.agent-experience-body .agent-tools { position: absolute; z-index: 5; top: 68px; right: 24px; width: 292px; padding: 12px 18px; border-radius: 12px; box-shadow: 0 12px 26px rgb(11 39 84 / 18%); }
.agent-experience-body .agent-tools ul { margin: 0; }
.agent-experience-body .agent-tools li { padding: 11px 3px; }
.agent-experience-body .agent-tools details { margin-top: 3px; }
.agent-experience-body .agent-messages { min-height: 0; max-height: none; padding-right: 8px; overflow-y: auto; overscroll-behavior: contain; scroll-behavior: smooth; flex: 1 1 auto; }
.agent-experience-body .agent-message--assistant { border-color: #d8e4f3; background: #f6f9fd; }
.agent-experience-body .agent-message--user { border-color: #b7d2f6; background: #eaf3ff; }
.agent-experience-body .agent-message { font-size: .9rem; line-height: 1.58; }
.agent-experience-body .agent-message > strong { font-size: .78rem; }
.agent-experience-body .agent-conversation .agent-composer textarea { font-size: .9rem; line-height: 1.45; }
.agent-experience-body .agent-message.is-pending { opacity: .78; }
.agent-experience-body .agent-message--system_receipt { max-width: 100%; color: #52657f; background: #f8fafc; font-size: .72rem; }
.agent-experience-body .agent-conversation[aria-busy="true"] .agent-composer { opacity: .78; }
.agent-thinking { display: flex; width: fit-content; max-width: 84%; gap: 10px; margin: 10px 0; padding: 12px 15px; align-items: center; color: #355275; border: 1px solid #d7e4f3; border-radius: 14px 14px 14px 4px; background: #f7faff; }
.agent-thinking[hidden] { display: none; }
.agent-thinking p, .agent-thinking strong, .agent-thinking small { display: block; margin: 0; }
.agent-thinking small { margin-top: 2px; color: #7185a2; font-size: .68rem; }
.agent-chat-feedback { margin: 10px 0 0; padding: 9px 12px; border-radius: 9px; font-size: .74rem; }
.agent-chat-feedback.is-success { color: #096445; background: #ecfbf5; }
.agent-chat-feedback.is-error { color: #a12632; background: #fff0f1; }
.agent-composer-help { margin: 7px 2px 0; color: #71809a; font-size: .67rem; }
.agent-experience-body .agent-suggestions,
.agent-experience-body .agent-composer,
.agent-experience-body .agent-composer-help { min-width: 0; flex: 0 0 auto; }
.agent-experience-body .agent-composer-help { min-height: 1rem; line-height: 1.45; }
.agent-experience-body .agent-welcome-message { max-width: 100%; }
.agent-experience-body .agent-welcome-message > div { padding: 16px 20px; }
.agent-experience-body .agent-welcome-message p { margin: 0; }
.agent-experience-body .agent-welcome-message ol { margin: 10px 0 0; padding-left: 20px; color: #344968; font-size: .78rem; line-height: 1.8; }
.agent-experience-body .agent-console-footer { margin-top: 18px; padding: 20px 26px; border: 1px solid #d7e3f1; border-radius: 15px; background: #fff; box-shadow: 0 5px 18px rgb(12 45 95 / 5%); }
.agent-console-footer > div { display: flex; gap: 16px; }
.agent-console-footer > div form { margin: 0; }
.agent-console-footer .button, .agent-console-footer .button-link { min-width: 190px; justify-content: center; }
.agent-phase-dock .wizard-bottom-phase-menu { min-width: 0; }

@media (min-width: 1101px) {
  .agent-experience-body .agent-console { height: max(480px, calc(100dvh - 270px)); grid-template-rows: minmax(0, 1fr) auto; }
  .agent-experience-body .agent-console-grid { min-height: 0; }
  .agent-experience-body turbo-frame#financial-agent-chat { height: 100%; min-height: 0; }
  .agent-experience-body .agent-case-summary, .agent-experience-body .agent-conversation { height: 100%; min-height: 0; overflow: hidden; }
  .agent-experience-body .agent-case-summary { overflow-y: auto; }
  .agent-experience-body .agent-console-footer { margin-top: 0; padding-block: 12px; }
  .agent-experience-body .agent-composer textarea { resize: none; }
}

@media (max-width: 1100px) {
  .agent-app-header { grid-template-columns: 1fr auto; }
  .agent-phase-track { grid-row: 2; grid-column: 1 / -1; padding-bottom: 12px; }
  .agent-experience-body .agent-preview-main, .agent-experience-body .agent-preview-purchase, .agent-experience-body .agent-console-grid { grid-template-columns: 1fr; }
  .agent-preview-purchase-visual { display: none; }
  .agent-experience-body .agent-preview-price { padding: 0; border: 0; }
  .agent-experience-body .agent-case-summary { order: 2; }
}
@media (max-width: 760px) {
  .phase-three-activation-help { grid-template-columns: 1fr; }
  .agent-app-header { min-height: 74px; padding: 10px 16px; }
  .agent-app-brand small, .agent-app-user, .agent-preview-level { display: none; }
  .agent-app-brand > span:last-child { display: block; }
  .agent-app-brand strong { font-size: 1.35rem; }
  .agent-app-subbar { grid-template-columns: 1fr; gap: 8px; padding: 12px 16px; }
  .agent-app-subbar span:nth-child(2), .agent-app-subbar span:last-child { justify-content: flex-start; }
  .agent-experience-body .wizard-phase-five-page { padding: 14px 10px 178px; }
  .agent-experience-body .agent-preview-hero { display: block; min-height: 0; padding: 20px; text-align: left; }
  .agent-experience-body .agent-preview-illustration { display: block; width: 180px; height: 120px; margin: 0 auto 8px; }
  .agent-experience-body .agent-preview-trust { justify-content: flex-start; }
  .agent-experience-body .agent-preview-capabilities > div, .agent-preview-prompts { grid-template-columns: repeat(2, 1fr); }
  .agent-experience-body .agent-preview-value, .agent-experience-body .agent-preview-price-summary, .agent-preview-actions { grid-template-columns: 1fr; }
  .agent-experience-body .agent-preview-value div + div, .agent-experience-body .agent-preview-price-summary > span + span { border-top: 1px solid #dbe5f2; border-left: 0; }
  .agent-experience-body .agent-console-grid { gap: 14px; }
  .agent-experience-body .agent-conversation { min-height: 650px; padding: 14px; }
  .agent-experience-body .agent-tools { position: static; width: auto; margin: 12px 0; box-shadow: none; }
  .agent-experience-body .agent-messages { padding-right: 0; }
  .agent-experience-body .agent-console-footer, .agent-console-footer > div { align-items: stretch; flex-direction: column; }
  .agent-console-footer .button { width: 100%; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .agent-chat-controls button b { transition: none; }
}
.optional-label {
  display: inline-flex;
  margin-left: 0.45rem;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  background: var(--color-surface-soft, #f1f5f9);
  color: var(--color-text-muted, #64748b);
  font-size: 0.72rem;
  font-weight: 700;
  vertical-align: middle;
}

.income-period-list {
  display: grid;
  gap: 0.65rem;
  margin: 1rem 0;
}

.optional-section-choice {
  max-width: 38rem;
  margin: 1rem 0;
  padding: 0.9rem 1rem;
  border: 1px solid var(--color-brand-100, #cfe1ff);
  border-radius: 0.75rem;
  background: var(--color-brand-50, #f4f8ff);
}

.optional-section-content {
  margin-top: 1rem;
}

.income-period-row {
  display: grid;
  grid-template-columns: minmax(9rem, 0.8fr) minmax(12rem, 1fr) minmax(16rem, 1.35fr);
  gap: 1rem;
  align-items: center;
  padding: 0.85rem 1rem;
  border: 1px solid var(--color-border, #dbe3ee);
  border-radius: 0.75rem;
  background: var(--color-surface, #fff);
}

.income-period-row small {
  display: block;
  color: var(--color-text-muted, #64748b);
}

.income-period-row .field-group {
  margin: 0;
}

.phase-three-income-stability {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--color-border, #dbe3ee);
  border-radius: 0.85rem;
  background: var(--color-surface-soft, #f8fafc);
}

.phase-three-income-stability h3,
.phase-three-income-stability p {
  margin: 0.2rem 0;
}

@media (max-width: 760px) {
  .income-period-row {
    grid-template-columns: 1fr;
  }

  .phase-three-income-stability {
    align-items: flex-start;
    flex-direction: column;
  }
}
.kyc-allowance-card { display: grid; gap: .8rem; margin-top: 1rem; padding: 1rem 1.1rem; border: 1px solid #cfe0ea; border-radius: 1rem; background: linear-gradient(135deg, #f8fbfd, #fff); }
.kyc-allowance-actions-only { width: min(100%, 760px); margin-inline: auto; }
.kyc-allowance-compact { width: clamp(17rem, 23vw, 22rem); min-height: 3.65rem; padding: .5rem .65rem .4rem; display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .2rem .55rem; align-items: center; color: #17375b; border: 1px solid #cfe0ea; border-radius: .8rem; background: linear-gradient(135deg, #f8fbfd, #fff); }
.kyc-allowance-compact.is-exhausted { color: #8b451d; border-color: #e6c4a6; background: #fffaf5; }
.kyc-allowance-compact-icon { display: grid; width: 2rem; height: 2rem; grid-row: 1; color: #0968a8; border-radius: .62rem; background: #e8f3fa; place-items: center; }
.kyc-allowance-compact-icon svg { width: 1.05rem; height: 1.05rem; }
.kyc-allowance-compact-copy { min-width: 0; line-height: 1.05; }
.kyc-allowance-compact-copy > small { display: block; overflow: hidden; color: #667589; font-size: .62rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.kyc-allowance-compact-copy > strong { display: block; margin-top: .16rem; overflow: hidden; color: currentcolor; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.kyc-allowance-compact-copy b { font-size: 1rem; font-variant-numeric: tabular-nums; }
.kyc-allowance-compact-copy strong span { font-weight: 750; }
.kyc-allowance-compact-used { min-width: 2.8rem; text-align: right; line-height: .9; }
.kyc-allowance-compact-used strong { display: block; font-size: 1rem; font-variant-numeric: tabular-nums; }
.kyc-allowance-compact-used small { display: block; margin-top: .18rem; color: #667589; font-size: .56rem; font-weight: 700; }
.kyc-allowance-compact-progress { height: .22rem; overflow: hidden; grid-column: 1 / -1; border-radius: 99px; background: #e6edf2; }
.kyc-allowance-compact-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #0e76b7, #32a47d); }
.kyc-allowance-compact.is-exhausted .kyc-allowance-compact-progress i { background: #c96b2c; }
.kyc-allowance-card.is-exhausted { border-color: #e6c4a6; background: #fffaf5; }
.kyc-allowance-heading { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .8rem; align-items: center; }
.kyc-allowance-heading > span { display: grid; width: 2.5rem; height: 2.5rem; border-radius: .75rem; color: #0968a8; background: #e8f3fa; place-items: center; }
.kyc-allowance-heading > span svg { width: 1.25rem; height: 1.25rem; }
.kyc-allowance-heading small, .kyc-allowance-heading p { color: #667589; }
.kyc-allowance-heading h2 { margin: .12rem 0; color: #17375b; font-size: 1.05rem; }
.kyc-allowance-heading p { margin: 0; font-size: .78rem; }
.kyc-allowance-heading > strong { color: #17375b; font-size: 1.4rem; text-align: right; }
.kyc-allowance-heading > strong small { display: block; font-size: .68rem; font-weight: 600; }
.kyc-allowance-progress { overflow: hidden; height: .5rem; border-radius: 99px; background: #e6edf2; }
.kyc-allowance-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #0e76b7, #32a47d); }
.is-exhausted .kyc-allowance-progress i { background: #c96b2c; }
.kyc-allowance-breakdown { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; color: #607086; font-size: .78rem; }
.kyc-allowance-exhausted { padding: .75rem .85rem; border-radius: .75rem; color: #8b451d; background: #fff0e3; }
.kyc-allowance-exhausted p { margin: .2rem 0 0; font-size: .82rem; }
.kyc-request-pending { display: flex; gap: .5rem; align-items: center; margin: 0; color: #72501e; }
.kyc-allowance-request-form { display: grid; grid-template-columns: minmax(9rem, .35fr) minmax(14rem, 1fr) auto; gap: .75rem; align-items: end; }
.kyc-allowance-request-form label { display: block; margin-bottom: .25rem; font-size: .76rem; font-weight: 700; }
.kyc-allowance-request-form textarea { min-height: 3.4rem; resize: vertical; }
.stacked-actions { display: grid; gap: .55rem; min-width: 20rem; }
.stacked-actions .compact-form { display: grid; grid-template-columns: 7rem minmax(9rem, 1fr) auto; gap: .4rem; align-items: center; }

@media (max-width: 768px) {
  .wizard-topbar-actions { gap: 6px; }
  .kyc-allowance-compact { width: 9.5rem; min-height: 3.15rem; padding: .4rem .5rem .34rem; grid-template-columns: minmax(0, 1fr); }
  .kyc-allowance-compact-icon, .kyc-allowance-compact-used, .kyc-allowance-compact-copy > small { display: none; }
  .kyc-allowance-compact-copy > strong { margin-top: 0; font-size: .7rem; text-align: center; }
  .kyc-allowance-compact-copy b { display: block; margin-bottom: .12rem; font-size: 1rem; }
  .kyc-allowance-compact-membership { display: none; }
  .kyc-allowance-compact-progress { grid-column: 1; }
  .kyc-allowance-heading { grid-template-columns: auto minmax(0, 1fr); }
  .kyc-allowance-heading > strong { grid-column: 2; text-align: left; }
  .kyc-allowance-request-form, .stacked-actions .compact-form { grid-template-columns: 1fr; }
  .stacked-actions { min-width: 0; }
}

@media (max-width: 640px) {
  .wizard-company-name { max-width: 34vw; }
  .wizard-case-link { width: 42px; min-height: 42px; padding-inline: 0; justify-content: center; }
  .wizard-case-link span { display: none; }
  .kyc-allowance-compact { width: 6.6rem; }
  .kyc-allowance-compact-limit { font-size: 0; }
  .kyc-allowance-compact-limit::after { font-size: .68rem; content: "de " attr(data-limit); }
}

/* Inicio del portal: composición institucional basada en el panel operativo aprobado. */
.portal-sidebar-tools { display: grid; gap: .7rem; margin-top: .7rem; padding: .2rem 0 .35rem; }
.portal-topbar-search { display: flex; flex: 1 1 16rem; min-width: 0; max-width: 24rem; min-height: 2.75rem; gap: .5rem; padding: .4rem .65rem; align-items: center; color: var(--color-muted); border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface); }
.portal-topbar-search > .icon { width: 1rem; height: 1rem; flex: none; }
.portal-topbar-search input { width: 100%; min-width: 0; padding: 0; color: var(--color-ink); border: 0; outline: 0; background: transparent; font: inherit; font-size: .875rem; }
.portal-topbar-search input::placeholder { color: var(--color-muted); opacity: 1; }
.portal-topbar-search:focus-within { outline: 2px solid var(--color-brand-600); outline-offset: 2px; }
.portal-topbar-search kbd { flex: none; font: inherit; font-size: .7rem; }
.portal-sidebar-new-query { display: flex; min-height: 2.7rem; gap: .55rem; padding: .6rem .75rem; align-items: center; justify-content: center; color: #fff; border: 1px solid rgb(255 255 255 / 14%); border-radius: 9px; background: linear-gradient(135deg, #278bd0, #0865ad); box-shadow: 0 8px 18px rgb(0 29 61 / 26%); font-size: .92rem; font-weight: 600; text-decoration: none; }
.portal-sidebar-new-query:hover { color: #fff; filter: brightness(1.06); }
.portal-sidebar-new-query .icon { width: 1rem; height: 1rem; }

@media (min-width: 961px) {
  .app-layout-portal { --sidebar-width: 15rem; }
  .app-layout-portal .sidebar { padding: .85rem .7rem .65rem; }
  .app-layout-portal .brand { min-height: 3.8rem; padding: 0 .15rem; justify-content: flex-start; }
  .app-layout-portal .portal-company-fallback { width: 2.45rem; height: 2.45rem; font-size: .9rem; }
  .app-layout-portal .portal-brand-copy { display: grid; min-width: 0; }
  .app-layout-portal .portal-brand-copy strong { color: #fff; font-size: .86rem; }
  .app-layout-portal .portal-brand-copy small { overflow: hidden; color: rgb(255 255 255 / 58%); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
  .app-layout-portal .primary-nav { gap: .18rem; margin-top: .35rem; padding-bottom: .4rem; }
  .app-layout-portal .portal-primary-links { gap: .05rem; margin: 0; padding: 0 0 .15rem; border: 0; }
  .app-layout-portal .nav-section-title,
  .app-layout-portal .nav-group-summary { min-height: 1.65rem; margin: 0; padding: .35rem .55rem .2rem; color: rgb(255 255 255 / 64%); background: transparent; font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
  .app-layout-portal .nav-group-links { display: grid !important; gap: .02rem; padding: 0; }
  .app-layout-portal .nav-link { min-height: 2.55rem; gap: .55rem; padding: .5rem .55rem; border-radius: 7px; font-size: 1rem; }
  .app-layout-portal .nav-link .icon { width: .95rem; height: .95rem; }
  .app-layout-portal .nav-link.is-active { border: 1px solid rgb(255 255 255 / 18%); background: rgb(255 255 255 / 12%); box-shadow: none; }
  .app-layout-portal .sidebar-footer { margin-top: auto; }
  .app-layout-portal .platform-signature { display: none; }
  .app-layout-portal .user-card { display: flex; padding: .65rem .15rem 0; border-color: rgb(255 255 255 / 18%); }
  .app-layout-portal .user-card-copy strong { color: #fff; font-size: .92rem; font-weight: 500; }
  .app-layout-portal .user-card-copy small { color: rgb(255 255 255 / 72%); font-size: .78rem; }
  .app-layout-portal .user-card .icon-button { color: rgb(255 255 255 / 70%); }
  .portal-home-body .app-layout-portal .topbar { min-height: 4.25rem; padding: 0 1.2rem; justify-content: space-between; }
  .portal-home-body .app-layout-portal .topbar-context { display: grid; }
  .portal-home-body .app-layout-portal .topbar-context small { color: #91a0b1; font-size: .59rem; font-weight: 750; letter-spacing: .12em; }
  .portal-home-body .app-layout-portal .topbar-context small b { color: var(--color-brand-700); }
  .portal-home-body .app-layout-portal .topbar-context strong { color: #17324e; font-size: .88rem; }
  .portal-home-body .app-layout-portal .topbar-sign-out { display: none; }
  .portal-home-body .risk-home-page { height: calc(100dvh - 4.25rem); }
  .portal-home-body .portal-agent-shell { top: .72rem; right: 15.7rem; bottom: auto; }
  .portal-home-body .portal-agent-launcher { width: 2.75rem; height: 2.75rem; min-height: 2.75rem; padding: 0; border-radius: 9px; box-shadow: none; }
  .portal-home-body .portal-agent-launcher span { display: none; }
}

/* Menú cooperativo: jerarquía clara sin alterar el orden de navegación. */
.app-layout-portal .portal-primary-links { gap: .14rem; padding: .18rem 0 .68rem; border-bottom: 1px solid rgb(255 255 255 / 14%); }
.app-layout-portal .portal-primary-links .nav-link { min-height: 2.85rem; gap: .62rem; padding: .38rem .46rem; border: 1px solid transparent; }
.app-layout-portal .portal-primary-links .nav-link .icon { width: 1.8rem; height: 1.8rem; flex: none; padding: .4rem; border: 0; background: transparent; }
.app-layout-portal .nav-group { margin-top: .08rem; }
.app-layout-portal .nav-group-summary { min-height: 2.2rem; padding: .46rem .52rem; border: 1px solid transparent; border-radius: 7px; }
.app-layout-portal .nav-group-links { gap: .08rem; margin: .08rem .18rem .34rem .58rem; padding: .12rem 0 .08rem .5rem; border-left: 1px solid rgb(125 211 252 / 38%); }
.app-layout-portal .nav-group-links .nav-link { min-height: 2.35rem; gap: .52rem; padding: .4rem .42rem; font-size: .92rem; }
.app-layout-portal .nav-group-links .nav-link .icon { width: 1.5rem; height: 1.5rem; flex: none; padding: .32rem; background: transparent; }
.app-layout-portal .primary-nav .icon { color: #fff; opacity: 1; stroke-opacity: 1; }

.app-layout-portal .primary-nav .nav-link { border: 1px solid transparent; background: transparent; box-shadow: none; }
.app-layout-portal .primary-nav .nav-link:hover { background: rgb(255 255 255 / 8%); }
.app-layout-portal .primary-nav .nav-link.is-active { color: #fff; background: rgb(255 255 255 / 50%); border-color: transparent; box-shadow: inset 4px 0 0 #fff; font-weight: 750; }
.app-layout-portal .primary-nav .nav-section-title,
.app-layout-portal .primary-nav .nav-group-summary { margin-top: .35rem; padding: .5rem .65rem; color: #fff; background: rgb(255 255 255 / 30%); border: 0; border-radius: 4px; box-shadow: none; font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.app-layout-portal .primary-nav .nav-group-summary:hover { color: #fff; }
.app-layout-portal .primary-nav .nav-link:focus-visible,
.app-layout-portal .primary-nav .nav-group-summary:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
@supports ((backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px))) {
  .app-layout-portal .primary-nav .nav-link.is-active { -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
  .app-layout-portal .primary-nav .nav-section-title,
  .app-layout-portal .primary-nav .nav-group-summary { -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
}

@media (min-width: 1051px) and (min-height: 800px) {
  .portal-home-body .risk-home-page { height: calc(100dvh - 4.25rem); grid-template-rows: auto minmax(0, 1fr) auto; gap: .75rem; padding: .8rem 1.25rem 1rem; overflow: hidden; background: #f2f6fa; }
  .portal-home-body .risk-home-hero { grid-template-columns: minmax(0, 1.7fr) minmax(20rem, .55fr); min-height: 15.5rem; gap: 1.7rem; padding: 1.45rem 1.7rem; color: #fff; border: 0; border-radius: 17px; background: radial-gradient(circle at 55% 110%, rgb(39 139 208 / 42%), transparent 45%), linear-gradient(120deg, #0a3b67, #07558b 58%, #063b67); box-shadow: 0 14px 30px rgb(8 53 91 / 15%); }
  .portal-home-body .risk-home-hero .eyebrow { width: fit-content; margin-bottom: .75rem; padding: .3rem .65rem; color: #d8edff; border: 1px solid rgb(255 255 255 / 38%); border-radius: 999px; font-size: .56rem; }
  .portal-home-body .risk-home-hero h1 { max-width: none; color: #fff; font-size: clamp(2rem, 2.8vw, 2.65rem); line-height: 1.05; }
  .portal-home-body .risk-home-hero-copy > p:not(.eyebrow) { max-width: 47rem; margin-top: .8rem; color: rgb(255 255 255 / 74%); font-size: .78rem; line-height: 1.55; }
  .portal-home-body .risk-home-actions { margin-top: 1.05rem; }
  .portal-home-body .risk-home-actions .button-link { min-height: 2.75rem; padding: .6rem 1rem; color: #fff; border-color: rgb(255 255 255 / 36%); background: transparent; }
  .portal-home-body .risk-home-actions .risk-home-primary-action { border-color: #268bd0; background: linear-gradient(135deg, #278bd0, #0865ad); }
  .portal-home-body .risk-home-summary { padding: 1.25rem; align-content: center; border-radius: 13px; background: #fff; box-shadow: 0 12px 26px rgb(4 31 54 / 18%); }
  .portal-home-body .risk-home-summary > span { width: 2.75rem; height: 2.75rem; background: linear-gradient(135deg, #147cb8, #21c2d4); }
  .portal-home-body .risk-home-summary > strong { margin-top: .8rem; font-size: .98rem; }
  .portal-home-body .risk-home-summary > p { display: block; margin-top: .4rem; font-size: .7rem; line-height: 1.45; }
  .portal-home-body .risk-home-summary ul { gap: .4rem; margin-top: .8rem; padding-top: .75rem; }
  .portal-home-body .risk-home-summary li { font-size: .68rem; }
  .portal-home-body .risk-home-section { padding: .95rem 1.05rem .75rem; border-radius: 14px; }
  .portal-home-body .risk-home-section-heading { margin-bottom: .8rem; }
  .portal-home-body .risk-home-section-heading .eyebrow { font-size: .56rem; }
  .portal-home-body .risk-home-section-heading h2 { font-size: 1.05rem; }
  .portal-home-body .risk-home-section-heading > p { max-width: 34rem; font-size: .66rem; line-height: 1.35; }
  .portal-home-body .risk-home-phases { gap: .65rem; }
  .portal-home-body .risk-home-phase { grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); padding: .85rem; border-radius: 11px; overflow: hidden; }
  .portal-home-body .risk-home-phase-number { position: static; grid-column: 2; grid-row: 1; width: auto; height: auto; align-self: center; justify-self: start; color: #8997a8; border: 0; background: transparent; font-size: 1.15rem; }
  .portal-home-body .risk-home-phase-icon { grid-column: 1; grid-row: 1; width: 2.35rem; height: 2.35rem; margin: 0 .55rem .65rem 0; background: #edf5fb; }
  .portal-home-body .risk-home-phase-content { grid-column: 1 / -1; grid-row: 2; }
  .portal-home-body .risk-home-phase h3 { font-size: .79rem; }
  .portal-home-body .risk-home-phase p { font-size: .65rem; line-height: 1.52; }
  .portal-home-body .risk-home-member-only { position: absolute; top: 1rem; right: .8rem; margin: 0; padding: .22rem .45rem; color: #168252; border: 0; background: #e7f7ef; font-size: .5rem; letter-spacing: .08em; text-transform: uppercase; }
  .portal-home-body .risk-home-member-only .icon { display: none; }
  .portal-home-body .risk-home-phase-action { min-height: 2.25rem; margin-top: .75rem; color: #146da7 !important; border: 1px solid #a9c5d9 !important; background: #fff !important; box-shadow: none; }
  .portal-home-body .risk-home-phase:last-child { border-color: #93b9d0; background: linear-gradient(180deg, #fbfdff, #edf6fc); }
  .portal-home-body .risk-home-phase:last-child .risk-home-phase-icon { color: #fff; background: linear-gradient(135deg, #137aaa, #1bc3d2); }
  .portal-home-body .risk-home-phase:last-child .risk-home-phase-action { color: #fff !important; border-color: #0c659e !important; background: linear-gradient(135deg, #127db7, #075d99) !important; }
  .portal-home-body .risk-home-platform-signature { margin-top: .65rem; padding-top: .55rem; }
  .portal-home-body .risk-home-footer-grid { grid-template-columns: minmax(0, 1.45fr) minmax(27rem, .75fr); gap: .75rem; }
  .portal-home-body .risk-home-council,
  .portal-home-body .risk-home-final-cta { min-height: 5.35rem; padding: .75rem 1rem; border-radius: 12px; }
  .portal-home-body .risk-home-council > span,
  .portal-home-body .risk-home-final-cta > div > span { width: 2.45rem; height: 2.45rem; }
  .portal-home-body .risk-home-council h2,
  .portal-home-body .risk-home-final-cta h2 { font-size: .82rem; }
  .portal-home-body .risk-home-council div > p:last-child,
  .portal-home-body .risk-home-final-cta p { font-size: .63rem; }
  .portal-home-body .risk-home-final-cta { background: linear-gradient(120deg, #0a4776, #0671b8); }
}

/* En escritorios amplios las fases usan su contenido, no el alto sobrante. */
@media (min-width: 1600px) and (min-height: 800px) {
  .portal-home-body .risk-home-page {
    height: auto;
    min-height: calc(100dvh - 4.25rem);
    grid-template-rows: auto auto auto;
    align-content: start;
    overflow: visible;
  }

  .portal-home-body .risk-home-section {
    min-height: 0;
    grid-template-rows: auto auto auto;
    align-self: start;
    padding: 1.05rem 1.2rem .85rem;
    overflow: visible;
  }

  .portal-home-body .risk-home-section-heading { margin-bottom: .9rem; }
  .portal-home-body .risk-home-section-heading .eyebrow { font-size: .62rem; }
  .portal-home-body .risk-home-section-heading h2 { font-size: 1.3rem; }
  .portal-home-body .risk-home-section-heading > p {
    max-width: 40rem;
    font-size: .8rem;
    line-height: 1.45;
  }

  .portal-home-body .risk-home-phases {
    min-height: 0;
    gap: .8rem;
    align-items: stretch;
  }

  .portal-home-body .risk-home-phase {
    height: auto;
    min-height: 0;
    padding: 1rem;
    grid-template-rows: auto auto;
    align-content: start;
  }

  .portal-home-body .risk-home-phase-number { font-size: 1.4rem; }
  .portal-home-body .risk-home-phase-icon {
    width: 2.65rem;
    height: 2.65rem;
    margin: 0 .65rem .75rem 0;
  }
  .portal-home-body .risk-home-phase-content { min-height: 0; }
  .portal-home-body .risk-home-phase h3 { margin-bottom: .45rem; font-size: .98rem; }
  .portal-home-body .risk-home-phase p { font-size: .8rem; line-height: 1.5; }
  .portal-home-body .risk-home-phase-action {
    min-height: 2.5rem;
    margin-top: 1rem;
    padding: .55rem .7rem;
    font-size: .8rem;
  }
  .portal-home-body .risk-home-platform-signature { margin-top: .7rem; padding-top: .6rem; }
}


/* El resultado individual comparte la tarjeta del wizard sin el dock de fases. */
.individual-network-result-page { padding-bottom: 24px; }
.individual-network-result-page .wizard-network-heading > div { min-width: 0; }
.individual-network-result-page .wizard-network-heading h1 { overflow-wrap: anywhere; }
.individual-network-result-page .wizard-network-updated-at { overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .individual-network-result-page .wizard-network-heading-actions .button-link { width: 100%; justify-content: center; }
}

/* Mantener legibles ambos lados del documento en el formulario individual. */
.individual-kyc-allowance { max-width: 100%; }
.individual-kyc-allowance > div { min-width: 0; }
.individual-identity-form .individual-identity-documents > div { min-width: 0; }
@media (max-width: 640px) {
  .individual-identity-form .individual-identity-documents { grid-template-columns: minmax(0, 1fr); }
}

/* Expediente de persona: resumen compacto y navegación a cada sección. */
.dossier-header { align-items: start; margin-bottom: 18px; }
.dossier-header h1 { font-size: clamp(1.5rem, 3vw, 2rem); overflow-wrap: anywhere; }
.dossier-person-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; color: var(--color-muted); font-size: .85rem; }
.dossier-document-name { display: inline-flex; gap: 6px; align-items: center; color: var(--color-brand-700); }
.dossier-document-name .icon { width: 16px; height: 16px; }
.dossier-section-nav { display: flex; gap: 8px; flex-wrap: wrap; border-bottom: 1px solid var(--color-border); margin-bottom: 24px; padding-bottom: 12px; }
.dossier-section-nav a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border-radius: 8px; color: var(--color-brand-700); font-weight: 700; font-size: .88rem; text-decoration: none; }
.dossier-section-nav a:hover { background: var(--color-brand-50); }
.dossier-section-nav a:focus-visible, .dossier-new-request summary:focus-visible { outline: 2px solid var(--color-brand-600); outline-offset: 3px; }
.dossier-section-nav span { font-size: .75rem; color: var(--color-muted); }
.client-dossier-page h2[id] { scroll-margin-top: 96px; }
.dossier-section-hint { color: var(--color-muted); font-size: .8rem; }
.client-dossier-services { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.dossier-service { display: flex; flex-direction: column; align-items: stretch; min-width: 0; gap: 16px; padding: 16px 12px; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); }
.dossier-service-name { display: flex; flex-direction: column; align-items: start; gap: 12px; min-width: 0; }
.dossier-service-icon { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 8px; background: var(--color-brand-50); color: var(--color-brand-700); }
.dossier-service-icon .icon { width: 20px; height: 20px; }
.dossier-service h3 { font-size: .92rem; line-height: 1.4; min-height: 2.8em; margin: 0; overflow-wrap: anywhere; }
.dossier-service p { margin: 4px 0 0; color: var(--color-muted); font-size: .8rem; }
.dossier-service-state { display: grid; justify-items: start; gap: 8px; margin-top: auto; }
.dossier-service-state .status-badge { white-space: normal; }
.dossier-service-state time { color: var(--color-muted); font-size: .78rem; }
.dossier-service .button-link { width: 100%; min-height: 40px; justify-content: center; padding-inline: 8px; gap: 4px; font-size: .78rem; }
.dossier-service .button-link .icon { width: 14px; height: 14px; flex-shrink: 0; }
.dossier-service .button-link:disabled { opacity: .55; cursor: not-allowed; }
.dossier-service .dossier-service-empty { margin-top: auto; min-height: 50px; }
.client-dossier-filter { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-block: 16px; }
.client-dossier-filter > div { flex: 1 1 220px; max-width: 420px; }
.client-dossier-page .surface + .surface { margin-top: 24px; }
.dossier-new-request { margin: 16px 0; border: 1px solid var(--color-border); border-radius: 8px; }
.dossier-new-request summary { padding: 12px 16px; min-height: 44px; cursor: pointer; color: var(--color-brand-700); font-weight: 700; font-size: .9rem; }
.dossier-new-request .create-file-form { padding: 0 16px 16px; margin-bottom: 0; }
.dossier-credit .table-action-cell .button-link { white-space: nowrap; }
@media (max-width: 1100px) {
  .client-dossier-services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .client-dossier-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dossier-header { gap: 12px; }
  .client-dossier-page h2[id] { scroll-margin-top: 132px; }
  .dossier-section-nav { gap: 2px; }
  .dossier-section-nav a { padding-inline: 10px; }
  .dossier-services .surface-header { align-items: start; flex-direction: column; gap: 4px; }
  .client-dossier-page { padding-bottom: 90px; }
}

@media (max-width: 480px) {
  .client-dossier-services { grid-template-columns: minmax(0, 1fr); }
  .dossier-service { padding: 16px; }
  .dossier-service-name { flex-direction: row; align-items: center; }
  .dossier-service h3 { min-height: 0; }
}

/* Resultado de Score financiero individual (UI explicativa) */
.individual-query-page .score-disclaimer { display: flex; gap: .65rem; align-items: flex-start; margin: 0 0 1.25rem; padding: .85rem 1rem; border: 1px solid var(--color-brand-200); border-radius: .9rem; background: linear-gradient(135deg, var(--color-brand-50), var(--color-surface) 75%); color: var(--color-ink); font-size: .86rem; line-height: 1.5; }
.individual-query-page .score-disclaimer .icon { flex: none; width: 1.15rem; height: 1.15rem; margin-top: .1rem; color: var(--color-brand-700); }

.score-hero { display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2.25rem); align-items: center; margin-bottom: 1.25rem; padding: clamp(1.25rem, 3vw, 1.9rem); border: 1px solid var(--color-border); border-radius: 1.1rem; background: var(--color-surface); box-shadow: var(--shadow-sm, 0 1px 2px rgb(36 40 54 / 3%)); }
.score-hero-dial { display: grid; justify-items: center; gap: .4rem; }
.score-hero-dial .risk-score-ring { width: 10.5rem; height: 10.5rem; }
.score-hero-dial-caption { color: var(--color-muted); font-size: .78rem; font-weight: 700; }
.score-hero-reading { display: grid; gap: .7rem; min-width: 0; }
.score-hero-summary { margin: 0; color: var(--color-ink); font-size: 1.02rem; line-height: 1.6; }

.score-grade-pill { display: inline-flex; align-items: center; width: fit-content; padding: .4rem .85rem; border-radius: 999px; font-size: .82rem; font-weight: 800; letter-spacing: .01em; }
.score-grade-pill-success { color: #0f6b3d; background: #e8f8ef; }
.score-grade-pill-info { color: #0f6076; background: #e5f4f9; }
.score-grade-pill-warning { color: #8a5300; background: #fff5df; }
.score-grade-pill-danger { color: #9a2531; background: #fdecee; }
.score-grade-pill-neutral { color: var(--color-muted); background: var(--color-brand-50); }

.score-scale { display: flex; gap: .4rem; }
.score-scale-step { display: grid; flex: 1; min-width: 0; place-items: center; min-height: 2.3rem; border-radius: .6rem; border: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-muted); font-weight: 800; font-size: .9rem; opacity: .55; }
.score-scale-step.is-current { opacity: 1; transform: translateY(-2px); box-shadow: 0 6px 16px rgb(15 55 91 / 12%); }
.score-scale-step-success.is-current { color: #fff; background: #16844c; border-color: #16844c; }
.score-scale-step-info.is-current { color: #fff; background: #1479a0; border-color: #1479a0; }
.score-scale-step-warning.is-current { color: #fff; background: #d28a00; border-color: #d28a00; }
.score-scale-step-danger.is-current { color: #fff; background: #c5303f; border-color: #c5303f; }
.score-scale-legend { margin: 0; color: var(--color-muted); font-size: .76rem; }

.score-breakdown .surface-header { align-items: flex-start; }
.score-points-chip { flex: none; padding: .5rem .8rem; border-radius: .8rem; background: var(--color-brand-50); color: var(--color-brand-800); font-size: .78rem; font-weight: 700; }
.score-points-chip strong { font-size: 1rem; }
.score-factor-list { display: grid; gap: .85rem; margin: 0; padding: 0; list-style: none; }
.score-factor { display: grid; gap: .55rem; padding: .95rem 1.05rem; border: 1px solid var(--color-border); border-radius: .9rem; background: var(--color-surface); }
.score-factor-head { display: flex; gap: 1rem; align-items: flex-start; justify-content: space-between; }
.score-factor-title { display: grid; gap: .15rem; min-width: 0; }
.score-factor-title strong { color: var(--color-ink); font-size: .96rem; }
.score-factor-title small { color: var(--color-muted); font-size: .8rem; line-height: 1.45; }
.score-factor-score { flex: none; }
.score-factor-points { color: var(--color-brand-900); font-size: .92rem; font-weight: 800; white-space: nowrap; }
.score-factor-bar { overflow: hidden; height: .5rem; border-radius: 999px; background: var(--color-border); }
.score-factor-bar-fill { display: block; height: 100%; border-radius: inherit; transition: width 500ms cubic-bezier(.22, 1, .36, 1); }
.score-factor-bar-fill-success { background: linear-gradient(90deg, #149f5c, #28b873); }
.score-factor-bar-fill-info { background: linear-gradient(90deg, #1479a0, #3bb0c9); }
.score-factor-bar-fill-warning { background: linear-gradient(90deg, #d28a00, #e3ad38); }
.score-factor-bar-fill-danger { background: linear-gradient(90deg, #c5303f, #e2616d); }
.score-factor-bar-fill-neutral { background: var(--color-brand-200); }
.score-factor-note { margin: 0; color: var(--color-muted); font-size: .8rem; }
.status-pill-success { color: #0f6b3d; background: #e8f8ef; }
.status-pill-warning { color: #8a5300; background: #fff5df; }
.status-pill-danger { color: #9a2531; background: #fdecee; }
.status-pill-neutral { color: var(--color-muted); background: var(--color-brand-50); }
.score-factor .status-pill { display: inline-flex; align-items: center; padding: .3rem .7rem; border-radius: 999px; font-size: .74rem; font-weight: 750; white-space: nowrap; }

.score-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-block: 1rem; }
.score-detail-grid .surface { margin: 0; }
.score-coverage .surface-header, .score-available .surface-header { align-items: flex-start; }
.score-coverage-value { flex: none; color: var(--color-brand-800); font-size: 1.4rem; font-weight: 850; }
.score-coverage-bar { overflow: hidden; height: .7rem; margin-bottom: .75rem; border-radius: 999px; background: var(--color-border); }
.score-coverage-bar-fill { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1769e0, #12a59a); transition: width 600ms cubic-bezier(.22, 1, .36, 1); }
.score-available-amount { margin: 0 0 .5rem; color: var(--color-brand-900); font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 800; line-height: 1.1; }
.score-available-low .score-available-amount { color: #c5303f; }
.score-available-flag { display: flex; gap: .5rem; align-items: flex-start; margin: 0; padding: .65rem .8rem; border: 1px solid #f1b5bc; border-radius: .7rem; background: #fff4f5; color: #8f2432; font-size: .82rem; line-height: 1.45; }
.score-available-flag .icon { flex: none; width: 1.05rem; height: 1.05rem; margin-top: .1rem; }

.portal-theme-dark .score-hero,
.portal-theme-dark .score-factor,
.portal-theme-dark .score-detail-grid .surface { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .score-hero-summary,
.portal-theme-dark .score-factor-title strong,
.portal-theme-dark .score-available-amount,
.portal-theme-dark .score-coverage-value { color: var(--color-ink); }
.portal-theme-dark .score-factor-bar,
.portal-theme-dark .score-coverage-bar,
.portal-theme-dark .score-scale-step { background: var(--color-dark-raised, #1f2a3c); }

@media (max-width: 760px) {
  .score-hero { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .score-hero-reading { justify-items: center; }
  .score-grade-pill { margin-inline: auto; }
  .score-detail-grid { grid-template-columns: 1fr; }
  .score-breakdown .surface-header, .score-coverage .surface-header, .score-available .surface-header { flex-direction: column; align-items: flex-start; }
}

/* Formulario de consulta de Score financiero individual (UX guiada) */
.individual-query-page .score-form-note { display: flex; gap: .65rem; align-items: flex-start; margin: 0 0 1.25rem; padding: .85rem 1rem; border: 1px solid var(--color-brand-200); border-radius: .9rem; background: linear-gradient(135deg, var(--color-brand-50), var(--color-surface) 75%); color: var(--color-ink); font-size: .86rem; line-height: 1.5; }
.individual-query-page .score-form-note .icon { flex: none; width: 1.15rem; height: 1.15rem; margin-top: .1rem; color: var(--color-brand-700); }

.score-form .risk-card + .risk-card { margin-top: 1rem; }
.score-form .section-eyebrow { display: inline-block; margin-bottom: .35rem; color: var(--color-brand-700); font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.score-form .risk-card-heading h2 { font-size: 1.1rem; }
.score-form .form-field-wide { grid-column: 1 / -1; }
.page-shell.individual-score-page { padding-bottom: 6rem; }
.score-form .help-text { display: block; margin-top: .35rem; color: var(--color-muted); font-size: .78rem; line-height: 1.45; }

.input-with-unit { display: flex; align-items: stretch; overflow: hidden; border: 1px solid var(--color-border); border-radius: .6rem; background: var(--color-surface); }
.input-with-unit:focus-within { border-color: var(--color-brand-500, #3e85c7); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-300, #91bbe0) 45%, transparent); }
.input-with-unit input { flex: 1; min-width: 0; margin: 0; border: 0; background: transparent; box-shadow: none; }
.input-with-unit input:focus { outline: none; box-shadow: none; }
.input-unit-prefix, .input-unit-suffix { display: grid; align-items: center; padding: 0 .75rem; color: var(--color-muted); background: var(--color-brand-50); font-size: .85rem; font-weight: 750; white-space: nowrap; }
.input-unit-prefix { border-right: 1px solid var(--color-border); }
.input-with-unit-suffix .input-unit-suffix { border-left: 1px solid var(--color-border); }

.portal-theme-dark .input-with-unit { border-color: var(--color-border); background: var(--color-surface); }
.portal-theme-dark .input-unit-prefix, .portal-theme-dark .input-unit-suffix { color: var(--color-brand-200); background: var(--color-dark-raised, #1f2a3c); }

/* Fuentes complementarias del Score con resumen de la última consulta */
.individual-source-grid .score-source-filled { gap: .3rem; border-left: 3px solid var(--color-border); }
.score-source-filled .score-source-head { color: var(--color-muted); font-weight: 750; text-transform: none; }
.score-source-filled > strong { color: var(--color-ink); font-size: .98rem; }
.score-source-success { border-left-color: #16844c; }
.score-source-warning { border-left-color: #d28a00; }
.score-source-danger { border-left-color: #c5303f; }
.score-source-link { margin-top: .35rem; color: var(--color-brand-700); font-size: .78rem; font-weight: 700; }
.score-source-link:hover { text-decoration: underline; }
.portal-theme-dark .score-source-filled > strong { color: var(--color-ink); }

/* Individual identity preserves the guided capture layout without phase navigation. */
.individual-identity-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.individual-identity-toolbar .individual-network-wizard-history { margin-left: auto; }
.individual-identity-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem; margin-left: auto; max-width: 100%; }
.individual-identity-header-actions .button-link { min-height: 2.6rem; padding: .65rem 1rem; border: 1px solid #166534; background: #166534; color: #fff; font-size: .85rem; text-align: center; }
.individual-identity-header-actions .button-link:hover { background: #14532d; border-color: #14532d; }
.individual-identity-header-actions .identity-history-link { background: #1d4ed8; border-color: #1d4ed8; }
.individual-identity-header-actions .identity-history-link:hover { background: #1e40af; border-color: #1e40af; }
.individual-identity-action-area { display: grid; gap: .65rem; margin-left: auto; min-width: 0; max-width: 100%; }
.individual-identity-action-area .individual-identity-header-actions { margin-left: 0; }
.individual-identity-action-area .individual-identity-status-notice { width: auto; min-width: 0; margin: 0; gap: .65rem; padding: .7rem .85rem; border-radius: 8px; font-size: .875rem; }
.individual-identity-status-notice > div { min-width: 0; overflow-wrap: anywhere; }
.individual-identity-status-notice small { font-size: .8rem; }
@media (max-width: 600px) {
  .individual-identity-action-area { width: 100%; }
  .individual-identity-action-area .individual-identity-header-actions { justify-content: flex-start; }
  .individual-identity-action-area .individual-identity-header-actions .button-link { flex: 1 1 auto; }
}
.individual-identity-start-page .individual-identity-documents { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.individual-identity-photo-preview { grid-template-columns: minmax(0, 1fr); }
.individual-identity-documents [hidden] { display: none !important; }
@media (max-width: 600px) {
  .individual-identity-start-page .individual-identity-documents { grid-template-columns: minmax(0, 1fr); padding: 14px; }
  .individual-identity-documents .wizard-phase-two-file-control { padding: 12px; gap: .5rem; }
  .individual-identity-documents .wizard-phase-two-file-control input[type="file"] { font-size: .75rem; }
}

.individual-identity-toolbar .kyc-allowance-compact { width: min(100%, 25rem); grid-template-columns: 2rem minmax(0, 1fr) auto; }
.individual-identity-toolbar .kyc-allowance-compact-copy > small,
.individual-identity-toolbar .kyc-allowance-compact-copy > strong { display: block; white-space: normal; overflow: visible; text-align: left; }
.individual-identity-toolbar .kyc-allowance-compact-copy > small { font-size: .75rem; line-height: 1.35; }
.individual-identity-toolbar .kyc-allowance-compact-copy b { display: inline; }
.individual-identity-toolbar .kyc-allowance-compact-limit { font-size: .82rem; }
.individual-identity-toolbar .kyc-allowance-compact-limit::after { content: none; }
.individual-identity-toolbar .kyc-allowance-compact-icon { display: grid; }
.individual-identity-toolbar .kyc-allowance-compact-used { display: block; }
.individual-identity-toolbar .kyc-allowance-compact-progress { grid-column: 1 / -1; }

/* La consulta individual presenta etiqueta y resultado, sin columna de icono. */
.individual-identity-result-page .wizard-metamap-document-checks { padding: .5rem 0; border-left: 0; }
.individual-identity-result-page .wizard-metamap-document-check { grid-template-columns: minmax(0, 1fr) auto; gap: .5rem 1.5rem; padding: .85rem 1rem; align-items: baseline; }
.individual-identity-result-page .wizard-metamap-document-check > strong { line-height: 1.45; }
.individual-identity-result-page .wizard-metamap-document-check > span { text-align: right; line-height: 1.45; }
@media (max-width: 480px) {
  .individual-identity-result-page .wizard-metamap-document-check { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .individual-identity-result-page .wizard-metamap-document-check > span { text-align: left; }
}
.individual-identity-result-page { width: calc(100% - 32px); max-width: none; min-width: 0; }
.individual-identity-result-page .wizard-phase-two-card { padding-inline: clamp(16px, 3vw, 48px); }

.individual-identity-start-page { width: calc(100% - 32px); max-width: none; min-width: 0; }
.individual-identity-start-page > .wizard-start-card { min-width: 0; padding: clamp(16px, 3vw, 36px); background: #fff; border: 1px solid #e2e5ea; border-radius: 16px; box-shadow: 0 4px 16px rgb(15 31 61 / 5%); }
.individual-identity-start-page .individual-identity-form { grid-template-columns: minmax(0, .8fr) repeat(2, minmax(0, 1fr)); gap: 24px; }
.individual-identity-start-page .individual-identity-form > div { min-width: 0; }
@media (max-width: 900px) {
  .individual-identity-start-page .individual-identity-form { grid-template-columns: minmax(0, 1fr); }
}

.individual-identity-evidence { margin-block: 1.5rem; }
.individual-identity-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.individual-identity-evidence-photo { min-width: 0; margin: 0; border: 1px solid var(--border, #dce3ed); border-radius: 10px; overflow: hidden; }
.individual-identity-evidence-photo figcaption { padding: .8rem 1rem; background: #f7f9fb; }
.individual-identity-evidence-photo img { display: block; width: 100%; height: auto; max-height: 360px; object-fit: contain; }
.individual-identity-photo-missing { display: grid; min-height: 150px; padding: 1rem; align-content: center; color: #69758a; }
.individual-identity-evidence [hidden] { display: none !important; }
.individual-identity-comparison-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.individual-identity-comparison-form > p, .individual-identity-comparison-form > input[type="submit"] { grid-column: 1 / -1; }
.individual-identity-comparison-form > div { min-width: 0; }
.individual-identity-comparison-form label { display: block; margin-bottom: .5rem; }
.individual-identity-comparison-form input[type="file"] { max-width: 100%; }
@media (max-width: 600px) {
  .individual-identity-comparison, .individual-identity-comparison-form { grid-template-columns: minmax(0, 1fr); }
}

/* Identity results: separate evidence from the summary and keep source pairs aligned. */
.individual-identity-result-page .individual-identity-tabs .wizard-phase-two-primary-tablist { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.individual-identity-result-page .individual-identity-tabs [role="tab"] { min-height: 48px; white-space: normal; }
.individual-identity-result-page .individual-identity-tabs [role="tab"]:focus-visible,
.individual-identity-result-page .individual-identity-tabs [role="tabpanel"]:focus-visible { outline: 2px solid var(--color-brand-600, #2563eb); outline-offset: 3px; }
.individual-identity-result-page .individual-identity-evidence { margin-block: 0; }
.individual-identity-result-page .individual-identity-evidence-photo figcaption { display: grid; gap: .35rem; }
.individual-identity-result-page .individual-identity-evidence-photo figcaption small { color: var(--color-muted, #64748b); }
.individual-identity-result-page .individual-identity-evidence-photo img { aspect-ratio: 1.6 / 1; max-height: 260px; background: var(--color-surface, #fff); }
.individual-identity-result-page .individual-identity-tabs [hidden] { display: none !important; }
@media (max-width: 700px) {
  .individual-identity-result-page .individual-identity-tabs .wizard-phase-two-primary-tablist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.individual-identity-result-page .individual-identity-image-load { position: relative; display: grid; min-height: 180px; background: var(--color-surface, #f7f9fb); }
.individual-identity-result-page .individual-identity-image-load > img,
.individual-identity-result-page .individual-identity-image-status { grid-area: 1 / 1; }
.individual-identity-result-page .individual-identity-image-status { align-self: center; margin: 0; padding: 1.25rem; text-align: center; color: var(--color-muted, #64748b); }
.individual-identity-result-page .individual-identity-image-load:not([data-image-state="ready"]) > img { opacity: 0; }
.individual-identity-image-load[data-image-state="loading"] .individual-identity-image-status::before {
  content: ""; display: block; width: 28px; height: 28px; margin: 0 auto .75rem;
  border: 3px solid var(--color-border, #dce3ed); border-top-color: var(--color-brand-600, #0875bd);
  border-radius: 50%; animation: identity-image-spin 900ms linear infinite;
}
.individual-identity-image-retry { position: absolute; bottom: .5rem; left: 50%; transform: translateX(-50%); white-space: nowrap; }
.individual-identity-image-retry[hidden] { display: none; }
.individual-identity-original-link { display: inline-flex; align-items: center; min-height: 44px; margin-inline: .8rem; font-size: .85rem; }
@keyframes identity-image-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .individual-identity-image-load[data-image-state="loading"] .individual-identity-image-status::before { animation: none; }
}

.individual-identity-result-page .individual-identity-enlarge { margin: .8rem; min-height: 44px; }
.individual-identity-result-page .individual-identity-comparison-dialog { width: min(960px, calc(100vw - 32px)); max-width: calc(100vw - 32px); box-sizing: border-box; max-height: calc(100dvh - 32px); padding: 1.25rem; border: 1px solid var(--color-border, #dbe2ea); border-radius: 14px; background: var(--color-surface, #fff); color: var(--color-ink, #172033); overflow: auto; }
.individual-identity-result-page .individual-identity-comparison-dialog::backdrop { background: rgb(15 23 42 / 65%); }
.individual-identity-result-page .individual-identity-comparison-dialog-header { position: sticky; top: -1.25rem; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .75rem; background: var(--color-surface, #fff); }
.individual-identity-result-page .individual-identity-comparison-dialog-header h2 { margin: 0; }
.individual-identity-result-page .individual-identity-comparison-dialog-photos { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.individual-identity-result-page .individual-identity-comparison-dialog-photos:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
.individual-identity-result-page .individual-identity-comparison-dialog-photos img { display: block; width: 100%; max-width: 100%; height: auto; max-height: 65dvh; object-fit: contain; }
.individual-identity-result-page .individual-identity-comparison-dialog-photos figcaption { overflow-wrap: anywhere; }
.individual-identity-result-page .individual-identity-comparison-dialog-header button { flex-shrink: 0; }
.individual-identity-result-page .individual-identity-comparison-dialog .individual-identity-enlarge { display: none; }
@media (max-width: 700px) {
  .individual-identity-result-page .individual-identity-comparison-dialog-photos { grid-template-columns: minmax(0, 1fr); }
  .individual-identity-result-page .individual-identity-comparison-dialog { padding: 1rem; }
  .individual-identity-result-page .individual-identity-comparison-dialog-header { top: -1rem; }
}

.identity-check-status { display: inline-flex; align-items: center; gap: .45rem; color: var(--color-muted); }
.identity-check-status > .icon { flex: 0 0 auto; width: 1.2rem; height: 1.2rem; }
.identity-check-status.is-success { color: var(--color-success); }
.identity-check-status.is-danger { color: var(--color-danger); }

/* Resumen individual: fechas, dos columnas de lectura y trazabilidad. */
.identity-summary-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin: 0 0 1.5rem; padding: 1rem 1.25rem; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); }
.identity-summary-dates > div { min-width: 0; }
.identity-summary-dates dt { margin-bottom: .4rem; color: var(--color-muted); font-size: .85rem; }
.identity-summary-dates dd { margin: 0; color: var(--color-ink); font-size: 1rem; font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; }
.identity-summary-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-items: start; }
.identity-summary-section { min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 12px; }
.identity-summary-section > header { display: flex; align-items: center; gap: .65rem; padding: 1.1rem 1.25rem; background: var(--color-surface); border-bottom: 1px solid var(--color-border); }
.identity-summary-section > header .icon { width: 1.25rem; height: 1.25rem; flex: none; color: var(--color-muted); }
.identity-summary-section h2, .identity-summary-trace h2 { margin: 0; color: var(--color-ink); font-size: 1rem; line-height: 1.5; }
.identity-summary-fields { margin: 0; padding: 0 1.25rem; }
.identity-summary-fields > div { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: .5rem 1.25rem; align-items: start; padding: 1rem 0; border-bottom: 1px solid var(--color-border); }
.identity-summary-fields > div:last-child { border-bottom: 0; }
.identity-summary-fields dt { color: var(--color-muted); font-size: .9rem; line-height: 1.55; }
.identity-summary-fields dd { margin: 0; min-width: 0; color: var(--color-ink); font-size: .95rem; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.identity-summary-fields .identity-check-status { align-items: flex-start; text-align: left; }
.identity-summary-fields .identity-check-status > .icon { margin-top: .12rem; }
.identity-summary-trace { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
.identity-summary-trace h2 { margin-bottom: .75rem; }
.identity-summary-trace .identity-summary-dates { padding: 0; border: 0; background: none; }
@media (max-width: 900px) {
  .identity-summary-columns { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .identity-summary-dates { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .identity-summary-fields > div { grid-template-columns: minmax(0, 1fr); gap: .3rem; }
}

/* Cabecera de identidad del Score: nombre principal y acción superior. */
.score-form .score-person-topline { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.score-form .score-person-topline .section-eyebrow { margin: .55rem 0 0; }
.score-form .score-person-change { flex-shrink: 0; min-height: 44px; }
.score-form .score-person-name { margin: .65rem 0 .85rem; max-width: 100%; color: var(--color-ink); font-size: clamp(1.5rem, 2.5vw, 2.15rem); font-weight: 750; line-height: 1.25; overflow-wrap: anywhere; }
.score-form .score-person-dpi { display: flex; flex-wrap: wrap; align-items: baseline; gap: .55rem; margin: 0; color: var(--color-muted); font-size: .95rem; }
.score-form .score-person-dpi > span { font-size: .78rem; font-weight: 700; letter-spacing: .04em; }
.score-form .score-person-dpi strong { color: var(--color-ink); font-weight: 600; }
.score-form .score-person-description { margin: .65rem 0 0; color: var(--color-muted); font-size: .9rem; line-height: 1.5; }
@media (max-width: 480px) {
  .score-form .score-person-topline { gap: .75rem; }
  .score-form .score-person-topline .section-eyebrow { max-width: 50%; line-height: 1.5; }
  .score-form .score-person-change { padding-inline: .8rem; }
}

/* Búsqueda junto al menú: conserva espacio para las acciones del portal. */
.app-layout-portal .topbar > .menu-button { flex: none; }
.app-layout-portal .topbar .topbar-context { display: none; }
@media (max-width: 1200px) {
  .app-layout-portal .topbar-actions { gap: .35rem; }
  .app-layout-portal .topbar-profile-link { min-width: 2.5rem; width: 2.5rem; padding: 0; justify-content: center; }
  .app-layout-portal .topbar-user-copy, .app-layout-portal .topbar-divider { display: none; }
}
@media (max-width: 600px) {
  .app-layout-portal .topbar { flex-wrap: wrap; gap: .5rem; padding: .5rem .75rem; }
  .portal-topbar-search { max-width: none; flex-basis: calc(100% - 3.5rem); }
  .app-layout-portal .topbar-actions { justify-content: flex-end; width: 100%; }
}

@media (min-width: 961px) {
  .app-layout-portal.is-sidebar-collapsed .portal-sidebar-tools { display: grid; }
  .app-layout-portal.is-sidebar-collapsed .portal-sidebar-new-query { padding: .6rem; }
  .app-layout-portal.is-sidebar-collapsed .portal-sidebar-new-query span { display: none; }
}

/* Diferencias declaradas: resumen visible y fuentes comparables bajo demanda. */
.consistency-alert-card { border: 1px solid var(--color-border); }
.consistency-alert-card h2 { display: flex; gap: .6rem; align-items: center; }
.consistency-alert-card h2 > .icon { flex: none; color: var(--color-warning, #b7791f); }
.consistency-next-step { display: flex; align-items: flex-start; gap: .75rem; margin-block: 1rem 1.5rem; padding: 1rem; background: var(--color-brand-50); border-radius: 8px; color: var(--color-brand-800, #17436b); }
.consistency-next-step > .icon { flex: none; width: 1.25rem; height: 1.25rem; margin-top: .1rem; }
.consistency-next-step p { margin: .35rem 0 0; max-width: 72ch; line-height: 1.6; }
.consistency-alert-item { min-width: 0; padding-block: 1.4rem; border-top: 1px solid var(--color-border); }
.consistency-item-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .5rem 1rem; margin-bottom: .8rem; }
.consistency-alert-item h3 { margin: 0; font-size: 1.05rem; }
.consistency-alert-range { margin: 0; color: var(--color-muted); font-size: .88rem; overflow-wrap: anywhere; }
.consistency-alert-range strong { color: var(--color-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.consistency-alert-card .table-scroll { max-width: 100%; }
.consistency-alert-card td { vertical-align: top; }
.consistency-alert-card td small { display: block; margin-top: .35rem; color: var(--color-muted); line-height: 1.5; }
.consistency-alert-card .consistency-value > strong { font-size: 1rem; font-variant-numeric: tabular-nums; color: var(--color-ink); }
.consistency-alert-card td a { display: inline-flex; align-items: center; min-height: 2.75rem; text-underline-offset: .2em; }
.consistency-context { padding-top: 1rem; border-top: 1px solid var(--color-border); color: var(--color-muted); font-size: .88rem; line-height: 1.6; }
.consistency-context p { max-width: 76ch; margin: 0 0 .65rem; }
@media (max-width: 600px) {
  .consistency-alert-card { padding: 1rem; }
  .consistency-alert-card h2 { align-items: flex-start; }
}

#income-consistency-title { scroll-margin-top: 9rem; }

/* Una tarjeta y tabla por dato distinto dentro del expediente del cliente. */
.client-dossier-page .consistency-alert-card { padding: 0; border: 0; background: transparent; box-shadow: none; }
.client-dossier-page .consistency-alert-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.client-dossier-page .consistency-alert-item { min-width: 0; padding: 0; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); overflow: hidden; }
.client-dossier-page .consistency-item-heading { display: grid; gap: .5rem; margin: 0; padding: 1rem; border-bottom: 1px solid var(--color-border); }
.client-dossier-page .consistency-alert-item h3 { line-height: 1.4; }
.client-dossier-page .consistency-alert-item .table-scroll { width: 100%; margin: 0; padding: 0; }
.client-dossier-page .consistency-alert-item table { table-layout: fixed; }
.client-dossier-page .consistency-alert-item th,
.client-dossier-page .consistency-alert-item td { padding: .85rem .7rem; overflow-wrap: anywhere; }
.client-dossier-page .consistency-alert-item th { white-space: normal; line-height: 1.45; letter-spacing: .025em; }
.client-dossier-page .consistency-alert-item th:nth-child(1) { width: 38%; }
.client-dossier-page .consistency-alert-item th:nth-child(2) { width: 28%; }
.client-dossier-page .consistency-alert-item th:nth-child(3) { width: 34%; }
.client-dossier-page .consistency-alert-item tbody tr:last-child td { border-bottom: 0; }
.client-dossier-page .consistency-context { margin-top: 1.25rem; }
@media (max-width: 1100px) {
  .client-dossier-page .consistency-alert-list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .client-dossier-page .consistency-alert-item .table-scroll { padding: .6rem; }
  .client-dossier-page .consistency-alert-item td { padding: .55rem 0; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: .3rem .7rem; align-items: start; }
  .client-dossier-page .consistency-alert-item td[data-label]::before { grid-column: 1; grid-row: 1 / span 2; }
  .client-dossier-page .consistency-alert-item td > * { grid-column: 2; }
  .client-dossier-page .consistency-alert-item td small { margin-top: 0; }
  .client-dossier-page .consistency-alert-item tbody tr:last-child { margin-bottom: 0; }
}

/* Navegación del expediente: panel activo y alertas junto a los servicios. */
.dossier-tabs { flex-wrap: wrap; gap: .45rem; padding-bottom: 1rem; }
.dossier-tabs a { flex: none; min-height: 48px; gap: .5rem; padding: .6rem .85rem; color: var(--color-ink); font-weight: 600; }
.dossier-tabs .dossier-tab-label { color: inherit; font-size: .9rem; line-height: 1.35; }
.dossier-tabs a[aria-current="page"] { background: var(--color-brand-700); color: #fff; }
.dossier-tabs a:hover:not([aria-current="page"]) { background: var(--color-brand-50); color: var(--color-brand-700); }
.dossier-tabs .icon { flex: none; width: 1.1rem; height: 1.1rem; }
.dossier-tabs .dossier-tab-count { min-width: 1.6rem; padding: .15rem .35rem; border-radius: 5px; background: var(--color-surface); color: var(--color-ink); text-align: center; font-size: .75rem; font-variant-numeric: tabular-nums; }
.dossier-tabs .dossier-alert-tab .dossier-tab-count { background: #fff2d6; color: #754600; }
.dossier-tabs a[aria-current="page"] .dossier-tab-count { background: #fff; color: var(--color-brand-700); }
.client-dossier-services.dossier-service-selected { grid-template-columns: minmax(0, 1fr); }
.dossier-service-selected .dossier-service { flex-direction: row; align-items: center; flex-wrap: wrap; }
.dossier-service-selected .dossier-service-name { flex-direction: row; align-items: center; flex: 1; }
.dossier-service-selected .dossier-service-state { margin: 0; }
.dossier-service-selected .button-link { width: auto; }
.dossier-service-selected h3 { min-height: 0; }
@media (max-width: 600px) {
  .dossier-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
  .dossier-tabs a { min-width: 0; padding: .6rem .45rem; }
  .dossier-tabs .dossier-tab-label { flex: 1; min-width: 0; overflow-wrap: anywhere; }
  .dossier-service-selected .dossier-service { align-items: flex-start; }
  .dossier-service-selected .dossier-service-name { flex-basis: 100%; }
}

@media print {
  body:has(.dossier-print-view) { background: #fff !important; color: #111; }
  body:has(.dossier-print-view) .sidebar,
  body:has(.dossier-print-view) .topbar,
  body:has(.dossier-print-view) .nav-overlay,
  body:has(.dossier-print-view) .portal-agent-shell,
  body:has(.dossier-print-view) .portal-agent-launcher,
  body:has(.dossier-print-view) .portal-agent-panel,
  body:has(.dossier-print-view) .portal-guide-layer,
  body:has(.dossier-print-view) .page-navigation-loader,
  .dossier-print-view .dossier-print-controls,
  .dossier-print-view .breadcrumb,
  .dossier-print-view .button-link,
  .dossier-print-view button { display: none !important; }
  body:has(.dossier-print-view) .app-layout { display: block; }
  body:has(.dossier-print-view) .app-column { margin: 0; min-width: 0; }
  body:has(.dossier-print-view) .page-shell,
  .dossier-print-view { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; }
  .dossier-print-view .surface { box-shadow: none; margin-block: 1rem; }
  .dossier-print-view .table-scroll { overflow: visible; }
  .dossier-print-view .consistency-alert-list { display: block; }
  .dossier-print-view .consistency-alert-item { margin-bottom: 1rem; overflow: visible; }
  .dossier-print-view tr, .dossier-print-view .dossier-service { break-inside: avoid; }
  .dossier-print-view h2, .dossier-print-view h3 { break-after: avoid; }
  .dossier-print-view a { color: inherit; text-decoration: none; }
}
