:root {
  --navy: #172a45;
  --blue: #234c78;
  --text: #1d2a3d;
  --muted: #718096;
  --line: #dce3ea;
  --control-height: 34px;
  --control-radius: 6px;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  color: var(--text);
  background: #f4f6f8;
}

* { box-sizing: border-box; }
body { margin: 0; }
button, input { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; }
.inline-loader { display: inline-block; flex: 0 0 10px; width: 10px; height: 10px; margin-left: 6px; border: 1.5px solid #c7d5e3; border-top-color: currentColor; border-radius: 50%; vertical-align: middle; visibility: hidden; }
.inline-loader.is-visible { visibility: visible; animation: app-spin .8s linear infinite; }
.confirmation-dialog { width: min(420px, calc(100% - 32px)); padding: 24px; border: 1px solid var(--line); border-radius: 12px; color: var(--text); box-shadow: 0 18px 60px rgb(18 35 56 / 25%); }
.confirmation-dialog::backdrop { background: rgb(15 30 49 / 40%); }
.confirmation-dialog h2 { margin: 0 0 12px; font-size: 18px; color: var(--navy); }
.confirmation-dialog p { margin: 0; font-size: 14px; line-height: 1.55; color: #53657c; }
.confirmation-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
h1, h2, h3, p { margin-top: 0; }

.eyebrow { margin: 0 0 9px; color: #60738d; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.button { min-height: var(--control-height); padding: 0 15px; border: 1px solid transparent; border-radius: var(--control-radius); font-size: 14px; font-weight: 600; white-space: nowrap; }
.button-primary { color: #fff; background: var(--blue); }
.button-primary:hover:not(:disabled) { background: #1a3e65; }
.button-secondary { border-color: #b8cadb; color: #315a86; background: #fff; }
.button-secondary:hover:not(:disabled) { border-color: #7e9bb8; background: #f1f6fa; }
.button-danger { color: #fff; background: #ad3e3e; }
.button-danger:hover:not(:disabled) { background: #913232; }
.counter { display: grid; width: var(--control-height); height: var(--control-height); place-items: center; border-radius: var(--control-radius); color: #4f637c; background: #edf1f5; font-size: 12px; font-weight: 650; }
.error-message { color: #b33b3b; }

.preparation-status.is-refreshing .status-spinner, .button.is-loading::before, .icon-button.is-loading::before, .result-loading::before { width: 14px; height: 14px; border: 2px solid #afc0d0; border-top-color: var(--blue); border-radius: 50%; content: ""; animation: app-spin .8s linear infinite; }
.button.is-loading { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.button-primary.is-loading::before { border-color: rgb(255 255 255 / 45%); border-top-color: #fff; }
@keyframes app-spin { to { transform: rotate(360deg); } }

/* Единый шеврон для раскрываемых блоков, включая первичные размещения. */
:is(.result-scenario, .result-bond, .result-block-profile, .forecast-disclosure) > summary::after { flex: 0 0 8px; width: 8px; height: 8px; border-right: 1.5px solid #60738d; border-bottom: 1.5px solid #60738d; content: ""; transform: rotate(45deg) translateY(-2px); transition: transform .15s ease; }
:is(.result-scenario, .result-bond, .result-block-profile, .forecast-disclosure)[open] > summary::after { transform: rotate(225deg) translateY(-2px); }
