body.cmp-page {
  background: #0b1320;
  color: #f2f6fb;
}
body.cmp-page #cmp-main {
  max-width: 1400px;
  padding: 36px 32px 56px;
}
body.cmp-page .cmp-header,
body.cmp-page .cmp-footer {
  max-width: 1400px;
}
body.cmp-page .cmp-intro {
  max-width: none;
  padding-right: 210px;
  margin-bottom: 28px;
}
body.cmp-page .cmp-intro h1 {
  font-size: clamp(32px, 3.2vw, 44px);
  line-height: 1.1;
}
body.cmp-page .cmp-intro h1 br { display: none; }
body.cmp-page .cmp-price {
  top: 32px;
  right: 0;
  padding: 14px 20px;
  border: 1px solid #31415a;
  border-radius: 14px;
  background: #121f31;
}
body.cmp-page .cmp-workspace {
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 24px;
}
body.cmp-page .cmp-setup {
  padding: 26px;
  border-radius: 16px;
}
body.cmp-page .cmp-find-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 82px;
  gap: 8px;
}
body.cmp-page #cmp-find {
  width: 82px;
  min-width: 82px;
  padding: 12px 8px;
  white-space: nowrap;
  word-break: normal;
}
body.cmp-page .cmp-button,
body.cmp-page .cmp-choice,
body.cmp-page #cmp-change,
body.cmp-page #cmp-close {
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.3;
  margin: 0;
  box-shadow: none;
  transition: background-color .15s ease;
}
body.cmp-page .cmp-button {
  background: #087ac1;
  border-color: #087ac1;
  color: #fff !important;
  border-radius: 10px;
  min-height: 49px;
}
body.cmp-page .cmp-button.cmp-secondary {
  background: #edf6ff;
  color: #174e77 !important;
  border-color: #bfd3e5;
}
body.cmp-page .cmp-button.cmp-secondary:hover:not(:disabled) {
  background: #dcefff;
}
body.cmp-page .cmp-report-tools .cmp-button.cmp-secondary {
  background: #21374d;
  border-color: #42617d;
  color: #e1f1ff !important;
}
body.cmp-page .cmp-results {
  background: #132033;
  border: 1px solid #31445e;
  border-radius: 16px;
  padding: 22px;
}
body.cmp-page #cmp-map {
  height: clamp(420px, 44vw, 560px);
  background: #edf0e9;
  border: 1px solid #cbd6df;
  border-radius: 12px;
  isolation: isolate;
  overflow: hidden;
}
body.cmp-page #cmp-map .maplibregl-map { background: #edf0e9; }
body.cmp-page #cmp-map .leaflet-control-attribution {
  background: rgba(255, 255, 255, .94);
  color: #334155;
  font: 10px/1.5 Arial, Helvetica, sans-serif;
  max-width: 100%;
}
body.cmp-page #cmp-map .leaflet-control-attribution a { color: #1d5172; }
body.cmp-page #cmp-map .leaflet-control-zoom {
  border: 1px solid #b8c8d7;
  box-shadow: 0 2px 8px #172b3f20;
  border-radius: 8px;
  overflow: hidden;
}
body.cmp-page #cmp-map .leaflet-control-zoom a {
  width: 36px;
  height: 36px;
  line-height: 36px;
  background: white;
  color: #24384c;
}
body.cmp-page #cmp-map .cmp-marker {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
}
body.cmp-page #cmp-map .cmp-dot.pending {
  width: 12px;
  height: 12px;
  border: 2px solid #fff;
  background: #5c7d96;
  color: transparent;
  box-shadow: 0 1px 5px #1c3d5750;
  font-size: 0;
}
body.cmp-page #cmp-map .cmp-dot:not(.pending) {
  width: 27px;
  height: 27px;
  border: 2px solid white;
  font: 700 11px/1 Arial, Helvetica, sans-serif;
}
body.cmp-page .cmp-map-heading h2 {
  font-size: 20px;
  line-height: 1.3;
}
body.cmp-page .cmp-preview-note,
body.cmp-page .cmp-legend,
body.cmp-page .cmp-stats span {
  color: #bdcce0;
}
body.cmp-page .cmp-display-map-status {
  font-size: 13px;
  line-height: 1.5;
  background: #fff5df;
  color: #674800;
  border-radius: 8px;
  padding: 12px;
  margin: 12px 0 0;
}
body.cmp-page .cmp-area-options span { padding-top: 13px; padding-bottom: 13px; }
body.cmp-page .cmp-area-options input:checked + span { padding-top: 12px; padding-bottom: 12px; }
body.cmp-page .cmp-stats { margin-top: 20px; padding-top: 18px; }
body.cmp-page .cmp-stats strong { font-size: 24px; }
@media (max-width: 1050px) {
  body.cmp-page .cmp-workspace { grid-template-columns: 340px minmax(0, 1fr); gap: 18px; }
  body.cmp-page .cmp-setup { padding: 22px 18px; }
  body.cmp-page .cmp-results { padding: 18px; }
}
@media (max-width: 760px) {
  body.cmp-page #cmp-main { padding: 24px 14px 36px; }
  body.cmp-page .cmp-header { padding: 16px 18px; }
  body.cmp-page .cmp-intro { padding-right: 0; margin-bottom: 22px; }
  body.cmp-page .cmp-intro h1 { font-size: 32px; }
  body.cmp-page .cmp-price { position: static; display: inline-flex; padding: 10px 14px; margin-top: 16px; }
  body.cmp-page .cmp-price strong { font-size: 28px; }
  body.cmp-page .cmp-workspace { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  body.cmp-page .cmp-setup { padding: 22px 18px; }
  body.cmp-page .cmp-results { padding: 18px 12px; }
  body.cmp-page #cmp-map { height: clamp(330px, 90vw, 430px); border-radius: 10px; }
  body.cmp-page .cmp-map-heading h2 { font-size: 18px; }
  body.cmp-page .cmp-map-heading { gap: 10px; margin-bottom: 16px; }
  body.cmp-page .cmp-state { padding: 5px 8px; }
  body.cmp-page .cmp-stats { gap: 8px; }
  body.cmp-page .cmp-stats strong { font-size: 20px; }
  body.cmp-page .cmp-stats span { font-size: 10px; }
  body.cmp-page .cmp-legend { gap: 13px; font-size: 11px; }
  body.cmp-page .cmp-preview-note { font-size: 12px; line-height: 1.5; }
  body.cmp-page .cmp-checkout > .cmp-button { justify-content: center; font-size: 14px; min-height: 54px; }
  body.cmp-page .cmp-report-tools .cmp-button { flex: 1 1 140px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  body.cmp-page .cmp-button { transition: none; }
}
@media print {
  body.cmp-page { background: #fff; color: #111; }
  body.cmp-page .cmp-results { background: #fff; border-color: #ccc; color: #111; }
  body.cmp-page .cmp-preview-note,
  body.cmp-page .cmp-legend,
  body.cmp-page .cmp-stats span { color: #333; }
  body.cmp-page #cmp-map { height: 450px; }
}
