:root {
  color-scheme: light;
  font-family: "Aptos", "Inter", "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  --ink: #142026;
  --muted: #64716f;
  --paper: #f6f6f2;
  --line: #dedfd8;
  --lime: #d8ee76;
  --orange: #f4a468;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-size: 18px; margin: 0; min-width: 320px; background: var(--paper); color: var(--ink); }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; }
[hidden] { display: none !important; }

.site-shell { min-height: 100vh; display: flex; flex-direction: column; }
.site-header { background: var(--ink); color: #fff; }
.header-inner { max-width: 1500px; min-height: 74px; margin: 0 auto; padding: 0 5.3%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; }
.brand-mark { width: 31px; height: 31px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; transform: skewY(-10deg); }
.brand-mark span { background: var(--lime); border-radius: 2px 2px 0 0; }
.brand-mark span:nth-child(1) { margin-top: 12px; }
.brand-mark span:nth-child(2) { margin-top: 6px; }
.brand-wordmark { font-size: 25px; font-weight: 760; letter-spacing: -.075em; }
.brand-wordmark > span:first-child { font-weight: 360; }
.brand-dot { color: var(--lime); }
.header-actions { display: flex; align-items: center; gap: 30px; }
.header-caption { color: #acb7b4; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.dashboard-link { display: inline-flex; align-items: center; gap: 14px; border: 1px solid #5c6b6b; padding: 9px 13px; border-radius: 4px; font-size: 15px; font-weight: 700; text-decoration: none; transition: background .18s ease, border-color .18s ease; }
.dashboard-link:hover, .dashboard-link:focus-visible { background: #26373b; border-color: var(--lime); }
.dashboard-link span { color: var(--lime); font-size: 19px; line-height: .8; }

.main-content { width: min(100%, 1500px); margin: 0 auto; padding: 0 5.3% 80px; flex: 1; }
.overview-hero { display: flex; justify-content: space-between; gap: 44px; min-height: 390px; padding: 68px 0 64px; border-bottom: 1px solid var(--line); }
.hero-copy { max-width: 790px; }
.eyebrow, .section-kicker { margin: 0; color: #687672; font-size: 13px; font-weight: 800; letter-spacing: .16em; line-height: 1.3; text-transform: uppercase; }
.eyebrow { display: flex; align-items: center; gap: 12px; }
.eyebrow-line { width: 28px; height: 2px; background: #9bbb5a; }
.overview-hero h1 { margin: 26px 0 22px; font-size: clamp(50px, calc(5vw + 2px), 81px); font-weight: 620; letter-spacing: -.075em; line-height: 1.05; }
.overview-hero h1 em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.055em; }
.hero-copy > p { max-width: 550px; margin: 0; color: #66716e; font-size: 18px; line-height: 1.65; }
.hero-stat { align-self: flex-end; width: 230px; padding: 22px 25px 19px; background: var(--lime); border-radius: 2px; flex: 0 0 auto; }
.hero-stat-label { display: block; font-size: 12px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.hero-stat strong { display: block; margin: 8px 0 11px; font-size: 70px; letter-spacing: -.09em; line-height: 1; font-weight: 650; }
.hero-stat strong small { font-size: 33px; font-weight: 450; }
.stat-slash { padding: 0 8px; color: #6b8142; font-size: 32px; font-weight: 300; vertical-align: 11px; }
.hero-stat-foot { display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.stat-separator { width: 3px; height: 3px; border-radius: 50%; background: currentColor; }

.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin: 51px 0 23px; }
.section-heading h2, .results-heading h2 { margin: 7px 0 0; font-size: 31px; font-weight: 650; letter-spacing: -.05em; line-height: 1.2; }
.section-count { padding-bottom: 3px; color: var(--muted); font-size: 14px; font-weight: 650; }
.property-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.property-card { display: flex; flex-direction: column; overflow: hidden; min-height: 414px; width: 100%; padding: 0; border: 1px solid #daddd5; border-radius: 5px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.property-card:hover { transform: translateY(-5px); border-color: #afc56d; box-shadow: 0 16px 34px #25353113; }
.property-card:focus-visible, .primary-button:focus-visible, .back-button:focus-visible, .gallery-arrow:focus-visible, .gallery-close:focus-visible, .photo-trigger:focus-visible, .gallery-thumb:focus-visible { outline: 3px solid #94b34e; outline-offset: 3px; }
.property-card[data-tone="sliska"] { --card-bg: #e9e9db; --building: #54706d; --accent: #d8ee76; }
.property-card[data-tone="bat303"] { --card-bg: #e2eae8; --building: #6f8d83; --accent: #f4a468; }
.property-card[data-tone="bat1006"] { --card-bg: #eee8df; --building: #a58165; --accent: #cde29d; }
.property-card[data-tone="bruna"] { --card-bg: #e7e1e9; --building: #776979; --accent: #d8ee76; }
.property-card[data-tone="znan"] { --card-bg: #dde7d4; --building: #4a6a56; --accent: #f4a468; }
.card-art { position: relative; display: flex; align-items: center; justify-content: center; height: 169px; overflow: hidden; background: var(--card-bg); }
.card-art::before { position: absolute; top: 23px; left: 29px; width: 116px; height: 116px; border: 1px solid #ffffffa3; border-radius: 50%; content: ""; }
.card-art::after { position: absolute; bottom: -64px; right: -43px; width: 175px; height: 175px; border: 1px solid #ffffffa3; border-radius: 50%; content: ""; }
.art-building { position: relative; z-index: 1; width: 90px; height: 119px; margin-top: 47px; border: 5px solid var(--building); border-bottom: 0; background: var(--building); box-shadow: 11px -8px 0 #ffffff5c, 11px -8px 0 5px var(--building); transform: rotate(-7deg); }
.art-building::before { position: absolute; inset: 10px 10px 10px; background: repeating-linear-gradient(to right, transparent 0 15px, var(--building) 15px 22px), repeating-linear-gradient(to bottom, var(--accent) 0 14px, var(--building) 14px 23px); content: ""; }
.art-building::after { position: absolute; right: -29px; bottom: 0; width: 20px; height: 77px; background: var(--building); content: ""; }
.card-art-index { position: absolute; z-index: 2; top: 16px; left: 18px; color: #48605a; font-size: 13px; font-weight: 800; letter-spacing: .1em; }
.card-art-status { position: absolute; z-index: 2; top: 15px; right: 16px; border: 1px solid #9fb1a3; border-radius: 50px; padding: 5px 8px; color: #43564c; background: #f5f8eea8; font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.card-art-status.active { border-color: #344f3c; background: var(--lime); color: var(--ink); }
.card-body { display: flex; flex: 1; flex-direction: column; padding: 24px 22px 17px; }
.card-body h3 { margin: 0 0 4px; font-size: 29px; font-weight: 650; letter-spacing: -.06em; }
.card-address { margin: 0 0 15px; color: var(--muted); font-size: 15px; line-height: 1.45; }
.card-specs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
.card-specs span { border: 1px solid #e4e7e0; border-radius: 3px; padding: 6px 8px; background: #fafbf8; color: #43524c; font-size: 13px; font-weight: 650; }
.card-room-targets { margin: 12px 0 0; color: #516b52; font-size: 13px; font-weight: 750; line-height: 1.5; }
.card-bottom { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 19px; padding-top: 15px; border-top: 1px solid #e9ebe5; font-size: 14px; font-weight: 780; }
.card-bottom span:last-child { font-size: 22px; font-weight: 400; line-height: .7; }
.property-card[data-tone="znan"] .card-bottom { color: #3d6941; }
.overview-note { display: flex; align-items: center; gap: 18px; margin-top: 22px; padding: 21px 25px; border: 1px solid #d8dfd1; border-radius: 4px; background: #ebf1e4; }
.note-icon { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: var(--ink); color: var(--lime); font-size: 28px; flex: 0 0 auto; }
.overview-note strong { display: block; margin-bottom: 3px; font-size: 15px; }
.overview-note p { margin: 0; color: #58695c; font-size: 14px; line-height: 1.5; }
.note-index { margin-left: auto; color: #78916c; font-size: 13px; font-weight: 750; white-space: nowrap; }

.back-button { display: inline-flex; align-items: center; gap: 9px; margin: 35px 0 33px; padding: 0; border: 0; background: none; color: #4d6255; font-size: 14px; font-weight: 780; cursor: pointer; }
.back-button:hover { color: #142026; }
.back-button span { font-size: 21px; line-height: 1; }
.detail-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.detail-heading h1 { margin: 9px 0 4px; font-size: clamp(48px, calc(5vw + 2px), 74px); font-weight: 650; letter-spacing: -.075em; line-height: 1.05; }
.detail-subtitle { margin: 0; color: var(--muted); font-size: 17px; }
.detail-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.last-run { min-height: 15px; color: var(--muted); font-size: 13px; text-align: right; }
.primary-button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-width: 196px; min-height: 47px; padding: 12px 18px; border: 1px solid var(--ink); border-radius: 4px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 760; cursor: pointer; transition: background .18s ease, transform .18s ease; }
.primary-button:hover:not(:disabled) { background: #345149; transform: translateY(-2px); }
.primary-button:disabled { border-color: #aab3aa; background: #aab3aa; cursor: not-allowed; }
.search-button-icon { color: var(--lime); font-size: 19px; font-weight: 400; line-height: .8; }
.detail-layout { display: grid; grid-template-columns: minmax(265px, 315px) minmax(0, 1fr); align-items: start; gap: 34px; padding-top: 34px; }
.reference-column { display: grid; gap: 16px; }
.reference-card, .criteria-card { overflow: hidden; border: 1px solid #dfe1db; border-radius: 4px; background: #fff; }
.reference-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px; }
.reference-label { color: #65716a; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.reference-status { display: inline-flex; align-items: center; gap: 6px; color: #49694f; font-size: 12px; font-weight: 780; }
.reference-status::before { display: block; width: 6px; height: 6px; border-radius: 50%; background: #88b456; content: ""; }
.reference-art { position: relative; height: 132px; overflow: hidden; background: #dce8d6; }
.reference-building { position: absolute; bottom: -22px; left: 50%; width: 85px; height: 121px; border: 7px solid #58715e; background: repeating-linear-gradient(to right, #d8ee76 0 13px, #58715e 13px 22px); box-shadow: 16px -13px 0 #90ab8e; transform: translateX(-50%) rotate(-8deg); }
.reference-building::after { position: absolute; inset: 13px -7px; background: repeating-linear-gradient(to bottom, transparent 0 15px, #58715e 15px 24px); content: ""; }
.art-orbit { position: absolute; border: 1px solid #ffffff95; border-radius: 50%; }
.art-orbit-one { top: -36px; left: 5px; width: 140px; height: 140px; }
.art-orbit-two { right: -40px; bottom: -99px; width: 180px; height: 180px; }
.reference-card-content { padding: 23px 18px 19px; }
.reference-card-content h2 { margin: 0; font-size: 28px; font-weight: 650; letter-spacing: -.055em; }
.reference-card-content > p { margin: 3px 0 19px; color: var(--muted); font-size: 15px; }
.reference-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.reference-spec { padding: 11px; border: 1px solid #e7eae3; border-radius: 3px; background: #fafbf8; }
.reference-spec small { display: block; margin-bottom: 4px; color: #7c8982; font-size: 12px; font-weight: 700; text-transform: uppercase; }
.reference-spec strong { display: block; font-size: 15px; font-weight: 700; }
.reference-extra { margin-top: 17px; padding-top: 15px; border-top: 1px solid #e9ebe5; color: #506157; font-size: 14px; line-height: 1.55; }
.criteria-card { padding: 19px 18px 6px; }
.criteria-heading { display: flex; align-items: center; gap: 9px; }
.criteria-symbol { width: 26px; height: 26px; border-radius: 50%; background: var(--lime); text-align: center; font-size: 25px; line-height: 22px; }
.criteria-heading h2 { margin: 0; font-size: 16px; letter-spacing: -.02em; }
.criteria-card > p { margin: 12px 0 13px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.criteria-list { margin: 0; }
.criteria-row { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-top: 1px solid #edf0e9; font-size: 13px; line-height: 1.3; }
.criteria-row dt { color: #7a8780; }
.criteria-row dd { margin: 0; max-width: 57%; font-weight: 750; text-align: right; }

.results-heading { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 15px; min-height: 48px; margin-bottom: 21px; }
.results-heading h2 { display: flex; align-items: baseline; gap: 10px; }
.offer-count { padding: 3px 8px; border-radius: 3px; background: #dfe9d1; color: #466547; font-size: 15px; font-weight: 800; letter-spacing: 0; vertical-align: middle; }
.sort-caption { padding-bottom: 4px; color: #67756c; font-size: 13px; font-weight: 750; white-space: normal; }
.sort-caption span { margin-right: 3px; color: #427647; font-size: 18px; }
.search-feedback:empty { display: none; }
.feedback { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 17px; padding: 14px 16px; border: 1px solid #d6dfd1; border-radius: 4px; background: #ecf3e9; color: #3c5b43; font-size: 14px; line-height: 1.5; }
.feedback.error { border-color: #ecd0c6; background: #fff0e9; color: #8c4333; }
.feedback.loading { border-color: #d8e0ce; background: #f0f4e9; }
.feedback.expanded { border-color: #ead0ae; background: #fff5e8; color: #76512e; }
.feedback-symbol { font-size: 19px; line-height: 1; }
.spinner { display: inline-block; width: 15px; height: 15px; border: 2px solid #b5caaf; border-top-color: #3d6e4b; border-radius: 50%; animation: spin 1s linear infinite; flex: 0 0 auto; }
@keyframes spin { to { transform: rotate(360deg); } }
.offers-list { display: grid; gap: 15px; }
.empty-state { padding: 65px 26px; border: 1px dashed #cad3c7; border-radius: 4px; background: #fdfefb; text-align: center; }
.empty-symbol { display: flex; align-items: center; justify-content: center; width: 54px; height: 54px; margin: 0 auto 17px; border-radius: 50%; background: #e9f0df; color: #59764e; font-size: 31px; }
.empty-state h3 { margin: 0 0 8px; font-size: 21px; letter-spacing: -.03em; }
.empty-state p { max-width: 390px; margin: 0 auto; color: var(--muted); font-size: 15px; line-height: 1.6; }

.offer-card { overflow: hidden; border: 1px solid #dfe2da; border-radius: 4px; background: #fff; }
.offer-content { display: block; }
.offer-media { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin-top: 14px; }
.offer-photo-placeholder { display: flex; align-items: center; justify-content: center; width: 120px; aspect-ratio: 4 / 3; background: radial-gradient(circle at 70% 25%, #eff2e9 0 15%, transparent 16%), linear-gradient(135deg, #dce6da, #e9ede6); color: #718476; font-size: 42px; line-height: 1; }
.photo-count { align-self: flex-start; flex-shrink: 0; max-width: 100%; padding: 4px 3px; border-radius: 3px; background: #142026d9; color: #fff; font-size: 12px; font-weight: 800; text-align: center; overflow-wrap: anywhere; }
.offer-thumbnails { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.offer-thumbnails button { position: relative; display: block; width: 120px; height: 90px; flex: 0 0 120px; overflow: hidden; border: 0; border-radius: 6px; padding: 0; background: #dce4d9; cursor: pointer; }
.offer-thumbnails img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.offer-thumbnails button:hover::after { position: absolute; inset: 0; border: 3px solid var(--lime); content: ""; }
.offer-info { display: flex; flex-direction: column; padding: 21px 22px 19px; min-width: 0; overflow-wrap: anywhere; }
.offer-info > * { min-width: 0; }
.offer-topline { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.offer-source { color: #708079; font-size: 12px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.match-pill { display: inline-flex; align-items: center; gap: 5px; border-radius: 50px; padding: 5px 8px; background: #e8f0df; color: #3b6242; font-size: 12px; font-weight: 800; white-space: nowrap; }
.match-pill strong { font-size: 13px; }
.offer-info h3 { margin: 0 0 7px; font-size: 22px; font-weight: 680; letter-spacing: -.04em; line-height: 1.25; overflow-wrap: anywhere; }
.offer-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 18px; flex-wrap: wrap; }
.offer-title { min-width: 0; flex: 1 1 250px; margin-bottom: 12px; }
.offer-source-link { color: var(--lime); font-size: 14px; font-weight: 750; text-decoration: none; }
.offer-source-link:hover { text-decoration: underline; }
.offer-source-link:focus-visible { outline: 2px solid var(--lime); outline-offset: 3px; }
.offer-location { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.4; }
.offer-details { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px 11px; margin: 17px 0; }
.offer-price { color: #315f3e; font-size: 25px; font-weight: 740; letter-spacing: -.05em; white-space: nowrap; }
.offer-price small { font-size: 13px; font-weight: 650; letter-spacing: 0; }
.offer-detail-divider { width: 1px; height: 17px; background: #c9d2c8; }
.offer-attribute { color: #516157; font-size: 16px; font-weight: 650; }
.offer-fee-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: -6px 0 16px; }
.offer-fee-tag { border: 1px solid #d7dfd5; border-radius: 999px; padding: 4px 8px; background: #f2f6ef; color: #385d40; font-size: 15px; font-weight: 750; }
.match-label { display: inline-flex; align-items: center; gap: 7px; margin: auto 0 7px; color: #41684b; font-size: 16px; font-weight: 780; }
.match-label::before { width: 5px; height: 5px; border-radius: 50%; background: #8eae5a; content: ""; }
.expanded-notice { margin: 12px 0; padding: 10px 12px; border: 1px solid #ebd2b4; border-radius: 3px; background: #fff5e8; color: #75502d; font-size: 16px; line-height: 1.45; }
.expanded-notice strong { display: block; font-size: 17px; font-weight: 800; }
.expanded-notice ul { margin: 5px 0 0; padding-left: 16px; }
.expanded-notice li + li { margin-top: 2px; }
.match-reasons { margin: 0; padding-left: 16px; color: #63716a; font-size: 16px; line-height: 1.5; }
.match-reasons li + li { margin-top: 2px; }
.cost-breakdown { margin-top: 17px; padding: 12px 14px; border: 1px solid #e4e9de; border-radius: 3px; background: #f8faf5; overflow-wrap: anywhere; }
.cost-breakdown h4 { margin: 0 0 9px; color: #415749; font-size: 17px; font-weight: 800; }
.cost-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; color: #657268; font-size: 16px; line-height: 1.45; }
.cost-row + .cost-row { margin-top: 6px; }
.cost-row strong { color: #243c2e; font-weight: 750; text-align: right; }
.cost-items { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 10px 0 0; padding-left: 15px; color: #526557; font-size: 15px; line-height: 1.45; }
.cost-evidence { margin: 9px 0 0; color: #708075; font-size: 15px; line-height: 1.45; }
.offer-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 21px; padding: 13px 20px; border-top: 1px solid #edf0e9; }
.offer-footer a { color: #315f3e; font-size: 13px; font-weight: 780; text-decoration: none; }
.offer-footer a:hover { text-decoration: underline; }
.offer-footer time { margin-left: auto; color: #8a958f; font-size: 12px; }
.offer-description { padding: 0 20px 17px; color: #5d6d64; font-size: 16px; overflow-wrap: anywhere; }
.offer-description summary { cursor: pointer; font-size: 17px; font-weight: 750; }
.offer-description p { margin: 11px 0 0; line-height: 1.55; white-space: pre-line; overflow-wrap: anywhere; }

.site-footer { display: flex; justify-content: space-between; gap: 20px; min-height: 66px; padding: 22px max(5.3%, calc((100vw - 1341px) / 2)); border-top: 1px solid var(--line); color: #77847b; font-size: 13px; }
.site-footer span:first-child { color: #35483c; font-weight: 800; }

.photo-dialog { width: min(94vw, 1040px); max-height: 94vh; padding: 0; border: 0; border-radius: 6px; background: #142026; color: #fff; box-shadow: 0 28px 70px #0008; }
.photo-dialog::backdrop { background: #101a1bdc; backdrop-filter: blur(5px); }
.gallery-toolbar { display: flex; justify-content: space-between; align-items: center; min-height: 45px; padding: 4px 15px 4px 20px; color: #c5d2c8; font-size: 13px; font-weight: 700; }
.gallery-close { border: 0; background: none; color: #fff; font-size: 33px; line-height: 1; cursor: pointer; }
.gallery-stage { display: grid; grid-template-columns: 57px minmax(0, 1fr) 57px; align-items: center; height: min(65vh, 660px); background: #0d1518; }
.gallery-stage img { display: block; width: 100%; height: 100%; object-fit: contain; }
.gallery-viewport { height: 100%; min-width: 0; min-height: 0; overflow: hidden; touch-action: pan-y pinch-zoom; }
.gallery-track { display: flex; width: 100%; height: 100%; transform: translate3d(-100%, 0, 0); }
.gallery-track img { flex: 0 0 100%; min-width: 0; user-select: none; -webkit-user-drag: none; }
.gallery-track.is-settling { transition: transform 240ms ease; }
.gallery-arrow { height: 100%; border: 0; background: none; color: #fff; font-size: 26px; cursor: pointer; }
.gallery-arrow:hover:not(:disabled) { background: #ffffff14; }
.gallery-arrow:disabled { color: #5c6868; cursor: default; }
.gallery-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 20px; }
.gallery-bottom p { margin: 0; min-width: 0; overflow: hidden; font-size: 14px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.gallery-thumbnails { display: flex; gap: 5px; max-width: 60%; overflow-x: auto; }
.gallery-thumb { width: 43px; height: 38px; overflow: hidden; border: 2px solid transparent; border-radius: 2px; padding: 0; background: #4a5956; flex: 0 0 auto; cursor: pointer; }
.gallery-thumb.active { border-color: var(--lime); }
.gallery-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 1060px) {
  .property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-layout { gap: 20px; grid-template-columns: minmax(240px, 280px) minmax(0, 1fr); }
}

@media (max-width: 720px) {
  .header-inner { min-height: 64px; padding: 0 5%; }
  .header-caption { display: none; }
  .main-content { padding: 0 5% 48px; }
  .overview-hero { min-height: auto; padding: 50px 0 44px; }
  .hero-stat { display: none; }
  .overview-hero h1 { margin-top: 20px; font-size: clamp(45px, calc(8vw + 2px), 62px); }
  .section-heading { margin-top: 37px; }
  .detail-heading { align-items: flex-start; flex-direction: column; }
  .detail-actions { align-items: flex-start; }
  .last-run { text-align: left; }
  .detail-layout { grid-template-columns: 1fr; }
  .reference-column { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .reference-card { align-self: start; }
  .criteria-card { align-self: start; }
}

@media (max-width: 570px) {
  .brand-wordmark { font-size: 23px; }
  .dashboard-link { padding: 8px 9px; font-size: 13px; gap: 6px; }
  .overview-hero h1 { font-size: 46px; }
  .hero-copy > p { font-size: 16px; }
  .section-heading { align-items: flex-start; }
  .section-count { display: none; }
  .property-grid { grid-template-columns: 1fr; gap: 13px; }
  .property-card { min-height: 340px; }
  .card-art { height: 139px; }
  .card-body { padding: 19px 19px 15px; }
  .card-specs { margin-top: 9px; }
  .overview-note { align-items: flex-start; padding: 16px; }
  .note-index { display: none; }
  .back-button { margin: 24px 0 28px; }
  .detail-heading { padding-bottom: 25px; }
  .detail-heading h1 { font-size: 54px; }
  .detail-layout { padding-top: 24px; }
  .reference-column { grid-template-columns: 1fr; }
  .reference-art { height: 118px; }
  .results-heading { align-items: flex-start; flex-direction: column; }
  .sort-caption { padding-bottom: 0; }
  .offer-thumbnails button { width: 96px; height: 72px; flex-basis: 96px; }
  .offer-info { padding: 14px 10px; }
  .offer-footer time { margin-left: 0; }
  .site-footer { padding: 20px 5%; }
  .site-footer span:last-child { display: none; }
  .gallery-stage { grid-template-columns: 39px minmax(0, 1fr) 39px; height: min(65vh, 520px); }
  .gallery-bottom { align-items: flex-start; flex-direction: column; }
  .gallery-thumbnails { max-width: 100%; }
}

@media (max-width: 360px) {
  .offer-info { padding: 12px 8px; }
}

:root {
  color-scheme: dark;
  font-family: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --ink: #eef3ff;
  --muted: #aab7d4;
  --paper: #0b1020;
  --line: #2b3a5b;
  --lime: #74a7ff;
  --orange: #5ee0a0;
}

body {
  background: radial-gradient(circle at 18% 0%, #162446 0%, transparent 42%), radial-gradient(circle at 92% 6%, #1a2438 0%, transparent 38%), linear-gradient(165deg, #121a2d, #0b1020 55%, #080c17);
}

.site-header { background: #080c17e0; border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.brand-mark span { background: var(--lime); }
.brand-dot, .dashboard-link span { color: var(--lime); }
.header-caption { color: var(--muted); }
.dashboard-link { color: var(--muted); border-color: var(--line); border-radius: 9px; background: #121a2d; }
.dashboard-link:hover, .dashboard-link:focus-visible { color: var(--lime); background: #17223a; border-color: var(--lime); }
.eyebrow, .section-kicker { color: var(--muted); }
.eyebrow-line { background: var(--lime); }
.hero-copy > p { color: var(--muted); }
.hero-stat { color: var(--ink); background: #17223a; border: 1px solid #385582; border-radius: 14px; box-shadow: 0 14px 40px #0004; }
.hero-stat-label, .hero-stat-foot { color: var(--muted); }
.stat-slash { color: var(--lime); }

.property-card { color: var(--ink); background: #121a2d; border-color: var(--line); border-radius: 14px; box-shadow: 0 14px 40px #0002; }
.property-card:hover { border-color: var(--lime); box-shadow: 0 18px 42px #0006; }
.property-card:focus-visible, .primary-button:focus-visible, .back-button:focus-visible, .gallery-arrow:focus-visible, .gallery-close:focus-visible, .photo-trigger:focus-visible, .gallery-thumb:focus-visible { outline-color: var(--lime); }
.property-card[data-tone="sliska"] { --card-bg: #172844; --building: #7c9bce; --accent: #74a7ff; }
.property-card[data-tone="bat303"] { --card-bg: #172a3b; --building: #6ca9b3; --accent: #5ee0a0; }
.property-card[data-tone="bat1006"] { --card-bg: #222943; --building: #909bd0; --accent: #b99cff; }
.property-card[data-tone="bruna"] { --card-bg: #22253e; --building: #a191bd; --accent: #ffd166; }
.property-card[data-tone="znan"] { --card-bg: #172c40; --building: #7bb8d3; --accent: #74a7ff; }
.card-art::before, .card-art::after { border-color: #dce8ff33; }
.art-building { box-shadow: 11px -8px 0 #dce8ff25, 11px -8px 0 5px var(--building); }
.card-art-index { color: #e6efff; }
.card-art-status { color: #dce8ff; background: #0b1020b8; border-color: #6785b0; }
.card-art-status.active { color: #082018; background: #5ee0a0; border-color: #5ee0a0; }
.card-specs span { color: var(--muted); background: #17223a; border-color: var(--line); border-radius: 7px; }
.card-room-targets, .property-card[data-tone="znan"] .card-bottom { color: var(--lime); }
.card-bottom { border-color: var(--line); }
.overview-note { color: var(--ink); background: #121a2d; border-color: var(--line); border-radius: 12px; }
.note-icon { color: var(--lime); background: #17223a; }
.overview-note p, .note-index { color: var(--muted); }

.back-button { color: var(--muted); }
.back-button:hover { color: var(--lime); }
.primary-button { color: #081326; background: var(--lime); border-color: var(--lime); border-radius: 9px; }
.primary-button:hover:not(:disabled) { background: #9ec1ff; }
.primary-button:disabled { color: var(--muted); background: #17223a; border-color: var(--line); }
.search-button-icon { color: #081326; }
.reference-card, .criteria-card { color: var(--ink); background: #121a2d; border-color: var(--line); border-radius: 14px; }
.reference-label, .reference-card-content > p, .criteria-card > p, .criteria-row dt { color: var(--muted); }
.reference-status { color: #5ee0a0; }
.reference-status::before { background: #5ee0a0; }
.reference-art { background: linear-gradient(135deg, #1a3351, #17223a); }
.reference-building { border-color: #7c9bce; background: repeating-linear-gradient(to right, #74a7ff 0 13px, #7c9bce 13px 22px); box-shadow: 16px -13px 0 #3b567e; }
.art-orbit { border-color: #dce8ff33; }
.reference-spec { background: #17223a; border-color: var(--line); border-radius: 8px; }
.reference-spec small { color: var(--muted); }
.reference-extra, .criteria-row { border-color: var(--line); }
.reference-extra { color: var(--muted); }
.criteria-symbol { color: #081326; background: var(--lime); }
.offer-count { color: var(--lime); background: #17223a; border: 1px solid var(--line); }
.sort-caption { color: var(--muted); }
.sort-caption span { color: var(--lime); }
.offer-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin-bottom: 18px; padding: 13px 16px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); background: #121a2d; font-size: 14px; }
.offer-filters label { display: flex; align-items: center; gap: 7px; color: var(--ink); cursor: pointer; }
.offer-filters input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--lime); cursor: pointer; }
.offer-filters input:focus-visible { outline: 2px solid var(--lime); outline-offset: 3px; }
.offer-filters #visible-count { margin-left: auto; }
.cost-filter { flex-basis: 100%; min-width: 0; margin: 0; padding: 0 0 12px; border: 0; border-bottom: 1px solid var(--line); }
.cost-filter legend { margin-bottom: 10px; padding: 0; color: var(--ink); font-size: 14px; font-weight: 750; }
.cost-filter-fields { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.cost-filter-fields input { width: 135px; min-width: 0; padding: 7px 8px; border: 1px solid #38516f; border-radius: 6px; color: var(--ink); background: #17223a; font: inherit; }
.cost-filter-fields input::placeholder { color: var(--muted); font-size: 13px; }
.cost-filter-fields input[aria-invalid="true"] { border-color: #e78a9b; }
.cost-filter-hint, .cost-filter-error { margin: 9px 0 0; font-size: 13px; line-height: 1.5; }
.cost-filter-error { color: #ffc4c9; }

.feedback { color: #d8edff; background: #14283c; border-color: #31516e; border-radius: 9px; }
.feedback.error { color: #ffd2d8; background: #3a1d2d; border-color: #734052; }
.feedback.loading { color: #d8edff; background: #17223a; border-color: var(--line); }
.feedback.expanded, .expanded-notice { color: #ffe5ac; background: #342b1c; border-color: #776039; }
.spinner { border-color: #46668e; border-top-color: var(--lime); }
.empty-state { color: var(--ink); background: #121a2d; border-color: var(--line); border-radius: 14px; }
.empty-symbol { color: var(--lime); background: #17223a; }

.offer-card { color: var(--ink); background: #121a2d; border-color: var(--line); border-radius: 14px; }
.offer-photo-placeholder { color: var(--muted); background: radial-gradient(circle at 70% 25%, #2b3a5b 0 15%, transparent 16%), linear-gradient(135deg, #172844, #121a2d); }
.photo-count { background: #080c17e0; }
.offer-thumbnails button { background: #17223a; }
.offer-source, .offer-location, .offer-attribute, .match-reasons, .cost-row, .cost-items, .cost-evidence, .offer-footer time, .offer-description { color: var(--muted); }
.match-pill { max-width: 100%; color: #ffe5ac; background: #47391c; border: 1px solid #947638; padding: 6px 10px; white-space: normal; }
.match-pill strong { font-size: 14px; }
.offer-score-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; max-width: 100%; margin-left: auto; }
.attractiveness-pill { display: inline-flex; align-items: center; max-width: 100%; border: 1px solid #518c9b; border-radius: 50px; padding: 6px 10px; color: #b8f0ee; background: #183746; white-space: normal; }
.attractiveness-pill strong { font-size: 14px; }
.offer-attractiveness { margin: 0 0 15px; padding: 11px 14px; border: 1px solid #38516f; border-radius: 9px; color: var(--muted); background: #17223a; font-size: 16px; line-height: 1.6; }
.offer-attractiveness h4 { margin: 0; color: #b8f0ee; font-size: 17px; font-weight: 750; }
.offer-attractiveness p { margin: 10px 0 7px; }
.offer-attractiveness ul { margin: 7px 0 0; padding-left: 17px; }
.offer-attractiveness li + li { margin-top: 5px; }
.attractiveness-positive strong { color: #a4f1cb; }
.attractiveness-negative strong { color: #ffc4c9; }
.offer-advantages { margin: 0 0 15px; padding: 12px 14px; border: 1px solid #316a55; border-radius: 9px; background: #162f2c; }
.offer-advantages h4 { margin: 0 0 7px; color: #a4f1cb; font-size: 17px; }
.offer-advantages ul { margin: 0; padding-left: 16px; color: #c0dfd7; font-size: 16px; line-height: 1.6; }
.offer-date { display: block; margin-bottom: 10px; color: #d8e9ff; font-size: 14px; font-weight: 750; }
.offer-published-date { margin: -5px 0 10px; color: var(--muted); font-size: 12px; }
.offer-date-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 10px; }
.offer-date-line .offer-date, .offer-date-line .offer-published-date { margin: 0; }
.offer-refresh-history ul { margin: 10px 0 0; padding-left: 18px; line-height: 1.7; }
.offer-price { color: #a4f1cb; }
.offer-pricing { display: flex; flex-direction: column; gap: 7px; width: 360px; max-width: 100%; min-width: 0; margin-bottom: 12px; }
.offer-total-cost { display: flex; flex-direction: column; gap: 3px; color: var(--muted); font-size: 13px; }
.offer-total-cost strong { color: #a4f1cb; font-size: 18px; }
.offer-total-cost small { font-size: 12px; }
.offer-topline { flex-wrap: wrap; }
.offer-expired { padding: 4px 8px; border: 1px solid #a85268; border-radius: 999px; color: #ffd2d8; background: #481f30; font-size: 13px; font-weight: 800; }
.offer-noncompetition { padding: 4px 8px; border: 1px solid #606875; border-radius: 999px; color: #e0e2e6; background: #30343c; font-size: 13px; font-weight: 750; }
.offer-disadvantages { margin: 0 0 15px; padding: 12px 14px; border: 1px solid #975063; border-radius: 9px; background: #3e2331; }
.offer-disadvantages h4 { margin: 0 0 7px; color: #ffc4cf; font-size: 17px; }
.offer-disadvantages ul { margin: 0; padding-left: 16px; color: #f2d4dc; font-size: 16px; line-height: 1.6; }
.offer-comparison { margin: 0 0 15px; padding: 12px 14px; border: 1px solid #565e6d; border-radius: 9px; background: #262c36; font-size: 16px; line-height: 1.5; }
.offer-comparison > summary { color: #e5e9f0; font-size: 17px; font-weight: 750; cursor: pointer; }
.offer-comparison[open] > summary { margin-bottom: 9px; }
.comparison-baseline { margin: 0 0 14px; color: var(--muted); font-size: 16px; }
.comparison-notes { margin: 14px 0 0; padding: 14px 0 0 18px; border-top: 1px solid #46505f; color: var(--muted); font-size: 16px; }
.comparison-notes li + li { margin-top: 6px; }
.comparison-group + .comparison-group { margin-top: 14px; padding-top: 14px; border-top: 1px solid #46505f; }
.comparison-group h5 { margin: 0 0 7px; color: #dce7ff; font-size: 17px; }
.comparison-group ul { margin: 0; padding: 0; list-style: none; }
.comparison-group li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; padding: 7px 0; }
.comparison-label { flex: 1 1 180px; min-width: 0; color: #d8e0ef; }
.rejection-reason { display: inline-block; margin-left: 8px; padding: 1px 7px; border: 1px solid #a77b39; border-radius: 5px; color: #ffe1a3; background: #48371e; font-size: 13px; font-weight: 700; }
.comparison-points { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 12px; min-width: 0; max-width: 100%; color: #dce7ff; font-size: 16px; }
.comparison-advantages h5, .comparison-advantages .comparison-points { color: #a4f1cb; }
.comparison-disadvantages h5, .comparison-disadvantages .comparison-points { color: #ffc4cf; }
.comparison-unknowns h5, .comparison-unknowns .comparison-points { color: #ffe6b0; }
.offer-card.noncompetition { --muted: #afb5bf; --line: #464c56; color: #d8dce3; background: #20242c; border-color: #535b68; }
.offer-card.favorite { border-color: #9c5264; box-shadow: 0 0 0 1px #e8788a18; }
.favorite-button { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: 0 0 auto; border: 1px solid #634454; border-radius: 8px; padding: 0; color: #f793a5; background: #2b1f30; font-size: 26px; line-height: 1; cursor: pointer; }
.favorite-button[aria-pressed="true"] { color: #ff839b; border-color: #9c5264; background: #402232; }
.favorite-button:hover { color: #ffc2cf; border-color: #dc7c92; }
.favorite-button:focus-visible { outline: 2px solid #ff9eb0; outline-offset: 3px; }
.noncompetition .offer-thumbnails img { filter: grayscale(1); }
.noncompetition .offer-price, .noncompetition .offer-total-cost strong, .noncompetition .match-label { color: #c9ced7; }
.noncompetition .match-label::before { background: #aeb5c1; }
.noncompetition .cost-breakdown, .noncompetition .offer-fee-tag { color: #d0d4dc; background: #2a303a; border-color: #535b68; }
.cost-estimate { margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line); }
.cost-item-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 7px; }
.cost-status { padding: 1px 5px; border: 1px solid #38516f; border-radius: 4px; color: #d8e9ff; font-size: 13px; }
.cost-status.estimated { border-color: #776039; color: #ffe5ac; }
.cost-status.included { border-color: #316a55; color: #a4f1cb; }
.cost-estimate .cost-evidence { margin: 3px 0 9px; }
.cost-assumptions, .cost-warning { margin: 10px 0 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.cost-warning { color: #ffe5ac; }
.offer-detail-divider { background: var(--line); }
.offer-fee-tag { color: #d8e9ff; background: #1a2b45; border-color: #38516f; }
.match-label { color: #5ee0a0; }
.match-label::before { background: #5ee0a0; }
.expanded-notice { border-radius: 8px; }
.cost-breakdown { background: #17223a; border-color: var(--line); border-radius: 9px; }
.cost-breakdown h4, .cost-row strong { color: var(--ink); }
.cost-breakdown.cost-summary { margin: 3px 0 0; padding: 10px 12px; font-size: 16px; }
.cost-summary > summary { color: var(--ink); font-size: 17px; font-weight: 750; cursor: pointer; }
.cost-summary-items { margin: 9px 0 0; padding: 0; list-style: none; font-size: 16px; line-height: 1.45; }
.cost-summary-items li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: baseline; gap: 4px 8px; }
.cost-summary-items li + li { margin-top: 5px; }
.cost-summary-items li > span { grid-column: 1; grid-row: 1; }
.cost-summary-items .cost-status { grid-column: 2; grid-row: 1; white-space: nowrap; }
.cost-summary-items strong { grid-column: 3; grid-row: 1; color: var(--ink); text-align: right; white-space: nowrap; }
@media (max-width: 570px) {
  .cost-summary-items li > span { grid-column: 1 / -1; }
  .cost-summary-items .cost-status, .cost-summary-items strong { grid-row: 2; }
}
.cost-help-toggle { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-left: 8px; padding: 0; border: 1px solid #6883a8; border-radius: 50%; color: #dceaff; background: #243b59; font-size: 16px; font-weight: 750; line-height: 1; vertical-align: middle; cursor: pointer; }
.cost-help-toggle:focus-visible { outline: 2px solid var(--lime); outline-offset: 3px; }
.cost-help-content { max-width: 100%; margin: 9px 0; padding-top: 9px; border-top: 1px solid #38516f; color: var(--muted); font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.cost-help-content p { margin: 0 0 8px; }
.cost-help-content h5 { margin: 12px 0 5px; color: var(--ink); font-size: 16px; }
.cost-help-content h5:first-child { margin-top: 0; }
.cost-help-content ul { margin: 0; padding-left: 18px; }
.offer-footer { border-color: var(--line); }
.offer-footer a { color: var(--lime); }
.offer-description:not(.offer-refresh-history) { margin-top: 17px; padding: 14px; border: 1px solid #477bb2; border-radius: 9px; color: #e3efff; background: #203c60; }
.offer-description:not(.offer-refresh-history) > summary { color: #f1f6ff; }
.offer-card > .offer-description:not(.offer-refresh-history) { margin: 0 20px 17px; }
.site-footer { color: var(--muted); }
.site-footer span:first-child { color: var(--ink); }

.photo-dialog { color: var(--ink); background: #121a2d; border: 1px solid var(--line); border-radius: 14px; }
.photo-dialog::backdrop { background: #080c17dd; }
.gallery-toolbar { color: var(--muted); }
.gallery-stage { background: #080c17; }
.gallery-arrow:disabled { color: #69758e; }
.gallery-thumb { background: #17223a; }

body[data-public-view="Znan"] #overview-view,
body[data-public-view="Znan"] #back-button,
body[data-public-view="Znan"] #dashboard-link,
body[data-public-view="Znan"] .site-header,
body[data-public-view="Znan"] #detail-subtitle,
body[data-public-view="Znan"] .detail-actions,
body[data-public-view="Znan"] .results-heading,
body[data-public-view="Znan"] #cost-filter-hint,
body[data-public-view="Znan"] #reference-name,
body[data-public-view="Znan"] .reference-column,
body[data-public-view="Znan"] .detail-heading .section-kicker,
body[data-public-view="Znan"] #search-button { display: none; }
body[data-public-view="Znan"] .main-content { width: 100%; padding-left: clamp(16px, 2vw, 32px); padding-right: clamp(16px, 2vw, 32px); }
body[data-public-view="Znan"] .detail-heading { display: block; padding: 28px 0 20px; }
body[data-public-view="Znan"] .detail-heading h1 { margin: 0; font-size: clamp(30px, calc(3vw + 2px), 44px); letter-spacing: -.04em; }
body[data-public-view="Znan"] .detail-layout { grid-template-columns: minmax(0, 1fr); padding-top: 20px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
