.real-estate-dashboard{--estate-ink:#332519;--estate-brass:#8d682d;--estate-line:rgba(104,70,31,.38);color:var(--estate-ink)}
.estate-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px}.portfolio-total{min-width:120px;padding:10px 14px;border:1px solid var(--estate-line);background:linear-gradient(135deg,#eadcb9,#d7c28e);text-align:center}.portfolio-total b{display:block;font:700 25px Georgia,serif}.portfolio-total span{font:9px monospace;letter-spacing:.09em}
.portfolio-overview,.properties-ledger{padding:14px;border:1px solid var(--estate-line);background:linear-gradient(145deg,rgba(248,239,211,.92),rgba(225,208,166,.88));box-shadow:0 5px 18px rgba(54,35,18,.12)}.properties-ledger{margin-top:14px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px}.section-heading h2{margin:1px 0 0}.section-heading .kicker{margin:0}
.level-strip{display:grid;grid-template-columns:repeat(10,minmax(82px,1fr));gap:6px}.level-tile{min-width:0;padding:5px;border:1px solid var(--estate-line);background:#e8d8af;color:var(--estate-ink);text-align:left;cursor:pointer}.level-tile:hover,.level-tile:focus-visible{outline:2px solid var(--estate-brass);background:#f1e5c4}.level-thumb{display:block;aspect-ratio:3/2;overflow:hidden;background:#e8d8af}.level-thumb img,.estate-thumb img,.progression-thumb img{display:block;width:100%;height:100%;object-fit:contain}.level-tile>span:last-child{display:grid;gap:2px;padding-top:4px}.level-tile b{font:700 9px monospace;letter-spacing:.05em}.level-tile small{min-height:22px;font-size:9px;line-height:1.15}.level-tile em{font:700 9px monospace;color:#73531f}
.property-filters,.owner-filters{display:flex;flex-wrap:wrap;gap:5px}.property-filters button,.owner-filters button{padding:7px 10px;border:1px solid var(--estate-line);background:#e5d5ad;color:var(--estate-ink);font:700 9px monospace}.property-filters button.active,.owner-filters button.active{background:#654823;color:#f6e8bd;border-color:#654823}.owner-filters{margin:-2px 0 9px}.active-filter{margin-bottom:7px;color:#71583c;font:9px monospace;text-transform:uppercase}.property-list{display:grid;gap:7px}
.property-row{display:grid;grid-template-columns:minmax(265px,1.35fr) minmax(230px,1fr) minmax(150px,.75fr) auto;align-items:center;gap:10px;padding:8px;border:1px solid var(--estate-line);background:#f0e3c2;box-shadow:inset 3px 0 #9b7538}.property-row.selected{outline:2px solid #9b7538;background:#f7ebce}.property-select{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.estate-thumb{display:block;width:112px;aspect-ratio:3/2;overflow:hidden;border:1px solid #735535;background:#34291e}.property-identity{display:grid;gap:3px;min-width:0}.property-identity small,.property-stats small,.residence-state small{font:8px monospace;letter-spacing:.07em}.property-identity>b{font:700 15px Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.property-identity em{font:700 10px monospace;color:#846326}.property-identity i{font-size:11px}
.property-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.property-stats span{display:grid;gap:2px;padding:6px;border-left:1px solid var(--estate-line)}.property-stats b{font:700 10px monospace;white-space:nowrap}.residence-state{display:grid;gap:2px;padding:6px 8px;border:1px solid var(--estate-line);background:rgba(255,249,226,.48)}.residence-state b{font:700 9px monospace;color:#625329}.property-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:-2px;padding-left:122px}.property-actions button{padding:6px 9px;font-size:9px}.max-level-chip,.max-level-seal{align-self:center;padding:7px 9px;border:1px solid #9a7330;background:#d8bd77;font:700 9px monospace}.property-activity{display:grid;gap:3px;padding:7px 9px;border:1px solid #8d682d;background:#dac387;font:9px monospace}.property-activity span{white-space:nowrap}
.build-property-tile{display:grid;grid-template-columns:32px auto;grid-template-rows:auto auto;align-items:center;justify-content:start;gap:0 9px;min-height:58px;padding:9px 14px;border:1px dashed #8d682d;background:rgba(232,216,175,.58);color:var(--estate-ink);text-align:left}.build-property-tile>span{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border:1px solid #8d682d;border-radius:50%;font:24px Georgia,serif}.build-property-tile b{font:700 11px monospace}.build-property-tile small{font-size:10px}
.estate-action-panel{padding:12px 14px;border:1px solid #8d682d;background:#eadbb7;box-shadow:inset 4px 0 #8d682d}.estate-action-panel>header{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:10px}.estate-action-panel h3,.estate-action-panel p{margin:2px 0}.resident-summary,.upgrade-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}.resident-summary b,.upgrade-meta>span{padding:7px 9px;border:1px solid var(--estate-line);background:rgba(255,250,230,.5);font:10px monospace}.upgrade-meta>span{display:grid;gap:3px}.upgrade-meta small{font-size:8px}.occupancy-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.occupancy-person{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid rgba(120,78,30,.25)}.occupancy-person span{display:grid}.occupancy-person small{font:8px monospace}.occupancy-person button{padding:5px 7px;font-size:8px}
.compact-progression{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:10px}.compact-progression>article{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:9px;padding:7px;border:1px solid var(--estate-line);background:rgba(255,249,226,.5)}.compact-progression>strong{text-align:center;font-size:22px;color:#815e27}.progression-thumb{display:block;width:130px;aspect-ratio:3/2;overflow:hidden;border:1px solid #735535;background:#34291e}.compact-progression article>span{display:grid;gap:3px}.compact-progression small{font:8px monospace}.compact-progression b{font:700 13px Georgia,serif}.compact-progression em,.compact-progression i{font-size:10px}.requirement-warning{padding:7px 9px;border-left:3px solid #9c5142;background:#ead0b4;color:#702c23;font:700 10px monospace}
.compact-recipe{display:grid;grid-template-columns:repeat(4,minmax(135px,1fr));gap:5px;margin:9px 0}.material-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:6px;border:1px solid #9d7650;background:#eadbb7}.material-line.satisfied{border-color:#60774e;background:#dce4c7}.material-line.missing{border-color:#9c5142}.material-line>.material-identity{display:flex;min-width:0;font:700 10px monospace;text-align:left}.material-line>.material-identity .material-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-amount{display:grid;text-align:right}.material-line small{font:7px monospace}.material-line b{font:700 9px monospace}.upgrade-confirm{margin-top:2px}.build-summary{display:grid;grid-template-columns:130px minmax(150px,1fr) minmax(210px,1fr);align-items:center;gap:12px}.build-summary>div{display:grid;gap:4px}.build-summary small{font:8px monospace}.maximum-level{text-align:left}.empty-properties{display:grid;gap:3px;padding:16px;border:1px dashed var(--estate-line);text-align:center}\n.construction-requirement,.construction-energy{padding:8px;border:1px solid #60774e;background:#dce4c7}.construction-requirement.missing,.construction-energy.missing{border-color:#9c5142;background:#ead0b4;color:#702c23}.build-house-cta:disabled{cursor:not-allowed;border-color:#8c8170!important;background:#b8ad99!important;color:#625b50!important;box-shadow:none!important;opacity:.82}
@media(max-width:1180px){.level-strip{grid-template-columns:repeat(5,1fr)}.property-row{grid-template-columns:minmax(250px,1.3fr) 1fr minmax(150px,.7fr)}.property-activity{grid-column:1/-1}.property-actions{padding-left:0}}
@media(max-width:800px){.estate-heading,.section-heading{align-items:start}.level-strip{grid-template-columns:repeat(2,1fr)}.level-tile{display:grid;grid-template-columns:90px 1fr;gap:7px}.level-tile>span:last-child{padding:0}.property-row{grid-template-columns:1fr}.property-select{grid-template-columns:105px 1fr}.estate-thumb{width:105px}.property-stats{grid-template-columns:repeat(3,1fr)}.property-actions{grid-column:auto}.compact-recipe{grid-template-columns:repeat(2,1fr)}.occupancy-columns{grid-template-columns:1fr}.compact-progression{grid-template-columns:1fr}.compact-progression>strong{transform:rotate(90deg)}.build-summary{grid-template-columns:110px 1fr}.build-summary>div:last-child{grid-column:1/-1}}
@media(max-width:520px){.estate-heading,.section-heading{display:grid}.portfolio-total{justify-self:start}.level-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.level-tile{grid-template-columns:72px minmax(0,1fr)}.property-select{grid-template-columns:88px 1fr}.estate-thumb{width:88px}.property-stats{grid-template-columns:1fr 1fr}.property-actions button{flex:1 1 140px}.compact-recipe{grid-template-columns:1fr}.compact-progression>article{grid-template-columns:100px 1fr}.progression-thumb{width:100px}.build-summary{grid-template-columns:90px 1fr}.owner-filters,.property-filters{display:grid;grid-template-columns:1fr 1fr}}
.construction-blocker{display:grid;gap:4px;margin:10px 0;padding:10px 12px;border:1px solid #9c5142;background:#ead0b4;color:#4c251e}.construction-blocker small{font:800 9px monospace;letter-spacing:.08em}.construction-blocker b{font:700 16px Georgia,serif}.construction-blocker span{font:700 10px monospace}.construction-blocker p,.construction-build-reason{margin:3px 0 0;font-size:11px}.construction-build-reason{color:#702c23;font-weight:700}.build-house-cta{margin-top:10px}
.maintenance-meter{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(140px,1fr);align-items:center;gap:10px;padding:6px 9px;border:1px solid var(--estate-line);background:rgba(255,249,226,.48)}.maintenance-meter span{display:grid}.maintenance-meter small{font:8px monospace;letter-spacing:.07em}.maintenance-meter b{font:700 9px monospace}.maintenance-meter progress{width:100%;height:8px;accent-color:#7d713d}.maintenance-meter.warning progress{accent-color:#a26c24}.maintenance-meter.broken{border-color:#9c5142;background:#ead0b4;color:#702c23}.maintenance-meter.broken progress{accent-color:#9c5142}.property-row.property-broken{box-shadow:inset 4px 0 #9c5142}.auto-repair-toggle{display:flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--estate-line);font:700 8px monospace}.repair-wallet{display:grid;gap:3px;width:max-content;padding:7px 9px;border:1px solid var(--estate-line);background:rgba(255,250,230,.5)}.repair-wallet small{font:8px monospace}.repair-wallet b{font:700 10px monospace}
.state-apartment-card{display:grid;grid-template-columns:minmax(260px,38%) minmax(0,1fr);gap:22px;align-items:center;max-width:900px;padding:18px;border:1px solid var(--estate-line);background:linear-gradient(145deg,rgba(248,239,211,.96),rgba(225,208,166,.92));box-shadow:0 8px 24px rgba(54,35,18,.16)}.state-apartment-card>.estate-thumb{width:100%;aspect-ratio:3/2}.state-apartment-copy{display:grid;gap:10px}.state-apartment-copy h2,.state-apartment-copy p{margin:0}.state-rent-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:4px 0}.state-rent-facts div{display:grid;gap:3px;padding:9px;border:1px solid var(--estate-line);background:rgba(255,249,226,.54)}.state-rent-facts dt{font:8px monospace;text-transform:uppercase}.state-rent-facts dd{margin:0;font:700 11px Georgia,serif}.rental-blocked-reason{padding:8px;border-left:3px solid #9c5142;background:#ead0b4;color:#702c23;font:700 10px monospace}@media(max-width:800px){.state-apartment-card{grid-template-columns:1fr}.state-rent-facts{grid-template-columns:1fr}}
.state-apartment-card{display:grid;grid-template-columns:minmax(260px,38%) minmax(0,1fr);gap:22px;align-items:center;max-width:900px;padding:18px;border:1px solid var(--estate-line);background:linear-gradient(145deg,rgba(248,239,211,.96),rgba(225,208,166,.92));box-shadow:0 8px 24px rgba(54,35,18,.16)}.state-apartment-card.is-current-residence{box-shadow:inset 4px 0 #887036,0 8px 24px rgba(54,35,18,.16)}.state-apartment-card>.estate-thumb{width:100%;aspect-ratio:3/2}.state-apartment-copy{display:grid;gap:10px}.state-apartment-copy h2,.state-apartment-copy p{margin:0}.state-rent-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:4px 0}.state-rent-facts div{display:grid;gap:3px;padding:9px;border:1px solid var(--estate-line);background:rgba(255,249,226,.54)}.state-rent-facts dt{font:8px monospace;text-transform:uppercase}.state-rent-facts dd{margin:0;font:700 11px Georgia,serif}.state-rental-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.current-residence-status{color:#52613c;font:700 9px monospace;letter-spacing:.07em}.state-rental-move-out{padding:9px 16px;border:1px solid #8c7657;background:linear-gradient(180deg,#eee2c6,#d6c39e);color:#3d2b1d;box-shadow:0 2px 0 rgba(76,55,31,.18);font:700 10px monospace;letter-spacing:.05em;cursor:pointer}.state-rental-move-out:hover,.state-rental-move-out:focus-visible{background:linear-gradient(180deg,#f6ecd5,#dfcda8);border-color:#685238;outline:1px solid rgba(104,82,56,.35)}.rental-blocked-reason{padding:8px;border-left:3px solid #9c5142;background:#ead0b4;color:#702c23;font:700 10px monospace}@media(max-width:800px){.state-apartment-card{grid-template-columns:1fr}.state-rent-facts{grid-template-columns:1fr}}
.state-apartment-card{display:grid;grid-template-columns:minmax(260px,38%) minmax(0,1fr);gap:22px;align-items:center;padding:18px;border:1px solid var(--estate-line);background:linear-gradient(145deg,rgba(248,239,211,.96),rgba(225,208,166,.92));box-shadow:0 8px 24px rgba(54,35,18,.16)}.state-apartment-card>.estate-thumb{width:100%;aspect-ratio:3/2}.state-apartment-copy{display:grid;gap:10px}.state-apartment-copy h2,.state-apartment-copy p{margin:0}.state-apartment-rate{width:max-content;padding:9px 12px;border:1px solid #8d682d;background:#dbc184;font:700 13px Georgia,serif}.state-rent-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:4px 0}.state-rent-facts div{display:grid;gap:3px;padding:9px;border:1px solid var(--estate-line);background:rgba(255,249,226,.54)}.state-rent-facts dt{font:8px monospace;text-transform:uppercase}.state-rent-facts dd{margin:0;font:700 13px Georgia,serif}.state-rental-ledger{margin-top:14px;padding:14px;border:1px solid var(--estate-line);background:linear-gradient(145deg,rgba(248,239,211,.94),rgba(225,208,166,.9))}.state-rental-ledger header h2,.state-rental-ledger header p{margin:0 0 4px}.state-tenant-list{display:grid;margin-top:10px}.state-tenant-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:14px;padding:9px 4px;border-top:1px solid rgba(120,78,30,.25)}.state-tenant-row span{display:grid;gap:2px}.state-tenant-row small{font:8px monospace;letter-spacing:.05em}.state-tenant-row strong{font:700 10px monospace}.state-tenant-row.available{grid-template-columns:minmax(180px,1fr) auto}.state-rental-move-out{padding:9px 16px;border:1px solid #8c7657;background:linear-gradient(180deg,#eee2c6,#d6c39e);color:#3d2b1d;box-shadow:0 2px 0 rgba(76,55,31,.18);font:700 10px monospace;letter-spacing:.05em;cursor:pointer}.state-rental-move-out:hover,.state-rental-move-out:focus-visible{background:linear-gradient(180deg,#f6ecd5,#dfcda8);border-color:#685238;outline:1px solid rgba(104,82,56,.35)}.occupancy-ledgers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.occupancy-person em{font:700 8px monospace;color:#73531f}@media(max-width:900px){.occupancy-ledgers{grid-template-columns:1fr}}@media(max-width:800px){.state-apartment-card{grid-template-columns:1fr}.state-rent-facts{grid-template-columns:1fr}.state-tenant-row{grid-template-columns:1fr}.state-tenant-row button{justify-self:start}}
