@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#203b35;background:#f4f6f3;font-size:16px;--green:#184d40;--lime:#dcf39d;--muted:#73817b}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #bb8b21;outline-offset:4px}button{transition:background .18s,transform .18s}button:hover:not(:disabled){filter:brightness(.97)}.sidebar{width:236px;position:fixed;inset:0 auto 0 0;background:#123e37;color:#fff;padding:34px 22px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-size:14px;letter-spacing:3px;color:white;text-decoration:none;line-height:1.6}.brand b{font-size:21px;letter-spacing:5px}.brand-icon{font-size:36px;color:var(--lime);line-height:1}.company{display:flex;gap:11px;align-items:center;margin:40px 0 27px;padding:18px 0;border-top:1px solid #ffffff1a;border-bottom:1px solid #ffffff1a}.company strong{font-size:14px}.company small{font-size:12px;display:block;color:#b2c4bc;margin-top:5px}.avatar{display:grid;place-items:center;width:36px;height:36px;background:#31564d;border-radius:50%;font-size:12px}nav{display:grid;gap:8px}.nav{background:transparent;border:0;text-align:left;color:#bfcec8;border-radius:9px;padding:14px 13px;font-size:20px;display:flex;gap:12px;align-items:center}.nav span{font-size:14px;font-weight:600}.nav.active{background:var(--lime);color:#173e31}.side-bottom{margin-top:auto;padding-top:30px}.prototype{font-size:10px;letter-spacing:1.5px;color:#bcd78f}.side-bottom p{font-size:21px;line-height:1.5;font-family:Manrope,sans-serif}.text-btn{background:none;border:0;color:inherit;font-size:14px;text-decoration:underline;text-underline-offset:4px;padding:5px 0}.side-bottom .text-btn{color:#c0d1c7}.shell{margin-left:236px}header{height:80px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e0e7df;background:#fcfdfb}.breadcrumb{font-size:14px;color:var(--muted)}.breadcrumb span{margin:0 14px;color:#b2bdb5}.breadcrumb strong{color:#27483c;font-weight:500}.header-right{display:flex;align-items:center;gap:20px}.save{font-size:12px;color:#77867d}.round{width:30px;height:30px;border-radius:50%;border:1px solid #d9e1d8;background:none;color:var(--green)}main{padding:35px 38px 18px;max-width:1640px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#7f8b77;margin-bottom:10px}h1{font-family:Manrope,sans-serif;font-size:32px;letter-spacing:-1.4px;line-height:1.2;margin:0 0 10px;font-weight:800}.page-title p{margin:0;color:var(--muted);font-size:14px}.clock{min-width:164px;text-align:right}.clock span{font-size:16px;font-weight:700}.clock small{display:block;font-size:12px;color:var(--muted);margin-top:6px}.clock-track{height:3px;background:#dde5d6;margin-top:10px;border-radius:5px;overflow:hidden}.clock-track i{display:block;background:#57846b;height:100%;width:0}.stats{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.1fr;gap:1px;border:1px solid #e0e7dd;background:#e0e7dd;border-radius:13px;overflow:hidden;margin-bottom:26px}.stats>div{background:#fff;padding:20px 23px}.stats span{display:block;color:#738078;font-size:12px}.stats strong{display:block;font-family:Manrope,sans-serif;font-size:25px;letter-spacing:-.6px;margin:7px 0}.stats small{font-size:12px;color:#819086}.stats .goal-stat{font-size:17px;letter-spacing:-.3px;margin:13px 0}.green{color:#397651}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:22px}.map-panel{position:relative;background:#377e74;border-radius:15px;overflow:hidden;min-height:405px}.map-art{position:absolute;width:100%;height:100%;object-fit:cover}.map-panel:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#123e3740,transparent 38%,#123e374d);pointer-events:none}.map-head{position:absolute;z-index:1;top:22px;left:23px;color:white}.map-head h2{margin:0 0 4px;font-size:20px}.map-head span{font-size:12px}.map-label{position:absolute;bottom:16px;left:20px;z-index:1;background:#ffffffea;padding:9px 13px;border-radius:8px;font-size:12px}.map-pin{position:absolute;z-index:2;border:2px solid #fff;background:#fff;color:#244d3a;box-shadow:0 5px 15px #163a3433;padding:8px 11px;border-radius:20px;font-size:12px;font-weight:700}.map-pin.owned{background:var(--lime);border-color:var(--lime)}.map-pin:hover{transform:translateY(-3px)}.mission{background:#edf2e4;border:1px solid #dbe5ce;border-radius:14px;padding:23px;display:flex;flex-direction:column}.mission .eyebrow{color:#627442}.mission h2{font-family:Manrope,sans-serif;font-size:23px;letter-spacing:-.7px;line-height:1.3;margin:9px 0 12px}.mission p{color:#6a7a62;font-size:14px;line-height:1.65;margin:0 0 17px}.mission ol{padding:0;list-style:none;margin:0 0 24px;display:grid;gap:14px}.mission li{font-size:14px;display:flex;gap:9px;align-items:center}.step{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:50%;border:1px solid #b8c8a5;font-size:12px;flex-shrink:0}.step.done{background:#2e6951;color:white;border-color:#2e6951}.mission .primary{margin-top:auto}.primary{border:0;border-radius:8px;background:var(--green);color:#fff;padding:13px 17px;font-size:14px;font-weight:600}.secondary{border:1px solid #d7e1d6;border-radius:8px;background:#fff;color:var(--green);padding:12px 17px;font-size:14px;font-weight:600}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:28px 0 15px}.section-head h2{font-family:Manrope,sans-serif;font-size:19px;margin:0;letter-spacing:-.4px}.section-head p{color:var(--muted);font-size:12px;margin:6px 0 0}.section-head button{border:0;background:none;color:var(--green);font-size:14px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.property{background:#fff;border:1px solid #e0e6dd;border-radius:12px;overflow:hidden}.property-art{height:128px;position:relative;overflow:hidden;background:#d4e4d9}.property-art img{width:100%;height:100%;object-fit:cover;transform:scale(1.7)}.property:nth-child(3n+2) img{object-position:80% 30%}.property:nth-child(3n+3) img{object-position:15% 90%}.property-tag{position:absolute;left:13px;top:12px;background:#fffef2ef;border-radius:5px;padding:5px 8px;font-size:10px;font-weight:700;letter-spacing:.6px}.property-body{padding:17px}.property h3{margin:0 0 5px;font-size:16px}.location{font-size:12px;color:var(--muted)}.property-numbers{display:flex;justify-content:space-between;gap:8px;margin:18px 0;align-items:flex-end}.property-numbers strong{font-size:20px;font-family:Manrope,sans-serif;letter-spacing:-.7px}.property-numbers .yield{font-size:13px;color:#397651;text-align:right}.property-numbers small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.property .secondary{width:100%;padding:10px}.property .secondary:hover{background:#edf3e7}.empty{padding:55px 25px;background:#fff;border:1px dashed #ced9cc;border-radius:14px;text-align:center}.empty h2{font-size:22px}.empty p{font-size:16px;line-height:1.6;color:var(--muted);max-width:450px;margin:12px auto 25px}.filters{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap}.filters button{border:1px solid #d6dfd3;background:white;color:#5c7061;border-radius:24px;padding:8px 15px;font-size:14px}.filters button.active{background:var(--green);color:white;border-color:var(--green)}.job{background:#fff;border:1px solid #dce5d9;padding:22px;border-radius:12px;margin-bottom:15px}.job h3{margin:0 0 8px}.job p{font-size:14px;color:var(--muted)}progress{width:100%;height:9px;accent-color:var(--green)}.finance-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.panel{background:#fff;border:1px solid #dce5d9;border-radius:12px;padding:24px}.panel h2{font-size:19px;margin:0 0 22px}.ledger{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #edf0e8;font-size:14px}.ledger small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.ledger strong{white-space:nowrap}.note{font-size:12px;color:var(--muted);line-height:1.6;margin-top:20px}.negative{color:#a45f43}footer{display:flex;justify-content:space-between;gap:20px;padding:27px 0 8px;color:#7f8c80;font-size:12px;align-items:center}dialog{border:0;border-radius:18px;width:480px;max-width:calc(100% - 28px);padding:0;color:#203b35;box-shadow:0 30px 100px #102d3544}dialog::backdrop{background:#092f2aa6;backdrop-filter:blur(4px)}.dialog-inner{padding:28px}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-top h2{font-family:Manrope,sans-serif;font-size:24px;letter-spacing:-.5px;margin:0}.close{border:0;background:#edf2e8;border-radius:50%;height:32px;width:32px;font-size:22px;flex-shrink:0}.dialog-inner p{color:#728071;line-height:1.6;font-size:14px}.detail-values{display:grid;grid-template-columns:1fr 1fr;gap:20px;background:#f2f5ed;border-radius:10px;padding:18px;margin:20px 0}.detail-values small{display:block;color:#778371;font-size:12px;margin-bottom:5px}.detail-values strong{font-size:19px}.actions{display:grid;gap:10px;margin-top:20px}.dialog-inner .note{font-size:12px}#toast{position:fixed;left:calc(50% + 118px);bottom:25px;transform:translate(-50%,20px);background:#153f35;color:white;padding:15px 22px;border-radius:10px;z-index:10;box-shadow:0 8px 30px #103a3333;max-width:90%;width:max-content;font-size:14px;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1550px){.map-panel{min-height:490px}.property-art{height:160px}}@media(max-width:1150px){.sidebar{width:205px;padding:30px 16px}.shell{margin-left:205px}main{padding:28px 24px}header{padding:0 24px}.main-grid{grid-template-columns:minmax(0,1fr) 255px}.stats>div{padding:16px}.stats strong{font-size:21px}.stats .goal-stat{font-size:14px}#toast{left:calc(50% + 102px)}.map-panel{min-height:390px}}
@media(max-width:850px){.sidebar{width:76px;padding:25px 12px}.brand>span:last-child,.company,.side-bottom,.nav span{display:none}.brand{justify-content:center}nav{margin-top:35px}.nav{justify-content:center;padding:13px 0}.shell{margin-left:76px}.main-grid{grid-template-columns:1fr}.mission{display:grid;grid-template-columns:1fr 1fr;gap:0 25px;padding:20px}.mission .eyebrow,.mission h2,.mission p{grid-column:1}.mission ol{grid-column:2;grid-row:1/4;margin:5px 0}.mission .primary{grid-column:2}.map-panel{min-height:390px}.stats{grid-template-columns:1fr 1fr}.stats>div{padding:17px 20px}.stats .goal-stat{font-size:17px}.stats strong{font-size:23px}.cards{gap:12px}.property-body{padding:13px}.property-numbers{display:block}.property-numbers .yield{text-align:left;margin-top:9px}.finance-grid{grid-template-columns:1fr}#toast{left:calc(50% + 38px)}}
@media(max-width:580px){.sidebar{inset:auto 0 0;width:100%;height:76px;padding:0 8px calc(env(safe-area-inset-bottom)/2);z-index:5;border-top:1px solid #ffffff22}.brand{display:none}nav{display:flex;justify-content:space-around;margin:0;height:100%;gap:2px}.nav{flex:1;flex-direction:column;gap:5px;font-size:22px;border-radius:0;padding:10px 2px;background:none!important;color:#acc1b5}.nav span{display:block;font-size:10px;font-weight:500}.nav[data-tab=marche] span{font-size:0}.nav[data-tab=marche] span:after{content:'Marché';font-size:10px}.nav[data-tab=quartier] span{font-size:0}.nav[data-tab=quartier] span:after{content:'Quartier';font-size:10px}.nav[data-tab=patrimoine] span{font-size:0}.nav[data-tab=patrimoine] span:after{content:'Mes biens';font-size:10px}.nav.active{color:var(--lime);box-shadow:inset 0 3px var(--lime)}.shell{margin-left:0}header{height:56px;padding:0 18px}.save{font-size:10px;max-width:100px;text-align:right}.header-right{gap:12px}.breadcrumb{font-size:12px}.breadcrumb span{margin:0 5px}main{padding:23px 16px 95px}.eyebrow{font-size:9px;letter-spacing:1.6px}h1{font-size:27px;letter-spacing:-1px}.page-title{align-items:flex-start;margin-bottom:21px;gap:10px}.page-title p{font-size:12px;line-height:1.5;max-width:225px}.clock{min-width:75px;padding-top:20px}.clock span{font-size:13px}.clock small{font-size:10px;max-width:85px;line-height:1.4}.stats{margin-bottom:18px}.stats>div{padding:14px 13px}.stats strong{font-size:21px}.stats .goal-stat{font-size:14px;margin:10px 0}.stats span,.stats small{font-size:10px}.main-grid{gap:15px}.map-panel{min-height:320px}.map-head{top:17px;left:17px}.map-head h2{font-size:18px}.map-pin{font-size:10px;padding:7px 8px}.map-label{font-size:10px;left:12px}.mission{display:block;padding:20px}.mission h2{font-size:21px;margin:3px 0 8px}.mission p{font-size:13px;margin-bottom:12px}.mission ol{gap:10px;margin:16px 0}.mission .primary{width:100%}.cards{grid-template-columns:1fr}.property{display:grid;grid-template-columns:100px 1fr}.property-art{height:100%;min-height:174px}.property-art img{transform:scale(1)}.property-tag{left:6px;top:9px;font-size:9px;padding:5px}.property-body{padding:14px}.property h3{font-size:15px}.property-numbers{display:flex;margin:13px 0}.property-numbers strong{font-size:18px}.property-numbers .yield{font-size:12px;margin:0;text-align:right}.section-head{margin-top:23px}.section-head h2{font-size:18px}.section-head button{font-size:12px}.property .secondary{font-size:12px;padding:8px;min-height:36px}footer{align-items:flex-start;line-height:1.5;gap:15px}footer span{max-width:190px}.text-btn{font-size:12px}#toast{left:50%;bottom:90px;max-width:calc(100% - 25px);text-align:center;font-size:13px}.dialog-inner{padding:22px}.dialog-top h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.event-panel{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;background:#fff;border:1px solid #ccdcb8;border-left:5px solid #86a75e;border-radius:13px;padding:24px;margin-bottom:23px}.event-panel h2{font:700 23px Manrope,sans-serif;margin:8px 0 12px;letter-spacing:-.6px}.event-panel p{font-size:16px;line-height:1.65;margin:0 0 12px;color:#627662}.event-panel small{font-size:12px;line-height:1.6;color:#74846d;display:block}.event-actions{display:grid;gap:8px;align-content:center}.event-actions span{font-size:12px;color:#74846d;margin-bottom:7px;line-height:1.5}.bonus-banner{background:#dff1c7;color:#285139;border:1px solid #bdd89e;padding:13px 18px;border-radius:10px;font-size:14px;margin-bottom:16px}.market-banner{display:flex;justify-content:space-between;gap:25px;border-radius:12px;background:#e9efdf;padding:22px;margin-bottom:16px}.market-banner strong{font-size:18px}.market-banner p{font-size:14px;line-height:1.7;color:#68765f;margin:8px 0 0;max-width:560px}.market-banner>span{min-width:135px;text-align:right;font-size:12px;line-height:1.8;color:#68765f}.market-banner b{font-size:20px;color:#244b3b}.districts{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}.districts span{font-size:12px;padding:8px 12px;border-radius:6px;background:#e9ece7;color:#798276}.districts .unlocked{background:#e0ecd7;color:#365e3e}.objective{padding:16px 0;border-bottom:1px solid #e3e9df}.objective strong{font-size:16px}.objective p{margin:6px 0 10px}.objective small{font-size:12px;color:#738068;display:block;margin-top:7px}dialog{max-height:85dvh;overflow:auto}.mission>.text-btn{margin-top:14px;align-self:center}.filters button{min-height:44px}.property .secondary{min-height:44px}.nav span{font-size:14px}.property-numbers small,.stats small,.stats span,.location,.property-tag,.eyebrow,.save{font-size:12px}.property-tag{letter-spacing:0}.page-title p{font-size:16px}.stats .goal-stat{line-height:1.4}.map-pin{min-height:40px;font-size:12px}
@media(max-width:850px){.event-panel{grid-template-columns:1fr}.mission>.text-btn{grid-column:1/-1}.stats>div{min-width:0}}
@media(max-width:580px){.event-panel{padding:18px;gap:16px}.event-panel h2{font-size:21px}.event-panel p{font-size:14px}.event-actions button{min-height:46px}.market-banner{display:block;padding:18px}.market-banner>span{display:block;text-align:left;margin-top:12px}.districts{gap:7px}.districts span{font-size:12px}.property-numbers{flex-wrap:wrap}.property-numbers strong{font-size:18px}.property-numbers .yield{font-size:13px}.property .secondary{font-size:14px}.nav span{font-size:12px}.nav[data-tab=marche] span:after,.nav[data-tab=quartier] span:after,.nav[data-tab=patrimoine] span:after{font-size:12px}.stats .goal-stat{font-size:14px}.page-title p{font-size:14px}.clock{min-width:66px}.clock small{font-size:12px}.map-pin{padding:6px;min-height:38px}.property-art{min-height:185px}.save{font-size:12px}.header-right{gap:6px}.breadcrumb{max-width:150px}.dialog-inner{padding:20px}.dialog-inner p{font-size:16px}.text-btn{font-size:14px}}
[hidden]{display:none!important}.connection-panel{margin:65px auto;max-width:530px;padding:35px;text-align:center}.connection-panel p{font-size:16px;line-height:1.7;color:#6a7e70}.connection-panel a{display:inline-block;text-decoration:none;margin:15px 0}.sync-error{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:15px;border:1px solid #dfba74;background:#fff4d9;border-radius:10px;margin-bottom:18px;font-size:14px}.nav>svg{width:22px;height:22px;flex-shrink:0}.type-icon{position:absolute;right:12px;bottom:12px;width:45px;height:45px;border-radius:12px;background:#123e37;color:#e0f4ae;display:grid;place-items:center;box-shadow:0 4px 12px #123e3730}.type-icon svg{width:25px;height:25px}.property-title{display:flex;align-items:center;gap:12px}.property-title svg{width:28px;height:28px;flex-shrink:0}.map-pin{display:flex;align-items:center;gap:5px}.map-pin svg{width:18px;height:18px}.round{display:inline-grid;place-items:center}.round svg{width:18px;height:18px}.company strong{display:block;max-width:135px;overflow:hidden;text-overflow:ellipsis}.actions a{text-align:center;text-decoration:none}.saving [data-action],.saving [data-event],.saving #confirm-reset{pointer-events:none;opacity:.5}.sidebar .avatar{flex-shrink:0}.property-art{background:#ccddd1}#sync-error[hidden]{display:none}.header-right{gap:12px}
@media(max-width:580px){.type-icon{right:10px;bottom:14px;width:40px;height:40px}.map-pin{font-size:11px;gap:3px}.map-pin svg{width:16px;height:16px}.map-pin{padding:6px}.header-right{gap:5px}.save{max-width:88px;font-size:11px}.breadcrumb{font-size:12px}.connection-panel{margin:45px auto;padding:24px}.sync-error{display:block}.sync-error button{margin-top:10px}dialog{max-height:82dvh}.nav>svg{width:22px;height:22px}}

.finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.finance-summary h2{margin:10px 0;overflow-wrap:anywhere}.finance-chart{display:flex;gap:12px;overflow-x:auto;padding:12px 0}.finance-column{flex:1;min-width:90px;display:flex;flex-direction:column;gap:6px;font-size:12px}.finance-bars{height:145px;display:flex;align-items:flex-end;gap:5px;border-bottom:1px solid #ccd7ce}.finance-bars span{width:42%;min-height:2px;border-radius:5px 5px 0 0}.bar-revenue{background:#28745c}.bar-expense{background:#cb8544}@media(max-width:600px){.finance-summary{grid-template-columns:1fr}.finance-summary .panel{display:flex;align-items:center;justify-content:space-between;padding:16px}.finance-summary h2{font-size:22px}.finance-column{min-width:86px}}

/* Property filtering and selection: shared green palette, touch-sized controls. */
.property-filters{background:#fff;border:1px solid #d5ddcf;border-radius:16px;padding:16px;margin:20px 0;color:#153f37}.property-filters summary{cursor:pointer;font-weight:700;min-height:28px}.filter-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-top:16px}.filter-fields label{display:flex;flex-direction:column;gap:8px}.filter-fields select,.filter-fields input[type=number]{width:100%;min-height:44px;border:1px solid #a7b9ae;border-radius:8px;padding:8px;background:#fff;color:#153f37;font:inherit}.property-select{display:flex;align-items:center;gap:10px;padding:14px;background:#eef3e8;color:#153f37;font-size:14px;min-height:48px}.property-select input,.filter-fields input[type=checkbox]{accent-color:#153f37;width:21px;height:21px;flex-shrink:0}.selection-bar{padding:16px;background:#e6f4bf;border:1px solid #b4ce8d;border-radius:14px;margin-bottom:20px}.selection-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.selection-actions button{min-height:44px}.property-body button{display:flex;align-items:center;justify-content:center;gap:8px}.property-body button svg{width:20px;height:20px}.compare-scroll{overflow-x:auto}.compare-scroll table{width:100%;border-collapse:collapse}.compare-scroll th,.compare-scroll td{text-align:left;padding:12px;border-bottom:1px solid #d5ddcf;min-width:110px}@media(max-width:600px){.filter-fields{grid-template-columns:1fr}.selection-actions button{flex:1 1 130px}.property-select{font-size:13px}}

.work-timer{display:flex;flex-direction:column;gap:8px;background:#eef3e8;color:#153f37;border:1px solid #d5ddcf;border-radius:12px;padding:14px;margin:12px 0;min-width:0;width:100%;box-sizing:border-box}.work-timer strong{font-size:20px;font-variant-numeric:tabular-nums}.work-timer span,.work-timer small{font-size:12px}.work-timer progress{width:100%;height:8px;accent-color:#153f37}.work-timer progress::-webkit-progress-bar{background:#dbe6ce;border-radius:6px}.work-timer progress::-webkit-progress-value{background:#153f37;border-radius:6px}

.ppe-panel{margin-top:24px}.ppe-panel input{display:block;max-width:100%;padding:12px;border:1px solid #a7b9ae;border-radius:8px;font:inherit}.ppe-panel h3{margin-top:24px}
/* v1.6: predictable full-width cards on touch screens. */
.property{display:flex;flex-direction:column;min-width:0;position:relative}.property-art{height:190px;min-height:190px;width:100%;order:0}.property-art img{transform:none;object-position:center!important;width:100%;height:100%}.property-body{width:100%;min-width:0;display:flex;flex-direction:column;flex:1;padding:18px}.property h3{font-size:18px;line-height:1.35;overflow-wrap:break-word}.property-select{order:1;padding:10px 18px;gap:8px;font-size:13px}.property-body{order:2}.property-numbers{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin:18px 0}.property-numbers>div{min-width:0}.property-numbers strong{font-size:22px}.property-body>.secondary{margin-top:auto;min-height:46px}.property-body button svg{flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.detail-photo{width:100%;height:210px;object-fit:cover;border-radius:12px}.clock{min-width:150px;flex-shrink:0}.clock span{white-space:nowrap}.city-map{background:#fff;border:1px solid #d6e0d1;border-radius:16px;overflow:hidden;min-width:0}.city-map-heading{display:flex;align-items:center;justify-content:space-between;padding:20px;gap:12px}.city-map h2{margin:0;font-size:22px}.city-map-heading p,.map-note{font-size:12px;color:#667b70;line-height:1.5}.map-count{background:#e6f4bf;padding:8px 12px;border-radius:20px;white-space:nowrap;font-size:12px}.map-controls{display:flex;gap:12px;padding:0 20px 16px}.map-controls label{font-size:12px;flex:1;min-width:0}.map-controls select{display:block;width:100%;margin-top:6px;background:#fff;color:#184d40;border:1px solid #cbd8c4;padding:10px;border-radius:8px;min-height:44px}.map-viewport{overflow-x:auto}.map-canvas{position:relative;min-width:620px;aspect-ratio:720/420}.city-plan{width:100%;height:100%;display:block}.map-canvas .map-pin{transform:translateX(-50%);min-height:44px;white-space:nowrap}.map-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;font-size:12px}.map-note{margin:0;padding:0 20px 16px}.map-empty{position:absolute;top:35%;left:20%;background:white;padding:16px;border-radius:12px}#renovation-range{width:100%;accent-color:#184d40;min-height:44px}.range-labels{display:flex;justify-content:space-between;font-size:12px;color:#667b70}
@media(max-width:580px){.cards{grid-template-columns:minmax(0,1fr)}.property{display:flex;grid-template-columns:none}.property-art{height:190px;min-height:190px}.property-body{padding:18px}.property h3{font-size:19px}.property-numbers .yield{margin:0;text-align:right}.page-title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.clock{min-width:125px;text-align:right}.clock span{font-size:14px}.clock small{display:block;font-size:11px}.page-title h1{font-size:25px}.page-title p{font-size:13px}.selection-actions button{font-size:13px}.detail-photo{height:180px}}

/* 1.7.1: quiet, accessible photo selection and separated detail header. */
.property-select{position:absolute;top:8px;right:8px;z-index:3;width:44px;height:44px;min-height:44px;padding:4px;display:grid;place-items:center;background:none;cursor:pointer;border-radius:50%;margin:0}
.property-select input{position:absolute;inset:0;width:44px;height:44px;margin:0;opacity:0;cursor:pointer;z-index:2}
.selection-check{width:34px;height:34px;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:#fffffff2;color:#184d40;box-shadow:0 2px 8px #123e3730;transition:background .15s}
.selection-check svg{width:21px;height:21px;opacity:0}
.property-select input:checked+.selection-check{background:#184d40;color:#dcf39d}
.property-select input:checked+.selection-check svg{opacity:1}
.property-select input:focus-visible+.selection-check{outline:3px solid #bb8b21;outline-offset:3px}
.property:has(.property-select input:checked){border-color:#184d40;box-shadow:0 0 0 2px #184d40}
.property-tag{max-width:calc(100% - 72px)}
.dialog-top{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:14px;align-items:start;margin-bottom:20px}
.dialog-top h2{min-width:0;overflow-wrap:anywhere;line-height:1.3}
.dialog-top .property-title{display:block;padding-left:36px;position:relative}
.property-title>svg{position:absolute;left:0;top:2px;width:26px;height:26px}
.dialog-top .close{width:44px;height:44px;display:grid;place-items:center;line-height:1;color:#184d40;align-self:start}
.detail-photo{display:block;height:180px;margin:0 0 16px}
@media(max-width:580px){.detail-photo{height:150px}.dialog-top h2{font-size:20px}.dialog-top{gap:10px;margin-bottom:18px}.dialog-inner{padding:20px}.clock small{max-width:none}}

/* Quick property filters: reset is accessible without opening the drawer. */
.quick-filters{display:grid;gap:10px;margin:10px 0}.status-shortcuts{display:flex;gap:8px;overflow-x:auto;padding:0}.status-chip{flex-shrink:0;min-height:44px;padding:10px 16px;border:1px solid #d5dfd5;background:#fff;color:#365e50;border-radius:24px;font-size:14px}.status-chip.active{background:#184d40;color:white;border-color:#184d40}.active-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-chip{display:inline-flex;align-items:center;gap:12px;min-height:44px;border:0;border-radius:22px;padding:8px 14px;background:#e9efdf;color:#184d40;font-size:13px}.filter-chip span{font-size:21px;line-height:1}.filter-reset{min-height:44px;border:0;background:transparent;color:#184d40;font-weight:700;padding:8px 12px;text-decoration:underline;text-underline-offset:4px}

.real-city{position:relative;min-width:675px;max-width:none;background:#eef0df}.real-city>.city-plan{position:absolute;inset:0;width:100%;height:100%}.parcel-hit{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border:0;background:transparent;padding:0;display:grid;place-items:center}.parcel-dot{width:13px;height:13px;border:3px solid white;border-radius:50%;background:#184d40;box-shadow:0 2px 6px #173e3744}.parcel-hit.owned .parcel-dot{background:#88a94a}.parcel-price{display:none;position:absolute;bottom:39px;white-space:nowrap;background:#184d40;color:white;padding:8px;border-radius:8px;font-size:12px}.parcel-hit:hover .parcel-price,.parcel-hit:focus-visible .parcel-price{display:block}.parcel-hit:focus-visible{outline:3px solid #b28c37;border-radius:50%;z-index:5}.property-specs{display:flex;gap:8px;flex-wrap:wrap}.property-specs span{background:#eef3e8;padding:8px 12px;border-radius:12px;font-size:13px}.property-address{font-weight:600}#rental-rate{display:block;width:100%;min-height:44px;margin:10px 0;padding:10px;border:1px solid #cbd8c4;border-radius:8px;background:white;font:inherit;color:#184d40}
/* 1.9 — concise management panels, matching the existing palette. */
.attention .section-head{margin:0 0 14px}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:4px 9px;background:#e4efca;border-radius:20px;font-size:16px}.attention-list{display:grid;gap:8px;max-height:300px;overflow:auto}.attention-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:5px;background:#f3f5ef;color:#194b40;border:0;border-radius:12px;padding:14px;width:100%}.attention-item span{font-size:13px;color:#62786a}.local-news{border-left:4px solid #96aa68}.property-profit{margin:20px 0}.property-profit summary{cursor:pointer;font-weight:700;color:#194b40}.auction-layout{display:grid;grid-template-columns:180px 1fr;gap:22px}.auction-layout img{width:100%;height:150px;object-fit:cover;border-radius:12px}.policy-options{display:grid;gap:12px}.policy-options article{padding:18px;background:#f3f5ef;border-radius:14px;border:1px solid #dce4d7}.policy-options h3{margin:0 0 8px}.policy-options p{font-size:15px}.renew-option{display:flex;align-items:center;gap:10px;margin-top:18px}.renew-option input{width:24px;height:24px}#auction-amount,#agency-limit,#agency-mode{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd8ce;border-radius:10px;margin:10px 0 18px}.property-profit .finance-column{min-width:70px}.property-profit .finance-chart{overflow-x:auto}.auction-panel,.local-news,.attention{margin-bottom:22px}@media(max-width:600px){.auction-layout{grid-template-columns:1fr}.auction-layout img{height:150px}.attention .section-head{align-items:flex-start;gap:10px}.property-profit{padding:16px}}
/* 1.9.1: responsive map, controls stay outside the scrolling canvas. */
.map-stage{position:relative;background:#f0f0e3}.map-stage .map-viewport{width:100%;height:400px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.map-stage .real-city{min-width:0;position:relative;max-width:none}.map-tools{position:absolute;right:12px;top:12px;z-index:8;display:flex;flex-direction:column;align-items:center;gap:2px;background:#ffffffed;border:1px solid #d7dfd1;border-radius:15px;padding:4px;box-shadow:0 4px 16px #234b3b1a}.map-tools button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;background:transparent;border:0;border-radius:10px;color:#184d40;font-size:26px;touch-action:manipulation}.map-tools button:hover{background:#e6eddb}.map-tools button:disabled{opacity:.3}.map-tools button:focus-visible{outline:3px solid #9baf6f}.map-tools [data-map-scale]{font-size:10px;font-weight:700;color:#617769}.map-compass{position:absolute;bottom:12px;left:12px;background:#ffffffe8;border-radius:30px;padding:8px 12px;color:#426752;font-size:12px;pointer-events:none}.map-footer{gap:12px;color:#607366}.map-key{display:inline-block;width:9px;height:9px;border-radius:50%;background:#235d48;margin-right:5px}.parcel-dot{width:10px;height:10px;border-width:2px;box-shadow:0 1px 5px #163a374d}.parcel-hit{width:36px;height:36px;min-height:36px;min-width:36px}.parcel-price{bottom:32px}.city-map-heading p{margin:4px 0 0}.map-note{font-size:11px}
@media(max-width:600px){.map-stage .map-viewport{height:280px}.city-map-heading{padding:14px 14px 10px;align-items:flex-start}.city-map h2{font-size:21px}.city-map-heading p{font-size:11px;max-width:210px}.map-count{padding:6px 9px;font-size:11px}.map-controls{padding:0 14px 12px;gap:9px}.map-controls label{font-size:11px}.map-controls select{font-size:12px;padding:8px;min-height:40px}.map-footer{padding:10px 14px;font-size:11px}.map-note{padding:0 14px 12px}.map-tools{right:8px;top:8px}.city-map{border-radius:18px}}
/* Dedicated toolbar prevents controls covering a property marker. */
.map-stage{padding-top:58px}.map-tools{top:6px;right:10px;flex-direction:row;padding:0 4px;border-radius:12px;gap:0}.map-tools [data-map-scale]{min-width:40px;text-align:center}.map-tools button{min-height:44px;min-width:44px}.map-compass{bottom:10px}@media(max-width:600px){.map-tools{top:6px;right:8px}}
/* 1.10 — construction, visible selection totals and insurance workspace. */
#selection-dock{position:fixed;left:256px;right:20px;bottom:18px;z-index:7;max-width:1050px;margin:auto}#selection-dock[hidden]{display:none}.selection-dock-inner{display:flex;align-items:center;gap:14px;padding:13px 16px;background:#fff;border:1px solid #c4d4bd;border-radius:16px;box-shadow:0 6px 30px #163d3526}.selection-dock-inner>div{flex:1;min-width:0}.selection-dock-inner small{display:block;font-size:12px;color:#65796b}.selection-dock-inner strong{display:block;font-size:23px;color:#184d40}.selection-dock-inner .primary{min-height:44px;padding:10px 18px}.dock-clear{background:#eef2e9;border:0;color:#456652;width:40px;height:44px;border-radius:10px;font-size:24px}.has-selection main{padding-bottom:150px}.property-tabs{display:flex;gap:8px;margin-bottom:20px;background:#e9eee3;border-radius:14px;padding:5px}.property-tabs button{flex:1;display:flex;justify-content:center;align-items:center;gap:8px;padding:12px;background:transparent;border:0;border-radius:10px;color:#59715f}.property-tabs button.active{background:#fff;box-shadow:0 2px 6px #173e3712;color:#164d3f;font-weight:700}.insurance-shield{width:24px;height:24px;display:inline-block;vertical-align:middle;flex-shrink:0}.shield-tile{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#e2edcc;color:#275744;flex-shrink:0}.shield-tile svg{width:30px;height:30px}.insurance-hero{display:flex;gap:14px;align-items:center;margin:22px 0}.insurance-hero h2{margin:0}.insurance-hero p{margin:5px 0;color:#6a7b70}.insurance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.insurance-summary>div{padding:16px;background:#fff;border:1px solid #d9e2d4;border-radius:13px}.insurance-summary strong{display:block;font-size:23px;color:#194b40}.insurance-summary span{font-size:12px;color:#6b7e70}.insurance-hub-actions{display:flex;gap:10px;flex-wrap:wrap}.insurance-contract{border:1px solid #d7e1d0;border-radius:17px;padding:22px;margin:18px 0;background:#fff}.insurance-contract-head{display:flex;align-items:center;gap:12px}.insurance-contract-head>div{flex:1;min-width:0}.insurance-contract-head h3{margin:3px 0;font-size:17px;overflow-wrap:anywhere}.insurance-contract-head .eyebrow{font-size:9px;letter-spacing:1.3px}.coverage-badge{font-size:11px;border-radius:20px;padding:7px 10px;background:#e3edce;color:#355b39;white-space:nowrap}.is-uncovered .coverage-badge{background:#f4e9d6;color:#806435}.insurance-contract h4{font-size:21px;color:#194b40;margin:20px 0 12px}.coverage-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#dfe5d9;border:1px solid #dfe5d9;border-radius:12px;overflow:hidden;margin-bottom:14px}.coverage-grid span{padding:12px;background:#f5f7f0;color:#6d7f70;font-size:12px}.coverage-grid b{display:block;margin-top:5px;color:#275341;font-size:15px}.coverage-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #e6ebdf;font-size:14px}.coverage-row span{color:#6c7b6f}.insurance-claim{background:#f8f1e6;border-radius:12px;padding:16px;margin-top:18px}.insurance-plan h3{display:flex;gap:9px;align-items:center}.insurance-plan>strong{font-size:26px;color:#184d40}.insurance-plan>strong small{font-size:12px;font-weight:400}.construction-options{display:grid;grid-template-columns:1fr;gap:16px}.construction-option{border:1px solid #d7e1ce;background:#f6f8f1;border-radius:15px;padding:18px}.construction-option h3{display:flex;align-items:center;gap:10px;margin-top:0}.construction-option h3 svg{width:26px;height:26px}.construction-option.unavailable{opacity:.65}.permit-steps{display:flex;gap:6px;margin:18px 0}.permit-steps span{flex:1;padding:10px 5px;text-align:center;border-radius:9px;background:#e9f0da;color:#43634d;font-size:12px}.permit-card{border-left:4px solid #a4b776}
@media(max-width:1150px){#selection-dock{left:225px}}@media(max-width:850px){#selection-dock{left:92px}}@media(max-width:580px){#selection-dock{left:10px;right:10px;bottom:calc(84px + env(safe-area-inset-bottom)/2)}.selection-dock-inner{padding:10px 12px;gap:8px;border-radius:13px}.selection-dock-inner strong{font-size:20px}.selection-dock-inner small{font-size:10px}.selection-dock-inner .primary{padding:10px 13px;font-size:13px}.dock-clear{width:32px}.has-selection main{padding-bottom:205px}.insurance-summary{gap:6px}.insurance-summary>div{padding:12px 9px}.insurance-summary strong{font-size:18px}.insurance-summary span{font-size:10px}.insurance-contract{padding:16px}.insurance-contract-head{flex-wrap:wrap}.insurance-contract-head .coverage-badge{margin-left:60px}.insurance-hero h2{font-size:23px}.insurance-hub-actions{display:grid}.coverage-row{font-size:13px}.property-tabs button{font-size:14px}}

/* 1.11: direct filters and insurance selection */
.type-shortcuts{display:flex;gap:8px;overflow-x:auto;padding:0;max-width:100%}.type-shortcuts button{flex-shrink:0;white-space:nowrap}.loan-fields{display:grid;gap:16px}.loan-fields label{display:grid;gap:6px}.insurance-choice>label{display:flex;align-items:center;gap:10px;padding:14px;font-weight:600}.insurance-choice input{width:22px;height:22px;accent-color:#194e40}.insurance-selection{position:sticky;top:8px;z-index:5;display:flex;gap:8px;flex-wrap:wrap;padding:12px;border:1px solid #cbd8c2;border-radius:16px;background:#f3f6ed;box-shadow:0 4px 16px #173c2915}.insurance-selection strong{flex-basis:100%}.attention summary{padding:16px 0;cursor:pointer}

.attention-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;padding:0;font-size:1.15rem}.attention-fold>summary::-webkit-details-marker{display:none}.fold-icon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e8efdc;color:#194e40;flex-shrink:0}.fold-icon:before{content:'+';font-size:24px}.attention-fold[open]>summary .fold-icon:before{content:'−'}

.back-top{position:fixed;right:16px;bottom:24px;z-index:20;width:44px;height:44px;border-radius:50%;border:1px solid #cbd7be;background:#f4f7eb;color:#174e40;font-size:25px;box-shadow:0 3px 14px #173e3720}.back-top[hidden]{display:none}.has-selection .back-top{bottom:120px}.account-reset{margin:24px 0;padding-top:16px;border-top:1px solid #d9dfd2}@media(max-width:580px){.back-top{bottom:calc(88px + env(safe-area-inset-bottom)/2)}.has-selection .back-top{bottom:calc(184px + env(safe-area-inset-bottom)/2)}}

/* 1.12: proportional city plan and compact map */
.map-stage{--map-height:360px;background:#eef0e3}.map-stage .map-viewport{height:var(--map-height)}.map-stage .real-city{width:max(calc(100% * var(--map-zoom,1)),calc(var(--map-height) * 1.25 * var(--map-zoom,1)));height:auto;aspect-ratio:5/4;min-width:0}.real-city>.city-plan{position:absolute;inset:0;width:100%;height:100%}.map-stage .map-tools{position:relative;inset:auto;flex-direction:row;justify-content:flex-end;border:0;border-radius:0;box-shadow:none;background:#fafbf6;padding:5px 12px;border-bottom:1px solid #dce3d4}.map-stage{display:flex;flex-direction:column}.map-stage .map-tools{order:-1}.map-tools button{min-width:40px;min-height:40px}.map-tools [data-map-scale]{min-width:45px;text-align:center}.parcel-dot{display:grid;place-items:center;width:20px;height:20px;border:2px solid #fff;background:#1d5748;color:#fff;font-size:14px;font-weight:700;box-shadow:0 2px 6px #163b3730}.owned .parcel-dot{background:#dbe9ae;color:#174c3d}.parcel-hit:focus-visible{outline:3px solid #a9bd78;border-radius:50%}.city-map{box-shadow:0 5px 22px #29493408}.map-compass{font-weight:600;font-size:10px}.map-footer{background:#fafbf6}.map-note{padding-top:6px;background:#fafbf6}@media(max-width:600px){.map-stage{--map-height:270px}.city-map-heading p{max-width:190px}.map-controls{padding-bottom:9px}.map-stage .map-tools{padding:3px 10px}.map-tools button{min-width:38px;min-height:38px}.map-note{font-size:10px}}
/* 1.13: choices without new navigation tabs */
.decision-options{display:grid;gap:12px}.decision-options .panel{margin:0;padding:18px}.decision-options h3{margin:0 0 12px}.contractor-choices{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.budget-result{background:#edf2df;border-radius:14px;padding:18px;margin:18px 0}.budget-result span,.budget-result strong{display:block}.budget-result strong{font-size:28px;margin-top:8px}.financial-warning{border-left:4px solid #bc9855;background:#fbf7ed}.goal-horizon{margin-top:24px}.map-news{margin:0;padding:10px 14px;background:#e6edd9;color:#315745;font-size:12px;line-height:1.5}.decision-options button{width:100%}

/* 1.14 enlarged map and coherent renovation photography */
.main-grid>.city-map{grid-column:1/-1}.map-stage{--map-height:640px}.map-expand{font-size:13px!important;padding:0 12px!important;margin-right:auto!important}.photo-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0 18px}.photo-controls span{font-size:12px;color:#6a786b}.map-open{overflow:hidden}.city-map.map-expanded{position:fixed;inset:12px;z-index:55;overflow:auto;box-shadow:0 0 0 100vmax #173b3780}.map-expanded .map-stage{--map-height:calc(100dvh - 265px)}@media(max-width:600px){.map-stage{--map-height:520px}.city-map.map-expanded{inset:8px}.map-expanded .map-stage{--map-height:calc(100dvh - 240px)}.map-expanded .map-note{display:none}}

/* 1.15: fit whole city, compact mobile, explicit expand control */
.map-stage{--map-height:400px}.map-stage .real-city{width:min(calc(100% * var(--map-zoom,1)),calc(var(--map-height) * 1.25 * var(--map-zoom,1)));height:auto;aspect-ratio:5/4;margin:0 auto;min-width:0}.map-heading-actions{display:flex;align-items:center;gap:8px}.map-expand-toggle{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1px solid #c8d6bc;background:#edf3df;color:#1c5142;font-size:26px;line-height:1}.map-city-reset{font-size:12px!important;padding:0 9px!important;margin-right:auto!important}.map-cluster{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid #b9ccb0;border-radius:12px;background:#fffffff2;color:#194e40;box-shadow:0 2px 8px #23473322;padding:6px 9px;min-width:65px;min-height:44px}.map-cluster strong{font-size:18px}.map-cluster span{font-size:10px;white-space:nowrap}.map-cluster:focus-visible,.map-expand-toggle:focus-visible{outline:3px solid #a0b36c;outline-offset:2px}.map-expanded .map-stage{--map-height:max(180px,calc(100dvh - 270px))}@media(max-width:600px){.map-stage{--map-height:260px}.map-heading-actions{gap:5px}.map-count{padding:5px 7px}.map-cluster{padding:5px 7px}.map-expanded .map-stage{--map-height:max(160px,calc(100dvh - 255px))}.city-map-heading p{max-width:180px}}
/* Compact mobile ergonomics and expanded game, v2 */
.hub-links,.list-toolbar,.property-pager{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.hub-links{overflow:auto;flex-wrap:nowrap;padding-bottom:5px}.hub-links button{white-space:nowrap;min-height:44px}.list-toolbar label{flex:1;min-width:170px}.list-toolbar input{width:100%}.compact-fold>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;font-size:17px;font-weight:700;list-style:none;min-height:44px}.compact-fold>summary::-webkit-details-marker{display:none}.fold-plus:after{content:'+';font-size:24px}.compact-fold[open]>.fold-plus:after,.compact-fold[open]>summary .fold-plus:after{content:'−'}.fold-content{padding-top:14px}.fold-content .panel{padding:12px;box-shadow:none}.compact-fold{padding:16px!important}.property-kind{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.favorite-btn{border:0;background:none;color:#285447;font-size:24px;min-width:44px;min-height:44px}.image-select{display:block;border:0;padding:0;background:transparent;width:100%;height:100%;cursor:pointer}.property-art .property-tag,.property-art .type-icon{pointer-events:none}.property.is-selected{outline:2px solid #285e4c;outline-offset:-2px}.property.is-selected .property-art{box-shadow:inset 0 0 0 3px #285e4c}.property-address{font-size:12px;color:#526e60;line-height:1.5}.list-mode{display:flex!important;flex-direction:column;gap:10px!important}.list-mode .property{display:grid!important;grid-template-columns:90px minmax(0,1fr);align-items:stretch}.list-mode .property-art{height:100%;min-height:120px!important;max-height:none}.list-mode .property-art img{height:100%;object-fit:cover}.list-mode .property-tag,.list-mode .type-icon{display:none}.list-mode .property-body{padding:12px}.list-mode .property h3{font-size:16px;margin:2px 0}.list-mode .property-select{right:5px;top:5px;width:32px;height:32px}.list-mode .property-body{padding-right:42px}.list-mode .property-numbers{margin:8px 0;gap:10px}.list-mode .property-numbers strong{font-size:17px}.list-mode .yield small:last-child,.list-mode .location{display:none}.list-mode .property .secondary{min-height:40px}.back-left .back-top{left:16px;right:auto}.modal-back-top{position:sticky;bottom:12px;float:right;margin:0 14px 14px;width:44px;height:44px;border-radius:50%;border:1px solid #cbd7be;background:#f4f7eb;color:#174e40;font-size:25px;z-index:2}.back-left .modal-back-top{float:left}.large-text .dialog-inner p,.large-text .location,.large-text .property-address,.large-text .note{font-size:18px!important}.large-text button{font-size:17px}#sticky-finances{position:fixed;top:0;left:236px;right:0;z-index:22;background:#123e37;color:#edf7e0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 20px;box-shadow:0 3px 15px #173e3720;font-size:13px}#sticky-finances[hidden]{display:none}.avatar-large{font-size:48px;color:#235748}#detail label{display:block;margin:12px 0}#detail select,#detail input[type=number],#detail textarea{max-width:100%;width:100%;border:1px solid #ccd8c9;border-radius:10px;padding:10px;background:#fff;color:#214639;font:inherit}#detail .dialog-top{position:sticky;top:0;background:#fff;z-index:3;padding:8px 0}#detail .dialog-top .close{min-width:44px;min-height:44px}.stock-chart{width:100%;height:65px}.shared-property img{display:block;max-width:100%;border-radius:10px;margin-bottom:10px}.summary-item{display:block;width:100%;margin-bottom:8px;text-align:left}.chat-messages{max-height:280px;overflow:auto;overflow-wrap:anywhere}#advisor-answer{white-space:pre-wrap}.property-pager button{flex:1}.list-toolbar button{min-height:44px}.map-stage svg text{paint-order:stroke;stroke:#f7f6ec;stroke-width:2px;stroke-linejoin:round}.image-select:focus-visible{outline-offset:-4px}.property-art img{pointer-events:none}
@media(max-width:800px){#sticky-finances{left:0;padding:10px 12px;font-size:11px}#sticky-finances strong{font-size:14px}.hub-links{margin:8px 0 14px}.list-toolbar{align-items:end}.list-mode .property-body{padding:10px 38px 10px 10px}.list-mode .property-numbers{flex-wrap:wrap}.large-text #sticky-finances{font-size:11px}}

/* 2.0.1 — stable selection, photo-free list and floating map controls */
.view-switch{display:flex;align-self:end;gap:3px;padding:4px;border:1px solid #d7e1d6;border-radius:14px;background:#eaf0e5}
.view-switch button{border:0;border-radius:10px;background:transparent;color:#506a5b;padding:10px 17px;min-height:44px;font-weight:600}
.view-switch button[aria-pressed="true"]{background:#184d40;color:#fff;box-shadow:0 2px 5px #183e3715}
.property,.property-art,.image-select,.property-art img{transition:none!important;transform:none!important}
.image-select:hover,.image-select:active{filter:none!important;transform:none!important}
.property-select{touch-action:manipulation}.property .selection-check{transition:background-color .12s!important;transform:none!important}
.list-mode .property{grid-template-columns:minmax(0,1fr)!important;border-radius:14px}
.list-mode .property-art{display:none!important}
.list-mode .property-body{padding:12px 54px 12px 16px!important}
.list-mode .property-select{right:9px;top:12px;width:36px;height:36px}
.list-mode .property-kind{min-height:30px}.list-mode .favorite-btn{min-height:36px;height:36px}
.list-mode .property-numbers{margin:8px 0 12px}.list-mode .property h3{font-size:16px;line-height:1.4}
.list-mode .property-address{font-weight:400}.list-mode .property .secondary{width:auto;min-height:44px;padding:8px 14px}
/* Reserve footer space before the first selection, avoiding a layout jump. */
main,.has-selection main{padding-bottom:150px}
.map-stage{display:block;background:#e8ede4;border-top:1px solid #dde5d8;border-bottom:1px solid #dde5d8}
.map-stage .map-tools{position:absolute;top:12px;right:12px;left:auto;bottom:auto;order:initial;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:5px;border:1px solid #d1ddce;border-radius:18px;background:#fffffff5;box-shadow:0 5px 20px #264e3c18}
.map-tools button{min-width:44px;min-height:44px;border-radius:12px}.map-tools [data-map-scale]{min-width:44px;padding:3px 0}
.map-overview{position:absolute;bottom:12px;left:12px;z-index:8;min-height:44px;padding:9px 14px;border:1px solid #d1ddce;border-radius:24px;background:#fffffff5;color:#184d40;font:inherit;font-size:12px;font-weight:600;box-shadow:0 3px 12px #264e3c12}
.map-compass{left:auto;right:15px;bottom:15px;background:transparent;padding:5px;font-size:12px}
.city-map{border:1px solid #d6e0d0;border-radius:22px;overflow:hidden;background:#fff}
.city-map-heading{padding:20px 20px 12px}.city-map-heading h2{letter-spacing:-.7px}.map-controls{padding:0 20px 16px}
.map-cluster{border:1px solid #ffffff;border-radius:18px;background:#184d40;color:#fff;box-shadow:0 4px 12px #173e3724;padding:8px 12px}
.map-cluster strong{font-size:20px}.map-cluster span{color:#e0edcf;font-weight:500}
.map-stage svg text{stroke-width:1px}.map-footer{background:#fff;padding:12px 18px}.map-note{background:#fff;margin:0;padding:0 18px 14px;color:#778778}
@media(max-width:600px){main,.has-selection main{padding-bottom:205px}.list-toolbar>label{flex-basis:100%}.view-switch{flex:1}.view-switch button{flex:1}.city-map-heading{padding:14px}.map-controls{padding:0 14px 12px}.map-stage .map-tools{right:8px;top:8px}.map-overview{bottom:8px;left:8px}.map-stage{--map-height:280px}}
@media(prefers-reduced-motion:reduce){button{transition:none!important}}

/* 2.1 — compact sheets and readable financial tools */
body:not(.keyboard-input) .close:focus{outline:none!important;box-shadow:none}.keyboard-input .close:focus-visible{outline:2px solid #285e4c;outline-offset:3px}
#detail .close{background:transparent;border:1px solid #dce5d6;color:#184d40;font-size:25px}
.property-intro .detail-photo{height:150px!important;max-height:150px!important;object-fit:cover;margin:12px 0;border-radius:14px}
.property-intro p{margin:8px 0;font-size:13px!important}.detail-values{margin:12px 0;gap:12px;padding:14px}
.property-action-dock{position:sticky;bottom:0;background:#fffffff5;padding:12px 0 4px;display:grid;grid-template-columns:1fr;gap:8px;border-top:1px solid #dce4d7;z-index:4}.property-action-dock button{min-height:44px}
.essential-alert{border-left:3px solid #b8904b;background:#f7f0e2;padding:10px 12px;border-radius:8px;color:#775b30!important}
.compact-fold{margin:10px 0;border-radius:12px;box-shadow:none}.compact-fold>summary{font-size:14px!important;font-weight:600}.compact-fold .fold-content>.panel{border:0;margin:0}
.finance-summary .panel{padding:14px}.finance-summary h2{margin:8px 0 0;font-size:22px}.finance-chart{max-height:190px}.finance-grid{gap:10px}
.portrait{display:inline-block;width:36px;height:36px;vertical-align:middle;flex-shrink:0}.avatar .portrait{width:36px;height:36px}.avatar-editor{padding:16px;border:1px solid #dbe5d5;border-radius:16px;margin:16px 0}#avatar-preview{text-align:center}#avatar-preview .portrait{width:112px;height:112px}.avatar-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.avatar-fields label{font-size:12px}.avatar-fields select{min-height:44px}.chat-message{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid #e4eadf}.chat-message>div{min-width:0;flex:1}.chat-message small{display:block;font-size:11px;color:#6c7e6c}.chat-message p{margin:5px 0!important;color:#294b3e!important}.chat-message .text-btn{font-size:11px}.chat-messages{max-height:38dvh}.advisor-suggestions{display:flex;gap:6px;flex-wrap:wrap}.advisor-suggestions button{font-size:12px;min-height:44px;padding:8px 10px}
.insurance-simple-filters{display:flex;gap:8px;margin:16px 0}.insurance-type-label{display:flex;align-items:center;gap:12px;font-size:13px;margin-bottom:16px}.insurance-type-label select{min-height:44px;border:1px solid #d7e0d0;border-radius:10px;padding:8px;background:#fff;color:#184d40;max-width:65%}.insurance-row{background:#fff;border:1px solid #dce5d7;border-radius:14px;padding:14px;margin:10px 0}.insurance-row-head{display:flex;align-items:center;gap:10px}.insurance-row-head>div{flex:1;min-width:0}.insurance-row-head strong{font-size:14px}.insurance-row-head small{display:block;color:#6d7c6c;font-size:12px;margin-top:5px}.insurance-row-head input{width:24px;height:24px;flex-shrink:0;accent-color:#184d40}.insurance-row-head button{min-height:44px}.insurance-row .compact-fold{border:0;border-top:1px solid #e4eadd;border-radius:0;margin:10px 0 0;padding:8px 0 0!important}.insurance-row .insurance-contract{border:0;padding:0;margin:0}.insurance-row .insurance-contract-head{display:none}.insurance-batch{position:sticky;bottom:100px;z-index:9;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;padding:14px;border:1px solid #b9ceac;border-radius:14px;box-shadow:0 4px 16px #184d4020}.insurance-batch[hidden]{display:none}.property-tabs{background:transparent;border-radius:0;border-bottom:1px solid #dce5d7;padding:0;gap:20px}.property-tabs button{flex:initial;border-radius:0;padding:12px 2px;background:transparent!important;box-shadow:none!important}.property-tabs button.active{border-bottom:2px solid #184d40}
.market-hero{background:#f0f5e9;border:1px solid #dbe5d0;border-radius:16px;padding:16px;margin:12px 0}.market-hero h2{display:flex;justify-content:space-between;gap:12px;font-size:19px!important}.market-hero small{font-size:11px;color:#627660}.market-hero p{margin:8px 0}.market-chart{width:100%;height:95px}.market-balances{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 0}.market-balances small,.market-balances strong{display:block}.market-balances small{font-size:12px;color:#6d7e6c}.market-balances strong{font-size:19px;margin-top:6px}.stock-table-wrap{width:100%;overflow-x:auto}.stock-table{border-collapse:collapse;width:100%;font-size:12px;table-layout:fixed}.stock-table th{text-align:left;color:#6c7c6b;font-size:10px;font-weight:500;padding:10px 4px;border-bottom:1px solid #dae4d1}.stock-table td{padding:12px 4px;border-bottom:1px solid #e4ecdd;vertical-align:middle;overflow-wrap:anywhere}.stock-table th:nth-child(1){width:26%}.stock-table th:nth-child(2){width:28%}.stock-table th:nth-child(3){width:14%}.stock-table th:nth-child(4){width:32%}.stock-table small{display:block;font-size:10px;margin-top:5px}.stock-row-actions{display:flex;flex-direction:column;gap:5px}.stock-row-actions button{font-size:11px;padding:7px 3px;min-height:44px}.stock-table strong{font-size:12px}.stock-table tbody tr:hover{background:#f5f8f0}
@media(min-width:700px){.stock-row-actions{flex-direction:row}.stock-row-actions button{flex:1}.property-intro .detail-photo{height:180px!important;max-height:180px!important}.insurance-batch{bottom:20px}}

.simple-policy-list{display:grid;gap:12px}.simple-policy{border:1px solid #d9e4d0;border-radius:14px;padding:14px}.simple-policy>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px}.simple-policy h3{margin:0}.simple-policy>p{font-size:12px!important;margin:8px 0}.simple-policy .compact-fold{border:0;padding:0!important;margin:4px 0 10px}.simple-policy>.primary{width:100%;min-height:44px}.insurance-row .insurance-contract h4{font-size:17px;margin-top:12px}.avatar-fields{grid-template-columns:1fr 1fr}

/* 2.1.1 — continuous city and compact navigation */
.map-stage{padding-top:0;display:block;--map-height:440px;background:#e9eadf}
.map-stage .map-viewport{touch-action:none;scrollbar-width:none;display:block}
.map-stage .map-viewport::-webkit-scrollbar{display:none}
.map-stage .real-city{width:calc(100% * var(--map-zoom,1));aspect-ratio:5/4;margin:0;min-width:0}
.map-stage .map-tools{top:10px;right:10px;padding:2px;border-radius:12px;gap:0}
.map-tools button{min-width:32px;min-height:32px;width:32px;height:32px;font-size:21px;border-radius:8px}
.map-tools [data-map-scale]{display:none}
.map-cluster{min-width:0;min-height:36px;flex-direction:row;gap:6px;padding:5px 8px;border-radius:30px;background:#fffef8ee;color:#214e42;box-shadow:0 2px 8px #203e3020}
.map-cluster strong{display:grid;place-items:center;font-size:12px;width:24px;height:24px;border-radius:50%;background:#1f5648;color:white}
.map-cluster span{font-size:10px;color:#285445}
.map-overview{font-size:11px;padding:8px 12px;min-height:34px;border-radius:20px;bottom:10px;left:10px}
.map-help{margin:0;padding:0 14px 10px;border:0;background:#fafbf6;font-size:11px;color:#65796c}
.map-help summary{padding:4px 0;min-height:26px;font-size:11px}.map-help .map-note{padding:8px 0}
.map-footer{padding:9px 14px;font-size:11px}
@media(max-width:600px){.map-stage{--map-height:calc((100vw - 32px) * .8)}.map-stage .map-tools{top:8px;right:8px}.map-cluster span{font-size:9px}.map-cluster{gap:4px;padding:4px 6px}.map-cluster strong{width:21px;height:21px;font-size:11px}.map-expand-toggle{width:36px;height:36px;font-size:23px}.map-heading-actions{gap:6px}.city-map-heading p{font-size:11px}.map-expanded .map-stage{--map-height:calc(100dvh - 250px)}}
/* 2.2 — compact, consistent controls */
#detail:not(:focus-visible),body:not(.keyboard-input) #detail,body:not(.keyboard-input) #detail .close{outline:none;box-shadow:none}
#detail .close{width:32px;height:32px;min-width:32px;min-height:32px;flex:0 0 32px;background:#f0f3ed;border:0;border-radius:50%;font-size:23px;padding:0;margin:0}
#detail .dialog-top{gap:12px;align-items:center;margin-bottom:16px}.property-back{display:none}
.property-page-top .property-title{font-size:20px;line-height:1.25;margin:0;flex:1;min-width:0}
.property-page .property-intro p{margin:8px 0;font-size:13px}.property-page .detail-photo{height:160px;margin:0 0 10px}
.property-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 0}.property-pager button{padding:6px 10px;min-height:36px;font-size:12px}.property-pager small{font-size:11px;white-space:nowrap}
.property-map-link{font-size:12px;padding:8px 0}.repair-alert{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:13px;padding:10px 12px;margin:8px 0}.repair-alert button{font-size:13px;min-height:36px;font-weight:700}
.property-controls{position:absolute;left:8px;top:8px;z-index:3;display:flex;flex-direction:column;align-items:center;gap:0;width:36px}
.property .property-controls .property-select{position:relative;inset:auto;width:36px;height:36px;min-height:36px;padding:6px;background:transparent;display:grid;place-items:center;order:initial}
.property-select .selection-check{display:grid;place-items:center;width:22px;height:22px;border:1px solid #aab9b0;background:#fff;border-radius:50%;font-size:13px;color:transparent;box-shadow:none}
.property-select input{position:absolute;opacity:0;width:32px;height:32px;margin:0;cursor:pointer}
.property-select input:checked+.selection-check{background:#205648;color:#fff;border-color:#205648}.property-select input:focus-visible+.selection-check{outline:2px solid #a48c45;outline-offset:2px}
.property-controls .favorite-btn{position:relative;inset:auto;display:grid;place-items:center;min-width:34px;width:34px;min-height:34px;height:34px;border:0;border-radius:50%;padding:0;background:#fffffff0;color:#1c5142;font-size:22px}
.property-tag{left:52px;right:auto;top:12px;font-size:10px;max-width:calc(100% - 64px)}
.card-manage{align-self:flex-end;min-height:38px!important;padding:8px 12px!important;display:flex;align-items:center;justify-content:center;gap:8px}.card-manage svg{width:20px;height:20px}.property-body .card-manage{width:auto!important;margin-top:6px!important}
.cards.list-mode{display:flex!important;flex-direction:column!important;gap:8px!important}
.cards.list-mode .compact-property{display:grid!important;grid-template-columns:36px minmax(0,1fr) auto!important;align-items:center;gap:8px;padding:8px!important;min-height:0!important;border-radius:12px;position:relative}
.compact-property .property-controls{position:static;grid-column:1;grid-row:1;gap:0}.compact-main{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:2px;min-width:0;border:0;background:transparent;text-align:left;padding:0;color:#20463d;cursor:pointer}
.compact-main>strong{font-size:14px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.compact-kind{font-size:10px;font-weight:600;color:#587064}.compact-address{font-size:10px;color:#738077;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.compact-figures{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline;font-size:10px}.compact-figures b{font-size:13px}.compact-figures>span{color:#537b63}.compact-alert{color:#987342;font-size:10px;font-weight:700}
.compact-manage{grid-column:3;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:36px;min-height:36px;border:0;background:#edf2e8;border-radius:9px;padding:6px;color:#235548;font-size:10px;gap:3px}.compact-manage svg{width:19px;height:19px}
.compact-property.is-selected{border-color:#336c58;background:#f2f7ec}.compact-main:focus-visible,.compact-manage:focus-visible{outline:2px solid #a48c45;outline-offset:2px}
.finance-page{display:flex;flex-direction:column;gap:12px}.finance-page>*,.finance-page .finance-grid>*{margin:0!important}.finance-page .finance-grid{display:contents}.finance-page .compact-fold{margin:0!important}.finance-page details>summary{padding:14px 16px!important;min-height:54px!important;font-size:15px!important}.finance-page .finance-summary{gap:12px}.finance-chart{overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:8px}.finance-column{min-width:86px}
#content .insurance-row{margin:0 0 12px;padding:14px}.insurance-row .essential-alert{padding:10px;font-size:13px}.insurance-row .essential-alert button{font-size:13px}.insurance-row .compact-fold>summary{min-height:46px;padding:10px 0}.insurance-row-head small{font-size:12px}
.property-action-dock{gap:8px}.property-action-dock button{min-height:42px;font-size:13px}.map-focused .parcel-dot{outline:4px solid #d7b64f;outline-offset:3px;box-shadow:0 0 0 10px #fff9}.map-focused .parcel-price{display:block}
@media(max-width:600px){
 #detail.property-page{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding:0;overflow-y:auto;overscroll-behavior:contain}
 #detail.property-page #dialog-content{padding:0!important}.property-page .dialog-inner{padding:0 16px calc(env(safe-area-inset-bottom,0px) + 12px)}
 .property-page .property-page-top{position:sticky;top:0;z-index:8;background:#fff;padding:calc(env(safe-area-inset-top,0px) + 12px) 0 12px;margin:0 0 12px;border-bottom:1px solid #e1e7dd}
 .property-page .property-back{display:grid;place-items:center;width:34px;height:34px;min-width:34px;border:0;background:#eef3e9;border-radius:50%;color:#214f43;font-size:21px;padding:0}.property-page .property-page-top>.close{display:none}
 .property-page-top .property-title{font-size:17px}.property-page .detail-values{padding:12px;gap:10px}.property-page .detail-values strong{font-size:21px}.property-page .detail-values small{font-size:11px}
 .property-page .property-action-dock{position:sticky;bottom:0;margin:12px -16px calc(-1 * env(safe-area-inset-bottom,0px));padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #dce5d7;z-index:7;display:flex;flex-wrap:wrap}.property-page .property-action-dock>button{flex:1;min-width:120px}
 .property-page .modal-back-top{bottom:100px;width:34px;height:34px;font-size:22px;z-index:9}.property-page details>summary{min-height:48px!important;padding:12px!important;font-size:14px!important}
 .finance-page{gap:10px}.finance-page details>summary{min-height:50px!important}.selection-dock-inner small{font-size:10px}.selection-dock-inner strong{font-size:16px}
}

.avatar-live{display:flex;align-items:center;gap:16px;margin:12px 0}.avatar-live #avatar-preview{width:96px;min-width:96px;height:96px;margin:0}.avatar-live p{font-size:13px;line-height:1.5}
.avatar-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.avatar-presets button{display:flex;flex-direction:column;align-items:center;gap:5px;border:1px solid #dbe3d6;border-radius:12px;background:#f7f9f3;padding:8px 4px;color:#244b40;font-size:11px}.avatar-presets button[aria-pressed=true]{background:#e4efd5;border-color:#2b6351}.avatar-presets svg{width:60px;height:60px}
.avatar-choice-group{border:0;padding:0;margin:0 0 14px;min-width:0}.avatar-choice-group legend{font-size:13px;font-weight:700;margin-bottom:6px}.avatar-choice-group>div{display:flex;gap:6px;flex-wrap:wrap}.avatar-choice{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:58px;padding:5px;border:1px solid #dce4d7;border-radius:10px;background:#fff;color:#345a4b;font-size:10px}.avatar-choice svg{width:44px;height:44px}.avatar-choice[aria-pressed=true]{border:2px solid #295f4d;padding:4px;background:#edf4e3}.avatar-choice:disabled{opacity:.4}.avatar-choice:focus-visible,.avatar-presets button:focus-visible{outline:2px solid #a48c45;outline-offset:2px}
.avatar-editor>.primary{margin-top:12px;width:100%}.avatar-editor .compact-fold{margin:12px 0}.avatar-editor #avatar-feedback{font-size:11px}

.property-pager{height:auto;min-height:0}.finance-page>.compact-fold{padding:0!important}.finance-page .finance-grid>.compact-fold{padding:0!important}.insurance-row .compact-fold>summary{padding:10px 0!important}.property-page .dialog-inner>.compact-fold{padding:0!important}
.avatar-live #avatar-preview .portrait{width:96px;height:96px}
.finance-page .compact-fold>.fold-content,.property-page .dialog-inner>.compact-fold>.fold-content{padding:0 16px 16px}
/* 2.2.1: explicit header tracks prevent the back button taking the title column. */
#detail .dialog-top.property-page-top{display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:start;gap:12px;width:100%;min-width:0}
#detail .property-page-top .property-title{grid-column:1;grid-row:1;display:block;padding:0;margin:0;min-width:0;width:auto;max-width:100%;white-space:normal;word-break:normal;overflow-wrap:break-word;text-align:left}
#detail .property-page-top>.close{grid-column:2;grid-row:1}
#detail .dialog-top .close{width:32px;height:32px;min-width:32px;min-height:32px;align-self:start}
@media(max-width:600px){
 #detail.property-page .dialog-top.property-page-top{grid-template-columns:34px minmax(0,1fr);align-items:start}
 #detail.property-page .property-page-top>.property-back{grid-column:1;grid-row:1;align-self:start}
 #detail.property-page .property-page-top>.property-title{grid-column:2;grid-row:1;padding:3px 0 0;font-size:17px;line-height:1.35}
 #detail.property-page .property-page-top>.close{display:none}
}

/* 2.3: independent touch controls, on the right */
.property-controls{left:auto;right:8px;width:40px;isolation:isolate;z-index:5}
.property .property-controls .property-select{width:40px;height:40px;min-height:40px;overflow:hidden}
.property-controls .property-select input{inset:0;width:40px;height:40px}
.property-controls .favorite-btn{width:40px;height:40px;min-width:40px;min-height:40px;touch-action:manipulation;pointer-events:auto}
.property-controls .favorite-btn[aria-pressed=true]{color:#174f40;background:#dfebcb}
.property-controls .favorite-btn[aria-busy=true]{opacity:.5}
.cards.list-mode .compact-property{grid-template-columns:minmax(0,1fr) auto 40px!important}
.compact-property .property-controls{grid-column:3;grid-row:1}
.compact-property .compact-main{grid-column:1;grid-row:1}
.compact-property .compact-manage{grid-column:2;grid-row:1}
input[type=checkbox],input[type=radio],input[type=range]{accent-color:#1b5545}
.avatar-editor #public-rank{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:22px;height:22px;min-width:22px;border:1px solid #8b9f91;border-radius:6px;background:#fff;vertical-align:middle;margin-right:8px}
.avatar-editor #public-rank:checked{background:#1b5545;border-color:#1b5545}
.avatar-editor #public-rank:checked:after{content:'✓';color:white;font-size:17px}
.avatar-slider{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 0;font-size:14px}
.avatar-slider output{font-weight:600;color:#1b5545}
.avatar-slider input{grid-column:1/-1;width:100%;min-height:30px;padding:0;cursor:pointer}
.avatar-presets{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px}
.avatar-presets button{flex:0 0 90px;scroll-snap-align:start}

/* Appearance controls and account-wide reading preferences */
body,button,input,select,textarea{font-family:var(--reader-font,Arial,sans-serif)}
#content p,#dialog-content p,#dialog-content label{font-size:calc(15px * var(--reader-scale,1));line-height:1.5}
#content button,#dialog-content button{font-size:calc(14px * var(--reader-scale,1))}
#content h3,#dialog-content h3{font-size:calc(19px * var(--reader-scale,1))}
#content h2,#dialog-content h2{font-size:calc(24px * var(--reader-scale,1))}
.appearance-panel{padding:16px!important}.appearance-group{border:0;padding:12px 0;margin:0;min-width:0}.appearance-group legend{font-size:14px;font-weight:600;padding:0}.appearance-group>div{display:flex;gap:7px;flex-wrap:wrap}.appearance-group button{flex:1;min-height:42px;padding:8px 10px;border-radius:12px;background:#f4f6ef;border:1px solid #d6ded0;color:#285447}.appearance-group button[aria-pressed=true]{background:#deebc5;border-color:#285447;box-shadow:inset 0 0 0 1px #285447}
.appearance-size{display:grid;grid-template-columns:1fr auto;gap:6px;padding:12px 0}.appearance-size input{grid-column:1/-1;width:100%;padding:0}.appearance-toggle{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:14px 0}.appearance-toggle input{flex-shrink:0;width:24px;height:24px}.appearance-preview{padding:14px;border-radius:12px;background:#f0f4e8;margin:14px 0}.appearance-preview p{font-size:inherit!important}.appearance-save{display:flex;gap:8px;flex-wrap:wrap}.appearance-save .primary{flex:1}.density-comfortable .property-body{padding:24px}.density-comfortable .cards{gap:24px!important}.density-comfortable .compact-property{padding:14px!important}
body.theme-dark{background:#132721;color:#e7eee7;color-scheme:dark}
.theme-dark :is(.panel,.property,.job,.empty,.city-map,dialog,.dialog-inner,.compact-fold,.property-filters,.market-hero,.market-balances,.connection-panel){background:#20372f!important;color:#e7eee7!important;border-color:#486052!important}
.theme-dark :is(h1,h2,h3,strong,label,legend,.property-title,.compact-main,.compact-kind){color:#e7eee7}
.theme-dark :is(p,small,.note,.location,.property-address,.compact-address){color:#b9cbbd}
.theme-dark :is(input,select,textarea){background:#182f27;color:#eef4ea;border-color:#637b68}
.theme-dark :is(.secondary,.text-btn,.appearance-group button,.compact-manage,.close){background:#2c493c!important;color:#e7eee7!important;border-color:#65806b!important}
.theme-dark .appearance-group button[aria-pressed=true]{background:#446b48!important;border-color:#c7df97!important}
.theme-dark :is(.property-numbers,.budget-summary,.stats,.ledger,.property-page-top,.property-page-actions,.dialog-top){background:#20372f;color:#e7eee7}
.theme-dark .appearance-preview{border:1px solid #637b68}

/* Detail routes use the document scroll, not a modal layer. */
body.detail-route{overflow:auto!important}
.detail-route #game-main,.detail-route #selection-dock{display:none!important}
#detail[hidden]{display:none!important}
#detail:not([hidden]),#detail.property-page:not([hidden]){display:block;position:relative!important;inset:auto!important;transform:none!important;width:auto!important;max-width:1050px!important;height:auto!important;max-height:none!important;overflow:visible!important;margin:20px 28px 100px 260px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:inherit}
#detail .dialog-inner{padding:20px!important;max-width:100%;overflow-wrap:break-word}
#detail .dialog-top,#detail .dialog-top.property-page-top{position:static!important;display:block!important;padding:0!important;margin:12px 0 20px!important;background:transparent!important}
#detail .property-page-top .property-title{display:block!important;width:100%!important;padding:0!important;word-break:normal!important}
.page-return{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:12px;background:#e9efdf;color:#234f40;min-height:44px;padding:8px 14px}
#detail .property-action-dock{position:sticky!important;bottom:0;background:#f6f7f0;padding:12px;z-index:3;border-top:1px solid #d7dfd0}
.back-top{width:42px!important;height:42px!important;min-height:42px!important;border-radius:14px!important;font-size:23px!important;background:#f2f6e9!important;color:#245744!important;border:1px solid #cbd8bc!important;box-shadow:0 3px 10px #163a2520!important;bottom:calc(98px + env(safe-area-inset-bottom))!important;z-index:12}
.detail-route .back-top{bottom:calc(170px + env(safe-area-inset-bottom))!important}
.theme-dark .back-top,.theme-dark .page-return{background:#314d3f!important;color:#e6efdc!important;border-color:#708967!important}
.theme-dark #detail .property-action-dock{background:#20372f}
@media(max-width:850px){#detail:not([hidden]),#detail.property-page:not([hidden]){margin:0 12px 110px!important}#detail .dialog-inner{padding:12px 4px!important}.detail-route .shell>header{position:static}.detail-route #detail .property-action-dock{bottom:82px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}

#content :is(input,select),#dialog-content :is(input,select,textarea){font-size:calc(16px * var(--reader-scale,1))}
.compact-main>strong{font-size:calc(14px * var(--reader-scale,1))}.compact-kind,.compact-address,.compact-figures{font-size:calc(11px * var(--reader-scale,1))}.compact-figures b{font-size:calc(13px * var(--reader-scale,1))}
.theme-dark :is(.detail-values,.detail-values>div,.essential-alert,.attention-item,.summary-item,.finance-chart,.property-profit,.objective,.appearance-panel,.avatar-editor,.avatar-choice,.avatar-presets button,.insurance-card,.contract-card){background:#294338!important;color:#edf3e8!important;border-color:#59715e!important}
.theme-dark :is(.detail-values strong,.detail-values small,.appearance-preview strong){color:inherit}

.confirmation-window{width:calc(100% - 32px);max-width:520px;max-height:85dvh;overflow:auto;border:1px solid #cfdbc9;border-radius:20px;background:#f8faf4;color:#234c3d;padding:0}.confirmation-window::backdrop{background:#123c3277}.theme-dark .confirmation-window{background:#20372f;color:#edf3e8}
/* 2.5: compact controls, stable cards and tablet layout. */
html{scroll-padding-top:64px}button{transition:background-color .15s,color .15s;touch-action:manipulation}button:active{transform:none!important}button:focus-visible,a:focus-visible{outline:2px solid #779a67;outline-offset:3px}.company{cursor:pointer}.company:focus-visible{outline:2px solid var(--lime);outline-offset:4px}
#selection-bar{display:none}.market-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#eaf0df;border-radius:12px;margin:12px 0;font-size:13px}.market-summary details{max-width:480px}.market-summary summary{cursor:pointer}.market-summary p{font-size:13px;line-height:1.5;margin:10px 0 0}.result-count{font-size:12px;color:var(--muted);margin:10px 0}.result-count .text-btn{font-size:12px}.quick-filters{margin:10px 0}.type-shortcuts,.status-shortcuts{gap:6px}.status-chip{min-height:38px;padding:8px 12px}.property-filters{margin:10px 0}.list-toolbar{align-items:end;margin:10px 0}.list-toolbar label{font-size:12px}.hub-links{gap:6px;margin:8px 0 16px}.hub-links button{font-size:12px;padding:8px 12px;min-height:38px}
.property,.property-art,.image-select,.property-art img{animation:none!important;transition:none!important;transform:none!important}.property-art{aspect-ratio:8/5;height:auto!important}.property-body{padding:14px}.property-numbers{margin:12px 0}.property-tag{max-width:calc(100% - 65px);letter-spacing:0}.cards.list-mode .compact-property{padding:10px 12px!important;gap:7px;grid-template-columns:minmax(0,1fr) 38px 36px!important}.compact-property .compact-main{padding:0!important;min-width:0}.compact-main strong{font-size:15px;line-height:1.25}.compact-kind,.compact-address,.compact-figures{font-size:11px;line-height:1.4}.property .property-controls{right:8px;left:auto}.property .property-controls .property-select{width:36px;height:36px;min-height:36px}.property-select .selection-check{width:19px;height:19px}.property-controls .favorite-btn{width:36px;min-width:36px;height:36px;min-height:36px;font-size:21px}.compact-manage{width:38px!important;min-width:38px;padding:7px!important}.property.is-selected{outline-width:1px!important}.property .card-manage{min-height:40px}.compact-property .property-controls{grid-column:3;position:static}
.map-stage{--map-height:420px}.map-stage .real-city{aspect-ratio:23/28;width:max(calc(100% * var(--map-zoom,1)),calc(var(--map-height) * 23 / 28 * var(--map-zoom,1)));margin:0 auto}.map-stage .map-tools{padding:2px;right:10px;border-radius:10px}.map-tools button{width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;font-size:22px!important}.map-tools [data-map-scale]{display:none}.map-controls{display:flex;justify-content:flex-end;padding:0 16px 12px}.map-controls label{width:180px;max-width:100%;font-size:12px}.map-controls select{padding:8px}.city-map-heading h2{font-size:24px}.city-map-heading p{margin:4px 0}.map-preview-image{display:block;width:100%;height:200px;object-fit:cover;border-radius:16px}.tower-lots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.map-cluster{background:#fffffff0;box-shadow:0 2px 10px #23473318}.city-map .map-help{font-size:12px}
.finance-sections{display:grid;gap:12px;margin-top:12px}.finance-sections>.compact-fold{margin:0!important}.finance-organize{margin-top:12px}.compact-fold>summary{font-size:15px;min-height:36px}.compact-fold{padding:14px 16px!important;margin:12px 0}.finance-grid:empty{display:none}.finance-page .monthly-bars{max-height:210px}.back-top{width:42px!important;height:42px!important;font-size:22px!important;border-radius:14px!important;box-shadow:0 3px 12px #123e3715!important}.dialog-inner .page-return{margin-bottom:16px}.confirmation-window .dialog-inner{padding:24px!important}.confirmation-window .primary{margin-top:14px}.confirmation-window .ledger{padding:12px 0}.confirmation-window h2{font-size:23px}
.advisor-chat{max-width:720px;margin:auto}.advisor-identity{display:flex;align-items:center;gap:12px}.advisor-identity svg{width:54px;height:54px}.advisor-identity strong,.advisor-identity small{display:block}.advisor-identity small{font-size:12px;color:var(--muted);margin-top:4px}.advisor-messages{min-height:180px;max-height:44dvh;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:14px 0}.advisor-bubble{padding:12px 16px;border-radius:16px;max-width:90%;line-height:1.6;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.advisor-bubble.assistant{background:#edf3e8;align-self:flex-start}.advisor-bubble.user{background:var(--green);color:white;align-self:flex-end}.advisor-suggestions{display:flex;gap:6px;flex-wrap:wrap}.advisor-suggestions button{font-size:12px;padding:8px 10px}.advisor-compose{display:flex;gap:8px;align-items:center}.advisor-compose textarea{flex:1;min-width:0;margin:0}.advisor-compose button{min-height:44px}.ranking-list{display:grid;gap:8px}.ranking-row{display:grid;grid-template-columns:28px 42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid #dce5d9;border-radius:12px;background:#fff;color:var(--green);text-align:left}.ranking-row svg{width:42px;height:42px}.ranking-row small{display:block;font-size:11px;color:var(--muted)}#display-name{font:inherit;width:100%;padding:12px;border:1px solid #ccd8c9;border-radius:10px}.detail-route:has(.advisor-chat) #detail{max-width:760px;margin-left:auto!important;margin-right:24px!important}
@media(min-width:581px) and (max-width:1100px){.sidebar{width:170px;padding:24px 12px}.shell{margin-left:170px}.sidebar .brand{font-size:10px;gap:8px}.sidebar .brand b{font-size:17px}.sidebar .company{display:flex;margin:22px 0}.sidebar .company small{font-size:10px}.sidebar .nav{padding:12px 9px;gap:8px;justify-content:flex-start}.sidebar .nav span{display:block;font-size:12px}.sidebar nav{margin-top:8px}.sidebar .side-bottom{display:none}main{padding:24px 18px 100px}.main-grid{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.stats>div{padding:14px}#sticky-finances{left:170px}#detail:not([hidden]),#detail.property-page:not([hidden]){margin:18px 18px 100px 188px!important}.list-toolbar{gap:8px}.list-toolbar label{flex-basis:100%}.detail-route #detail .property-action-dock{bottom:0!important}}
@media(max-width:600px){.market-summary{align-items:flex-start;flex-direction:column;gap:6px}.map-stage{--map-height:300px}.map-stage .real-city{width:max(calc(100% * var(--map-zoom,1)),calc(var(--map-height) * 23 / 28 * var(--map-zoom,1)))}.map-expanded .map-stage{--map-height:calc(100dvh - 230px)}.cards.list-mode .compact-property{padding:9px!important}.compact-figures{display:flex;gap:6px;flex-wrap:wrap}.ranking-row{gap:7px;padding:10px;grid-template-columns:22px 34px minmax(0,1fr)}.ranking-row>b:last-child{grid-column:3}.ranking-row svg{width:34px;height:34px}.tower-lots{grid-template-columns:1fr}.detail-route:has(.advisor-chat) #detail{margin:0 12px 110px!important}.advisor-compose{align-items:stretch}.advisor-compose button{padding:10px}.property-address{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.theme-dark .market-summary,.theme-dark .advisor-bubble.assistant{background:#294339;color:#edf3e8}.theme-dark .ranking-row{background:#20372f;color:#edf3e8;border-color:#465d50}

.brand{letter-spacing:0;gap:9px}.brand img{flex-shrink:0}.brand b{font-size:23px;letter-spacing:-.8px}.brand small{display:block;font-size:9px;letter-spacing:.15px;color:#bfd3c7;margin-top:3px}.auction-compact small{display:block;margin-top:4px;color:var(--muted)}#online-count{white-space:nowrap;font-size:11px;color:#66806e}.theme-dark #online-count{color:#bdd1bf}.brand:focus-visible{outline:2px solid var(--lime)}

.map-stage .real-city{width:min(calc(100% * var(--map-zoom,1)),calc(var(--map-height) * 23 / 28 * var(--map-zoom,1)))}

/* 2.6 — Lacustre: compact controls, generous city, unobtrusive assistant. */
.stats[hidden],[hidden]#advisor-float,[hidden]#advisor-launcher,[hidden]#map-preview{display:none!important}
#account{background:#1a5144;color:#f3f8e9;border:1px solid #1a5144;box-shadow:0 2px 7px #173e3715}
#account svg{stroke:currentColor}
.list-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;align-items:center}.list-toolbar .view-switch{display:flex;flex:0 1 auto;padding:3px;border-radius:14px;min-width:0}.list-toolbar .view-switch button{min-height:38px;padding:8px 16px;border-radius:11px;font-size:13px;box-shadow:none}.list-toolbar>.status-chip{padding:8px 13px;min-height:44px;font-size:13px}.quick-filters{margin:10px 0}.quick-filters .status-chip{padding:8px 15px;min-height:40px;font-size:13px}.type-shortcuts,.status-shortcuts{gap:7px!important;margin:0!important}.property-filters{border-radius:14px!important;margin:8px 0!important}.property-filters>summary{padding:13px 15px!important;font-size:14px}.result-count{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;margin:13px 0}.filter-fields{gap:12px;padding:12px!important}.result-count button{font-size:12px;min-height:32px}.page-title{margin-bottom:20px}.page-title p{max-width:65ch}
.city-map{overflow:hidden;background:#f7f8f1;border:1px solid #dce4d6;border-radius:24px}.city-map-heading{padding:20px 22px 12px}.city-map-heading h2{font-size:29px;letter-spacing:-1px;margin:3px 0}.city-map-heading p{font-size:13px}.city-map-heading .eyebrow{font-size:9px;letter-spacing:2px}.map-controls{padding:0 18px 14px;display:flex;justify-content:flex-start;align-items:center;gap:8px;flex-wrap:wrap}.map-segments{display:flex;background:#e7eddf;padding:4px;border-radius:15px;gap:3px}.map-segments button,.budget-map{min-height:38px;padding:8px 13px;border:0;border-radius:11px;font-size:12px;background:transparent;color:#315d4f}.map-segments button[aria-pressed=true],.budget-map.active{background:#1a5144;color:#fff}.budget-map{border:1px solid #ccd9c7}.map-stage{--map-height:490px;background:#dce8d8;display:block;position:relative}.map-stage .map-viewport{height:var(--map-height);display:flex;align-items:flex-start;overflow:auto;touch-action:none}.map-stage .real-city{flex-shrink:0;aspect-ratio:4/3;width:calc(max(100%,var(--map-height) * 4 / 3) * var(--map-zoom,1));height:auto;margin:auto;position:relative}.map-stage .city-plan{width:100%;height:100%;display:block}.map-stage .map-tools{position:absolute;top:63px;right:12px;display:flex;flex-direction:column;gap:1px;background:#fffffff0;box-shadow:0 3px 14px #1649361c;border:1px solid #d6e0d1;border-radius:12px;padding:2px;z-index:3}.map-tools button{width:32px!important;height:34px!important;min-width:32px!important;min-height:34px!important;font-size:20px!important}.map-stage .map-expand-toggle{position:absolute;right:12px;top:12px;width:38px;height:38px;min-height:38px;border-radius:12px;background:#fffffff0;border:1px solid #d6e0d1;z-index:4;box-shadow:0 3px 14px #1649361c}.map-expand-toggle svg{width:19px;height:19px}.map-overview{bottom:12px;left:12px;padding:10px 13px;min-height:38px;font-size:11px;background:#fffffff0;box-shadow:0 3px 14px #1649361c}.map-compass{bottom:12px;right:12px}.map-cluster{padding:5px 8px;background:#ffffffea;border:1px solid #d6e1cc;border-radius:18px;min-height:34px;min-width:0;gap:5px;flex-direction:row}.map-cluster strong{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;font-size:11px;background:#1a5144;color:#fff}.map-cluster span{font-size:10px}.parcel-hit .parcel-dot{width:17px;height:17px;font-size:11px;border-width:2px}.map-footer{padding:10px 16px;font-size:11px;display:flex;justify-content:space-between}.owned-key{color:#abc667;margin-left:8px}.map-help{padding:8px 16px 12px;background:#f7f8f1;font-size:11px}.map-help p{font-size:12px;line-height:1.6}.city-future,.city-unlock{position:absolute;transform:translate(-50%,-50%);border:1px solid #f5f9ef88;background:#edf3e3c9;backdrop-filter:blur(4px);border-radius:12px;padding:6px 10px;color:#587562;font-size:11px;white-space:nowrap;min-height:36px}.city-future small,.city-unlock small{display:block;font-size:8px;margin-top:3px}.city-unlock{background:#1a5144e8;color:#fff;border:0}.map-expanded .map-stage{--map-height:calc(100dvh - 225px)}.map-expanded .map-help{display:none}
.city-ambition{display:grid;grid-template-columns:1fr auto;gap:8px;padding:16px 0;border-bottom:1px solid #e0e7da}.city-ambition:last-child{border:0}.city-ambition small{display:block;margin-top:4px;color:#738275;font-size:12px}.city-ambition progress{width:100%;grid-column:1/-1;height:6px;accent-color:#507c50}.city-ambition .text-btn{grid-column:1/-1;justify-self:start;font-size:12px}
#advisor-launcher{position:fixed;right:20px;bottom:22px;z-index:43;width:58px;height:58px;border-radius:50%;background:#194e43;color:#edf4cf;border:2px solid #dae8b6;box-shadow:0 4px 16px #123e3733;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px;gap:0}#advisor-launcher span{font-size:24px;line-height:25px}#advisor-launcher small{font-size:9px;color:inherit}#advisor-float{position:fixed;right:20px;bottom:91px;width:min(390px,calc(100vw - 28px));max-height:calc(100dvh - 125px);overflow:auto;background:var(--surface,#fafbf6);color:var(--text,#214c40);border:1px solid #ccd9c1;border-radius:22px;box-shadow:0 16px 55px #123e3740;z-index:65;padding:0 16px 12px}.advisor-float-head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--surface,#fafbf6);padding:12px 0;z-index:2;font-size:14px}.advisor-float-head button{width:32px;height:32px;min-height:32px;font-size:20px}.advisor-chat .advisor-identity{gap:10px;margin:5px 0}.advisor-identity svg{width:44px!important;height:44px!important}.advisor-identity strong{font-size:16px}.advisor-chat>.note{font-size:11px;line-height:1.5;margin:10px 0}.advisor-messages{min-height:90px;max-height:210px;overflow:auto;margin:12px 0}.advisor-bubble{padding:12px;font-size:13px;border-radius:14px}.advisor-suggestions{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.advisor-suggestions button{min-height:32px;font-size:11px;padding:7px 9px;border-radius:10px}.advisor-compose textarea{font-size:14px;min-width:0}.advisor-compose button{font-size:12px;padding:10px}.advisor-chat>label{font-size:12px}.advisor-chat #advisor-answer{font-size:12px}.back-top{bottom:24px!important}.back-top.right{right:90px!important}
#map-preview{position:fixed;z-index:70;right:24px;bottom:24px;width:350px;max-height:calc(100dvh - 55px);overflow:auto;background:var(--surface,#fafbf6);border:1px solid #d4dfcd;border-radius:22px;box-shadow:0 15px 55px #123e3740}#map-preview>img{width:100%;height:150px;object-fit:cover;display:block}.preview-close{position:absolute;right:10px;top:10px;width:34px;height:34px;min-height:34px;background:#fff;color:#1a5144;font-size:23px}.preview-body{padding:15px}.preview-body h3{font-size:19px;margin:5px 0}.preview-body p{font-size:11px;color:#6a7c6b;line-height:1.5;margin:7px 0}.preview-body>small{font-size:10px;text-transform:uppercase;letter-spacing:1px}.preview-figures{display:flex;justify-content:space-between;gap:10px;margin:15px 0}.preview-figures strong{font-size:20px}.preview-figures span{font-size:13px;color:#497453;text-align:right}.preview-figures small{display:block;font-size:9px}.preview-body button{font-size:12px;padding:10px;min-height:40px}.preview-body progress{width:100%;height:6px;accent-color:#749958}.preview-body details{font-size:12px;margin:12px 0}.preview-body .tower-lots{max-height:200px;overflow:auto}.preview-body .tower-lots button{font-size:11px}
body:has(#advisor-float:not([hidden])) #advisor-launcher{opacity:.7}body:has(.map-expanded) #advisor-launcher{display:none}body:has(#sticky-finances:not([hidden])) .shell>header{margin-top:48px}
[data-theme=dark] .map-help,[data-theme=dark] .advisor-float-head,[data-theme=dark] #advisor-float,[data-theme=dark] #map-preview{background:#183d36;color:#e9f0dd}
@media(max-width:600px){.map-stage{--map-height:340px}.city-map-heading{padding:16px 15px 10px}.city-map-heading h2{font-size:25px}.city-map-heading p{max-width:none;font-size:11px}.map-controls{padding:0 12px 10px;gap:6px}.map-segments button{padding:8px 10px;font-size:11px}.budget-map{font-size:11px;padding:8px}.map-stage .real-city{width:calc(max(100%,var(--map-height) * 4 / 3) * var(--map-zoom,1))}.map-footer{font-size:10px}.city-future{font-size:9px;padding:5px 7px}.city-future small{font-size:7px}.map-cluster span{font-size:9px}.map-cluster{gap:4px}.map-expanded .map-stage{--map-height:calc(100dvh - 235px)}#advisor-launcher{right:13px;bottom:calc(85px + env(safe-area-inset-bottom));width:50px;height:50px}#advisor-float{right:10px;bottom:calc(144px + env(safe-area-inset-bottom));max-height:calc(100dvh - 180px);width:calc(100vw - 20px)}.back-top{bottom:calc(85px + env(safe-area-inset-bottom))!important}.back-top.right{right:76px!important}#map-preview{left:10px;right:10px;bottom:calc(83px + env(safe-area-inset-bottom));width:auto;max-height:70dvh}#map-preview>img{height:115px}.map-open #map-preview{bottom:18px}.preview-body{padding:13px}.list-toolbar{gap:6px}.list-toolbar .view-switch button{padding:8px 12px}.list-toolbar>.status-chip{padding:8px 11px;font-size:12px}.page-title{margin-bottom:12px}.page-title .eyebrow{display:none}}
/* Fit the complete city at overview; zoom grows the world, not the viewport. */
.map-stage .real-city{width:calc(max(100%,var(--map-height) * 4 / 3) * var(--map-zoom,1));margin:0}.map-stage .map-viewport{display:block}.map-stage{background:#d9e6d4}.map-stage .map-viewport{background:linear-gradient(#dce6d1 70%,#7fb9b7)}
#advisor-launcher svg{width:36px;height:36px;margin-top:-2px}#advisor-launcher small{margin-top:-2px}.main-grid>.city-ambitions{grid-column:1/-1}.theme-dark :is(#advisor-float,.advisor-float-head,#map-preview,.map-help){background:#203c33;color:#edf3e6}.theme-dark .map-segments{background:#2c483c}.theme-dark .map-segments button,.theme-dark .budget-map{color:#eef5df}.theme-dark .map-segments button[aria-pressed=true]{background:#c5dd89;color:#163b30}body:not(.back-left) #back-top{right:90px}.has-selection #advisor-launcher,.has-selection #back-top{bottom:112px!important}.has-selection #advisor-float{bottom:178px}
@media(max-width:600px){.map-stage{--map-height:calc((100vw - 34px) * .75)}.map-expanded .map-stage{--map-height:calc(100dvh - 235px)}.map-expanded .real-city{margin:auto}.map-expanded .map-viewport{display:flex;align-items:center}body:not(.back-left) #back-top{right:76px}.has-selection #advisor-launcher,.has-selection #back-top{bottom:calc(176px + env(safe-area-inset-bottom))!important}.has-selection #advisor-float{bottom:calc(230px + env(safe-area-inset-bottom));max-height:calc(100dvh - 255px)}}

/* 2.7 — shared rhythm, compact header, direct manipulation. */
:root{--row-space:10px}
.quick-filters{gap:var(--row-space)}
.hub-links{margin:10px 0;padding:0 0 2px}.property-tabs{margin:10px 0 14px}.property-tabs button{min-height:44px}
.list-toolbar{margin:var(--row-space) 0}.property-filters{margin:var(--row-space) 0!important}
.shell>header{min-height:60px;height:auto;padding:10px 24px;gap:12px}.header-right{gap:10px}.breadcrumb{font-size:14px}.save{font-size:12px;max-width:180px}#save-status:empty{display:none}
#account{width:38px;height:38px;min-height:38px;padding:2px;overflow:hidden}#account .portrait{width:100%;height:100%;stroke:none;border-radius:50%}
#sticky-finances{min-height:42px;padding-top:9px;padding-bottom:9px;box-sizing:border-box;font-variant-numeric:tabular-nums}
body:has(#sticky-finances:not([hidden])) .shell>header{margin-top:42px}
.city-ambitions .compact-fold{margin:0}.city-ambitions summary small{margin-left:auto;font-size:12px;font-weight:400;color:var(--muted)}.city-ambitions .fold-content{padding-top:0}
.finance-sections{display:grid;gap:10px;margin:16px 0}.finance-sort-row{position:relative;min-width:0}.finance-sort-row>.compact-fold{margin:0!important;padding-left:50px!important}.finance-handle{position:absolute;left:6px;top:17px;width:38px;height:44px;min-height:44px;background:transparent;border:0;color:#789083;padding:9px;cursor:grab;touch-action:none;z-index:2}.finance-handle svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;fill:none}.finance-sort-row.dragging{outline:2px dashed #87a879;outline-offset:3px;border-radius:15px;box-shadow:0 8px 25px #123e3720;background:var(--surface,#fff)}.finance-dragging{user-select:none;cursor:grabbing}.finance-dragging .finance-handle{cursor:grabbing}
#advisor-launcher{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;filter:drop-shadow(0 3px 4px #163d3730)}#advisor-launcher small{display:none}#advisor-launcher .portrait{width:48px;height:52px;margin:0;overflow:visible}#advisor-launcher .portrait>circle:first-child{display:none}
body:has(#map-preview:not([hidden])) #advisor-launcher,body:has(.property-action-dock) #advisor-launcher{visibility:hidden}
footer{padding-right:70px;min-height:70px}
.city-map-heading{padding:12px 14px 8px}.city-map-heading h2{font-size:21px;margin:0}.map-caption{font-size:11px;color:#708274}.map-controls{padding:0 12px 10px;gap:6px}.map-segments{padding:3px;border-radius:12px}.map-segments button,.budget-map{font-size:11px;min-height:36px;padding:7px 10px}.map-stage{--map-height:450px}.map-stage .map-viewport{display:block;overscroll-behavior:contain;background:#dce6d1}.map-stage .real-city{margin:0}.map-expanded .map-stage{--map-height:calc(100dvh - 165px)}
.map-stage .map-expand-toggle{width:34px;height:34px;min-height:34px;right:9px;top:9px}.map-stage .map-tools{right:9px;top:52px}.map-overview{min-height:32px;padding:7px 10px;font-size:10px}.city-future,.city-unlock{display:none}
.parcel-hit{min-width:0!important;min-height:32px!important;padding:4px 9px!important;border-radius:18px!important;background:#fff!important;color:#164a3f!important;border:1px solid #719a87!important;box-shadow:0 2px 6px #123e3730!important;display:flex!important;gap:4px;white-space:nowrap;font-size:11px!important;z-index:2}.parcel-hit .parcel-dot{display:none}.parcel-hit .parcel-price{display:block!important;position:static!important;transform:none!important;opacity:1!important;background:transparent!important;color:inherit!important;padding:0!important;font-size:11px!important;box-shadow:none!important;pointer-events:none}.parcel-hit.owned{background:#e0edbe!important}.parcel-hit.map-focused{background:#194e43!important;color:#fff!important;z-index:5}.map-cluster{font-size:11px;min-height:32px;padding:4px 8px;box-shadow:0 2px 6px #123e3728}.map-empty{padding:10px 14px;font-size:12px}.preview-pager{display:flex;align-items:center;justify-content:space-between;margin:-8px 0 5px}.preview-pager button{min-width:42px}.preview-pager small{font-size:11px;color:var(--muted)}
@media(max-width:600px){.shell>header{padding:9px 16px;min-height:54px}.header-right{gap:7px}.save{max-width:140px;font-size:11px}.city-map-heading{padding:12px 12px 7px}.city-map-heading h2{font-size:20px}.map-caption{display:none}.map-controls{display:flex;flex-wrap:wrap}.map-segments{flex:1}.map-segments button{flex:1;padding:7px 8px}.budget-map{font-size:10px;min-height:32px}.map-stage{--map-height:calc((100vw - 34px) * .75)}.map-expanded .map-stage{--map-height:calc(100dvh - 170px)}.map-expanded .map-viewport{display:block}.city-map{border-radius:18px}.page-title h1{font-size:25px}.page-title .clock{display:none}.page-title p{font-size:13px}.finance-sort-row>.compact-fold{padding-left:46px!important}.finance-handle{left:4px}#advisor-launcher{width:48px;height:52px}.map-footer{padding:8px 12px}.map-cluster span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.finance-sort-row,.parcel-hit{transition:none!important}}
