:root{
  --bg: #f6f7fb;
  --card-radius: 16px;
  --ring-size: 280px;
  --ring-thickness: 30px;
}

body{ background: var(--bg); }
.card{ border-radius: var(--card-radius); border: 1px solid rgba(0,0,0,.06); }
.shadow-soft{ box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.06); }
.mono{ font-variant-numeric: tabular-nums; }
.btn-pill{ border-radius: 999px; }
.badge-soft{ background: rgba(13,110,253,.1); color: #0d6efd; border: 1px solid rgba(13,110,253,.15); }
.divider{ height:1px; background: rgba(0,0,0,.08); margin: 1rem 0; }

/* Header close */
.title-row{
  display:flex;
  align-items:center;
  gap:.75rem;
}
.title-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  color: #111;
  text-decoration:none;
}
.title-close:hover{ background:#f1f3f5; }

/* Donut */
.donut-shell{ position: relative; display:flex; justify-content:center; }
.donut{
  width: var(--ring-size);
  height: var(--ring-size);
  border-radius: 50%;
  background: conic-gradient(#e5e7eb 0 360deg);
  position: relative;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.05);
}
.donut::after{
  content:"";
  position:absolute;
  inset: var(--ring-thickness);
  background: #fff;
  border-radius:50%;
  box-shadow: 0 0 0 1px rgba(0,0,0,.04);
}
.donut-center{
  position:absolute;
  inset: 0;
  z-index: 2;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  text-align:center;
  padding: 1rem;
  pointer-events:none;
}
.donut-center .label{ font-size: .82rem; color: #6c757d; margin-bottom: .2rem; }
.donut-center .value{ font-size: 1.9rem; font-weight: 800; line-height: 1.1; }
.donut-center .hint{ font-size: .82rem; color: #6c757d; margin-top: .25rem; }

/* Stacked bars */
.stackbar{
  height: 14px;
  border-radius: 999px;
  overflow:hidden;
  background: rgba(0,0,0,.05);
  display:flex;
}
.seg{ height: 100%; }

/* Legend */
.legend{
  display:grid;
  grid-template-columns: 1fr;
  gap:.5rem;
}
@media (min-width: 992px){
  .legend{ grid-template-columns: 1fr 1fr; }
}
.legend-item{
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  padding: .55rem .6rem;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.06);
  background:#fff;
  cursor:pointer;
  user-select:none;
}
.legend-item[data-active="false"]{ opacity:.35; }
.swatch{ width: 12px; height: 12px; border-radius: 3px; margin-top:.25rem; }

/* Mobile sticky */
.sticky-total{
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 1040;
  padding: .75rem;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgba(0,0,0,.08);
}
.sticky-spacer{ height: 86px; }

/* Mode visibility (JS sets body[data-mode]) */
body[data-mode="quick"] .only-custom,
body[data-mode="quick"] .only-investor,
body[data-mode="investor"] .only-custom,
body[data-mode="investor"] .only-quick {
  display:none !important;
}
/* In quick mode hide advanced parameter blocks */
body[data-mode="quick"] .quick-hide{ display:none !important; }

/* Quote modal */
.qm-summary{
  background: #f8f9fa;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 12px;
}
/* Plain close icon like on test page (no circle) */
.title-close--plain{
  width: auto;
  height: auto;
  border: none;
  background: transparent;
  border-radius: 0;
  padding: 0;
  margin-right: 18px; /* расстояние от заголовка как на скрине */
  color: #111;
  text-decoration: none;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.title-close--plain i{
  font-size: 38px;     /* под размер на скрине */
  line-height: 1;
}

.title-close--plain:hover{
  opacity: .7;
}
