.portal-main{max-width:1280px;margin:auto;padding:20px 40px 60px}.portal-hero{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:40px;margin-bottom:32px}.portal-hero h1{font-size:46px;overflow-wrap:anywhere}.portal-hero img{max-width:100%;height:auto}.portal-hero p{color:var(--muted)}.portal-hero nav{display:flex;flex-wrap:wrap;gap:8px}.portal-button,.portal-login-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 18px;border:1px solid #c9d7eb;border-radius:10px;background:white;color:var(--blue);text-decoration:none;font:inherit;font-size:14px;font-weight:650;cursor:pointer;margin:6px 0}.portal-button:hover{background:#eaf1ff}.portal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0 48px}.portal-stats>div{background:#123c80;color:white;border-radius:18px;padding:24px}.portal-stats span{display:block;font-size:14px;color:#d9e6ff}.portal-stats strong{font-size:32px;display:block;margin-top:8px}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0 48px}.portal-grid .booking-card{padding:26px;min-width:0;overflow-wrap:anywhere}.status-pill{display:inline-block;background:#e5f3ee;color:#17624d;padding:6px 12px;border-radius:99px;font-size:12px;font-weight:750}.portal-grid h2{font-size:22px;margin:16px 0}.portal-grid p{font-size:14px}.repair-progress{display:flex;gap:4px;margin:22px 0}.repair-progress span{flex:1;border-top:5px solid #e0e7f1;padding-top:8px;color:#5c6b80;font-size:10px}.repair-progress .done{border-color:#258577;color:#17624d}.portal-map{width:100%;height:260px;border:0;border-radius:12px;margin:12px 0}.portal-messages{max-height:360px;overflow:auto}.portal-messages>div{background:#f2f6fc;padding:14px;margin:10px 0;border-radius:10px}.portal-messages small{color:var(--muted)}summary{cursor:pointer;padding:12px 0;font-weight:650;min-height:48px}.invoice-lines>div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.invoice-lines strong{white-space:nowrap}.account-settings{max-width:600px}.booking-card form label,.portal-hero form label{margin:18px 0}.portal-hero form .primary-button{margin-top:24px}@media(max-width:760px){.portal-main{padding:12px 16px 32px}.portal-hero{grid-template-columns:1fr;gap:12px}.portal-hero h1{font-size:34px}.portal-hero>img{width:200px;margin:auto}.portal-stats{gap:8px}.portal-stats>div{padding:16px 10px}.portal-stats strong{font-size:22px}.portal-stats span{font-size:11px}.portal-grid{grid-template-columns:1fr}.portal-grid .booking-card{padding:20px}.site-header{flex-wrap:wrap}.portal-hero .booking-card{padding:24px}}

.portal-live-map{height:330px;width:100%;border-radius:14px;margin:14px 0;z-index:0}.portal-live-map[hidden]{display:none}.location-card{min-width:0}.location-legend{font-size:.85rem}.location-recenter{margin:4px 0}.portal-live-map .leaflet-control-attribution{font-size:10px}

.location-card [hidden]{display:none!important}
.invoice-contract-details{border:1px solid #cbd5e1;border-radius:10px;padding:12px 14px;margin:12px 0;background:rgba(240,245,252,.8)}.invoice-contract-details p{margin:5px 0;overflow-wrap:anywhere}.invoice-contract-details small{display:block;margin-top:6px}
.property-application-portal{margin:24px 0}.property-application-portal .portal-grid{margin:12px 0 20px}.property-application-portal article p{margin:8px 0}.property-application-portal article small{display:block;margin-top:10px}

.customer-sms-preferences{padding:20px;margin:16px 0 24px;border:1px solid #bfd1e5;border-radius:14px;background:#f0f6ff;color:#17324f}.customer-sms-preferences h3,.customer-sms-preferences p,.customer-sms-preferences label{color:#17324f}.customer-sms-preferences form{display:grid;gap:12px;max-width:640px}.customer-sms-preferences select{width:100%;min-width:0;box-sizing:border-box;min-height:48px;padding:10px;border:1px solid #7d96b5;border-radius:8px;background:#fff;color:#17324f;font:inherit}.customer-sms-preferences .primary-button{margin-top:6px;background:#1855a0;color:#fff;border-color:#1855a0}.customer-sms-preferences :focus-visible{outline:3px solid #a35b00;outline-offset:3px}
