:root {
    --bg: #FFFFFF;
    --bg-surface: #F6F8FB;
    --bg-hover: #EDF0F6;
    --bg-active: #E1E6EF;
    --text: #1A1F36;
    --text-dim: #4A5268;
    --text-muted: #8E96A8;
    --accent: #0057B8;
    --accent-light: #EBF2FC;
    --accent-hover: #004494;
    --accent-text: #FFFFFF;
    --border: #D8DDE6;
    --border-light: #E8ECF2;
    --good: #1A8F47;
    --warn: #C48B08;
    --bad: #C93B3F;
    --neutral: #5B51D8;
    --shadow-sm: 0 1px 3px rgba(0,20,60,0.05);
    --shadow-md: 0 4px 12px rgba(0,20,60,0.07);
    --shadow-lg: 0 8px 28px rgba(0,20,60,0.10);
    --radius: 8px;
    --radius-sm: 5px;
    --sidebar-w: 256px;
    --header-h: 38px;
    --detail-w: 392px;
    --font: 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    --ease: cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:clip;overscroll-behavior:none}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}
#viewport-lock{position:fixed;inset:0;overflow:clip;width:100%;height:100%}
a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}

/* Decision workspace */
.decision-hub{margin:2px 0 10px;padding:8px 6px 10px;border-bottom:1px solid var(--border-light);background:var(--bg)}
.decision-kicker{font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.55px;color:var(--accent);margin-bottom:4px}
.decision-hub h2{font-size:16px;line-height:1.15;font-weight:900;color:var(--text);letter-spacing:0;margin-bottom:5px}
.decision-hub p{font-size:10px;line-height:1.45;color:var(--text-dim)}
.workflow-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:10px}
.workflow-tab{min-width:0;min-height:42px;padding:7px 8px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-surface);font-family:var(--font);text-align:left;color:var(--text-dim);cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),box-shadow .15s var(--ease),color .15s var(--ease)}
.workflow-tab span{display:block;font-size:12px;font-weight:900;line-height:1.1;color:var(--text)}
.workflow-tab em{display:block;margin-top:2px;font-size:9px;font-style:normal;font-weight:800;line-height:1.1;color:var(--text-muted)}
.workflow-tab:hover{border-color:rgba(0,87,184,.34);background:var(--accent-light)}
.workflow-tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.workflow-tab.active{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 5px 14px rgba(0,87,184,.16)}
.workflow-tab.active span,.workflow-tab.active em{color:#fff}
.workflow-tab.fit-map-off{border-color:rgba(196,139,8,.45);background:rgba(196,139,8,.08)}
.workflow-tab.fit-map-off span{color:var(--text)}
.workflow-tab.fit-map-off em{color:var(--warn)}
.workflow-tab.fit-map-off.active{border-color:var(--warn);background:var(--warn);box-shadow:0 5px 14px rgba(196,139,8,.16)}
.workflow-tab.fit-map-off.active span,.workflow-tab.fit-map-off.active em{color:#fff}
#sidebar .workflow-section,#sidebar .tools-drawer{display:none}
#sidebar .workflow-section.is-active,#sidebar .tools-drawer.is-active{display:block}
.workflow-section{padding:10px 6px;border:none;border-bottom:1px solid var(--border-light);border-radius:0;background:var(--bg);margin-bottom:0}
.workflow-section.primary{border-color:var(--border-light)}
.workflow-section.is-active{background:linear-gradient(90deg,rgba(0,87,184,.045),var(--bg) 34%)}
.workflow-head{display:grid;grid-template-columns:22px 1fr;gap:7px;align-items:start;margin-bottom:7px}
.workflow-step{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-light);color:var(--accent);font-size:10px;font-weight:900;border:1px solid rgba(0,87,184,.14)}
.workflow-head h3{font-size:12px;line-height:1.2;font-weight:900;color:var(--text);letter-spacing:0}
.workflow-head p{font-size:9px;line-height:1.35;color:var(--text-muted);margin-top:2px}
.workflow-section .guided-section{padding-left:0;padding-right:0}
.workflow-section .guided-section,.workflow-section .shortlist-section{border-bottom:none;margin-bottom:0}
.shortlist-empty{padding:6px 0;display:flex;flex-direction:column;gap:2px}
.shortlist-empty.hidden{display:none}
.shortlist-empty strong{font-size:11px;font-weight:850;color:var(--text)}
.shortlist-empty span{font-size:10px;line-height:1.35;color:var(--text-muted)}
.compare-slots{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}
.compare-slots i{height:24px;border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg-surface)}
.compare-slots i::before{content:'Saved place';display:block;padding:6px 8px;font-size:8px;font-style:normal;font-weight:850;text-transform:uppercase;letter-spacing:.35px;color:var(--text-muted)}
.address-search-card{position:relative;margin-bottom:8px}
.address-search-card.address-attention{animation:addressAttention 1.4s var(--ease)}
.address-search-row{display:flex;gap:5px}
.address-search-row input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:12px;color:var(--text);background:var(--bg-surface);outline:none;transition:border-color .15s}
.address-search-row input:focus{border-color:var(--accent);background:var(--bg)}
.address-search-row input::placeholder{color:var(--text-muted)}
#address-locate{width:38px;flex-shrink:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:9px;font-weight:900;color:var(--accent);cursor:pointer;transition:all .15s;padding:0}
#address-locate:hover{background:var(--accent-light);border-color:var(--accent)}
#address-locate.locating{border-color:var(--accent);animation:pulse 1s ease infinite}
#address-search-results{position:absolute;top:100%;left:0;right:0;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:20;max-height:210px;overflow-y:auto;margin-top:4px}
#address-search-results.hidden{display:none}
.address-tray{margin-top:8px;padding:8px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-surface)}
.address-tray.hidden{display:none}
.address-tray-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.address-tray-head>span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted)}
.address-tray-head div{display:flex;align-items:center;gap:8px;min-width:0}
.address-tray-head button{border:0;background:transparent;padding:0;font-family:var(--font);font-size:9px;font-weight:850;color:var(--accent);cursor:pointer;white-space:nowrap}
.address-tray-head button:disabled{color:var(--text-muted);cursor:not-allowed}
.address-tray-list{display:flex;flex-direction:column}
.address-tray-row-wrap{display:grid;grid-template-columns:1fr 22px;gap:4px;align-items:center;border-top:1px solid var(--border-light)}
.address-tray-row-wrap:first-child{border-top:0}
.address-tray-row{display:block;width:100%;min-width:0;padding:7px 0;border:0;background:transparent;font-family:var(--font);text-align:left;cursor:pointer}
.address-tray-row div{min-width:0}
.address-tray-row strong{display:block;font-size:11px;font-weight:850;color:var(--text);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-tray-row span{display:block;margin-top:2px;font-size:9px;font-weight:750;color:var(--text-muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-tray-row:hover strong,.address-tray-row:hover span{color:var(--accent)}
.address-tray-remove{width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer}
.address-tray-remove:hover{background:var(--bg-hover);color:var(--bad)}

/* Guided modes */
.guided-section{padding:2px 4px 10px;border-bottom:1px solid var(--border-light);margin-bottom:6px}
.guided-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.guided-card{position:relative;min-height:38px;padding:8px 9px 8px 34px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius);font-family:var(--font);text-align:left;cursor:pointer;transition:all .15s var(--ease)}
.guided-card::before{content:'★';position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--accent);font-size:9px;font-weight:950;box-shadow:inset 0 0 0 1px rgba(0,87,184,.14)}
.guided-card[data-mode="renting"]::before{content:'CHF';font-size:6px}
.guided-card[data-mode="commute"]::before{content:'→';font-size:12px}
.guided-card[data-mode="families"]::before{content:'⌂';font-size:10px}
.guided-card[data-mode="quiet"]::before{content:'⌁';font-size:12px}
.guided-card[data-mode="daily"]::before{content:'+';font-size:12px}
.guided-card:hover{border-color:var(--accent);background:var(--accent-light)}
.guided-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.guided-card.active{border-color:var(--accent);background:linear-gradient(180deg,#fff,var(--accent-light));box-shadow:inset 0 0 0 1px var(--accent),0 4px 12px rgba(0,87,184,.08)}
.guided-card.active::before{background:var(--accent);color:#fff}
.guided-title{display:block;font-size:11px;font-weight:800;color:var(--text);line-height:1.15}
.guided-card.active .guided-title{color:var(--accent)}
.work-anchor-card{position:relative;margin-top:8px;padding:0 2px}
.fit-map-state-banner,.fit-map-state-note{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border:1px solid rgba(196,139,8,.28);border-radius:var(--radius-sm);background:rgba(196,139,8,.08);margin-bottom:10px}
.fit-map-state-banner.hidden{display:none}
.fit-map-state-banner strong,.fit-map-state-note strong{font-size:11px;font-weight:900;line-height:1.2;color:var(--warn)}
.fit-map-state-banner span,.fit-map-state-note span{font-size:10px;line-height:1.35;color:var(--text-dim)}
.work-search-row{display:flex;gap:5px}
.work-search-row input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:12px;color:var(--text);background:var(--bg-surface);outline:none;transition:border-color .15s}
.work-search-row input:focus{border-color:var(--accent);background:var(--bg)}
.work-search-row input::placeholder{color:var(--text-muted)}
#work-clear,#second-anchor-clear{padding:0 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:10px;font-weight:800;color:var(--text-dim);cursor:pointer}
#work-clear:hover,#second-anchor-clear:hover{border-color:var(--accent);color:var(--accent)}
#work-clear.hidden,#second-anchor-clear.hidden{display:none}
#work-search-results,#second-anchor-results{position:absolute;left:8px;right:8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:30;max-height:190px;overflow-y:auto}
#work-search-results{top:72px}
#second-anchor-results{top:55px}
#work-search-results.hidden,#second-anchor-results.hidden{display:none}
.work-anchor-status{font-size:10px;line-height:1.35;color:var(--text-muted);margin-top:7px}
.work-controls{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.work-controls.hidden{display:none}
.fit-map-switch{min-height:32px;display:inline-flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border-light);border-radius:999px;background:linear-gradient(180deg,var(--bg),var(--bg-surface));font-family:var(--font);color:var(--text-dim);cursor:pointer;text-align:left;padding:4px 5px 4px 11px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.03);transition:border-color .16s var(--ease),background .16s var(--ease),box-shadow .16s var(--ease),color .16s var(--ease)}
.fit-map-switch:hover{border-color:rgba(0,87,184,.34);color:var(--accent);box-shadow:0 3px 10px rgba(15,23,42,.06)}
.fit-map-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fit-map-switch-copy{display:flex;align-items:center;min-width:0}
.fit-map-switch-label{font-size:10px;font-weight:900;line-height:1;text-transform:none;letter-spacing:0;color:currentColor;white-space:nowrap}
.fit-map-switch strong{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fit-map-switch-track{position:relative;width:34px;height:20px;border-radius:999px;background:var(--bg-active);box-shadow:inset 0 0 0 1px rgba(15,23,42,.05);flex-shrink:0;transition:background .16s var(--ease),box-shadow .16s var(--ease)}
.fit-map-switch-track span{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.22);transition:transform .16s var(--ease)}
.fit-map-switch.active{border-color:rgba(0,87,184,.35);background:linear-gradient(180deg,rgba(0,87,184,.12),rgba(0,87,184,.06));color:var(--accent);box-shadow:inset 0 0 0 1px rgba(0,87,184,.08),0 3px 12px rgba(0,87,184,.08)}
.fit-map-switch.active .fit-map-switch-track{background:var(--accent);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}
.fit-map-switch.active .fit-map-switch-track span{transform:translateX(14px)}
.work-setting-row{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--text-muted);font-weight:700}
.work-setting-row strong{font-size:11px;color:var(--text)}
#work-budget{width:100%;height:4px;-webkit-appearance:none;appearance:none;background:var(--bg-active);border-radius:2px;outline:none}
#work-budget::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);box-shadow:var(--shadow-sm)}
#work-budget::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);box-shadow:var(--shadow-sm)}
.work-budget-row{display:grid;grid-template-columns:1fr 42px;gap:6px;align-items:center}
#work-budget-clear{height:26px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:850;color:var(--text-dim);cursor:pointer}
#work-budget-clear:hover{border-color:var(--accent);color:var(--accent)}
.second-anchor-block{position:relative;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-light)}
.second-anchor-block.hidden{display:none}
.second-anchor-block .section-label{padding-top:0}
.work-share-profile{height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:10px;font-weight:850;color:var(--accent);cursor:pointer}
.work-share-profile:hover{border-color:var(--accent);background:var(--accent-light)}
/* Shortlist */
.shortlist-section{padding:0;margin-bottom:0}
.shortlist-section.hidden{display:none}
.shortlist-head{display:flex;align-items:center;justify-content:space-between;padding-right:2px}
.shortlist-head .section-label{padding-left:0}
.shortlist-actions{display:flex;align-items:center;gap:4px}
.shortlist-compare{padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:800;color:var(--accent);cursor:pointer;transition:all .14s}
.shortlist-compare:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}
.shortlist-compare:disabled{opacity:.55;cursor:not-allowed;color:var(--text-muted)}
.shortlist-clear:not(:disabled){color:var(--text-dim)}
.shortlist-clear:hover:not(:disabled){background:rgba(201,59,63,.08);border-color:rgba(201,59,63,.32);color:var(--bad)}
.shortlist-note{margin:4px 0 6px;font-size:10px;line-height:1.35;color:var(--text-muted)}
.shortlist-list{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.saved-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;border-top:1px solid var(--border-light)}
.saved-row:first-child{border-top:none}
.saved-main{min-width:0;padding:8px 0;border:none;background:transparent;font-family:var(--font);text-align:left;cursor:pointer}
.saved-main strong{display:block;font-size:12px;font-weight:850;line-height:1.2;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.saved-main span{display:block;margin-top:1px;font-size:10px;line-height:1.3;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.saved-main:hover strong{color:var(--accent)}
.saved-remove{min-width:68px;height:28px;padding:0 8px;border:1px solid var(--border-light);border-radius:999px;background:var(--bg);display:inline-flex;align-items:center;justify-content:center;gap:4px;font-family:var(--font);font-size:9px;font-weight:850;line-height:1;color:var(--text-muted);cursor:pointer;transition:all .14s var(--ease);white-space:nowrap}
.saved-remove span{font-size:14px;line-height:1}
.saved-remove em{font-style:normal}
.saved-remove:hover{background:rgba(201,59,63,.1);color:var(--bad)}
.shortlist-compare:focus-visible,.shortlist-clear:focus-visible,.saved-main:focus-visible,.saved-remove:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.shortlist-empty-note{font-size:10px;line-height:1.35;color:var(--text-muted)}

/* Personality card in detail panel */
.personality-card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:10px 12px;margin-bottom:14px;position:relative}
.personality-card::before{content:'\201C';position:absolute;top:2px;left:8px;font-size:28px;color:var(--accent);opacity:.3;line-height:1}
.personality-text{font-size:12px;color:var(--text-dim);line-height:1.55;font-style:italic;padding-left:16px}
.personality-share{display:inline-block;margin-top:6px;padding:3px 10px;font-size:10px;font-weight:600;color:var(--accent);background:var(--accent-light);border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font)}
.personality-share:hover{background:var(--accent);color:#fff}

/* ═══ Header ═══ */
#header{position:absolute;top:0;left:0;right:0;height:var(--header-h);background:var(--bg);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 12px;z-index:900}
.header-left{display:flex;align-items:center;gap:8px}
.brand-link{text-decoration:none;color:inherit}.brand-link:hover{color:inherit}
.brand h1{font-size:16px;font-weight:800;letter-spacing:0;line-height:1;color:var(--text)}
.accent{color:var(--accent);font-weight:700}
.header-right{display:flex;gap:6px}
.data-badge{padding:2px 8px;background:var(--accent-light);border-radius:var(--radius-sm);font-size:10px;font-weight:600;color:var(--accent);white-space:nowrap}
.mobile-search-trigger{display:none;align-items:center;gap:6px;height:30px;padding:0 11px;border:1px solid var(--border-light);border-radius:999px;background:var(--bg-surface);font-family:var(--font);font-size:12px;font-weight:800;color:var(--text-dim);cursor:pointer}
.mobile-search-trigger svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Mobile task bar */
#mobile-taskbar{display:none}
#mobile-taskbar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ═══ Hamburger ═══ */
#menu-toggle{display:none;flex-direction:column;justify-content:center;gap:3px;width:28px;height:28px;background:none;border:none;cursor:pointer;padding:4px}
#menu-toggle span{display:block;width:16px;height:1.5px;background:var(--text-dim);border-radius:1px;transition:transform .2s var(--ease),opacity .2s}
#menu-toggle.open span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
#menu-toggle.open span:nth-child(2){opacity:0}
#menu-toggle.open span:nth-child(3){transform:translateY(-4.5px) rotate(-45deg)}

/* ═══ Sidebar collapse ═══ */
#sidebar-collapse{width:24px;height:24px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
#sidebar-collapse:hover{background:var(--bg-hover);color:var(--text)}
#sidebar.collapsed ~ #map-wrapper #sidebar-collapse,
.sidebar-collapsed #sidebar-collapse{transform:rotate(180deg)}

/* ═══ Layout ═══ */
#app{position:absolute;top:var(--header-h);left:0;right:0;bottom:0;display:flex;overflow:hidden}

/* ═══ Sidebar ═══ */
#sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:800;transition:width .25s var(--ease),transform .3s var(--ease);overflow:hidden}
#sidebar.collapsed{width:0;border-right:none}
.sidebar-scroll{flex:1;overflow-y:auto;padding:6px 8px}
.workflow-close{display:none}

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes addressAttention{0%,100%{box-shadow:none}18%,78%{box-shadow:0 0 0 3px rgba(0,87,184,.14);border-radius:var(--radius)}}
.search-item{padding:6px 10px;cursor:pointer;font-size:12px;color:var(--text-dim);transition:background .1s}
.search-item:hover,.search-item.active{background:var(--accent-light);color:var(--accent)}
.search-item small{color:var(--text-muted);margin-left:4px}
.search-item-outside{color:var(--text-muted)}
.search-item-outside small{color:var(--warn)}
.search-hint{padding:8px 10px;font-size:11px;color:var(--text-muted);font-style:italic}
.search-group-label{font-style:normal;text-transform:uppercase;letter-spacing:.4px;font-weight:700;padding-bottom:4px}
.search-divider{border-top:1px solid var(--border-light);margin:2px 0}

/* ── Choropleth section (dropdown) ── */
.choropleth-section{padding:0 4px 10px;margin-bottom:0}
.section-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);padding:4px 4px 5px}
#choropleth-select{width:100%;padding:7px 28px 7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-light);outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%230057B8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;transition:border-color .15s}
#choropleth-select:focus{border-color:var(--accent)}
#choropleth-select optgroup{font-weight:700;color:var(--text-dim);font-size:11px}
#choropleth-select option{font-weight:500;color:var(--text);padding:4px}
/* Layer quick-access chips */
.layer-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}
.layer-chip{padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:10px;font-weight:600;color:var(--text-dim);cursor:pointer;transition:all .12s;white-space:nowrap}
.layer-chip.hidden{display:none}
.personal-layer-chip{border-color:rgba(0,87,184,.3);background:var(--accent-light);color:var(--accent)}
.layer-chip:hover{border-color:var(--accent);color:var(--accent)}
.layer-chip.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 3px 10px rgba(0,87,184,.16)}
.choropleth-preview{height:6px;border-radius:3px;margin-top:6px;transition:background .3s}

/* Custom score builder */
.custom-builder{max-height:0;overflow:hidden;transition:max-height .35s var(--ease),opacity .25s;opacity:0;padding:0 4px}
.custom-builder.open{max-height:400px;opacity:1;padding:0 4px 6px}
.cb-card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:10px 12px 8px;box-shadow:var(--shadow-sm)}
.cb-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cb-title{font-size:11px;font-weight:700;color:var(--text)}
.cb-actions{display:flex;gap:4px;align-items:center}
.cb-actions button{min-height:23px;padding:3px 7px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:8px;font-weight:850;color:var(--accent);cursor:pointer}
.cb-actions button:hover{border-color:var(--accent);background:var(--accent-light)}
.cb-badge{font-size:8px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--accent);background:var(--accent-light);padding:2px 7px;border-radius:var(--radius-sm)}
.cb-rows{display:flex;flex-direction:column;gap:5px}
.cb-row{display:grid;grid-template-columns:95px 1fr 40px;align-items:center;gap:6px}
.cb-label{font-size:10px;color:var(--text-muted);font-weight:500;transition:color .15s}
.cb-slider{width:100%;height:3px;-webkit-appearance:none;appearance:none;background:var(--bg-active);border-radius:2px;outline:none;cursor:pointer;transition:background .15s}
.cb-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--border);border:none;cursor:pointer;transition:all .15s;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.cb-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--border);border:none;cursor:pointer;transition:all .15s;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.cb-row.active .cb-slider::-webkit-slider-thumb{background:var(--accent);transform:scale(1.15)}
.cb-row.active .cb-slider::-moz-range-thumb{background:var(--accent);transform:scale(1.15)}
.cb-row.active .cb-label{color:var(--text);font-weight:600}
.cb-dots{font-size:9px;letter-spacing:1px;color:var(--border);text-align:right;line-height:1;user-select:none}
.cb-row.active .cb-dots{color:var(--accent)}
.cb-budget{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:8px;padding:5px 0;font-size:10px;font-weight:600;color:var(--text-dim)}
.cb-budget-label{color:var(--text-muted);font-weight:500}
#cb-budget-count{font-size:12px;font-weight:800;color:var(--accent);min-width:14px;text-align:center}
#cb-budget-count.low{color:var(--warn)}
#cb-budget-count.empty{color:var(--bad)}
.cb-row.maxed .cb-slider::-webkit-slider-thumb{background:var(--border)!important;cursor:not-allowed}
.cb-row.maxed .cb-slider::-moz-range-thumb{background:var(--border)!important;cursor:not-allowed}
.cb-footer{font-size:9px;color:var(--text-muted);text-align:center;margin-top:4px;padding-top:6px;border-top:1px solid var(--border-light)}

.cb-label[data-tip]{cursor:help;position:relative}
.cb-label[data-tip]:hover::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 6px);width:190px;padding:6px 8px;background:var(--text);color:var(--bg);font-size:10px;font-weight:400;line-height:1.4;border-radius:var(--radius-sm);z-index:100;pointer-events:none;white-space:normal;box-shadow:var(--shadow)}
.cb-label[data-tip]:hover::before{content:'';position:absolute;left:12px;top:calc(100% + 2px);border:4px solid transparent;border-bottom-color:var(--text);z-index:100}

/* ── Points section (collapsible checkboxes) ── */
.points-section{padding:0 4px;margin:0}
.location-suggestion{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:0 0 6px;padding:8px 9px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-surface)}
.location-suggestion.active{border-color:rgba(26,143,71,.22);background:rgba(26,143,71,.045)}
.location-suggestion>div{min-width:0}
.location-suggestion span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.42px;color:var(--text-muted);line-height:1.2}
.location-suggestion strong{display:block;margin-top:2px;font-size:12px;font-weight:950;line-height:1.15;color:var(--text)}
.location-suggestion em{display:block;margin-top:2px;font-size:9px;font-style:normal;line-height:1.25;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.location-suggestion button{min-width:34px;min-height:27px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:900;color:var(--accent);cursor:pointer;white-space:nowrap;text-align:center}
.location-suggestion.active button{border-color:rgba(26,143,71,.28);background:#fff;color:var(--good)}
.points-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.points-header{display:flex;align-items:center;gap:6px;width:100%;min-width:0;background:none;border:none;cursor:pointer;padding:6px 4px;font-family:var(--font);border-radius:var(--radius-sm);transition:background .12s}
.points-header:hover{background:var(--bg-hover)}
.points-header span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.points-active-count{display:inline-flex;align-items:center;height:16px;padding:0 6px;border-radius:999px;background:var(--accent-light);color:var(--accent);font-size:8px;font-style:normal;font-weight:900;line-height:1;letter-spacing:.35px;text-transform:uppercase;white-space:nowrap}
.points-active-count.hidden{display:none}
.points-chevron{margin-left:auto;color:var(--text-muted);transition:transform .2s var(--ease);flex-shrink:0}
.points-header[aria-expanded="true"] .points-chevron{transform:rotate(90deg)}
.points-clear{height:24px;padding:0 8px;border:1px solid var(--border-light);border-radius:999px;background:var(--bg);font-family:var(--font);font-size:9px;font-weight:900;color:var(--text-muted);cursor:pointer;transition:all .12s var(--ease)}
.points-clear:hover{border-color:rgba(0,87,184,.28);background:var(--accent-light);color:var(--accent)}
.points-clear.hidden{display:none}
.points-body{max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
.points-body.open{max-height:1200px}

/* Point toggles */
.point-section{border-top:1px solid var(--border-light);padding-top:2px;margin-top:2px}
.subgroup-label{font-size:9px;font-weight:600;color:var(--text-muted);padding:6px 8px 1px;letter-spacing:.3px}
.point-toggle{display:flex;align-items:center;gap:7px;padding:4px 8px;cursor:pointer;border-radius:var(--radius-sm);font-size:11px;color:var(--text-dim);font-weight:500;transition:background .12s;user-select:none}
.point-toggle:hover{background:var(--bg-hover);color:var(--text)}
.point-toggle input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:14px;height:14px;border:1.5px solid var(--border);border-radius:3px;cursor:pointer;flex-shrink:0;transition:all .12s;position:relative}
.point-toggle input:checked{background:var(--accent);border-color:var(--accent)}
.point-toggle input:checked::after{content:'';position:absolute;left:3px;top:0;width:4px;height:7px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.pt-dot{width:6px;height:6px;border-radius:50%;background:var(--c);flex-shrink:0}
.pt-count{color:var(--text-muted);font-size:9px;font-weight:400}
.point-toggle.loading{opacity:.5;pointer-events:none}
.point-toggle.loading::after{content:'';width:10px;height:10px;border:1.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;margin-left:auto;flex-shrink:0}

.sidebar-footer{padding:10px 8px 6px;border-top:1px solid var(--border-light);margin-top:4px}
.sidebar-footer p{font-size:10px;color:var(--text-muted);line-height:1.5}

/* ═══ Map ═══ */
#map-wrapper{position:relative;flex:1;min-width:0}
#map{width:100%;height:100%;background:var(--bg-surface)}
.leaflet-container{background:var(--bg-surface)!important;font-family:var(--font)!important}
.leaflet-tile-pane{filter:saturate(1.12) contrast(1.08) brightness(1)}
.choropleth-shape{mix-blend-mode:normal;filter:saturate(1.24);transition:fill-opacity .18s var(--ease),stroke .18s var(--ease),stroke-width .18s var(--ease)}
.district-map-label{background:transparent!important;border:0!important;box-shadow:none!important;pointer-events:none!important;text-align:center!important}
.district-map-label span{display:inline-block;max-width:96px;font-family:var(--font);font-size:9px;font-weight:900;letter-spacing:.01em;line-height:1.15;color:rgba(26,31,54,.66);text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 0 rgba(255,255,255,.96),0 0 5px rgba(255,255,255,.88)}
.leaflet-control-zoom{border:1px solid var(--border)!important;border-radius:var(--radius)!important;overflow:hidden;box-shadow:var(--shadow-sm)!important}
.leaflet-control-zoom a{background:var(--bg)!important;color:var(--text-dim)!important;border-color:var(--border-light)!important;width:28px!important;height:28px!important;line-height:28px!important;font-size:14px!important}
.leaflet-control-zoom a:hover{background:var(--bg-surface)!important;color:var(--text)!important}
.leaflet-control-attribution{background:rgba(255,255,255,.8)!important;color:var(--text-muted)!important;font-size:9px!important}
.leaflet-control-attribution a{color:var(--text-dim)!important}
.personal-map-off{position:absolute;top:10px;right:10px;z-index:1000;display:flex;align-items:center;gap:8px;min-height:42px;max-width:190px;padding:7px 9px 7px 8px;border:1px solid rgba(0,87,184,.18);border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 8px 22px rgba(0,20,60,.14);font-family:var(--font);line-height:1.12;color:var(--accent);cursor:pointer;backdrop-filter:blur(12px)}
.fit-pill-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(0,87,184,.12);flex:0 0 auto}
.personal-map-off .fit-pill-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.personal-map-off .fit-pill-copy span{font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.45px;color:var(--accent)}
.personal-map-off strong{max-width:116px;font-size:10px;font-weight:950;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.personal-map-off em{align-self:center;padding:4px 7px;border-radius:999px;background:rgba(0,87,184,.08);font-size:9px;font-style:normal;font-weight:900;color:var(--accent);white-space:nowrap}
.personal-map-off.inactive{border-color:rgba(74,82,104,.18);color:var(--text-dim)}
.personal-map-off.inactive .fit-pill-dot{background:var(--text-muted);box-shadow:0 0 0 4px rgba(142,150,168,.14)}
.personal-map-off.inactive .fit-pill-copy span,.personal-map-off.inactive em{color:var(--text-dim)}
.personal-map-off.inactive em{background:rgba(74,82,104,.08)}
.personal-map-off:hover{border-color:rgba(0,87,184,.36);box-shadow:0 10px 28px rgba(0,20,60,.18);transform:translateY(-1px)}
.personal-map-off.hidden{display:none}
@media (min-width:769px){
    #map-wrapper.panel-open .personal-map-off{z-index:840}
    #map-wrapper.detail-panel-open .personal-map-off{right:calc(var(--detail-w) + 18px)}
    #map-wrapper.compare-panel-open .personal-map-off{right:calc(min(720px,90vw) + 18px)}
}

/* Point filter */
#point-filter{position:absolute;top:12px;right:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;z-index:1000;box-shadow:var(--shadow-sm);font-size:11px}
#point-filter.hidden{display:none}
#point-filter select{font-family:var(--font);font-size:11px;padding:3px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg);color:var(--text)}

/* ═══ Tooltip ═══ */
.map-tooltip{background:var(--bg)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;padding:6px 10px!important;font-family:var(--font)!important;font-size:11px!important;line-height:1.4!important;box-shadow:var(--shadow-md)!important;white-space:nowrap!important}
.map-tooltip .tooltip-name{font-weight:700;font-size:12px}
.map-tooltip .tooltip-meta{color:var(--text-muted)}
.map-tooltip .tooltip-value{color:var(--accent);font-weight:600}
.leaflet-tooltip-top::before{border-top-color:var(--border)!important}
.leaflet-tooltip-bottom::before{border-bottom-color:var(--border)!important}
.leaflet-tooltip-left::before{border-left-color:var(--border)!important}
.leaflet-tooltip-right::before{border-right-color:var(--border)!important}

/* ═══ Legend ═══ */
#legend{position:absolute;bottom:12px;left:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:8px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;z-index:1000;box-shadow:var(--shadow-md);max-width:420px;opacity:0;transition:opacity .3s}
#legend.visible{opacity:1}
.legend-top{display:flex;align-items:center;gap:8px;width:100%}
.legend-label{font-size:11px;font-weight:700;color:var(--text);white-space:nowrap;cursor:pointer}
.legend-min,.legend-max{font-size:10px;color:var(--text-muted);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.legend-gradient{width:120px;height:8px;border-radius:4px;border:1px solid var(--border-light);flex-shrink:0}
.legend-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:0 0 0 6px;margin-left:auto;line-height:1;flex-shrink:0}
.legend-close:hover{color:var(--bad)}
.legend-context{font-size:10px;font-weight:750;line-height:1.35;color:var(--accent);background:var(--accent-light);border:1px solid rgba(0,87,184,.14);border-radius:var(--radius-sm);padding:5px 7px;width:100%;box-sizing:border-box}
.legend-body{display:flex;flex-direction:column;gap:3px;width:100%}
.legend-desc{font-size:10px;color:var(--text-dim);line-height:1.35}
.legend-updated{font-size:9px;color:var(--text-muted)}
.legend-meta-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.legend-confidence{display:inline-flex;align-items:center;padding:2px 6px;border-radius:var(--radius-sm);font-size:9px;font-weight:800}
.legend-confidence.high{background:rgba(26,143,71,.1);color:var(--good)}
.legend-confidence.medium{background:rgba(196,139,8,.12);color:var(--warn)}
.legend-confidence.modelled{background:rgba(74,82,104,.1);color:var(--text-dim)}
.legend-method{border:none;background:none;padding:2px 0;font-family:var(--font);font-size:9px;font-weight:800;color:var(--accent);cursor:pointer}
.legend-method:hover{color:var(--accent-hover)}

/* ═══ Loading ═══ */
#loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;background:var(--bg);padding:10px 20px;border-radius:var(--radius);border:1px solid var(--border);z-index:1000;color:var(--text-dim);font-size:12px;box-shadow:var(--shadow-md);transition:opacity .3s}
#loading.hidden{opacity:0;pointer-events:none}
.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ═══ Choropleth fade-in ═══ */
@keyframes fadeInLayer{from{opacity:0}to{opacity:1}}
.layer-fade-in{animation:fadeInLayer .4s ease}

/* ═══ Close buttons ═══ */
.workflow-close,#close-detail,#close-compare{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(216,221,230,.92);border-radius:50%;background:rgba(255,255,255,.94);box-shadow:var(--shadow-sm);color:var(--text-muted);font-size:14px;line-height:1;cursor:pointer;z-index:6;backdrop-filter:blur(8px);transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s}
.workflow-close:hover,#close-detail:hover,#close-compare:hover{border-color:rgba(201,59,63,.35);background:#fff;color:var(--bad);box-shadow:var(--shadow-md)}
.workflow-close{display:none}

/* ═══ Detail Panel ═══ */
#detail{position:absolute;top:0;right:0;bottom:0;width:var(--detail-w);max-width:100%;background:var(--bg);border-left:1px solid var(--border);z-index:850;transform:translateX(100%);transition:transform .3s var(--ease);overflow-y:auto;overflow-x:hidden;box-shadow:-4px 0 20px rgba(0,20,60,.06);contain:layout style paint}
#detail.visible{transform:translateX(0)}

/* Hide map controls when panel is open (class toggled by JS) */
#map-wrapper.panel-open #legend,
#map-wrapper.panel-open #point-filter,
#map-wrapper.panel-open .leaflet-control-zoom,
#map-wrapper.panel-open .leaflet-control-attribution{opacity:0;pointer-events:none;transition:opacity .15s}
#close-detail{position:sticky;top:8px;float:none;margin:8px 8px -40px auto}
#detail-content{padding:14px 14px 20px;overflow:hidden;word-break:break-word}
#detail-content *{max-width:100%;min-width:0}

.detail-hero{padding:2px 0 6px;margin-bottom:10px}
.detail-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px;padding-right:34px}
.detail-report-label{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.55px;color:var(--accent);margin-bottom:3px}
.detail-hero h2{font-size:22px;font-weight:900;letter-spacing:0;color:var(--text);line-height:1.05;margin-bottom:4px}
.detail-hero .detail-vibe{margin-left:0;margin-top:1px;white-space:nowrap}
.detail-actions-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin:10px 0 12px}
.district-actions-row{margin-top:0}
.detail-brief{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.detail-score.compact{margin-bottom:0}
.brief-copy{font-size:12px;line-height:1.5;color:var(--text-dim);padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius)}
.trust-strip{margin-bottom:12px;padding:9px 10px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg)}
.trust-strip.compact{margin-top:10px;margin-bottom:0;background:var(--bg-surface)}
.trust-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.trust-title span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);line-height:1.2}
.trust-title button{border:none;background:none;padding:0;font-family:var(--font);font-size:9px;font-weight:850;color:var(--accent);cursor:pointer;white-space:nowrap}
.trust-title button:hover{color:var(--accent-hover)}
.trust-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.trust-items div{min-width:0}
.trust-items span{display:block;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.35px;color:var(--text-muted);line-height:1.2}
.trust-items strong{display:block;margin-top:2px;font-size:10px;line-height:1.25;font-weight:850;color:var(--text);overflow-wrap:anywhere}
.trust-items strong.high{color:var(--good)}
.trust-items strong.medium{color:var(--warn)}
.trust-items strong.modelled{color:var(--text-dim)}
.trust-strip p{margin-top:6px;padding-top:6px;border-top:1px solid var(--border-light);font-size:9px;line-height:1.35;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quick-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}
.quick-stat{padding:8px 9px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);min-width:0}
.quick-stat .quick-label{display:block;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted);margin-bottom:2px}
.quick-stat strong{display:block;font-size:13px;font-weight:850;color:var(--text);line-height:1.15}
.quick-stat span:last-child{display:block;font-size:9px;color:var(--text-muted);line-height:1.25;margin-top:2px}
.decision-facts{margin-bottom:10px}
.report-drawer{border:1px solid var(--border-light);border-radius:var(--radius);padding:0;margin-bottom:10px;overflow:hidden;background:var(--bg)}
.report-drawer>summary{cursor:pointer;list-style:none;padding:10px 11px;background:var(--bg-surface);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.report-drawer>summary::-webkit-details-marker{display:none}
.report-drawer>summary::after{content:'+';float:right;font-size:13px;line-height:1;color:var(--text-muted)}
.report-drawer[open]>summary::after{content:'-'}
.report-drawer-body{padding:10px}
.report-drawer-body .trust-strip,.report-drawer-body .rank-strip,.report-drawer-body .change-panel,.report-drawer-body .micro-panel,.report-drawer-body .zone-panel,.report-drawer-body .next-panel,.report-drawer-body .advice-grid,.report-drawer-body .alternatives-section,.report-drawer-body .personality-card,.report-drawer-body .detail-insights,.report-drawer-body .detail-metrics,.report-drawer-body .news-feed{margin-bottom:10px}
.report-drawer-body>*:last-child{margin-bottom:0!important}
.personal-fit-panel{margin-bottom:12px;padding:10px;border:1px solid rgba(0,87,184,.18);border-radius:var(--radius);background:var(--bg-surface)}
.personal-fit-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.personal-fit-head span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);line-height:1.2}
.personal-fit-head strong{display:block;font-size:13px;font-weight:900;color:var(--text);line-height:1.2;margin-top:1px}
.personal-fit-head em{width:42px;height:42px;border:2px solid;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:15px;font-weight:900;background:var(--bg);flex-shrink:0}
.fit-breakdown{display:flex;flex-direction:column;gap:5px}
.fit-break-row{display:grid;grid-template-columns:58px 1fr minmax(88px,auto);align-items:center;gap:8px}
.fit-break-row span{font-size:10px;font-weight:700;color:var(--text-dim)}
.fit-break-row strong{font-size:10px;font-weight:850;color:var(--text);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fit-break-row.muted span,.fit-break-row.muted strong{color:var(--text-muted)}
.personal-fit-panel p{font-size:10px;line-height:1.35;color:var(--text-muted);margin-top:8px}
.fit-confidence{margin-top:6px;padding-top:6px;border-top:1px solid var(--border-light);font-size:9px;line-height:1.35;color:var(--text-muted)}
.fit-settings{margin-bottom:9px;padding:8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.fit-settings-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.fit-settings-title{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted);line-height:1.2}
.fit-settings-head strong{font-size:11px;font-weight:950;color:var(--text);white-space:nowrap}
.fit-settings-head .fit-map-switch{height:32px;min-width:126px;white-space:nowrap}
.fit-range-row{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--text-muted);font-weight:700;margin-top:7px}
.fit-range-row strong{font-size:11px;color:var(--text)}
.fit-settings input[type=range]{width:100%;height:24px;-webkit-appearance:none;appearance:none;background:transparent;outline:none;cursor:pointer}
.fit-settings input[type=range]::-webkit-slider-runnable-track{height:4px;background:var(--bg-active);border-radius:2px}
.fit-settings input[type=range]::-moz-range-track{height:4px;background:var(--bg-active);border-radius:2px}
.fit-settings input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);box-shadow:var(--shadow-sm);cursor:pointer}
.fit-settings input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);box-shadow:var(--shadow-sm)}
.fit-budget-row{display:grid;grid-template-columns:1fr 42px;gap:6px;align-items:center}
.fit-budget-row button{height:26px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:850;color:var(--text-dim);cursor:pointer}
.fit-budget-row button:hover{border-color:var(--accent);color:var(--accent)}
.fit-budget-row button:disabled{opacity:.45;cursor:default}
.rank-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:12px}
.rank-tile{padding:8px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);min-width:0}
.rank-tile.good{border-color:rgba(26,143,71,.28);background:rgba(26,143,71,.045)}
.rank-tile.watch{border-color:rgba(201,59,63,.24);background:rgba(201,59,63,.04)}
.rank-tile span{display:block;font-size:8px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);line-height:1.25}
.rank-tile strong{display:block;font-size:16px;font-weight:900;color:var(--text);line-height:1.05;margin-top:3px}
.rank-tile.good strong{color:var(--good)}
.rank-tile.watch strong{color:var(--bad)}
.rank-tile em{display:block;font-style:normal;font-size:9px;color:var(--text-muted);line-height:1.25;margin-top:3px}
.change-panel{margin-bottom:14px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-surface);padding:10px}
.change-panel-title{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px}
.change-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:7px}
.change-signal{padding:8px 9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);min-width:0}
.change-signal.good{border-color:rgba(26,143,71,.24)}
.change-signal.mid{border-color:rgba(196,139,8,.24)}
.change-signal.watch{border-color:rgba(201,59,63,.24)}
.change-signal span{display:block;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);line-height:1.25}
.change-signal strong{display:block;font-size:12px;font-weight:850;color:var(--text);margin-top:3px;line-height:1.2}
.change-signal.good strong{color:var(--good)}
.change-signal.mid strong{color:var(--warn)}
.change-signal.watch strong{color:var(--bad)}
.change-signal p{font-size:10px;line-height:1.35;color:var(--text-dim);margin-top:4px}
.micro-panel{margin-bottom:14px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg);overflow:hidden}
.micro-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;background:var(--bg-surface);border-bottom:1px solid var(--border-light)}
.micro-head span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.micro-head strong{font-size:11px;font-weight:850;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.micro-list{display:flex;flex-direction:column}
.micro-item{display:grid;grid-template-columns:108px 1fr;gap:8px;padding:9px 10px;border-top:1px solid var(--border-light)}
.micro-item:first-child{border-top:none}
.micro-item strong{font-size:11px;line-height:1.25;color:var(--text)}
.micro-item span{font-size:10px;line-height:1.4;color:var(--text-dim)}
.micro-item.good strong{color:var(--good)}
.micro-item.mid strong{color:var(--warn)}
.micro-item.watch strong{color:var(--bad)}
.zone-panel{margin-bottom:14px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-surface);padding:10px}
.zone-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.zone-panel-head span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.zone-panel-head strong{font-size:11px;font-weight:850;color:var(--text);white-space:nowrap}
.zone-placeholder{font-size:10px;line-height:1.45;color:var(--text-dim);margin-bottom:8px}
.zone-summary{font-size:10px;line-height:1.45;color:var(--text-dim);margin:0 0 8px}
.zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.zone-metric{padding:8px 9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);min-width:0}
.zone-metric span{display:block;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);line-height:1.25}
.zone-metric strong{display:block;font-size:11px;font-weight:850;color:var(--text);line-height:1.25;margin-top:3px}
.zone-metric em{display:block;font-size:9px;font-style:normal;color:var(--text-dim);line-height:1.3;margin-top:2px}
.zone-insights{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:8px}
.zone-insight{display:grid;grid-template-columns:92px 1fr;gap:5px 8px;padding:8px 9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);min-width:0}
.zone-insight span{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.35px;color:var(--text-muted);line-height:1.25}
.zone-insight strong{font-size:11px;font-weight:850;color:var(--text);line-height:1.25}
.zone-insight em{grid-column:2;font-size:9px;font-style:normal;color:var(--text-dim);line-height:1.3}
.zone-rows{display:flex;flex-direction:column;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);overflow:hidden;margin-bottom:8px}
.zone-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 9px;border-top:1px solid var(--border-light);min-width:0}
.zone-row:first-child{border-top:none}
.zone-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.zone-row-main strong{font-size:11px;font-weight:850;color:var(--text);line-height:1.25}
.zone-row-main span{font-size:9px;color:var(--text-dim);line-height:1.3}
.zone-row-stats{display:flex;flex-direction:column;align-items:flex-end;gap:1px;min-width:70px}
.zone-row-stats span{font-size:9px;color:var(--text-muted);line-height:1.2;white-space:nowrap}
.zone-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.zone-action{width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:10px;font-weight:850;color:var(--accent);cursor:pointer;transition:all .14s}
.zone-action:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.zone-action.secondary{color:var(--text-dim)}
.zone-action.secondary:hover{color:#fff}
.next-panel{margin-bottom:14px}
.next-panel-title{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px}
.next-action-grid{display:grid;grid-template-columns:1fr;gap:6px}
.next-action{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:9px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);font-family:var(--font);text-align:left;cursor:pointer;transition:all .14s}
.next-action:hover{border-color:var(--accent);background:var(--accent-light)}
.next-action.primary{border-color:rgba(0,87,184,.28);background:rgba(0,87,184,.045)}
.next-action.done{border-color:rgba(26,143,71,.28);background:rgba(26,143,71,.045)}
.next-action strong{font-size:11px;font-weight:850;color:var(--text);line-height:1.25}
.next-action.primary strong{color:var(--accent)}
.next-action.done strong{color:var(--good)}
.next-action span{font-size:10px;line-height:1.35;color:var(--text-dim)}
.advice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.advice-block{border:1px solid rgba(26,143,71,.25);background:rgba(26,143,71,.045);border-radius:var(--radius);padding:9px}
.advice-block.watch{border-color:rgba(196,139,8,.28);background:rgba(196,139,8,.055)}
.advice-title{font-size:9px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.advice-item{display:flex;flex-direction:column;gap:1px;padding:6px 0;border-top:1px solid rgba(0,20,60,.06)}
.advice-item:first-of-type{border-top:none;padding-top:0}
.advice-item strong{font-size:11px;color:var(--text);line-height:1.25}
.advice-item span{font-size:10px;color:var(--text-dim);line-height:1.35}
.alternatives-section{margin-bottom:14px}
.alt-label{padding-left:0!important}
.alt-card{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:6px}
.alt-main{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:8px 10px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;text-align:left;transition:all .14s var(--ease)}
.alt-main:hover{background:var(--accent-light);border-color:var(--accent)}
.alt-main:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.alt-name{font-size:12px;font-weight:800;color:var(--text);line-height:1.25;width:100%}
.alt-reason{font-size:10px;color:var(--text-muted);line-height:1.35;margin-top:2px;width:100%}
.detail-header{margin-bottom:12px}
.detail-header h2{font-size:18px;font-weight:800;letter-spacing:0;color:var(--text);margin-bottom:3px}
.detail-kreis{font-size:11px;font-weight:600;color:var(--text-muted)}
.detail-vibe{display:inline-block;margin-left:6px;padding:1px 7px;background:var(--accent-light);color:var(--accent);border-radius:var(--radius-sm);font-size:10px;font-weight:600}

.detail-score{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius);margin-bottom:12px}
.score-circle{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;flex-shrink:0;border:2.5px solid;background:var(--bg)}
.score-meta{flex:1}
.score-label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}
.score-sublabel{font-size:10px;color:var(--text-muted);margin-top:1px}

.detail-desc{font-size:12px;line-height:1.5;color:var(--text-dim);margin-bottom:14px;padding:10px 12px;background:var(--bg-surface);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.detail-data-summary{font-size:11px;color:var(--text);margin-bottom:4px;font-weight:500}

.rent-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px;max-width:100%}
.rent-item{padding:8px 10px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-sm)}
.rent-item.highlighted{border-color:var(--accent);background:var(--accent-light)}
.rent-rooms{font-size:10px;color:var(--text-muted);font-weight:500}
.rent-price{font-size:14px;font-weight:700;color:var(--text);margin-top:1px}
.rent-item.highlighted .rent-price{color:var(--accent)}

/* Rent Intelligence */
.rent-intel{margin-bottom:14px}
.ri-room-pills{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:10px}
.ri-pill{flex:1;padding:5px;background:var(--bg);border:none;border-right:1px solid var(--border);font-family:var(--font);font-size:10px;font-weight:600;color:var(--text-dim);cursor:pointer;transition:all .12s;text-align:center}
.ri-pill:last-child{border-right:none}
.ri-pill.active{background:var(--accent);color:#fff}
.ri-pill:hover:not(.active){background:var(--bg-hover)}

.ri-range{margin-bottom:10px}
.ri-range-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--text-muted);margin-bottom:3px}
.ri-range-bar{position:relative;height:14px;background:var(--bg-active);border-radius:7px;overflow:visible;margin-bottom:4px}
.ri-seg{position:absolute;top:0;height:100%;border-radius:7px}
.ri-seg-outer{background:var(--accent-light)}
.ri-seg-iqr{background:var(--accent);opacity:0.35}
.ri-marker{position:absolute;top:-2px;width:2px;height:18px;border-radius:1px}
.ri-median{background:var(--text);z-index:2}
.ri-median span{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:700;white-space:nowrap;color:var(--text)}
.ri-range-footer{font-size:9px;color:var(--text-muted);text-align:center}

.ri-market-box{padding:8px 10px;background:#fff3e0;border:1px solid #ffe0b2;border-radius:var(--radius-sm);margin-bottom:8px}
.ri-market-label{font-size:9px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}
.ri-market-price{font-size:16px;font-weight:800;color:var(--bad)}
.ri-market-suffix{font-size:11px;font-weight:500;color:var(--text-dim)}
.ri-market-gap{font-size:10px;color:var(--text-dim)}

.ri-coop{font-size:10px;color:var(--text-dim);margin-bottom:6px;padding:5px 8px;background:var(--bg-surface);border-radius:var(--radius-sm)}
.ri-spread{font-size:10px;color:var(--text-dim);margin-bottom:6px}

.ri-explain{font-size:10px;color:var(--text-dim);margin-bottom:8px}
.ri-explain summary{cursor:pointer;color:var(--accent);font-weight:500}
.ri-explain p{margin:4px 0 0;line-height:1.5}
.ri-no-data{font-size:11px;color:var(--text-muted);padding:8px 0}

@media(prefers-color-scheme:dark){
.ri-market-box{background:#3e2723;border-color:#5d4037}
}

.detail-metrics{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.metric-row{display:grid;grid-template-columns:85px 1fr 68px;align-items:center;gap:8px;padding:2px 4px;border-radius:3px;transition:background .15s}
.metric-row.metric-active{background:var(--accent-light)}
.metric-label{font-size:11px;color:var(--text-dim);font-weight:500}
.metric-bar{height:5px;background:var(--bg-hover);border-radius:3px;overflow:hidden}
.metric-bar-fill{height:100%;border-radius:3px;transition:width .4s var(--ease);min-width:2px}
.metric-bar-fill.good{background:var(--good)}.metric-bar-fill.warn{background:var(--warn)}.metric-bar-fill.bad{background:var(--bad)}.metric-bar-fill.neutral{background:var(--neutral)}
.metric-value{font-size:11px;font-weight:600;color:var(--text);text-align:right;font-variant-numeric:tabular-nums}

.detail-tax{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);margin-bottom:12px}
.detail-tax .tax-label{font-size:11px;color:var(--text-dim)}
.detail-tax .tax-value{font-size:13px;font-weight:700;color:var(--warn)}
.detail-tax .tax-note{font-size:10px;color:var(--text-muted);margin-top:1px}

.detail-actions{display:flex;gap:8px;margin-top:12px}
/* Save CTA at top */
.btn-compare-top{display:block;width:100%;padding:8px 14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:12px;font-weight:700;cursor:pointer;transition:background .15s;text-align:center}
.btn-compare-top:hover{background:var(--accent-hover)}
.shortlist-toggle.saved{background:rgba(26,143,71,.08);border-color:rgba(26,143,71,.35);color:var(--good)}
.district-compare-action{background:var(--text)}
.district-compare-action:hover{background:#334155}

.metric-drawer{border:1px solid var(--border-light);border-radius:var(--radius);padding:0;margin-bottom:14px;overflow:hidden}
.metric-drawer summary{cursor:pointer;list-style:none;padding:9px 11px;background:var(--bg-surface);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.metric-drawer summary::-webkit-details-marker{display:none}
.metric-drawer summary::after{content:'+';float:right;font-size:13px;line-height:1;color:var(--text-muted)}
.metric-drawer[open] summary::after{content:'-'}
.drawer-metrics{padding:9px 8px 10px;margin-bottom:0}

/* Dynamic insights */
.detail-insights{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}
.insight-item{font-size:11px;color:var(--text-dim);line-height:1.45;padding:5px 8px 5px 12px;border-left:2px solid var(--accent);background:var(--bg-surface);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.insight-item strong{color:var(--text);font-weight:600}

/* News feed */
.news-feed{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}
.news-item{display:block;padding:8px 10px;border-radius:var(--radius-sm);text-decoration:none;transition:background .12s;border:1px solid var(--border-light)}
.news-item:hover{background:var(--bg-hover)}
.news-title{display:block;font-size:11px;font-weight:500;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-meta{display:block;font-size:9px;color:var(--text-muted);margin-top:2px}
.news-empty{font-size:11px;color:var(--text-muted);font-style:italic;padding:8px 0}
.news-loading{font-size:11px;color:var(--text-muted);padding:8px 0}

/* Address insight */
.address-header{font-size:13px;font-weight:600;color:var(--accent);margin-bottom:2px;word-break:break-word;overflow-wrap:break-word;max-width:100%}
.address-quartier{font-size:11px;color:var(--text-muted);margin-bottom:10px}
.address-quartier a{color:var(--accent);cursor:pointer;text-decoration:underline}
.address-fit-card{margin-bottom:12px;padding:11px;border:1px solid rgba(0,87,184,.18);border-radius:var(--radius);background:linear-gradient(180deg,rgba(0,87,184,.045),var(--bg))}
.address-fit-card.good{border-color:rgba(26,143,71,.25);background:rgba(26,143,71,.045)}
.address-fit-card.mid{border-color:rgba(196,139,8,.24);background:rgba(196,139,8,.055)}
.address-fit-card.watch{border-color:rgba(201,59,63,.24);background:rgba(201,59,63,.04)}
.address-fit-head{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;margin-bottom:9px}
.address-fit-head span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);line-height:1.2}
.address-fit-head strong{display:block;margin-top:2px;font-size:16px;font-weight:950;line-height:1.15;color:var(--text)}
.address-fit-head p{margin-top:3px;font-size:10px;line-height:1.35;color:var(--text-dim)}
.address-fit-head>em{width:58px;height:58px;min-width:58px;max-width:58px;aspect-ratio:1/1;border-radius:50%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;border:2px solid var(--accent);background:var(--bg);font-size:18px;font-style:normal;font-weight:950;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.address-fit-card.good .address-fit-head>em{border-color:var(--good);color:var(--good)}
.address-fit-card.mid .address-fit-head>em{border-color:var(--warn);color:var(--warn)}
.address-fit-card.watch .address-fit-head>em{border-color:var(--bad);color:var(--bad)}
.address-profile-bridge{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-1px 0 8px;padding:8px 9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.address-profile-bridge.active{border-color:rgba(0,87,184,.2);background:var(--accent-light)}
.address-profile-bridge div{min-width:0}
.address-profile-bridge span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted);line-height:1.2}
.address-profile-bridge strong{display:block;margin-top:2px;font-size:12px;font-weight:950;line-height:1.15;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-profile-bridge em{display:block;margin-top:2px;font-size:10px;font-style:normal;line-height:1.25;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-profile-bridge button{flex:0 0 auto;min-height:26px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:850;color:var(--accent);cursor:pointer}
.address-goals{display:flex;gap:4px;overflow-x:auto;padding-bottom:5px;margin-bottom:7px;scrollbar-width:none}
.address-goals::-webkit-scrollbar{display:none}
.address-goals button{flex:0 0 auto;min-height:28px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:850;color:var(--text-dim);cursor:pointer;white-space:nowrap}
.address-goals button.active{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}
.address-fit-card .unified-fit-settings{margin-bottom:8px;background:rgba(255,255,255,.68)}
.address-fit-evidence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.address-fit-evidence div{min-width:0;padding:7px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.address-fit-evidence span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.38px;color:var(--text-muted);line-height:1.2}
.address-fit-evidence strong{display:block;margin-top:2px;font-size:11px;font-weight:950;line-height:1.2;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-fit-evidence .good strong{color:var(--good)}
.address-fit-evidence .mid strong{color:var(--warn)}
.address-fit-evidence .watch strong{color:var(--bad)}
.address-priority-section{margin-bottom:12px}
.address-priority-section>.section-label{padding:0 0 4px}
.address-summary-note{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-bottom:12px;padding:9px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface)}
.address-summary-note p{font-size:11px;line-height:1.4;color:var(--text-dim)}
.address-summary-note strong{color:var(--text);font-weight:900}
.address-summary-note button{min-height:28px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:850;color:var(--accent);cursor:pointer;white-space:nowrap}
.address-summary-note button:hover{border-color:var(--accent);background:var(--accent-light)}
.local-radar{margin-bottom:12px;padding:11px;border:1px solid rgba(0,87,184,.18);border-radius:var(--radius);background:linear-gradient(180deg,rgba(0,87,184,.045),var(--bg))}
.local-radar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
.local-radar-head span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);line-height:1.2}
.local-radar-head strong{display:block;margin-top:2px;font-size:16px;line-height:1.15;font-weight:950;color:var(--text)}
.local-radar-head em{flex-shrink:0;padding:3px 7px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);font-size:9px;font-style:normal;font-weight:850;color:var(--text-muted);white-space:nowrap}
.radar-radius{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:2px;margin-bottom:9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.radar-radius button{min-height:26px;border:0;border-radius:4px;background:transparent;font-family:var(--font);font-size:10px;font-weight:850;color:var(--text-dim);cursor:pointer}
.radar-radius button.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}
.radar-verdict{display:grid;grid-template-columns:1fr;gap:10px;align-items:start;margin-bottom:10px;padding:10px;border:1px solid rgba(0,87,184,.16);border-radius:var(--radius-sm);background:var(--bg)}
.radar-verdict.good{border-color:rgba(26,143,71,.25);background:rgba(26,143,71,.045)}
.radar-verdict.mid{border-color:rgba(196,139,8,.24);background:rgba(196,139,8,.055)}
.radar-verdict.watch{border-color:rgba(201,59,63,.24);background:rgba(201,59,63,.04)}
.radar-verdict-copy>span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);line-height:1.2}
.radar-verdict-copy>strong{display:block;margin-top:2px;font-size:14px;font-weight:950;color:var(--text);line-height:1.15}
.radar-verdict-copy p{margin-top:3px;font-size:10px;line-height:1.35;color:var(--text-dim)}
.radar-verdict-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.radar-verdict-chips span{display:flex;align-items:center;gap:4px;min-width:0;padding:3px 6px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);line-height:1.1}
.radar-verdict-chips em{font-size:8px;font-style:normal;font-weight:850;text-transform:uppercase;letter-spacing:.32px;color:var(--text-muted)}
.radar-verdict-chips strong{font-size:9px;font-weight:900;color:var(--text);white-space:nowrap}
.radar-verdict-chips span.good strong{color:var(--good)}
.radar-verdict-chips span.mid strong{color:var(--warn)}
.radar-verdict-chips span.watch strong{color:var(--bad)}
.radar-copy{margin-top:7px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:850;color:var(--accent);cursor:pointer}
.radar-copy:hover{border-color:var(--accent);background:var(--accent-light)}
.local-radar-take{font-size:11px;line-height:1.45;color:var(--text-dim);margin-bottom:9px}
.radar-impact-summary{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:10px}
.radar-impact{padding:9px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.radar-impact.good{border-color:rgba(26,143,71,.24);background:rgba(26,143,71,.045)}
.radar-impact.mid{border-color:rgba(196,139,8,.24);background:rgba(196,139,8,.055)}
.radar-impact.watch{border-color:rgba(201,59,63,.24);background:rgba(201,59,63,.04)}
.radar-impact span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.42px;color:var(--text-muted);line-height:1.2}
.radar-impact strong{display:block;margin-top:2px;font-size:13px;font-weight:950;color:var(--text);line-height:1.2}
.radar-impact.good strong{color:var(--good)}
.radar-impact.mid strong{color:var(--warn)}
.radar-impact.watch strong{color:var(--bad)}
.radar-impact p{margin-top:3px;font-size:10px;line-height:1.35;color:var(--text-dim)}
.radar-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:10px}
.radar-metric{min-width:0;padding:8px 9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.radar-metric span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.42px;color:var(--text-muted);line-height:1.2}
.radar-metric strong{display:block;margin-top:3px;font-size:12px;font-weight:950;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.radar-metric.good strong{color:var(--good)}
.radar-metric.mid strong{color:var(--warn)}
.radar-metric.watch strong{color:var(--bad)}
.radar-timeline{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.radar-time-item{position:relative;padding:8px 9px 8px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.radar-time-item::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--neutral)}
.radar-time-item.good::before{background:var(--good)}
.radar-time-item.mid::before{background:var(--warn)}
.radar-time-item.watch::before{background:var(--bad)}
.radar-time-item span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.42px;color:var(--text-muted);line-height:1.2}
.radar-time-item strong{display:block;margin-top:2px;font-size:12px;font-weight:900;color:var(--text);line-height:1.2}
.radar-time-item p{margin-top:3px;font-size:10px;line-height:1.35;color:var(--text-dim)}
.radar-checklist{margin-bottom:10px;padding:9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.radar-check-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.radar-check-head span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.radar-check-head strong{font-size:10px;font-weight:850;color:var(--text-dim);white-space:nowrap}
.radar-check{position:relative;padding:7px 8px 7px 20px;border-top:1px solid var(--border-light)}
.radar-check:first-of-type{border-top:none}
.radar-check::before{content:'';position:absolute;left:4px;top:10px;width:8px;height:8px;border-radius:50%;background:var(--neutral)}
.radar-check.good::before{background:var(--good)}
.radar-check.mid::before{background:var(--warn)}
.radar-check.watch::before{background:var(--bad)}
.radar-check strong{display:block;font-size:11px;font-weight:900;color:var(--text);line-height:1.25}
.radar-check.good strong{color:var(--good)}
.radar-check.mid strong{color:var(--warn)}
.radar-check.watch strong{color:var(--bad)}
.radar-check span{display:block;margin-top:2px;font-size:10px;line-height:1.35;color:var(--text-dim)}
.radar-questions{margin-bottom:10px;padding:9px;border:1px solid rgba(0,87,184,.18);border-radius:var(--radius-sm);background:rgba(0,87,184,.035)}
.radar-questions-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}
.radar-questions-head span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);line-height:1.2}
.radar-questions-head strong{display:block;margin-top:2px;font-size:12px;font-weight:950;line-height:1.2;color:var(--text)}
.radar-questions-head button{flex-shrink:0;min-height:24px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:850;color:var(--accent);cursor:pointer}
.radar-questions-head button:hover{border-color:var(--accent);background:var(--accent-light)}
.radar-question{padding:8px 0;border-top:1px solid rgba(0,87,184,.12)}
.radar-question:first-of-type{border-top:0}
.radar-question span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);line-height:1.2}
.radar-question strong{display:block;margin-top:2px;font-size:11px;font-weight:900;line-height:1.3;color:var(--text)}
.radar-question em{display:block;margin-top:3px;font-size:10px;font-style:normal;line-height:1.35;color:var(--text-dim)}
.radar-feed-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.radar-feed-head span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.radar-feed-head strong{font-size:10px;font-weight:850;color:var(--text-dim);white-space:nowrap}
.radar-filters{display:flex;gap:4px;overflow-x:auto;padding-bottom:5px;margin-bottom:6px;scrollbar-width:none}
.radar-filters::-webkit-scrollbar{display:none}
.radar-filters button{display:flex;align-items:center;gap:5px;flex:0 0 auto;min-height:26px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);cursor:pointer}
.radar-filters button.active{border-color:var(--accent);background:var(--accent-light)}
.radar-filters span{font-size:9px;font-weight:850;color:var(--text-dim);white-space:nowrap}
.radar-filters strong{min-width:15px;height:15px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);font-size:8px;font-weight:950;color:var(--text-muted)}
.radar-filters button.active span,.radar-filters button.active strong{color:var(--accent)}
.radar-signal-list{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}
.radar-signal{position:relative;display:block;padding:8px 9px 8px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);text-decoration:none;transition:background .12s,border-color .12s}
.radar-signal:hover{background:var(--accent-light);border-color:rgba(0,87,184,.24)}
.radar-signal::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--neutral)}
.radar-signal.good::before{background:var(--good)}
.radar-signal.mid::before{background:var(--warn)}
.radar-signal.watch::before{background:var(--bad)}
.radar-signal-main span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.35px;color:var(--text-muted);line-height:1.25;margin-bottom:2px}
.radar-signal-main strong{display:block;font-size:11px;line-height:1.3;color:var(--text);font-weight:900;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.radar-signal-main p{margin-top:3px;font-size:10px;line-height:1.35;color:var(--text-dim)}
.radar-source-badge{display:inline-flex!important;width:max-content;margin-top:6px;padding:3px 6px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:8px!important;font-weight:900!important;text-transform:uppercase;letter-spacing:.35px;color:var(--text-muted)!important;text-decoration:none}
.radar-source-badge.official{border-color:rgba(26,143,71,.24);background:rgba(26,143,71,.07);color:var(--good)!important}
.radar-source-badge.lead{border-color:rgba(196,139,8,.24);background:rgba(196,139,8,.08);color:var(--warn)!important}
.radar-source-badge.model{color:var(--text-muted)!important}
.radar-news-list{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}
.radar-news-item{display:block;padding:8px 9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);text-decoration:none;transition:background .12s,border-color .12s}
.radar-news-item:hover{background:var(--accent-light);border-color:rgba(0,87,184,.24)}
.radar-news-item span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.42px;color:var(--accent);line-height:1.2;margin-bottom:2px}
.radar-news-item strong{display:block;font-size:11px;line-height:1.35;color:var(--text);font-weight:750;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.radar-news-item em{display:block;margin-top:3px;font-size:9px;font-style:normal;color:var(--text-muted);line-height:1.25}
.radar-empty{padding:8px 9px;border:1px dashed var(--border);border-radius:var(--radius-sm);font-size:10px;line-height:1.35;color:var(--text-muted)}
.radar-source-plan{border-top:1px solid var(--border-light);padding-top:7px}
.radar-source-plan summary{cursor:pointer;list-style:none;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.45px;color:var(--accent)}
.radar-source-plan summary::-webkit-details-marker{display:none}
.radar-source-plan summary::after{content:'+';float:right;color:var(--text-muted)}
.radar-source-plan[open] summary::after{content:'-'}
.radar-source-plan div{display:grid;grid-template-columns:92px 1fr;gap:8px;margin-top:7px;padding-top:7px;border-top:1px solid var(--border-light)}
.radar-source-plan strong{font-size:10px;line-height:1.25;color:var(--text)}
.radar-source-plan strong a{color:var(--text);text-decoration:none}
.radar-source-plan strong em{display:inline-flex;margin-left:5px;padding:1px 4px;border-radius:var(--radius-sm);background:var(--bg-surface);font-size:7px;font-style:normal;font-weight:900;text-transform:uppercase;letter-spacing:.25px;color:var(--text-muted)}
.radar-source-plan strong em.official{background:rgba(26,143,71,.1);color:var(--good)}
.radar-source-plan strong em.lead{background:rgba(196,139,8,.1);color:var(--warn)}
.radar-source-plan span{font-size:10px;line-height:1.35;color:var(--text-muted)}
.proximity-section{margin-bottom:12px}
.proximity-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:6px 0 4px}
.prox-group{margin-bottom:8px}
.prox-group-header{display:flex;align-items:center;gap:5px;padding:4px 0 2px}
.prox-icon{font-size:13px;line-height:1}
.prox-group-label{font-size:11px;font-weight:700;color:var(--text)}
.proximity-item{display:flex;align-items:center;gap:6px;padding:4px 8px;font-size:11px;border-radius:var(--radius-sm);max-width:100%;min-width:0;transition:background .1s}
.proximity-item:hover{background:var(--bg-hover)}
.prox-name{flex:1;color:var(--text);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prox-link{color:var(--accent);text-decoration:none}
.prox-link:hover{text-decoration:underline}
.prox-dist{flex-shrink:0;font-size:10px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.prox-walk{flex-shrink:0;font-size:10px;color:var(--accent);font-weight:600;white-space:nowrap;min-width:36px;text-align:right}
.address-pin{color:var(--accent);filter:drop-shadow(0 2px 4px rgba(0,87,184,.3))}
.address-radar-ring{transition:stroke-opacity .2s,fill-opacity .2s}
.address-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px}
.address-actions button{min-height:28px;padding:5px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:10px;font-weight:850;color:var(--accent);cursor:pointer}
.address-actions button.active{border-color:var(--accent);background:var(--accent);color:#fff}
.address-actions span{font-size:10px;line-height:1.35;color:var(--text-muted)}
.address-decision-bridge{margin-bottom:12px;padding:10px;border:1px solid rgba(0,87,184,.2);border-radius:var(--radius);background:var(--bg-surface)}
.address-decision-bridge.compact{margin:0 0 10px;padding:0;border:0;background:transparent}
.address-decision-bridge.good{border-color:rgba(26,143,71,.25);background:rgba(26,143,71,.045)}
.address-decision-bridge.mid{border-color:rgba(196,139,8,.24);background:rgba(196,139,8,.055)}
.address-decision-bridge.watch{border-color:rgba(201,59,63,.24);background:rgba(201,59,63,.04)}
.address-bridge-head{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;margin-bottom:8px}
.address-bridge-head span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);line-height:1.2}
.address-bridge-head strong{display:block;margin-top:2px;font-size:13px;font-weight:950;line-height:1.18;color:var(--text)}
.address-bridge-head p{margin-top:3px;font-size:10px;line-height:1.35;color:var(--text-dim)}
.address-bridge-head em{width:42px;height:42px;min-width:42px;border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg);font-size:14px;font-style:normal;font-weight:950;color:var(--accent);font-variant-numeric:tabular-nums}
.address-decision-bridge.good .address-bridge-head em{border-color:var(--good);color:var(--good)}
.address-decision-bridge.mid .address-bridge-head em{border-color:var(--warn);color:var(--warn)}
.address-decision-bridge.watch .address-bridge-head em{border-color:var(--bad);color:var(--bad)}
.address-bridge-meta{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.address-bridge-meta span{padding:3px 6px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);font-size:9px;font-weight:800;color:var(--text-dim);line-height:1.2}
.address-bridge-actions{display:grid;grid-template-columns:1fr;gap:6px}
.address-bridge-actions.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.address-bridge-action{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:0;padding:8px 9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);text-align:left;cursor:pointer;transition:border-color .14s,background .14s}
.address-bridge-action.compact{min-height:34px;align-items:center;justify-content:center;padding:7px 9px;text-align:center}
.address-bridge-action:hover{border-color:var(--accent);background:var(--accent-light)}
.address-bridge-action:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.55}
.address-bridge-action:disabled:hover{border-color:var(--border-light);background:var(--bg)}
.address-bridge-action.primary{border-color:rgba(0,87,184,.28);background:rgba(0,87,184,.06)}
.address-bridge-action.done{border-color:rgba(26,143,71,.28);background:rgba(26,143,71,.055)}
.address-bridge-action strong{font-size:10px;font-weight:900;color:var(--text);line-height:1.25}
.address-bridge-action.primary strong{color:var(--accent)}
.address-bridge-action.done strong{color:var(--good)}
.address-bridge-action span{font-size:9px;line-height:1.35;color:var(--text-dim)}
.radar-map-pin{background:transparent!important;border:0!important}
.radar-map-pin span{display:block;padding:5px 8px;border-radius:999px;background:var(--bg);color:var(--text);font-family:var(--font);font-size:9px;font-weight:900;line-height:1;letter-spacing:0;text-transform:uppercase;border:1px solid rgba(0,87,184,.18);box-shadow:0 8px 22px rgba(0,22,65,.16);white-space:nowrap}
.radar-map-pin.good span{background:var(--accent);border-color:var(--accent);color:#fff}
.radar-map-pin.mid span{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.address-watch-pin{background:transparent!important;border:0!important}
.address-watch-pin span{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg);border:2px solid var(--accent);box-shadow:0 8px 22px rgba(0,22,65,.2);font-family:var(--font);font-size:11px;font-weight:950;line-height:1;color:var(--accent)}
.address-watch-pin.good span{border-color:var(--good);color:var(--good)}
.address-watch-pin.mid span{border-color:var(--warn);color:var(--warn)}
.address-watch-pin.watch span{border-color:var(--bad);color:var(--bad)}
.work-pin{background:transparent!important;border:0!important}
.work-pin span{display:block;padding:4px 8px;border-radius:14px;background:var(--text);color:var(--bg);font-family:var(--font);font-size:10px;font-weight:900;line-height:1;box-shadow:var(--shadow-md);white-space:nowrap}
.work-pin.secondary span{background:var(--accent);color:#fff}
.addr-score-breakdown{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}
.addr-score-row{display:grid;grid-template-columns:110px 1fr 42px;align-items:center;gap:6px;padding:1px 4px}
.addr-score-cat{font-size:10px;color:var(--text-dim);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.addr-score-dist{font-size:10px;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}

/* ═══ Compare Panel ═══ */
#compare{position:absolute;top:0;right:0;bottom:0;width:min(720px,90%);background:var(--bg);border-left:1px solid var(--border);z-index:860;transform:translateX(100%);transition:transform .3s var(--ease);overflow-y:auto;overflow-x:hidden;box-shadow:-4px 0 20px rgba(0,20,60,.08);contain:layout style paint}
#compare.visible{transform:translateX(0)}
#compare.hidden{transform:translateX(100%)}
#close-compare{position:sticky;top:8px;float:right;margin:8px 8px -40px auto}
#compare-content{padding:12px 16px 20px}
.set-compare-head{padding:4px 2px 12px;border-bottom:1px solid var(--border-light);margin-bottom:12px}
.set-compare-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.set-compare-head h2{font-size:20px;line-height:1.15;font-weight:900;color:var(--text);letter-spacing:0;margin:2px 0 6px}
.set-compare-title-row button{flex-shrink:0;margin-top:1px;padding:6px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:10px;font-weight:850;color:var(--accent);cursor:pointer;white-space:nowrap}
.set-compare-title-row button:hover{border-color:var(--accent);background:var(--accent-light)}
.set-compare-head p{font-size:12px;line-height:1.5;color:var(--text-dim)}
.set-compare-head p strong{color:var(--text);font-weight:850}
.set-goal-switch{display:flex;gap:5px;overflow-x:auto;padding:8px 0 1px;scrollbar-width:none}
.set-goal-switch::-webkit-scrollbar{display:none}
.set-goal-switch button{flex:0 0 auto;padding:6px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:10px;font-weight:850;color:var(--text-dim);cursor:pointer;white-space:nowrap}
.set-goal-switch button:hover{border-color:var(--accent);color:var(--accent)}
.set-goal-switch button.active{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(0,87,184,.16)}
.set-budget-control{margin-top:9px;padding:10px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-surface)}
.set-budget-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
.set-budget-top span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);line-height:1.2}
.set-budget-top strong{display:block;margin-top:1px;font-size:13px;font-weight:950;color:var(--text);line-height:1.2}
.set-budget-top button{padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:850;color:var(--accent);cursor:pointer;white-space:nowrap}
.set-budget-top button:disabled{opacity:.45;color:var(--text-muted);cursor:not-allowed}
.set-budget-control input[type=range]{width:100%;height:24px;-webkit-appearance:none;appearance:none;background:transparent;outline:none;cursor:pointer}
.set-budget-control input[type=range]::-webkit-slider-runnable-track{height:4px;background:linear-gradient(90deg,var(--good),var(--accent),var(--warn));border-radius:999px}
.set-budget-control input[type=range]::-moz-range-track{height:4px;background:linear-gradient(90deg,var(--good),var(--accent),var(--warn));border-radius:999px}
.set-budget-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 2px 8px rgba(0,20,60,.18);cursor:pointer}
.set-budget-control input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 2px 8px rgba(0,20,60,.18);cursor:pointer}
.set-budget-scale{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin-top:7px}
.set-budget-scale span{font-size:9px;font-weight:750;color:var(--text-muted);white-space:nowrap}
.set-budget-scale em{min-width:0;font-size:10px;font-style:normal;line-height:1.3;color:var(--text-dim);text-align:center}
.set-decision-summary{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:stretch;margin-bottom:14px;padding:14px;border:1px solid rgba(0,87,184,.24);border-radius:var(--radius);background:var(--bg-surface)}
.set-summary-main span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.55px;color:var(--accent);line-height:1.2;margin-bottom:3px}
.set-summary-main strong{display:block;font-size:28px;line-height:1.05;font-weight:950;color:var(--text);letter-spacing:0}
.set-summary-main p{max-width:520px;margin-top:6px;font-size:12px;line-height:1.45;color:var(--text-dim)}
.set-summary-score{min-width:112px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px}
.set-summary-score em{font-size:30px;line-height:1;font-style:normal;font-weight:950;color:var(--accent);font-variant-numeric:tabular-nums}
.set-summary-score span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted)}
.set-summary-score button{margin-top:8px;padding:6px 10px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);font-family:var(--font);font-size:10px;font-weight:850;color:#fff;cursor:pointer;white-space:nowrap}
.set-personal-lens{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:-4px 0 14px}
.set-personal-lens div{min-width:0;padding:9px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface)}
.set-personal-lens span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted);line-height:1.25}
.set-personal-lens strong{display:block;margin-top:3px;font-size:11px;line-height:1.25;font-weight:900;color:var(--text)}
.set-verdict{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-bottom:12px;padding:11px 12px;border:1px solid rgba(0,87,184,.2);border-radius:var(--radius);background:var(--accent-light)}
.set-verdict span{display:block;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.55px;color:var(--accent);margin-bottom:2px}
.set-verdict strong{display:block;font-size:17px;line-height:1.15;font-weight:900;color:var(--text)}
.set-verdict em{display:block;margin-top:2px;font-size:11px;font-style:normal;color:var(--text-dim)}
.set-verdict button{padding:6px 10px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);font-family:var(--font);font-size:11px;font-weight:850;color:#fff;cursor:pointer;white-space:nowrap}
.set-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;margin-bottom:16px}
.set-metric{min-width:0;padding:9px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface)}
.set-metric.accent{border-color:rgba(0,87,184,.22);background:var(--accent-light)}
.set-metric.warn{border-color:rgba(196,139,8,.22);background:rgba(196,139,8,.06)}
.set-metric span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted);line-height:1.25}
.set-metric strong{display:block;margin-top:2px;font-size:12px;line-height:1.25;font-weight:900;color:var(--text)}
.set-metric em{display:block;margin-top:2px;font-size:12px;line-height:1.25;font-style:normal;font-weight:850;color:var(--accent)}
.set-metric small{display:block;margin-top:1px;font-size:9px;line-height:1.3;color:var(--text-muted)}
.set-card-list{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}
.set-card{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg);padding:10px}
.set-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}
.set-name{display:flex;flex-direction:column;align-items:flex-start;min-width:0;border:none;background:none;font-family:var(--font);text-align:left;cursor:pointer}
.set-name strong{font-size:14px;line-height:1.2;color:var(--text);font-weight:900}
.set-name em{font-size:10px;line-height:1.25;font-style:normal;color:var(--text-muted)}
.set-card-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:6px}
.set-card-metrics div{padding:7px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);min-width:0}
.set-card-metrics span{display:block;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.42px;color:var(--text-muted);line-height:1.25}
.set-card-metrics strong{display:block;margin-top:2px;font-size:11px;font-weight:850;line-height:1.25;color:var(--text)}
.cmp-section{margin-bottom:16px}
.set-win-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px}
.set-win-card{min-width:0;padding:10px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg);font-family:var(--font);text-align:left;cursor:pointer;transition:all .14s var(--ease)}
.set-win-card:hover{border-color:var(--accent);background:var(--accent-light)}
.set-win-card strong{display:block;font-size:13px;line-height:1.2;font-weight:900;color:var(--text);margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.set-win-card div{display:flex;flex-wrap:wrap;gap:4px}
.set-win-card span{padding:3px 7px;border-radius:var(--radius-sm);background:var(--accent-light);font-size:9px;font-weight:850;color:var(--accent);line-height:1.2}
.set-matrix-wrap{overflow-x:auto;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg)}
.set-matrix{display:grid;min-width:620px}
.set-matrix-head{position:sticky;top:0;z-index:1;padding:8px 9px;background:var(--bg-surface);border-bottom:1px solid var(--border-light);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted)}
.set-matrix-head.name{font-size:10px;color:var(--text);text-transform:none;letter-spacing:0}
.set-matrix-label{padding:9px;border-top:1px solid var(--border-light);background:var(--bg);min-width:0}
.set-matrix-label strong{display:block;font-size:10px;font-weight:900;color:var(--text);line-height:1.2}
.set-matrix-label span{display:block;margin-top:1px;font-size:8px;line-height:1.25;color:var(--text-muted)}
.set-matrix-cell{padding:8px 9px;border-top:1px solid var(--border-light);border-left:1px solid var(--border-light);background:var(--bg);min-width:0}
.set-matrix-cell.best{background:rgba(0,87,184,.045)}
.set-matrix-cell strong{display:inline-block;font-size:12px;font-weight:900;color:var(--text);line-height:1.2;font-variant-numeric:tabular-nums}
.set-matrix-cell.best strong{color:var(--accent)}
.set-matrix-cell span{display:inline-block;margin-left:6px;vertical-align:1px;padding:2px 5px;border-radius:var(--radius-sm);background:var(--accent-light);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.3px;color:var(--accent)}
.set-value-map{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg);padding:10px}
.set-map-note{display:flex;align-items:baseline;gap:6px;margin-bottom:8px;min-width:0}
.set-map-note strong{font-size:12px;font-weight:900;color:var(--text)}
.set-map-note span{font-size:10px;line-height:1.3;color:var(--text-muted)}
.set-map-plot{position:relative;height:230px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:linear-gradient(90deg,rgba(26,143,71,.085) 0%,rgba(26,143,71,.03) 46%,rgba(196,139,8,.035) 54%,rgba(196,139,8,.08) 100%),linear-gradient(0deg,rgba(74,82,104,.075) 0%,rgba(255,255,255,0) 43%,rgba(0,87,184,.09) 100%);overflow:hidden}
.set-map-plot::before,.set-map-plot::after{content:'';position:absolute;background:rgba(143,154,179,.22);pointer-events:none}
.set-map-plot::before{left:8%;right:8%;top:50%;height:1px}
.set-map-plot::after{left:50%;top:10%;bottom:14%;width:1px}
.set-map-plot .axis-y,.set-map-plot .axis-x,.set-map-plot .axis-low{position:absolute;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted);pointer-events:none}
.set-map-plot .axis-y{left:8px;top:8px}
.set-map-plot .axis-x{right:8px;bottom:7px}
.set-map-plot .axis-low{left:8px;bottom:7px}
.map-quad{position:absolute;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.68);border:1px solid rgba(221,226,236,.72);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);pointer-events:none}
.map-quad.best{left:48px;top:30px;color:var(--good)}
.map-quad.premium{right:16px;top:30px;color:var(--accent)}
.map-quad.budget{left:48px;bottom:28px}
.map-quad.stretch{right:16px;bottom:28px;color:var(--warn)}
.set-map-dot{position:absolute;width:18px;height:18px;transform:translate(-50%,-50%);padding:0;border:none;background:transparent;font-family:var(--font);cursor:pointer;z-index:2}
.set-map-dot i{position:absolute;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 2px 8px rgba(0,20,60,.2)}
.set-map-dot.value-pick i{width:15px;height:15px;box-shadow:0 0 0 4px rgba(0,87,184,.11),0 3px 10px rgba(0,20,60,.2)}
.set-map-dot span{position:absolute;width:max-content;max-width:142px;padding:6px 8px;border:1px solid rgba(0,87,184,.18);border-radius:var(--radius-sm);background:rgba(255,255,255,.96);box-shadow:0 4px 14px rgba(0,20,60,.1);text-align:left;pointer-events:none}
.set-map-dot.center-label span{left:50%;transform:translateX(-50%)}
.set-map-dot.left-label span{right:18px}
.set-map-dot.right-label span{left:18px}
.set-map-dot.label-above span{bottom:16px}
.set-map-dot.label-below span{top:16px}
.set-map-dot strong{display:block;font-size:10px;font-weight:900;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.set-map-dot em{display:block;margin-top:1px;font-size:8px;font-style:normal;line-height:1.25;color:var(--text-muted);white-space:nowrap}
.set-map-dot.dot-1 i{background:var(--good)}
.set-map-dot.dot-2 i{background:var(--warn)}
.set-map-dot.dot-3 i{background:var(--bad)}
.set-tradeoffs{display:flex;flex-direction:column;gap:8px}
.set-tradeoff-card{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg);padding:10px}
.set-tradeoff-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
.set-tradeoff-head span{font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.45px;color:var(--text-muted);line-height:1.25}
.set-tradeoff-head strong{font-size:12px;font-weight:900;color:var(--text);line-height:1.25;text-align:right}
.set-tradeoff-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.set-reason-group{min-width:0;padding:8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface)}
.set-reason-group em{display:block;margin-bottom:5px;font-size:10px;font-style:normal;font-weight:850;color:var(--text);line-height:1.25}
.set-reason-group div{padding-top:5px;margin-top:5px;border-top:1px solid var(--border-light)}
.set-reason-group div:first-of-type{padding-top:0;margin-top:0;border-top:none}
.set-reason-group strong{display:block;font-size:10px;color:var(--text);line-height:1.25}
.set-reason-group span{display:block;margin-top:1px;font-size:9px;color:var(--text-muted);line-height:1.35}
.set-tradeoff-notes{display:flex;flex-direction:column;gap:4px;margin-top:7px}
.set-tradeoff-notes span{display:block;padding:6px 8px;border-radius:var(--radius-sm);background:var(--accent-light);font-size:10px;line-height:1.35;color:var(--text-dim)}
.set-tradeoff-notes strong{color:var(--text);font-weight:850}
.address-compare-head .address-goals{margin-top:10px;margin-bottom:0}
.address-compare-winner{margin-bottom:12px;padding:12px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-surface)}
.address-compare-winner.good{border-color:rgba(26,143,71,.25);background:rgba(26,143,71,.045)}
.address-compare-winner.mid{border-color:rgba(196,139,8,.24);background:rgba(196,139,8,.055)}
.address-compare-winner.watch{border-color:rgba(201,59,63,.24);background:rgba(201,59,63,.04)}
.address-compare-winner span{display:block;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.address-compare-winner strong{display:block;margin-top:3px;font-size:20px;line-height:1.1;font-weight:950;color:var(--text)}
.address-compare-winner p{margin-top:5px;font-size:12px;line-height:1.45;color:var(--text-dim)}
.address-compare-reasons{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.address-compare-reasons span{width:auto;padding:4px 7px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);font-size:9px;font-weight:800;letter-spacing:0;text-transform:none;color:var(--text-dim)}
.address-compare-lens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px}
.address-compare-lens div{min-width:0;padding:9px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.address-compare-lens span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.42px;color:var(--text-muted);line-height:1.2}
.address-compare-lens strong{display:block;margin-top:3px;font-size:12px;font-weight:950;line-height:1.2;color:var(--text);overflow-wrap:anywhere}
.address-compare-lens p{margin-top:4px;font-size:10px;line-height:1.35;color:var(--text-dim)}
.address-compare-visuals{margin-bottom:12px;padding:10px;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg)}
.address-compare-visual-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.address-compare-visual-head span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.address-compare-visual-head strong{font-size:12px;font-weight:950;color:var(--text)}
.address-compare-metric{display:grid;grid-template-columns:78px 1fr;gap:8px;align-items:start;padding:7px 0;border-top:1px solid var(--border-light)}
.address-compare-metric:first-of-type{border-top:0}
.address-compare-metric>span{font-size:9px;font-weight:850;color:var(--text-muted);line-height:1.2}
.address-compare-metric>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.address-compare-bar{min-width:0}
.address-compare-bar-label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:baseline;margin-bottom:3px}
.address-compare-bar-label b{min-width:0;font-size:10px;font-weight:900;line-height:1.15;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-compare-bar-label em{font-size:10px;font-style:normal;font-weight:950;line-height:1;color:var(--accent);white-space:nowrap}
.address-compare-bar.cost .address-compare-bar-label em{color:var(--text)}
.address-compare-bar i{display:block;height:5px;border-radius:999px;background:var(--bg-surface);overflow:hidden}
.address-compare-bar i span{display:block;height:100%;min-width:3px;border-radius:inherit;background:var(--accent)}
.address-compare-bar.cost i span{background:var(--text-muted)}
.address-compare-list{display:flex;flex-direction:column;gap:7px}
.address-compare-card{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg)}
.address-compare-card.good{border-color:rgba(26,143,71,.2)}
.address-compare-card.mid{border-color:rgba(196,139,8,.22)}
.address-compare-card.watch{border-color:rgba(201,59,63,.22)}
.address-compare-rank{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-light);color:var(--accent);font-size:11px;font-weight:950}
.address-compare-main{min-width:0}
.address-compare-main button{display:block;max-width:100%;border:0;background:transparent;padding:0;font-family:var(--font);font-size:14px;font-weight:950;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.address-compare-main button:hover{color:var(--accent)}
.address-compare-main>span{display:block;margin-top:2px;font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-compare-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.address-compare-meta em{padding:2px 5px;border-radius:var(--radius-sm);background:var(--bg-surface);font-size:9px;font-style:normal;font-weight:750;color:var(--text-dim)}
.address-compare-meta em.rent{background:rgba(0,87,184,.08);color:var(--accent);font-weight:900}
.address-compare-score{text-align:right;min-width:58px}
.address-compare-score strong{display:block;font-size:20px;font-weight:950;color:var(--accent);line-height:1}
.address-compare-card.good .address-compare-score strong{color:var(--good)}
.address-compare-card.mid .address-compare-score strong{color:var(--warn)}
.address-compare-card.watch .address-compare-score strong{color:var(--bad)}
.address-compare-score span{display:block;margin-top:3px;font-size:9px;color:var(--text-muted);line-height:1.2}

/* ═══ Onboarding ═══ */
#onboarding{position:absolute;inset:0;background:rgba(0,20,60,.35);z-index:9999;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px);transition:opacity .3s}
#onboarding.hidden{display:none;opacity:0;pointer-events:none}
.onboard-card{background:var(--bg);border-radius:12px;padding:28px 32px;max-width:380px;box-shadow:var(--shadow-lg);text-align:center}
.onboard-card h2{font-size:20px;font-weight:800;color:var(--text);margin-bottom:8px}
.onboard-card p{font-size:13px;color:var(--text-dim);margin-bottom:16px;line-height:1.5}
.onboard-card ol{text-align:left;font-size:12px;color:var(--text-dim);margin:0 0 20px 20px;line-height:1.8}
.onboard-card ol strong{color:var(--text)}
.onboard-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.onboard-actions button{padding:8px 12px;border-radius:var(--radius);font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}
#onboard-personalize{background:var(--accent);color:#fff;border:1px solid var(--accent)}
#onboard-personalize:hover{background:var(--accent-hover)}
#onboard-dismiss{background:var(--bg-surface);color:var(--text-dim);border:1px solid var(--border)}
#onboard-dismiss:hover{border-color:var(--accent);color:var(--accent)}

/* ═══ Overlay ═══ */
#overlay{position:absolute;inset:0;background:rgba(0,20,60,.2);z-index:1050;transition:opacity .3s;backdrop-filter:blur(1px)}
#overlay.hidden{opacity:0;pointer-events:none}

/* ═══ SEO section ═══ */
#seo-content{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}
#seo-content h2,#seo-content h3{margin:12px 0 4px}
#seo-content p{margin:0 0 8px;line-height:1.6}

/* ═══ Municipality labels ═══ */
.municipality-label{background:none!important;border:none!important;box-shadow:none!important;font-family:var(--font)!important;font-size:9px!important;font-weight:700!important;color:var(--text)!important;white-space:nowrap!important;text-shadow:0 1px 2px rgba(255,255,255,.8)!important}

/* ═══ Scrollbar ═══ */
.sidebar-scroll::-webkit-scrollbar,#detail::-webkit-scrollbar,#compare::-webkit-scrollbar{width:4px}
.sidebar-scroll::-webkit-scrollbar-track,#detail::-webkit-scrollbar-track,#compare::-webkit-scrollbar-track{background:transparent}
.sidebar-scroll::-webkit-scrollbar-thumb,#detail::-webkit-scrollbar-thumb,#compare::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}

/* ═══ Bottom sheet drag handle ═══ */
.sheet-handle{display:none;justify-content:center;padding:10px 0 2px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}
.sheet-handle span{width:36px;height:4px;border-radius:2px;background:var(--border)}

/* ═══ Touch-friendly tooltip ═══ */
.tip-bubble{position:absolute;left:0;top:calc(100% + 6px);width:200px;padding:7px 10px;background:var(--text);color:var(--bg);font-size:10px;font-weight:400;line-height:1.4;border-radius:var(--radius-sm);z-index:100;white-space:normal;box-shadow:var(--shadow-md);pointer-events:auto;animation:tipIn .15s ease}
.tip-bubble::before{content:'';position:absolute;left:12px;top:-7px;border:4px solid transparent;border-bottom-color:var(--text)}
@keyframes tipIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}

/* ═══ Loading shimmer ═══ */
.loading-shimmer{display:flex;flex-direction:column;gap:8px;padding:10px 0}
.shimmer-line{height:10px;border-radius:4px;background:linear-gradient(90deg,var(--bg-surface) 25%,var(--bg-hover) 50%,var(--bg-surface) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
.shimmer-line.short{width:60%}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ═══ Detail back button ═══ */
.detail-back{display:inline-flex;align-items:center;gap:4px;background:none;border:none;font-family:var(--font);font-size:11px;font-weight:600;color:var(--text-muted);cursor:pointer;padding:2px 0 6px;transition:color .12s}
.detail-back:hover{color:var(--accent)}

/* ═══ Layer switch toast ═══ */
.layer-toast{position:absolute;top:62px;left:50%;transform:translateX(-50%) scale(0.9);background:var(--text);color:var(--bg);padding:8px 20px;border-radius:20px;font-family:var(--font);font-size:13px;font-weight:700;z-index:999;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap}
.layer-toast.show{opacity:0.85;transform:translateX(-50%) scale(1)}

/* ═══ Point overlay presets ═══ */
.preset-chips{display:flex;flex-wrap:wrap;gap:4px;padding:4px 8px 6px}
.preset-chip{padding:3px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-family:var(--font);font-size:9px;font-weight:600;color:var(--text-dim);cursor:pointer;transition:all .12s;white-space:nowrap}
.preset-chip:hover{border-color:var(--accent);color:var(--accent)}
.preset-chip.on{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}

/* ═══ Responsive ═══ */
@media(max-width:900px){:root{--sidebar-w:220px;--detail-w:340px}}
@media(max-width:768px){
    :root{--header-h:48px}
    #menu-toggle{display:flex}
    #sidebar-collapse{display:none}
    .header-right{display:none}
    #header{padding:0 10px}
    #menu-toggle{width:40px;height:40px}
    #menu-toggle span{width:18px;height:2px}
    .mobile-search-trigger{display:inline-flex}
    #mobile-taskbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));height:62px;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:5px;border:1px solid rgba(216,221,230,.92);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 12px 34px rgba(0,20,60,.16);z-index:1120;backdrop-filter:blur(14px);transition:transform .22s var(--ease),opacity .18s var(--ease)}
    #mobile-taskbar button{min-width:0;min-height:50px;border:0;border-radius:14px;background:transparent;font-family:var(--font);font-size:10px;font-weight:900;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}
    #mobile-taskbar button:focus{outline:none}
    #mobile-taskbar button:focus-visible{outline:2px solid rgba(0,87,184,.36);outline-offset:2px}
    #mobile-taskbar button.active{background:var(--accent);color:#fff;box-shadow:0 6px 16px rgba(0,87,184,.22)}
    body.mobile-panel-open #mobile-taskbar{transform:translateY(120%);opacity:0;pointer-events:none}
    #sidebar{position:fixed;top:auto;left:8px;right:8px;bottom:calc(82px + env(safe-area-inset-bottom));width:auto;max-width:none;height:auto;max-height:min(72dvh,620px);padding-top:0;transform:translateY(calc(100% + 120px));z-index:1100;border:1px solid var(--border);border-radius:18px 18px 14px 14px;box-shadow:0 -14px 36px rgba(0,20,60,.18)}
    .workflow-close{position:absolute;top:10px;right:10px;display:flex}
    body.mobile-workflow-fit #sidebar{max-height:min(46dvh,390px)}
    #sidebar.open{transform:translateY(0)}
    #sidebar.open .decision-hub{display:none}
    #sidebar.open .workflow-section,#sidebar.open .tools-drawer{display:none}
    #sidebar.open .workflow-section.is-active,#sidebar.open .tools-drawer.is-active{display:block}
    .sidebar-scroll{flex:0 1 auto;max-height:calc(72dvh - 2px);padding:10px 10px calc(14px + env(safe-area-inset-bottom));overscroll-behavior:contain}
    body.mobile-workflow-fit .sidebar-scroll{max-height:min(calc(46dvh - 2px),388px)}
    body.mobile-workflow-fit .guided-section{padding-bottom:4px}
    body.mobile-workflow-fit .workflow-head{margin-bottom:5px}
    #sidebar.open .workflow-section.is-active>.workflow-head,
    #sidebar.open .tools-drawer.is-active>summary{padding-right:36px}
    .decision-hub{margin-bottom:6px;padding-bottom:8px}
    .decision-hub p,.workflow-head p{display:none}
    .workflow-section{padding:10px 6px;border-bottom:0;background:var(--bg)}
    .workflow-head{margin-bottom:6px}
    .workflow-head h3{font-size:15px}
    .workflow-step{width:24px;height:24px;font-size:11px}

    /* Snap-point panels on mobile */
    #detail,#compare{top:auto;bottom:calc(8px + env(safe-area-inset-bottom));left:8px;right:8px;width:auto;max-width:none;height:min(42dvh,360px);max-height:calc(100dvh - 62px);border-left:none;border-top:1px solid var(--border);border-radius:18px;transform:translateY(calc(100% + 40px));contain:layout style paint;box-shadow:0 -12px 34px rgba(0,20,60,.18);padding-bottom:0;z-index:1080}
    #detail.sheet-staging,#compare.sheet-staging{transition:none!important}
    #detail.visible,#compare.visible{transform:translateY(0)}
    #compare.hidden{transform:translateY(calc(100% + 40px))}
    .sheet-handle{display:flex;padding:10px 0 4px}
    .sheet-handle span{width:36px;height:4px;background:#C7CEDA}
    #close-detail,#close-compare{position:sticky;top:10px}
    #close-detail{margin:10px 10px -42px auto}
    #close-compare{margin:10px 10px -42px auto}
    #detail-content,#compare-content{padding:8px 12px calc(24px + env(safe-area-inset-bottom))}
    .detail-hero{padding-top:4px;margin-bottom:8px}
    .detail-hero-top{padding-right:38px}

    #legend{bottom:86px;left:8px;right:8px;max-width:none;padding:6px 10px}
    .personal-map-off{top:10px;right:10px}
    body.has-fit-map-control .leaflet-top.leaflet-right{top:66px!important}
    .leaflet-top.leaflet-right{top:10px!important;right:10px!important}
    .leaflet-bottom.leaflet-right{bottom:2px!important;right:6px!important}
    .leaflet-top.leaflet-right .leaflet-control-zoom a{width:34px!important;height:34px!important;line-height:34px!important;font-size:17px!important}
    #legend .legend-body{display:none}
    #legend.expanded .legend-body{display:flex}
    #legend .legend-gradient{width:60px;height:6px}
    #legend .legend-label{font-size:10px}
    #legend .legend-label::after{content:' ▸';font-size:8px;color:var(--text-muted)}
    #legend.expanded .legend-label::after{content:' ▾'}
    #legend .legend-min,#legend .legend-max{font-size:9px}
    #legend .legend-desc{font-size:9px;-webkit-line-clamp:3}
    .guided-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .guided-card{min-height:48px;padding:8px 9px 8px 36px}
    .work-search-row input,.address-search-row input,#choropleth-select{min-height:44px;font-size:13px}
    #work-clear,#second-anchor-clear,#work-budget-clear,#address-locate,.work-share-profile,.shortlist-compare,.points-clear{min-height:40px}
    .layer-chip{min-height:36px;padding:7px 12px;font-size:11px}
    .shortlist-actions{gap:6px}
    .saved-main{min-height:44px}
    .saved-remove{min-height:38px}
    .address-tray-remove{width:40px;height:40px}
    .detail-hero h2{font-size:24px}
    .detail-hero-top{align-items:flex-start}
    .brief-copy,.detail-desc{padding:8px 9px;font-size:11px}
    .detail-brief,.quick-stats,.personal-fit-panel,.rank-strip,.change-panel,.micro-panel,.zone-panel,.next-panel,.advice-grid,.alternatives-section,.local-radar{margin-bottom:10px}
    .trust-strip,.personal-fit-panel,.change-panel,.zone-panel,.address-fit-card,.local-radar{padding:8px}
    .quick-stat{padding:7px}
    .quick-stat strong{font-size:12px}
    .quick-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
    .rank-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
    .change-grid{grid-template-columns:1fr}
    .micro-item{grid-template-columns:1fr}
    .zone-grid{grid-template-columns:1fr}
    .advice-grid{grid-template-columns:1fr}
    .advice-item span{font-size:11px}
    .alt-main{padding:9px 10px}

    /* Disable hover tooltips on touch; we use .tip-bubble instead */
    .cb-label[data-tip]:hover::after,
    .cb-label[data-tip]:hover::before{display:none}

    /* Bigger tap targets on mobile */
    .cb-slider::-webkit-slider-thumb{width:20px;height:20px}
    .cb-slider::-moz-range-thumb{width:20px;height:20px}
    .cb-slider{height:5px}
    .point-toggle{padding:7px 8px;font-size:12px}
    .point-toggle input[type="checkbox"]{width:18px;height:18px}
    .point-toggle input:checked::after{left:4.5px;top:1px;width:5px;height:8px}
    .subgroup-label{font-size:10px;padding:8px 8px 2px}

    /* Rent range bar taller on mobile */
    .ri-range-bar{height:20px;border-radius:10px}
    .ri-marker{top:-3px;height:26px;width:3px}
    .ri-median span{font-size:12px;top:-18px}

    /* Compare adjustments for mobile */
    .set-decision-summary{grid-template-columns:1fr;padding:12px}
    .set-compare-title-row{align-items:flex-start}
    .set-compare-title-row h2{font-size:18px}
    .set-compare-title-row button{padding:5px 8px}
    .set-summary-main strong{font-size:24px}
    .set-summary-score{align-items:flex-start}
    .set-personal-lens{grid-template-columns:1fr 1fr}
    .trust-items{grid-template-columns:1fr 1fr}
    .trust-strip p{white-space:normal}
    .set-budget-scale{grid-template-columns:1fr 1fr}
    .set-budget-scale em{grid-column:1/-1;grid-row:2;text-align:left}
    .set-metrics-grid{grid-template-columns:1fr 1fr}
    .set-card-top{flex-direction:column;gap:7px}
    .set-win-strip{grid-template-columns:1fr}
    .set-map-plot{height:210px}
    .map-quad{display:none}
    .set-map-dot span{max-width:104px;padding:5px 6px}
    .set-map-dot em{white-space:normal}
    .set-tradeoff-head{flex-direction:column;gap:3px}
    .set-tradeoff-head strong{text-align:left}
    .set-tradeoff-grid{grid-template-columns:1fr}
    .address-fit-head{grid-template-columns:1fr auto}
    .address-fit-evidence{grid-template-columns:1fr 1fr}
    .address-summary-note{grid-template-columns:1fr}
    .address-summary-note button{width:100%;justify-content:center}
    .radar-metrics{grid-template-columns:1fr 1fr}
    .radar-source-plan div{grid-template-columns:1fr;gap:2px}
    .address-compare-lens{grid-template-columns:1fr}
    .address-compare-card{grid-template-columns:24px 1fr;align-items:start}
    .address-compare-score{grid-column:2;display:flex;align-items:baseline;gap:6px;text-align:left;min-width:0}
    .address-compare-score strong{font-size:18px}
    .address-compare-metric{grid-template-columns:1fr;gap:5px}

    /* Layer toast adjusts for mobile search bar */
    .layer-toast{top:64px;transform:translateX(-50%) scale(0.9)}
    .layer-toast.show{transform:translateX(-50%) scale(1)}

    #overlay{background:rgba(0,20,60,.24);backdrop-filter:blur(2px);z-index:1050}
    body.mobile-workflow-fit #overlay{display:none}
    #onboarding{align-items:flex-end;justify-content:center;background:transparent;backdrop-filter:none;pointer-events:none;padding:0 10px calc(88px + env(safe-area-inset-bottom))}
    body.mobile-workflow-open #onboarding,body.mobile-panel-open #onboarding{display:none}
    .onboard-card{width:100%;max-width:430px;padding:18px 18px 16px;border:1px solid rgba(216,221,230,.92);border-radius:18px;box-shadow:0 14px 36px rgba(0,20,60,.18);text-align:left;pointer-events:auto}
    .onboard-card h2{font-size:19px;margin-bottom:6px}
    .onboard-card p{font-size:12px;margin-bottom:10px}
    .onboard-card ol{display:none}
    .onboard-actions button{min-height:44px}
}
@media(max-width:480px){
    .brand h1{font-size:14px}
    .metric-row{grid-template-columns:75px 1fr 58px;gap:5px}
}

/* ══════════════════════════════════
   Secondary Tools
   ══════════════════════════════════ */
.tools-drawer{margin:8px 8px 6px;padding:2px 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);background:transparent;overflow:visible}
.tools-drawer summary{display:grid;grid-template-columns:1fr 18px;gap:8px;align-items:center;padding:10px 4px;cursor:pointer;list-style:none;border-radius:10px}
.tools-drawer summary::-webkit-details-marker{display:none}
.tools-drawer summary:focus{outline:none}
.tools-drawer summary:focus-visible{outline:2px solid rgba(0,87,184,.28);outline-offset:2px}
.tools-drawer summary::after{content:'›';font-size:18px;line-height:1;color:var(--text-muted);justify-self:center;transform:rotate(0deg);transition:transform .15s var(--ease)}
.tools-drawer[open] summary::after{transform:rotate(90deg)}
.tools-drawer summary span{font-size:14px;font-weight:850;color:var(--text);line-height:1.2}
.tools-drawer summary small{display:block;grid-column:1;font-size:12px;line-height:1.35;color:var(--text-muted);margin-top:3px}
.tools-grid{display:grid;grid-template-columns:1fr;gap:2px;padding:0 0 8px;border-top:0}
.tool-recommendation{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin:0 0 6px;padding:9px 10px;border:1px solid rgba(0,87,184,.18);border-radius:var(--radius);background:var(--bg-surface)}
.tool-recommendation span{display:block;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.42px;color:var(--text-muted);line-height:1.2}
.tool-recommendation strong{display:block;margin-top:2px;font-size:13px;font-weight:950;line-height:1.15;color:var(--text)}
.tool-recommendation em{display:block;margin-top:2px;font-size:10px;font-style:normal;line-height:1.3;color:var(--text-muted)}
.tool-recommendation button{min-height:28px;padding:4px 9px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);font-family:var(--font);font-size:9px;font-weight:850;color:#fff;cursor:pointer;white-space:nowrap}
.tool-card{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:center;min-width:0;width:100%;padding:9px 8px;border:0;border-radius:10px;background:transparent;font-family:var(--font);text-align:left;cursor:pointer;transition:background .14s var(--ease), color .14s var(--ease)}
.tool-card:hover{background:var(--accent-light)}
.tool-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.tool-icon{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--border-light);color:var(--accent);font-size:11px;font-weight:900;line-height:1}
.tool-card strong{display:block;font-size:14px;font-weight:850;line-height:1.2;color:var(--text)}
.tool-card em{display:block;margin-top:2px;font-size:12px;font-style:normal;line-height:1.3;color:var(--text-muted)}

/* ══════════════════════════════════
   Shared Modal Base
   ══════════════════════════════════ */
#quiz-modal,#rent-check-modal,#bracket-modal,#methodology-modal{position:fixed;inset:0;background:rgba(0,20,60,.25);z-index:9998;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px);transition:opacity .3s}
#quiz-modal.hidden,#rent-check-modal.hidden,#bracket-modal.hidden,#methodology-modal.hidden{opacity:0;pointer-events:none}
.modal-close{position:absolute;top:10px;right:12px;background:none;border:none;font-size:16px;color:var(--text-muted);cursor:pointer;z-index:2;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .12s}
.modal-close:hover{background:var(--bg-hover);color:var(--text)}

/* Methodology */
.methodology-container{position:relative;background:var(--bg);border-radius:var(--radius);padding:20px 22px;max-width:620px;width:92%;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border-light)}
.methodology-head h2{font-size:18px;font-weight:900;color:var(--text);line-height:1.15;margin-bottom:6px}
.methodology-head p{font-size:12px;line-height:1.55;color:var(--text-dim);margin-bottom:10px}
.method-pill-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}
.method-pill-row span{padding:4px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:10px;font-weight:700;color:var(--text-dim)}
.methodology-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.methodology-notes div{padding:9px 10px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-sm)}
.methodology-notes strong{display:block;font-size:11px;color:var(--text);margin-bottom:2px}
.methodology-notes span{display:block;font-size:10px;line-height:1.35;color:var(--text-muted)}
.method-section-title{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:12px 0 6px}
.method-row{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg);margin-bottom:5px;overflow:hidden}
.method-row summary{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:9px 10px;cursor:pointer;list-style:none}
.method-row summary::-webkit-details-marker{display:none}
.method-name{font-size:12px;font-weight:800;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.method-confidence{padding:2px 6px;border-radius:var(--radius-sm);font-size:9px;font-weight:800}
.method-confidence.high{background:rgba(26,143,71,.1);color:var(--good)}
.method-confidence.medium{background:rgba(196,139,8,.12);color:var(--warn)}
.method-confidence.modelled{background:rgba(74,82,104,.1);color:var(--text-dim)}
.method-body{padding:0 10px 10px;border-top:1px solid var(--border-light)}
.method-body p{font-size:11px;line-height:1.5;color:var(--text-dim);margin:8px 0}
.method-meta{display:grid;grid-template-columns:54px 1fr;gap:8px;font-size:10px;line-height:1.35;margin-top:4px}
.method-meta span{color:var(--text-muted);font-weight:700}
.method-meta strong{color:var(--text);font-weight:650}

/* ══════════════════════════════════
   Quiz
   ══════════════════════════════════ */
.quiz-container{position:relative;background:var(--bg);border-radius:var(--radius);padding:20px 22px;max-width:380px;width:88%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border-light)}
.quiz-progress{height:3px;background:var(--bg-active);border-radius:2px;margin-bottom:16px;overflow:hidden}
.quiz-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .4s var(--ease)}
.quiz-step-label{font-size:9px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.quiz-question{font-size:16px;font-weight:800;color:var(--text);margin-bottom:14px;line-height:1.3}
.quiz-options{display:flex;flex-direction:column;gap:6px}
.quiz-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s var(--ease);background:var(--bg)}
.quiz-option:hover{border-color:var(--accent);background:var(--accent-light)}
.quiz-option:active{transform:scale(.98)}
.quiz-option-icon{font-size:20px;flex-shrink:0;line-height:1}
.quiz-option-text{font-size:12px;font-weight:500;color:var(--text)}
.quiz-back{display:inline-flex;align-items:center;gap:4px;margin-top:10px;background:none;border:none;font-family:var(--font);font-size:10px;font-weight:600;color:var(--text-muted);cursor:pointer;padding:3px 0}
.quiz-back:hover{color:var(--accent)}

/* Quiz Results */
.quiz-results{text-align:center}
.quiz-results-title{font-size:16px;font-weight:800;color:var(--text);margin-bottom:2px}
.quiz-results-sub{font-size:11px;color:var(--text-dim);margin-bottom:14px}
.quiz-match{position:relative;padding:12px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);margin-bottom:8px;text-align:left;cursor:pointer;transition:border-color .15s}
.quiz-match:hover{border-color:var(--accent)}
.quiz-match-top{border-color:var(--accent);background:var(--accent-light)}
.quiz-match-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.quiz-match-rank{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-hover);padding:2px 5px;border-radius:3px}
.quiz-match-rank.gold{background:var(--accent);color:#fff}
.quiz-match-name{font-size:14px;font-weight:800;color:var(--text)}
.quiz-match-vibe{font-size:9px;color:var(--text-muted)}
.quiz-match-score{position:absolute;top:12px;right:12px;font-size:18px;font-weight:800;color:var(--accent)}
.quiz-match-personality{font-size:10px;color:var(--text-dim);font-style:italic;line-height:1.5;margin-top:4px}
.quiz-actions{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap;justify-content:center}
.quiz-btn{padding:7px 14px;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s}
.quiz-btn-primary{background:var(--accent);color:#fff}
.quiz-btn-primary:hover{background:var(--accent-hover)}
.quiz-btn-secondary{background:var(--bg-surface);color:var(--text-dim);border:1px solid var(--border)}
.quiz-btn-secondary:hover{background:var(--bg-hover)}

/* ══════════════════════════════════
   Rent Reality Check
   ══════════════════════════════════ */
.rent-check-container{position:relative;background:var(--bg);border-radius:var(--radius);padding:20px 22px;max-width:400px;width:88%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border-light)}
.rc-title{font-size:14px;font-weight:800;color:var(--text);margin-bottom:12px}
.rc-input-group{margin-bottom:12px}
.rc-input-label{display:block;font-size:9px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.rc-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:14px;font-weight:600;color:var(--text);outline:none;box-sizing:border-box;transition:border-color .15s}
.rc-input:focus{border-color:var(--accent)}
.rc-rooms-pills{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.rc-room-pill{flex:1;padding:6px;background:var(--bg);border:none;font-family:var(--font);font-size:11px;font-weight:600;color:var(--text-dim);cursor:pointer;transition:all .12s;text-align:center;border-right:1px solid var(--border)}
.rc-room-pill:last-child{border-right:none}
.rc-room-pill.active{background:var(--accent);color:#fff}
.rc-check-btn{width:100%;padding:9px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:12px;font-weight:700;cursor:pointer;transition:background .15s;margin-top:4px}
.rc-check-btn:hover{background:var(--accent-hover)}

/* Rent Results */
.rc-hero{text-align:center;padding:12px 0;margin-bottom:10px}
.rc-hero-number{font-size:36px;font-weight:900;line-height:1}
.rc-hero-number.good{color:var(--good)}
.rc-hero-number.warn{color:var(--warn)}
.rc-hero-number.bad{color:var(--bad)}
.rc-hero-label{font-size:11px;color:var(--text-dim);margin-top:3px}
.rc-hero-sub{font-size:10px;color:var(--text-muted);margin-top:2px}
.rc-section-title{font-size:9px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin:10px 0 6px}
.rc-bar-list{max-height:260px;overflow-y:auto;margin-bottom:10px}
.rc-bar-row{display:grid;grid-template-columns:85px 1fr 65px;align-items:center;gap:6px;padding:3px 4px;font-size:11px;border-radius:3px}
.rc-bar-row.affordable{background:var(--accent-light)}
.rc-bar-row.user-quartier{font-weight:700;background:#e8f5e9}
.rc-bar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.rc-bar-track{height:6px;background:var(--bg-active);border-radius:3px;position:relative;overflow:hidden}
.rc-bar-fill{height:100%;border-radius:3px;transition:width .3s var(--ease)}
.rc-bar-price{text-align:right;font-weight:600;color:var(--text-dim)}
.rc-user-line{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--accent);border-radius:1px;z-index:1}
.rc-alt-section{margin-top:10px}
.rc-alt-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);margin-bottom:6px;cursor:pointer;transition:all .12s}
.rc-alt-card:hover{border-color:var(--accent);background:var(--accent-light)}
.rc-alt-name{font-size:12px;font-weight:700;color:var(--text)}
.rc-alt-detail{font-size:10px;color:var(--text-dim)}
.rc-alt-saving{font-size:11px;font-weight:700;color:var(--good);text-align:right}
.rc-context-box{font-size:11px;line-height:1.5;color:var(--text-dim);padding:8px 10px;background:var(--bg-surface);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:10px}
.rc-market-tick{position:absolute;top:-1px;bottom:-1px;width:2px;background:var(--bad);border-radius:1px;opacity:0.6}
.rc-bar-legend{font-size:9px;color:var(--text-muted);display:flex;align-items:center;gap:8px;margin-bottom:8px}
.rc-legend-bar{display:inline-block;width:16px;height:5px;background:var(--good);border-radius:2px}
.rc-legend-tick{display:inline-block;width:2px;height:10px;background:var(--bad);border-radius:1px;opacity:0.6}

/* ══════════════════════════════════
   Quartier Vote (FaceMash-style Elo)
   ══════════════════════════════════ */
.bracket-container{position:relative;background:var(--bg);border-radius:var(--radius);padding:18px 20px;max-width:520px;width:92%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border-light)}
.vote-header{text-align:center;margin-bottom:14px}
.vote-title{font-size:16px;font-weight:800;color:var(--text)}
.vote-subtitle{font-size:10px;color:var(--text-muted);margin-top:2px}
.vote-count{display:inline-block;padding:2px 8px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:10px;font-weight:600;color:var(--text-dim);margin-top:6px}
.vote-global-badge{display:inline-block;padding:1px 5px;background:var(--good);color:#fff;font-size:8px;font-weight:700;border-radius:3px;letter-spacing:.3px;vertical-align:middle}
.vote-matchup{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:stretch}
.vote-card{padding:14px 12px;border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .18s var(--ease);position:relative;text-align:center}
.vote-card:hover{border-color:var(--accent);background:var(--accent-light);transform:scale(1.02);box-shadow:var(--shadow-md)}
.vote-card:active{transform:scale(.98)}
.vote-card-name{font-size:15px;font-weight:800;color:var(--text);margin-bottom:2px}
.vote-card-vibe{font-size:10px;color:var(--text-muted);margin-bottom:8px}
.vote-card-stats{display:flex;flex-direction:column;gap:3px}
.vote-stat{display:flex;justify-content:space-between;font-size:10px;padding:1px 4px;color:var(--text-dim)}
.vote-stat-val{font-weight:600}
.vote-stat-val.better{color:var(--good)}
.vote-card-elo{font-size:9px;color:var(--text-muted);margin-top:8px;padding-top:6px;border-top:1px solid var(--border-light)}
.vote-card-elo strong{color:var(--text-dim);font-weight:700}
.vote-vs{align-self:center;font-size:18px;font-weight:900;color:var(--border);text-align:center;line-height:1}
.vote-cta{display:block;text-align:center;font-size:8px;color:var(--text-muted);margin-top:6px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}

/* Vote result flash */
.vote-card.winner{border-color:var(--good);background:rgba(26,143,71,.06);animation:voteWin .3s var(--ease)}
.vote-card.loser{opacity:.4;transform:scale(.97)}
@keyframes voteWin{0%{transform:scale(1)}50%{transform:scale(1.04)}100%{transform:scale(1)}}

/* Ranking table */
.vote-ranking{margin-top:16px;padding-top:14px;border-top:1px solid var(--border-light)}
.vote-ranking-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.vote-ranking-title{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}
.vote-ranking-toggle{background:none;border:none;font-family:var(--font);font-size:10px;font-weight:600;color:var(--accent);cursor:pointer;padding:0}
.vote-ranking-toggle:hover{color:var(--accent-hover)}
.vote-ranking-list{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto}
.vote-rank-row{display:grid;grid-template-columns:22px 1fr 50px 42px;align-items:center;gap:4px;padding:4px 6px;border-radius:var(--radius-sm);font-size:11px;transition:background .1s;cursor:pointer}
.vote-rank-row:hover{background:var(--bg-hover)}
.vote-rank-pos{font-weight:800;color:var(--text-muted);text-align:center;font-size:10px}
.vote-rank-row:nth-child(1) .vote-rank-pos{color:var(--accent)}
.vote-rank-row:nth-child(2) .vote-rank-pos{color:var(--good)}
.vote-rank-row:nth-child(3) .vote-rank-pos{color:var(--warn)}
.vote-rank-name{font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vote-rank-elo{font-weight:700;color:var(--accent);text-align:right;font-variant-numeric:tabular-nums;font-size:10px}
.vote-rank-record{font-size:9px;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}
.vote-rank-bar{height:3px;background:var(--bg-active);border-radius:2px;overflow:hidden;grid-column:2/5;margin-top:-1px}
.vote-rank-bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s var(--ease)}

/* Actions */
.vote-actions{display:flex;gap:6px;justify-content:center;margin-top:14px}

/* Mobile adjustments for modals */
@media(max-width:768px){
    #quiz-modal,#rent-check-modal,#bracket-modal,#methodology-modal{align-items:flex-end}
    .quiz-container,.rent-check-container,.bracket-container,.methodology-container{max-width:100%;width:100%;max-height:85vh;border-radius:12px 12px 0 0;border:none;border-top:1px solid var(--border)}
    .methodology-notes{grid-template-columns:1fr}
    .vote-matchup{grid-template-columns:1fr;gap:6px}
    .vote-vs{padding:2px 0;font-size:14px}
    .quiz-question{font-size:15px}
}
