@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --ink: #17201d;
  --ink-soft: #46504c;
  --muted: #68726e;
  --muted-2: #53615b;
  --line: #dfe5e1;
  --line-strong: #cbd6d0;
  --paper: #f5f7f4;
  --surface: #f6f8f6;
  --surface-2: #edf0ee;
  --white: #fff;
  --forest: #174f3d;
  --forest-2: #0f382b;
  --mint: #dceee5;
  --green-strong: #176142;
  --green-line: #b8dcca;
  --green-bg: #def2e7;
  --green-bg-soft: #edf7f2;
  --amber: #ad6416;
  --amber-strong: #875413;
  --amber-2: #d47436;
  --amber-line: #efd7b8;
  --amber-bg: #fff0db;
  --amber-bg-soft: #fff8ef;
  --red: #9b332d;
  --red-strong: #74251f;
  --red-line: #efc8c2;
  --red-bg: #fde9e6;
  --red-bg-soft: #fff2ef;
  --blue: #3e5198;
  --blue-bg: #e7eaf8;
  --teal: #276079;
  --teal-bg: #dceff5;
  --violet: #5e477f;
  --violet-bg: #eee6f7;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --radius-s: 8px;
  --radius-m: 12px;
  --radius-l: 16px;
  --control-height: 42px;
  --control-height-compact: 35px;
  --control-radius: 8px;
  --text-xs: 11px;
  --text-s: 12px;
  --text-m: 14px;
  --text-l: 16px;
  --text-xl: 22px;
  --shadow: 0 12px 36px rgba(24, 42, 35, 0.08);
  --shadow-lift: 0 16px 44px rgba(24, 42, 35, 0.16);
  --focus-ring: 0 0 0 3px rgba(23, 79, 61, .1);
  --motion-fast: 140ms;
  --motion-base: 200ms;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { width: 100%; max-width: 100%; overflow-x: clip; }
body { margin: 0; min-width: 320px; background: var(--paper); }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }

.topbar {
  height: 74px; padding: 0 max(24px, calc((100vw - 1380px) / 2));
  display: flex; align-items: center; justify-content: space-between;
  background: var(--white); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 10;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--forest); color: white; font-weight: 800; letter-spacing: -.04em; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 15px; }
.brand small { color: var(--muted); font-size: 11px; margin-top: 2px; }
nav { display: flex; gap: 8px; }
nav a { padding: 9px 13px; color: var(--muted); border-radius: 8px; font-size: 14px; font-weight: 600; }
nav a:hover { background: var(--paper); color: var(--ink); }

.shell { width: min(1380px, calc(100% - 48px)); max-width: calc(100% - 48px); margin: 0 auto; padding: 34px 0 64px; min-height: calc(100vh - 130px); }
.shell > * { max-width: 100%; }
footer { min-height: 56px; padding: 0 max(24px, calc((100vw - 1380px) / 2)); display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 12px; border-top: 1px solid var(--line); }

h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 10px; font-size: clamp(30px, 4vw, 48px); line-height: 1.04; letter-spacing: -.045em; }
h2 { margin-bottom: 0; font-size: 21px; letter-spacing: -.025em; }
h3 { font-size: 20px; letter-spacing: -.02em; }
.muted { color: var(--muted); }
.nowrap { white-space: nowrap; }

.hero { min-height: 270px; padding: 48px; display: flex; justify-content: space-between; align-items: flex-end; background: radial-gradient(circle at 90% 5%, var(--green-strong) 0, transparent 31%), linear-gradient(130deg, var(--forest-2), var(--forest)); color: white; border-radius: 22px; overflow: hidden; box-shadow: var(--shadow); }
.hero.compact { min-height: 235px; }
.hero > div:first-child { max-width: 760px; }
.hero .lede { margin: 0; max-width: 680px; color: var(--line-strong); font-size: 17px; line-height: 1.55; }
.hero-badge { display: flex; align-items: center; gap: 9px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.1); border-radius: 99px; font-size: 12px; white-space: nowrap; backdrop-filter: blur(10px); }

.section-heading, .page-heading { display: flex; justify-content: space-between; align-items: flex-end; }
.section-heading { margin: 42px 0 17px; }
.page-heading { margin: 10px 0 28px; }
.page-heading h1 { font-size: 36px; }
.page-heading p:last-child { margin: 0; color: var(--muted); }
.breadcrumbs { display: flex; gap: 9px; margin-bottom: 25px; color: var(--muted); font-size: 13px; }
.breadcrumbs a { color: var(--forest); font-weight: 650; }

.cycle-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 18px; }
.cycle-card { padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 6px 24px rgba(23, 32, 29, .04); transition: transform .2s ease, box-shadow .2s ease; }
.cycle-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.cycle-card h3 { margin: 24px 0 5px; }
.cycle-card > p { color: var(--muted); }
.card-topline { display: flex; justify-content: space-between; align-items: center; }
.card-link { margin-top: 22px; display: flex; justify-content: space-between; color: var(--forest); font-weight: 750; font-size: 13px; }
.mini-stats { display: grid; grid-template-columns: 1fr 1fr; margin: 20px 0 0; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.mini-stats div + div { padding-left: 18px; border-left: 1px solid var(--line); }
.mini-stats dt, .mini-stats dd { margin: 0; }
.mini-stats dt { color: var(--muted); font-size: 11px; }
.mini-stats dd { margin-top: 5px; font-weight: 750; }

.status { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 99px; font-size: 11px; font-weight: 750; white-space: nowrap; }
.status.working { color: var(--forest); background: var(--mint); }
.status.ready { color: var(--green-strong); background: var(--green-bg); }
.status.review { color: var(--red); background: var(--red-bg); }
.status.neutral { color: var(--muted); background: var(--line); }

.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.metric { padding: 19px 21px; display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-radius: 14px; }
.metric > span { color: var(--muted); font-size: 12px; font-weight: 650; }
.metric strong { margin: 8px 0 2px; font-size: 29px; letter-spacing: -.04em; }
.metric strong.date-metric { font-size: 24px; }
.metric small { color: var(--muted); }
.metric.good { background: var(--green-bg-soft); border-color: var(--green-line); }
.metric.warn { background: var(--amber-bg-soft); border-color: var(--amber-line); }

.gate-panel { margin-bottom: 18px; padding: 22px 24px; display: grid; grid-template-columns: minmax(240px, .8fr) minmax(360px, 1.2fr) auto; gap: 24px; align-items: center; border: 1px solid; border-radius: 16px; }
.gate-panel.blocked { background: var(--red-bg-soft); border-color: var(--red-line); }
.gate-panel.clear { background: var(--green-bg-soft); border-color: var(--green-line); }
.gate-panel h2 { margin-bottom: 7px; }
.gate-panel p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.gate-findings { display: grid; gap: 6px; }
.gate-findings span { color: var(--red); font-size: 12px; font-weight: 650; }
.gate-panel.clear .gate-findings span { color: var(--forest); }
.gate-findings .warning { color: var(--amber) !important; }
.gate-actions { display: flex; gap: 7px; align-items: stretch; flex-direction: column; }

.control-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.control-card { min-width: 0; }
.breakdown.compact div { padding: 8px 0; font-size: 12px; }
.breakdown.compact .total { padding-top: 13px; }
.breakdown.compact .total dt, .breakdown.compact .total dd { font-size: 14px; }
.source-line { min-height: 34px; padding: 9px 11px; color: var(--muted) !important; background: var(--paper); border-radius: 8px; font-size: 11px; }
.compact-form { margin-top: 14px; gap: 10px; }
.mini-upload { margin: 16px 0; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.mini-upload .file-drop { padding: 11px; }
.mini-upload .file-icon { width: 36px; height: 36px; }
.mini-upload > .button { min-width: 116px; }
.parameters-panel { margin-bottom: 18px; }
.parameters-panel details > summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; list-style: none; }
.parameters-panel details > summary::-webkit-details-marker { display: none; }
.parameters-panel details > summary strong, .parameters-panel details > summary .eyebrow { display: block; }
.parameters-panel details > summary strong { font-size: 16px; }
.parameters-panel details[open] > summary { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.parameters-panel details > p { margin: 18px 0; color: var(--muted); font-size: 12px; }
.parameter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.parameter-form fieldset { min-width: 0; margin: 0; padding: 16px; display: grid; gap: 12px; border: 1px solid var(--line); border-radius: 11px; }
.parameter-form legend { padding: 0 6px; color: var(--forest); font-size: 11px; font-weight: 750; }
.parameter-form .form-hint { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.parameter-form .reason-box, .parameter-form > .button { grid-column: 1 / -1; }
.parameter-form > .button { justify-self: end; }
.checkbox-label { min-height: var(--control-height); padding: 10px 11px; display: flex !important; grid-template-columns: auto 1fr !important; align-items: center; background: var(--paper); border-radius: var(--control-radius); }
.checkbox-label input { width: 18px; height: 18px; }
.model-panel { margin-bottom: 18px; }
.waterfall-totals { display: flex; gap: 22px; color: var(--muted); font-size: 11px; }
.waterfall-totals strong { display: block; margin-top: 3px; color: var(--forest); font-size: 15px; }
.model-footer { padding: 15px 24px; display: flex; justify-content: flex-end; gap: 34px; color: var(--muted); background: var(--surface); font-size: 12px; }
.model-footer strong { margin-left: 6px; color: var(--forest); }
.workspace-grid.operations-grid { grid-template-columns: 1fr; align-items: start; }
.inline-review { min-width: 250px; display: flex; gap: 6px; align-items: center; }
.inline-review input { min-width: 120px; padding: 7px 8px; }
.inline-review .button { flex: 0 0 auto; }
.bulk-review { min-width: 360px; display: flex; gap: 7px; }
.bulk-review input { padding: 7px 9px; }
.exception-grid { align-items: start; }
.exception-list { display: grid; gap: 8px; margin: 0 0 15px; }
.exception-list article { padding: 11px; display: grid; gap: 9px; background: var(--paper); border-radius: 9px; }
.exception-list article > div { min-width: 0; }
.exception-list strong, .exception-list small { display: block; }
.exception-list strong { font-size: 12px; }
.exception-list small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.exception-list .status { justify-self: start; }
.exception-list .inline-review { min-width: 0; }
.exception-list .muted-item { opacity: .62; }
.approval-card { background: linear-gradient(150deg, var(--white) 55%, var(--green-bg-soft)); }
.approval-ok { padding: 14px; color: var(--forest) !important; background: var(--mint); border-radius: 9px; font-weight: 700; }
.document-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; }
.document-grid article { padding: 12px; display: flex; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 10px; }
.document-grid strong, .document-grid small, .document-grid code { display: block; }
.document-grid small { margin: 3px 0; color: var(--muted); font-size: 10px; }
.document-grid code { color: var(--muted); font-size: 9px; }
.report-list { display: grid; gap: 9px; }
.report-list article { padding: 13px 14px; display: flex; justify-content: space-between; align-items: center; gap: 18px; border: 1px solid var(--line); border-radius: 10px; }
.report-list strong, .report-list small, .report-list code { display: block; }
.report-list small { margin: 4px 0; color: var(--muted); font-size: 10px; }
.report-list code { max-width: 620px; overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; }

.workspace-grid { display: grid; grid-template-columns: minmax(380px, .9fr) minmax(480px, 1.1fr); gap: 18px; margin-bottom: 18px; }
.onboarding-grid { margin-top: 24px; align-items: start; }
.calendar-create { margin: 14px 0; padding: 12px; background: var(--paper); border-radius: 9px; }
.workspace-grid > *, .document-intake-grid > *, .clause-row > * { min-width: 0; }
.workspace-grid.padded { padding: 0 var(--space-5) var(--space-5); }
.panel { padding: var(--space-5); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-l); }
.panel.flush { padding: 0; overflow: hidden; margin-bottom: 18px; }
.panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; margin-bottom: 19px; }
.panel-heading.padded { padding: var(--space-5) var(--space-5) 5px; }
.panel > p { color: var(--muted); line-height: 1.5; }
.step-number { font-size: 31px; line-height: 1; color: var(--line-strong); font-weight: 250; }
.policy-tag, .lock-tag, .edited-tag { padding: 5px 8px; color: var(--forest); background: var(--mint); border-radius: 6px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.lock-tag { color: var(--muted); background: var(--paper); }
.edited-tag { color: var(--amber); background: var(--amber-bg); }

.upload-form { display: grid; gap: 12px; }
.file-drop { position: relative; padding: 16px; display: flex; align-items: center; gap: 13px; overflow: hidden; border: 1px dashed var(--line-strong); border-radius: 11px; cursor: pointer; background: var(--surface); transition: background-color var(--motion-base) ease, border-color var(--motion-base) ease; }
.file-drop:hover { border-color: var(--forest); }
.file-drop.has-file { border-color: var(--green-strong); background: var(--green-bg-soft); }
.file-drop.has-file .file-icon { color: white; background: var(--forest); }
.file-drop input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; }
.file-drop strong, .file-drop small { display: block; }
.file-drop small { margin-top: 4px; color: var(--muted); }
.file-icon { width: 43px; height: 43px; display: grid; place-items: center; flex: 0 0 auto; color: var(--forest); background: var(--mint); border-radius: 9px; font-size: 11px; font-weight: 850; }
.file-icon.small { width: 35px; height: 35px; }
.divider { display: flex; align-items: center; gap: 10px; margin: 14px 0; color: var(--muted); font-size: 10px; }
.divider::before, .divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }

.button { min-height: var(--control-height); padding: 0 var(--space-4); display: inline-flex; justify-content: center; align-items: center; border: 1px solid transparent; border-radius: 9px; cursor: pointer; font-weight: 750; font-size: 13px; transition: color var(--motion-fast) ease, background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, transform var(--motion-fast) var(--ease-out); }
.button.primary { color: white; background: var(--forest); }
.button.primary:hover { background: var(--forest-2); }
.button.secondary { color: var(--ink); background: white; border-color: var(--line); }
.button.secondary:hover { background: var(--surface); border-color: var(--line-strong); }
.button.warning { color: var(--amber); background: var(--amber-bg); }
.button.small { min-height: var(--control-height-compact); padding: 0 var(--space-3); }
.button.full { width: 100%; }
.button.ghost { color: var(--muted); background: transparent; border-color: var(--line); font-weight: 600; }
.button.ghost:hover { color: var(--forest); background: var(--green-bg-soft); border-color: var(--green-line); }
.button.ghost.danger-ghost:hover { color: var(--red); background: var(--red-bg-soft); border-color: var(--red-line); }
.button:not(:disabled):active { transform: translateY(1px); }
.heading-actions { display: flex; gap: 8px; }

.breakdown { margin: 0; }
.breakdown div { padding: 10px 0; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); }
.breakdown dt { color: var(--muted); }
.breakdown dd { margin: 0; font-weight: 720; }
.breakdown .total { margin-top: 5px; padding: 16px 0 4px; border: 0; }
.breakdown .total dt, .breakdown .total dd { color: var(--forest); font-size: 18px; font-weight: 800; }
.calculation-note { margin-top: 16px; padding: 13px; display: flex; flex-direction: column; gap: 4px; background: var(--paper); border-radius: 9px; }
.calculation-note strong { font-size: 12px; }
.calculation-note span, .caution { color: var(--muted); font-size: 11px; line-height: 1.45; }
.caution { margin: 12px 0 0 !important; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { padding: 11px 14px; color: var(--muted-2); background: var(--surface); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: left; font-size: 11px; font-weight: 700; }
td { padding: 13px 14px; border-bottom: 1px solid var(--line); vertical-align: middle; }
tbody tr:hover { background: var(--surface); }
tbody tr:last-child td { border-bottom: 0; }
.number { text-align: right; font-variant-numeric: tabular-nums; }
.description-cell { min-width: 230px; }
.description-cell strong, .description-cell small { display: block; }
.description-cell strong { max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.description-cell small { margin-top: 4px; color: var(--muted); }
.account { padding: 4px 7px; display: inline-block; border-radius: 5px; background: var(--surface-2); color: var(--muted-2); font-size: 10px; font-weight: 700; }
.account.collection { color: var(--green-strong); background: var(--green-bg); }
.account.payment { color: var(--blue); background: var(--blue-bg); }
.account.expenses { color: var(--amber-strong); background: var(--amber-line); }
.account.cash_reserve, .account.prepayment_reserve { color: var(--teal); background: var(--teal-bg); }
.account.capital { color: var(--violet); background: var(--violet-bg); }
.account.other { color: var(--ink-soft); background: var(--line); }
.account.unknown { color: var(--red); background: var(--red-bg); }
.icon-link { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; font-size: 17px; }
.empty-row { padding: 36px !important; color: var(--muted); text-align: center; }

.import-list { display: grid; }
.import-row { padding: 13px 0; display: grid; grid-template-columns: auto 1fr auto auto auto; gap: 16px; align-items: center; border-top: 1px solid var(--line); }
.import-row > div:nth-child(2) strong, .import-row > div:nth-child(2) small, .import-numbers strong, .import-numbers small { display: block; }
.import-row small { margin-top: 3px; color: var(--muted); }
.import-numbers { text-align: right; }
.import-row code { color: var(--muted); font-size: 10px; }

.filters { margin: -10px 0 17px; padding: 14px; display: flex; align-items: flex-end; gap: 12px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.filters label { color: var(--muted); font-size: 11px; font-weight: 700; }
.filters select { min-width: 170px; margin-top: 5px; display: block; }

.detail-grid { display: grid; grid-template-columns: minmax(360px, .85fr) minmax(480px, 1.15fr); gap: 18px; align-items: start; }
.detail-grid > div { display: grid; gap: 18px; }
.facts { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.facts div { padding: 13px 0; border-top: 1px solid var(--line); }
.facts div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }
.facts dt { color: var(--muted); font-size: 11px; font-weight: 650; }
.facts dd { margin: 5px 0 0; font-weight: 700; }
.raw-details, .audit-event details { margin-top: 15px; }
details summary { color: var(--forest); font-size: 12px; font-weight: 720; cursor: pointer; }
pre { max-height: 360px; padding: 14px; overflow: auto; color: var(--line-strong); background: var(--ink); border-radius: 9px; font: 11px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; }

.findings { margin: 0; padding: 0; display: grid; gap: 8px; list-style: none; }
.findings li { padding: 11px; display: flex; gap: 10px; border-radius: 9px; }
.findings li > span { width: 23px; height: 23px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; font-weight: 850; }
.findings li strong, .findings li small { display: block; }
.findings li strong { font-size: 12px; }
.findings li small { margin-top: 3px; opacity: .75; font-size: 10px; }
.findings li.blocker { color: var(--red); background: var(--red-bg); }
.findings li.blocker > span { color: white; background: var(--red); }
.findings li.warning { color: var(--amber-strong); background: var(--amber-bg); }
.findings li.warning > span { color: white; background: var(--amber); }

.edit-form { display: grid; gap: 16px; }
.edit-form label { display: grid; gap: 6px; color: var(--ink-soft); font-size: 12px; font-weight: 720; }
.edit-form label > small { color: var(--muted); font-weight: 400; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 13px; }
input, select { min-height: var(--control-height); }
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
select { height: var(--control-height); }
input, textarea, select { width: 100%; padding: 10px 11px; color: var(--ink); background-color: white; border: 1px solid var(--line-strong); border-radius: var(--control-radius); outline: 0; transition: background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease; }
input[type="checkbox"], input[type="radio"] { min-height: 0; padding: 0; accent-color: var(--forest); }
select {
  padding-inline-end: 36px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 20 20' fill='none' stroke='%2346504c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 8 4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
input:not(:disabled):not([readonly]):hover, textarea:not(:disabled):hover, select:not(:disabled):hover { border-color: var(--muted); }
input:focus, textarea:focus, select:focus { border-color: var(--forest); box-shadow: var(--focus-ring); }
input[readonly] { color: var(--muted); background: var(--surface-2); cursor: not-allowed; }
textarea { resize: vertical; }
.reason-box { padding: 15px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }
.reason-box label span { color: var(--red); font-size: 10px; }
.reason-box p { margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.4; }

.alert { margin-bottom: 18px; padding: 13px 16px; border-radius: 10px; font-size: 13px; font-weight: 650; }
.alert.success { color: var(--green-strong); background: var(--green-bg); border: 1px solid var(--green-line); }
.alert.error { color: var(--red); background: var(--red-bg); border: 1px solid var(--red-line); }

.audit-list { display: grid; gap: 0; }
.audit-event { padding: 18px 0; }
.audit-event + .audit-event { border-top: 1px solid var(--line); }
.audit-line { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.audit-line strong, .audit-line small { display: block; }
.audit-line small { margin-top: 4px; color: var(--muted); }
.audit-line-side { display: flex; align-items: center; gap: var(--space-3); flex-shrink: 0; }
.audit-line-side a { color: var(--green-strong); font-size: var(--text-s); font-weight: 700; }
.audit-footer { margin-top: var(--space-3); padding-top: var(--space-4); display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); color: var(--muted); font-size: var(--text-s); }
.audit-pager { display: flex; gap: var(--space-2); }
blockquote { margin: 12px 0 0; padding: 10px 13px; color: var(--ink-soft); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-s); font-size: 12px; }

.calendar-card { border-color: var(--green-line); }
.calendar-heading { align-items: center; }
.calendar-metrics { margin-top: 0; }
.calendar-intro { margin-bottom: 18px; background: linear-gradient(125deg, white 65%, var(--green-bg-soft)); }
.calendar-intro p:last-child { max-width: 920px; margin-bottom: 0; }
.calendar-config-grid { align-items: start; }
.rule-parameter-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.form-hint { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.wizard-callout { margin-bottom: 18px; padding: 15px 17px; color: var(--ink-soft); background: var(--green-bg-soft); border: 1px solid var(--line-strong); border-radius: 11px; }
.wizard-callout strong { display: block; font-size: 14px; }
.wizard-callout p { margin: 5px 0 10px; font-size: 11px; line-height: 1.5; }
.wizard-callout ol { margin: 0; padding-left: 19px; color: var(--muted-2); font-size: 10px; line-height: 1.55; }
.wizard-intro { margin: 0 0 17px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.guided-rule-form { gap: 18px; }
.wizard-section { margin: 0; padding: 16px; display: grid; gap: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 11px; }
.wizard-section legend { padding: 0 8px 0 0; color: var(--ink); font-size: 13px; font-weight: 800; }
.wizard-section legend span { width: 24px; height: 24px; margin-right: 6px; display: inline-grid; place-items: center; color: white; background: var(--forest); border-radius: 50%; font-size: 11px; }
.advanced-rule-options { padding: 11px 13px; background: white; border: 1px solid var(--line); border-radius: 9px; }
.advanced-rule-options summary { margin-bottom: 0; }
.advanced-rule-options[open] summary { margin-bottom: 12px; }
.rule-preview { padding: 14px 15px; color: var(--ink-soft); background: var(--green-bg-soft); border: 1px solid var(--green-line); border-radius: 8px; }
.rule-preview strong, .rule-preview small { display: block; }
.rule-preview p { margin: 5px 0; font-size: 12px; font-weight: 680; line-height: 1.5; }
.rule-preview small { color: var(--muted); font-size: 9px; line-height: 1.45; }
[data-rule-fields][hidden], [data-event-time][hidden], [data-adjustment-offset][hidden] { display: none !important; }
.calendar-help { margin: 16px 0 0; line-height: 1.5; }
.calendar-source-list { display: grid; gap: 9px; }
.calendar-source-list article { padding: 13px; display: flex; justify-content: space-between; align-items: center; gap: 14px; background: var(--paper); border-radius: 10px; }
.calendar-source-list strong, .calendar-source-list small { display: block; }
.calendar-source-list small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.calendar-holiday-form { margin-top: 16px; }
.calendar-holiday-form form { margin-top: 14px; }
.document-intake-panel { margin-bottom: 18px; }
.document-intake-grid { display: grid; grid-template-columns: minmax(330px, .75fr) minmax(420px, 1.25fr); gap: 24px; align-items: start; }
.document-intake-grid .form-row { align-items: end; }
.document-intake-grid .button { width: 100%; }
.calendar-documents { max-height: 310px; overflow-y: auto; }
.document-library { min-width: 0; padding: 14px; background: var(--surface); border-radius: 12px; }
.document-library-heading { margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; }
.document-library-heading strong { font-size: 12px; }
.document-library-heading span { color: var(--muted); font-size: 10px; }
.calendar-documents article { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; background: white; }
.clause-list { display: grid; }
.clause-row { padding: 18px 24px; display: grid; grid-template-columns: 120px minmax(300px, 1fr) minmax(240px, .55fr); gap: 20px; border-top: 1px solid var(--line); }
.clause-status small, .clause-copy > small { display: block; margin-top: 7px; color: var(--muted); font-size: 10px; }
.clause-copy blockquote { margin-top: 0; line-height: 1.55; }
.clause-copy pre { max-height: 200px; }
.evidence-source-list { margin-top: 9px; display: grid; gap: 5px; }
.evidence-source-list small { padding: 7px 9px; color: var(--muted); background: var(--paper); border-radius: 7px; }
.clause-decision { display: grid; gap: 8px; align-content: start; }
.clause-decision > div { display: flex; gap: 7px; }
.schedule-panel { margin-top: 18px; }
.schedule-table { min-width: 1120px; }
.event-row td:first-child { border-left: 3px solid transparent; }
.event-row.event-payment_date td:first-child { border-left-color: var(--forest); }
.event-row.event-investor_report td:first-child, .event-row.event-other_report td:first-child { border-left-color: var(--blue); }
.event-row.event-calculation_date td:first-child { border-left-color: var(--amber-2); }
.explanation-cell { min-width: 260px; max-width: 390px; }
.explanation-cell small { display: block; color: var(--muted); line-height: 1.45; }
.explanation-cell small + small { margin-top: 5px; color: var(--forest); }
.schedule-actions { min-width: 220px; }
.schedule-actions > form, .schedule-actions > a { margin-bottom: 7px; }
.override-editor summary { white-space: nowrap; }
.override-editor form { width: 270px; margin-top: 9px; padding: 11px; display: grid; gap: 7px; background: var(--paper); border-radius: 9px; }
.compact-check { min-height: 42px; padding: 7px; }
.inline-approve { display: grid; gap: 6px; }
.inline-approve input { padding: 7px 8px; }
.schedule-table code { color: var(--muted); font-size: 10px; }

.workflow-steps { margin: 0 0 18px; padding: 8px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; background: var(--surface-2); border-radius: 12px; }
.workflow-steps a { min-width: 0; padding: 9px 10px; display: flex; justify-content: center; align-items: center; gap: 8px; color: var(--ink-soft); background: rgba(255,255,255,.62); border-radius: 8px; font-size: 11px; font-weight: 750; }
.workflow-steps a:hover { color: var(--forest); background: white; }
.workflow-steps span { width: 22px; height: 22px; display: grid; place-items: center; flex: 0 0 auto; color: white; background: var(--forest); border-radius: 50%; font-size: 10px; }
.operation-setup, .definitions-panel { margin-bottom: 18px; }
.operation-setup.setup-required { border-color: var(--amber-line); box-shadow: 0 0 0 3px rgba(173,100,22,.06); }
.operation-setup > details > summary { display: flex; justify-content: space-between; align-items: center; gap: 18px; list-style: none; }
.operation-setup > details > summary::-webkit-details-marker { display: none; }
.operation-setup > details > summary strong, .operation-setup > details > summary .eyebrow { display: block; }
.operation-setup > details[open] > summary { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.operation-setup > details > p { margin: 18px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.operation-setup-form { grid-template-columns: 1fr 1fr; align-items: start; }
.operation-setup-form > label:first-child, .operation-setup-form > .reason-box, .operation-setup-form > .button { grid-column: 1 / -1; }
.operation-setup-form fieldset, .compact-form fieldset { min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.operation-setup-form legend, .compact-form legend { padding: 0 6px; color: var(--forest); font-size: 11px; font-weight: 800; }
.operation-setup-form > .button { justify-self: end; }
.control-success, .action-hint { margin: 12px 0 !important; padding: 10px 12px; border-radius: 8px; font-size: 11px; line-height: 1.45; }
.control-success { color: var(--forest) !important; background: var(--mint); }
.action-hint { color: var(--amber-strong) !important; background: var(--amber-bg); }
.ready-text { color: var(--forest) !important; }
.warning-text { color: var(--amber) !important; }
.balance-source { line-height: 1.35; }
.balance-checks { margin-top: 12px; }
.balance-list { margin-top: 10px; display: grid; gap: 7px; }
.balance-list article { padding: 10px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; background: var(--paper); border-radius: 8px; }
.balance-list article strong, .balance-list article small { display: block; }
.balance-list article small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.balance-checks > .warning-text { margin: 10px 0 0; font-size: 10px; line-height: 1.45; }
.breakdown dt small { margin-top: 3px; display: block; color: var(--muted); font-size: 9px; font-weight: 450; }
.section-intro { margin: 0; padding: 0 24px 18px; font-size: 11px; }
.expenses-table { min-width: 1080px; }
.expense-description { min-width: 255px; max-width: 380px; }
.expense-description strong, .expense-description small { display: block; white-space: normal; overflow-wrap: anywhere; }
.expense-description strong { line-height: 1.35; }
.expense-description small { margin-top: 5px; color: var(--muted); line-height: 1.45; }
.expense-priority { min-width: 130px; vertical-align: top; }
.expense-priority details { margin-top: 8px; }
.expense-priority details summary { font-size: 10px; }
.compact-inline-form { width: 260px; margin-top: 8px; padding: 10px; display: grid; gap: 7px; background: var(--paper); border: 1px solid var(--line); border-radius: 9px; }
.compact-inline-form input, .compact-inline-form select { min-height: var(--control-height-compact); height: var(--control-height-compact); padding: 7px 8px; font-size: 11px; }
.needs-attention { background: var(--red-bg-soft); }
.shortfall-row { background: var(--amber-bg-soft); }
.definition-label { display: inline-flex; align-items: center; gap: 5px; }
.definition-help { position: relative; display: inline-block; vertical-align: middle; }
.definition-help > summary { width: 20px; height: 20px; display: inline-grid; place-items: center; color: var(--forest); background: var(--mint); border-radius: 50%; list-style: none; font-size: 11px; font-weight: 850; }
.definition-help > summary::-webkit-details-marker { display: none; }
.definition-popover { width: min(380px, 75vw); padding: 14px; position: absolute; left: 26px; top: -8px; z-index: 8; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: 11px; box-shadow: var(--shadow); text-align: left; }
.definition-popover strong, .definition-popover small { display: block; }
.definition-popover blockquote { margin: 9px 0; max-height: 180px; overflow-y: auto; font-weight: 400; line-height: 1.5; }
.definition-popover small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.definitions-panel > p { max-width: 900px; }
.definition-list { margin: 18px 0; display: grid; gap: 9px; }
.definition-list article { padding: 14px; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(220px, .4fr); gap: 14px; align-items: start; background: var(--paper); border-radius: 10px; }
.definition-list article > div:first-child { min-width: 0; }
.definition-list article strong, .definition-list article small { display: block; }
.definition-list article small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.definition-list blockquote { max-height: 110px; overflow-y: auto; line-height: 1.5; }
.definition-decision { display: grid; gap: 7px; }
.definition-decision > div { display: flex; gap: 6px; }
.definition-editor[open] > summary { margin-bottom: 15px; }

@media (max-width: 980px) {
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .workspace-grid, .detail-grid { grid-template-columns: 1fr; }
  .hero { align-items: flex-start; flex-direction: column; gap: 28px; }
  .gate-panel { grid-template-columns: 1fr 1fr; }
  .gate-actions { grid-column: 1 / -1; flex-direction: row; }
  .control-grid { grid-template-columns: 1fr 1fr; }
  .exception-grid .approval-card { grid-column: 1 / -1; }
  .parameter-form { grid-template-columns: 1fr; }
  .parameter-form .reason-box, .parameter-form > .button { grid-column: auto; }
  .clause-row { grid-template-columns: 100px 1fr; }
  .clause-decision { grid-column: 2; }
  .document-intake-grid { grid-template-columns: 1fr; }
  .operation-setup-form { grid-template-columns: 1fr; }
  .operation-setup-form > label:first-child, .operation-setup-form > .reason-box, .operation-setup-form > .button { grid-column: auto; }
  .definition-list article { grid-template-columns: 1fr auto; }
  .definition-decision { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .topbar { padding: 0 16px; }
  .workflow-steps { grid-template-columns: repeat(5, minmax(92px, 1fr)); overflow-x: auto; }
  .workflow-steps a { display: flex !important; }
  .shell { width: min(100% - 28px, 1380px); padding-top: 22px; }
  footer { padding: 14px; gap: 8px; align-items: flex-start; flex-direction: column; }
  .hero { min-height: auto; padding: 28px 22px; }
  .hero-badge { white-space: normal; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .metric { padding: 15px; }
  .workspace-grid { display: block; }
  .workspace-grid .panel + .panel { margin-top: 14px; }
  .panel { padding: 19px; }
  .panel-heading.padded { padding: 19px 19px 5px; }
  .workspace-grid.padded { padding: 0 19px 19px; }
  .page-heading { align-items: flex-start; gap: 14px; }
  .page-heading h1 { font-size: 29px; }
  .form-row, .facts { grid-template-columns: 1fr; }
  .facts div:nth-child(even) { padding-left: 0; border-left: 0; }
  .heading-actions { align-items: stretch; flex-direction: column; }
  .filters { align-items: stretch; flex-direction: column; }
  .filters select { min-width: 0; }
  .import-row { grid-template-columns: auto 1fr auto; }
  .import-row code, .import-row .import-numbers:nth-of-type(2) { display: none; }
  .gate-panel, .control-grid { display: grid; grid-template-columns: 1fr; }
  .gate-actions, .exception-grid .approval-card { grid-column: auto; }
  .gate-actions { flex-direction: column; }
  .waterfall-totals, .model-footer { align-items: flex-start; flex-direction: column; gap: 8px; }
  .inline-review { min-width: 210px; align-items: stretch; flex-direction: column; }
  .parameters-panel details > summary, .report-list article { align-items: flex-start; flex-direction: column; }
  .bulk-review { min-width: 0; width: 100%; flex-direction: column; }
  .rule-parameter-grid, .clause-row { grid-template-columns: 1fr; }
  .clause-decision { grid-column: auto; }
  .definition-list article { grid-template-columns: 1fr; }
  .definition-decision { grid-column: auto; }
}

/* Workbench hierarchy and reusable neutral states */
.status.info { color: var(--muted-2); background: var(--surface-2); }
.status.working { color: var(--muted-2); background: var(--surface-2); }
.gate-panel.clear { background: var(--surface); border-color: var(--line); }
.gate-panel.clear .gate-findings span { color: var(--muted); }
.matched-line { color: var(--green-strong) !important; }
.title-with-status { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.title-with-status h2, .title-with-status h3 { margin: 0; }
.workspace-metrics { grid-template-columns: repeat(3, 1fr); }
.panel-heading h3 { margin: 0; font-size: 18px; }
.panel-heading p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.numbered-section { margin: 34px 0 18px; scroll-margin-top: 90px; }
.section-heading-numbered { margin-bottom: 15px; display: flex; align-items: flex-start; gap: 16px; }
.section-heading-numbered.compact { margin: 0; }
.section-heading-numbered > div { min-width: 0; }
.section-heading-numbered h2 { margin-bottom: 4px; font-size: 23px; }
.section-heading-numbered p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.section-heading-numbered .step-number { min-width: 42px; font-size: 40px; }
.workflow-steps { grid-template-columns: repeat(6, 1fr); }
.workflow-steps span { width: 28px; height: 22px; border-radius: 6px; }
.gate-summary { min-width: 0; }
.gate-approval-form { display: grid; gap: 7px; }
.gate-approval-form input { min-width: 230px; }
.gate-history { grid-column: 1 / -1; }
.setup-columns { margin-top: 20px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; }
.setup-columns h3 { margin: 0 0 8px; font-size: 17px; }
.setup-columns > div > p { color: var(--muted); font-size: 11px; line-height: 1.5; }
.operation-setup > details > summary small { display: block; margin-top: 4px; color: var(--muted); font-weight: 450; }
.compact-list article { grid-template-columns: minmax(0, 1fr) auto; }
.compact-list .definition-decision { grid-column: 1 / -1; }
.setup-link { margin: 16px 0 0; font-size: 12px; font-weight: 720; }
.source-summary h4 { margin: 18px 0 8px; font-size: 12px; }
.compact-summary { grid-template-columns: repeat(3, 1fr) !important; }
.compact-summary div { padding: 10px !important; }
.source-summary .import-row { grid-template-columns: auto 1fr auto; }

/* Portfolio dashboard */
.dashboard-head { margin: 6px 0 24px; padding: 26px 0; display: flex; justify-content: space-between; align-items: flex-end; gap: 28px; border-bottom: 1px solid var(--line); }
.dashboard-head h1 { margin-bottom: 8px; font-size: 38px; }
.dashboard-head p { margin: 0; color: var(--muted); font-size: 14px; }
.portfolio-summary { margin: 0; display: flex; align-items: center; gap: 24px; }
.portfolio-summary > div { min-width: 88px; display: grid; grid-template-columns: auto auto; align-items: baseline; gap: 9px; }
.portfolio-summary > div + div { padding-left: 24px; border-left: 1px solid var(--line-strong); }
.portfolio-summary dt { color: var(--muted-2); font-size: var(--text-s); font-weight: 650; }
.portfolio-summary dd { margin: 0; font-size: 24px; font-weight: 780; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.dashboard-main-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(330px, .8fr); align-items: start; gap: 18px; }
.dashboard-main-grid .panel-heading p, .operation-index .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.dashboard-list, .deadline-list, .operation-list { display: grid; }
.dashboard-row { min-width: 0; padding: 13px 0; display: grid; grid-template-columns: 46px minmax(0, 1fr) auto 24px; gap: 13px; align-items: center; border-top: 1px solid var(--line); }
.dashboard-row:hover, .deadline-row:hover { color: var(--forest); }
.dashboard-row time { width: 42px; height: 42px; display: grid; place-content: center; text-align: center; background: var(--paper); border-radius: 9px; }
.dashboard-row time strong, .dashboard-row time span { display: block; }
.dashboard-row time strong { font-size: 15px; line-height: 1; }
.dashboard-row time span { margin-top: 2px; color: var(--muted); font-size: 7px; letter-spacing: .08em; }
.dashboard-row > div strong, .dashboard-row > div small { display: block; }
.dashboard-row > div > strong { font-size: 12px; }
.dashboard-row small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.dashboard-row-meta { text-align: right; }
.row-arrow { color: var(--muted); font-size: 17px; }
.deadline-list { max-height: 335px; overflow-y: auto; overscroll-behavior: contain; }
.deadline-row { padding: 11px 0; display: grid; grid-template-columns: 42px 4px minmax(0, 1fr); gap: 10px; align-items: center; border-top: 1px solid var(--line); }
.deadline-row time { color: var(--muted); font-size: 10px; font-weight: 750; }
.deadline-marker { width: 3px; height: 22px; border-radius: 99px; background: var(--muted); }
.deadline-marker.payment_date { background: var(--forest); }
.deadline-marker.investor_report { background: var(--blue); }
.deadline-marker.calculation_date { background: var(--amber-2); }
.deadline-row strong, .deadline-row small { display: block; }
.deadline-row strong { font-size: 11px; }
.deadline-row small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.dashboard-empty { padding: 28px 8px; display: grid; gap: 5px; color: var(--muted); text-align: center; }
.dashboard-empty strong { color: var(--ink); font-size: 12px; }
.dashboard-empty span { font-size: 10px; }
.operation-index { margin-top: 18px; }
.operation-row { min-width: 0; padding: 15px 0; display: grid; grid-template-columns: minmax(190px, 1.15fr) .55fr .85fr .85fr 1fr auto; gap: 18px; align-items: center; border-top: 1px solid var(--line); }
.operation-name strong, .operation-name small, .operation-signal span, .operation-signal strong { display: block; }
.operation-name strong { font-size: 13px; }
.operation-name small, .operation-signal span { margin-top: 3px; color: var(--muted); font-size: 8px; }
.operation-signal span { margin: 0 0 4px; font-weight: 650; }
.operation-signal strong { font-size: 10px; font-weight: 680; }
.operation-actions { display: flex; gap: 6px; }
.dashboard-create { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.dashboard-create > details { padding: 0; }
.dashboard-create .disclosure-summary { min-height: 64px; padding: 13px 18px; }
.dashboard-create .disclosure-icon { width: 32px; height: 32px; }
.dashboard-form { margin-top: 0; }
.disclosure-panel { padding: 0; overflow: hidden; }
.disclosure-summary { min-height: 82px; padding: 20px 24px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; list-style: none; cursor: pointer; }
.disclosure-summary::-webkit-details-marker { display: none; }
.disclosure-summary strong, .disclosure-summary small { display: block; }
.disclosure-summary strong { color: var(--forest); font-size: 15px; }
.disclosure-summary small { margin-top: 4px; color: var(--muted-2); font-size: var(--text-xs); font-weight: 500; }
.disclosure-icon { width: 36px; height: 36px; display: grid; place-items: center; color: var(--forest); background: var(--mint); border-radius: var(--radius-m); font-size: 20px; line-height: 1; transition: transform var(--motion-base) var(--ease-out); }
.disclosure-label { color: var(--muted-2); font-size: var(--text-xs); font-weight: 700; }
details[open] > .disclosure-summary .disclosure-icon { transform: rotate(45deg); }
.disclosure-body { margin: 0 24px 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.searchable-select { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 8px; }
.searchable-select small { grid-column: 1 / -1; color: var(--red); }
.movement-ledger { margin-top: 18px; }
.reserve-groups > div { align-items: center; gap: 14px; }
.reserve-groups dd { display: grid; gap: 3px; text-align: right; }
.reserve-groups dd small { color: var(--muted); font-size: 9px; font-weight: 500; }
.shared-account-note { margin: 12px 0 !important; padding: 11px 12px; color: var(--muted-2) !important; background: var(--surface-2); border: 1px solid var(--line); border-radius: 7px; font-size: 11px; line-height: 1.45; }
.reserve-mapping-form select { min-height: var(--control-height); }
.reserve-manual-form { grid-template-columns: 1fr 1fr; align-items: start; }
.reserve-manual-form fieldset { display: grid; gap: 12px; }
.reserve-manual-form > label, .reserve-manual-form > button { grid-column: 1 / -1; }
.expenses-detail { margin-top: 18px; }
.iaf-breakdown { display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 28px; }
.iaf-breakdown .total { grid-column: 1 / -1; }
.parameters-panel details > summary small { display: block; margin-top: 4px; color: var(--muted); font-weight: 450; }
.parameters-panel .parameter-form { margin-top: 20px; grid-template-columns: 1fr 1fr; }
.parameters-panel .parameter-form > label, .parameters-panel .parameter-form > button { grid-column: 1 / -1; }

/* Movement detail */
.movement-heading { align-items: center; }
.summary-facts { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.summary-facts div { min-width: 0; padding: 17px 16px 0 0; }
.summary-facts dt { color: var(--muted); font-size: 10px; font-weight: 650; }
.summary-facts dd { margin: 5px 0 0; font-size: 12px; font-weight: 700; overflow-wrap: anywhere; }
.classification-form { display: grid; gap: 18px; }
.classification-form label { display: grid; gap: 6px; color: var(--ink-soft); font-size: 12px; font-weight: 720; }
.classification-form label small { color: var(--muted); font-weight: 400; }

/* Calendar model */
.calendar-flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.calendar-flow > div { padding: 12px; display: grid; grid-template-columns: auto 1fr; column-gap: 9px; background: var(--paper); border-radius: 9px; }
.calendar-flow span { width: 28px; height: 28px; grid-row: 1 / 3; display: grid; place-items: center; color: white; background: var(--forest); border-radius: 7px; font-size: 10px; font-weight: 800; }
.calendar-flow strong, .calendar-flow small { display: block; }
.calendar-flow strong { font-size: 12px; }
.calendar-flow small { color: var(--muted); font-size: 9px; }
.business-day-definition { margin-bottom: 18px; }
.business-day-definition .panel-heading { margin-bottom: 12px; }
.current-definition { margin: 12px 0 16px; padding: 15px; background: var(--paper); border-radius: 10px; }
.current-definition blockquote { margin: 0 0 8px; }
.current-definition small { color: var(--muted); font-size: 10px; }
.current-definition p { margin: 10px 0 0; font-size: 11px; }
.business-day-form { margin-top: 15px; }
.business-day-form fieldset, .inline-fieldset { min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.business-day-form legend, .inline-fieldset legend { padding: 0 6px; font-size: 11px; font-weight: 800; }
.calendar-checkboxes { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; }
.calendar-checkboxes .checkbox-label { min-height: 50px; }
.calendar-checkboxes small { display: block; color: var(--muted); font-size: 9px; }

@media (max-width: 980px) {
  .setup-columns { grid-template-columns: 1fr; }
  .calendar-flow { grid-template-columns: repeat(2, 1fr); }
  .summary-facts { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 680px) {
  .workflow-steps { grid-template-columns: repeat(6, minmax(100px, 1fr)); }
  .setup-columns, .reserve-manual-form, .iaf-breakdown, .parameters-panel .parameter-form { grid-template-columns: 1fr; }
  .reserve-manual-form > label, .reserve-manual-form > button, .parameters-panel .parameter-form > label, .parameters-panel .parameter-form > button, .iaf-breakdown .total { grid-column: auto; }
  .calendar-flow, .summary-facts { grid-template-columns: 1fr; }
  .workspace-metrics { grid-template-columns: 1fr; }
}

/* Cash visibility, operation setup and output package */
.workflow-steps { grid-template-columns: repeat(10, minmax(0, 1fr)); }
.gaia-balance-strip { padding: 0 24px 22px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.gaia-balance-strip.standalone-balances { padding-top: 22px; }
.gaia-balance-strip article { min-width: 0; padding: 15px; display: grid; gap: 6px; background: linear-gradient(145deg, var(--surface), var(--surface)); border: 1px solid var(--line); border-radius: 12px; }
.balance-card-top { display: flex; justify-content: space-between; align-items: center; }
.gaia-balance-strip article > strong { font-size: 20px; letter-spacing: -.03em; }
.gaia-balance-strip article > small { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.gaia-balance-strip article > time { color: var(--muted); font-size: 9px; }
.balance-status { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; font-size: 10px; font-weight: 900; }
.balance-status.matched { color: var(--green-strong); background: var(--green-bg); }
.balance-status.review { color: var(--red); background: var(--red-bg); }
.balance-status { cursor: help; }
.gaia-balance-empty { margin: 0 24px 20px; padding: 13px 15px; color: var(--muted); background: var(--paper); border-radius: 10px; font-size: 11px; }
.balance-location-note { margin: 12px 0 !important; color: var(--muted) !important; font-size: 10px; line-height: 1.45; }

.cash-position-note { margin-bottom: 20px; padding: 14px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border-radius: 11px; overflow: hidden; }
.cash-position-note > div { min-width: 0; padding: 13px 15px; display: flex; flex-direction: column; background: white; }
.cash-position-note span { color: var(--muted); font-size: 10px; }
.cash-position-note strong { margin: 7px 0 4px; font-size: 18px; }
.cash-position-note small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.iaf-breakdown dt small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; }

.parameters-panel { padding: 0; overflow: hidden; }
.operation-setup > details > .disclosure-summary { margin: calc(var(--space-5) * -1); margin-bottom: 0; }
.operation-setup > details[open] > .disclosure-summary { margin-bottom: var(--space-5); border-bottom: 1px solid var(--line); }

.compact-adjustments .section-intro { padding: 0 0 14px; }
.adjustment-row { grid-template-columns: minmax(0, 1fr) auto !important; align-items: center; }
.exception-actions { display: flex; align-items: center; gap: 6px; }
.trash-button { width: 28px; height: 28px; display: grid; place-items: center; color: var(--red); background: var(--red-bg-soft); border: 1px solid var(--red-line); border-radius: 7px; cursor: pointer; font-size: 15px; }
.trash-button:hover { color: white; background: var(--red); }
.adjustment-form { padding-top: 12px; }
.carry-forward-panel { margin-bottom: 18px; }
.carry-forward-list { display: grid; gap: 8px; }
.carry-forward-list article { padding: 12px 14px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 16px; align-items: center; background: var(--surface); border-radius: 9px; }
.carry-forward-list strong, .carry-forward-list small, .carry-forward-list time { display: block; }
.carry-forward-list small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.carry-forward-list time { margin-top: 4px; color: var(--muted); font-size: 9px; }
.carry-forward-list time.due { color: var(--amber); font-weight: 750; }
.carry-amount { text-align: right; }
.carry-amount span { display: block; color: var(--muted); font-size: 9px; }
.carry-amount strong { margin-top: 3px; font-size: 14px; }
.carry-forward-list details { position: relative; }
.carry-release-form { width: min(680px, 76vw); padding: 10px; position: absolute; right: 0; top: 28px; z-index: 12; display: grid; grid-template-columns: .7fr 1fr 1fr auto; gap: 7px; background: white; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
.carry-release-form input { min-height: var(--control-height-compact); height: var(--control-height-compact); padding: 7px 8px; font-size: 10px; }

.export-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.export-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 17px; align-items: center; }
.export-card h3 { margin: 0 0 5px; font-size: 17px; }
.export-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.export-actions { display: flex; gap: 7px; }
.email-output-panel { display: grid; gap: 20px; }
.email-output-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.email-output-grid > div { min-width: 0; padding: 13px 15px; border-bottom: 1px solid var(--line); }
.email-output-grid > div:nth-child(odd) { border-right: 1px solid var(--line); }
.email-output-grid > div:nth-last-child(-n + 2) { border-bottom: 0; }
.email-output-grid span, .email-output-grid strong { display: block; }
.email-output-grid span { margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 650; }
.email-output-grid strong { overflow-wrap: anywhere; font-size: 11px; line-height: 1.45; }
.email-template-form { margin-top: 15px; }
.eml-action { padding: 15px 17px; display: flex; justify-content: space-between; align-items: center; gap: 20px; background: var(--surface); border-radius: 11px; }
.eml-action strong, .eml-action small { display: block; }
.eml-action small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.4; }

.operation-identity-panel { margin-bottom: 18px; }
.lot-badge { margin-left: 7px; padding: 2px 7px; display: inline-block; background: var(--paper); border: 1px solid var(--line); border-radius: 999px; color: var(--forest); font-size: 10px; font-weight: 700; letter-spacing: .02em; vertical-align: middle; }
.operation-model-panel { margin-bottom: 18px; }
.reorder-hint { margin: 0; color: var(--muted); font-size: 10px; }
.reorder-hint[data-tone="success"] { color: var(--forest); font-weight: 700; }
.reorder-hint[data-tone="error"] { color: var(--red); font-weight: 700; }
.iaf-config-list { display: grid; gap: 8px; }
.sortable-item[data-dragging="true"] { opacity: .4; }
.sortable-position { min-width: 22px; color: var(--muted); font-size: 10px; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.drag-handle { padding: 0 2px; color: var(--line); cursor: grab; font-size: 15px; line-height: 1; user-select: none; }
.drag-handle:hover, .drag-handle:focus-visible { color: var(--forest); }
.drag-handle:active { cursor: grabbing; }
.iaf-config-item { border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.iaf-config-item[data-inactive="true"] { background: var(--surface); border-style: dashed; }
.iaf-config-item[data-inactive="true"] > summary strong { color: var(--muted); font-weight: 600; }
.iaf-config-item[data-inactive="true"] > summary .iaf-summary-meta small { padding: 2px 7px; background: var(--line); border-radius: 999px; color: var(--muted-2); }
.iaf-config-item > summary { padding: 13px 15px; display: flex; align-items: center; gap: 11px; list-style: none; cursor: pointer; }
.iaf-config-item > summary > span:nth-child(3) { flex: 1; }
.iaf-config-item > summary::-webkit-details-marker { display: none; }
.iaf-config-item > summary strong, .iaf-config-item > summary small { display: block; }
.iaf-config-item > summary small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.iaf-summary-meta { display: flex; align-items: center; gap: 9px; }
.iaf-config-item[open] .iaf-summary-meta i { transform: rotate(45deg); }
.iaf-item-form { padding: 16px; border-top: 1px solid var(--line); }
.compact-checkboxes { display: flex; flex-wrap: wrap; gap: 7px; }
.compact-checkboxes label { padding: 7px 9px; display: flex; align-items: center; gap: 6px; color: var(--muted-2); background: var(--paper); border-radius: 7px; font-size: 10px; }
.compact-checkboxes input { width: 15px; min-height: 15px; }
.add-model-item { margin-top: 14px; padding: 13px 15px; background: var(--surface); border-radius: 10px; }
.waterfall-panel .waterfall-kind { margin-bottom: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.waterfall-panel .waterfall-kind > summary { padding: 13px 15px; display: flex; justify-content: space-between; align-items: center; gap: 14px; list-style: none; cursor: pointer; }
.waterfall-panel .waterfall-kind > summary::-webkit-details-marker { display: none; }
.waterfall-panel .waterfall-kind > summary strong, .waterfall-panel .waterfall-kind > summary small { display: block; }
.waterfall-panel .waterfall-kind > summary small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.waterfall-panel .waterfall-kind[open] > summary i { transform: rotate(45deg); }
.waterfall-list { padding: 0 15px; display: grid; gap: 8px; }
.waterfall-number { min-width: 42px; color: var(--forest); font-size: 10px; }
.waterfall-panel .add-model-item { margin: 14px 15px 15px; }
.form-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.email-setup-panel { margin-bottom: 18px; }

/* Account cash bridge and scrollable ledger */
.account-stage-grid { padding: 0 24px 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: 11px; }
.account-stage-card { min-width: 0; padding: 16px; background: linear-gradient(145deg, var(--surface), var(--white)); border: 1px solid var(--line); border-radius: 12px; }
.account-stage-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.account-stage-heading > div { min-width: 0; }
.account-stage-heading strong, .account-stage-heading small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-stage-heading strong { margin-top: 8px; font-size: 12px; }
.account-stage-heading small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.account-stages { margin-top: 14px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.account-stages > div { min-width: 0; min-height: 116px; padding: 12px 10px; display: grid; grid-template-rows: 20px 25px minmax(28px, auto); align-content: start; background: white; }
.account-stages > div + div { border-left: 1px solid var(--line); }
.account-stages > div.observed { background: var(--green-bg-soft); }
.account-stages > div.negative { background: var(--red-bg); }
.account-stages span, .account-stages strong, .account-stages small { display: block; }
.account-stages span { color: var(--muted); font-size: 9px; font-weight: 700; }
.account-stages strong { margin: 4px 0; overflow: visible; font-size: 11px; letter-spacing: -.03em; white-space: nowrap; }
.account-stages small { min-height: 23px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.account-stage-bridge { margin-top: 10px; display: flex; justify-content: space-between; gap: 14px; color: var(--muted); font-size: 8px; }
.account-stage-bridge strong { margin-left: 3px; color: var(--ink); font-size: 9px; }

.movement-full-ledger { margin-bottom: var(--space-5); }
.cash-bridge-panel .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }

/* Movement classification workspace */
.movement-ledger-heading { min-height: 54px; padding: 11px 16px; display: flex; align-items: center; justify-content: flex-end; gap: 9px; border-bottom: 1px solid var(--line); }
.movement-ledger-tools { min-height: 58px; padding: 10px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--surface); border-top: 1px solid var(--line); }
.movement-suggestion-legend { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: var(--text-xs); }
.movement-suggestion { max-width: 100%; min-height: 27px; padding: 4px 8px; overflow: hidden; color: var(--muted-2); background: var(--surface); border: 1px dashed var(--line-strong); border-radius: 99px; cursor: pointer; font-size: var(--text-xs); font-weight: 650; line-height: 1.25; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.movement-suggestion:hover, .movement-suggestion:focus-visible { color: var(--forest); background: var(--green-bg-soft); border-color: var(--forest); outline: 0; }
.movement-suggestion.sample { display: inline-flex; align-items: center; cursor: default; }
.movement-bulk-form { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.movement-bulk-form > span { min-width: 98px; color: var(--muted-2); font-size: var(--text-xs); font-variant-numeric: tabular-nums; text-align: right; }
.movement-bulk-form select { width: 220px; min-height: var(--control-height-compact); height: var(--control-height-compact); padding-block: 6px; font-size: var(--text-xs); }
.movement-bulk-form .button:disabled { opacity: .45; cursor: not-allowed; }

.movement-table-wrap { border-top: 1px solid var(--line); }
.movement-table { min-width: 0; table-layout: fixed; }
.movement-table .movement-col-select { width: 38px; }
.movement-table .movement-col-status { width: 94px; }
.movement-table .movement-col-date { width: 82px; }
.movement-table .movement-col-account { width: 118px; }
.movement-table .movement-col-amounts { width: 132px; }
.movement-table .movement-col-type { width: 220px; }
.movement-table .movement-col-ipd { width: 122px; }
.movement-table .movement-col-actions { width: 72px; }
.movement-table th, .movement-table td { padding-inline: 10px; }
.movement-table th:first-child, .movement-table td:first-child { padding-inline: 8px 4px; }
.movement-table td { overflow: hidden; }
.movement-table tr.is-selected { background: var(--green-bg-soft); }
.movement-table-scroll { max-height: 430px; overflow-x: clip; overflow-y: auto; overscroll-behavior: contain; }
.movement-table-scroll thead th { position: sticky; top: 0; z-index: 4; box-shadow: 0 1px 0 var(--line); }
.movement-table-scroll tbody tr:last-child td { border-bottom: 1px solid var(--line); }
.movement-table-full { overflow-x: clip; }
.movement-select-cell { text-align: center; }
.movement-select-cell input { width: 16px; height: 16px; min-height: 0; accent-color: var(--forest); cursor: pointer; }
.movement-state { display: inline-grid; grid-template-columns: 7px minmax(0, 1fr); align-items: center; gap: 6px; color: var(--muted-2); font-size: var(--text-xs); font-weight: 700; line-height: 1.3; }
.movement-state i { width: 7px; height: 7px; display: block; background: var(--green-strong); border-radius: 50%; }
.movement-state.review { color: var(--red); }
.movement-state.review i { background: var(--red); }
.movement-table .description-cell { min-width: 0; }
.movement-table .description-cell strong { max-width: none; }
.movement-table .description-cell small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.allocation-count { margin-left: 6px; padding: 2px 5px; color: var(--forest); background: var(--mint); border-radius: 99px; font-size: var(--text-xs); font-weight: 750; }
.movement-amounts strong, .movement-amounts small, .movement-ipd-cell strong, .movement-ipd-cell small { display: block; }
.movement-amounts strong { color: var(--ink); font-size: var(--text-xs); }
.movement-amounts small, .movement-ipd-cell small { margin-top: 4px; color: var(--muted); font-size: var(--text-xs); }
.movement-type-cell { overflow: visible !important; }
.movement-type-cell > form + form { margin-top: 5px; }
.movement-type-form select { width: 100%; min-height: var(--control-height-compact); height: var(--control-height-compact); padding: 6px 30px 6px 8px; font-size: var(--text-xs); }
.movement-ipd-cell strong { font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.movement-actions-cell { overflow: visible !important; text-align: right; }
.movement-actions { position: relative; }
.movement-actions > summary { min-height: 31px; padding: 7px 9px; display: inline-flex; align-items: center; color: var(--forest); background: var(--mint); border-radius: var(--radius-s); list-style: none; cursor: pointer; font-size: var(--text-xs); font-weight: 750; }
.movement-actions > summary::-webkit-details-marker { display: none; }
.movement-actions .popout-panel { width: 380px; padding: 14px; position: absolute; right: 0; top: 38px; z-index: 30; display: grid; gap: 12px; color: var(--ink); text-align: left; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-m); box-shadow: var(--shadow-lift); }
.movement-popout-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.movement-popout-heading strong { font-size: var(--text-s); }
.movement-popout-heading span { color: var(--muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.movement-ipd-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.movement-ipd-actions form, .movement-ipd-actions .button { width: 100%; }
.movement-ipd-actions .button { min-height: 48px; height: 100%; padding: 7px; line-height: 1.25; white-space: normal; }
.movement-custom-ipd { padding-top: 10px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; align-items: end; border-top: 1px solid var(--line); }
.movement-custom-ipd label, .movement-split-editor label { display: grid; gap: 5px; color: var(--muted-2); font-size: var(--text-xs); font-weight: 700; }
.movement-custom-ipd input, .movement-split-editor input, .movement-split-editor select { min-height: var(--control-height-compact); height: var(--control-height-compact); padding-block: 6px; font-size: var(--text-xs); }
.movement-split-editor { padding-top: 10px; border-top: 1px solid var(--line); }
.movement-split-editor > summary { list-style: none; }
.movement-split-editor > summary::-webkit-details-marker { display: none; }
.movement-split-editor > form { margin-top: 10px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.movement-split-editor > form label:nth-of-type(2), .movement-split-editor > form .button { grid-column: 1 / -1; }

.movement-focus { margin-bottom: 18px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.movement-focus-copy { min-width: 0; }
.movement-description-block { max-width: 850px; margin-top: 10px; }
.movement-description-block > span { display: block; color: var(--muted); font-size: var(--text-xs); font-weight: 650; }
.movement-description-block p { margin: 4px 0 0; overflow-wrap: anywhere; color: var(--ink-soft); font-size: var(--text-m); line-height: 1.5; }
.movement-focus-amount { flex: 0 0 auto; text-align: right; }
.movement-focus-amount span, .movement-focus-amount strong { display: block; }
.movement-focus-amount span { color: var(--muted); font-size: var(--text-xs); }
.movement-focus-amount strong { margin-top: 7px; font-size: 24px; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.movement-allocations { margin-bottom: 18px; }
.movement-allocations .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: var(--text-xs); }
.movement-allocations td strong, .movement-allocations td small { display: block; }
.movement-allocations td small { margin-top: 3px; color: var(--forest); font-size: var(--text-xs); }
.movement-allocations .current-allocation { background: var(--green-bg-soft); }
.allocation-actions { width: 110px; text-align: right; }
.allocation-actions form { display: inline-flex; }
.movement-workspace-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr); gap: 18px; align-items: start; }
.movement-classification-panel .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: var(--text-xs); }
.movement-issues { margin: -2px 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 7px; list-style: none; }
.movement-issues li { padding: 7px 9px; display: inline-flex; align-items: center; gap: 7px; color: var(--amber-strong); background: var(--amber-bg-soft); border-radius: var(--radius-s); font-size: var(--text-xs); font-weight: 650; }
.movement-issues li.blocker { color: var(--red); background: var(--red-bg-soft); }
.movement-issues li > span { width: 6px; height: 6px; flex: 0 0 auto; background: currentColor; border-radius: 50%; }
.movement-allocation-warning { margin: -5px 0 18px !important; padding: 9px 11px; color: var(--red) !important; background: var(--red-bg-soft); border-radius: var(--radius-s); font-size: var(--text-xs); font-weight: 650; }
.classification-primary { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 13px; }
.detail-suggestion { justify-self: start; }
.movement-date-editor { padding-block: 18px; display: grid; gap: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.movement-form-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.movement-form-section-heading h3 { margin: 0; font-size: 13px; }
.movement-form-section-heading span { color: var(--muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.ipd-choice-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.date-choice { min-height: var(--control-height-compact); padding: 7px 9px; color: var(--muted-2); background: var(--white); border: 1px solid var(--line-strong); border-radius: var(--radius-s); cursor: pointer; font-size: var(--text-xs); font-weight: 700; }
.date-choice:hover, .date-choice.active { color: var(--forest); background: var(--green-bg-soft); border-color: var(--green-line); }
.classification-submit { display: flex; align-items: center; justify-content: flex-end; }
.movement-source-panel { position: sticky; top: 94px; }
.movement-source-facts { margin: 0; display: grid; }
.movement-source-facts div { padding: 11px 0; border-top: 1px solid var(--line); }
.movement-source-facts dt { color: var(--muted); font-size: var(--text-xs); font-weight: 650; }
.movement-source-facts dd { margin: 5px 0 0; overflow-wrap: anywhere; font-size: var(--text-xs); font-weight: 650; line-height: 1.4; }
.view-source-action { margin-top: 14px; }
.view-source-action > summary i svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.view-source-action[open] > summary i { transform: none; }
.view-source-action > pre { margin: 0 12px 12px; }

.toast.error { color: var(--white); background: var(--red); }

@media (max-width: 980px) {
  .movement-ledger-tools { align-items: stretch; flex-direction: column; }
  .movement-bulk-form { justify-content: flex-start; }
  .movement-bulk-form > span { text-align: left; }
  .movement-table-wrap { overflow-x: auto; }
  .movement-table { min-width: 1040px; }
  .movement-workspace-grid { grid-template-columns: 1fr; }
  .movement-source-panel { position: static; }
}

@media (max-width: 680px) {
  .movement-bulk-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .movement-bulk-form > span { grid-column: 1 / -1; }
  .movement-bulk-form select { width: 100%; }
  .movement-suggestion-legend { align-items: flex-start; }
  .movement-focus { align-items: flex-start; flex-direction: column; }
  .movement-focus-amount { text-align: left; }
  .classification-primary, .ipd-choice-row { grid-template-columns: 1fr; }
  .classification-submit { align-items: stretch; flex-direction: column; }
  .classification-submit .button { width: 100%; }
  .movement-actions .popout-panel { width: min(380px, calc(100vw - 24px)); }
  .movement-ipd-actions { grid-template-columns: 1fr; }
}

.cash-bridge-panel { margin-bottom: 18px; scroll-margin-top: 92px; }
.cash-bridge-wrap { padding: 0 24px 24px; }
.cash-bridge-table { min-width: 880px; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.cash-bridge-table th:first-child { width: 112px; }
.cash-bridge-table th:nth-child(2) { min-width: 285px; }
.cash-bridge-table th.number { min-width: 185px; }
.cash-bridge-table th small, .cash-bridge-table td small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; font-weight: 500; text-transform: none; letter-spacing: 0; }
.cash-bridge-table .bridge-phase td { padding: 8px 13px; color: var(--muted-2); background: var(--surface-2); font-size: 10px; font-weight: 700; }
.cash-bridge-table .bridge-total td { padding-top: 15px; padding-bottom: 15px; background: var(--surface); border-top: 1px solid var(--line-strong); }
.cash-bridge-table .bridge-total.intermediate td { background: var(--green-bg-soft); }
.cash-bridge-table .bridge-total.final td { color: var(--forest); background: var(--green-bg); border-top: 2px solid var(--green-line); }
.cash-bridge-table .negative-number { color: var(--red); }
.bridge-warnings { margin: -5px 24px 18px; padding: 10px 12px; display: grid; gap: 4px; color: var(--amber); background: var(--amber-bg); border-radius: 8px; font-size: 9px; }

.principal-rollforward { padding: 16px 24px; display: grid; grid-template-columns: repeat(4, minmax(140px, .75fr)) minmax(220px, 1.25fr); gap: 1px; background: var(--line); }
.principal-rollforward > div { min-width: 0; padding: 13px 15px; display: flex; flex-direction: column; background: var(--surface); }
.principal-rollforward span, .principal-rollforward strong, .principal-rollforward small { display: block; }
.principal-rollforward span { color: var(--muted); font-size: 9px; }
.principal-rollforward span i { margin-left: 5px; padding: 3px 5px; color: var(--muted-2); background: var(--line); border-radius: 5px; font-style: normal; font-size: 7px; white-space: nowrap; }
.principal-rollforward strong { margin-top: 7px; font-size: 14px; letter-spacing: -.02em; }
.principal-rollforward small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.principal-rollforward .pool-factor-result { background: var(--green-bg-soft); }
.principal-rollforward .pool-factor-result strong { color: var(--forest); font-size: 18px; }

/* Compact source inventory and clean states */
.acquisition-details { margin-top: 13px; }
.acquisition-list { margin-top: 10px; display: grid; }
.acquisition-list article { min-width: 0; padding: 9px 0; display: grid; grid-template-columns: 35px minmax(0, 1fr) auto; gap: 10px; align-items: center; border-top: 1px solid var(--line); }
.acquisition-list strong, .acquisition-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acquisition-list strong { font-size: 10px; }
.acquisition-list small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.expenses-table .status.info { padding: 0; color: var(--forest); background: transparent; border-radius: 0; }
.exception-list .muted-item { display: none; }
.scan-explainer { margin: -3px 0 18px; padding: 13px 15px; display: flex; justify-content: space-between; gap: 18px; align-items: center; background: var(--green-bg-soft); border-radius: 10px; }
.scan-explainer strong, .scan-explainer span { display: block; }
.scan-explainer strong { font-size: 11px; }
.scan-explainer span, .scan-explainer small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.definition-candidate-note { margin: 8px 0 0 !important; color: var(--muted) !important; font-size: 9px !important; }
.report-preview-heading { align-items: center; }
.report-preview-notice { margin-bottom: 14px; padding: 11px 14px; color: var(--amber-strong); background: var(--amber-bg); border-radius: 9px; font-size: 10px; }
.pdf-preview-shell { height: calc(100vh - 225px); min-height: 650px; padding: 10px; background: var(--ink); border-radius: 14px; box-shadow: var(--shadow); }
.pdf-preview-shell iframe { width: 100%; height: 100%; background: white; border: 0; border-radius: 8px; }

/* Calendar: definitions -> rules -> dates */
.calendar-section-nav { margin: -8px 0 18px; padding: 6px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; background: var(--surface-2); border-radius: 11px; }
.calendar-section-nav a { padding: 9px 12px; color: var(--muted-2); background: rgba(255,255,255,.65); border-radius: 7px; text-align: center; font-size: 10px; font-weight: 750; }
.calendar-section-nav a:hover { color: var(--forest); background: white; }
.calendar-overview { margin-bottom: 18px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; }
.calendar-overview > div { min-width: 0; padding: 17px 19px; display: grid; gap: 5px; }
.calendar-overview > div + div { border-left: 1px solid var(--line); }
.calendar-overview span, .calendar-overview small { color: var(--muted); font-size: 8px; }
.calendar-overview span { font-weight: 650; }
.calendar-overview strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.contract-hub { margin-bottom: 18px; scroll-margin-top: 92px; }
.contract-hub-grid { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(440px, 1.28fr); gap: 22px; align-items: start; }
.compact-document-upload { align-content: start; }
.compact-document-upload .button { width: 100%; }
.subheading { margin-bottom: 7px; display: flex; justify-content: space-between; color: var(--muted); font-size: 10px; font-weight: 650; }
.definition-candidates { min-width: 0; max-height: 405px; overflow-y: auto; overscroll-behavior: contain; }
.definition-candidate { min-width: 0; padding: 12px 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 15px; border-top: 1px solid var(--line); }
.definition-candidate strong, .definition-candidate small { display: block; }
.definition-candidate strong { font-size: 12px; }
.definition-candidate small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.definition-candidate p { margin: 8px 0 0; max-height: 96px; overflow-y: auto; color: var(--ink-soft); font-size: 9px; line-height: 1.5; }
.definition-actions form { display: flex; gap: 5px; }
.document-archive { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); }
.calendar-empty { padding: 28px 15px; display: grid; gap: 5px; color: var(--muted); background: var(--surface); border-radius: 9px; text-align: center; }
.calendar-empty strong { color: var(--ink); font-size: 11px; }
.calendar-empty span { font-size: 9px; }
.business-day-simple, .rules-panel, .schedule-clean { margin-bottom: 18px; scroll-margin-top: 92px; }
.business-day-simple .panel-heading, .rules-panel .panel-heading, .schedule-clean .panel-heading { align-items: center; }
.business-day-simple .panel-heading p, .rules-panel .panel-heading p, .schedule-clean .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.standard-calendar-grid { margin-bottom: 15px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.standard-calendar { min-width: 0; padding: 11px 12px; display: grid; grid-template-columns: 9px minmax(0, 1fr); gap: 9px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 9px; }
.standard-calendar.selected { background: var(--green-bg-soft); border-color: var(--green-line); }
.calendar-dot { width: 8px; height: 8px; background: var(--line-strong); border-radius: 50%; }
.standard-calendar.selected .calendar-dot { background: var(--forest); box-shadow: 0 0 0 3px var(--line-strong); }
.standard-calendar strong, .standard-calendar small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.standard-calendar strong { font-size: 11px; }
.standard-calendar small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.verified-definition { margin: 0 0 14px; padding: 13px 15px; background: var(--surface); border-radius: 9px; }
.verified-definition > span { color: var(--forest); font-size: 9px; font-weight: 750; }
.verified-definition blockquote { margin: 8px 0 5px; padding: 0; background: transparent; border: 0; font-size: 10px; line-height: 1.5; }
.verified-definition small { color: var(--muted); font-size: 8px; }
.calendar-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.calendar-choice-grid label { min-height: 54px; padding: 10px; display: grid; grid-template-columns: 17px minmax(0, 1fr); gap: 8px; align-items: center; color: var(--ink); background: var(--surface); border: 1px solid transparent; border-radius: 8px; cursor: pointer; }
.calendar-choice-grid label:has(input:checked) { background: var(--green-bg-soft); border-color: var(--green-line); }
.calendar-choice-grid input { width: 16px; min-height: 16px; }
.calendar-choice-grid strong, .calendar-choice-grid small { display: block; }
.calendar-choice-grid strong { font-size: 10px; }
.calendar-choice-grid small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.active-rule-list { display: grid; }
.active-rule-list article { min-width: 0; padding: 11px 0; display: grid; grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.2fr); gap: 15px; align-items: center; border-top: 1px solid var(--line); }
.active-rule-list strong, .active-rule-list small { display: block; }
.active-rule-list strong { font-size: 11px; }
.active-rule-list small, .active-rule-list span { margin-top: 3px; color: var(--muted); font-size: 8px; }
.disabled-choice { opacity: .58; cursor: not-allowed !important; }
.rule-builder { margin-top: 15px; padding: 14px; background: var(--surface); border-radius: 10px; }
.rule-builder > summary, .calendar-advanced > summary { display: flex; justify-content: space-between; align-items: center; gap: 15px; list-style: none; cursor: pointer; }
.rule-builder > summary::-webkit-details-marker, .calendar-advanced > summary::-webkit-details-marker { display: none; }
.rule-builder > summary strong, .rule-builder > summary small, .calendar-advanced > summary strong, .calendar-advanced > summary small { display: block; }
.rule-builder > summary strong, .calendar-advanced > summary strong { font-size: 11px; }
.rule-builder > summary small, .calendar-advanced > summary small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.rule-builder[open] > summary { padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.rule-builder[open] > summary i, .calendar-advanced[open] > summary i { transform: rotate(45deg); }
.rule-builder .guided-rule-form { margin-top: 15px; }
.rule-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.rule-form-grid .wide { grid-column: 1 / -1; }
.rule-calendar-choice { margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 9px; }
.rule-calendar-choice legend { padding: 0 6px; font-size: 10px; font-weight: 800; }
.pending-rule { margin-top: 10px; padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .5fr); gap: 15px; background: var(--amber-bg-soft); border: 1px solid var(--amber-line); border-radius: 9px; }
.pending-rule strong, .pending-rule small { display: block; }
.pending-rule strong { font-size: 10px; }
.pending-rule small { color: var(--muted); font-size: 8px; }
.pending-rule blockquote { margin: 6px 0; padding: 0; background: transparent; border: 0; font-size: 9px; }
.pending-rule form { display: grid; grid-template-columns: 1fr auto auto; gap: 6px; align-content: center; }
.schedule-list { max-height: 680px; padding-right: 6px; display: grid; overflow-y: auto; overscroll-behavior: contain; }
.schedule-row { min-width: 0; padding: 13px 0; display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 15px; align-items: center; border-top: 1px solid var(--line); }
.schedule-row > time { width: 58px; height: 48px; display: grid; place-content: center; text-align: center; background: var(--surface); border-radius: 9px; }
.schedule-row > time strong, .schedule-row > time span { display: block; }
.schedule-row > time strong { font-size: 17px; line-height: 1; }
.schedule-row > time span { margin-top: 3px; color: var(--muted); font-size: 7px; }
.schedule-copy strong, .schedule-copy small { display: block; }
.schedule-copy strong { font-size: 12px; }
.schedule-copy small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.schedule-action { display: flex; gap: 6px; align-items: center; }
.schedule-action .override-editor { position: relative; }
.schedule-action .override-editor > form { position: absolute; right: 0; z-index: 8; width: 280px; background: white; box-shadow: var(--shadow); }
.calendar-advanced { padding: 18px 20px; }
.calendar-advanced[open] > summary { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.advanced-calendar-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.advanced-calendar-grid h3 { margin-bottom: 5px; font-size: 14px; }
.advanced-calendar-grid > section > p { color: var(--muted); font-size: 9px; }
.custom-calendar-import { margin-top: 12px; padding: 12px; display: grid; grid-template-columns: minmax(120px, .7fr) minmax(220px, 1.3fr) minmax(150px, .8fr) auto; gap: 9px; align-items: end; background: var(--surface); border-radius: 10px; }
.custom-calendar-import > div { align-self: center; }
.custom-calendar-import strong, .custom-calendar-import small { display: block; }
.custom-calendar-import > div small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.file-drop.compact { min-height: 42px; padding: 7px 9px; }

.calendar-section-nav { grid-template-columns: repeat(2, 1fr); }
.deadlines-panel { margin-bottom: 18px; scroll-margin-top: 92px; }
.deadlines-panel > .panel-heading p, .deadline-rule-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.business-day-row { margin-bottom: 22px; padding: 13px 14px; position: relative; display: grid; grid-template-columns: minmax(150px, .7fr) minmax(420px, 2fr) auto; gap: 16px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }
.business-day-title strong, .business-day-title small { display: block; }
.business-day-title strong { font-size: 12px; }
.business-day-title small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.business-day-calendars { display: flex; flex-wrap: wrap; gap: 7px; }
.calendar-check { min-height: 32px; padding: 7px 9px; display: inline-flex; align-items: center; gap: 7px; color: var(--muted-2); background: white; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; font-size: 9px; font-weight: 700; }
.calendar-check:has(input:checked) { color: var(--forest); background: var(--green-bg-soft); border-color: var(--green-line); }
.calendar-check input { width: 14px; min-height: 14px; margin: 0; }
.business-day-definition { margin: 0; position: relative; }
.business-day-definition > summary { display: grid; place-items: center; list-style: none; cursor: pointer; }
.business-day-definition > summary::-webkit-details-marker { display: none; }

.business-day-definition-popover { width: min(520px, 82vw); padding: 14px; position: absolute; right: 0; top: 40px; z-index: 18; display: grid; gap: 10px; background: white; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
.business-day-definition-popover label { display: grid; gap: 5px; color: var(--ink-soft); font-size: 10px; font-weight: 720; }
.business-day-definition-popover textarea, .business-day-definition-popover input, .business-day-definition-popover select { width: 100%; }
.business-day-source { grid-column: 1 / -1; margin: -5px 0 0; padding-top: 10px; color: var(--ink-soft); border-top: 1px solid var(--line); font-size: 9px; line-height: 1.45; }
.business-day-source small { display: block; margin-top: 4px; color: var(--muted); }
.deadline-rule-heading { margin: 4px 0 9px; display: flex; justify-content: space-between; align-items: center; }
.deadline-rule-heading h3 { margin: 0; font-size: 15px; }
.schedule-heading { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.deadlines-panel .calendar-advanced { margin-top: 20px; padding: 15px 0 0; border-top: 1px solid var(--line); }

.column-heading { min-width: max-content; display: flex; justify-content: space-between; align-items: center; gap: 5px; }
.column-heading.number { justify-content: flex-end; }
.column-filter { position: relative; }
.column-filter > summary { width: 20px; height: 20px; display: grid; place-items: center; color: var(--muted); background: var(--surface-2); border-radius: 5px; list-style: none; cursor: pointer; font-size: 12px; }
.column-filter > summary::-webkit-details-marker { display: none; }
.column-filter[open] > summary { color: white; background: var(--forest); }
.column-filter-menu { width: 225px; padding: 10px; position: absolute; top: 26px; left: 0; z-index: 30; display: grid; gap: 9px; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: 9px; box-shadow: var(--shadow); text-align: left; text-transform: none; letter-spacing: 0; }
.column-heading.number .column-filter-menu, th:nth-last-child(-n+3) .column-filter-menu { right: 0; left: auto; }
.column-filter-menu.wide { width: 280px; }
.column-filter-menu label { display: grid; gap: 5px; color: var(--muted-2); font-size: 9px; font-weight: 700; }
.column-filter-menu input, .column-filter-menu select { min-height: var(--control-height-compact); height: var(--control-height-compact); padding: 7px 8px; font-size: 10px; }
.column-sort { display: grid; gap: 2px; padding-bottom: 7px; border-bottom: 1px solid var(--line); }
.column-sort a { padding: 5px 6px; color: var(--ink-soft); border-radius: 5px; font-size: 9px; font-weight: 650; }
.column-sort a:hover { background: var(--surface-2); }
.column-filter-actions { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.column-filter-actions > a { color: var(--muted); font-size: 9px; }
.plain-count { color: var(--muted); font-size: 10px; }

.payment-instruction-table { min-width: 850px; }
.instruction-expansion > summary { display: flex; align-items: center; gap: 7px; list-style: none; cursor: pointer; font-weight: 700; }
.instruction-expansion > summary::-webkit-details-marker { display: none; }
.instruction-expansion > summary::before { content: "⌄"; width: 20px; height: 20px; display: grid; place-items: center; color: var(--forest); background: var(--mint); border-radius: 5px; }
.instruction-expansion[open] > summary::before { transform: rotate(180deg); }
.instruction-expansion > summary span { padding: 2px 5px; color: var(--muted); background: var(--surface-2); border-radius: 5px; font-size: 8px; }
.instruction-children { min-width: 360px; margin-top: 9px; padding: 8px 10px; display: grid; gap: 7px; background: var(--surface); border-radius: 8px; }
.instruction-children article { display: flex; justify-content: space-between; gap: 14px; align-items: center; }
.instruction-children strong, .instruction-children small { display: block; }
.instruction-children strong { font-size: 9px; }
.instruction-children small { margin-top: 2px; color: var(--muted); font-size: 8px; font-weight: 400; }

.email-kind-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.email-kind-card { min-width: 0; display: grid; gap: 14px; }
.email-kind-heading { display: flex; justify-content: space-between; gap: 10px; align-items: start; }
.email-kind-heading h3 { margin: 0; font-size: 15px; }
.email-kind-heading p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.email-kind-summary { margin: 0; display: grid; gap: 8px; }
.email-kind-summary div { min-width: 0; }
.email-kind-summary dt { color: var(--muted); font-size: 9px; font-weight: 650; }
.email-kind-summary dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 9px; line-height: 1.4; }
.email-kind-card > details { padding-top: 10px; border-top: 1px solid var(--line); }
.email-kind-card > details > summary { color: var(--forest); cursor: pointer; font-size: 9px; font-weight: 750; }
.email-download { justify-self: stretch; }
.email-missing { color: var(--muted); font-size: 9px; }
.email-template-list { display: grid; gap: 8px; }
.email-template-item { border: 1px solid var(--line); border-radius: 10px; }
.email-template-item > summary { padding: 13px 15px; display: flex; justify-content: space-between; align-items: center; gap: 14px; list-style: none; cursor: pointer; }
.email-template-item > summary::-webkit-details-marker { display: none; }
.email-template-item > summary strong, .email-template-item > summary small { display: block; }
.email-template-item > summary small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.email-template-item[open] > summary i { transform: rotate(45deg); }
.email-template-item .email-template-form { margin: 0; padding: 15px; border-top: 1px solid var(--line); }
.mailing-list-heading { margin-bottom: 13px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.mailing-list-heading strong { color: var(--forest); font-size: 11px; }
.email-template-item .add-model-item { margin: 0 15px 15px; }

@media (max-width: 980px) {
  .workflow-steps { grid-template-columns: repeat(8, minmax(100px, 1fr)); overflow-x: auto; }
  .cash-position-note, .export-grid { grid-template-columns: 1fr; }
  .principal-rollforward { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .principal-rollforward .pool-factor-result { grid-column: 1 / -1; }
  .export-card { grid-template-columns: auto minmax(0, 1fr); }
  .export-card > .button, .export-card > .export-actions { grid-column: 1 / -1; }
  .dashboard-main-grid { grid-template-columns: 1fr; }
  .operation-row { grid-template-columns: minmax(180px, 1fr) repeat(2, minmax(120px, .7fr)) auto; }
  .operation-row .operation-signal:nth-of-type(n+4) { display: none; }
  .contract-hub-grid { grid-template-columns: 1fr; }
  .standard-calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rule-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .email-kind-grid { grid-template-columns: 1fr; }
  .business-day-row { grid-template-columns: minmax(140px, .6fr) minmax(280px, 1.4fr) auto; }
}

@media (max-width: 680px) {
  .topbar { min-height: 68px; height: auto; padding: 10px 16px 8px; display: grid; grid-template-columns: auto auto; gap: 7px 10px; }
  .brand { gap: 8px; }
  .brand-mark { width: 34px; height: 34px; border-radius: 9px; }
  .brand strong { font-size: 13px; }
  .brand small { display: none; }
  .topbar-nav { width: 100%; min-width: 0; padding-top: 5px; grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: 2px; overflow-x: auto; border-top: 1px solid var(--line); scrollbar-width: none; }
  .topbar-nav::-webkit-scrollbar { display: none; }
  .topbar nav a { padding: 7px 9px; flex: 0 0 auto; font-size: 10px; white-space: nowrap; }
  .topbar .nav-divider { display: none; }
  .session-chip { justify-self: end; }
  .session-name { display: none; }
  .session-identity { padding-right: 2px; }
  .definition-candidates { max-height: none; overflow: visible; }
  .gaia-balance-strip, .email-output-grid { grid-template-columns: 1fr; }
  .email-output-grid > div { border-right: 0 !important; border-bottom: 1px solid var(--line) !important; }
  .email-output-grid > div:last-child { border-bottom: 0 !important; }
  .eml-action, .export-card { align-items: stretch; flex-direction: column; }
  .export-card { display: flex; }
  .carry-forward-list article { grid-template-columns: 1fr auto; }
  .carry-forward-list details { grid-column: 1 / -1; }
  .carry-release-form { width: 100%; position: static; grid-template-columns: 1fr; }
  .account-stage-grid { grid-template-columns: 1fr; }
  .account-stages { grid-template-columns: 1fr; }
  .account-stages > div + div { border-top: 1px solid var(--line); border-left: 0; }
  .account-stage-bridge { align-items: flex-start; flex-direction: column; gap: 4px; }
  .principal-rollforward { grid-template-columns: 1fr; }
  .principal-rollforward .pool-factor-result { grid-column: auto; }
  .dashboard-head { align-items: stretch; flex-direction: column; }
  .portfolio-summary { width: 100%; justify-content: space-between; gap: 10px; }
  .portfolio-summary > div { min-width: 0; grid-template-columns: 1fr; gap: 2px; }
  .portfolio-summary > div + div { padding-left: 10px; }
  .operation-row { grid-template-columns: 1fr auto; }
  .operation-row .operation-signal { display: none; }
  .dashboard-create { grid-template-columns: 1fr; }
  .searchable-select { grid-template-columns: 1fr; }
  .scan-explainer { align-items: flex-start; flex-direction: column; }
  .calendar-section-nav { grid-template-columns: repeat(2, 1fr); }
  .calendar-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-overview > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .calendar-overview > div:nth-child(4) { border-top: 1px solid var(--line); }
  .calendar-choice-grid, .rule-form-grid, .advanced-calendar-grid { grid-template-columns: 1fr; }
  .business-day-row { grid-template-columns: 1fr auto; }
  .business-day-calendars { grid-column: 1 / -1; }
  .active-rule-list article { grid-template-columns: 1fr; gap: 3px; }
  .pending-rule { grid-template-columns: 1fr; }
  .pending-rule form { grid-template-columns: 1fr; }
  .schedule-row { grid-template-columns: 58px minmax(0, 1fr); }
  .schedule-action { grid-column: 1 / -1; }
}

/* Lavorazioni */
.board-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 18px; }
.board-kpi { padding: 15px 17px; display: flex; flex-direction: column; gap: 6px; background: var(--white); border: 1px solid var(--line); border-radius: 13px; }
.board-kpi span { color: var(--muted); font-size: 11px; font-weight: 650; }
.board-kpi strong { font-size: 27px; line-height: 1; letter-spacing: -.04em; }
.board-kpi.alert { background: var(--red-bg-soft); border-color: var(--red-line); }
.board-kpi.alert strong { color: var(--red); }
.board-kpi.due { background: var(--amber-bg-soft); border-color: var(--amber-line); }

.filters .checkbox-filter { display: flex; align-items: center; gap: 8px; padding-bottom: 11px; }
.filters .checkbox-filter input { width: 17px; height: 17px; min-height: 0; }
.board-tabs { margin: 0 0 14px; grid-template-columns: repeat(2, 1fr); }
.board-tabs a { display: flex; justify-content: center; align-items: center; gap: 8px; font-size: 12px; }
.board-tabs em { padding: 2px 8px; background: var(--surface-2); border-radius: 99px; font-size: 10px; font-style: normal; }
.board-second-table { margin-top: 18px; }

.board-table { min-width: 1040px; table-layout: fixed; }
.board-date { width: 104px; white-space: nowrap; }
.board-date strong, .board-date small, .board-operation strong, .board-operation small { display: block; }
.board-date strong { font-size: 12px; }
.board-date small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.board-date.overdue strong, .board-date.overdue small { color: var(--red); }
.board-operation { width: 168px; }
.board-operation strong { font-size: 12px; }
.board-operation small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.deliverable-tag { padding: 4px 8px; display: inline-block; color: var(--muted-2); background: var(--surface-2); border-radius: 6px; font-size: 10px; font-weight: 750; white-space: nowrap; }
.deliverable-tag.payment_report { color: var(--green-strong); background: var(--green-bg); }
.deliverable-tag.investor_report { color: var(--blue); background: var(--blue-bg); }
.deliverable-tag.reconciliation { color: var(--teal); background: var(--teal-bg); }

.person { display: flex; align-items: center; gap: 8px; }
.person i { width: 27px; height: 27px; display: grid; place-items: center; flex: 0 0 auto; color: var(--ink-soft); background: var(--surface-2); border-radius: 50%; font-size: 9px; font-weight: 800; font-style: normal; }
.person span { font-size: 11px; font-weight: 650; }
.person.unassigned i { color: var(--muted); background: transparent; border: 1px dashed var(--line-strong); }
.person.unassigned span { color: var(--muted); font-weight: 500; }
.assignment-inline { display: flex; align-items: center; gap: 7px; }
.self-assignment { margin: 0; }
.assignment-claim { min-height: 32px; padding: 4px 9px 4px 5px; display: inline-flex; align-items: center; gap: 7px; color: var(--muted-2); background: transparent; border: 1px dashed var(--line-strong); border-radius: var(--radius-s); cursor: pointer; font-size: 10px; font-weight: 650; }
.assignment-claim i { width: 21px; height: 21px; display: grid; place-items: center; color: var(--forest); background: var(--mint); border-radius: 6px; font-size: 14px; font-style: normal; line-height: 1; }
.assignment-claim:hover, .assignment-claim:focus-visible { color: var(--forest); border-color: var(--forest); outline: 0; }
.assignment-release { width: 28px; height: 28px; padding: 0; display: grid; place-items: center; color: var(--red); background: transparent; border: 0; border-radius: 7px; cursor: pointer; }
.assignment-release:hover, .assignment-release:focus-visible { background: var(--red-bg); outline: 0; }
.assignment-release svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.work-status { padding: 5px 10px; display: inline-flex; align-items: center; border-radius: 99px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.work-status.not_started, .work-status.to_verify { color: var(--muted); background: var(--surface-2); }
.work-status.in_progress { color: var(--forest); background: var(--mint); }
.work-status.waiting_data, .work-status.waiting_draft_ok, .work-status.waiting { color: var(--amber); background: var(--amber-bg); }
.work-status.check_requested { color: var(--blue); background: var(--blue-bg); }
.work-status.check_ok { color: var(--forest); background: var(--mint); }
.work-status.to_sign { color: var(--violet); background: var(--violet-bg); }
.work-status.sent, .work-status.ok { color: var(--green-strong); background: var(--green-bg); }
.work-status.not_ok { color: var(--red); background: var(--red-bg); }

.board-kind { width: 108px; }
.board-person { width: 126px; }
.board-state { width: 118px; }
.board-next { width: 178px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.board-next strong { display: block; margin-bottom: 3px; color: var(--ink); font-size: 11px; font-weight: 700; }
.work-suggestion { margin-top: 7px; }
.work-suggestion button { padding: 5px 9px; color: var(--forest); background: var(--mint); border: 0; border-radius: 7px; cursor: pointer; font-size: 10px; font-weight: 750; text-align: left; }
.work-suggestion button:hover { color: white; background: var(--forest); }

.board-action { width: 118px; text-align: right; white-space: nowrap; }
.board-action .button { min-height: 30px; padding: 0 10px; font-size: 11px; }
.board-open-cycle { width: 30px; height: 30px; display: inline-grid; place-items: center; color: var(--muted-2); border: 1px solid var(--line); border-radius: var(--radius-s); vertical-align: top; }
.board-open-cycle:hover, .board-open-cycle:focus-visible { color: var(--forest); background: var(--surface); border-color: var(--green-line); outline: 0; }
.board-open-cycle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.work-editor { position: relative; display: inline-block; margin-left: 6px; }
.work-editor > summary { width: 30px; height: 30px; display: inline-grid; place-items: center; color: var(--forest); background: transparent; border: 1px solid var(--green-line); border-radius: 8px; list-style: none; cursor: pointer; }
.work-editor > summary::-webkit-details-marker { display: none; }
.work-editor > summary:hover, .work-editor > summary:focus-visible { background: var(--mint); outline: 0; }
.work-editor > summary svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.work-editor .popout-panel { width: 340px; max-height: min(560px, calc(100vh - 40px)); padding: 15px; position: absolute; right: 0; top: 36px; z-index: 40; display: grid; gap: 12px; overflow-y: auto; overscroll-behavior: contain; text-align: left; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 48px rgba(24, 42, 35, 0.16); }
.work-editor .work-archive { margin: 0; padding-top: 12px; display: flex; justify-content: flex-end; border-top: 1px solid var(--line); }
.work-editor .edit-form { gap: 12px; }
.work-editor input, .work-editor select { min-height: var(--control-height-compact); height: var(--control-height-compact); padding: 8px 9px; font-size: 12px; }

.board-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-top: 20px; align-items: start; }
.board-tools > details { height: 100%; }
.board-tools .form-hint { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.board-search-form { height: 36px; display: flex; align-items: center; overflow: hidden; background: var(--white); border: 1px solid var(--line-strong); border-radius: var(--radius-s); }
.board-search-form:focus-within { border-color: var(--forest); box-shadow: 0 0 0 2px var(--mint); }
.board-search-form label { display: block; }
.board-search-form input { width: 148px; min-height: 34px; height: 34px; padding: 7px 4px 7px 10px; border: 0; outline: 0; font-size: 11px; }
.board-search-form button { width: 34px; height: 34px; padding: 0; display: grid; place-items: center; color: var(--muted-2); background: transparent; border: 0; cursor: pointer; }
.board-search-form button:hover { color: var(--forest); }
.board-search-form svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.column-heading { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.column-filter { width: 24px; height: 24px; position: relative; display: inline-grid; place-items: center; flex: 0 0 auto; border-radius: 6px; }
.column-filter:hover, .column-filter.active { color: var(--forest); background: var(--mint); }
.column-filter select { min-width: 0; width: 24px; height: 24px; min-height: 0; position: absolute; inset: 0; z-index: 2; cursor: pointer; opacity: .001; }
.column-filter svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; pointer-events: none; }
.work-archive-panel { margin-top: var(--space-5); }
.archive-list { display: grid; }
.archive-list > article { padding: 13px 0; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); border-top: 1px solid var(--line); }
.archive-list > article:first-child { border-top: 0; }
.archive-list strong, .archive-list small { display: block; }
.archive-list strong { font-size: var(--text-s); }
.archive-list small { margin-top: 4px; color: var(--muted); font-size: var(--text-xs); line-height: 1.45; }
.archive-actions { display: flex; align-items: center; gap: 7px; }
.archive-delete { position: relative; }
.archive-delete > summary { width: 35px; height: 35px; display: grid; place-items: center; color: var(--red); background: transparent; border-radius: var(--radius-s); list-style: none; }
.archive-delete > summary:hover { background: var(--red-bg); }
.archive-delete > summary::-webkit-details-marker { display: none; }
.archive-delete > summary svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.archive-delete > form { width: 280px; padding: 12px; position: absolute; right: 0; top: 41px; z-index: 20; display: grid; gap: 10px; background: var(--white); border: 1px solid var(--red-line); border-radius: var(--radius-m); box-shadow: var(--shadow); }
.archive-delete label { display: grid; gap: 5px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 650; }
.member-list { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 15px; }
.member-list article { padding: 6px 11px 6px 6px; display: flex; align-items: center; gap: 8px; background: var(--paper); border-radius: 99px; font-size: 11px; font-weight: 650; }
.member-list i { width: 24px; height: 24px; display: grid; place-items: center; color: var(--ink-soft); background: var(--white); border-radius: 50%; font-size: 9px; font-weight: 800; font-style: normal; }

@media (max-width: 1080px) {
  .board-kpis { grid-template-columns: repeat(2, 1fr); }
}

/* Consegna e siglatura */
.issue-panel { margin-bottom: 14px; }
.issue-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; padding: 15px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.issue-summary span, .issue-summary strong, .issue-summary small { display: block; }
.issue-summary span { margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 650; }
.issue-summary strong { font-size: 13px; line-height: 1.35; }
.issue-summary small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.issue-reason { margin: 14px 0 0; padding: 11px 13px; background: var(--paper); border-radius: 9px; font-size: 11px; line-height: 1.5; }
.issue-reason strong { margin-right: 6px; color: var(--forest); }
.issue-actions { margin-top: 15px; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.issue-actions form { display: flex; align-items: flex-end; gap: 10px; }
.inline-form { flex: 1; min-width: 280px; margin: 0; display: flex; align-items: flex-end; gap: 10px; }
.inline-form label { flex: 1; }
.issue-history { margin: 16px 0 0; padding: 0 0 0 18px; display: grid; gap: 8px; font-size: 11px; }
.issue-history strong, .issue-history span, .issue-history small { display: block; }
.issue-history span { margin-top: 2px; color: var(--muted); font-size: 10px; }
.issue-history small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.signature-list { display: grid; gap: 9px; margin-bottom: 18px; }
.signature-list article { padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; gap: 18px; border: 1px solid var(--line); border-radius: 11px; }
.signature-list strong, .signature-list small, .signature-list code { display: block; }
.signature-list strong { font-size: 13px; }
.signature-list small { margin: 4px 0; color: var(--muted); font-size: 10px; }
.signature-list code { color: var(--muted); font-size: 10px; font-family: inherit; font-style: italic; }
.signature-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.signature-form { max-width: 720px; }
.signature-buttons { display: flex; justify-content: flex-end; gap: 8px; }
.signature-proof .facts { margin-bottom: 18px; }
.signature-proof code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; word-break: break-all; }
.signature-statement { margin: 0 0 18px; padding: 14px 16px; color: var(--ink-soft); background: var(--paper); border: 1px solid var(--green-line); border-radius: 9px; font-size: 13px; }
.signature-upload { display: grid; gap: 9px; margin-top: 14px; }
.signature-upload .file-drop { padding: 11px; }
.member-card { position: relative; }
.member-card > summary { padding: 6px 12px 6px 6px; display: flex; align-items: center; gap: 8px; background: var(--paper); border-radius: 99px; list-style: none; font-size: 11px; font-weight: 650; }
.member-card > summary::-webkit-details-marker { display: none; }
.member-card > summary i { width: 24px; height: 24px; display: grid; place-items: center; color: var(--ink-soft); background: var(--white); border-radius: 50%; font-size: 9px; font-weight: 800; font-style: normal; }
.member-card > form { width: 290px; padding: 14px; position: absolute; left: 0; top: 42px; z-index: 9; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.work-status.to_send { color: var(--teal); background: var(--teal-bg); }

/* Disclosure system: one look for every toggle icon */
.dashboard-create summary i,
.board-tools summary i,
.rule-builder > summary i,
.calendar-advanced > summary i,
.waterfall-panel .waterfall-kind > summary i,
.email-template-item > summary i,
.iaf-summary-meta i,
.expand-copy > i,
.business-day-definition > summary i,
.add-model-item > summary i,
.error-entry > summary i,
.definition-archive > summary i {
  width: 26px; height: 26px; display: grid; place-items: center; flex: 0 0 auto;
  color: var(--forest); background: var(--mint); border-radius: 8px;
  font-style: normal; font-size: 16px; font-weight: 650; line-height: 1;
  transition: transform .15s ease;
}
.board-tools details[open] > summary i,
.business-day-definition[open] > summary i,
.add-model-item[open] > summary i,
.error-entry[open] > summary i,
.definition-archive[open] > summary i { transform: rotate(45deg); }
.add-model-item > summary,
.error-entry > summary,
.definition-archive > summary {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  list-style: none; cursor: pointer; color: var(--ink); font-size: 12px; font-weight: 720;
}
.add-model-item > summary::-webkit-details-marker,
.error-entry > summary::-webkit-details-marker,
.definition-archive > summary::-webkit-details-marker { display: none; }
.add-model-item > form { margin-top: 14px; }
.definition-archive { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--line); }
.definition-archive > summary { color: var(--muted); font-weight: 650; }

/* Accesso, utenze e area tecnica */
.session-chip { display: flex; align-items: center; gap: 10px; }
.session-identity { display: flex; align-items: center; gap: 9px; padding: 5px 9px 5px 5px; border-radius: 99px; }
.session-identity:hover { background: var(--paper); }
.session-initials { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; color: var(--forest); background: var(--mint); border-radius: 50%; font-size: 12px; font-weight: 800; letter-spacing: -.02em; }
.session-name strong, .session-name small { display: block; }
.session-name strong { font-size: 13px; }
.session-name small { margin-top: 1px; color: var(--muted); font-size: 10px; font-weight: 650; }

.login-body { min-height: 100vh; display: grid; background: var(--paper); }
.login-stage { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); min-height: 100vh; }
.login-intro { padding: 64px max(40px, 6vw); display: flex; flex-direction: column; justify-content: center; gap: 14px; background: radial-gradient(circle at 88% 8%, var(--green-strong) 0, transparent 34%), linear-gradient(130deg, var(--forest-2), var(--forest)); color: white; }
.login-intro h1 { max-width: 12ch; margin: 26px 0 0; font-size: clamp(34px, 3.6vw, 52px); }
.login-intro .lede { max-width: 46ch; color: var(--line-strong); font-size: 17px; line-height: 1.55; }
.login-intro .login-note { max-width: 44ch; margin: 0; color: var(--green-line); font-size: 12px; line-height: 1.6; }
.brand.light strong { color: white; font-size: 15px; }
.brand.light .brand-mark { color: var(--forest); background: white; }
.login-panel { display: grid; place-items: center; padding: 48px 32px; }
.login-card { width: min(400px, 100%); padding: 34px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); }
.login-card h2 { margin-bottom: 6px; font-size: 26px; letter-spacing: -.035em; }
.login-card > p { margin-bottom: 22px; color: var(--muted); font-size: 13px; }
.login-card .edit-form { margin-bottom: 14px; }
.login-card .alert { font-size: 12px; }
@media (max-width: 900px) {
  .login-stage { grid-template-columns: 1fr; }
  .login-intro { padding: 44px 28px; }
  .login-intro h1 { font-size: 30px; }
}

.narrow-panel { max-width: 520px; }
.approval-pending { margin: 0; padding: 10px 13px; color: var(--ink-soft); background: var(--mint); border-radius: 9px; font-size: 11px; font-weight: 650; line-height: 1.45; }
.account-grid { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); gap: 18px; align-items: start; }
.users-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); gap: 18px; align-items: start; }
.developer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; align-items: start; margin-bottom: 18px; }
.developer-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 18px; align-items: start; margin: 18px 0; }
@media (max-width: 1080px) {
  .account-grid, .users-grid { grid-template-columns: 1fr; }
}

.credential-card { margin-bottom: 18px; padding: 24px 26px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 26px; align-items: center; background: var(--green-bg-soft); border: 1px solid var(--green-line); border-radius: 16px; }
.credential-card h2 { margin: 4px 0 6px; }
.credential-label { margin: 0 0 5px !important; color: var(--forest) !important; font-size: var(--text-xs) !important; font-weight: 800; }
.credential-card p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.5; }
.credential-card dl { margin: 0; display: grid; gap: 10px; }
.credential-card dt { color: var(--muted); font-size: 11px; font-weight: 650; }
.credential-card dd { margin: 3px 0 0; font-size: 15px; font-weight: 750; }
.credential-secret { padding: 7px 11px; background: white; border: 1px solid var(--green-line); border-radius: 8px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .04em; user-select: all; }
@media (max-width: 760px) { .credential-card { grid-template-columns: 1fr; } }

.mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.inline-form { display: flex; gap: 6px; align-items: center; }
.inline-form select { min-width: 130px; height: var(--control-height-compact); min-height: var(--control-height-compact); padding: 0 8px; font-size: 12px; }
.row-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.role-legend { margin-top: 20px; padding-top: 16px; display: grid; gap: 10px; border-top: 1px solid var(--line); }
.role-legend strong, .role-legend span { display: block; }
.role-legend strong { font-size: 12px; }
.role-legend span { margin-top: 2px; color: var(--muted); font-size: 11px; line-height: 1.45; }

.count-grid { margin-top: 18px; padding-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; border-top: 1px solid var(--line); }
.count-grid div { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-size: 12px; }
.count-grid span { color: var(--muted); }
.count-grid strong { font-weight: 750; }
.corrupted-list { margin: 12px 0; padding: 12px; display: grid; gap: 5px; list-style: none; color: var(--red); background: var(--red-bg); border-radius: 9px; }
.developer-grid .breakdown dd { min-width: 0; overflow-wrap: anywhere; text-align: right; }
.developer-grid .breakdown dt { flex: 0 0 auto; }
.developer-grid form { margin-top: 16px; }
.padded-form { padding: 20px 25px 25px; }

.error-list { display: grid; }
.error-entry { padding: 15px 25px; border-bottom: 1px solid var(--line); }
.error-entry:last-child { border-bottom: 0; }
.error-entry > summary small { display: block; margin-top: 3px; color: var(--muted); font-weight: 600; }
.error-entry > p { margin: 12px 0 0; color: var(--red); font-size: 12px; }
.error-entry pre { max-height: 260px; margin: 10px 0 0; padding: 12px; overflow: auto; color: var(--ink-soft); background: var(--paper); border-radius: 9px; font-size: 10px; line-height: 1.5; }
.empty-note { margin: 0; padding: 22px 25px; color: var(--muted); font-size: 12px; }
.route-table { max-height: 460px; overflow-y: auto; }
.route-table th { position: sticky; top: 0; z-index: 1; }

.capslock-hint { color: var(--amber-strong); font-weight: 700; }

.welcome-stage { max-width: 560px; margin: 0 auto; display: grid; gap: 22px; }
.welcome-heading { text-align: center; display: grid; gap: 10px; }
.welcome-heading h1 { margin: 0; font-size: 34px; letter-spacing: -.02em; }
.welcome-heading .lede { margin: 0; color: var(--muted-2); font-size: 15px; line-height: 1.55; }
.welcome-panel { padding: 26px; }
.password-rules { margin: 0 0 6px; padding: 14px 16px; display: grid; gap: 7px; list-style: none; background: var(--surface); border-radius: var(--radius-m); }
.password-rules li { padding-left: 22px; position: relative; color: var(--muted-2); font-size: 13px; }
.password-rules li::before { content: ""; width: 12px; height: 12px; position: absolute; left: 0; top: 3px; border: 2px solid var(--line-strong); border-radius: 50%; }
.password-rules li.ok { color: var(--green-strong); }
.password-rules li.ok::before { border-color: var(--green-strong); background: var(--green-strong); }
.welcome-capabilities { margin-top: 4px; padding: 14px 16px; background: var(--green-bg-soft); border-radius: var(--radius-m); }
.welcome-capabilities p { margin: 0 0 6px; color: var(--green-strong); font-size: var(--text-xs); font-weight: 750; }
.welcome-capabilities ul { margin: 0; padding: 0 0 0 18px; display: grid; gap: 5px; color: var(--ink-soft); font-size: 13px; }

.activity-list { display: grid; }
.activity-row { padding: 12px 0; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.activity-row + .activity-row { border-top: 1px solid var(--line); }
.activity-row strong { display: block; font-size: 14px; }
.activity-row small { display: block; margin-top: 3px; color: var(--muted); }
.activity-row a { color: var(--green-strong); font-size: var(--text-s); font-weight: 700; flex-shrink: 0; }

.account-side { display: grid; gap: 18px; align-content: start; }
.inline-upload { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.inline-upload input[type="file"] { min-width: 0; flex: 1 1 220px; }
.identity-note { padding: 0 6px; color: var(--muted); }
.identity-note dl { margin: 0; display: grid; gap: 6px; }
.identity-note div { display: flex; gap: 8px; font-size: var(--text-s); }
.identity-note dt::after { content: ":"; }
.identity-note dd { margin: 0; }

.attention-grid { margin-bottom: 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.attention-card { padding: 16px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m); }
.attention-card.warning { background: var(--amber-bg-soft); border-color: var(--amber-line); }
.attention-card h3 { margin: 0 0 4px; font-size: 14px; }
.attention-card > p { margin: 0 0 10px; color: var(--muted-2); font-size: var(--text-s); }
.attention-row { padding: 9px 0; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); border-top: 1px solid var(--line); }
.attention-row small { display: block; margin-top: 2px; color: var(--muted); }
.users-filters { margin: 0; padding: 14px 20px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }

.whats-new { margin-bottom: 18px; }
.whats-new-milestones { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.whats-new-milestone { padding: 12px 14px; background: var(--green-bg-soft); border-radius: var(--radius-m); display: grid; gap: 3px; }
.whats-new-milestone:hover { background: var(--green-bg); }
.whats-new-milestone strong { color: var(--green-strong); font-size: 13px; }
.whats-new-milestone small { color: var(--muted-2); }
.whats-new-cycles { margin-top: 10px; display: grid; }
.whats-new-row { padding: 10px 2px; display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); border-top: 1px solid var(--line); font-weight: 600; font-size: 14px; }
.whats-new-row:hover span { color: var(--green-strong); }
.whats-new-row small { color: var(--muted); font-weight: 400; }

.env-list { margin-bottom: 14px; display: grid; }
.env-row { padding: 8px 2px; display: flex; align-items: baseline; gap: var(--space-3); font-size: var(--text-s); border-top: 1px solid var(--line); }
.env-row:first-child { border-top: 0; }
.env-row span { color: var(--muted-2); }
.env-row strong { margin-left: auto; font-weight: 600; word-break: break-all; text-align: right; }
.env-row small { margin-left: auto; color: var(--muted); }
.env-row .warning-note { margin-left: 8px; }
.warning-note { color: var(--amber-strong); font-weight: 700; }
.inspect-list { display: grid; }
.inspect-row { padding: 11px 2px; display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); border-top: 1px solid var(--line); font-weight: 600; font-size: 14px; }
.inspect-row:first-child { border-top: 0; }
.inspect-row:hover span { color: var(--green-strong); }
.inspect-row small { color: var(--muted); font-weight: 400; }
.inspect-panel { display: grid; gap: 0; }
.inspect-section { border-top: 1px solid var(--line); }
.inspect-section:first-child { border-top: 0; }
.inspect-section summary { padding: 13px 2px; display: flex; align-items: center; justify-content: space-between; font-size: 13px; }
.inspect-section pre { margin: 0 0 14px; padding: 14px; max-height: 420px; overflow: auto; background: var(--surface); border-radius: var(--radius-m); font-size: 12px; }
.traceback { padding: 16px; overflow: auto; background: var(--surface); border-radius: var(--radius-m); font-size: 12px; line-height: 1.5; }

.note-class-list { display: grid; gap: 10px; }
.model-item { border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.model-item > summary { padding: 13px 15px; display: flex; align-items: center; justify-content: space-between; gap: 11px; list-style: none; cursor: pointer; }
.model-item > summary::-webkit-details-marker { display: none; }
.model-item > summary strong { display: block; font-size: 14px; }
.model-item > summary small { display: block; margin-top: 3px; color: var(--muted); }
.model-item > form { padding: 0 15px 15px; }
.class-proposals { margin-bottom: 14px; display: grid; gap: 12px; }
.class-proposal { padding: 15px 17px; display: grid; gap: 12px; background: var(--green-bg-soft); border: 1px solid var(--green-line); border-radius: var(--radius-m); }
.class-proposal.muted-proposal { background: var(--surface); border-color: var(--line); }
.class-proposal-copy strong { font-size: 14px; }
.class-proposal-copy small { display: block; margin-top: 2px; color: var(--muted-2); }
.class-proposal-copy blockquote { margin: 8px 0 0; padding: 9px 12px; background: var(--white); border-color: var(--green-line); border-radius: 8px; color: var(--muted-2); font-size: var(--text-s); line-height: 1.5; }

.servicer-panel { display: grid; gap: 14px; }
.servicer-reconciliation { padding: 14px 16px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; background: var(--green-bg-soft); border-radius: var(--radius-m); }
.servicer-reconciliation.review { background: var(--amber-bg-soft); }
.servicer-reconciliation span { display: block; color: var(--muted-2); font-size: var(--text-xs); font-weight: 700; }
.servicer-reconciliation strong { display: block; margin-top: 4px; font-size: 16px; font-variant-numeric: tabular-nums; }
.servicer-reconciliation small { display: block; margin-top: 2px; color: var(--muted); }
.servicer-proposal { padding: 16px; display: grid; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m); }
.servicer-proposal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.servicer-proposal-head small { display: block; margin-top: 3px; color: var(--muted); }
.servicer-proposal-actions { display: flex; gap: var(--space-2); flex-shrink: 0; }
.servicer-checks { display: grid; gap: 5px; font-size: var(--text-s); }
.servicer-checks .matched-line { color: var(--green-strong); }
.servicer-checks .warning { color: var(--amber-strong); }

.investor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.investor-checks { padding: 2px 0 4px; }
.investor-actions { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.investor-actions .disabled { opacity: .45; pointer-events: none; }
.investor-format-tables { margin: 14px 0 4px; display: grid; }
.investor-format-row { padding: 10px 2px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); border-top: 1px solid var(--line); }
.investor-format-row small { display: block; margin-top: 2px; color: var(--muted); }
.investor-setup-panel .upload-form { margin-bottom: 14px; }
.scan-sheet + .scan-sheet { margin-top: 18px; }
@media (max-width: 900px) { .investor-grid { grid-template-columns: 1fr; } }

nav a.active { background: var(--paper); color: var(--ink); }
.topbar-search { margin-left: 4px; }
.topbar-search input { width: 184px; padding: 8px 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 999px; font-size: 13px; transition: background .15s ease, box-shadow .15s ease; }
.topbar-search input:focus { background: var(--white); outline: 2px solid var(--green-line); outline-offset: 0; }
.search-group { margin-bottom: 16px; }
.search-list { display: grid; }
.search-row { padding: 12px 20px; display: grid; gap: 3px; border-top: 1px solid var(--line); }
.search-row:hover strong { color: var(--green-strong); }
.search-row small { color: var(--muted); }
.review-grid { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.review-approve { margin-top: 12px; display: flex; gap: var(--space-2); }
.review-approve input { flex: 1; }
.review-numbers { margin-top: 14px; padding-top: 14px; display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; border-top: 1px solid var(--line); }
.review-numbers span { display: block; color: var(--muted); font-size: var(--text-xs); font-weight: 700; }
.review-numbers strong { display: block; margin-top: 4px; font-size: 15px; font-variant-numeric: tabular-nums; }
table td.number, table th.number { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 900px) { .review-grid { grid-template-columns: 1fr; } .topbar-search { display: none; } }

/* Rifiniture trasversali e nuovi stati operativi */
::selection { color: var(--white); background: var(--forest); }
* { scrollbar-color: var(--line-strong) transparent; scrollbar-width: thin; }
:focus-visible { outline: 3px solid var(--green-line); outline-offset: 2px; }
.skip-link { padding: 9px 13px; position: fixed; left: 12px; top: 10px; z-index: 100; color: var(--white); background: var(--forest-2); border-radius: var(--radius-s); transform: translateY(-160%); transition: transform .16s ease-out; }
.skip-link:focus { transform: translateY(0); }
.sr-only { width: 1px; height: 1px; padding: 0; position: absolute; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.shell > .panel + .panel { margin-top: var(--space-5); }
.button:disabled { opacity: .48; cursor: not-allowed; }
.button.danger { color: var(--white); background: var(--red); }
.button.danger:hover { background: var(--red-strong); }
.text-button { padding: 0; color: var(--forest); background: transparent; border: 0; cursor: pointer; font-size: 10px; font-weight: 700; text-align: left; text-decoration: underline; text-underline-offset: 3px; }

.toast-region { width: min(520px, calc(100vw - 24px)); position: fixed; left: 50%; bottom: 22px; z-index: 80; transform: translateX(-50%); pointer-events: none; }
.toast { padding: 12px 13px 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 18px; color: var(--white); background: var(--forest-2); border-radius: var(--radius-m); box-shadow: 0 12px 32px rgba(15, 56, 43, .24); font-size: 13px; font-weight: 650; pointer-events: auto; animation: toast-in 240ms var(--ease-out); }
.toast.success { color: var(--white); background: var(--forest-2); border: 0; }
.toast.session-warning { color: var(--ink); background: var(--amber-bg); border: 1px solid var(--amber-line); }
.toast.session-warning span strong, .toast.session-warning span small { display: block; }
.toast.session-warning span small { margin-top: 3px; color: var(--amber-strong); font-size: var(--text-xs); font-weight: 600; }
.toast .session-warning-action { width: auto; height: 30px; padding: 0 10px; color: var(--amber-strong); background: var(--white); border: 1px solid var(--amber-line); font-size: var(--text-xs); font-weight: 750; }
.toast .session-warning-action:hover { background: var(--amber-bg-soft); }
.toast button { width: 28px; height: 28px; padding: 5px; flex: 0 0 auto; color: currentColor; background: transparent; border: 0; border-radius: 7px; cursor: pointer; }
.toast button:hover { background: rgba(255, 255, 255, .12); }
.toast svg { width: 18px; height: 18px; display: block; fill: none; stroke: currentColor; }
.toast.is-leaving { opacity: 0; transform: translateY(8px); transition: opacity .16s ease, transform .16s ease; }
@keyframes toast-in { from { opacity: 0; transform: translateY(12px); } }

.operation-progress {
  margin-top: var(--space-2); padding: 9px 11px; display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto; gap: 10px; align-items: center;
  color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m);
}
.operation-progress > div, .activity-center > div { min-width: 0; }
.operation-progress-mark { width: 8px; height: 8px; display: block; border-radius: 50%; background: var(--amber-2); }
.operation-progress[data-state="running"] .operation-progress-mark, .activity-center .operation-progress-mark { background: var(--forest); }
.operation-progress[data-state="error"] { background: var(--red-bg-soft); border-color: var(--red-line); }
.operation-progress[data-state="error"] .operation-progress-mark { background: var(--red); }
.operation-progress strong, .operation-progress small, .activity-center strong, .activity-center small { display: block; }
.operation-progress strong, .activity-center strong { font-size: 11px; }
.operation-progress small, .activity-center small { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.operation-progress progress { width: 100%; height: 4px; margin-top: 6px; display: block; accent-color: var(--forest); }
.activity-center {
  width: min(330px, calc(100vw - 24px)); padding: 11px 13px; position: fixed; right: 16px; bottom: 16px; z-index: 70;
  display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 10px; align-items: center;
  background: var(--white); border: 1px solid var(--line-strong); border-radius: var(--radius-m); box-shadow: var(--shadow);
}

.form-section-error { margin: 0 0 var(--space-4); }
[aria-invalid="true"] { border-color: var(--red) !important; box-shadow: 0 0 0 3px rgba(152, 52, 45, .11) !important; }
.field-error { margin-top: 1px; display: block; color: var(--red); font-size: 10px; font-weight: 650; line-height: 1.4; }
.draft-restored { margin: -6px 0 2px; color: var(--muted); font-size: 10px; }

.topbar-nav { align-items: center; }
.nav-divider { width: 1px; height: 24px; margin: 0 5px; background: var(--line-strong); }
.topbar-search { position: relative; }
.topbar-search .search-icon { width: 14px; height: 14px; position: absolute; left: 12px; top: 50%; z-index: 1; border: 2px solid var(--muted); border-radius: 50%; transform: translateY(-56%); pointer-events: none; }
.topbar-search .search-icon::after { content: ""; width: 6px; height: 2px; position: absolute; right: -5px; bottom: -3px; background: var(--muted); border-radius: 2px; transform: rotate(45deg); }
.topbar-search input { width: 184px; padding-left: 35px; background: var(--surface); border-color: transparent; box-shadow: inset 0 0 0 1px var(--line); transition: box-shadow .22s ease, background .22s ease; }
.topbar-search input:hover { background: var(--white); box-shadow: inset 0 0 0 1px var(--line-strong); }
.topbar-search input:focus { outline: 0; box-shadow: inset 0 0 0 1px var(--forest), 0 7px 20px rgba(23, 79, 61, .11); }

.readonly-banner { margin-bottom: var(--space-5); padding: 15px 18px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); color: var(--ink-soft); background: var(--amber-bg-soft); border: 1px solid var(--amber-line); border-radius: var(--radius-m); }
.readonly-banner strong, .readonly-banner span { display: block; }
.readonly-banner span { margin-top: 3px; font-size: var(--text-s); }
.operation-read-only main section:not(.not-found-stage) { filter: saturate(.72); }
.archived-operations { margin-bottom: var(--space-5); }
.archived-operation-list { margin-top: var(--space-4); display: grid; }
.archived-operation-list a { padding: 11px 2px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); border-top: 1px solid var(--line); color: var(--muted-2); }
.archived-operation-list strong, .archived-operation-list small { display: block; }
.archived-operation-list small { margin-top: 3px; color: var(--muted); }
.operation-lifecycle-panel { margin-top: var(--space-6); background: var(--amber-bg-soft); border-color: var(--amber-line); }
.lifecycle-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .7fr); gap: var(--space-5); align-items: start; }
.lifecycle-actions form { display: grid; gap: var(--space-3); }
.lifecycle-actions label { display: grid; gap: 6px; color: var(--ink-soft); font-size: var(--text-s); font-weight: 700; }
.danger-zone { padding: 14px 16px; background: var(--white); border: 1px solid var(--red-line); border-radius: var(--radius-m); }
.danger-zone[open] > summary { margin-bottom: var(--space-4); color: var(--red); }

.definition-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.smart-group-toggle { display: inline-flex; align-items: center; gap: 8px; color: var(--muted-2); font-size: 11px; font-weight: 700; cursor: pointer; }
.smart-group-toggle input { width: 17px; height: 17px; min-height: 0; accent-color: var(--forest); }
.smart-group-toggle.active { color: var(--forest); }
.definition-groups { display: grid; gap: 0; }
.definition-groups:not(.is-grouped) .definition-group { display: contents; }
.definition-groups:not(.is-grouped) .definition-group > h3 { display: none; }
.definition-groups.is-grouped { gap: 12px; }
.definition-groups.is-grouped .definition-group { padding: 7px 14px; border-radius: var(--radius-m); }
.definition-group > h3 { margin: 3px 0 1px; display: flex; align-items: baseline; justify-content: space-between; color: var(--ink-soft); font-size: 12px; }
.definition-group > h3 span { color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.definition-groups.is-grouped .definition-tone-calendar { background: #edf5f0; }
.definition-groups.is-grouped .definition-tone-account { background: #f0f3f7; }
.definition-groups.is-grouped .definition-tone-iaf { background: #f5f1e9; }
.definition-groups.is-grouped .definition-tone-waterfall { background: #eef4f4; }
.definition-groups.is-grouped .definition-tone-reserve { background: #f6f0f7; }
.definition-groups.is-grouped .definition-tone-reporting { background: #f1f2f8; }
.definition-groups.is-grouped .definition-tone-enforcement { background: #fbf1ee; }
.definition-groups.is-grouped .definition-tone-parties,
.definition-groups.is-grouped .definition-tone-other { background: var(--surface); }
.definition-actions { display: flex; align-items: flex-start; gap: 8px; }
.copy-definition.copied { color: var(--green-strong); background: var(--green-bg); }
.definition-candidate { grid-template-columns: 22px minmax(0, 1fr) auto; }
.definition-select { padding-top: 1px; }
.definition-select input { width: 17px; height: 17px; min-height: 0; accent-color: var(--forest); }
.definition-name { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.definition-name .status { font-size: 8px; }
.icon-button { width: 34px; height: 34px; padding: 7px; display: inline-grid; place-items: center; flex: 0 0 auto; color: var(--forest); background: transparent; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.icon-button:hover { background: var(--green-bg-soft); border-color: var(--green-line); }
.icon-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.definition-actions > form { flex-wrap: wrap; }
.definition-revise { position: relative; }
.definition-revise > summary { min-height: var(--control-height-compact); padding: 8px 10px; color: var(--forest); background: var(--surface); border-radius: 8px; list-style: none; cursor: pointer; font-size: 10px; font-weight: 750; }
.definition-revise > summary::-webkit-details-marker { display: none; }
.definition-revise > form { width: 250px; padding: 10px; position: absolute; right: 0; top: 39px; z-index: 16; display: grid; gap: 7px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-m); box-shadow: var(--shadow); }
.definition-search { margin: 9px 0; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 7px; align-items: center; }
.definition-search input { min-height: var(--control-height-compact); height: var(--control-height-compact); }
.definition-bulk { margin: 10px 0 7px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.definition-bulk form { padding: 10px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 9px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m); }
.definition-bulk strong, .definition-bulk span { display: block; }
.definition-bulk strong { font-size: 10px; }
.definition-bulk span { color: var(--muted); font-size: 8px; text-align: right; }
.definition-bulk input { min-height: var(--control-height-compact); height: var(--control-height-compact); grid-column: 1 / -1; font-size: 10px; }
.definition-bulk form > div { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 5px; }
.source-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
.source-actions > details { position: relative; }
.source-actions > details > summary { min-height: 30px; padding: 7px 9px; color: var(--red); background: var(--red-bg); border-radius: 7px; list-style: none; cursor: pointer; font-size: 9px; font-weight: 750; }
.source-actions > details > summary::-webkit-details-marker { display: none; }
.source-actions > details > form { width: 260px; padding: 10px; position: absolute; right: 0; top: 36px; z-index: 16; display: grid; gap: 7px; background: var(--white); border: 1px solid var(--red-line); border-radius: var(--radius-m); box-shadow: var(--shadow); }
.waterfall-list .model-item { margin-inline: 1px; }

.occurrence-list { margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--line); }
.occurrence-list h4 { margin: 0 0 var(--space-2); font-size: 12px; }
.occurrence-list article { padding: 9px 0; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); border-top: 1px solid var(--line); }
.occurrence-list strong, .occurrence-list small { display: block; }
.occurrence-list small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.rule-remove form { min-width: 220px; margin-top: 8px; display: grid; gap: 7px; }

.board-select { width: 36px; text-align: center; }
.board-select input { width: 16px; height: 16px; min-height: 0; accent-color: var(--forest); }
.self-assignment { margin: 0; }
.event-type-choices { margin: 0; padding: 13px 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; border: 1px solid var(--line); border-radius: var(--radius-m); }
.event-type-choices legend { padding: 0 6px; color: var(--ink-soft); font-size: 11px; font-weight: 750; }
.event-type-choices label { display: flex; grid-template-columns: none; align-items: center; gap: 8px; }
.event-type-choices input { width: 16px; height: 16px; min-height: 0; accent-color: var(--forest); }

/* Shared operational patterns */
.identity { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.identity > span { min-width: 0; }
.identity strong, .identity small { display: block; }
.identity strong { font-size: 13px; }
.identity small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.identity-mark { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; color: var(--forest); background: var(--mint); border-radius: 10px; font-size: 10px; font-style: normal; font-weight: 800; }
.panel-count { min-width: 32px; height: 32px; display: grid; place-items: center; color: var(--muted-2); background: var(--surface-2); border-radius: 99px; font-size: 11px; font-weight: 750; }

.audit-reason { max-width: 75ch; margin: 10px 0 0; color: var(--ink-soft); font-size: var(--text-s); line-height: 1.5; }
.audit-changes { margin-top: 10px !important; }
.audit-changes > summary { display: inline-flex; color: var(--muted-2); font-size: var(--text-xs); }
.audit-changes ul { margin: 10px 0 0; padding: 12px 14px 12px 30px; display: grid; gap: 5px; color: var(--ink-soft); background: var(--surface); border-radius: var(--radius-m); font-size: var(--text-s); line-height: 1.45; }

.cycle-delete { position: relative; }
.cycle-delete > summary { min-height: 38px; padding: 9px 13px; display: inline-flex; align-items: center; color: var(--red); border-radius: var(--radius-s); list-style: none; cursor: pointer; font-size: 12px; font-weight: 750; }
.cycle-delete > summary:hover { background: var(--red-bg); }
.cycle-delete > summary::-webkit-details-marker { display: none; }
.cycle-delete > form { width: 300px; padding: 14px; position: absolute; right: 0; top: 44px; z-index: 30; display: grid; gap: 10px; background: var(--white); border: 1px solid var(--red-line); border-radius: var(--radius-m); box-shadow: var(--shadow); }
.cycle-delete label { display: grid; gap: 5px; color: var(--ink-soft); font-size: var(--text-s); font-weight: 700; }

.parameters-panel details > summary.disclosure-summary,
.operation-setup > details > summary.disclosure-summary { display: grid; padding: 20px 24px; border-bottom: 0; }
.parameters-panel details[open] > summary.disclosure-summary { padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.parameters-panel .parameter-form.disclosure-body { margin: 0 24px 24px; padding-top: 20px; }

@media (max-width: 1100px) {
  .board-table-heading { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 760px) {
  .board-tools { grid-template-columns: 1fr; }
  .cycle-delete > form { width: min(300px, calc(100vw - 42px)); }
  .disclosure-summary { min-height: 74px; padding: 18px; }
  .disclosure-body { margin-inline: 18px; }
}

/* Dense operational layouts */
.compact-metrics { max-width: 760px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.board-table-heading { padding: 18px 20px 14px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.board-table-heading h2 { margin: 0; }
.board-table-heading p { margin: 4px 0 0; color: var(--muted); font-size: var(--text-s); }
.board-table-tools { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.board-table-tools .bulk-clean { margin: 0; }
.board-note { width: 142px; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.45; }
.board-note > span { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }

.users-toolbar { padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.users-toolbar .users-filters { padding: 0; flex: 1; border: 0; }
.users-table { min-width: 980px; }
.username-cell { color: var(--muted-2); font-size: var(--text-s); font-variant-numeric: tabular-nums; }
.user-actions > summary { min-height: var(--control-height-compact); padding: 8px 11px; display: inline-flex; align-items: center; color: var(--forest); background: var(--mint); border-radius: var(--radius-s); list-style: none; cursor: pointer; font-size: var(--text-xs); font-weight: 750; }
.user-actions > summary::-webkit-details-marker { display: none; }
.user-actions .popout-panel { width: 210px; }
.user-actions .popout-panel, .user-actions .popout-panel form, .user-actions .popout-panel .button { width: 100%; }
.credential-card { padding-block: 18px; align-items: start; }
.credential-card > div { align-self: center; }
.attention-card > h3:last-child { margin-bottom: 0; }

.operation-profile-form { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 14px; }
.operation-profile-form > fieldset { min-width: 0; margin: 0; padding: 14px; display: grid; align-content: start; gap: 11px; border: 1px solid var(--line); border-radius: var(--radius-m); }
.operation-profile-form > fieldset legend { padding: 0 6px; color: var(--forest); font-size: var(--text-xs); font-weight: 800; }
.operation-profile-form > .button { grid-column: 1 / -1; justify-self: end; }
.rate-variable-fields { display: grid; gap: 12px; }
.rate-check { margin: 12px 0; padding: 10px 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; color: var(--green-strong); background: var(--green-bg-soft); border-radius: var(--radius-s); }
.rate-check.differs { color: var(--amber-strong); background: var(--amber-bg-soft); }
.rate-check span, .rate-check strong, .rate-check small { display: block; }
.rate-check span { font-size: 10px; }
.rate-check strong { margin-top: 3px; font-size: 13px; }
.rate-check small { margin-top: 2px; color: currentColor; }

.cycle-controls-stack { display: grid; gap: var(--space-5); }
.cycle-control-panel { min-width: 0; padding: 0; overflow: clip; }
.cycle-control-panel .control-heading { margin: 0; padding: 18px 20px 14px; border-bottom: 1px solid var(--line); }
.cycle-control-panel .control-heading h3 { margin: 0; font-size: var(--text-xl); }
.cycle-control-panel .control-heading p { max-width: 72ch; margin: 5px 0 0; color: var(--muted); font-size: var(--text-s); line-height: 1.5; }
.source-comparison { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.source-comparison article { min-width: 0; padding: 14px 20px; }
.source-comparison article + article { border-left: 1px solid var(--line); }
.source-comparison span,
.source-comparison strong,
.source-comparison small { display: block; }
.source-comparison span { color: var(--muted-2); font-size: var(--text-xs); font-weight: 700; }
.source-comparison strong { margin-top: 7px; font-size: var(--text-l); font-variant-numeric: tabular-nums; }
.source-comparison small { margin-top: 4px; color: var(--muted); font-size: var(--text-xs); overflow-wrap: anywhere; }
.source-comparison .comparison-result { background: var(--surface); }
.source-comparison.secondary-comparison { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.control-warning { margin: 12px 20px 0; padding: 10px 12px; color: var(--amber-strong); background: var(--amber-bg-soft); border: 1px solid var(--amber-line); border-radius: var(--radius-s); font-size: var(--text-s); font-weight: 700; }
.control-actions { padding: 14px 20px 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border-top: 1px solid var(--line); }
.control-actions .mini-upload { margin: 0; }
.acquired-source { margin: 13px 20px 0; min-height: 50px; padding: 8px 9px 8px 11px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 10px; background: var(--green-bg-soft); border: 1px solid var(--green-line); border-radius: var(--radius-m); }
.acquired-source-icon { width: 30px; height: 30px; display: grid; place-items: center; color: var(--forest); background: var(--white); border-radius: var(--radius-s); }
.acquired-source-icon svg, .source-icon-action svg, .source-remove > summary svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.acquired-source-copy { min-width: 0; }
.acquired-source-copy strong, .acquired-source-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acquired-source-copy strong { font-size: var(--text-s); }
.acquired-source-copy small { margin-top: 3px; color: var(--muted-2); font-size: var(--text-xs); }
.source-icon-action, .source-remove > summary { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--radius-s); cursor: pointer; }
.source-icon-action { color: var(--forest); }
.source-icon-action:hover, .source-icon-action:focus-visible { background: var(--mint); outline: 0; }
.source-remove { position: relative; }
.source-remove > summary { color: var(--red); list-style: none; }
.source-remove > summary::-webkit-details-marker { display: none; }
.source-remove > summary:hover, .source-remove > summary:focus-visible { background: var(--red-bg); outline: 0; }
.source-remove .popout-panel { width: 300px; padding: 14px; position: absolute; right: 0; top: 38px; z-index: 30; display: grid; gap: 10px; background: var(--white); border: 1px solid var(--red-line); border-radius: var(--radius-m); box-shadow: var(--shadow); }
.source-remove .popout-panel > p { margin: 0; color: var(--muted); font-size: var(--text-xs); line-height: 1.5; }
.source-remove .popout-panel form { display: flex; justify-content: flex-end; }
.compact-action { margin: 0; padding: 0; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-m); }
.compact-action > summary { min-height: 48px; padding: 0 13px; }
.compact-action > form { margin: 0 !important; padding: 13px; border-top: 1px solid var(--line); }

.interest-ledger { min-width: 0; }
.interest-ledger-head,
.interest-ledger-row { display: grid; grid-template-columns: minmax(110px, .85fr) minmax(145px, 1.15fr) minmax(105px, .8fr) minmax(135px, 1fr) minmax(145px, 1.1fr) minmax(115px, .85fr); }
.interest-ledger-head { padding: 9px 20px; color: var(--muted-2); background: var(--surface); border-bottom: 1px solid var(--line); font-size: var(--text-xs); font-weight: 700; }
.interest-ledger-row { min-width: 0; border-bottom: 1px solid var(--line); }
.interest-ledger-row > div { min-width: 0; padding: 14px 12px; }
.interest-ledger-row > div:first-child { padding-left: 20px; }
.interest-ledger-row > div:last-child { padding-right: 20px; }
.interest-ledger-row strong,
.interest-ledger-row small { display: block; }
.interest-ledger-row strong { font-size: var(--text-s); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.interest-ledger-row small { margin-top: 4px; color: var(--muted); font-size: var(--text-xs); line-height: 1.4; overflow-wrap: anywhere; }
.interest-ledger-empty { padding: 18px 22px; color: var(--muted); font-size: var(--text-s); border-bottom: 1px solid var(--line); }
.interest-ledger-row.needs-review { background: var(--amber-bg-soft); }
.interest-ledger-row.needs-review small { color: var(--amber-strong); }
.subscription-workbench { margin: 18px 22px 0; padding: 16px; background: var(--surface); border-radius: var(--radius-m); }
.subsection-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.subsection-heading h4 { margin: 0; font-size: var(--text-m); }
.subsection-heading p { margin: 3px 0 0; color: var(--muted); font-size: var(--text-xs); }
.subscription-list { margin-top: 10px; display: grid; }
.subscription-list article { min-width: 0; padding: 10px 0; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); border-top: 1px solid var(--line); }
.subscription-list strong,
.subscription-list small { display: block; }
.subscription-list small { max-width: 74ch; margin-top: 3px; color: var(--muted); font-size: var(--text-xs); line-height: 1.4; }
.inline-class-form { display: flex; align-items: center; gap: 7px; }
.inline-class-form select { min-width: 125px; min-height: var(--control-height-compact); height: var(--control-height-compact); }
.subscription-summary { margin: 8px 0 12px; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px 18px; }
.subscription-summary > div { padding-top: 10px; border-top: 1px solid var(--line); }
.subscription-summary span,
.subscription-summary strong,
.subscription-summary small { display: block; }
.subscription-summary span { color: var(--muted-2); font-size: var(--text-xs); font-weight: 750; }
.subscription-summary strong { margin-top: 3px; font-size: var(--text-m); font-variant-numeric: tabular-nums; }
.subscription-summary small { margin-top: 3px; color: var(--muted); font-size: var(--text-xs); line-height: 1.45; }

.cycle-control-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); align-items: start; }
.reserve-position-list { padding: 0 20px; display: grid; }
.reserve-position-list > article { padding: 15px 0; display: grid; grid-template-columns: minmax(130px, .75fr) minmax(0, 1.25fr); gap: var(--space-4); align-items: center; border-bottom: 1px solid var(--line); }
.reserve-position-list > article > div > strong,
.reserve-position-list > article > div > small { display: block; }
.reserve-position-list > article > div > small { margin-top: 4px; color: var(--muted); font-size: var(--text-xs); }
.reserve-position-list dl { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.reserve-position-list dl div { min-width: 0; }
.reserve-position-list dt { color: var(--muted); font-size: var(--text-xs); }
.reserve-position-list dd { margin: 4px 0 0; font-size: var(--text-s); font-weight: 750; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.reserves-control > .compact-action { margin: 14px 20px 18px; }
.reserve-value-form fieldset { margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-s); }
.reserve-value-form fieldset + fieldset { margin-top: 8px; }
.expense-control-summary { padding: 14px 20px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.expense-control-summary div { min-width: 0; }
.expense-control-summary span,
.expense-control-summary strong { display: block; }
.expense-control-summary span { color: var(--muted); font-size: var(--text-xs); }
.expense-control-summary strong { margin-top: 5px; font-size: var(--text-xl); font-variant-numeric: tabular-nums; }
.expenses-control > .mini-upload,
.expenses-control > .compact-action { margin: 0 20px 14px; }
.reserve-setup-panel { margin-top: var(--space-5); }
.reserve-definition-list [data-inactive="true"] { opacity: .68; }
.reserve-definition-list { gap: 8px; }
.setup-add-action { margin-top: 12px; }

.popout-panel[data-portal-open] { max-height: min(560px, calc(100vh - 40px)); padding: 15px; position: fixed; z-index: 100; display: grid; gap: 12px; overflow-y: auto; overscroll-behavior: contain; color: var(--ink); text-align: left; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-m); box-shadow: var(--shadow-lift); transform-origin: top right; animation: popout-in var(--motion-base) var(--ease-out) both; }
.popout-panel[data-portal-owner="user"] form,
.popout-panel[data-portal-owner="user"] .button { width: 100%; }
.popout-panel[data-portal-open] .work-archive { margin: 0; padding-top: 12px; display: flex; justify-content: flex-end; border-top: 1px solid var(--line); }

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: page-out 110ms ease-in both; }
::view-transition-new(root) { animation: page-in 180ms var(--ease-out) both; }
@keyframes page-out { to { opacity: .82; transform: translateY(-2px); } }
@keyframes page-in { from { opacity: 0; transform: translateY(4px); } }
@keyframes popout-in { from { opacity: .72; transform: translateY(-4px) scale(.985); box-shadow: var(--shadow); } }
@supports not (view-transition-name: root) {
  .shell { animation: page-in 200ms var(--ease-out) both; }
}

@media (max-width: 1100px) {
  .board-table-heading { align-items: flex-start; flex-direction: column; }
  .board-table-tools { width: 100%; justify-content: flex-start; }
  .operation-profile-form { grid-template-columns: 1fr; }
  .workflow-steps { grid-template-columns: repeat(10, minmax(96px, 1fr)); overflow-x: auto; }
  .source-comparison,
  .source-comparison.secondary-comparison { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .source-comparison article:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .source-comparison article:nth-child(4) { border-top: 1px solid var(--line); }
  .control-actions { grid-template-columns: 1fr; }
  .interest-ledger-head { display: none; }
  .interest-ledger-row { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 8px 12px; }
  .interest-ledger-row > div,
  .interest-ledger-row > div:first-child,
  .interest-ledger-row > div:last-child { padding: 9px 10px; }
  .interest-ledger-row > div::before { content: attr(data-label); margin-bottom: 5px; display: block; color: var(--muted); font-size: var(--text-xs); font-weight: 700; }
  .cycle-control-split { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .compact-metrics { max-width: none; grid-template-columns: 1fr; }
  .users-toolbar { align-items: stretch; flex-direction: column; }
  .board-search-form { width: 100%; }
  .board-search-form label, .board-search-form input { width: 100%; }
  .archive-list > article { align-items: flex-start; flex-direction: column; }
  .cycle-control-panel .control-heading { align-items: flex-start; flex-direction: column; padding: 17px; }
  .mini-upload { grid-template-columns: 1fr; }
  .mini-upload > .button { width: 100%; }
  .source-comparison,
  .source-comparison.secondary-comparison { grid-template-columns: 1fr; }
  .source-comparison article + article,
  .source-comparison article:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .source-comparison article { padding: 14px 17px; }
  .control-warning { margin: 12px 17px 0; }
  .control-actions { padding: 14px 17px 17px; }
  .acquired-source { margin-inline: 17px; }
  .interest-ledger-row { grid-template-columns: 1fr; padding: 7px; }
  .subscription-workbench { margin-inline: 17px; }
  .subscription-list article { align-items: flex-start; flex-direction: column; }
  .inline-class-form { width: 100%; }
  .inline-class-form select { flex: 1; }
  .inline-class-form select,
  .inline-class-form .button,
  .cycle-control-panel .control-heading > .button,
  .cycle-control-panel .control-actions .button { min-height: 44px; }
  .reserve-position-list { padding-inline: 17px; }
  .reserve-position-list > article { grid-template-columns: 1fr; }
  .reserves-control > .compact-action,
  .expenses-control > .mini-upload,
  .expenses-control > .compact-action { margin-inline: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root), .toast, .shell, .popout-panel[data-portal-open] { animation-duration: 1ms; }
  .toast.is-leaving, .disclosure-icon { transition-duration: 1ms; }
}

.developer-grid + .developer-grid,
.developer-grid + .panel,
.panel + .developer-split,
.developer-split + .panel { margin-top: var(--space-5); }
.technical-heading { align-items: center; }
.technical-metrics .metric { min-height: 112px; }
.technical-overview { padding: 0; overflow: hidden; }
.technical-overview-heading { margin: 0; padding: 22px 24px 18px; align-items: center; }
.technical-overview-heading p { margin: 5px 0 0; color: var(--muted); font-size: var(--text-s); }
.technical-overview-heading form { margin: 0; }
.technical-system-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.technical-system-section { min-width: 0; min-height: 300px; padding: 18px; }
.technical-system-section + .technical-system-section { border-left: 1px solid var(--line); }
.technical-section-heading { min-height: 30px; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.technical-section-heading h3 { margin: 0; font-size: var(--text-l); }
.technical-system-section .breakdown { margin-top: 10px; }
.technical-counts { max-height: 116px; overflow-y: auto; scrollbar-gutter: stable; }
.technical-tool-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); background: var(--surface); }
.technical-tool { min-width: 0; min-height: 88px; padding: 17px 20px; }
.technical-tool + .technical-tool { border-left: 1px solid var(--line); }
.technical-tool strong, .technical-tool small { display: block; }
.technical-tool small { margin-top: 4px; color: var(--muted); font-size: var(--text-xs); line-height: 1.45; }
.technical-config > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; list-style: none; cursor: pointer; }
.technical-config > summary::-webkit-details-marker { display: none; }
.technical-config > summary i { width: 28px; height: 28px; display: grid; place-items: center; color: var(--forest); background: var(--mint); border-radius: var(--radius-s); font-size: 17px; font-style: normal; transition: transform var(--motion-base) var(--ease-out); }
.technical-config[open] > summary i { transform: rotate(45deg); }
.technical-tool-body { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.technical-tool-body .breakdown { margin-top: 14px; }
.technical-inspector { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.technical-inspector > div { min-width: 150px; }
.technical-inspector form { min-width: 0; flex: 1; display: flex; align-items: center; justify-content: flex-end; gap: var(--space-2); }
.technical-inspector select { min-width: 0; max-width: 310px; flex: 1; }
.technical-table-panel { margin-top: var(--space-5); }
.technical-table-panel .panel-heading p { margin: 5px 0 0; color: var(--muted); font-size: var(--text-xs); }
.technical-data-grid { align-items: stretch; }
.technical-data-panel { height: 100%; display: flex; flex-direction: column; }
.technical-data-panel > .table-wrap, .technical-error-list { max-height: 430px; overflow-y: auto; }
.technical-data-panel .padded-form { margin-top: auto; border-top: 1px solid var(--line); }
.api-key-operations { max-width: 22ch; display: grid; gap: 3px; }
.api-key-operations span { overflow-wrap: anywhere; }
.api-key-policy { min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-m); }
.api-key-policy legend { padding: 0 6px; color: var(--forest); font-size: var(--text-xs); font-weight: 800; }
.api-key-policy > p { margin: 0 0 10px; color: var(--muted); font-size: var(--text-xs); font-weight: 400; }
.api-key-policy > .empty-note { padding: 0; }
.api-key-operation-grid { max-height: 168px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; overflow-y: auto; scrollbar-gutter: stable; }
.api-key-operation-grid label { min-width: 0; min-height: var(--control-height-compact); padding: 8px 9px; display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 8px; align-items: center; color: var(--ink-soft); background: var(--paper); border: 1px solid transparent; border-radius: var(--radius-s); cursor: pointer; }
.api-key-operation-grid label:has(input:checked) { color: var(--forest); background: var(--green-bg-soft); border-color: var(--green-line); }
.api-key-operation-grid input { width: 16px; height: 16px; }
.api-key-operation-grid strong, .api-key-operation-grid small { display: block; overflow-wrap: anywhere; }
.api-key-operation-grid strong { font-size: var(--text-xs); }
.api-key-operation-grid small { margin-top: 2px; color: var(--muted); font-size: 9px; font-weight: 600; }
.technical-routes { margin-top: var(--space-5); padding: 0; overflow: hidden; }
.technical-routes .disclosure-body { margin: 0; padding: 0; }
@media (max-width: 1180px) {
  .technical-system-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .technical-system-section:nth-child(3) { border-left: 0; }
  .technical-system-section:nth-child(n + 3) { border-top: 1px solid var(--line); }
}
@media (max-width: 760px) {
  .technical-heading { align-items: flex-start; }
  .technical-heading .heading-actions { width: 100%; }
  .technical-heading .heading-actions .button { flex: 1; }
  .technical-system-grid, .technical-tool-grid { grid-template-columns: 1fr; }
  .technical-system-section { min-height: 0; }
  .technical-system-section + .technical-system-section,
  .technical-system-section:nth-child(3),
  .technical-tool + .technical-tool { border-left: 0; border-top: 1px solid var(--line); }
  .technical-inspector { align-items: stretch; flex-direction: column; }
  .technical-inspector form { justify-content: stretch; }
  .technical-inspector select { max-width: none; }
  .api-key-operation-grid { grid-template-columns: 1fr; }
}
.inspect-section pre,
.traceback { color: #dceee5; background: #101814; border: 1px solid #29463a; }
.inspect-section pre::selection,
.traceback::selection { color: #101814; background: #a8d8bf; }
.not-found-stage { min-height: 58vh; display: grid; grid-template-columns: minmax(180px, .42fr) minmax(0, 1fr); align-items: center; gap: clamp(32px, 7vw, 100px); }
.not-found-code { color: var(--line-strong); font-size: clamp(90px, 16vw, 210px); font-weight: 800; line-height: .8; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.not-found-copy { max-width: 68ch; }
.not-found-copy h1 { max-width: 16ch; }
.not-found-copy > p { color: var(--muted-2); font-size: var(--text-l); line-height: 1.6; }
.not-found-copy code { padding: 7px 10px; display: inline-block; color: var(--ink-soft); background: var(--surface-2); border-radius: var(--radius-s); overflow-wrap: anywhere; }
.not-found-actions { margin-top: var(--space-5); display: flex; flex-wrap: wrap; gap: var(--space-2); }
.error-stage .not-found-code { color: var(--red-line); }
@media (max-width: 760px) {
  .not-found-stage { grid-template-columns: 1fr; gap: var(--space-5); }
  .not-found-code { font-size: 86px; }
  .readonly-banner { align-items: flex-start; flex-direction: column; }
  .event-type-choices { grid-template-columns: 1fr; }
  .lifecycle-actions { grid-template-columns: 1fr; }
  .definition-toolbar { align-items: flex-start; flex-direction: column; }
  .definition-bulk { grid-template-columns: 1fr; }
  .definition-candidate { grid-template-columns: 22px minmax(0, 1fr); }
  .definition-actions { grid-column: 2; flex-wrap: wrap; }
  .definition-revise > form, .source-actions > details > form { width: min(260px, calc(100vw - 48px)); position: fixed; right: 24px; top: auto; }
}
