/* DART — public apartment-market tool. Phase-1 landing + results styles. */

/* ===== App shell (PMA-style: small header, no footer, full-bleed) ===== */
:root {
    --dart-nav-h: 48px;
    --dart-brand: #003a25;
    --dart-brand-dark: #00261a;
    --dart-accent: #e8710a;
}
html, body { height: 100%; }
body.dart-body {
    box-sizing: border-box;
    margin: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;                 /* app-like: the body never scrolls */
    font-family: 'Roboto', system-ui, -apple-system, sans-serif;
}
/* Clear the fixed dev-data banner so it doesn't overlap the nav. */
body.dart-body--devbanner { padding-top: 28px; }
.dart-main {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;                   /* scroll happens inside the app area */
    display: flex;
    flex-direction: column;
}

/* Condensed nav bar */
.dart-nav {
    flex: 0 0 auto;
    display: flex; align-items: center; gap: 1rem;
    height: var(--dart-nav-h);
    padding: 0 1rem;
    background: var(--dart-brand);
    color: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,.18);
    position: relative; z-index: 10;
}
.dart-nav__brand {
    font-size: 1.05rem; font-weight: 700; letter-spacing: .04em;
    color: #fff; text-decoration: none;
}
.dart-nav__brand:hover { opacity: .9; }
.dart-nav__toggle {
    display: none;
    background: transparent; color: #fff; border: 0;
    font-size: 1.25rem; cursor: pointer;
}
.dart-nav__links {
    margin-left: auto;
    display: flex; align-items: center; gap: 1.25rem;
    font-size: .9rem;
}
.dart-nav__links a { color: #fff; text-decoration: none; }
.dart-nav__links a:hover { text-decoration: underline; }
.dart-nav__user { color: #cbe7f5; font-size: .85rem; }
.dart-nav__logout {
    background: transparent;
    border: 1px solid rgba(255,255,255,.5); color: #fff;
    padding: .25rem .65rem; border-radius: 3px;
    font-size: .8rem; cursor: pointer;
}
.dart-nav__logout:hover { background: rgba(255,255,255,.12); }
.dart-nav__cta {
    background: var(--dart-accent);
    padding: .3rem .75rem; border-radius: 4px; font-weight: 600;
}
.dart-nav__cta:hover { text-decoration: none !important; opacity: .92; }

@media (max-width: 720px) {
    .dart-nav__toggle { display: inline-block; }
    .dart-nav__links {
        position: absolute; top: var(--dart-nav-h); left: 0; right: 0;
        flex-direction: column; gap: 0; align-items: stretch;
        background: var(--dart-brand-dark);
        max-height: 0; overflow: hidden; transition: max-height .2s ease;
    }
    .dart-nav__links.is-open { max-height: 360px; padding: .5rem 0; }
    .dart-nav__links a, .dart-nav__user, .dart-nav__links form { padding: .5rem 1rem; }
}

.sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0);
    white-space: nowrap; border: 0;
}

/* ===== Landing hero ===== */
.dart-hero {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #003a25 0%, #003a25 100%);
    color: #fff;
    padding: 2rem 1.5rem;
}
.dart-hero__inner {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}
.dart-hero__title {
    font-size: clamp(1.6rem, 4vw, 2.6rem);
    line-height: 1.15;
    margin: 0 0 1rem;
}
.dart-hero__sub {
    font-size: 1.05rem;
    line-height: 1.55;
    color: #cdd9ec;
    margin: 0 0 2rem;
}

.dart-search {
    display: flex;
    gap: 0.5rem;
    max-width: 600px;
    margin: 0 auto;
}
.dart-search__input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.85rem 1rem;
    font-size: 1rem;
    border: 1px solid transparent;
    border-radius: 6px;
}
.dart-search__btn {
    flex: 0 0 auto;
    padding: 0.85rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
    background: #e8710a;
    border: none;
    border-radius: 6px;
    cursor: pointer;
}
.dart-search__btn:hover { background: #cf6309; }
.dart-search__btn:disabled { opacity: 0.7; cursor: default; }
.dart-search__err {
    max-width: 600px;
    margin: 0.75rem auto 0;
    color: #ffd2c2;
    font-size: 0.95rem;
}

/* ===== Results map ===== */
.dart-results {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
/* Menu bar (Search / Theme / Filter / Reports) */
.dart-menubar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.15rem;
    height: 42px;
    padding: 0 0.6rem;
    background: #f4f6fa;
    border-bottom: 1px solid #dfe4ec;
}
.dart-menubar__home { font-size: 1.15rem; color: #003a25; text-decoration: none; padding: 0 0.5rem; }
.dart-menubar__home:hover { color: #e8710a; }
.dart-menubar__btn {
    background: transparent; border: 0; border-bottom: 2px solid transparent;
    height: 42px; padding: 0 0.9rem; font-size: 0.88rem; font-weight: 600; color: #003a25; cursor: pointer;
}
.dart-menubar__btn:hover { background: #e7eef5; }
.dart-menubar__btn.is-active { border-bottom-color: #e8710a; color: #003a25; }
.dart-menubar__count { margin-left: auto; color: #4a5568; font-size: 0.85rem; }
.dart-menubar__list {
    margin-left: 0.75rem; background: #003a25; color: #fff; border: 0;
    padding: 0.35rem 0.7rem; border-radius: 4px; font-size: 0.8rem; font-weight: 600; cursor: pointer;
}
.dart-menubar__list.is-active { background: #e8710a; }

/* Sub-panel opened under the menu bar */
.dart-panel {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem 0.7rem;
    padding: 0.55rem 1rem;
    background: #eef2f7;
    border-bottom: 1px solid #dfe4ec;
    font-size: 0.82rem;
}
.dart-panel[hidden] { display: none; }   /* explicit display: must beat [hidden] UA rule */
.dart-panel__label { font-weight: 700; color: #003a25; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.74rem; }
.dart-panel__muted { color: #6b7280; }
.dart-panel__field { display: inline-flex; align-items: center; gap: 0.4rem; color: #2d3748; }
.dart-panel__input { padding: 0.35rem 0.5rem; border: 1px solid #c2ccda; border-radius: 4px; min-width: 18rem; font-size: 0.85rem; }
.dart-panel__err { color: #b3402f; }
.dart-toolbar__title {
    font-weight: 700;
    color: #003a25;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.74rem;
}
.dart-toolbar__sel {
    font-size: 0.82rem;
    padding: 0.25rem 0.4rem;
    border: 1px solid #c2ccda;
    border-radius: 4px;
    background: #fff;
    max-width: 16rem;
}
.dart-toolbar__inline {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: #2d3748;
}
.dart-toolbar__btn {
    font-size: 0.82rem;
    font-weight: 600;
    padding: 0.3rem 0.85rem;
    border: none;
    border-radius: 4px;
    background: #003a25;
    color: #fff;
    cursor: pointer;
}
.dart-toolbar__btn:hover { background: #00261a; }
.dart-toolbar__btn--ghost {
    background: transparent;
    color: #003a25;
    border: 1px solid #c2ccda;
}
.dart-toolbar__btn--ghost:hover { background: #e2e8f0; }
.dart-toolbar__status { color: #4a5568; margin-left: 0.25rem; }

/* Map + property-list row */
.dart-body-row {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    position: relative;   /* anchors the comparable-report overlay */
}
.dart-map-wrap {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    position: relative;
}

/* Initial-load cover — fills the map area with a spinner until properties +
   their house-icons have rendered. Fades out via .dart-loading--hidden. */
.dart-loading {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(1px);
    transition: opacity .35s ease;
}
.dart-loading--hidden {
    opacity: 0;
    pointer-events: none;
}
.dart-loading__box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 22px 30px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .18);
}
.dart-loading__spinner {
    width: 42px;
    height: 42px;
    border: 4px solid #d4ddd8;
    border-top-color: #003a25; /* DART brand green */
    border-radius: 50%;
    animation: dart-spin .8s linear infinite;
}
.dart-loading__text {
    font-size: .95rem;
    font-weight: 600;
    color: #003a25;
    letter-spacing: .3px;
}
@keyframes dart-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .dart-loading__spinner { animation-duration: 2s; }
}
.dart-results__map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 300px;
}
.dart-legend-box {
    position: absolute;
    left: 12px;
    bottom: 16px;
    z-index: 5;
    background: rgba(255,255,255,.95);
    border: 1px solid #cbd2dc;
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    box-shadow: 0 1px 6px rgba(0,0,0,.2);
    font-size: 0.72rem;
    max-width: 200px;
}
.dart-legend-box__title {
    font-weight: 700;
    color: #003a25;
    margin-bottom: 0.3rem;
    font-size: 0.74rem;
}
.dart-legend-box__row {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    line-height: 1.5;
    color: #2d3748;
}
.dart-legend-box__sw {
    width: 14px; height: 12px;
    border-radius: 2px;
    border: 1px solid rgba(0,0,0,.2);
    flex: 0 0 auto;
}
/* Property list (side panel: fixed legend + scrolling tiles) */
.dart-list {
    flex: 0 0 320px;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #fff;
    border-left: 1px solid #dfe4ec;
}
.dart-list__legend {
    flex: 0 0 auto;
    padding: 0.5rem 0.6rem;
    border-bottom: 1px solid #dfe4ec;
    background: #f7f9fc;
}
.dart-list__legend-title {
    font-weight: 700; color: #003a25; font-size: 0.72rem;
    text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.3rem;
}
.dart-legend-row {
    display: flex; align-items: center; gap: 0.45rem;
    font-size: 0.76rem; color: #2d3748; line-height: 1.5;
}
.dart-legend-row__icon { width: 18px; height: 16px; object-fit: contain; flex: 0 0 auto; }
.dart-legend-row__label { min-width: 0; }
.dart-list__tiles {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 0.5rem;
}
.dart-list__head { font-weight: 700; color: #003a25; font-size: 0.8rem; padding: 0.25rem 0.35rem 0.5rem; }
.dart-tile {
    border: 1px solid #d7dee8; border-radius: 6px;
    padding: 0.5rem 0.6rem; margin-bottom: 0.5rem; cursor: pointer; background: #fbfcfe;
}
.dart-tile:hover { border-color: #003a25; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.dart-tile__name { font-weight: 700; color: #003a25; font-size: 0.85rem; line-height: 1.25; }
.dart-tile__body { display: flex; gap: 0.5rem; align-items: flex-start; margin-top: 0.2rem; }
.dart-tile__col { flex: 1 1 auto; min-width: 0; }
.dart-tile__photo {
    flex: 0 0 auto;
    width: 84px; height: 63px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid #cbd2dc;
    background: #eef2f7;
}
.dart-tile__line { color: #4a5568; font-size: 0.78rem; line-height: 1.35; }
.dart-tile__tags { display: flex; align-items: center; gap: 0.35rem; margin-top: 0.3rem; }
.dart-tile__code { font-size: 0.72rem; font-weight: 700; color: #2d3748; }
.dart-tile__senior { font-size: 0.68rem; background: #6b46c1; color: #fff; padding: 0.05rem 0.35rem; border-radius: 3px; }

/* Property popup (InfoWindow content) */
.dart-info { font-size: 0.82rem; color: #2d3748; max-width: 240px; }
.dart-info__name { font-weight: 700; color: #003a25; font-size: 0.92rem; margin-bottom: 0.2rem; }
.dart-info__photo {
    display: block;
    width: 100%; max-width: 220px; height: auto;
    border-radius: 4px; border: 1px solid #cbd2dc;
    margin: 0.1rem 0 0.35rem;
}
.dart-info__row { line-height: 1.4; }
.dart-info__tags { display: flex; gap: 0.35rem; margin-top: 0.35rem; flex-wrap: wrap; }
.dart-info__tag { font-size: 0.7rem; font-weight: 600; padding: 0.1rem 0.4rem; border-radius: 3px; background: #e2e8f0; color: #2d3748; }
.dart-info__tag--senior { background: #6b46c1; color: #fff; }
.dart-info__tag--family { background: #2b6cb0; color: #fff; }
.dart-info__detail {
    margin-top: 0.5rem; width: 100%;
    background: #2f855a; color: #fff; border: 0; border-radius: 4px;
    padding: 0.4rem 0.5rem; font-size: 0.8rem; font-weight: 700; cursor: pointer;
}
.dart-info__detail:hover { background: #276749; }
.dart-info__compare {
    margin-top: 0.4rem; width: 100%;
    background: #003a25; color: #fff; border: 0; border-radius: 4px;
    padding: 0.35rem 0.5rem; font-size: 0.78rem; font-weight: 600; cursor: pointer;
}
.dart-info__compare:hover { background: #00261a; }

/* Tile compare toggle (+ / ✓) */
.dart-tile__compare {
    margin-left: auto;
    width: 22px; height: 22px; flex: 0 0 auto;
    border: 1px solid #c2ccda; border-radius: 4px; background: #fff;
    color: #003a25; font-weight: 700; font-size: 0.9rem; line-height: 1; cursor: pointer;
}
.dart-tile__compare:hover { background: #e7eef5; }
.dart-tile__compare.is-on { background: #2f855a; border-color: #2f855a; color: #fff; }
.dart-panel__hint { color: #6b7280; font-size: 0.74rem; }

/* Comparable report overlay */
.dart-compare {
    position: absolute; inset: 0; z-index: 30;
    background: #fff; display: flex; flex-direction: column;
}
.dart-compare[hidden] { display: none; }   /* explicit display must beat [hidden] */
.dart-compare__bar {
    flex: 0 0 auto; display: flex; align-items: center; gap: 0.7rem;
    padding: 0.6rem 1rem; background: #003a25; color: #fff;
}
.dart-compare__title { font-weight: 700; font-size: 1rem; }
.dart-compare__sub { color: #cbd9ec; font-size: 0.85rem; margin-right: auto; }
.dart-compare__scroll { flex: 1 1 auto; overflow: auto; padding: 1rem; }
.dart-cmp-table { border-collapse: collapse; font-size: 0.82rem; }
.dart-cmp-table th[scope=row] {
    text-align: left; background: #f4f6fa; color: #003a25; font-weight: 700;
    padding: 0.4rem 0.6rem; border: 1px solid #dfe4ec; position: sticky; left: 0; white-space: nowrap;
}
.dart-cmp-table td {
    padding: 0.4rem 0.6rem; border: 1px solid #dfe4ec; color: #2d3748;
    vertical-align: top; min-width: 150px;
}
.dart-cmp-photo { width: 140px; height: 105px; object-fit: cover; border-radius: 4px; }

/* Apartment Report tab bar */
.dart-apt-tabs { flex: 0 0 auto; display: flex; flex-wrap: wrap; background: #eef2f7; border-bottom: 1px solid #dfe4ec; padding: 0 0.5rem; }
.dart-apt-tab {
    background: transparent; border: 0; border-bottom: 3px solid transparent;
    padding: 0.55rem 0.9rem; font-size: 0.85rem; font-weight: 600; color: #003a25; cursor: pointer;
}
.dart-apt-tab:hover { background: #e2e8f0; }
.dart-apt-tab.is-active { border-bottom-color: #2f855a; color: #00261a; }

/* County demographics report */
.dart-rep__loading { color: #4a5568; padding: 1rem; }
.dart-rep__cards {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.6rem; margin-bottom: 1rem;
}
.dart-rep__card {
    background: #f4f6fa; border: 1px solid #dfe4ec; border-radius: 6px;
    padding: 0.6rem 0.7rem; text-align: center;
}
.dart-rep__card-val { font-size: 1.25rem; font-weight: 800; color: #003a25; line-height: 1.1; }
.dart-rep__card-lbl { font-size: 0.72rem; color: #4a5568; margin-top: 0.2rem; text-transform: uppercase; letter-spacing: 0.03em; }
.dart-rep__h {
    margin: 1.2rem 0 0.5rem; font-size: 0.95rem; color: #003a25;
    border-bottom: 2px solid #e2e8f0; padding-bottom: 0.25rem;
}
.dart-rep__hl { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0.4rem 1.2rem; }
.dart-rep__hl-item { font-size: 0.85rem; color: #2d3748; }
.dart-rep__hl-val { font-weight: 800; color: #003a25; margin-right: 0.35rem; }
.dart-rep__hl-sub { color: #6b7280; font-size: 0.78rem; }
.dart-rep__table { border-collapse: collapse; width: 100%; max-width: 560px; font-size: 0.85rem; }
.dart-rep__table td { padding: 0.28rem 0.5rem; vertical-align: middle; }
.dart-rep__t-lbl { color: #2d3748; white-space: nowrap; }
.dart-rep__t-bar { width: 100%; }
.dart-rep__bar { display: inline-block; height: 0.7rem; background: #2f855a; border-radius: 3px; min-width: 2px; vertical-align: middle; }
.dart-rep__t-pct { text-align: right; font-weight: 700; color: #003a25; white-space: nowrap; }
.dart-rep__t-val { text-align: right; color: #6b7280; white-space: nowrap; }
.dart-rep__source { margin-top: 1.2rem; font-size: 0.75rem; color: #6b7280; font-style: italic; }

/* Paid property detail (tabbed) */
.dart-detail__tabs {
    flex: 0 0 auto; display: flex; gap: 0.15rem;
    padding: 0 1rem; background: #eef2f7; border-bottom: 1px solid #dfe4ec;
}
.dart-detail__tab {
    background: transparent; border: 0; border-bottom: 3px solid transparent;
    padding: 0.6rem 1rem; font-size: 0.85rem; font-weight: 600; color: #003a25; cursor: pointer;
}
.dart-detail__tab:hover { background: #e2e8f0; }
.dart-detail__tab.is-active { border-bottom-color: #2f855a; color: #00261a; }
.dart-detail__kv { border-collapse: collapse; font-size: 0.9rem; }
.dart-detail__kv th {
    text-align: left; color: #003a25; font-weight: 700; padding: 0.4rem 1.2rem 0.4rem 0; white-space: nowrap;
}
.dart-detail__kv td { padding: 0.4rem 0; color: #2d3748; }
.dart-detail__grid { border-collapse: collapse; font-size: 0.88rem; min-width: 420px; }
.dart-detail__grid th {
    text-align: left; background: #003a25; color: #fff; font-weight: 600;
    padding: 0.45rem 0.8rem; border: 1px solid #003a25;
}
.dart-detail__grid td { padding: 0.4rem 0.8rem; border: 1px solid #dfe4ec; color: #2d3748; }
.dart-detail__grid tr:nth-child(even) td { background: #f7f9fc; }
.dart-detail__empty { color: #6b7280; font-style: italic; }
.dart-detail__amen { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; }
.dart-detail__amen h4 { margin: 0 0 0.4rem; color: #003a25; font-size: 0.95rem; border-bottom: 2px solid #e2e8f0; padding-bottom: 0.25rem; }
.dart-detail__amen ul { margin: 0; padding-left: 1.1rem; color: #2d3748; font-size: 0.86rem; line-height: 1.7; }
.dart-detail__upgrade { padding: 2rem 1rem; text-align: center; color: #4a5568; }
.dart-detail__upgrade-h { font-size: 1.1rem; font-weight: 800; color: #003a25; margin-bottom: 0.4rem; }

/* Property detail MODAL (centered popup) */
.dart-modal-backdrop {
    position: fixed; inset: 0; z-index: 1000;
    background: rgba(0,0,0,.45);
    display: flex; align-items: center; justify-content: center; padding: 1rem;
}
.dart-modal-backdrop[hidden] { display: none; }
.dart-modal {
    display: flex; flex-direction: column;
    width: 640px; max-width: 100%; max-height: 90vh;
    background: #fff; border-radius: 8px; overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,.35);
}
.dart-modal__head {
    flex: 0 0 auto; position: relative;
    display: flex; align-items: center; justify-content: center;
    background: #003a25; color: #fff; padding: 0.5rem 1rem;
}
.dart-modal__title { font-size: 0.95rem; font-weight: 700; letter-spacing: 0.02em; }
.dart-modal__x {
    position: absolute; right: 0.4rem; top: 50%; transform: translateY(-50%);
    background: transparent; border: 0; color: #fff; font-size: 1.5rem; line-height: 1; cursor: pointer; padding: 0 0.4rem;
}
.dart-modal__x:hover { color: #cdebd9; }
.dart-modal__sub {
    flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
    background: #0a5132; color: #fff; padding: 0.4rem 1rem;
}
.dart-modal__name { font-weight: 700; font-size: 0.95rem; }
.dart-modal__units { font-size: 0.85rem; color: #cdebd9; white-space: nowrap; }
.dart-modal__body { flex: 1 1 auto; overflow: auto; padding: 0.9rem 1rem; min-height: 130px; }
.dart-modal__actions {
    flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: 0.5rem 1rem; border-top: 1px solid #e2e8f0; background: #f7f9fc; font-size: 0.82rem;
}
.dart-modal__cmp { display: inline-flex; align-items: center; gap: 0.4rem; color: #2d3748; cursor: pointer; }
.dart-modal__cmp-hint { color: #6b7280; font-size: 0.75rem; }
.dart-modal__print { color: #2f855a; font-weight: 600; text-decoration: underline; white-space: nowrap; }
.dart-modal__tabs { flex: 0 0 auto; display: flex; background: #003a25; }
.dart-modal__tab {
    flex: 1 1 0; background: #003a25; color: #cdebd9;
    border: 0; border-right: 1px solid rgba(255,255,255,.12);
    padding: 0.55rem 0.3rem; font-size: 0.8rem; font-weight: 600; cursor: pointer;
}
.dart-modal__tab:last-child { border-right: 0; }
.dart-modal__tab:hover { background: #00261a; color: #fff; }
.dart-modal__tab.is-active { background: #fff; color: #003a25; }
.dart-dtab { display: flex; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.dart-dtab__photo { flex: 0 0 230px; width: 230px; max-width: 100%; height: auto; border-radius: 6px; border: 1px solid #cbd2dc; }
.dart-dtab > .dart-detail__kv { flex: 1 1 220px; min-width: 0; }
.dart-dtab .dart-detail__kv td { white-space: normal; }

/* Market-area builder workflow (inside the list panel) */
.dart-wf { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.dart-wf[hidden] { display: none; }
.dart-wf__head {
    flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between;
    background: #003a25; color: #fff; padding: 0.45rem 0.7rem;
}
.dart-wf__title { font-weight: 700; font-size: 0.85rem; }
.dart-wf__x { background: transparent; border: 0; color: #fff; font-size: 1.3rem; line-height: 1; cursor: pointer; padding: 0 0.3rem; }
.dart-wf__x:hover { color: #cdebd9; }
.dart-wf__body { flex: 1 1 auto; overflow: auto; padding: 0.7rem 0.8rem; text-align: center; }
.dart-wf__step { padding: 0.4rem 0 0.7rem; border-bottom: 1px solid #e8edf3; margin-bottom: 0.6rem; }
.dart-wf__step:last-child { border-bottom: 0; margin-bottom: 0; }
.dart-wf__steph { color: #2f855a; font-size: 1rem; margin: 0 0 0.4rem; }
.dart-wf__p { color: #4a5568; font-size: 0.82rem; line-height: 1.45; margin: 0 0 0.6rem; }
.dart-wf__field { display: block; font-size: 0.82rem; color: #2d3748; margin: 0 0 0.6rem; }
.dart-wf__btn {
    display: block; width: 100%; margin: 0.3rem 0;
    background: #fff; color: #003a25; border: 1px solid #c2ccda; border-radius: 4px;
    padding: 0.4rem 0.6rem; font-size: 0.85rem; font-weight: 600; cursor: pointer;
}
.dart-wf__btn:hover:not(:disabled) { background: #eef4f0; border-color: #2f855a; }
.dart-wf__btn:disabled { opacity: 0.45; cursor: default; }
.dart-wf__btn--inline { display: inline-block; width: auto; margin: 0 0 0 0.4rem; padding: 0.25rem 0.7rem; }
.dart-wf__menutitle { font-weight: 700; color: #003a25; font-size: 0.85rem; margin-bottom: 0.4rem; }
.dart-wf__stat { font-size: 0.82rem; color: #2d3748; margin: 0.15rem 0; }
.dart-wf-grid { width: 100%; border-collapse: collapse; margin-bottom: 0.5rem; }
.dart-wf-grid th { border: 1px solid #d7dee8; padding: 0.2rem 0.1rem; background: #f4f6fa; }
.dart-wf-grid__icon { width: 18px; height: 16px; display: block; margin: 0 auto; }
.dart-wf-grid__code { font-size: 0.62rem; font-weight: 700; color: #003a25; }
.dart-wf-grid td { border: 1px solid #d7dee8; padding: 0.2rem 0.1rem; font-size: 0.72rem; text-align: center; color: #2d3748; }
.dart-wf-grid__units { color: #2f855a; }
.dart-wf-report { display: flex; align-items: center; justify-content: space-between; padding: 0.3rem 0.2rem; border-bottom: 1px solid #eef2f7; }
.dart-wf-report__name { color: #003a25; font-weight: 600; font-size: 0.85rem; text-decoration: none; }
.dart-wf-report__name:hover { text-decoration: underline; }
.dart-wf-report__free { color: #2f855a; font-size: 0.7rem; font-weight: 700; }
/* drawing vertices */
.dart-wf-vertex { width: 10px; height: 10px; border-radius: 50%; background: #003a25; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.3); transform: translateY(50%); }
.dart-wf-vertex--first { background: #e8710a; cursor: pointer; width: 13px; height: 13px; }

/* Tile "View details" link */
.dart-tile__details {
    margin-top: 0.35rem; background: transparent; border: 0; padding: 0;
    color: #2f855a; font-size: 0.76rem; font-weight: 700; cursor: pointer; text-decoration: underline;
}
.dart-tile__details:hover { color: #003a25; }

@media print {
    body.dart-body { overflow: visible !important; height: auto !important; display: block !important; }
    .dart-main { overflow: visible !important; display: block !important; }
    .dart-results { display: block !important; }
    .dart-nav, .dart-menubar, .dart-panel, .dart-list, .dart-map-wrap { display: none !important; }
    .dart-body-row { display: block !important; }
    .dart-compare { position: static !important; display: block !important; }
    .dart-compare__bar { background: #fff !important; color: #000 !important; }
    .dart-compare__bar .dart-toolbar__btn { display: none !important; }
    .dart-compare__scroll { overflow: visible !important; }
    /* Property detail modal → clean printable sheet */
    .dart-modal-backdrop { position: static !important; background: none !important; padding: 0 !important; display: block !important; }
    .dart-modal { box-shadow: none !important; max-height: none !important; width: 100% !important; }
    .dart-modal__head, .dart-modal__sub { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .dart-modal__x, .dart-modal__tabs, .dart-modal__actions { display: none !important; }
    .dart-modal__body { overflow: visible !important; }
}

/* Property-type filter (mirrors the legacy DART "Property Type" menu) */
.dart-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.85rem;
    margin: 0;
}
.dart-filter__label {
    font-size: 0.78rem;
    font-weight: 700;
    color: #003a25;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-right: 0.15rem;
}
.dart-filter__item {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #2d3748;
    cursor: pointer;
    user-select: none;
}
.dart-filter__cb { margin: 0; cursor: pointer; }
.dart-filter--row2 {
    margin-top: 0.45rem;
    padding-top: 0.45rem;
    border-top: 1px solid #e2e8f0;
}
.dart-filter__group { display: inline-flex; align-items: center; gap: 0.35rem; }
.dart-filter__sep {
    width: 1px; height: 1rem; background: #cbd2dc; display: inline-block;
}
.dart-ma-draw { display: inline-flex; align-items: center; gap: 0.4rem; }
.dart-ma-draw[hidden] { display: none; }
.dart-mini-sel {
    font-size: 0.78rem;
    padding: 0.2rem 0.35rem;
    border: 1px solid #c2ccda;
    border-radius: 4px;
    background: #fff;
}
.dart-year-in {
    width: 4.5rem;
    font-size: 0.78rem;
    padding: 0.2rem 0.35rem;
    border: 1px solid #c2ccda;
    border-radius: 4px;
}
.dart-legend__sw {
    width: 12px; height: 12px;
    border-radius: 2px;
    border: 1px solid rgba(0,0,0,.25);
}

/* Searched-location marker (replaces the deprecated gmp-pin) */
.dart-center-pin {
    width: 16px; height: 16px;
    border-radius: 50%;
    background: #003a25;
    border: 3px solid #fff;
    box-shadow: 0 0 0 1px rgba(0,0,0,.35);
    transform: translateY(50%);   /* centre the dot on the coordinate */
}

/* Property house markers (PMA convention: 18×16 icon, centre-anchored) */
.dart-marker {
    width: 18px; height: 16px;
    transform: translateY(-50%);
    cursor: default;
    user-select: none;
}
.dart-marker img {
    width: 100%; height: 100%;
    display: block;
    image-rendering: -webkit-optimize-contrast;
}
