:root {
  --surface-app: #f5f5f7;
  --surface-module: #fafafc;
  --surface-subtle: #f5f7f6;
  --surface-raised: #ffffff;
  --text-primary: #1d1d1f;
  --text-secondary: #6e6e73;
  --text-tertiary: #86868b;
  --border-subtle: #d2d2d7;
  --border-strong: #a1a1a6;
  --accent-primary: #1f5b4d;
  --accent-primary-hover: #16463b;
  --accent-primary-soft: #e4efec;
  --ink: var(--text-primary);
  --muted: var(--text-secondary);
  --paper: var(--surface-module);
  --canvas: var(--surface-app);
  --line: var(--border-subtle);
  --line-strong: var(--border-strong);
  --accent: var(--accent-primary);
  --accent-dark: var(--accent-primary-hover);
  --accent-soft: var(--accent-primary-soft);
  --navy: #17372f;
  --navy-2: #285a4e;
  --good: #1f6a50;
  --good-soft: #e4f1eb;
  --warn: #8a5a13;
  --warn-soft: #fff3d7;
  --danger: #aa302c;
  --danger-soft: #f9e4e2;
  --focus: #266b8b;
  --radius: 10px;
  --shadow: 0 14px 40px rgba(27, 29, 27, .09);
  font-family: "Segoe UI", Arial, sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--canvas); }
body { margin: 0; min-height: 100vh; background: var(--canvas); }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
[hidden] { display: none !important; }

.skip-link { position: fixed; left: 12px; top: -60px; z-index: 100; padding: 10px 14px; color: #fff; background: var(--navy); border-radius: 6px; }
.skip-link:focus { top: 12px; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

:focus-visible { outline: 3px solid color-mix(in srgb, var(--focus) 72%, white); outline-offset: 2px; }

.shellbar { height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 32px; color: #fff; background: var(--navy); border-bottom: 1px solid color-mix(in srgb, var(--accent) 40%, var(--navy)); }
.brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.brand-mark { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; font-weight: 750; letter-spacing: -.07em; }
.brand strong { display: block; font-size: 16px; letter-spacing: -.015em; }
.brand small { color: #c9d3d7; font-size: 11px; }
.shell-meta { display: flex; align-items: center; gap: 16px; color: #dce3e6; font-size: 12px; }
.user-dot { width: 8px; height: 8px; border-radius: 50%; background: #7fc5a8; box-shadow: 0 0 0 4px rgba(127,197,168,.14); }

.desktop-global-header, .desktop-global-scrim { display: none; }
.mobile-legacy-header { display: block; }

@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
  .mobile-legacy-header { display: none; }
  .desktop-global-header { position: sticky; z-index: 90; top: 0; display: block; height: 52px; }
  .desktop-global-bar { position: relative; z-index: 94; height: 52px; display: grid; grid-template-columns: minmax(220px,1fr) auto minmax(220px,1fr); align-items: center; padding: 0 32px; border-bottom: 1px solid rgba(25,43,48,.12); background: rgba(255,255,255,.92); backdrop-filter: saturate(180%) blur(20px); }
  .desktop-brand { width: max-content; min-width: 0; display: inline-flex; align-items: center; gap: 10px; padding: 0; border: 0; color: var(--ink); background: transparent; text-align: left; }
  .desktop-brand-mark { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--accent) 68%,#78918b); border-radius: 50%; color: var(--accent-dark); font-size: 11px; font-weight: 800; letter-spacing: -.05em; }
  .desktop-brand strong { overflow: hidden; font-size: 14px; font-weight: 720; letter-spacing: -.015em; text-overflow: ellipsis; white-space: nowrap; }
  .desktop-global-links { height: 100%; display: flex; align-items: stretch; justify-content: center; gap: 28px; }
  .desktop-global-link { position: relative; min-width: 88px; padding: 0 8px; border: 0; color: #42474a; background: transparent; font-size: 12px; font-weight: 620; }
  .desktop-global-link::after { content: ""; position: absolute; inset: auto 8px 0; height: 2px; background: transparent; transform: scaleX(.35); transition: background-color .18s ease,transform .18s ease; }
  .desktop-global-link:hover,.desktop-global-link:focus-visible,.desktop-global-link[aria-expanded="true"] { color: var(--ink); }
  .desktop-global-link.is-active::after,.desktop-global-link[aria-expanded="true"]::after { background: var(--accent); transform: scaleX(1); }
  .desktop-user-button { justify-self: end; width: 30px; height: 30px; display: grid; place-items: center; padding: 0; border: 1px solid #c8d2cf; border-radius: 50%; color: var(--accent-dark); background: #f7faf9; font-size: 10px; font-weight: 800; }
  .desktop-user-button:hover,.desktop-user-button:focus-visible,.desktop-user-button[aria-expanded="true"],.desktop-user-button.is-active { border-color: var(--accent); background: #edf6f2; }
  .desktop-global-panel { position: absolute; z-index: 93; inset: 52px 0 auto; overflow: hidden; border-bottom: 1px solid rgba(25,43,48,.13); background: rgba(255,255,255,.98); box-shadow: 0 12px 28px rgba(18,31,36,.09); opacity: 0; visibility: hidden; transform: translateY(-8px); pointer-events: none; transition: opacity .18s ease,transform .18s ease,visibility 0s linear .18s; }
  .desktop-global-panel.is-open { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; transition-delay: 0s; }
  .desktop-global-menu { width: min(1000px,calc(100% - 80px)); margin: 0 auto; display: none; grid-template-columns: 120px minmax(0,1fr); gap: 12px 28px; padding: 24px 0; }
  .desktop-global-menu.is-visible { display: grid; }
  .desktop-menu-eyebrow { margin: 6px 0 0; color: #7b8284; font-size: 10px; font-weight: 760; text-transform: uppercase; letter-spacing: .12em; }
  .desktop-menu-links { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); align-items: start; gap: 24px; }
  .desktop-menu-link { display: block; padding: 4px 0 6px; border: 0; color: var(--ink); background: transparent; text-align: left; }
  .desktop-menu-link strong,.desktop-menu-link span { display: block; }
  .desktop-menu-link strong { font-size: 17px; font-weight: 650; line-height: 1.3; letter-spacing: -.015em; }
  .desktop-menu-link span { margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.4; }
  .desktop-menu-link:hover strong,.desktop-menu-link:focus-visible strong { color: var(--accent-dark); }
  .desktop-menu-link:focus-visible { outline-offset: 3px; }
  .desktop-menu-link:disabled { cursor: not-allowed; opacity: .6; }
  .desktop-menu-note { grid-column: 2; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
  .desktop-profile-menu { position: absolute; z-index: 95; top: 46px; right: 24px; width: 250px; padding: 16px; border: 1px solid rgba(25,43,48,.14); border-radius: 12px; background: rgba(255,255,255,.98); box-shadow: 0 18px 42px rgba(18,31,36,.16); opacity: 0; visibility: hidden; transform: translateY(-6px); pointer-events: none; transition: opacity .16s ease,transform .16s ease,visibility 0s linear .16s; }
  .desktop-profile-menu.is-open { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; transition-delay: 0s; }
  .desktop-profile-menu strong,.desktop-profile-menu small { display: block; }
  .desktop-profile-menu strong { color: var(--ink); font-size: 14px; }
  .desktop-profile-menu small { margin-top: 5px; color: var(--muted); font-size: 11px; }
  .desktop-profile-menu .user-dot { display: inline-block; margin-right: 8px; }
  .desktop-profile-menu button, .desktop-profile-menu a.profile-menu-link { display: block; width: 100%; margin-top: 14px; padding: 11px 0 1px; border: 0; border-top: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; font-size: 13px; font-weight: 700; text-decoration: none; box-sizing: border-box; }
  .desktop-profile-menu button:hover, .desktop-profile-menu a.profile-menu-link:hover, .desktop-profile-menu button:focus-visible, .desktop-profile-menu a.profile-menu-link:focus-visible { color: var(--accent-dark); }
  .desktop-global-scrim { display: block; position: fixed; z-index: 89; inset: 52px 0 0; padding: 0; border: 0; background: rgba(21,27,29,.12); opacity: 0; visibility: hidden; pointer-events: none; backdrop-filter: blur(8px); transition: opacity .18s ease,visibility 0s linear .18s; }
  .desktop-global-scrim.is-open { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
}

.crumbbar { height: 45px; display: flex; align-items: center; justify-content: space-between; padding: 0 32px; background: #fff; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.crumbs { display: flex; align-items: center; gap: 8px; }
.crumbs button { border: 0; padding: 6px 2px; background: transparent; color: var(--navy-2); }
.crumbs strong { color: var(--ink); }
.view-tag { text-transform: uppercase; letter-spacing: .12em; font-size: 10px; font-weight: 750; color: var(--accent-dark); }

.page { width: min(1280px, calc(100% - 40px)); margin: 0 auto; padding: 18px 0 36px; }
.page-head { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; margin-bottom: 12px; }
.eyebrow { margin: 0 0 6px; color: var(--accent-dark); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 4px; font-size: clamp(25px, 3vw, 35px); line-height: 1.08; letter-spacing: -.035em; }
h2 { font-size: 19px; letter-spacing: -.018em; }
h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .07em; }
.lede { margin: 0; color: var(--muted); font-size: 14px; }
.num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }

.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--ink); background: #fff; font-weight: 680; text-decoration: none; }
.btn:hover { border-color: var(--navy-2); }
.btn-primary { color: #fff; background: var(--accent); border-color: var(--accent); }
.btn-primary:hover { background: var(--accent-dark); border-color: var(--accent-dark); }
.btn-dark { color: #fff; background: var(--navy); border-color: var(--navy); }
.btn-quiet { border-color: transparent; background: transparent; color: var(--navy-2); }
.btn-row { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }

.home-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); gap: 18px; }
.home-primary, .home-side { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.home-primary { min-height: 370px; display: grid; grid-template-columns: minmax(0, 1fr) 270px; overflow: hidden; }
.home-copy { padding: 38px; align-self: center; }
.home-copy h1 { max-width: 620px; font-size: clamp(34px, 4.3vw, 54px); }
.home-copy .lede { max-width: 560px; margin: 14px 0 24px; font-size: 16px; line-height: 1.55; }
.home-ruler { position: relative; display: grid; align-content: center; gap: 19px; padding: 28px; color: #eef2f2; background: var(--navy-2); }
.home-ruler::before { content: ""; position: absolute; inset: 20px auto 20px 18px; width: 1px; background: rgba(255,255,255,.28); }
.ruler-item { position: relative; padding-left: 16px; }
.ruler-item::before { content: ""; position: absolute; left: -14px; top: 7px; width: 9px; height: 9px; border-radius: 50%; background: #e7a48f; }
.ruler-item strong { display: block; font-size: 14px; }
.ruler-item span { display: block; margin-top: 3px; color: #c8d2d6; font-size: 12px; }
.home-side { padding: 26px; }
.home-side h2 { margin-bottom: 4px; }
.empty-note { margin: 18px 0 26px; padding: 15px 0; border-block: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.5; }
.example-list { display: grid; gap: 4px; }
.example { width: 100%; display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 10px; min-height: 52px; padding: 8px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; color: var(--ink); }
.example-index { color: var(--accent); font-weight: 800; }
.example > span:nth-child(2) { display: grid; gap: 2px; }
.example strong, .example small { display: block; }
.example small { color: var(--muted); }
.example-arrow { color: var(--accent); }

.workspace { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 1px 0 rgba(255,255,255,.8) inset; }
.workspace-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 12px 20px; border-bottom: 1px solid var(--line); }
.workspace-head h2 { margin: 0; }
.workspace-head small { color: var(--muted); }
.rule-chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.rule-chips span { padding: 5px 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--navy-2); background: var(--canvas); font-size: 10px; font-weight: 720; }
.mobile-steps { display: none; }

.form-sections { padding: 3px 20px 12px; }
.form-section { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 22px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.section-label h3 { margin: 2px 0 4px; color: var(--navy); }
.section-label p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.35; }
.fields { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; }
.field { min-width: 0; }
.field.span-2 { grid-column: span 2; }
.field label, .field-label { display: block; margin-bottom: 5px; color: #484945; font-size: 11px; font-weight: 720; }
.field input, .field select { width: 100%; height: 39px; padding: 0 10px; border: 1px solid #bbb7ad; border-radius: 6px; color: var(--ink); background: #fff; }
.field input[readonly], .field select:disabled { color: #565752; background: var(--surface-subtle); opacity: 1; }
.field-hint { display: block; min-height: 15px; margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.25; }
.field-error { display: block; margin-top: 5px; color: var(--danger); font-size: 11px; font-weight: 650; }
.field.has-error input, .field.has-error select { border-color: var(--danger); box-shadow: 0 0 0 2px rgba(170,48,44,.1); }
.unit-switch { display: flex; width: fit-content; margin-bottom: 6px; border: 1px solid var(--line-strong); border-radius: 5px; overflow: hidden; }
.unit-switch button { min-width: 43px; min-height: 29px; border: 0; background: #fff; color: var(--muted); font-size: 11px; }
.unit-switch button.active { color: #fff; background: var(--navy-2); }
.form-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 10px 20px; }
.integrity-note { max-width: 600px; display: flex; gap: 9px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.integrity-note::before { content: "•"; color: var(--good); font-size: 20px; line-height: 12px; }
.scenario-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.scenario-tab { min-height: 34px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 18px; background: transparent; color: var(--muted); font-size: 11px; }
.scenario-tab.active { color: #fff; background: var(--navy-2); border-color: var(--navy-2); }

.banner { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 14px; padding: 13px 15px; border: 1px solid; border-radius: 8px; font-size: 13px; }
.banner strong { display: block; margin-bottom: 2px; }
.banner p { margin: 0; }
.banner-stale { color: #62420d; background: var(--warn-soft); border-color: #e4c37c; }
.banner-error { color: #782420; background: var(--danger-soft); border-color: #dea19d; }

.result-sheet { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.result-sheet.is-stale .result-content { opacity: .46; filter: grayscale(.28); }
.result-top { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.result-top h1 { font-size: 27px; }
.result-context { display: flex; flex-wrap: wrap; gap: 5px 16px; color: var(--muted); font-size: 12px; }
.result-content { transition: opacity .18s ease; }
.credit-flow { display: grid; align-items: center; gap: 22px; padding: 16px 20px; background: var(--surface-subtle); }
.credit-flow-equation { grid-template-columns: 1fr auto 1fr; }
.credit-flow-integral { grid-template-columns: minmax(260px,.8fr) minmax(300px,1.2fr); }
.credit-explanation { justify-self: end; width: min(100%,460px); padding: 11px 14px; border-left: 3px solid var(--navy-2); background: rgba(255,255,255,.45); }
.credit-explanation span,.credit-explanation small { display: block; color: var(--muted); font-size: 10px; }
.credit-explanation span { margin-bottom: 3px; font-weight: 760; text-transform: uppercase; letter-spacing: .06em; }
.credit-explanation strong { display: block; margin-bottom: 2px; color: var(--navy); font-size: 14px; }
.metric-label { display: block; margin-bottom: 6px; color: var(--muted); font-size: 11px; font-weight: 760; text-transform: uppercase; letter-spacing: .07em; }
.metric-value { display: block; color: var(--navy); font-size: clamp(22px, 2.5vw, 31px); line-height: 1.1; letter-spacing: -.03em; font-weight: 730; font-variant-numeric: tabular-nums; }
.metric-note { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }
.flow-operator { min-width: 180px; text-align: center; color: var(--accent-dark); font-size: 12px; font-weight: 700; }
.flow-operator::before { content: ""; display: block; height: 1px; margin-bottom: -9px; background: #bcb7ac; }
.flow-operator span { position: relative; padding: 0 9px; background: var(--surface-subtle); }
.result-grid { display: grid; align-items: start; gap: 12px; padding: 14px 20px; border-top: 1px solid var(--line); background: var(--surface-app); }
.result-grid-with-bid { grid-template-columns: minmax(190px,.8fr) minmax(230px,1fr) minmax(360px,1.55fr); }
.result-grid-no-bid { grid-template-columns: minmax(260px,.8fr) minmax(420px,1.2fr); }
.result-block { min-width: 0; padding: 14px 15px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.result-block h3 { margin: 0 0 12px; color: var(--navy); }
.small-value { display: block; font-size: 20px; font-weight: 720; color: var(--ink); }
.breakdown { display: grid; gap: 5px; margin-top: 10px; color: var(--muted); font-size: 11px; }
.breakdown div { display: flex; justify-content: space-between; gap: 10px; }
.amort-grid { display: grid; grid-template-columns: 1fr 32px 1fr; align-items: stretch; gap: 8px; }
.amort-option { padding: 0 3px 0 10px; border-left: 3px solid var(--accent); }
.amort-option:last-child { border-color: var(--navy-2); }
.amort-option strong { display: block; margin-bottom: 5px; font-size: 12px; }
.amort-option .small-value { color: var(--navy); }
.or { display: grid; place-items: center; color: var(--muted); font-size: 10px; font-weight: 800; }
.result-actions { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 13px 20px; border-top: 1px solid var(--line); background: #fff; }
.result-actions .btn { min-height: 38px; padding-block: 7px; font-size: 12px; }
.desktop-only { display: inline-flex; }
.mobile-only { display: none; }

.edit-strip { margin-bottom: 14px; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.edit-strip-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 11px; }
.edit-strip .fields { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.doc-stage { padding-top: 16px; }
.doc-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 14px; }
.paper-preview { width: min(930px, 100%); min-height: 760px; margin: 0 auto; padding: 46px; background: #fff; border: 1px solid #d7d4cc; box-shadow: var(--shadow); }
.paper-brand { display: flex; justify-content: space-between; align-items: center; padding-bottom: 18px; border-bottom: 2px solid var(--accent); }
.paper-brand strong { color: var(--navy); font-size: 19px; }
.paper-kicker { color: var(--accent-dark); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.paper-title { padding: 30px 0 20px; }
.paper-title h1 { max-width: 660px; font-size: 34px; }
.paper-context { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 14px 0; border-block: 1px solid var(--line); }
.paper-section { padding: 25px 0; border-bottom: 1px solid var(--line); }
.paper-two { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.paper-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.paper-table th, .paper-table td { padding: 10px 0; border-bottom: 1px solid var(--line); text-align: left; }
.paper-table td:last-child { text-align: right; font-weight: 700; }
.paper-note { padding-top: 24px; color: var(--muted); font-size: 11px; line-height: 1.5; }

.presentation { min-height: 100vh; color: #f6f1e7; background: #13252c; }
.presentation-top { height: 62px; display: flex; justify-content: space-between; align-items: center; padding: 0 36px; border-bottom: 1px solid rgba(255,255,255,.16); }
.presentation-top .btn { min-height: 38px; color: #fff; border-color: rgba(255,255,255,.35); background: transparent; }
.presentation-state { display: flex; align-items: center; gap: 9px; color: #c9d6d8; font-size: 12px; }
.presentation-state::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #7fc5a8; }
.presentation-main { width: min(1260px, calc(100% - 72px)); margin: 0 auto; padding: 46px 0; }
.presentation-context { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 40px; }
.presentation-context h1 { max-width: 680px; font-family: Georgia, serif; font-size: clamp(42px, 5vw, 68px); font-weight: 400; line-height: .98; }
.presentation-context p { max-width: 420px; color: #bdcacc; line-height: 1.55; }
.presentation-credit { display: grid; grid-template-columns: 1fr auto 1fr; gap: 30px; align-items: center; padding: 28px 32px; border-block: 1px solid rgba(255,255,255,.2); }
.presentation-credit .metric-label { color: #aebdbf; }
.presentation-credit .metric-value { color: #fff; font-size: clamp(32px, 3.4vw, 44px); font-weight: 560; }
.presentation-credit .flow-operator { min-width: 230px; color: #f0b09c; }
.presentation-credit .flow-operator span { background: #13252c; }
.presentation-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 44px; padding-top: 34px; }
.presentation-card { padding-left: 18px; border-left: 2px solid #c66349; }
.presentation-card h2 { color: #f0b09c; font-size: 13px; text-transform: uppercase; letter-spacing: .11em; }
.presentation-card .small-value { color: #fff; font-size: 29px; }
.presentation .amort-option { border-color: #c66349; }
.presentation .amort-option:last-child { border-color: #78aeb7; }
.presentation .amort-option .small-value { color: #fff; font-size: 25px; }
.presentation .or { color: #9eb0b3; }

@media (max-width: 1100px) {
  .page { width: min(960px, calc(100% - 28px)); }
  .fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .field.span-2 { grid-column: span 1; }
  .result-grid { grid-template-columns: 1fr 1fr; }
  .result-grid-with-bid .result-block:last-child { grid-column: 1 / -1; }
  .edit-strip .fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 801px) and (max-height: 800px) {
  .page { padding-top: 12px; }
  .page-head { margin-bottom: 8px; }
  .page-head h1 { font-size: 31px; }
  .form-sections { padding-bottom: 7px; }
  .form-section { padding-block: 7px; }
  .form-footer { padding-block: 8px; }
}

@media (max-width: 800px) {
  .shellbar { height: 58px; padding: 0 16px; }
  .shell-meta span:not(.user-dot) { display: none; }
  .crumbbar { padding: 0 16px; }
  .page { width: min(720px, calc(100% - 24px)); padding-top: 18px; }
  .page-head { align-items: flex-start; }
  .home-grid { grid-template-columns: 1fr; }
  .home-primary { grid-template-columns: 1fr; }
  .home-ruler { display: none; }
  .home-copy { padding: 28px 24px; }
  .home-copy h1 { font-size: 38px; }
  .mobile-steps { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 14px; border-bottom: 1px solid var(--line); }
  .mobile-only { display: inline-flex; }
  .desktop-only { display: none !important; }
  .step { min-height: 48px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); font-size: 11px; font-weight: 700; }
  .step.active { color: var(--accent-dark); border-bottom-color: var(--accent); }
  .form-section { grid-template-columns: 1fr; gap: 10px; }
  .form-section.mobile-hidden { display: none; }
  .fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-footer { align-items: flex-start; }
  .integrity-note { max-width: 380px; }
  .credit-flow { grid-template-columns: 1fr; gap: 14px; }
  .credit-explanation { justify-self: stretch; width: auto; }
  .flow-operator { text-align: left; min-width: 0; }
  .flow-operator::before { display: none; }
  .flow-operator span { padding: 0; }
  .result-grid { grid-template-columns: 1fr 1fr; }
  .result-grid-with-bid .result-block:last-child { grid-column: 1 / -1; }
  .result-grid-no-bid .result-block:last-child { grid-column: auto; }
  .edit-strip .fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paper-preview { padding: 30px; }
}

@media (max-width: 560px) {
  .shellbar { padding: 0 14px; }
  .brand small { display: none; }
  .crumbbar { height: 48px; overflow: hidden; }
  .crumbs { white-space: nowrap; }
  .page { width: calc(100% - 20px); padding: 14px 0 28px; }
  .page-head { display: block; margin-bottom: 14px; }
  .page-head .btn-row { margin-top: 12px; }
  h1 { font-size: 27px; }
  .home-copy h1 { font-size: 34px; }
  .home-copy .lede { font-size: 14px; }
  .home-side { padding: 20px; }
  .workspace-head { flex-direction: column; padding: 13px 14px; }
  .workspace-head .scenario-tabs { display: none; }
  .workspace-head { align-items: flex-start; }
  .rule-chips { max-width: 100%; justify-content: flex-start; }
  .form-sections { padding: 0 14px 8px; }
  .form-section { padding: 14px 0; }
  .fields { grid-template-columns: 1fr 1fr; gap: 11px 8px; }
  .field.mobile-full { grid-column: 1 / -1; }
  .field input, .field select { height: 46px; font-size: 16px; }
  .form-footer { display: block; padding: 13px 14px; }
  .integrity-note { margin-bottom: 12px; }
  .form-footer .btn-row { justify-content: stretch; }
  .form-footer .btn { flex: 1; }
  .result-top { grid-template-columns: 1fr; padding: 15px 16px; }
  .result-top .btn-row { order: 2; }
  .credit-flow { padding: 17px 16px; }
  .metric-value { font-size: 27px; }
  .result-grid { grid-template-columns: 1fr; }
  .result-block { padding: 16px; }
  .result-grid .result-block:last-child { grid-column: auto; }
  .result-actions { display: grid; grid-template-columns: 1fr 1fr; padding: 12px 16px; }
  .result-actions .actions-right { display: contents; }
  .result-actions .btn { width: 100%; }
  .desktop-only { display: none !important; }
  .amort-grid { grid-template-columns: 1fr; gap: 15px; }
  .or { place-items: start; padding-left: 13px; }
  .edit-strip { padding: 13px; }
  .edit-strip .fields { grid-template-columns: 1fr 1fr; }
  .doc-toolbar { align-items: flex-start; }
  .paper-preview { min-height: 0; padding: 22px 18px; box-shadow: none; }
  .paper-title h1 { font-size: 28px; }
  .paper-context, .paper-two { grid-template-columns: 1fr; gap: 12px; }
}

@media print {
  .shellbar, .crumbbar, .doc-toolbar { display: none !important; }
  body, .page, .doc-stage { background: #fff; }
  .page { width: 100%; padding: 0; }
  .paper-preview { width: 100%; min-height: 100vh; border: 0; box-shadow: none; }
}

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

/* Refinamento integrado R3 — preserva a paleta consolidada e amplia a plataforma. */
.brand-button { padding: 0; border: 0; color: inherit; background: transparent; text-align: left; }
.module-nav { min-height: 46px; display: flex; align-items: stretch; gap: 3px; padding: 0 32px; overflow-x: auto; background: var(--paper); border-bottom: 1px solid var(--line); scrollbar-width: thin; }
.module-link { position: relative; flex: 0 0 auto; padding: 0 14px; border: 0; color: var(--muted); background: transparent; font-size: 12px; font-weight: 700; white-space: nowrap; }
.module-link::after { content: ""; position: absolute; inset: auto 14px -1px; height: 3px; background: transparent; }
.module-link:hover { color: var(--navy); }
.module-link.active { color: var(--accent-dark); }
.module-link.active::after { background: var(--accent); }
.btn:disabled { cursor: not-allowed; opacity: .45; filter: grayscale(.25); }
.numeric-field input, .product-card dd, .timeline strong, .impact-grid strong, .paper-preview, .comparison-submit, .scene-number { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.compact-value { padding-top: 9px; font-size: 16px; }

.platform-hero { min-height: 330px; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr); overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.platform-hero .home-copy { padding: 42px; }
.platform-hero h1 { max-width: 760px; font-size: clamp(38px,4.8vw,64px); }
.platform-hero .lede { max-width: 670px; margin: 16px 0 26px; font-size: 16px; line-height: 1.55; }
.platform-note { display: flex; flex-direction: column; justify-content: flex-end; gap: 15px; padding: 32px; color: #edf2f2; background: linear-gradient(145deg,var(--navy),var(--navy-2)); }
.platform-note span { color: #f0b09c; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; }
.platform-note strong { font-family: Georgia,serif; font-size: 26px; line-height: 1.2; font-weight: 400; }
.platform-note small { color: #c8d2d6; }
.module-section { margin-top: 18px; padding: 22px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 12px; }
.section-heading h2 { margin: 0; font-size: 23px; }
.demo-badge, .audit-badge { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--navy-2); background: var(--canvas); font-size: 10px; font-weight: 760; text-transform: uppercase; letter-spacing: .08em; }
.module-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid var(--line); }
.module-card { min-width: 0; display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: start; padding: 18px 14px; border: 0; border-right: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; }
.module-card:last-child { border-right: 0; }
.module-card:hover { background: var(--surface-subtle); }
.module-number { color: var(--accent); font-weight: 800; }
.module-card strong,.module-card small { display: block; }
.module-card strong { margin-bottom: 5px; }
.module-card small { color: var(--muted); line-height: 1.35; }

.module-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(280px,.45fr); gap: 18px; align-items: stretch; }
.module-form { min-width: 0; }
.module-explainer { position: relative; min-height: 500px; display: flex; flex-direction: column; justify-content: space-between; padding: 24px; overflow: hidden; color: #fff; border-radius: var(--radius); background: var(--navy); }
.module-explainer::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(16,31,38,.16),rgba(16,31,38,.96)),var(--module-image) center/cover; }
.module-explainer > * { position: relative; z-index: 1; }
.module-explainer .eyebrow { color: #f0b09c; }
.module-explainer h2 { font-family: Georgia,serif; font-size: 28px; font-weight: 400; line-height: 1.15; }
.module-explainer p { color: #d5dfe1; line-height: 1.55; }
.rule-list { display: grid; gap: 1px; background: rgba(255,255,255,.22); }
.rule-list span { display: flex; justify-content: space-between; gap: 15px; padding: 11px; background: rgba(18,39,47,.82); font-size: 12px; }
.twelve-strip { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); border-top: 1px solid var(--line); }
.twelve-strip div { padding: 15px 20px; background: var(--surface-subtle); }
.twelve-strip span,.twelve-strip strong { display: block; }
.twelve-strip span { margin-bottom: 6px; color: var(--muted); font-size: 11px; }

.comparison-builder { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.comparison-input { min-width: 0; padding: 22px; }
.comparison-input + .comparison-input { border-left: 1px solid var(--line); }
.financing-input { box-shadow: inset 0 4px #2d6e9f; }
.consortium-input { box-shadow: inset 0 4px #2c7d69; }
.input-head { display: flex; gap: 13px; margin-bottom: 20px; }
.input-head > span { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--muted); font-size: 11px; font-weight: 800; }
.input-head h2 { margin: 0 0 3px; }
.input-head p { margin: 0; color: var(--muted); font-size: 12px; }
.compact-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
.compact-fields-bank { grid-template-columns: 1fr 1fr; }
.system-toggle { display: flex; width: 100%; height: 39px; border: 1px solid #bbb7ad; border-radius: 6px; overflow: hidden; background: #fff; }
.system-toggle button { flex: 1; border: 0; color: var(--muted); background: transparent; font-size: 12px; font-weight: 720; }
.system-toggle button + button { border-left: 1px solid #bbb7ad; }
.system-toggle button.is-active { color: #fff; background: var(--accent-primary); }
.comparison-submit { grid-column: 1/-1; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px 22px; border-top: 1px solid var(--line); background: var(--surface-app); }
.comparison-submit strong,.comparison-submit span { display: block; }
.comparison-submit span { margin-top: 3px; color: var(--muted); font-size: 12px; }
.comparison-result,.incc-result { overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.comparison-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 28px; padding: 24px 28px 20px; }
.incc-result > .comparison-head { background: #fff; }
.comparison-head h1 { max-width: 720px; margin-bottom: 8px; font-size: clamp(23px, 2.8vw, 28px); line-height: 1.12; letter-spacing: -.03em; }
.comparison-head p:last-child { margin: 0; max-width: 560px; color: var(--muted); line-height: 1.5; }
.comparison-head .btn { white-space: nowrap; }
.comparison-result .eyebrow { color: var(--text-secondary); }
.comparison-result .scenario-facts dt,
.comparison-result .flow-row > span { font-family: "Cascadia Mono", Consolas, "Segoe UI", monospace; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .09em; }
.comparison-products { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); }
.product-card { padding: 26px 28px; background: var(--paper); }
.product-card h2 { margin-bottom: 5px; font-size: 32px; letter-spacing: -.03em; }
.product-ref { margin: 0 0 14px; color: var(--muted); font-size: 12px; }
.comparison-result .aligned-metrics > div:last-child { border-bottom: 0; }
.product-ref { margin: 0 0 16px; color: var(--muted); font-size: 12px; }
.product-card .aligned-metrics div { min-height: 38px; align-items: center; }
.product-particulars { margin: 4px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.product-particulars p { margin: 0 0 6px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.product-particulars p:last-child { margin-bottom: 0; }
.financing-card { box-shadow: inset 0 3px #bd694e; }
.consortium-card { box-shadow: inset 0 3px #315d67; }
.product-card dl,.client-detail dl,.pdf-product dl { margin: 0; }
.product-card dl div,.client-detail dl div,.pdf-product dl div { display: flex; justify-content: space-between; gap: 20px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.product-card dt,.client-detail dt,.pdf-product dt { color: var(--muted); }
.product-card dd,.client-detail dd,.pdf-product dd { margin: 0; text-align: right; font-weight: 720; }
.decision-strip { display: grid; grid-template-columns: 1fr 1fr 1.5fr; gap: 1px; background: var(--line); border-top: 1px solid var(--line); }
.decision-strip > * { margin: 0; padding: 20px 28px; background: var(--surface-app); }
.decision-strip span,.decision-strip strong { display: block; }
.decision-strip span { margin-bottom: 7px; color: var(--muted); }
.decision-strip strong { font-size: 19px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.decision-strip p { align-self: center; color: var(--navy); font-size: 14px; line-height: 1.5; }

.incc-builder { box-shadow: none; }
.incc-policy-bar { padding: 14px 22px 4px; border-bottom: 1px solid var(--line); background: #f7f9f8; }
.incc-policy-bar .field { max-width: 520px; margin: 7px 0; }
.incc-policy-bar .system-toggle button.is-active { background: #007a5e; }
.incc-policy-bar .field-hint { min-height: 0; margin-top: 6px; }
.incc-metric-grid small { margin-top: 6px; color: var(--muted); font-size: 11px; }
.incc-reconcile { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); background: var(--surface-app); }
.incc-reconcile > div { padding: 16px 20px; border-right: 1px solid var(--line); }
.incc-reconcile > div:not(.incc-reconcile-total) { background: #fafafc; }
.incc-reconcile > div:last-child { border-right: 0; }
.incc-reconcile span, .incc-reconcile strong, .incc-reconcile small { display: block; }
.incc-reconcile span { color: var(--muted); font-size: 11px; }
.incc-reconcile strong { margin-top: 6px; font-size: 18px; }
.incc-reconcile small { margin-top: 5px; color: var(--muted); font-size: 11px; }
.incc-reconcile-total { background: var(--surface-subtle); }
.incc-reading { margin: 0; padding: 14px 22px 16px; color: var(--muted); font-size: 13px; line-height: 1.5; border-top: 1px solid var(--line); background: #fff; }
.incc-series { margin: 0; padding: 0 22px 18px; border-top: 1px solid var(--line); background: #fff; }
.incc-series summary { cursor: pointer; padding: 14px 0; color: var(--navy); font-size: 13px; font-weight: 750; }
.incc-series summary:hover { text-decoration: underline; }
.incc-table-wrap { overflow-x: auto; max-height: 420px; margin-bottom: 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.incc-table { width: 100%; min-width: 1080px; border-collapse: collapse; font-size: 12px; }
.incc-legend { margin: 0 0 8px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.incc-table th, .incc-table td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
.incc-table th { position: sticky; top: 0; color: var(--muted); background: var(--surface-app); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.incc-table td:last-child, .incc-table th:last-child { white-space: normal; min-width: 180px; }
.incc-table tr.is-contemplation td { background: #eef3f1; font-weight: 650; }
.timeline { display: grid; grid-template-columns: 1fr minmax(60px,.35fr) 1fr minmax(60px,.35fr) 1fr; align-items: center; padding: 34px 28px; }
.timeline-node { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.timeline-node.active { color: #fff; background: #007a5e; border-color: #007a5e; }
.timeline-node span,.timeline-node strong,.timeline-node small { display: block; }
.timeline-node span { margin-bottom: 7px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.timeline-node.active span,.timeline-node.active small { color: #d7e1e3; }
.timeline-node strong { font-size: 22px; }
.timeline-node small { margin-top: 5px; color: var(--muted); }
.timeline-line { height: 1px; background: var(--line-strong); }
.impact-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); }
.impact-grid section { padding: 20px; border-right: 1px solid var(--line); }
.impact-grid section:last-child { border-right: 0; }
.impact-grid span,.impact-grid strong,.impact-grid small { display: block; }
.impact-grid span { min-height: 30px; color: var(--muted); font-size: 11px; }
.impact-grid strong { margin-top: 6px; font-size: 20px; }
.impact-emphasis { color: #fff; background: var(--navy-2); }
.impact-emphasis span,.impact-emphasis small { color: #d6e0e2; }

.clients-shell { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); gap: 18px; }
.clients-list,.client-detail { min-width: 0; padding: 20px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.client-search { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: end; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.client-search .field-hint { display: none; }
.client-rows { display: grid; }
.client-row { min-width: 0; display: grid; grid-template-columns: 40px minmax(0,1fr) auto; gap: 12px; align-items: center; min-height: 68px; padding: 10px; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; }
.client-row > span:nth-child(2),.client-detail dd { min-width: 0; overflow-wrap: anywhere; }
.client-row:hover,.client-row.active { background: var(--surface-subtle); }
.client-row.active { box-shadow: inset 3px 0 var(--accent); }
.client-avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--navy-2); font-size: 11px; font-weight: 800; }
.client-row strong,.client-row small { display: block; }
.client-row small { margin-top: 3px; color: var(--muted); }
.client-detail h2 { font-size: 28px; }
.client-detail .btn { width: 100%; margin-top: 22px; }
.privacy-note { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; line-height: 1.5; }
.empty-state { display: grid; gap: 5px; padding: 28px; color: var(--muted); text-align: center; }

@media (min-width: 1101px) {
  .module-form .fields { grid-template-columns: repeat(5,minmax(0,1fr)); }
}

.paper-hero { min-height: 215px; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(250px,.85fr); overflow: hidden; color: #fff; background: linear-gradient(130deg,var(--navy),var(--navy-2)); }
.paper-hero > div { padding: 34px; align-self: center; }
.paper-hero .paper-kicker { color: #f0b09c; }
.paper-hero h1 { max-width: 580px; margin: 10px 0; font-family: Georgia,serif; font-size: 38px; font-weight: 400; line-height: 1.08; }
.paper-hero p { margin: 0; color: #d9e2e3; }
.paper-hero img { width: 100%; height: 100%; min-height: 215px; object-fit: cover; }
.commercial-paper .credit-flow { margin-inline: -1px; }
.specialized-paper { padding: 0 46px 38px; }
.specialized-paper .paper-hero { margin: 0 -46px; }
.product-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.pdf-product { padding: 18px; border: 1px solid var(--line); border-top-width: 4px; }
.pdf-product.finance { border-top-color: #2d6e9f; }
.pdf-product.consortium { border-top-color: #2c7d69; }
.pdf-decision { display: grid; grid-template-columns: auto 1fr; gap: 8px 24px; align-items: center; }
.pdf-decision span { color: var(--muted); }
.pdf-decision strong { font-size: 25px; }
.pdf-decision p { grid-column: 1/-1; margin: 0; }
.paper-timeline { padding-inline: 0; }

.presentation-rich { position: relative; height: 100vh; min-height: 600px; overflow: hidden; color: #edf2f2; background:
  radial-gradient(circle at 18% 28%,rgba(63,111,125,.22),transparent 34%),
  radial-gradient(circle at 82% 78%,rgba(170,92,63,.18),transparent 32%),#10232b; }
.presentation-rich.preparing .presentation-stage,.presentation-rich.updating .presentation-stage { opacity: .56; }
.presentation-progress { position: absolute; inset: 0 0 auto; height: 2px; background: rgba(255,255,255,.13); }
.presentation-progress span { display: block; height: 100%; background: #e3a081; transition: width .55s ease; }
.presentation-header { position: absolute; z-index: 4; inset: 2px 0 auto; height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 0 38px; border-bottom: 1px solid rgba(255,255,255,.12); }
.presentation-close { padding: 9px 12px; border: 1px solid rgba(255,255,255,.24); color: #dfe7e8; background: transparent; border-radius: 6px; font-size: 11px; }
.presentation-status { display: inline-flex; align-items: center; gap: 8px; color: #c9d5d7; font-size: 11px; letter-spacing: .04em; }
.presentation-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #78c7a5; }
.presentation-status.preparing::before { background: #e0ad57; }
.presentation-status.updating::before { background: #77b6cd; box-shadow: 0 0 0 5px rgba(119,182,205,.13); }
.presentation-rail { position: absolute; z-index: 4; left: 24px; top: 50%; display: grid; gap: 14px; transform: translateY(-50%); }
.presentation-rail button { display: flex; align-items: center; gap: 8px; padding: 2px 0; border: 0; color: #d5dfe0; background: transparent; }
.presentation-rail button span { width: 12px; height: 1px; background: rgba(255,255,255,.3); transition: width .2s; }
.presentation-rail button em { opacity: 0; font-style: normal; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; transition: opacity .2s; }
.presentation-rail button:hover em,.presentation-rail button.active em { opacity: 1; }
.presentation-rail button.active span { width: 27px; background: #e3a081; }
.presentation-stage { position: absolute; inset: 73px 0 64px; padding: 5vh 8vw 4vh 10vw; transition: opacity .25s; }
.scene { width: min(1260px,100%); height: 100%; margin: auto; }
.opening-scene { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(360px,.95fr); align-items: center; gap: 7vw; }
.scene-copy h1 { margin: 12px 0 22px; font-family: Georgia,serif; font-size: clamp(54px,7vw,104px); font-weight: 400; line-height: .86; letter-spacing: -.055em; }
.scene-copy h1 em { color: #e3a081; font-weight: 400; }
.scene-copy > p:last-child { color: #b9c8ca; font-size: 15px; }
.presentation-eyebrow { color: #e3a081; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .18em; }
.scene-media { height: min(62vh,590px); overflow: hidden; border-radius: 50% 50% 8px 8px; box-shadow: 0 32px 70px rgba(0,0,0,.28); }
.scene-media img { width: 100%; height: 100%; object-fit: cover; }
.focus-scene { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.scene-label { display: block; margin-top: 18px; color: #bdcbcd; font-size: clamp(18px,2vw,28px); }
.scene-number { display: block; margin: 18px 0 25px; color: #fff; font-family: Georgia,serif; font-size: clamp(62px,8vw,122px); font-weight: 400; line-height: .9; letter-spacing: -.05em; }
.scene-equation { display: flex; align-items: center; gap: 24px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.18); color: #b9c8ca; font-size: 15px; }
.scene-equation b { color: #e3a081; font-size: 22px; }
.scene-equation strong { display: block; margin-top: 5px; color: #fff; font-size: 23px; }
.split-scene { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 8vw; }
.split-scene h2,.conditions-scene h2 { margin: 14px 0 18px; font-family: Georgia,serif; font-size: clamp(52px,6vw,88px); font-weight: 400; line-height: .95; letter-spacing: -.045em; }
.split-scene p:not(.presentation-eyebrow) { max-width: 590px; color: #b9c8ca; font-size: 17px; line-height: 1.6; }
.scene-facts,.choice-preview { display: grid; gap: 1px; background: rgba(255,255,255,.15); }
.scene-facts span,.choice-preview span { display: block; padding: 25px; background: rgba(16,35,43,.92); }
.scene-facts small,.choice-preview span { color: #b9c8ca; }
.scene-facts strong,.choice-preview strong { display: block; margin-top: 8px; color: #fff; font-family: Georgia,serif; font-size: 34px; font-weight: 400; }
.accent-scene { border-block: 1px solid rgba(227,160,129,.36); }
.accent-scene.blue { border-color: rgba(119,182,205,.42); }
.scene-support { color: #b9c8ca; font-size: 17px; }
.conditions-scene { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 7vw; }
.conditions-scene dl { display: grid; gap: 1px; margin: 0; background: rgba(255,255,255,.14); }
.conditions-scene dl div { display: flex; justify-content: space-between; gap: 20px; padding: 18px 20px; background: rgba(16,35,43,.94); }
.conditions-scene dt { color: #b9c8ca; }
.conditions-scene dd { margin: 0; color: #fff; font-size: 20px; font-weight: 700; }
.presentation-footer { position: absolute; z-index: 4; inset: auto 38px 0 78px; height: 64px; display: flex; justify-content: space-between; align-items: center; color: #aebfc1; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.presentation-footer div { display: flex; gap: 8px; }
.presentation-footer button { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.23); border-radius: 50%; color: #fff; background: transparent; }
.presentation-footer button:disabled { opacity: .22; }
.session-overlay { position: absolute; z-index: 10; left: 50%; top: 90px; display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; padding: 14px 20px; color: var(--ink); background: var(--paper); border: 1px solid #cba35a; box-shadow: var(--shadow); transform: translateX(-50%); }
.session-overlay > span { grid-row: 1/3; width: 9px; height: 9px; border-radius: 50%; background: #d79c3c; }
.session-overlay strong { font-size: 12px; }
.session-overlay small { color: var(--muted); }
.presentation-waiting { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; text-align: center; background: #10232b; }
.presentation-waiting h1 { max-width: 780px; margin: 18px 0; font-family: Georgia,serif; font-size: clamp(44px,6vw,80px); font-weight: 400; }
.presentation-waiting > p:not(.presentation-eyebrow) { color: #b9c8ca; }
.waiting-mark { width: 58px; height: 58px; display: grid; place-items: center; margin-bottom: 26px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; }
.presentation-waiting .presentation-status { margin-top: 32px; }

@media (max-width: 1100px) {
  .module-grid { grid-template-columns: repeat(3,1fr); }
  .module-card { border-bottom: 1px solid var(--line); }
  .module-layout { grid-template-columns: 1fr; }
  .module-explainer { min-height: 300px; }
  .comparison-builder { grid-template-columns: 1fr; }
  .comparison-input + .comparison-input { border-left: 0; border-top: 1px solid var(--line); }
  .compact-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .compact-fields-bank { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 801px) and (max-height: 760px) {
  .module-nav { min-height: 39px; }
  .platform-hero { min-height: 270px; }
  .platform-hero .home-copy { padding-block: 28px; }
  .module-section { padding-block: 15px; }
  .presentation-stage { padding-block: 3vh; }
  .scene-media { height: 52vh; }
}

@media (max-width: 800px) {
  .module-nav { padding: 0 12px; }
  .platform-hero { grid-template-columns: 1fr; }
  .platform-note { display: none; }
  .module-grid { grid-template-columns: 1fr 1fr; }
  .module-card:nth-child(even) { border-right: 0; }
  .comparison-products,.clients-shell { grid-template-columns: minmax(0,1fr); }
  .scenario-facts { grid-template-columns: repeat(3, minmax(0,1fr)); row-gap: 16px; }
  .scenario-facts div:nth-child(3n+1) { padding-left: 0; border-left: 0; }
  .decision-strip { grid-template-columns: 1fr 1fr; }
  .decision-strip p { grid-column: 1/-1; }
  .timeline { grid-template-columns: 1fr; gap: 9px; }
  .timeline-line { width: 1px; height: 24px; margin-left: 28px; }
  .impact-grid { grid-template-columns: 1fr 1fr; }
  .impact-grid section:nth-child(2) { border-right: 0; }
  .impact-grid section { border-bottom: 1px solid var(--line); }
  .incc-reconcile { grid-template-columns: 1fr; }
  .incc-reconcile > div { border-right: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 560px) {
  .view-tag { display: none; }
  .module-link { padding-inline: 11px; font-size: 11px; }
  .platform-hero .home-copy { padding: 26px 21px; }
  .platform-hero h1 { font-size: 38px; }
  .module-section { padding: 18px; }
  .section-heading { align-items: flex-start; }
  .module-grid { grid-template-columns: 1fr; }
  .module-card { border-right: 0; }
  .module-explainer { min-height: 340px; }
  .compact-fields { grid-template-columns: 1fr 1fr; }
  .comparison-submit,.comparison-head { display: grid; }
  .comparison-submit .btn { width: 100%; }
  .comparison-products { grid-template-columns: 1fr; }
  .decision-strip,.impact-grid { grid-template-columns: 1fr; }
  .decision-strip p { grid-column: auto; }
  .impact-grid section { border-right: 0; }
  .incc-reconcile { grid-template-columns: 1fr; }
  .incc-reconcile > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .twelve-strip { grid-template-columns: 1fr; }
  .client-search { grid-template-columns: 1fr; }
  .client-search .btn { width: 100%; }
  .client-row { grid-template-columns: 38px 1fr; }
  .client-row > .num { grid-column: 2; }
  .paper-hero { grid-template-columns: 1fr; }
  .paper-hero img { height: 170px; min-height: 0; }
  .specialized-paper { padding-inline: 18px; }
  .specialized-paper .paper-hero { margin-inline: -18px; }
  .product-columns { grid-template-columns: 1fr; }
  .pdf-decision { grid-template-columns: 1fr; }
  .pdf-decision p { grid-column: auto; }
  .doc-toolbar { display: grid; }
  .doc-toolbar .btn-row { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .doc-toolbar .btn-primary { grid-column: 1/-1; }
}

@media print {
  .module-nav { display: none !important; }
  .specialized-paper { padding-inline: 12mm; }
  .specialized-paper .paper-hero { margin-inline: -12mm; }
}

/* Compatibilidade mínima entre o HTML original da R4 e os componentes Blazor. */
.app-form { min-height: 100vh; }
.workspace-wrap { overflow: visible; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 1px 0 rgba(255,255,255,.8) inset; }
.workspace-wrap > .workspace { border: 0; border-radius: var(--radius) var(--radius) 0 0; }
.workspace-wrap > .form-footer { border-top: 1px solid var(--line); }
.control { position: relative; }
.control.has-prefix input { padding-left: 34px; }
.control.has-suffix input { padding-right: 54px; }
.affix { position: absolute; z-index: 1; top: 50%; color: var(--muted); font-size: 11px; font-weight: 650; transform: translateY(-50%); pointer-events: none; }
.affix.prefix { left: 10px; }
.affix.suffix { right: 10px; }
.validation-summary { padding: 12px 20px 0; color: var(--danger); font-size: 11px; }
.form-error-banner { margin: 8px 20px; padding: 10px; color: var(--danger); background: var(--danger-soft); border: 1px solid #dea19d; border-radius: 6px; }
.policy-note { display: flex; align-items: center; gap: 10px; grid-column: span 4; padding: 10px 12px; border-left: 3px solid var(--accent); background: var(--accent-soft); font-size: 11px; }
.policy-note strong { color: var(--accent-dark); white-space: nowrap; }
.policy-note span { color: var(--muted); }
.composition-read { display: flex; flex-direction: column; justify-content: center; gap: 3px; min-width: 0; }
.composition-read > span { color: var(--muted); font-size: 10px; font-weight: 760; text-transform: uppercase; letter-spacing: .07em; }
.composition-read small { color: var(--muted); font-size: 10px; }
.muted-result { opacity: .46; filter: grayscale(.28); }
.proposal-modes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 720px; margin: 0 0 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-app); }
.proposal-mode { min-width: 0; display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 10px; align-items: center; padding: 10px 14px; border: 0; border-right: 1px solid var(--line); color: var(--muted); background: transparent; text-align: left; }
.proposal-mode:last-child { border-right: 0; }
.proposal-mode:not(:disabled):hover { background: rgba(255,255,255,.55); }
.proposal-mode.is-active { color: var(--navy); background: #fff; box-shadow: inset 0 -3px 0 var(--accent); }
.proposal-mode:disabled { cursor: not-allowed; opacity: .5; }
.proposal-mode-index { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 9px; font-weight: 800; }
.proposal-mode strong,.proposal-mode small { display: block; }
.proposal-mode strong { font-size: 12px; }
.proposal-mode small { margin-top: 2px; font-size: 10px; font-weight: 500; color: var(--muted); }

@media (min-width: 1101px) {
  .simulation-workspace .form-grid { justify-content: start; align-items: start; }
  .simulation-workspace .identity-grid { grid-template-columns: minmax(260px,340px) minmax(180px,220px) 178px; }
  .simulation-workspace .acquisition-grid { grid-template-columns: minmax(160px,180px) minmax(260px,372px) 178px; }
  .simulation-workspace .conditions-grid { grid-template-columns: repeat(5,minmax(110px,148px)); }
  .simulation-workspace .bid-grid { grid-template-columns: 190px 190px 160px minmax(180px,220px); }
  .simulation-workspace .field input,.simulation-workspace .field select,.simulation-workspace .asset-trigger { height: 36px; }
}
.proposal-validity { align-self: start; }
.proposal-validity strong { min-height: 36px; display: flex; align-items: center; padding: 0 10px; border-left: 2px solid var(--line-strong); color: #565752; font-size: 15px; font-weight: 520; }
.output-overlay { position: fixed; z-index: 110; inset: 0; overflow: auto; }
html.pdf-preview-open,
html.pdf-preview-open body { overflow: hidden; }
.pdf-overlay {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background:
    radial-gradient(circle at 15% 12%, rgba(31, 184, 212, .13), transparent 24%),
    linear-gradient(145deg, #dfe9f1, #eef4f8);
}
.pdf-chrome {
  flex: 0 0 auto;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 64px;
  padding: 10px 28px;
  background: color-mix(in srgb, #fff 78%, #dfe9f1);
  border-bottom: 1px solid #d7e3ee;
  box-shadow: 0 1px 0 rgba(255,255,255,.7) inset;
}
.pdf-chrome-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
}
.pdf-chrome-kicker {
  margin: 0;
  color: #1267a6;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.pdf-chrome-copy strong {
  color: #08284a;
  font-size: 16px;
  font-weight: 720;
  letter-spacing: -.02em;
}
.pdf-chrome-file {
  max-width: min(56vw, 640px);
  overflow: hidden;
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pdf-chrome-tools {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 14px;
}
.pdf-chrome-actions { display: flex; flex: 0 0 auto; gap: 8px; }
.pdf-chrome .btn { min-height: 36px; padding: 7px 14px; font-size: 13px; }
.pdf-zoom {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 1px;
  padding: 2px;
  border: 1px solid #d7e3ee;
  border-radius: 999px;
  background: color-mix(in srgb, #fff 72%, #dfe9f1);
}
.pdf-zoom-btn,
.pdf-zoom-value {
  margin: 0;
  border: 0;
  background: transparent;
  color: #1267a6;
  cursor: pointer;
  font-family: inherit;
}
.pdf-zoom-btn {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  color: #08284a;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
}
.pdf-zoom-btn:hover:not(:disabled),
.pdf-zoom-value:hover { background: color-mix(in srgb, #fff 88%, #dfe9f1); }
.pdf-zoom-btn:disabled { color: #9aa8b6; cursor: default; }
.pdf-zoom-value {
  min-width: 3.4em;
  padding: 0 2px;
  color: #08284a;
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
  line-height: 28px;
}
.pdf-desk {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: flex;
  justify-content: center;
  padding: 20px 0 56px;
  background:
    radial-gradient(circle at 15% 12%, rgba(31, 184, 212, .13), transparent 24%),
    linear-gradient(145deg, #dfe9f1, #eef4f8);
}
.pdf-stage {
  width: 100%;
  flex: 0 0 auto;
}
.commercial-pdf-frame {
  width: 100%;
  max-width: none;
  height: 297mm;
  flex: 0 0 auto;
  border: 0;
  overflow: hidden;
  background: transparent;
}
.commercial-pdf-frame.is-detailed { height: 594mm; }

@media (max-width: 700px) {
  .pdf-chrome {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 10px;
    min-height: 0;
    padding: 8px 12px;
  }
  .pdf-chrome-copy { min-width: 0; }
  .pdf-chrome-kicker { font-size: 9px; }
  .pdf-chrome-copy strong { font-size: 14px; }
  .pdf-chrome-file { display: none; }
  .pdf-chrome-tools { display: contents; }
  .pdf-zoom { grid-column: 2; grid-row: 1; align-self: center; }
  .pdf-zoom-btn { width: 40px; height: 40px; }
  .pdf-zoom-value { min-width: 3.6em; line-height: 40px; }
  .pdf-chrome-actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    width: 100%;
  }
  .pdf-chrome .btn { min-height: 44px; }
  .pdf-chrome .btn-primary { grid-column: auto; }
  .pdf-desk { padding: 8px 0 28px; overflow-y: scroll; }
}
section.presentation-rich { position: fixed; z-index: 120; inset: 0; }
#blazor-error-ui { display: none; position: fixed; z-index: 300; inset: auto 0 0; padding: 12px; color: var(--danger); background: var(--danger-soft); }
#blazor-error-ui .dismiss { float: right; }

@media (max-width: 800px) {
  .nav-tools > span,.nav-support > span { display: none; }
  .module-nav { gap: 4px; overflow-x: auto; }
  .nav-primary,.nav-tools,.nav-support { flex: 0 0 auto; }
}

@media (max-width: 700px) {
  .proposal-modes { grid-template-columns: 1fr; max-width: none; }
  .proposal-mode { border-right: 0; border-bottom: 1px solid var(--line); }
  .proposal-mode:last-child { border-bottom: 0; }
  .workspace-wrap > .form-footer { align-items: stretch; flex-direction: column; }
  .workspace-wrap > .form-footer .btn-row { display: grid; grid-template-columns: 1fr 1fr; }
  .policy-note { grid-column: 1; align-items: flex-start; flex-direction: column; }
  section.presentation-rich { display: none; }
}

@media print {
  body > *:not(.output-overlay) { display: none !important; }
  .output-overlay { position: static; overflow: visible; background: #fff; }
  .pdf-chrome { display: none; }
  .pdf-desk { padding: 0; overflow: visible; }
  .commercial-pdf-frame { width: 100%; height: auto; min-height: 100vh; box-shadow: none; }
}

/* R4 — hierarquia de produto e componentes críticos */
.module-nav { justify-content: space-between; gap: 22px; overflow: visible; }
.nav-primary,.nav-tools,.nav-support { display: flex; align-items: center; gap: 4px; }
.nav-tools { margin-left: auto; }
.nav-tools > span,.nav-support > span { margin-right: 4px; color: #7c7c75; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; }
.nav-primary .module-link { color: var(--navy-2); font-weight: 800; }
.nav-primary .module-link.active { color: var(--accent-dark); }
.module-link:disabled { cursor: not-allowed; opacity: .45; }
.module-grid-secondary { grid-template-columns: repeat(3,minmax(0,1fr)); }

.asset-select { position: relative; z-index: 30; }
.asset-select.is-open { z-index: 31; }
.asset-trigger { width: 100%; height: 39px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 11px; border: 1px solid #bbb7ad; border-radius: 6px; color: var(--ink); background: #fff; text-align: left; }
.asset-trigger:focus-visible { outline: 3px solid rgba(31,82,96,.2); border-color: var(--navy-2); }
.asset-chevron { width: 18px; height: 18px; flex: 0 0 18px; color: var(--muted); transition: transform .16s ease; }
.asset-select.is-open .asset-chevron { transform: rotate(180deg); }
.asset-menu { position: absolute; z-index: 80; inset: calc(100% - 13px) 0 auto; max-height: 276px; overflow-y: auto; padding: 6px; border: 1px solid var(--border-subtle); border-radius: 8px; background: var(--surface-raised); box-shadow: 0 18px 42px rgba(20,34,39,.18); }
.asset-select.open-up .asset-menu { inset: auto 0 calc(100% + 4px); }
.asset-option { width: 100%; min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 9px; border: 0; border-radius: 5px; color: var(--ink); background: transparent; text-align: left; font-size: 12px; }
.asset-option:hover,.asset-option:focus-visible { background: var(--surface-subtle); outline: none; }
.asset-option[aria-selected="true"] { color: #fff; background: var(--navy-2); }
.asset-option small { color: inherit; font-size: 9px; opacity: .72; }

.optional-tools { display: flex; justify-content: space-between; align-items: center; gap: 22px; padding: 11px 20px; border-top: 1px solid var(--line); background: var(--surface-app); }
.optional-tools .eyebrow { margin-bottom: 2px; }
.optional-tools > div > span { color: var(--muted); font-size: 11px; }
.optional-tools p { margin-top: 3px; color: var(--muted); font-size: 12px; }
.source-card,.source-strip { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 20px; border: 1px solid var(--line); background: #edf1ef; }
.source-card { margin-bottom: 14px; border-radius: var(--radius); }
.source-strip { border-width: 0 0 1px; }
.incc-result .source-strip { background: #fff; }
.scenario-basis { padding: 20px 28px 22px; border-block: 1px solid var(--line); background: var(--surface-app); }
.scenario-basis-head { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 18px; }
.scenario-basis-head .eyebrow { margin: 0; color: var(--text-primary); }
.scenario-basis-head small { max-width: 520px; color: var(--text-secondary); font-size: 12px; line-height: 1.45; text-align: right; text-wrap: pretty; }
.scenario-facts { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-module); }
.scenario-facts div { min-width: 0; display: grid; align-content: start; gap: 7px; padding: 14px 16px; }
.scenario-facts div + div { border-left: 1px solid var(--line); }
.scenario-facts dt { color: var(--text-secondary); min-height: 2.6em; line-height: 1.3; display: flex; align-items: flex-start; }
.scenario-facts dd { margin: 0; color: var(--text-primary); font-size: 17px; line-height: 1.25; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.own-bid-context { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 14px; overflow: hidden; border: 1px solid #b8cbc3; border-radius: 8px; background: #f4f8f6; }
.own-bid-context > div { min-width: 0; padding: 13px 15px; }
.own-bid-context > div + div { border-left: 1px solid #d4dfda; }
.own-bid-context span,.own-bid-context strong { display: block; }
.own-bid-context span { min-height: 2.6em; color: var(--text-secondary); font-size: 11px; line-height: 1.3; }
.own-bid-context strong { margin-top: 6px; color: var(--text-primary); font-size: 16px; font-variant-numeric: tabular-nums; }
.own-bid-context p { grid-column: 1 / -1; margin: 0; padding: 10px 15px; border-top: 1px solid #d4dfda; color: #355a49; font-size: 11.5px; line-height: 1.45; }
@media (max-width: 1140px) {
  .scenario-facts { grid-template-columns: repeat(3, minmax(0,1fr)); row-gap: 16px; }
  .scenario-facts div:nth-child(3n+1) { border-left: 0; }
}
.source-card div,.source-strip div { min-width: 0; }
.source-card span,.source-strip span,.source-card small,.source-strip small { display: block; }
.source-card > div > span,.source-strip > div > span { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.source-card strong,.source-strip strong { display: block; margin: 4px 0 2px; font-size: 17px; }
.source-card small,.source-strip small { color: var(--muted); }
.source-status { flex: 0 0 auto; padding: 7px 10px; border: 1px solid #afc2b8; border-radius: 99px; color: #355a49 !important; background: #f7faf8; font-size: 10px !important; font-weight: 800; }
.incc-base-context { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding: 16px 22px; border-bottom: 1px solid var(--line); background: #fff; }
.incc-base-context h2 { grid-column: 1 / -1; margin: 0 0 10px; color: var(--ink); font-size: 14px; }
.incc-base-context > div { padding: 9px 14px; border-left: 3px solid #91ada2; background: #fff; }
.incc-base-context > div + div { margin-left: 10px; }
.incc-base-context span,.incc-base-context strong { display: block; }
.incc-base-context span { color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.incc-base-context strong { margin-top: 4px; color: var(--ink); font-size: 14px; }
.incc-base-context p { grid-column: 1 / -1; margin: 10px 0 0; color: var(--muted); font-size: 11.5px; line-height: 1.45; }

.flow-compare,.incc-bars { padding: 24px 28px 22px; border-top: 1px solid var(--line); }
.flow-note { margin: 16px 0 0; color: var(--text-tertiary); font-size: 11px; }
.flow-terms-note { margin: 14px 0 0; color: var(--text-secondary); font-size: 11.5px; line-height: 1.45; }
.flow-terms-note + .flow-note { margin-top: 6px; }
.flow-row { display: grid; grid-template-columns: 120px minmax(120px,1fr) 150px; align-items: center; gap: 14px; margin-top: 12px; }
.flow-row > span { color: var(--muted); font-size: 11px; font-weight: 750; }
.flow-row > div,
.flow-track { min-width: 0; height: 13px; overflow: hidden; border-radius: 99px; background: #e2e0d9; }
.flow-bar,
.flow-row i { display: block; width: var(--flow, 0%); max-width: 100%; height: 100%; border-radius: inherit; background: #bd694e; }
.flow-row.consortium .flow-bar,
.flow-row.consortium i,
.flow-row.incc .flow-bar,
.flow-row.incc i { background: #315d67; }
.flow-row.neutral .flow-bar,
.flow-row.neutral i { background: #9d9b91; }
.flow-row strong { text-align: right; font-variant-numeric: tabular-nums; }
.incc-bars { background: var(--surface-app); }
.empty-tool { min-height: 440px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(28px,7vw,80px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.empty-tool h1 { max-width: 680px; margin: 8px 0; }
.empty-tool p:not(.eyebrow) { max-width: 580px; margin-bottom: 22px; color: var(--muted); }

@media (min-width: 801px) and (max-height: 780px) {
  .shellbar { height: 54px; }
  .module-nav { min-height: 38px; }
  .crumbbar { height: 34px; min-height: 34px; }
  .page { padding-top: 10px; padding-bottom: 16px; }
  .page-head { align-items: center; margin-bottom: 8px; }
  .page-head h1 { font-size: 30px; line-height: 1; }
  .page-head .lede { display: none; }
  .workspace-head { padding: 8px 16px; }
  .form-sections { padding: 0 16px 5px; }
  .form-section { grid-template-columns: 160px minmax(0,1fr); gap: 16px; padding-block: 6px; }
  .field label,.field-label { margin-bottom: 3px; }
  .field input,.field select,.asset-trigger { height: 34px; }
  .field-hint { min-height: 11px; margin-top: 2px; font-size: 8px; }
  .form-footer { padding: 7px 16px; }
}

@media (max-width: 800px) {
  .module-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 7px 12px; }
  .nav-primary,.nav-tools,.nav-support { display: contents; }
  .nav-tools > span,.nav-support > span { display: none; }
  .module-link { min-height: 40px; justify-content: center; border: 1px solid var(--line); border-radius: 5px; }
  .module-grid-secondary { grid-template-columns: 1fr; }
  .optional-tools { align-items: flex-start; }
  .source-card,.source-strip { align-items: flex-start; }
  .scenario-basis-head { display: grid; gap: 8px; }
  .scenario-basis-head small { max-width: none; text-align: left; }
  .own-bid-context { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .own-bid-context > div:nth-child(odd) { border-left: 0; }
}

@media (max-width: 560px) {
  .asset-trigger { height: 46px; font-size: 16px; }
  .asset-menu { inset: calc(100% - 13px) 0 auto; max-height: min(292px,48vh); }
  .asset-select.open-up .asset-menu { inset: calc(100% - 13px) 0 auto; }
  .asset-option { min-height: 42px; font-size: 14px; }
  .optional-tools,.source-card,.source-strip { display: grid; }
  .optional-tools .btn-row { display: grid; width: 100%; }
  .flow-row { grid-template-columns: 1fr auto; gap: 6px 10px; }
  .flow-row > div,
  .flow-track { grid-column: 1/-1; grid-row: 2; }
  .flow-row strong { grid-column: 2; grid-row: 1; }
  .scenario-facts { grid-template-columns: 1fr 1fr; row-gap: 14px; }
  .scenario-facts div { padding-inline: 12px; }
  .scenario-facts div:nth-child(3n+1) { border-left: 1px solid var(--line); }
  .scenario-facts div:nth-child(odd) { border-left: 0; }
  .own-bid-context,.incc-base-context { grid-template-columns: 1fr; }
  .own-bid-context > div + div { border-top: 1px solid #d4dfda; border-left: 0; }
  .own-bid-context span { min-height: 0; }
  .incc-base-context > div + div { margin: 8px 0 0; }
}

@media print {
  .optional-tools,.source-status { display: none !important; }
}

/* R5.2 · Direção D — Precision Executive sobre o motor real. */
.precision-mode-switch {
  max-width: 1180px;
  margin: 14px auto 0;
  padding-inline: clamp(16px, 3vw, 32px);
}

.precision-mode-switch .mode-switch {
  width: fit-content;
  padding: 3px;
  border: 1px solid var(--border-subtle);
  border-radius: 9px;
  background: var(--surface-subtle);
}

.precision-mode-switch .mode-option {
  min-height: 34px;
  padding: 6px 16px;
  border-radius: 6px;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 650;
}

.precision-mode-switch .mode-option.is-active {
  color: var(--surface-module);
  background: var(--accent-primary);
  box-shadow: none;
}

.precision-page-head {
  max-width: 1180px;
  margin-inline: auto;
}

.precision-page-head h1 { letter-spacing: -.045em; }
.precision-page-head .eyebrow { color: var(--accent-primary); }

.precision-workspace-wrap {
  max-width: 1180px;
  margin-inline: auto;
}

.precision-form-real,
.precision-result {
  overflow: clip;
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  background: var(--surface-module);
  box-shadow: 0 12px 34px rgba(29, 29, 31, .055);
}

.precision-form-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 22px 15px;
  border-bottom: 1px solid var(--border-subtle);
}

.precision-form-header > div:first-child > span,
.precision-form-status > span,
.precision-section-head > span,
.precision-optional > div:first-child > span {
  display: block;
  margin-bottom: 4px;
  color: var(--text-tertiary);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .105em;
  text-transform: uppercase;
}

.precision-form-header h2 {
  margin: 0;
  font-size: clamp(23px, 2.4vw, 30px);
  line-height: 1.05;
  letter-spacing: -.04em;
}

.precision-form-status { text-align: right; }
.precision-form-status strong { display: block; font-size: 13px; }

.precision-input-groups { padding: 0 22px 4px; }

.precision-input-group {
  display: grid;
  grid-template-columns: 172px minmax(0, 1fr);
  gap: 18px 22px;
  padding: 18px 0 10px;
  border-bottom: 0;
}

.precision-input-group + .precision-input-group { margin-top: 6px; }
.precision-input-group-last { border-bottom: 0; }

.precision-group-label {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  padding-top: 2px;
}

.precision-group-label > span {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--accent-primary) 34%, var(--border-subtle));
  border-radius: 50%;
  color: var(--accent-primary);
  font-size: 10px;
  font-weight: 800;
}

.precision-group-label h3 {
  margin: 1px 0 3px;
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: .01em;
  text-transform: uppercase;
}

.precision-group-label p {
  margin: 0;
  color: var(--text-secondary);
  font-size: 11px;
  line-height: 1.35;
}

.precision-input-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px 12px;
  align-items: start;
}

.precision-identity-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.precision-identity-grid > * { grid-column: span 2; }
.precision-identity-grid > .precision-span-2 { grid-column: span 2; }
.precision-acquisition-grid > * { grid-column: span 2; }
.precision-acquisition-grid > .precision-span-2 { grid-column: span 2; }
.precision-conditions-grid > * { grid-column: span 2; }
.precision-bid-grid > * { grid-column: span 2; }
.precision-bid-grid > .precision-composition { grid-column: span 6; }
.precision-span-3 { grid-column: span 3 !important; }

.precision-form-real .field label,
.precision-form-real .field-label {
  margin-bottom: 5px;
  color: var(--text-primary);
  font-size: 11px;
  font-weight: 750;
}

.precision-form-real .field input,
.precision-form-real .field select,
.precision-form-real .asset-trigger {
  min-height: 38px;
  border-color: var(--border-subtle);
  border-radius: 7px;
  background: var(--surface-raised);
}

.precision-form-real .field input:focus,
.precision-form-real .field select:focus,
.precision-form-real .asset-trigger:focus-visible {
  border-color: var(--accent-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-primary) 13%, transparent);
}

.precision-form-real .field-hint {
  min-height: 12px;
  margin-top: 3px;
  color: var(--text-tertiary);
  font-size: 9px;
  line-height: 1.25;
}

.precision-form-real .control .affix { color: var(--text-secondary); }
.precision-form-real input[readonly] { color: var(--text-secondary); background: var(--surface-subtle); cursor: default; }

.bid-entry { min-width: 0; }
.bid-entry-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 5px; }
.bid-entry-head .field-label { margin: 0; }
.bid-entry > .field { margin: 0; }
.bid-mode-switch { display: inline-flex; overflow: hidden; border: 1px solid var(--border-subtle); border-radius: 6px; background: var(--surface-subtle); }
.bid-mode-switch button { min-width: 34px; height: 24px; padding: 0 8px; border: 0; border-left: 1px solid var(--border-subtle); color: var(--text-secondary); background: transparent; font-size: 10px; font-weight: 800; cursor: pointer; }
.bid-mode-switch button:first-child { border-left: 0; }
.bid-mode-switch button.active { color: #fff; background: var(--accent-primary); }
.bid-mode-switch button:focus-visible { position: relative; outline: 2px solid color-mix(in srgb, var(--accent-primary) 35%, transparent); outline-offset: -2px; }

.precision-form-real .asset-menu {
  z-index: 30;
  padding: 5px;
  border-color: var(--border-subtle);
  border-radius: 9px;
  background: var(--surface-raised);
  box-shadow: 0 14px 34px rgba(29, 29, 31, .14);
}

.precision-form-real .asset-option {
  min-height: 36px;
  border-radius: 6px;
  font-size: 13px;
}

.precision-form-real .asset-option:is(:hover, .is-active) {
  color: var(--text-primary);
  background: var(--accent-primary-soft);
}

.precision-policy-note {
  min-height: 58px;
  padding: 10px 12px;
  border-left: 3px solid var(--accent-primary);
  border-radius: 6px;
  background: var(--surface-subtle);
}

.precision-policy-note strong,
.precision-policy-note span { display: block; }
.precision-policy-note strong { margin-bottom: 4px; font-size: 12px; }
.precision-policy-note span { color: var(--text-secondary); font-size: 11px; line-height: 1.35; }

.precision-composition {
  display: grid;
  grid-template-columns: 86px minmax(110px, .45fr) minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid var(--border-subtle);
  border-radius: 7px;
  background: var(--surface-subtle);
}

.precision-composition > span { color: var(--text-tertiary); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.precision-composition > strong { font-size: 13px; }
.precision-composition > small { color: var(--text-secondary); font-size: 10px; }

.precision-proposal-header {
  display: grid;
  grid-template-columns: minmax(180px, .7fr) minmax(400px, 1.65fr) auto;
  gap: 22px;
  align-items: center;
  padding: 18px 22px;
  border-bottom: 1px solid var(--border-subtle);
}

.precision-proposal-title .eyebrow { margin: 0 0 5px; color: var(--accent-primary); }
.precision-proposal-title h1 { margin: 0; font-size: clamp(23px, 2.8vw, 34px); line-height: 1; letter-spacing: -.045em; }

.precision-proposal-context {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin: 0;
}

.precision-proposal-context div { min-width: 0; }
.precision-proposal-context dt { color: var(--text-tertiary); font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.precision-proposal-context dd { overflow: hidden; margin: 3px 0 0; font-size: 11px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }

.precision-proposal-tools,
.precision-result-actions .btn-row,
.precision-optional .btn-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.precision-result .btn {
  min-height: 38px;
  padding: 8px 13px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 750;
}

.precision-result .btn-quiet {
  border-color: var(--border-subtle);
  color: var(--text-primary);
  background: transparent;
}

.precision-result .btn-quiet:hover:not(:disabled) { background: var(--surface-subtle); }
.precision-result .btn-primary,
.precision-form-real ~ .context-bar .btn-primary { color: #fff; background: var(--accent-primary); border-color: var(--accent-primary); }
.precision-result .btn-primary:hover:not(:disabled),
.precision-form-real ~ .context-bar .btn-primary:hover:not(:disabled) { background: var(--accent-primary-hover); }

.precision-stale {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  padding: 12px 22px;
  border-bottom: 1px solid #e6cf9e;
  background: #fff6de;
}

.precision-stale strong { font-size: 13px; }
.precision-stale p { margin: 3px 0 0; color: #765820; font-size: 11px; }
.precision-result.is-stale .precision-result-body { opacity: .48; filter: saturate(.55); }

.precision-result-body { padding: 18px 22px 0; transition: opacity .18s ease; }

.precision-result-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 12px;
}

.precision-section {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  background: var(--surface-raised);
}

.precision-credit { grid-column: 1 / -1; }
.precision-section-head { margin-bottom: 14px; }
.precision-section-head h2 { margin: 0; font-size: 17px; line-height: 1.12; letter-spacing: -.02em; }

.precision-credit-grid {
  display: grid;
  gap: 0;
}
.precision-credit-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.precision-credit-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.precision-credit-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.precision-amount {
  min-width: 0;
  padding: 3px 18px;
  border-left: 1px solid var(--border-subtle);
}
.precision-amount:first-child { padding-left: 0; border-left: 0; }
.precision-amount:last-child { padding-right: 0; }
.precision-amount > span,
.precision-payment-grid span,
.precision-timeline-grid span,
.precision-alternatives-grid article > span {
  display: block;
  margin-bottom: 5px;
  color: var(--text-secondary);
  font-size: 10px;
  font-weight: 750;
  text-transform: uppercase;
}
.precision-amount > strong { display: block; overflow-wrap: anywhere; font-size: clamp(20px, 2.5vw, 32px); line-height: 1; letter-spacing: -.04em; }
.precision-amount small,
.precision-payment-grid small,
.precision-timeline-grid small,
.precision-alternatives-grid small { display: block; margin-top: 6px; color: var(--text-tertiary); font-size: 10px; }
.precision-amount-released strong { color: var(--accent-primary); }

.precision-bid-summary {
  display: flex;
  gap: 24px;
  margin-top: 15px;
  padding-top: 11px;
  border-top: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  font-size: 11px;
}
.precision-bid-summary strong { margin-left: 4px; color: var(--text-primary); }

.precision-payment-grid,
.precision-timeline-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
}
.precision-payment-grid.has-advance { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.precision-payment-total strong { color: var(--accent-primary); }
.precision-timeline-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.precision-payment-grid > div,
.precision-timeline-grid > div { padding: 2px 14px; border-left: 1px solid var(--border-subtle); }
.precision-payment-grid > div:first-child,
.precision-timeline-grid > div:first-child { padding-left: 0; border-left: 0; }
.precision-payment-grid strong,
.precision-timeline-grid strong { display: block; font-size: clamp(18px, 2vw, 25px); line-height: 1.05; letter-spacing: -.035em; }
.precision-payment-grid.has-advance strong { font-size: clamp(17px, 1.55vw, 22px); white-space: nowrap; }

.precision-alternatives-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}
.precision-alternatives-grid article { padding: 2px 12px; border-left: 3px solid var(--accent-primary); }
.precision-alternatives-grid article:last-child { border-left-color: var(--navy-2); }
.precision-alternatives-grid strong { display: block; font-size: clamp(19px, 2vw, 26px); line-height: 1.05; letter-spacing: -.035em; }
.precision-or { color: var(--text-tertiary); font-size: 10px; font-weight: 800; text-align: center; text-transform: uppercase; }

.precision-optional {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  margin-top: 12px;
  padding: 12px 2px 14px;
}
.precision-optional small { display: block; color: var(--text-secondary); font-size: 11px; }

.precision-result-actions {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  align-items: center;
  padding: 13px 22px;
  border-top: 1px solid var(--border-subtle);
  background: transparent;
}

@media (min-width: 801px) and (max-height: 780px) {
  .precision-mode-switch { margin-top: 8px; }
  .precision-page-head { margin-bottom: 7px; }
  .precision-form-header { padding: 11px 18px 9px; }
  .precision-input-groups { padding-inline: 18px; }
  .precision-input-group { grid-template-columns: 160px minmax(0, 1fr); padding-block: 8px 6px; }
  .precision-form-real .field input,
  .precision-form-real .field select,
  .precision-form-real .asset-trigger { min-height: 34px; height: 34px; }
  .precision-form-real .field-hint { font-size: 8px; }
  .precision-proposal-header { padding-block: 13px; }
  .precision-result-body { padding-top: 12px; }
  .precision-section { padding: 13px; }
  .precision-section-head { margin-bottom: 10px; }
  .precision-result-actions { padding-block: 9px; }
}

@media (max-width: 1100px) {
  .precision-proposal-header { grid-template-columns: minmax(180px, .7fr) minmax(360px, 1.45fr); }
  .precision-proposal-tools { grid-column: 1 / -1; justify-content: flex-end; margin-top: -4px; }
  .precision-input-group { grid-template-columns: 150px minmax(0, 1fr); }
}

@media (max-width: 800px) {
  .precision-mode-switch { margin-top: 10px; padding-inline: 12px; }
  .precision-mode-switch .mode-switch { display: grid; width: 100%; grid-template-columns: 1fr 1fr; }
  .precision-mode-switch .mode-option { width: 100%; }
  .precision-page-head,
  .precision-workspace-wrap { max-width: none; }
  .precision-form-real,
  .precision-result { border-inline: 0; border-radius: 0; box-shadow: none; }
  .precision-form-header { align-items: start; padding: 16px; }
  .precision-form-status { max-width: 150px; }
  .precision-input-groups { padding-inline: 16px; }
  .precision-input-group { grid-template-columns: 1fr; gap: 11px; padding-block: 15px; }
  .precision-group-label { grid-template-columns: 26px 1fr; }
  .precision-input-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .precision-input-grid > *,
  .precision-input-grid > .precision-span-2,
  .precision-input-grid > .precision-span-3 { grid-column: span 1 !important; }
  .precision-input-grid > .mobile-full,
  .precision-bid-grid > .precision-composition,
  .precision-policy-note { grid-column: 1 / -1 !important; }
  .precision-composition { grid-template-columns: 72px minmax(100px, .6fr) minmax(0, 1fr); }
  .precision-proposal-header { grid-template-columns: 1fr; gap: 14px; padding: 17px 16px; }
  .precision-proposal-context { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .precision-proposal-tools { grid-column: auto; justify-content: stretch; margin-top: 0; }
  .precision-proposal-tools .btn { flex: 1; }
  .precision-result-body { padding: 14px 16px 0; }
  .precision-result-grid { grid-template-columns: 1fr; }
  .precision-credit { grid-column: auto; }
  .precision-credit-grid-3,
  .precision-credit-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 0; }
  .precision-credit-grid-3 .precision-amount:nth-child(3),
  .precision-credit-grid-4 .precision-amount:nth-child(3) { padding-left: 0; border-left: 0; }
  .precision-optional { align-items: flex-start; }
  .precision-result-actions { grid-template-columns: 1fr; gap: 11px; margin-top: 20px; padding: 14px 16px; }
  .precision-result-actions > .btn:first-child { justify-self: start; }
  .precision-result-actions .pdf-export,
  .precision-result-actions .btn-row { display: grid; width: 100%; }
  .precision-result-actions .btn-row { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  .precision-form-header { display: grid; }
  .precision-form-status { max-width: none; text-align: left; }
  .precision-input-grid { grid-template-columns: 1fr; }
  .precision-input-grid > *,
  .precision-input-grid > .mobile-full,
  .precision-input-grid > .precision-span-2,
  .precision-input-grid > .precision-span-3 { grid-column: 1 !important; }
  .precision-form-real .field input,
  .precision-form-real .field select,
  .precision-form-real .asset-trigger { min-height: 44px; height: 44px; font-size: 16px; }
  .precision-composition { grid-template-columns: 1fr; gap: 3px; }
  .precision-section { padding: 14px; }
  .precision-credit-grid-2,
  .precision-credit-grid-3,
  .precision-credit-grid-4 { grid-template-columns: 1fr; gap: 0; }
  .precision-amount,
  .precision-credit-grid-3 .precision-amount:nth-child(3),
  .precision-credit-grid-4 .precision-amount:nth-child(3) { padding: 12px 0; border-top: 1px solid var(--border-subtle); border-left: 0; }
  .precision-amount:first-child { padding-top: 0; border-top: 0; }
  .precision-bid-summary { display: grid; gap: 5px; }
  .precision-payment-grid,
  .precision-payment-grid.has-advance,
  .precision-timeline-grid { grid-template-columns: 1fr; }
  .precision-payment-grid > div,
  .precision-timeline-grid > div { padding: 12px 0; border-top: 1px solid var(--border-subtle); border-left: 0; }
  .precision-payment-grid > div:first-child,
  .precision-timeline-grid > div:first-child { padding-top: 0; border-top: 0; }
  .precision-alternatives-grid { grid-template-columns: 1fr; }
  .precision-or { padding-left: 12px; text-align: left; }
  .precision-optional { display: grid; }
  .precision-optional .btn-row { display: grid; width: 100%; }
  .precision-optional .btn,
  .precision-result-actions .btn { min-height: 44px; }
  .precision-stale { align-items: start; padding-inline: 16px; }
  .precision-stale .btn { flex: 0 0 auto; }
}

.term-select { position: relative; z-index: 30; overflow: visible; }
.term-select.is-open { z-index: 31; }
.term-select.has-suffix input { padding-right: 108px; }
.term-select .affix.suffix { right: 56px; }
.term-select input::-webkit-calendar-picker-indicator {
  display: none;
  opacity: 0;
}
.term-suggest-btn {
  display: inline-flex;
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  width: 44px;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--border-subtle);
  border-radius: 0 7px 7px 0;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  background: transparent;
  cursor: pointer;
}
.term-suggest-btn:hover {
  color: var(--text-primary);
  background: var(--surface-subtle);
}
.term-suggest-btn:focus-visible {
  outline: 3px solid rgba(31, 82, 96, .2);
}
.term-chevron { width: 18px; height: 18px; color: inherit; transition: transform .16s ease; }
.term-select.is-open .term-chevron { transform: rotate(180deg); }
.term-menu {
  z-index: 90;
  inset: calc(100% + 4px) 0 auto;
  max-height: min(48vh, 320px);
}

.pdf-export {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
}
.pdf-cet-opt {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  color: var(--text-secondary);
  font-size: 11px;
  line-height: 1.3;
  cursor: pointer;
  user-select: none;
}
.pdf-cet-opt input {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: var(--accent-primary);
  flex: 0 0 14px;
}

@media (max-width: 700px) {
  .precision-payment-grid,
  .precision-payment-grid.has-advance {
    grid-template-columns: 1fr;
  }
  .precision-payment-grid > div {
    padding: 12px 0;
    border-top: 1px solid var(--border-subtle);
    border-left: 0;
  }
  .precision-payment-grid > div:first-child {
    padding-top: 0;
    border-top: 0;
  }
  .pdf-export {
    width: 100%;
    align-items: stretch;
  }
  .pdf-cet-opt {
    justify-content: flex-start;
    font-size: 12px;
  }
}

.btn-presentation { white-space: nowrap; }

/* Refinamento comercial: início e hierarquia da visão do cliente. */
.welcome-proposal { display: grid; grid-template-columns: 1.35fr 1fr; gap: 48px; padding: 40px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.welcome-proposal h1 { max-width: 540px; font-size: clamp(28px, 3vw, 40px); line-height: 1.15; letter-spacing: -.035em; }
.welcome-proposal .home-copy { padding: 0; align-self: center; }
.welcome-proposal .lede { max-width: 520px; margin: 16px 0 24px; line-height: 1.6; font-size: 16px; }
.welcome-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.welcome-guide { display: grid; align-content: center; gap: 24px; padding-left: 32px; border-left: 1px solid var(--line); }
.welcome-guide > div { display: flex; gap: 16px; align-items: flex-start; }
.welcome-guide > div > span { display: grid; place-items: center; flex: 0 0 32px; height: 32px; border-radius: 50%; background: #eaf2ee; color: var(--accent-primary); font-size: 12px; font-weight: 700; }
.welcome-guide strong { font-size: 15px; }
.welcome-guide p { margin: 5px 0 0; color: var(--text-secondary); font-size: 13px; line-height: 1.5; }
.welcome-tools { margin-top: 24px; }
.welcome-tools h2 { font-size: 22px; }
.welcome-tools .module-card { grid-template-columns: 1fr auto; padding: 22px 18px; }
.welcome-tools .module-card small { max-width: 300px; line-height: 1.6; }
.page-welcome { padding-bottom: 16px; }
@media (min-width: 1000px) {
  .page-welcome .welcome-proposal { padding: 28px 32px; gap: 32px; }
  .page-welcome .welcome-proposal h1 { font-size: 32px; }
  .page-welcome .welcome-proposal .lede { margin: 12px 0 20px; }
  .page-welcome .welcome-guide { gap: 18px; }
  .page-welcome .welcome-tools { margin-top: 16px; padding: 18px 22px; }
  .page-welcome .module-card { padding-block: 16px; }
}
.client-credit, .client-payments, .client-alternatives { padding: 24px; }
.client-credit-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: stretch; }
.client-credit-card { padding: 22px 24px; background: var(--surface-subtle); border-radius: 8px; }
.client-credit-card > span { display: block; color: var(--text-secondary); font-size: 13px; font-weight: 600; }
.client-credit-card > strong { display: block; margin: 7px 0; color: var(--text-primary); font-size: clamp(28px, 2.8vw, 38px); line-height: 1.15; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.client-credit-card-released > strong { color: var(--accent-primary); }
.client-credit-card small { color: var(--text-secondary); font-size: 12px; }
.client-payment-breakdown > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 8px 0; font-size: 14px; }
.client-payment-breakdown span { color: var(--text-secondary); }
.client-payment-breakdown strong { white-space: nowrap; font-variant-numeric: tabular-nums; }
.client-bid-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); align-items: center; }
.client-bid-summary > div > span { display: block; margin-bottom: 5px; font-size: 12px; color: var(--text-secondary); }
.client-bid-summary > div > strong { font-size: 17px; }
.client-bid-summary small { color: var(--text-secondary); font-size: 12px; font-weight: 400; }
.client-bid-summary p { margin: 0; font-size: 12px; line-height: 1.6; color: var(--text-secondary); }
.client-bid-summary p strong { color: var(--text-primary); font-weight: 600; }
.client-payment-total { margin: 18px 0 14px; }
.client-payment-total strong { display: block; color: var(--accent-primary); font-size: 30px; line-height: 1.2; letter-spacing: -.03em; }
.client-payment-total > span { display: block; margin-top: 6px; color: var(--text-secondary); font-size: 12px; }
.client-payment-breakdown { padding-top: 8px; border-top: 1px solid var(--line); }
.client-payment-breakdown > div { font-size: 13px; }
.client-alternatives .precision-alternatives-grid { margin-top: 24px; gap: 12px; }
.client-alternatives .precision-alternatives-grid article { padding: 16px 12px; border: 0; border-radius: 8px; background: var(--surface-subtle); }
.client-alternatives .precision-alternatives-grid article > span { font-size: 11px; margin-bottom: 12px; }
.client-alternatives .precision-alternatives-grid strong { font-size: clamp(20px, 1.9vw, 27px); line-height: 1.25; }
.client-alternatives em { font-size: 12px; font-weight: 400; font-style: normal; letter-spacing: 0; }
.client-alternatives .precision-alternatives-grid small { font-size: 12px; line-height: 1.5; color: var(--text-secondary); }
@media (max-width: 900px) {
  .welcome-proposal { gap: 24px; padding: 28px; }
  .welcome-guide { padding-left: 24px; }
  .client-credit-layout, .client-bid-summary { gap: 20px; }
}
@media (max-width: 700px) {
  .welcome-proposal { grid-template-columns: 1fr; padding: 24px 20px; }
  .welcome-guide { padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--line); gap: 18px; }
  .client-credit, .client-payments, .client-alternatives { padding: 18px; }
  .client-credit-layout, .client-bid-summary { grid-template-columns: 1fr; gap: 16px; }
  .client-credit-card { padding: 18px; }
  .client-credit-card > strong { font-size: 28px; }
  .client-alternatives .precision-alternatives-grid { grid-template-columns: 1fr; margin-top: 16px; }
  .client-payment-breakdown > div { flex-wrap: wrap; gap: 4px 12px; }
}

/* No desktop, priorizar a proposta completa com ações na mesma tela.
   Altura natural mantém o conteúdo acessível em zoom e janelas menores. */
@media (min-width: 1000px) {
  .page-client { padding-top: 6px; padding-bottom: 4px; }
  .page-client .precision-mode-switch { margin-top: 0; }
  .page-client .proposal-mode { padding-block: 7px; }
  .page-client .proposal-mode small { display: none; }
  .page-client .precision-proposal-header { padding: 8px 18px; gap: 16px; }
  .page-client .precision-proposal-title h1 { font-size: 26px; }
  .page-client .precision-result-body { padding: 10px 16px 0; }
  .page-client .precision-result-grid { gap: 10px; }
  .page-client .client-credit,
  .page-client .client-payments,
  .page-client .client-alternatives { padding: 10px 18px; }
  .page-client .precision-section-head { margin-bottom: 8px; }
  .page-client .client-credit-layout { gap: 24px; }
  .page-client .client-credit-card { padding: 12px 18px; }
  .page-client .client-credit-card > strong { font-size: 30px; margin-block: 4px; }
  .page-client .client-bid-summary { margin-top: 10px; padding-top: 9px; gap: 24px; }
  .page-client .client-bid-summary > div > span { margin-bottom: 2px; }
  .page-client .client-bid-summary p { line-height: 1.4; }
  .page-client .client-payment-total { margin: 10px 0 8px; }
  .page-client .client-payment-total strong { font-size: 26px; }
  .page-client .client-payment-total > span { margin-top: 3px; }
  .page-client .client-payment-breakdown { padding-top: 4px; }
  .page-client .client-payment-breakdown > div { padding-block: 5px; }
  .page-client .client-alternatives .precision-alternatives-grid { margin-top: 14px; }
  .page-client .client-alternatives .precision-alternatives-grid article { padding-block: 12px; }
  .page-client .client-alternatives .precision-alternatives-grid article > span { margin-bottom: 7px; }
  .page-client .precision-result-actions { padding: 9px 18px; gap: 12px; }
}

/* ==========================================================================
   Fase 4: Marcos Temporais Canônicos e Gráficos Comparativos (M3)
   ========================================================================== */

/* Marcos Temporais */
.milestones-view {
  padding: 24px 28px 26px;
  border-top: 1px solid var(--line);
  background: var(--paper);
  container-type: inline-size;
  container-name: milestones;
}

.milestones-view .section-heading {
  margin-bottom: 20px;
}

.milestones-lede {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.milestones-notice {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  padding: 10px 16px;
  border: 1px solid #d0d7de;
  border-left: 4px solid var(--focus);
  border-radius: 6px;
  background: var(--surface-subtle);
  color: var(--ink);
  font-size: 12px;
  line-height: 1.45;
}

.milestones-notice p {
  margin: 0;
}

.notice-badge {
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 4px;
  background: #e1e7ec;
  color: #244252;
  font-size: 10px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.milestones-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.milestone-col {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.03);
  overflow: hidden;
}

.milestone-col-key {
  border-color: #a3c2b8;
  box-shadow: 0 2px 8px rgba(49, 93, 103, .07);
}

.milestone-col-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-app);
}

.milestone-col-key .milestone-col-head {
  background: #edf4f1;
}

.milestone-title {
  display: block;
  font-size: 14px;
  font-weight: 750;
  color: var(--ink);
  letter-spacing: -.01em;
}

.milestone-sub {
  display: block;
  margin-top: 1px;
  font-size: 11px;
  color: var(--muted);
}

.milestone-badge-key {
  padding: 2px 6px;
  border-radius: 4px;
  background: #315d67;
  color: #fff;
  font-size: 9px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}

.milestone-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px 14px;
}

.milestone-side {
  padding: 8px 10px;
  border-radius: 6px;
  background: var(--surface-app);
}

.financing-side {
  border-left: 3px solid #bd694e;
}

.consortium-side {
  border-left: 3px solid #315d67;
}

.side-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.side-tag {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.tag-financing {
  color: #bd694e;
}

.tag-consortium {
  color: #315d67;
}

.side-status {
  font-size: 10px;
  color: var(--muted);
}

.milestone-metrics {
  margin: 0;
  display: grid;
  gap: 6px;
}

.milestone-metrics > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  font-size: 11px;
  line-height: 1.45;
}

.milestone-metrics dt {
  color: var(--muted);
  font-size: 10.5px;
  flex: 1;
  min-width: 0;
}

.milestone-metrics dd {
  margin: 0;
  text-align: right;
  font-weight: 650;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 86px;
}

.milestone-metrics dd.phase-value {
  font-weight: 600;
  font-size: 10.5px;
  color: #244252;
  white-space: normal;
  text-align: right;
  max-width: 140px;
}

.milestone-unavailable {
  padding: 8px 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}

.milestone-unavailable p {
  margin: 0;
}

.milestone-footer {
  padding: 9px 14px;
  border-top: 1px solid var(--line);
  background: var(--surface-subtle);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 6px;
  font-size: 11px;
}

.diff-label {
  color: var(--muted);
  font-size: 10px;
  min-width: 0;
}

.diff-value {
  font-weight: 750;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Container de Gráficos Comparativos */
.comparison-charts-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding: 24px 28px 26px;
  border-top: 1px solid var(--line);
  background: var(--paper);
  container-type: inline-size;
  container-name: charts;
}

.chart-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  padding: 20px 22px 16px;
  box-shadow: 0 1px 3px rgba(0,0,0,.03);
  min-width: 0;
}

.chart-dialog {
  position: static;
  width: auto;
  max-width: none;
  height: auto;
  max-height: none;
  margin: 0;
  color: inherit;
  box-sizing: border-box;
}

.chart-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 8px;
}

.chart-card-head h3 {
  margin: 0 0 2px;
  font-size: 16px;
  letter-spacing: -.02em;
  color: var(--ink);
}

.chart-card-lede {
  margin: 0;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.4;
}

.chart-head-actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.chart-legend-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 12px;
  font-size: 11.5px;
  color: var(--ink);
}

.chart-legend-bar .legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 11px;
  color: var(--ink);
}

.btn-chart-expand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 9px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
  color: var(--muted);
  font-size: 11px;
  font-weight: 650;
  cursor: pointer;
  transition: all .15s ease;
  white-space: nowrap;
}

.btn-chart-expand:hover {
  background: var(--surface-subtle);
  color: var(--ink);
  border-color: #a3c2b8;
}

.btn-chart-expand:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 1px;
}

.chart-dialog:modal {
  position: fixed;
  inset: 20px;
  width: min(1100px, calc(100vw - 40px));
  height: fit-content;
  max-width: none;
  max-height: calc(100dvh - 40px);
  margin: auto;
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.22);
  overflow-y: auto;
}

.chart-dialog::backdrop {
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(2px);
}

.chart-dialog:modal .chart-svg-wrap {
  flex: 0 0 auto;
  min-height: 0;
}

.chart-dialog:modal .chart-svg {
  height: auto;
  max-height: none;
}

.legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
}

.legend-line {
  display: inline-block;
  width: 14px;
  height: 3px;
  border-radius: 2px;
}

.legend-fin .legend-line {
  background: #bd694e;
}

.legend-con .legend-line {
  background: #315d67;
}

.legend-mark .legend-dash {
  display: inline-block;
  width: 14px;
  height: 0;
  border-top: 2px dashed #315d67;
}

.chart-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  padding: 8px 12px;
  border: 1px solid #e0dfd5;
  border-radius: 6px;
  background: var(--surface-subtle);
  font-size: 11.5px;
  color: var(--muted);
}

.chart-notice p {
  margin: 0;
}

/* Tooltip Interativo do Gráfico - Altura Estável (Zero Layout Shift) */
.chart-tooltip {
  height: 82px;
  min-height: 82px;
  max-height: 82px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  padding: 7px 14px;
  margin-bottom: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface-app);
  font-size: 11.5px;
  overflow: hidden;
  transition: background-color .15s ease, border-color .15s ease;
}

.chart-tooltip.is-active {
  background: #edf4f1;
  border-color: #b2cfc4;
}

.tooltip-content {
  width: 100%;
  display: grid;
  gap: 3px;
}

.tooltip-month {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink);
  flex-shrink: 0;
}

.tooltip-tag-contemplation {
  padding: 1px 6px;
  border-radius: 4px;
  background: #315d67;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}

.tooltip-metric {
  display: grid;
  gap: 1px;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  min-width: 0;
}

.tooltip-metric strong {
  color: var(--ink);
  font-weight: 700;
  white-space: nowrap;
}

.tooltip-comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.tooltip-metric-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  line-height: 1.1;
  white-space: nowrap;
}

.dot-fin, .dot-con {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}

.dot-fin {
  background: #bd694e;
}

.dot-con {
  background: #315d67;
}

.tooltip-diff {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  padding-top: 3px;
  border-top: 1px solid rgba(49, 93, 103, .16);
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

.tooltip-diff strong {
  color: var(--ink);
  white-space: nowrap;
}

.tooltip-hint {
  margin: 0;
  color: var(--text-tertiary);
  font-size: 11px;
}

/* SVG Elements */
.chart-svg-wrap {
  width: 100%;
  position: relative;
  overflow: hidden;
  touch-action: pan-y;
}

.chart-svg {
  width: 100%;
  height: auto;
  display: block;
  user-select: none;
  -webkit-user-select: none;
}

.chart-grid-line {
  stroke: #e8e6e1;
  stroke-width: 1;
  stroke-dasharray: 3,3;
}

.chart-axis-baseline {
  stroke: var(--line);
  stroke-width: 1;
}

.chart-tick-line {
  stroke: var(--line-strong);
  stroke-width: 1;
}

.chart-axis-label {
  fill: #86868b;
  font-size: 10.5px;
  font-family: inherit;
  font-variant-numeric: tabular-nums;
}

.chart-axis-label.axis-x {
  font-weight: 600;
}

.chart-line-financing {
  fill: none;
  stroke: #bd694e;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.chart-line-consortium {
  fill: none;
  stroke: #315d67;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.chart-area-financing {
  fill: rgba(189, 105, 78, 0.08);
}

.chart-area-consortium {
  fill: rgba(49, 93, 103, 0.08);
}

.chart-contemplation-line {
  stroke: #315d67;
  stroke-width: 1.4;
  stroke-dasharray: 4,4;
  opacity: 0.8;
}

.chart-contemplation-label {
  fill: #315d67;
  font-size: 9.5px;
  font-weight: 700;
}

.chart-hover-line {
  stroke: #1d1d1f;
  stroke-width: 1;
  stroke-dasharray: 2,2;
  opacity: 0.45;
}

.chart-dot-financing {
  fill: #bd694e;
  stroke: #fff;
  stroke-width: 2;
}

.chart-dot-consortium {
  fill: #315d67;
  stroke: #fff;
  stroke-width: 2;
}

.chart-hit-surface {
  fill: transparent;
  cursor: crosshair;
  pointer-events: all;
}

/* Responsividade Refinada: Marcos e Gráficos */

/* 1. Estado Intermediário (Tablet / Container Médio: 660px - 1040px) */
@media (max-width: 1040px) {
  .milestones-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .comparison-charts-grid {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 20px 20px 22px;
  }
}

@container milestones (max-width: 1040px) {
  .milestones-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
}

@container charts (max-width: 960px) {
  .comparison-charts-grid {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 20px 20px 22px;
  }
}

/* 2. Estado Estreito (Smartphone / Container < 660px) */
@media (max-width: 660px) {
  .milestones-view {
    padding: 16px 14px 18px;
  }

  /* Faixa de Marcos com Scroll Snap e Pista Visual de Continuidade */
  .milestones-grid.milestones-track {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    gap: 12px;
    padding: 4px 14px 12px;
    margin: 0 -14px;
    scrollbar-width: none;
  }

  .milestones-grid::-webkit-scrollbar {
    display: none;
  }

  .milestones-grid .milestone-col {
    flex: 0 0 calc(84% - 6px);
    min-width: 275px;
    max-width: 325px;
    scroll-snap-align: start;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  }

  .comparison-charts-grid {
    padding: 16px 14px 18px;
  }

  .chart-card {
    padding: 16px 14px 14px;
  }

  .chart-card-head {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
  }

  .chart-head-actions {
    width: auto;
    justify-content: flex-end;
  }

  .chart-legend-bar {
    gap: 8px 12px;
    margin-bottom: 10px;
  }

  .chart-svg {
    min-height: 220px;
  }

  .chart-tooltip {
    height: 86px;
    min-height: 86px;
    max-height: 86px;
    padding: 7px 10px;
    box-sizing: border-box;
    margin-bottom: 10px;
  }

  .tooltip-content {
    display: grid;
    gap: 3px;
    font-size: 11px;
  }

  .tooltip-diff {
    width: 100%;
  }

  .chart-dialog:modal {
    inset: 10px;
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 20px);
    padding: 14px;
  }
}

@container milestones (max-width: 660px) {
  .milestones-grid.milestones-track {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    gap: 12px;
    padding: 4px 14px 12px;
    margin: 0 -14px;
    scrollbar-width: none;
  }

  .milestones-grid::-webkit-scrollbar {
    display: none;
  }

  .milestones-grid .milestone-col {
    flex: 0 0 calc(84% - 6px);
    min-width: 275px;
    max-width: 325px;
    scroll-snap-align: start;
  }
}

@container charts (max-width: 660px) {
  .chart-card-head {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
  }

  .chart-head-actions {
    width: auto;
    justify-content: flex-end;
  }

  .chart-legend-bar {
    gap: 8px 12px;
    margin-bottom: 10px;
  }

  .chart-svg {
    min-height: 220px;
  }
}

/* Interação Touch */
@media (pointer: coarse) {
  .chart-hit-surface {
    cursor: default;
  }
}

/* Acessibilidade: prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .chart-tooltip,
  .chart-line-financing,
  .chart-line-consortium,
  .chart-area-financing,
  .chart-area-consortium,
  .milestone-col {
    transition: none !important;
    animation: none !important;
  }
}
