.header-actions{display:flex;flex-direction:column;gap:9px}.favorites-head b{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:#1769d2;color:#fff}.heart-toggle{padding:5px 9px;background:#fff;color:#1769d2;border:1px solid #cbdcf1;box-shadow:none;font-size:22px;line-height:1}.heart-toggle.selected{color:#1769d2;background:#edf5ff}.detail-heart{position:absolute;right:72px;top:26px;z-index:2}#modal{position:fixed;inset:12px 0;margin:auto;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}.selection-bar{position:fixed;right:24px;bottom:24px;z-index:8;display:flex;gap:8px;padding:10px;background:#fff;border:1px solid #d8e5f3;border-radius:14px;box-shadow:0 12px 36px #17314f2b}.workspace-dialog{max-width:1100px;width:min(96%,1100px);color:#17314f}.preview-dialog{max-width:1180px}.selection-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}.selection-fields .wide{grid-column:1/-1}.selection-fields textarea,.item-comment{width:100%;min-height:70px;margin-top:7px;border:1px solid #cad8e8;border-radius:8px;padding:10px}.selection-list article{display:grid;grid-template-columns:auto 120px minmax(0,1fr) auto;gap:16px;align-items:start;padding:16px;border:1px solid #dbe6f2;border-radius:14px;margin:10px 0}.selection-list article>img{width:120px;height:100px;object-fit:contain}.order-buttons{display:flex;flex-direction:column;gap:5px}.order-buttons button{padding:5px 9px}.workspace-actions,.preview-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.client-sheet{background:#fff;color:#17314f;padding:36px;max-width:980px;margin:auto}.client-sheet>header{border-bottom:4px solid #1769d2;padding-bottom:18px}.sheet-brand{font-size:24px;font-weight:900;letter-spacing:.08em;color:#1769d2}.sheet-brand span{font-size:12px;display:block;letter-spacing:.18em}.print-apartment{position:relative;display:grid;grid-template-columns:200px 1fr;gap:24px;border:1px solid #d9e5f2;border-radius:16px;padding:22px;margin:18px 0;break-inside:avoid;page-break-inside:avoid}.print-apartment>img{width:200px;height:180px;object-fit:contain}.print-number{position:absolute;right:16px;top:16px;background:#1769d2;color:#fff;width:30px;height:30px;border-radius:50%;display:grid;place-items:center}.print-apartment blockquote{border-left:3px solid #1769d2;margin:12px 0;padding-left:12px}.client-sheet footer{border-top:1px solid #d9e5f2;font-size:12px;color:#536b84;padding-top:14px}.login-error{color:#b42318}
@media print{body>*:not(#preview-dialog){display:none!important}#preview-dialog{position:static!important;display:block!important;width:auto!important;max-width:none!important;margin:0!important;padding:0!important;box-shadow:none!important;border:0!important}#preview-dialog::backdrop,.preview-actions,#preview-dialog>.close{display:none!important}.client-sheet{padding:0}.print-apartment{break-inside:avoid;page-break-inside:avoid}}
@media(max-width:700px){.selection-fields{grid-template-columns:1fr}.selection-list article{grid-template-columns:auto 1fr}.selection-list article>img{grid-column:2}.print-apartment{grid-template-columns:1fr}.print-apartment>img{width:100%}}

@media print{
 @page{size:A4 portrait;margin:12mm}
 html,body{width:210mm;background:#fff!important}
 .client-sheet{width:auto!important;max-width:none!important;margin:0!important;padding:0!important}
 .print-apartment{break-inside:avoid;page-break-inside:avoid;margin-bottom:8mm}
 .print-apartment img{max-width:100%!important;height:auto!important}
 .sheet-footer{break-inside:avoid;page-break-inside:avoid}
}

/* complex-address-v1 */
.complex-address{margin:5px 0 12px;color:var(--muted);font-size:14px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.complex-address{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}}
\n/* account-profile-v1 */
#account-profile{display:grid;gap:10px;padding:14px 0 4px}
#account-profile-name{font-size:1.15rem;color:#102f57}
#account-profile-role{color:#526982}
#account-profile .button-secondary{width:100%;min-height:44px}

/* auth-gate-v1 */
body:not(.auth-ok)>header,body:not(.auth-ok)>main,body:not(.auth-ok)>footer,body:not(.auth-ok)>#selection-bar{display:none!important}
#auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(145deg,#eef6ff,#dceafb)}
body.auth-ok>#auth-gate{display:none!important}
.auth-gate-card{width:min(520px,100%);padding:36px;border-radius:24px;background:#fff;box-shadow:0 22px 60px rgba(20,55,95,.18);text-align:center}
.auth-gate-brand{color:#1269ce;font-weight:800;letter-spacing:.12em;font-size:.8rem}
.auth-gate-card h1{margin:12px 0;color:#102f57}
.auth-gate-card p{margin:0 0 24px;color:#526982;line-height:1.55}
.auth-gate-card button{min-width:180px;min-height:48px}

/* service-role-visibility-v1 */
body:not(.role-admin) .service-section{display:none!important}

/* mobile-selection-bar-no-overlay-v1 */
@media(max-width:700px){
  #selection-bar.selection-bar{position:static;inset:auto;width:100%;margin:0 0 16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:8px;box-shadow:0 8px 24px #17314f1f}
  #selection-bar[hidden]{display:none!important}
  #selection-bar button{min-width:0;min-height:44px;padding:10px 8px}
}
/* mobile-fix-20261004 */ details:not([open])>.rooms-options{display:none!important}@media(max-width:720px){#compare-dialog{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;min-width:0!important;margin:8px!important;padding:14px!important;box-sizing:border-box!important}#compare-dialog .compare-wrap{width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}#compare-dialog table{width:max-content!important;min-width:640px!important}}
/* interactive-ui-20261004 */ button,a.button,.complex-card,.complex-cover,dialog{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background-color .22s ease,color .22s ease,opacity .22s ease}.complex-card{will-change:transform}.complex-card .complex-cover{overflow:hidden;background-size:cover;background-position:center;will-change:transform}.complex-card button,.button-secondary,#sync,#reset{position:relative;isolation:isolate}.show-on-map::before{content:'⌖';font-size:1.05em;margin-right:.38em}.open-complex::before{content:'↗';font-size:1.02em;margin-right:.38em}#open-calculator::before{content:'▦';font-size:1.05em;margin-right:.38em}#mobile-filter-toggle::before{content:'☷';font-size:1.02em;margin-right:.38em}#view-list::before{content:'☰';font-size:.92em;margin-right:.32em}#view-map::before{content:'⌖';font-size:1em;margin-right:.32em}#view-compact::before{content:'▦';font-size:.95em;margin-right:.32em}button:active,a.button:active{transform:scale(.975)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid rgba(31,111,235,.3);outline-offset:3px}@media (hover:hover) and (pointer:fine){button:hover,a.button:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(16,57,107,.14)}.complex-card:hover{transform:translateY(-5px);border-color:rgba(31,111,235,.42);box-shadow:0 16px 34px rgba(16,57,107,.15)}.complex-card:hover .complex-cover{transform:scale(1.025)}.complex-card .open-complex:hover,.complex-card .show-on-map:hover{box-shadow:0 10px 22px rgba(31,111,235,.22)}}dialog[open]{animation:interactiveDialogIn .22s ease-out}dialog::backdrop{background:rgba(7,25,49,.48);backdrop-filter:blur(2px)}@keyframes interactiveDialogIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:720px){button:active,a.button:active,.complex-card:active{transform:scale(.985)}.complex-card{box-shadow:0 6px 18px rgba(16,57,107,.08)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* interactive-ui-stage2-20261004 */ #sales-tags button{position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}#sales-tags button.active{color:#fff!important;background:linear-gradient(135deg,#1768d9,#2b82ef)!important;border-color:#1768d9!important;box-shadow:0 8px 20px rgba(31,111,235,.24)!important}#sales-tags button.active::after{content:'✓';display:inline-grid;place-items:center;width:18px;height:18px;margin-left:7px;border-radius:50%;background:rgba(255,255,255,.2);font-size:12px;font-weight:900}#catalog{position:relative}#catalog[aria-busy='true']{min-height:260px;cursor:progress}#catalog[aria-busy='true']::before{content:'Обновляем результаты…';position:sticky;z-index:30;top:12px;left:50%;display:block;width:max-content;max-width:calc(100% - 32px);margin:12px auto -54px;padding:11px 18px 11px 42px;border:1px solid rgba(31,111,235,.2);border-radius:999px;color:#0c4fa8;background:rgba(255,255,255,.96);box-shadow:0 10px 28px rgba(16,57,107,.16);font-weight:800;backdrop-filter:blur(6px)}#catalog[aria-busy='true']::after{content:'';position:sticky;z-index:31;top:25px;left:calc(50% - 76px);display:block;width:14px;height:14px;margin:0 auto;border:2px solid rgba(31,111,235,.22);border-top-color:#1f6feb;border-radius:50%;animation:catalogSpin .7s linear infinite}@keyframes catalogSpin{to{transform:rotate(360deg)}}#admin-amo-log::before{content:'◷'}#admin-amo-mapping::before{content:'⇄'}#admin-project-monitor::before{content:'⌁'}#admin-feedback::before,#pilot-feedback::before{content:'◌'}#expert-login::before{content:'♙'}#admin-amo-log::before,#admin-amo-mapping::before,#admin-project-monitor::before,#admin-feedback::before,#pilot-feedback::before,#expert-login::before,#open-calculator::before{display:inline-grid;place-items:center;width:25px;height:25px;margin-right:7px;border:1px solid rgba(31,111,235,.24);border-radius:8px;color:#1768d9;background:#eef6ff;font-weight:900;vertical-align:middle}.header-actions button:hover::before{background:#1768d9;color:#fff;border-color:#1768d9}@media(max-width:720px){#catalog[aria-busy='true']::before{top:8px;font-size:13px;padding:9px 14px 9px 38px}#sales-tags button.active::after{width:16px;height:16px;margin-left:5px}}
/* interactive-ui-stage2-marketing-20261004 */ #marketing-tags button{position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}#marketing-tags button.active{color:#fff!important;background:linear-gradient(135deg,#1768d9,#2b82ef)!important;border-color:#1768d9!important;box-shadow:0 8px 20px rgba(31,111,235,.24)!important}#marketing-tags button.active::after{content:'✓';display:inline-grid;place-items:center;width:18px;height:18px;margin-left:7px;border-radius:50%;background:rgba(255,255,255,.2);font-size:12px;font-weight:900}@media(max-width:720px){#marketing-tags button.active::after{width:16px;height:16px;margin-left:5px}}
/* card-actions-polish-20261004 */ @media(min-width:721px){.complex-card .card-actions{grid-template-columns:minmax(108px,.75fr) minmax(0,1.25fr)!important;grid-template-rows:118px 50px!important;align-items:start!important;gap:10px!important}.complex-card .show-on-map{display:flex!important;flex-direction:column;align-items:center;justify-content:center;width:100%!important;height:118px!important;min-height:118px!important;padding:12px!important;line-height:1.25;text-align:center}.complex-card .show-on-map::before{font-size:28px;line-height:1;margin:0 0 8px!important}.complex-card .building-summary{height:118px!important;max-height:118px!important;min-height:118px!important;overflow-y:auto!important;overscroll-behavior:contain;padding:14px!important}.complex-card .card-actions-v30:empty{display:none!important}.complex-card .open-complex{grid-column:1/-1!important;width:100%!important;height:50px!important;min-height:50px!important}}

/* stats-polish-20261004 */
.stats > article {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 112px;
  padding: 20px 76px 20px 22px;
  background: linear-gradient(135deg, #ffffff 0%, #f7fbff 100%);
  border-color: #d7e7f8;
  box-shadow: 0 10px 28px rgba(18, 72, 131, .07);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.stats > article::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #1f6fe5;
}
.stats > article::after {
  position: absolute;
  top: 50%;
  right: 18px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  transform: translateY(-50%);
  border-radius: 14px;
  color: #0c58bc;
  background: rgba(31,111,229,.10);
  font: 800 20px/1 Arial,sans-serif;
}
.stats > article:nth-child(1)::after { content: "▦"; }
.stats > article:nth-child(2)::before { background: #f0a43a; }
.stats > article:nth-child(2)::after { content: "◷"; color:#a86100; background:rgba(240,164,58,.14); }
.stats > article:nth-child(3)::before { background: #22a96a; }
.stats > article:nth-child(3)::after { content: "₽"; color:#087b46; background:rgba(34,169,106,.13); }
.stats > article:nth-child(4)::before { background: #7b65d6; }
.stats > article:nth-child(4)::after { content: "↻"; color:#5d46bd; background:rgba(123,101,214,.13); }
.stats > article small {
  display: block;
  margin-bottom: 8px;
  color: #5f7590;
  font-weight: 650;
  letter-spacing: .01em;
}
.stats > article strong {
  display: block;
  color: #082f60;
  line-height: 1.2;
}
@media (hover:hover) and (pointer:fine) {
  .stats > article:hover {
    transform: translateY(-4px);
    border-color: #b8d5f5;
    box-shadow: 0 16px 34px rgba(18,72,131,.13);
  }
}
@media (max-width:640px) {
  .stats > article {
    min-height: 98px;
    padding: 16px 58px 16px 17px;
    box-shadow: 0 7px 20px rgba(18,72,131,.07);
  }
  .stats > article::after {
    right: 12px;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 18px;
  }
  .stats > article small { margin-bottom: 6px; font-size: 12px; }
  .stats > article strong { font-size: clamp(17px,5vw,22px); overflow-wrap:anywhere; }
}

/* filters-polish-20261004 */
.filters .section-title {
  padding-bottom: 18px;
  margin-bottom: 16px;
  border-bottom: 1px solid #e5eef8;
}
.filters .sales-tags,
.filters .marketing-tags {
  position: relative;
  align-items: center;
  gap: 9px;
}
.filters .sales-tags::before,
.filters .marketing-tags::before {
  flex: 0 0 100%;
  color: #6d8097;
  font: 750 11px/1.2 Arial,sans-serif;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.filters .sales-tags::before { content: "Программы и выгоды"; }
.filters .marketing-tags::before { content: "Статус новостройки"; }
.filters .filter-grid {
  padding: 18px;
  border: 1px solid #dceaf8;
  border-radius: 18px;
  background: linear-gradient(145deg,#f8fbff 0%,#f3f8fe 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.filters .filter-grid > label,
.filters .filter-grid .rooms-filter {
  color: #405872;
  font-weight: 700;
}
.filters .filter-grid input,
.filters .filter-grid select,
.filters .filter-grid details > summary {
  border-color: #d3e1ef;
  background-color: #fff;
  box-shadow: 0 3px 10px rgba(20,70,120,.035);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
@media (hover:hover) and (pointer:fine) {
  .filters .filter-grid input:hover,
  .filters .filter-grid select:hover,
  .filters .filter-grid details > summary:hover {
    border-color: #a9caee;
    box-shadow: 0 5px 14px rgba(20,70,120,.075);
  }
}
.filters .filter-grid input:focus,
.filters .filter-grid select:focus,
.filters .filter-grid details[open] > summary {
  outline: none;
  border-color: #2877de;
  box-shadow: 0 0 0 3px rgba(40,119,222,.13),0 6px 16px rgba(20,70,120,.08);
}
.filters .filter-grid small {
  color: #7a8da3;
  font-weight: 600;
}
.filters .mobile-filter-toggle {
  border-color: #bed7f2;
  background: #f5f9ff;
  color: #0756b5;
  box-shadow: 0 6px 16px rgba(30,90,150,.07);
}
@media (max-width:680px) {
  .filters .section-title { padding-bottom: 14px; margin-bottom: 14px; }
  .filters .sales-tags,
  .filters .marketing-tags { gap: 7px; }
  .filters .filter-grid {
    padding: 12px;
    gap: 12px;
    border-radius: 16px;
  }
  .filters .sales-tags::before,
  .filters .marketing-tags::before { font-size: 10px; }
}

/* complex-cards-polish-20261004 */
.complex-card {
  border-radius: 18px;
  border-color: #d6e5f4;
  background: linear-gradient(180deg,#fff 0%,#fff 72%,#fbfdff 100%);
  box-shadow: 0 10px 28px rgba(20,67,116,.075);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.complex-card .complex-cover {
  overflow: hidden;
  border-radius: 17px 17px 0 0;
}
.complex-card .developer {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #0b519f;
  font-weight: 800;
  letter-spacing: .075em;
}
.complex-card .developer::before {
  content: "";
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #2581ed;
  box-shadow: 0 0 0 4px rgba(37,129,237,.11);
}
.complex-card > h3 {
  color: #062e5e;
  letter-spacing: -.015em;
  line-height: 1.15;
}
.complex-card .complex-address {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  color: #647b94;
}
.complex-card .complex-address::before {
  content: "⌖";
  flex: 0 0 auto;
  color: #2778db;
  font-weight: 800;
}
.complex-card .promo-strip {
  gap: 7px;
}
.complex-card .promo-badge {
  border-color: #ffd1ad;
  background: linear-gradient(180deg,#fff9f3 0%,#fff2e6 100%);
  box-shadow: 0 3px 8px rgba(184,91,24,.06);
}
.complex-card .metrics {
  gap: 8px;
}
.complex-card .metric {
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #e4edf7;
  border-radius: 12px;
  background: #f8fbff;
}
.complex-card .metric small {
  display: block;
  margin-bottom: 5px;
  color: #71859c;
  font-weight: 650;
}
.complex-card .metric strong {
  color: #092f5c;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.complex-card .readiness-badge {
  border: 1px solid rgba(28,166,91,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
.complex-card .building-summary {
  border-color: #d9e7f6;
  background: linear-gradient(145deg,#f5f9ff,#edf5fd);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86);
}
.complex-card .show-on-map {
  border-color: #b9d6f5;
  background: #fff;
  color: #0759b8;
}
.complex-card .open-complex {
  background: linear-gradient(135deg,#2479e6 0%,#1264cf 100%);
  box-shadow: 0 9px 20px rgba(22,100,207,.20);
}
@media (hover:hover) and (pointer:fine) {
  .complex-card:hover {
    transform: translateY(-5px);
    border-color: #aacdf2;
    box-shadow: 0 18px 38px rgba(20,67,116,.14);
  }
  .complex-card .show-on-map:hover {
    background: #edf6ff;
    border-color: #7fb3ec;
  }
  .complex-card .open-complex:hover {
    box-shadow: 0 12px 25px rgba(22,100,207,.28);
  }
}
@media (max-width:680px) {
  .complex-card {
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(20,67,116,.075);
  }
  .complex-card .complex-cover { border-radius: 15px 15px 0 0; }
  .complex-card .metrics { gap: 6px; }
  .complex-card .metric { padding: 9px; border-radius: 10px; }
  .complex-card .metric strong { font-size: 15px; }
}

/* apartment-modal-polish-20261004 */
#modal {
  width: min(780px,calc(100vw - 32px));
  padding: 26px;
  border: 1px solid #d7e5f3;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(4,34,70,.24);
}
#modal::backdrop {
  background: rgba(3,25,49,.58);
  backdrop-filter: blur(3px);
}
#modal > .close {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #eef3f8;
  color: #123a66;
  font-size: 25px;
  box-shadow: none;
  transition: transform .18s ease,background .18s ease;
}
#detail .detail-kicker {
  color: #0b519f;
  font-size: 12px;
  letter-spacing: .08em;
}
#detail .detail-hero {
  padding: 22px 24px;
  margin: 15px 0;
  border: 1px solid #d8e9fb;
  border-radius: 18px;
  background: linear-gradient(135deg,#edf6ff 0%,#e4f0ff 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
#detail .detail-hero h2 {
  margin: 0 0 4px;
  color: #062f60;
  font-size: clamp(30px,4vw,40px);
  letter-spacing: -.025em;
}
#detail .promo-strip {
  gap: 7px;
  margin: 10px 0 12px;
}
#detail .promo-badge {
  border-color: #ffd0a8;
  border-radius: 999px;
  background: linear-gradient(180deg,#fff9f3,#fff0e2);
  box-shadow: 0 3px 9px rgba(177,81,18,.07);
}
#detail .plan-image {
  width: 100%;
  max-height: 460px;
  min-height: 180px;
  padding: 14px;
  margin: 18px 0;
  box-sizing: border-box;
  object-fit: contain;
  border: 1px solid #dce8f4;
  border-radius: 16px;
  background: linear-gradient(145deg,#fff,#f8fbff);
  box-shadow: 0 10px 28px rgba(18,62,108,.08);
}
#detail .detail-facts {
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 9px;
}
#detail .detail-fact {
  min-width: 0;
  padding: 12px 13px;
  border: 1px solid #e2ebf4;
  border-radius: 12px;
  background: linear-gradient(145deg,#fafcff,#f5f9fd);
}
#detail .detail-fact small {
  margin-bottom: 5px;
  color: #74879c;
  font-weight: 700;
}
#detail .detail-fact strong {
  color: #0a315e;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
#detail .detail-section {
  padding-top: 18px;
  margin-top: 18px;
  border-color: #dbe7f3;
}
#detail .detail-section h3 {
  color: #0a315e;
}
#detail .detail-source {
  background: #eef5fc;
  color: #4e6f92;
}
#detail .detail-actions {
  position: sticky;
  bottom: -1px;
  z-index: 4;
  gap: 9px;
  padding: 12px 0 3px;
  margin-top: 18px;
  background: linear-gradient(180deg,rgba(255,255,255,0),#fff 24%,#fff 100%);
}
#detail .detail-actions a,
#detail .detail-actions button,
#detail .mortgage-button {
  min-height: 46px;
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(22,100,207,.15);
}
#detail .detail-cta {
  border-radius: 12px;
  background: linear-gradient(135deg,#2479e6,#1264cf);
}
#modal .detail-heart {
  top: 25px;
  right: 76px;
  width: 42px;
  height: 42px;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(21,70,120,.10);
}
@media (hover:hover) and (pointer:fine) {
  #modal > .close:hover { transform: rotate(6deg); background:#e2ebf4; }
  #detail .detail-fact:hover { border-color:#bcd6ef; }
}
@media (max-width:680px) {
  #modal {
    inset: 6px 0;
    width: calc(100vw - 12px);
    max-height: calc(100dvh - 12px);
    padding: 16px;
    border-radius: 20px;
  }
  #modal > .close { width:38px;height:38px;font-size:22px; }
  #detail .detail-hero { padding:17px 18px;border-radius:15px; }
  #detail .detail-hero h2 { font-size:28px; }
  #detail .plan-image {
    min-height: 150px;
    max-height: 44dvh;
    padding: 8px;
    margin: 14px 0;
    border-radius: 13px;
  }
  #detail .detail-facts {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 7px;
  }
  #detail .detail-fact { padding:10px;border-radius:10px; }
  #detail .detail-actions { gap:7px;padding-top:10px; }
  #detail .detail-actions a,
  #detail .detail-actions button { min-height:44px;padding:10px 8px;font-size:13px; }
  #modal .detail-heart { top:17px;right:61px;width:38px;height:38px; }
}

/* selection-workspace-polish-20261004 */
#selection-dialog {
  width: min(1040px,calc(100vw - 32px));
  max-height: calc(100dvh - 24px);
  padding: 26px;
  border: 1px solid #d7e5f3;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(4,34,70,.24);
}
#selection-dialog::backdrop {
  background: rgba(3,25,49,.58);
  backdrop-filter: blur(3px);
}
#selection-content > h2 {
  margin: 0 56px 6px 0;
  color: #062f60;
  letter-spacing: -.02em;
}
#selection-content > p {
  color: #647b94;
}
#selection-content .selection-fields {
  gap: 12px;
  padding: 16px;
  border: 1px solid #dce9f6;
  border-radius: 16px;
  background: linear-gradient(145deg,#f8fbff,#f2f7fd);
}
#selection-content .selection-fields label {
  color: #425b75;
  font-weight: 700;
}
#selection-content .selection-fields input,
#selection-content .selection-fields select,
#selection-content .selection-fields textarea,
#selection-content .item-comment {
  border-color: #d2e1f0;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(20,70,120,.035);
}
#selection-content .selection-fields input:focus,
#selection-content .selection-fields select:focus,
#selection-content .selection-fields textarea:focus,
#selection-content .item-comment:focus {
  outline: none;
  border-color: #2877de;
  box-shadow: 0 0 0 3px rgba(40,119,222,.13);
}
#selection-content .selection-list {
  gap: 12px;
  margin-top: 16px;
}
#selection-content .selection-list article {
  gap: 14px;
  margin: 0;
  padding: 15px;
  border-color: #d9e7f5;
  border-radius: 16px;
  background: linear-gradient(145deg,#fff,#fafdff);
  box-shadow: 0 8px 22px rgba(20,67,116,.065);
  transition: border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
#selection-content .selection-list article > img {
  padding: 7px;
  box-sizing: border-box;
  border: 1px solid #e0eaf4;
  border-radius: 12px;
  background: #fff;
}
#selection-content .selection-list h3 {
  color: #082f60;
  line-height: 1.25;
}
#selection-content .selection-list p {
  color: #647b94;
  line-height: 1.45;
}
#selection-content .item-comment {
  min-height: 64px;
  padding: 10px 12px;
  resize: vertical;
}
#selection-content input[type="checkbox"] {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  accent-color: #1769d2;
}
#selection-content label:has(> input[type="checkbox"]) {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #36526e;
  font-weight: 700;
}
#selection-content .remove-selection {
  border: 1px solid #e4ebf2;
  border-radius: 10px;
  background: #f6f8fb;
  color: #6b7e91;
  font-weight: 700;
}
#selection-content .workspace-actions {
  position: sticky;
  bottom: -1px;
  z-index: 5;
  align-items: stretch;
  gap: 8px;
  padding: 14px 0 3px;
  background: linear-gradient(180deg,rgba(255,255,255,0),#fff 26%,#fff);
}
#selection-content .workspace-actions button,
#selection-content .workspace-actions a {
  min-height: 46px;
  border-radius: 11px;
}
#selection-content .workspace-actions button:first-child {
  background: #f0f6fd;
  color: #0b58b3;
  border: 1px solid #c8ddf3;
  box-shadow: none;
}
#selection-content .selection-live-note,
#selection-content .selection-live-warning {
  border-radius: 11px;
}
@media (hover:hover) and (pointer:fine) {
  #selection-content .selection-list article:hover {
    transform: translateY(-2px);
    border-color: #b7d3ef;
    box-shadow: 0 12px 28px rgba(20,67,116,.11);
  }
  #selection-content .remove-selection:hover {
    border-color:#f0baba;
    background:#fff3f3;
    color:#a33d3d;
  }
}
@media (max-width:680px) {
  #selection-dialog {
    inset: 6px 0;
    width: calc(100vw - 12px);
    max-height: calc(100dvh - 12px);
    padding: 15px;
    border-radius: 20px;
  }
  #selection-content .selection-fields {
    grid-template-columns: 1fr;
    padding: 12px;
    border-radius: 14px;
  }
  #selection-content .selection-list article {
    grid-template-columns: 34px 82px minmax(0,1fr);
    gap: 9px;
    padding: 11px;
    border-radius: 14px;
  }
  #selection-content .selection-list article > img {
    width: 82px;
    height: 76px;
  }
  #selection-content .remove-selection {
    grid-column: 1 / -1;
    width: 100%;
  }
  #selection-content .workspace-actions {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 7px;
  }
  #selection-content .workspace-actions button,
  #selection-content .workspace-actions a {
    min-width: 0;
    padding: 10px 7px;
    font-size: 12px;
  }
}

/* compare-preview-polish-20261004 */
#compare-dialog,
#preview-dialog {
  width: min(1180px,calc(100vw - 32px));
  max-height: calc(100dvh - 24px);
  padding: 26px;
  border: 1px solid #d7e5f3;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(4,34,70,.24);
}
#compare-dialog::backdrop,
#preview-dialog::backdrop {
  background: rgba(3,25,49,.58);
  backdrop-filter: blur(3px);
}
#compare-content > h2,
#preview-content > h2 {
  margin: 0 58px 14px 0;
  color: #062f60;
  letter-spacing: -.02em;
}
#compare-content > p,
#preview-content > p {
  color: #647b94;
}
#compare-content .compare-wrap {
  max-width: 100%;
  overflow: auto;
  border: 1px solid #d9e7f5;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(20,67,116,.07);
  scrollbar-color: #9dbbda #edf4fb;
  scrollbar-width: thin;
}
#compare-content .compare-wrap table {
  border-spacing: 0;
  background: #fff;
}
#compare-content .compare-wrap th,
#compare-content .compare-wrap td {
  padding: 14px 15px;
  border-bottom-color: #e2ebf4;
  vertical-align: top;
}
#compare-content .compare-wrap thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: linear-gradient(135deg,#2479e6,#1264cf);
  color: #fff;
  box-shadow: inset 0 -1px 0 rgba(255,255,255,.18);
}
#compare-content .compare-wrap thead th:first-child {
  left: 0;
  z-index: 4;
}
#compare-content .compare-wrap tbody th {
  z-index: 2;
  min-width: 150px;
  background: #f2f7fd;
  color: #284d73;
  box-shadow: inset -1px 0 0 #dce8f4;
}
#compare-content .compare-wrap tbody tr:nth-child(even) td {
  background: #f9fbfe;
}
#compare-content .compare-wrap tbody tr:hover td {
  background: #edf6ff;
}
#compare-content .compare-wrap img {
  display: block;
  width: 120px;
  height: 90px;
  padding: 6px;
  object-fit: contain;
  box-sizing: border-box;
  border: 1px solid #e0eaf4;
  border-radius: 11px;
  background: #fff;
}
#preview-content {
  min-width: 0;
}
#preview-content iframe,
#preview-content object,
#preview-content embed,
#preview-content .pdf-preview {
  display: block;
  width: 100%;
  height: min(72dvh,820px);
  border: 1px solid #d8e6f4;
  border-radius: 16px;
  background: #f3f7fb;
  box-shadow: 0 12px 32px rgba(18,62,108,.10);
}
#preview-content > img,
#preview-content .preview-page {
  display: block;
  max-width: 100%;
  margin: 12px auto;
  border: 1px solid #dfe8f2;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(18,62,108,.09);
}
#preview-content .preview-actions,
#compare-content .workspace-actions {
  position: sticky;
  bottom: -1px;
  z-index: 5;
  align-items: stretch;
  gap: 8px;
  padding: 14px 0 3px;
  background: linear-gradient(180deg,rgba(255,255,255,0),#fff 26%,#fff);
}
#preview-content .preview-actions button,
#preview-content .preview-actions a,
#compare-content .workspace-actions button,
#compare-content .workspace-actions a {
  min-height: 46px;
  border-radius: 11px;
}
@media (max-width:680px) {
  #compare-dialog,
  #preview-dialog {
    inset: 6px 0;
    width: calc(100vw - 12px);
    max-height: calc(100dvh - 12px);
    padding: 14px;
    border-radius: 20px;
  }
  #compare-content .compare-wrap {
    border-radius: 13px;
  }
  #compare-content .compare-wrap th,
  #compare-content .compare-wrap td {
    min-width: 138px;
    padding: 11px;
    font-size: 13px;
  }
  #compare-content .compare-wrap tbody th {
    min-width: 112px;
    max-width: 132px;
  }
  #compare-content .compare-wrap img {
    width: 96px;
    height: 76px;
  }
  #preview-content iframe,
  #preview-content object,
  #preview-content embed,
  #preview-content .pdf-preview {
    height: calc(100dvh - 185px);
    min-height: 420px;
    border-radius: 13px;
  }
  #preview-content .preview-actions,
  #compare-content .workspace-actions {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 7px;
  }
  #preview-content .preview-actions button,
  #preview-content .preview-actions a,
  #compare-content .workspace-actions button,
  #compare-content .workspace-actions a {
    min-width: 0;
    padding: 10px 7px;
    font-size: 12px;
  }
}

/* login-calculator-polish-20261004 */
#login-dialog {
  width: min(480px,calc(100vw - 28px));
  max-height: calc(100dvh - 24px);
  padding: 28px;
  border: 1px solid #d7e5f3;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(4,34,70,.24);
}
#login-dialog::backdrop,
#calculator::backdrop {
  background: rgba(3,25,49,.58);
  backdrop-filter: blur(3px);
}
#login-dialog > h2 {
  margin: 0 52px 7px 0;
  color: #062f60;
  letter-spacing: -.025em;
}
#login-dialog > p {
  color: #647b94;
  line-height: 1.5;
}
#login-dialog > label {
  display: grid;
  gap: 7px;
  margin-top: 14px;
  color: #425b75;
  font-weight: 700;
}
#login-dialog input {
  min-height: 48px;
  border-color: #d2e1f0;
  border-radius: 12px;
  background: #fafdff;
  box-shadow: inset 0 1px 2px rgba(16,54,96,.025);
}
#login-dialog input:focus {
  outline: none;
  border-color: #2877de;
  box-shadow: 0 0 0 3px rgba(40,119,222,.13);
  background: #fff;
}
#login-dialog #login-submit,
#login-dialog #logout-submit {
  width: 100%;
  min-height: 48px;
  margin-top: 16px;
  border-radius: 12px;
}
#login-dialog #account-profile {
  display: grid;
  gap: 9px;
  padding: 16px;
  margin: 14px 0;
  border: 1px solid #dbe8f5;
  border-radius: 15px;
  background: linear-gradient(145deg,#f8fbff,#f1f7fd);
}
#login-dialog #account-profile-name {
  color: #082f60;
  font-size: 19px;
}
#login-dialog #account-profile-role {
  color: #647b94;
}
#login-dialog .login-error {
  padding: 0;
  margin: 10px 0 0;
  color: #bd3030;
  font-weight: 700;
}
#calculator {
  width: min(1040px,calc(100vw - 32px));
  max-height: calc(100dvh - 24px);
  padding: 28px;
  border: 1px solid #d7e5f3;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(4,34,70,.24);
}
#calculator .calculator-head small {
  color: #0b5fc3;
  font-size: 11px;
}
#calculator .calculator-head h2 {
  margin: 6px 52px 7px 0;
  color: #062f60;
  letter-spacing: -.025em;
}
#calculator .calculator-head p {
  margin: 0;
  color: #647b94;
}
#calculator .program-tabs {
  gap: 7px;
  margin: 18px 0;
  padding-bottom: 2px;
}
#calculator .program-tabs button {
  min-height: 40px;
  border-color: #cedfee;
  border-radius: 999px;
  background: #f3f7fc;
  color: #466786;
  font-weight: 750;
}
#calculator .program-tabs button.active {
  border-color: #1769d2;
  background: linear-gradient(135deg,#2479e6,#1264cf);
  color: #fff;
  box-shadow: 0 7px 17px rgba(22,100,207,.20);
}
#calculator .calculator-grid {
  gap: 18px;
}
#calculator .calculator-fields {
  gap: 12px;
  padding: 17px;
  border: 1px solid #dce9f6;
  border-radius: 16px;
  background: linear-gradient(145deg,#f8fbff,#f2f7fd);
}
#calculator .calculator-fields label {
  color: #425b75;
  font-weight: 700;
}
#calculator .calculator-fields input {
  min-height: 47px;
  border-color: #d2e1f0;
  border-radius: 11px;
  background: #fff;
}
#calculator .calculator-fields input:focus {
  outline: none;
  border-color: #2877de;
  box-shadow: 0 0 0 3px rgba(40,119,222,.13);
}
#calculator .calculator-fields input[readonly] {
  background: #edf3f9;
  color: #5a7088;
}
#calculator .calc-result {
  padding: 24px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: linear-gradient(145deg,#0d417f,#1769d9);
  box-shadow: 0 18px 38px rgba(12,70,145,.24);
}
#calculator .calc-result > strong {
  font-size: clamp(32px,4vw,42px);
  letter-spacing: -.025em;
}
#calculator .calc-result > div {
  gap: 14px;
}
#calculator .calc-result b {
  text-align: right;
}
@media (hover:hover) and (pointer:fine) {
  #calculator .program-tabs button:hover { border-color:#8db8e6; }
}
@media (max-width:680px) {
  #login-dialog,
  #calculator {
    inset: 6px 0;
    width: calc(100vw - 12px);
    max-height: calc(100dvh - 12px);
    padding: 16px;
    border-radius: 20px;
  }
  #calculator .program-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 7px;
    scrollbar-width: thin;
  }
  #calculator .program-tabs button {
    flex: 0 0 auto;
    white-space: nowrap;
  }
  #calculator .calculator-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  #calculator .calculator-fields {
    grid-template-columns: 1fr;
    padding: 12px;
    border-radius: 14px;
  }
  #calculator .calc-result {
    padding: 19px;
    border-radius: 15px;
  }
}

/* admin-workspaces-polish-20261004 */
#admin-feedback-dialog,
#admin-project-monitor-dialog,
#admin-amo-mapping-dialog,
#admin-amo-log-dialog {
  width: min(1180px,calc(100vw - 32px));
  max-height: calc(100dvh - 24px);
  padding: 26px;
  border: 1px solid #d7e5f3;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(4,34,70,.24);
}
#admin-feedback-dialog::backdrop,
#admin-project-monitor-dialog::backdrop,
#admin-amo-mapping-dialog::backdrop,
#admin-amo-log-dialog::backdrop {
  background: rgba(3,25,49,.58);
  backdrop-filter: blur(3px);
}
#admin-feedback-dialog > h2,
#admin-project-monitor-dialog > h2,
#admin-amo-mapping-dialog > h2,
#admin-amo-log-dialog h2 {
  margin: 0 58px 7px 0;
  color: #062f60;
  letter-spacing: -.025em;
}
#admin-feedback-dialog > p,
#admin-project-monitor-dialog > p,
#admin-amo-mapping-dialog > p,
#admin-amo-log-dialog > p {
  color: #647b94;
  line-height: 1.5;
}
#admin-amo-log-dialog .workspace-head small {
  color: #0b5fc3;
  font-weight: 800;
  letter-spacing: .12em;
}
#admin-feedback-dialog .control-grid,
#admin-project-monitor-dialog .control-grid,
#admin-amo-mapping-dialog .control-grid,
#admin-amo-log-dialog .control-grid {
  grid-template-columns: repeat(auto-fit,minmax(150px,1fr));
  gap: 10px;
  margin: 18px 0;
}
#admin-feedback-dialog .control-grid > div,
#admin-project-monitor-dialog .control-grid > div,
#admin-amo-mapping-dialog .control-grid > div,
#admin-amo-log-dialog .control-grid > div {
  position: relative;
  overflow: hidden;
  min-height: 82px;
  padding: 14px 16px;
  border-color: #dbe8f5;
  border-radius: 13px;
  background: linear-gradient(145deg,#fafdff,#f2f7fd);
}
#admin-feedback-dialog .control-grid > div::before,
#admin-project-monitor-dialog .control-grid > div::before,
#admin-amo-mapping-dialog .control-grid > div::before,
#admin-amo-log-dialog .control-grid > div::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #2378df;
}
.control-grid small {
  color: #6c8198;
  font-weight: 650;
}
.control-grid strong {
  color: #082f60;
  font: 800 23px/1.2 Arial,sans-serif;
}
#admin-feedback-status {
  min-height: 44px;
  margin-top: 7px;
  border-color: #d2e1f0;
  border-radius: 11px;
  background: #fff;
}
#admin-feedback-list,
#admin-project-monitor-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
#admin-feedback-list > article,
#admin-feedback-list > div,
#admin-project-monitor-list > article,
#admin-project-monitor-list > div {
  padding: 14px 16px;
  border: 1px solid #dce8f4;
  border-radius: 13px;
  background: linear-gradient(145deg,#fff,#fafdff);
  box-shadow: 0 6px 18px rgba(20,67,116,.055);
}
#admin-amo-mapping-list {
  display: grid;
  gap: 9px;
  margin-top: 14px;
}
#admin-amo-mapping-list .amo-map-row {
  grid-template-columns: minmax(180px,1fr) minmax(180px,1fr) minmax(260px,1.3fr) auto;
  gap: 12px;
  padding: 14px;
  border: 1px solid #dce8f4;
  border-radius: 13px;
  background: linear-gradient(145deg,#fff,#f8fbff);
}
#admin-amo-mapping-list .amo-map-row strong {
  color: #082f60;
}
#admin-amo-mapping-list .amo-map-row small {
  color: #72869b;
}
#admin-amo-mapping-list .amo-map-row select,
#admin-amo-mapping-list .amo-map-row input {
  min-height: 44px;
  border-color: #d2e1f0;
  border-radius: 10px;
  background: #fff;
}
#admin-amo-mapping-list .amo-map-row button {
  min-height: 44px;
  border-radius: 10px;
}
#admin-amo-mapping-list .amo-map-row.is-inactive {
  opacity: .62;
  background: #f4f6f8;
}
#admin-amo-log-dialog .amo-log-toolbar {
  position: sticky;
  top: -1px;
  z-index: 4;
  padding: 9px 0;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(8px);
}
#admin-amo-log-list {
  overflow: auto;
  border: 1px solid #d9e7f5;
  border-radius: 14px;
  scrollbar-color: #9dbbda #edf4fb;
  scrollbar-width: thin;
}
#admin-amo-log-list .amo-log-table {
  min-width: 820px;
}
#admin-amo-log-list .amo-log-table th,
#admin-amo-log-list .amo-log-table td {
  padding: 12px 11px;
  border-bottom-color: #e2ebf4;
}
#admin-amo-log-list .amo-log-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #edf5fd;
  color: #284d73;
}
#admin-amo-log-list .amo-log-table tbody tr:nth-child(even) td {
  background: #f9fbfe;
}
#admin-amo-log-list .amo-status {
  border: 1px solid currentColor;
  border-radius: 999px;
}
@media (max-width:680px) {
  #admin-feedback-dialog,
  #admin-project-monitor-dialog,
  #admin-amo-mapping-dialog,
  #admin-amo-log-dialog {
    inset: 6px 0;
    width: calc(100vw - 12px);
    max-height: calc(100dvh - 12px);
    padding: 14px;
    border-radius: 20px;
  }
  #admin-feedback-dialog .control-grid,
  #admin-project-monitor-dialog .control-grid,
  #admin-amo-mapping-dialog .control-grid,
  #admin-amo-log-dialog .control-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 7px;
  }
  #admin-amo-mapping-list .amo-map-row {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 8px;
    padding: 12px;
  }
  #admin-amo-mapping-list .amo-map-row button {
    width: 100%;
  }
  #admin-amo-log-list .amo-log-table {
    min-width: 720px;
  }
}

/* v44 — map experience */
#map-view {
  position: relative;
  margin-top: 18px;
  padding: 12px;
  border: 1px solid rgba(27, 105, 213, .14);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(240,247,255,.92));
  box-shadow: 0 18px 48px rgba(19, 64, 122, .11);
  overflow: hidden;
}
#projects-map,
#projects-map.leaflet-container {
  min-height: 610px;
  border-radius: 18px;
  background: #eaf3fb;
  box-shadow: inset 0 0 0 1px rgba(24, 101, 206, .08);
}
#map-summary {
  position: absolute;
  z-index: 500;
  left: 28px;
  top: 28px;
  max-width: min(420px, calc(100% - 56px));
  margin: 0;
  padding: 10px 14px;
  border: 1px solid rgba(25, 105, 216, .13);
  border-radius: 13px;
  background: rgba(255,255,255,.94);
  color: #17375f;
  font-weight: 700;
  line-height: 1.35;
  box-shadow: 0 10px 28px rgba(20, 62, 112, .15);
  backdrop-filter: blur(12px);
}
#projects-map .leaflet-control-zoom {
  margin: 18px;
  overflow: hidden;
  border: 0;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(18, 67, 128, .18);
}
#projects-map .leaflet-control-zoom a {
  width: 38px;
  height: 38px;
  line-height: 38px;
  border: 0;
  color: #1267d5;
  background: rgba(255,255,255,.96);
  font-size: 21px;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
#projects-map .leaflet-control-zoom a:hover {
  color: #fff;
  background: #176de0;
}
#projects-map .leaflet-marker-icon {
  transition: transform .18s ease, filter .18s ease;
  transform-origin: center bottom;
  filter: drop-shadow(0 5px 7px rgba(18, 58, 104, .22));
}
#projects-map .leaflet-marker-icon:hover {
  transform: translateY(-3px) scale(1.09);
  filter: drop-shadow(0 9px 11px rgba(18, 58, 104, .28));
  z-index: 1000 !important;
}
#projects-map .marker-cluster div {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin: 4px;
  border-radius: 50%;
  background: linear-gradient(135deg, #267de9, #0a55bc);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 8px 22px rgba(13, 83, 177, .3);
}
#projects-map .leaflet-popup-content-wrapper {
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(22, 100, 208, .13);
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  color: #102f54;
  box-shadow: 0 18px 46px rgba(16, 55, 103, .22);
}
#projects-map .leaflet-popup-content {
  width: min(320px, 72vw) !important;
  margin: 0;
  padding: 17px 18px 18px;
  line-height: 1.45;
}
#projects-map .leaflet-popup-content strong,
#projects-map .leaflet-popup-content b {
  color: #082f62;
  font-size: 16px;
}
#projects-map .leaflet-popup-content a,
#projects-map .leaflet-popup-content button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin-top: 10px;
  padding: 8px 14px;
  border: 0;
  border-radius: 10px;
  background: #176de0;
  color: #fff;
  font-weight: 750;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
#projects-map .leaflet-popup-content a:hover,
#projects-map .leaflet-popup-content button:hover {
  transform: translateY(-1px);
  background: #0f5fc9;
  box-shadow: 0 8px 18px rgba(15, 95, 201, .22);
}
#projects-map .leaflet-popup-tip {
  background: #fff;
  box-shadow: 4px 4px 12px rgba(16, 55, 103, .12);
}
#projects-map .leaflet-popup-close-button {
  top: 8px;
  right: 8px;
  width: 30px;
  height: 30px;
  padding: 0;
  border-radius: 50%;
  color: #315475;
  background: #eef5fc;
  font-size: 20px;
  line-height: 28px;
}
#projects-map .leaflet-control-attribution {
  margin: 0 8px 8px 0;
  padding: 4px 8px;
  border-radius: 8px;
  background: rgba(255,255,255,.86);
  color: #5b7188;
  backdrop-filter: blur(8px);
}
.show-on-map {
  border-radius: 12px !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.show-on-map:hover {
  transform: translateY(-2px);
  border-color: rgba(22, 105, 220, .38) !important;
  box-shadow: 0 10px 22px rgba(19, 91, 188, .15);
}
@media (max-width: 720px) {
  #map-view {
    margin-inline: -8px;
    padding: 6px;
    border-radius: 18px;
  }
  #projects-map,
  #projects-map.leaflet-container {
    min-height: 68vh;
    border-radius: 14px;
  }
  #map-summary {
    left: 16px;
    top: 16px;
    max-width: calc(100% - 32px);
    padding: 8px 11px;
    font-size: 12px;
  }
  #projects-map .leaflet-control-zoom {
    margin: 12px;
  }
  #projects-map .leaflet-popup-content {
    width: min(276px, 76vw) !important;
    padding: 15px;
  }
  #projects-map .leaflet-control-attribution {
    max-width: 72%;
    font-size: 9px;
    white-space: normal;
  }
}

/* v45 — header and primary navigation */
.brand-header {
  position: relative;
  isolation: isolate;
  padding: clamp(22px, 3vw, 46px) clamp(18px, 4vw, 64px);
  border-bottom: 1px solid rgba(18, 92, 181, .12);
  overflow: hidden;
}
.brand-header::before,
.brand-header::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
}
.brand-header::before {
  width: 360px;
  height: 360px;
  right: -120px;
  top: -190px;
  background: radial-gradient(circle, rgba(37,126,237,.16), rgba(37,126,237,0) 70%);
}
.brand-header::after {
  width: 260px;
  height: 260px;
  left: 24%;
  bottom: -210px;
  background: radial-gradient(circle, rgba(67,176,226,.13), rgba(67,176,226,0) 72%);
}
.brand-wrap {
  width: min(1600px, 100%);
  margin-inline: auto;
  align-items: start;
}
.brand-mark {
  align-self: start;
  padding: 12px 14px;
  border: 1px solid rgba(19, 92, 183, .13);
  border-radius: 16px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 10px 30px rgba(21, 69, 126, .09);
  backdrop-filter: blur(12px);
  transition: transform .2s ease, box-shadow .2s ease;
}
.brand-mark:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(21, 69, 126, .14);
}
.header-copy h1 {
  letter-spacing: -.035em;
  text-wrap: balance;
}
.header-copy p {
  max-width: 720px;
  color: #58708b;
  line-height: 1.6;
}
.trust-row {
  gap: 8px;
}
.trust-row span {
  border: 1px solid rgba(25, 104, 211, .13);
  background: rgba(255,255,255,.8);
  box-shadow: 0 5px 16px rgba(25, 78, 137, .06);
}
.header-actions {
  align-self: start;
  max-width: 430px;
  padding: 10px;
  gap: 8px;
  border: 1px solid rgba(22, 99, 203, .12);
  border-radius: 18px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 12px 34px rgba(18, 65, 120, .1);
  backdrop-filter: blur(14px);
}
.header-actions button {
  min-height: 40px;
  margin: 0;
  border-radius: 11px;
  white-space: nowrap;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.header-actions button:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 16px rgba(19, 86, 177, .13);
}
.header-actions #sync {
  border-color: transparent;
  background: linear-gradient(135deg, #247bea, #1262cd);
  color: #fff;
}
.favorites-head {
  gap: 7px;
}
.favorites-head #selection-count {
  display: inline-grid;
  place-items: center;
  min-width: 23px;
  height: 23px;
  padding: 0 6px;
  border-radius: 999px;
  background: #e8f2ff;
  color: #0e61cf;
  font-size: 12px;
}
.catalog-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  flex-wrap: wrap;
}
.view-switch {
  padding: 5px;
  gap: 3px;
  border: 1px solid rgba(20, 97, 202, .12);
  border-radius: 15px;
  background: #edf5ff;
  box-shadow: 0 8px 22px rgba(22, 83, 161, .11);
}
.view-switch button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  padding: 9px 16px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #1e548f;
  font-weight: 750;
  transition: color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.view-switch button::before {
  font-size: 16px;
  line-height: 1;
  opacity: .78;
}
#view-list::before { content: "▦"; }
#view-map::before { content: "⌖"; }
#view-compact::before { content: "↔"; }
.view-switch button:hover {
  transform: translateY(-1px);
  color: #0e5fc8;
  background: rgba(255,255,255,.72);
}
.view-switch button.active,
.view-switch button[aria-pressed="true"] {
  color: #fff;
  background: linear-gradient(135deg, #247bea, #1262cd);
  box-shadow: 0 7px 16px rgba(17, 94, 202, .25);
}
.result-summary {
  padding: 9px 13px;
  border: 1px solid rgba(22, 99, 203, .1);
  border-radius: 12px;
  background: rgba(247,251,255,.88);
  color: #496886;
  line-height: 1.35;
}
@media (max-width: 1020px) {
  .brand-wrap {
    grid-template-columns: 170px minmax(0,1fr);
    gap: 22px;
  }
  .header-actions {
    grid-column: 1 / -1;
    max-width: none;
  }
}
@media (max-width: 720px) {
  .brand-header {
    padding: 16px 14px 22px;
  }
  .brand-wrap {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .brand-mark {
    padding: 9px 11px;
    border-radius: 13px;
  }
  .header-copy h1 {
    font-size: clamp(29px, 9.2vw, 42px);
    line-height: 1.02;
  }
  .header-copy p {
    font-size: 14px;
    line-height: 1.5;
  }
  .trust-row {
    display: flex;
    flex-wrap: nowrap;
    width: calc(100vw - 28px);
    padding-bottom: 4px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .trust-row::-webkit-scrollbar,
  .header-actions::-webkit-scrollbar {
    display: none;
  }
  .trust-row span {
    flex: 0 0 auto;
  }
  .header-actions {
    display: flex;
    flex-wrap: nowrap;
    width: calc(100vw - 28px);
    max-width: none;
    padding: 7px;
    overflow-x: auto;
    border-radius: 15px;
    scroll-snap-type: x proximity;
  }
  .header-actions button {
    flex: 0 0 auto;
    min-height: 38px;
    scroll-snap-align: start;
  }
  .catalog-tools {
    align-items: stretch;
    justify-content: stretch;
    gap: 10px;
  }
  .view-switch {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    width: 100%;
  }
  .view-switch button {
    min-width: 0;
    padding: 9px 7px;
    font-size: 13px;
  }
  .result-summary {
    width: 100%;
    text-align: center;
    font-size: 13px;
  }
}

/* v46 — apartment board and results table */
#board-panel {
  position: relative;
  border: 1px solid rgba(20, 96, 199, .12);
  border-radius: 24px;
  background: linear-gradient(145deg, #fff, #f7fbff);
  box-shadow: 0 18px 46px rgba(20, 66, 121, .09);
  overflow: hidden;
}
#board-panel > .section-title {
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(18, 95, 198, .1);
}
#board-panel .legend,
#board-panel .board-legend {
  gap: 8px;
}
.board-local-filter {
  margin: 16px 0 12px;
  padding: 12px 14px;
  border: 1px solid rgba(20, 98, 205, .11);
  border-radius: 15px;
  background: #f3f8fe;
}
.board-scroll-hint {
  margin: 10px 0 14px;
  padding: 9px 13px;
  border: 1px dashed rgba(24, 107, 220, .22);
  border-radius: 12px;
  background: rgba(232,243,255,.72);
  color: #426584;
  font-size: 13px;
  text-align: center;
}
#board {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 4px 2px 14px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-color: #aac9ef #edf5fd;
  scrollbar-width: thin;
}
#board::-webkit-scrollbar {
  height: 10px;
}
#board::-webkit-scrollbar-track {
  border-radius: 999px;
  background: #edf5fd;
}
#board::-webkit-scrollbar-thumb {
  border: 2px solid #edf5fd;
  border-radius: 999px;
  background: #9fc2ec;
}
.section-board {
  flex: 0 0 auto;
  min-width: max-content;
  padding: 14px;
  border: 1px solid rgba(21, 99, 205, .12);
  border-radius: 18px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 9px 26px rgba(18, 67, 124, .08);
  scroll-snap-align: start;
}
.section-board > h3 {
  position: sticky;
  left: 0;
  width: fit-content;
  margin: 0 0 12px;
  padding: 7px 11px;
  border-radius: 10px;
  background: linear-gradient(135deg, #1f75e4, #0d5fc8);
  color: #fff;
  font-size: 15px;
  letter-spacing: .01em;
  box-shadow: 0 6px 15px rgba(17, 91, 194, .2);
}
.floor-header {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 8px;
  margin-bottom: 7px;
  padding: 0 4px;
  color: #69809a;
  font-size: 11px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.floor-list {
  display: grid;
  gap: 5px;
}
.floor-row {
  display: grid;
  grid-template-columns: 46px 1fr;
  align-items: stretch;
  gap: 8px;
  min-height: 54px;
  padding: 5px;
  border-radius: 12px;
  transition: background .16s ease;
}
.floor-row:nth-child(even) {
  background: #f7faff;
}
.floor-row:hover {
  background: #edf5ff;
}
.floor-number {
  display: grid;
  place-items: center;
  min-height: 44px;
  border: 1px solid rgba(19, 99, 205, .13);
  border-radius: 10px;
  background: #fff;
  color: #1e5d9e;
  font-weight: 800;
  box-shadow: 0 3px 9px rgba(21, 74, 131, .06);
}
.apartment-container,
.apartments-container {
  display: flex;
  align-items: stretch;
  gap: 6px;
}
#board .apt,
#board .apartment-card {
  min-width: 104px;
  min-height: 44px;
  padding: 7px 9px;
  border: 1px solid rgba(25, 139, 92, .23);
  border-radius: 10px;
  background: linear-gradient(145deg, #f4fff9, #e5f8ee);
  color: #137349;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.28;
  box-shadow: 0 3px 10px rgba(20, 113, 76, .07);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
#board .apt:hover,
#board .apartment-card:hover {
  transform: translateY(-2px);
  border-color: rgba(18, 132, 83, .46);
  background: #dbf6e8;
  box-shadow: 0 8px 17px rgba(20, 113, 76, .14);
}
#board .apt:focus-visible,
#board .apartment-card:focus-visible {
  outline: 3px solid rgba(30, 116, 229, .22);
  outline-offset: 2px;
}
#apartments-panel {
  border: 1px solid rgba(20, 96, 199, .12);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(20, 66, 121, .09);
  overflow: hidden;
}
#apartments-panel > .section-title {
  padding-bottom: 16px;
}
#apartments-panel .table-wrap {
  max-height: min(72vh, 920px);
  margin-inline: -1px;
  overflow: auto;
  border: 1px solid rgba(20, 96, 199, .1);
  border-radius: 16px;
  scrollbar-color: #a8c7ec #edf5fd;
  scrollbar-width: thin;
}
#apartments-panel table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
#apartments-panel thead {
  position: sticky;
  top: 0;
  z-index: 4;
}
#apartments-panel th {
  padding: 13px 14px;
  border-bottom: 1px solid rgba(18, 91, 188, .13);
  background: rgba(238,246,255,.96);
  color: #456684;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}
#apartments-panel td {
  padding: 13px 14px;
  border-bottom: 1px solid rgba(24, 84, 151, .08);
  color: #183957;
  vertical-align: middle;
  transition: background .16s ease;
}
#apartments-panel tbody tr:nth-child(even) td {
  background: #fbfdff;
}
#apartments-panel tbody tr:hover td {
  background: #eef6ff;
}
#apartments-panel tbody tr:last-child td {
  border-bottom: 0;
}
#apartments-panel td > strong {
  display: block;
  margin-bottom: 3px;
  color: #082f5e;
  font-size: 14px;
}
#apartments-panel td small {
  display: block;
  margin-top: 3px;
  color: #75899d;
}
#apartments-panel .pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 5px 9px;
  border-radius: 999px;
  font-weight: 750;
}
#apartments-panel .pill.active::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #22ad6c;
  box-shadow: 0 0 0 4px rgba(34,173,108,.12);
}
#apartments-panel .source-ok {
  color: #168154;
  font-weight: 700;
}
#apartments-panel td:last-child {
  min-width: 195px;
}
#apartments-panel .link.more,
#apartments-panel .selection-toggle {
  min-height: 38px;
  margin: 2px 4px 2px 0;
  padding: 8px 11px;
  border-radius: 10px;
  font-weight: 750;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
#apartments-panel .link.more {
  border: 1px solid rgba(24, 103, 210, .2);
  background: #fff;
  color: #145eb7;
}
#apartments-panel .selection-toggle {
  border: 1px solid rgba(24, 103, 210, .15);
  background: #eaf3ff;
  color: #0e61cd;
}
#apartments-panel .link.more:hover,
#apartments-panel .selection-toggle:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 15px rgba(20, 88, 177, .12);
}
@media (max-width: 720px) {
  #board-panel,
  #apartments-panel {
    border-radius: 18px;
  }
  .board-local-filter {
    padding: 10px;
  }
  #board {
    margin-inline: -8px;
    padding-inline: 8px;
  }
  .section-board {
    padding: 10px;
    border-radius: 14px;
  }
  .floor-row {
    grid-template-columns: 40px 1fr;
  }
  .floor-header {
    grid-template-columns: 40px 1fr;
  }
  #board .apt,
  #board .apartment-card {
    min-width: 94px;
    font-size: 11px;
  }
  #apartments-panel .table-wrap {
    max-height: none;
    border-radius: 13px;
  }
  #apartments-panel table {
    min-width: 1040px;
  }
  #apartments-panel th,
  #apartments-panel td {
    padding: 11px 12px;
  }
}

/* v47 — board cell readability safeguard */
#board .section-board .floor-row .apartment-container > .apt.apartment-card,
#board .section-board .floor-row .apartments-container > .apt.apartment-card {
  width: auto !important;
  min-width: 104px !important;
  max-width: none !important;
}
@media (max-width: 720px) {
  #board .section-board .floor-row .apartment-container > .apt.apartment-card,
  #board .section-board .floor-row .apartments-container > .apt.apartment-card {
    min-width: 94px !important;
  }
}

/* v48 — clipping fixes for board cells and compact cards */
#board .section-board .floor-row .apartment-container > .apt.apartment-card,
#board .section-board .floor-row .apartments-container > .apt.apartment-card {
  height: auto !important;
  min-height: 60px !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  padding-block: 8px !important;
  line-height: 1.3 !important;
}
#catalog.catalog-compact .complex-card {
  height: auto !important;
  min-height: 510px !important;
  max-height: none !important;
  padding-bottom: 16px !important;
  overflow: hidden !important;
}
#catalog.catalog-compact .complex-card .card-actions {
  grid-template-columns: minmax(0,1fr) minmax(0,1.15fr) !important;
  grid-template-rows: 48px !important;
  min-height: 48px !important;
  height: 48px !important;
  max-height: none !important;
  gap: 8px !important;
  margin-top: auto !important;
  padding: 0 !important;
  align-items: stretch !important;
  overflow: visible !important;
}
#catalog.catalog-compact .complex-card .building-summary,
#catalog.catalog-compact .complex-card .mobile-buildings-toggle,
#catalog.catalog-compact .complex-card .card-actions-v30 {
  display: none !important;
}
#catalog.catalog-compact .complex-card .show-on-map,
#catalog.catalog-compact .complex-card .open-complex {
  grid-column: auto !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  overflow: visible !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}
@media (max-width: 720px) {
  #board .section-board .floor-row .apartment-container > .apt.apartment-card,
  #board .section-board .floor-row .apartments-container > .apt.apartment-card {
    min-height: 58px !important;
  }
  #catalog.catalog-compact .complex-card {
    min-height: 500px !important;
  }
  #catalog.catalog-compact .complex-card .card-actions {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* v49 — card bottom safety and system states */
#catalog.catalog-compact .complex-card {
  min-height: 540px !important;
  padding-bottom: 28px !important;
  margin-bottom: 14px !important;
  overflow: visible !important;
}
#catalog.catalog-compact .complex-card .card-actions {
  position: relative !important;
  top: -6px !important;
  margin-bottom: 12px !important;
}
#catalog.catalog-compact .complex-card .show-on-map,
#catalog.catalog-compact .complex-card .open-complex {
  box-sizing: border-box !important;
  overflow: visible !important;
}
#toast {
  z-index: 10000;
  right: 22px;
  bottom: 22px;
  left: auto;
  max-width: min(420px, calc(100vw - 28px));
  min-height: 52px;
  padding: 13px 16px 13px 14px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 15px;
  background: rgba(12, 42, 78, .96);
  color: #fff;
  font-weight: 700;
  line-height: 1.4;
  box-shadow: 0 18px 42px rgba(9, 38, 75, .28);
  backdrop-filter: blur(12px);
}
#toast[style*="display: block"] {
  display: flex !important;
  align-items: center;
  gap: 11px;
  animation: toastIn .24s ease-out both;
}
#toast[style*="display: block"]::before {
  content: "✓";
  display: grid;
  place-items: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #2ab576;
  color: #fff;
  font-size: 15px;
  font-weight: 900;
  box-shadow: 0 0 0 5px rgba(42,181,118,.13);
}
@keyframes toastIn {
  from { opacity: 0; transform: translateY(12px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
#catalog-empty:not([hidden]),
#empty:not([hidden]) {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 240px;
  margin: 16px 0;
  padding: 36px 24px;
  border: 1px dashed rgba(26, 105, 211, .25);
  border-radius: 20px;
  background: linear-gradient(145deg, #f9fcff, #edf5ff);
  color: #4d6c8b;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.5;
  text-align: center;
}
#catalog-empty:not([hidden])::before,
#empty:not([hidden])::before {
  content: "⌕";
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin-bottom: 14px;
  border: 1px solid rgba(25, 104, 213, .14);
  border-radius: 17px;
  background: #fff;
  color: #176bdc;
  font-size: 31px;
  box-shadow: 0 10px 26px rgba(17, 79, 158, .1);
}
.login-error:not(:empty) {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 10px 0 0;
  padding: 10px 12px;
  border: 1px solid rgba(205, 67, 67, .17);
  border-radius: 11px;
  background: #fff2f2;
  color: #b53e3e;
  font-weight: 650;
  line-height: 1.4;
}
.login-error:not(:empty)::before {
  content: "!";
  display: grid;
  place-items: center;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #d95353;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}
#catalog[aria-busy="true"] .complex-grid,
#catalog[aria-busy="true"] .developer-group {
  opacity: .52;
  filter: saturate(.75);
  pointer-events: none;
  transition: opacity .2s ease, filter .2s ease;
}
button:disabled,
button[aria-disabled="true"] {
  cursor: not-allowed;
  filter: grayscale(.12);
  opacity: .58;
  box-shadow: none !important;
  transform: none !important;
}
@media (max-width: 720px) {
  #catalog.catalog-compact .complex-card {
    min-height: 525px !important;
    padding-bottom: 24px !important;
    margin-bottom: 12px !important;
  }
  #toast {
    right: 12px;
    bottom: 12px;
    max-width: calc(100vw - 24px);
    border-radius: 13px;
  }
  #catalog-empty:not([hidden]),
  #empty:not([hidden]) {
    min-height: 190px;
    padding: 28px 18px;
    border-radius: 16px;
  }
}

/* v50 — typography and responsive spacing */
html {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body {
  color: #102f52;
  line-height: 1.5;
}
main {
  width: min(1840px, 100%);
  margin-inline: auto;
  padding: clamp(18px, 2.4vw, 34px) clamp(16px, 3vw, 48px) clamp(48px, 6vw, 84px);
}
.panel {
  margin-block: clamp(14px, 2vw, 26px);
  padding: clamp(20px, 2vw, 30px);
}
.section-title {
  align-items: flex-end;
  gap: clamp(14px, 2vw, 28px);
  margin-bottom: clamp(15px, 1.6vw, 23px);
}
.section-title h2 {
  margin: 4px 0 0;
  color: #082f5d;
  font-size: clamp(27px, 2.2vw, 36px);
  line-height: 1.08;
  letter-spacing: -.03em;
  text-wrap: balance;
}
.section-title small,
.eyebrow {
  color: #145da9;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
  letter-spacing: .18em;
}
.developer-group {
  position: relative;
  margin-top: clamp(28px, 4vw, 54px);
  padding-top: 5px;
}
.developer-group:first-child {
  margin-top: 20px;
}
.developer-group > h3 {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 16px;
  color: #0a315d;
  font-size: clamp(20px, 1.7vw, 27px);
  line-height: 1.18;
  letter-spacing: -.018em;
  text-wrap: balance;
}
.developer-group > h3::before {
  content: "";
  flex: 0 0 5px;
  width: 5px;
  height: 26px;
  border-radius: 999px;
  background: linear-gradient(180deg, #2b82ed, #1261ca);
  box-shadow: 0 5px 13px rgba(20, 100, 210, .22);
}
.complex-grid {
  gap: clamp(14px, 1.5vw, 22px);
}
.complex-card {
  line-height: 1.45;
}
.complex-card .developer {
  line-height: 1.35;
  letter-spacing: .075em;
}
.complex-card h3 {
  margin: 6px 0;
  color: #082f5d;
  font-size: clamp(20px, 1.4vw, 24px);
  line-height: 1.12;
  letter-spacing: -.02em;
  text-wrap: balance;
}
.complex-address {
  line-height: 1.42;
}
.metrics {
  gap: 0;
}
.metric {
  min-width: 0;
}
.metric small {
  margin-bottom: 4px;
  color: #6a829b;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.35;
}
.metric strong {
  color: #0b315e;
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.28;
  overflow-wrap: anywhere;
}
label {
  color: #415d77;
  font-weight: 750;
  line-height: 1.35;
}
input,
select,
textarea {
  font: inherit;
  line-height: 1.35;
}
input::placeholder,
textarea::placeholder {
  color: #91a1b2;
  opacity: 1;
}
button,
.button,
a.button {
  font-weight: 750;
  line-height: 1.25;
}
.section-title #found,
.section-title .found,
.result-summary {
  font-variant-numeric: tabular-nums;
}
@media (max-width: 900px) {
  main {
    padding-inline: 18px;
  }
  .panel {
    padding: 20px;
  }
  .section-title {
    align-items: flex-start;
  }
}
@media (max-width: 720px) {
  body {
    font-size: 14px;
    line-height: 1.48;
  }
  main {
    width: 100%;
    padding: 12px 8px 54px;
  }
  .panel {
    margin-block: 11px;
    padding: 16px 14px;
    border-radius: 17px;
  }
  .section-title {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 9px;
    margin-bottom: 15px;
    padding-bottom: 14px;
  }
  .section-title h2 {
    font-size: clamp(25px, 8vw, 31px);
    line-height: 1.07;
  }
  .section-title small,
  .eyebrow {
    font-size: 10px;
    letter-spacing: .15em;
  }
  .developer-group {
    margin-top: 32px;
  }
  .developer-group:first-child {
    margin-top: 16px;
  }
  .developer-group > h3 {
    gap: 9px;
    margin-bottom: 13px;
    padding-inline: 4px;
    font-size: 20px;
    line-height: 1.2;
  }
  .developer-group > h3::before {
    height: 22px;
  }
  .complex-grid {
    gap: 13px;
  }
  .complex-card h3 {
    font-size: 21px;
  }
  .metric strong {
    font-size: 14px;
  }
  label {
    font-size: 13px;
  }
  input,
  select,
  textarea,
  button {
    min-height: 44px;
  }
}
@media (max-width: 390px) {
  main {
    padding-inline: 5px;
  }
  .panel {
    padding-inline: 11px;
  }
  .section-title h2 {
    font-size: 24px;
  }
}

/* v51 — elegant map action */
.complex-card .show-on-map {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  padding: 10px 13px !important;
  border: 1px solid rgba(24, 107, 220, .24) !important;
  border-radius: 12px !important;
  background: linear-gradient(145deg, #ffffff, #f2f7ff) !important;
  color: #145db7 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  box-shadow: 0 7px 17px rgba(20, 88, 177, .08) !important;
}
.complex-card .show-on-map::before {
  content: "⌖" !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  font-size: 17px !important;
  line-height: 1 !important;
}
.complex-card .show-on-map:hover {
  transform: translateY(-2px) !important;
  border-color: rgba(24, 107, 220, .42) !important;
  background: #eaf3ff !important;
  color: #0e57b2 !important;
  box-shadow: 0 10px 22px rgba(20, 88, 177, .14) !important;
}
#catalog.catalog-compact .complex-card .show-on-map {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  padding: 8px 10px !important;
}
@media (max-width: 720px) {
  .complex-card .show-on-map {
    min-height: 46px !important;
    padding-inline: 10px !important;
    font-size: 13px !important;
  }
  .complex-card .show-on-map::before {
    font-size: 16px !important;
  }
}

/* v52: adaptive map button label */
.complex-card .show-on-map {
  flex-direction: column !important;
  gap: 5px !important;
  padding: 12px 8px !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
  text-align: center !important;
  overflow: hidden !important;
}
.complex-card .show-on-map::before {
  margin: 0 !important;
  font-size: 19px !important;
  line-height: 1 !important;
  flex: 0 0 auto !important;
}
#catalog.catalog-compact .complex-card .show-on-map {
  flex-direction: row !important;
  gap: 6px !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  padding: 8px 10px !important;
  white-space: nowrap !important;
}
#catalog.catalog-compact .complex-card .show-on-map::before {
  font-size: 16px !important;
}

/* v53: quiet scroll affordance for building lists */
.complex-card .building-summary {
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
  padding-right: 10px !important;
  box-shadow: inset 0 -14px 14px -18px rgba(12, 55, 105, .34);
  transition: scrollbar-color .18s ease, box-shadow .18s ease;
}
.complex-card .building-summary:hover,
.complex-card .building-summary:focus-within {
  scrollbar-color: rgba(80, 133, 203, .55) transparent;
  box-shadow: inset 0 -16px 16px -18px rgba(12, 55, 105, .48);
}
.complex-card .building-summary::-webkit-scrollbar {
  width: 5px;
}
.complex-card .building-summary::-webkit-scrollbar-track {
  background: transparent;
}
.complex-card .building-summary::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
}
.complex-card .building-summary:hover::-webkit-scrollbar-thumb,
.complex-card .building-summary:focus-within::-webkit-scrollbar-thumb {
  background: rgba(80, 133, 203, .55);
}

/* v54: anchor full-card actions to the card bottom */
#catalog:not(.catalog-compact) .complex-card {
  display: flex !important;
  flex-direction: column !important;
}
#catalog:not(.catalog-compact) .complex-card .card-actions {
  margin-top: auto !important;
  flex: 0 0 auto !important;
}
#catalog:not(.catalog-compact) .complex-card .open-complex {
  flex: 0 0 auto !important;
}

/* v55: clearer developer section headings */
.developer-group > h3 {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 34px 0 16px !important;
  color: #0a315d !important;
  font-size: clamp(19px, 1.4vw, 23px) !important;
  line-height: 1.2 !important;
  letter-spacing: -.01em !important;
}
.developer-group:first-child > h3 {
  margin-top: 0 !important;
}
.developer-group > h3::before {
  content: "" !important;
  width: 4px !important;
  height: 22px !important;
  flex: 0 0 4px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, #2f86f6, #0d63d8) !important;
  box-shadow: 0 3px 9px rgba(25, 112, 221, .22) !important;
}
.developer-group > h3::after {
  content: "" !important;
  height: 1px !important;
  flex: 1 1 auto !important;
  min-width: 24px !important;
  background: linear-gradient(90deg, rgba(72, 132, 206, .34), rgba(72, 132, 206, 0)) !important;
}
@media (max-width: 720px) {
  .developer-group > h3 {
    gap: 8px !important;
    margin: 26px 0 12px !important;
    font-size: 18px !important;
  }
  .developer-group > h3::before {
    height: 19px !important;
  }
}

/* v56: aligned card titles and addresses */
.complex-card > h3 {
  min-height: 2.42em !important;
  margin-bottom: 7px !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  text-wrap: balance !important;
}
.complex-card > .complex-address {
  min-height: 2.7em !important;
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  line-height: 1.35 !important;
}
@media (max-width: 720px) {
  .complex-card > h3 {
    min-height: auto !important;
    -webkit-line-clamp: 3 !important;
  }
  .complex-card > .complex-address {
    min-height: auto !important;
    -webkit-line-clamp: 3 !important;
  }
}

/* v57: balanced metric tiles */
.complex-card .metrics {
  align-items: stretch !important;
}
.complex-card .metric {
  min-height: 76px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}
.complex-card .metric small {
  min-height: 1.25em !important;
  margin-bottom: 6px !important;
  line-height: 1.2 !important;
}
.complex-card .metric strong {
  font-size: clamp(13.5px, .92vw, 15px) !important;
  line-height: 1.28 !important;
  letter-spacing: -.012em !important;
  font-variant-numeric: tabular-nums !important;
  text-wrap: balance !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}
@media (max-width: 720px) {
  .complex-card .metric {
    min-height: 70px !important;
  }
  .complex-card .metric strong {
    font-size: 14px !important;
  }
}

/* v58: polished quick-filter chips */
.filters .sales-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
}
.filters .sales-tags button {
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 8px 13px !important;
  border: 1px solid #c9d9ed !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, #fff, #f6f9fd) !important;
  color: #315779 !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1.15 !important;
  box-shadow: 0 3px 9px rgba(24, 83, 148, .06) !important;
  transition: color .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease !important;
}
.filters .sales-tags button:hover {
  border-color: #70a9ee !important;
  color: #0e61c7 !important;
  box-shadow: 0 6px 14px rgba(24, 105, 205, .13) !important;
  transform: translateY(-1px) !important;
}
.filters .sales-tags button.active {
  border-color: #1768d9 !important;
  background: linear-gradient(135deg, #1768d9, #2b82ef) !important;
  color: #fff !important;
  box-shadow: 0 7px 16px rgba(23, 104, 217, .22) !important;
}
.filters .sales-tags button:focus-visible {
  outline: 3px solid rgba(47, 134, 246, .28) !important;
  outline-offset: 2px !important;
}
@media (max-width: 720px) {
  .filters .sales-tags {
    gap: 7px !important;
  }
  .filters .sales-tags button {
    min-height: 44px !important;
    padding: 9px 12px !important;
    font-size: 12.5px !important;
    flex: 1 1 calc(50% - 7px) !important;
  }
}

/* v59: consistent primary filter controls */
.filters label {
  color: #334f6f !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
  gap: 7px !important;
}
.filters input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.filters select {
  width: 100% !important;
  min-height: 48px !important;
  height: 48px !important;
  padding: 0 14px !important;
  border: 1px solid #c9d9eb !important;
  border-radius: 12px !important;
  background-color: #fff !important;
  color: #153858 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  box-shadow: 0 2px 7px rgba(20, 70, 125, .035) !important;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
}
.filters input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):hover,
.filters select:hover {
  border-color: #8db8e8 !important;
}
.filters input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus,
.filters select:focus {
  outline: none !important;
  border-color: #2d7ee5 !important;
  box-shadow: 0 0 0 3px rgba(45, 126, 229, .15), 0 5px 13px rgba(23, 94, 179, .08) !important;
}
.filters input::placeholder {
  color: #91a2b5 !important;
  opacity: 1 !important;
}
.filters input:disabled,
.filters select:disabled {
  background-color: #f3f6fa !important;
  border-color: #dce6f0 !important;
  color: #8a9caf !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
}
@media (max-width: 720px) {
  .filters label {
    font-size: 12.5px !important;
    gap: 6px !important;
  }
  .filters input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  .filters select {
    min-height: 50px !important;
    height: 50px !important;
    font-size: 14px !important;
  }
}

/* v60: compact reset action and responsive filter heading */
.section-title:has(> #reset) {
  align-items: flex-start !important;
  gap: 24px !important;
}
#reset.button-secondary {
  min-height: 42px !important;
  height: 42px !important;
  align-self: flex-start !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 0 16px !important;
  border: 1px solid #cbdced !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, .78) !important;
  color: #355877 !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  box-shadow: 0 3px 10px rgba(26, 76, 132, .055) !important;
  white-space: nowrap !important;
  transition: color .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease !important;
}
#reset.button-secondary::before {
  content: "↺" !important;
  font-size: 17px !important;
  line-height: 1 !important;
}
#reset.button-secondary:hover {
  color: #0d63cf !important;
  border-color: #79ace7 !important;
  background: #fff !important;
  box-shadow: 0 6px 15px rgba(24, 102, 196, .12) !important;
  transform: translateY(-1px) !important;
}
#reset.button-secondary:active {
  transform: translateY(0) scale(.985) !important;
}
#reset.button-secondary:focus-visible {
  outline: 3px solid rgba(47, 134, 246, .25) !important;
  outline-offset: 2px !important;
}
@media (max-width: 720px) {
  .section-title:has(> #reset) {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 14px !important;
  }
  #reset.button-secondary {
    width: 100% !important;
    min-height: 46px !important;
    height: 46px !important;
    align-self: stretch !important;
  }
}

/* v61: responsive catalog result counters */
#catalog-found.result-summary {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 6px !important;
  max-width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
#catalog-found .result-prefix {
  color: #69819b !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  margin-right: 2px !important;
}
#catalog-found .result-chip {
  min-height: 34px !important;
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 4px !important;
  padding: 7px 10px !important;
  border: 1px solid #d3e0ef !important;
  border-radius: 10px !important;
  background: linear-gradient(180deg, #fff, #f5f9fd) !important;
  color: #506b87 !important;
  font-size: 11.5px !important;
  font-weight: 650 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  box-shadow: 0 2px 7px rgba(28, 78, 132, .045) !important;
}
#catalog-found .result-chip b {
  color: #0c4f9f !important;
  font-size: 14px !important;
  font-weight: 850 !important;
  font-variant-numeric: tabular-nums !important;
}
@media (max-width: 720px) {
  #catalog-found.result-summary {
    justify-content: flex-start !important;
    gap: 6px !important;
  }
  #catalog-found .result-prefix {
    width: 100% !important;
    margin: 0 0 2px !important;
  }
  #catalog-found .result-chip {
    flex: 1 1 calc(50% - 6px) !important;
    justify-content: center !important;
    min-height: 38px !important;
  }
}

/* Keep the catalog totals beside the view controls on desktop. */
@media (min-width: 721px) {
  .section-title {
    align-items: flex-end;
  }

  .catalog-tools {
    align-items: center;
    flex-wrap: nowrap;
    gap: 14px;
    justify-content: flex-end;
  }

  #catalog-found.result-summary {
    flex-wrap: nowrap !important;
    justify-content: flex-end !important;
    white-space: nowrap !important;
    width: auto !important;
  }

  #catalog-found .result-prefix,
  #catalog-found .result-chip {
    flex: 0 0 auto !important;
    width: auto !important;


}
}
/* 2026-10-08: responsive admin password dialog and uncropped apartment plans */
#admin-passwords-dialog {
  width: min(900px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}
#admin-passwords-dialog > div,
#admin-passwords-list,
#admin-passwords-list > section {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}
#admin-passwords-dialog > div {
  overflow-x: hidden !important;
}
#detail .plan-image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
}
@media (max-width: 720px) {
  #admin-passwords-dialog {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    padding: 14px 10px !important;
  }
  #admin-passwords-dialog > div > div:first-child {
    align-items: flex-start !important;
  }
  #admin-passwords-list > section {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  #admin-passwords-list > section > div,
  #admin-passwords-list input,
  #admin-passwords-list button {
    max-width: 100% !important;
    min-width: 0 !important;
  }
  #admin-passwords-list > section > div:last-child {
    display: flex !important;
    flex-wrap: wrap !important;
  }
}

/* 2026-10-08: responsive registration requests dialog */
#admin-registration-dialog{width:min(900px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important;padding:16px!important;box-sizing:border-box!important;overflow-x:hidden!important}
#admin-registration-dialog>div,#admin-registration-list,#admin-registration-list>section{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
#admin-registration-dialog>div{overflow-x:hidden!important}
#admin-registration-list>section{grid-template-columns:minmax(0,1fr) auto!important}
@media(max-width:720px){#admin-registration-dialog{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;padding:14px 10px!important}#admin-registration-dialog>div>div:first-child{align-items:flex-start!important}#admin-registration-list>section{grid-template-columns:minmax(0,1fr)!important}#admin-registration-list>section>div,#admin-registration-list button{max-width:100%!important;min-width:0!important}#admin-registration-list>section>div:last-child{display:flex!important;flex-wrap:wrap!important}}

/* 2026-10-08: four-column compact catalog */
@media (min-width:1000px){#catalog.catalog-compact .complex-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}}
@media (min-width:701px) and (max-width:999px){#catalog.catalog-compact .complex-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}


/* 2026-10-08: unified four-column flow in compact catalog */
@media (min-width:1000px){
  #catalog.catalog-compact{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;align-items:start!important}
  #catalog.catalog-compact>.developer-group{display:contents!important}
  #catalog.catalog-compact>.developer-group>h3{display:none!important}
  #catalog.catalog-compact>.developer-group>.complex-grid{display:contents!important}
}
@media (min-width:701px) and (max-width:999px){
  #catalog.catalog-compact{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;align-items:start!important}
  #catalog.catalog-compact>.developer-group{display:contents!important}
  #catalog.catalog-compact>.developer-group>h3{display:none!important}
  #catalog.catalog-compact>.developer-group>.complex-grid{display:contents!important}
}

/* 2026-10-09: stable equal rows in compact catalog */
@media (min-width:701px){
  #catalog.catalog-compact{align-items:stretch!important}
  #catalog.catalog-compact .complex-card{height:560px!important;min-height:560px!important;max-height:560px!important;box-sizing:border-box!important;align-self:stretch!important}
  #catalog.catalog-compact .complex-card .card-actions{margin-top:auto!important;top:0!important;margin-bottom:0!important}
}
