.breadcrumbs { color: #566478; }
.field-note { color: #536174; }
.result-actions a.primary { color: #fff; background: #0869c7; }
.result-actions a.primary:hover { background: #075fc7; }

.insurance-group { margin: 0; padding: 0; border: 0; }
.insurance-group + .insurance-group { margin-top: 28px; padding-top: 26px; border-top: 1px solid var(--line); }
.insurance-group > legend {
  width: 100%;
  margin: 0 0 18px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.insurance-products { display: grid; gap: 12px; }
.product-card {
  padding: 17px;
  border: 1px solid #d8dee7;
  border-radius: 18px;
  background: rgba(255, 255, 255, .7);
  transition: opacity .18s ease, border-color .18s ease;
}
.product-card > header {
  margin-bottom: 16px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}
.product-card > header > div { min-width: 0; }
.product-card > header strong,
.product-card > header small { display: block; }
.product-card > header strong { color: var(--ink); font-size: 13px; }
.product-card > header small { margin-top: 2px; color: #5f6d80; font-size: 11px; line-height: 1.3; }
.product-card.is-disabled { opacity: .52; }
.product-card.is-disabled .field { pointer-events: none; }
.product-icon,
.property-dot,
.life-dot,
.title-dot {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
  border-radius: 50%;
  display: inline-block;
}
.product-icon { width: 14px; height: 14px; }
.property-dot { background: #2998ff; }
.life-dot { background: #79bdf6; }
.title-dot { background: #ff7f70; }
.required-badge {
  padding: 6px 8px;
  border-radius: 999px;
  color: #0862bb;
  background: #e4f1ff;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}
.product-switch {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #526074;
  font-size: 10px;
  font-weight: 750;
  cursor: pointer;
}
.product-switch input { position: absolute; opacity: 0; pointer-events: none; }
.product-switch span {
  width: 36px;
  height: 20px;
  padding: 2px;
  border-radius: 999px;
  display: block;
  background: #c8d0da;
  transition: background .18s ease;
}
.product-switch span::after {
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: block;
  background: #fff;
  box-shadow: 0 2px 5px rgba(9, 27, 54, .2);
  transition: transform .18s ease;
}
.product-switch input:checked + span { background: #0872dc; }
.product-switch input:checked + span::after { transform: translateX(16px); }
.product-switch input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }
.product-switch em { font-style: normal; }
.title-fields { gap: 16px; }

.insurance-donut {
  --property-stop: 24%;
  --life-stop: 85%;
  position: relative;
  width: 150px;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: conic-gradient(#2998ff 0 var(--property-stop), #79bdf6 var(--property-stop) var(--life-stop), #ff7f70 var(--life-stop) 100%);
}
.insurance-donut::before {
  content: "";
  position: absolute;
  width: 58%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #0a2344;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04);
}
.insurance-donut.is-waiting { opacity: .001; transform: scale(.76) rotate(-45deg); }
.insurance-donut.is-building { animation: insurance-donut-build .8s cubic-bezier(.22, 1, .36, 1) both; }
.insurance-donut.is-empty { background: rgba(255, 255, 255, .14); }
@keyframes insurance-donut-build { from { opacity: .05; transform: scale(.72) rotate(-70deg); } 70% { transform: scale(1.035); } to { opacity: 1; transform: scale(1); } }
.insurance-legend { min-width: 0; display: grid; gap: 9px; }
.insurance-legend > div {
  min-height: 39px;
  padding: 7px 9px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #b8c5d4;
  background: rgba(255, 255, 255, .055);
}
.insurance-legend p { margin: 0; font-size: 11px; }
.insurance-legend strong { display: block; margin-top: 2px; color: #fff; font-size: 13px; }

.premium-legend {
  width: 18px;
  height: 3px;
  border-radius: 99px;
  display: inline-block;
  background: #0869c7;
}
.insurance-chart-shell {
  position: relative;
  padding: 18px 18px 12px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fbfcfe;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .5s ease, transform .7s cubic-bezier(.22, 1, .36, 1);
}

.range-meta,
.site-footer,
.sources,
.conditions-grid span {
  color: #536174;
}
.insurance-chart-shell.is-visible { opacity: 1; transform: translateY(0); }
.insurance-chart { width: 100%; height: auto; display: block; overflow: visible; }
#insuranceChartGrid line { stroke: rgba(9, 27, 54, .08); stroke-width: 1; }
#insuranceChartLabels text { fill: #68758a; font-size: 11px; }
#insuranceChartLabels .y-label-mobile { display: none; }
.premium-area {
  fill: #79bdf6;
  fill-opacity: .24;
  transform-box: fill-box;
  transform-origin: center bottom;
}
.premium-line {
  fill: none;
  stroke: #0869c7;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  transform-box: fill-box;
  transform-origin: left center;
}
.insurance-chart-shell:not(.is-visible) .premium-area { opacity: .001; transform: scaleY(.02); }
.insurance-chart-shell:not(.is-visible) .premium-line { opacity: .001; transform: scaleX(.02); }
.insurance-chart-shell.is-visible .premium-area { animation: premium-area-in .8s cubic-bezier(.22, 1, .36, 1) both; }
.insurance-chart-shell.is-visible .premium-line { animation: premium-line-in .8s .06s cubic-bezier(.22, 1, .36, 1) both; }
@keyframes premium-area-in { from { opacity: .02; transform: scaleY(.02); } to { opacity: 1; transform: scaleY(1); } }
@keyframes premium-line-in { from { opacity: .05; transform: scaleX(.02); } to { opacity: 1; transform: scaleX(1); } }

.insurance-table { min-width: 860px; }
.insurance-table th:first-child,
.insurance-table td:first-child { text-align: center; }

@media (max-width: 620px) {
  .insurance-group + .insurance-group { margin-top: 23px; padding-top: 22px; }
  .product-card { padding: 14px; }
  .product-card > header { grid-template-columns: auto minmax(0, 1fr); }
  .product-card > header .required-badge,
  .product-card > header .product-switch { grid-column: 2; justify-self: start; }
  .product-switch em { display: none; }
  .title-fields { grid-template-columns: 1fr; }
  .insurance-donut { width: 132px; }
  .insurance-chart-shell { padding: 12px 8px 10px; border-radius: 20px; }
  #insuranceChartLabels .y-label-desktop { display: none; }
  #insuranceChartLabels .y-label-mobile { display: block; }
  .insurance-table { min-width: 0; }
  .insurance-table tbody tr:not(.schedule-gap),
  .insurance-table tfoot tr { grid-template-columns: 1fr 1fr; }
  .insurance-table td:nth-child(1)::before { content: "Год"; }
  .insurance-table td:nth-child(2)::before { content: "Страховая сумма"; }
  .insurance-table td:nth-child(3)::before { content: "Имущество"; }
  .insurance-table td:nth-child(4)::before { content: "Жизнь"; }
  .insurance-table td:nth-child(5)::before { content: "Титул"; }
  .insurance-table td:nth-child(6)::before { content: "Всего"; }
  .insurance-table tfoot td:first-child { display: none; }
  .insurance-table tfoot td:nth-child(2) { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  .insurance-donut,
  .insurance-chart-shell,
  .premium-area,
  .premium-line { animation: none !important; transition: none !important; transform: none !important; opacity: 1 !important; }
}

@media print {
  .program-back-to-calculator { display: none !important; }
}
