:root{--ink:#15243a;--muted:#627188;--blue:#2167d5;--blue-dark:#174eaa;--pale:#eef5ff;--line:#e1e7ef;--paper:#fff;--bg:#f5f7fb;--green:#13795b;--red:#b42318;--amber:#976100;--shadow:0 12px 36px rgba(20,39,70,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);line-height:1.55}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.topbar{min-height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px clamp(18px,4vw,60px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:850;color:var(--ink);line-height:1.05}.brand:hover{text-decoration:none}.brand small{display:block;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.03em;margin-top:5px}.brand-mark{width:40px;height:40px;border-radius:13px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:23px;box-shadow:0 5px 12px #2167d53b}.main-nav{display:flex;align-items:center;gap:17px;flex-wrap:wrap;font-size:13px;font-weight:650}.main-nav a{color:#344760}.nav-cta,.button-primary{background:var(--blue)!important;color:white!important;border:1px solid var(--blue)!important}.nav-cta{padding:9px 15px;border-radius:10px}.nav-user{color:var(--muted)}.nav-logout{display:inline;margin:0}.link-button{border:0;background:transparent;color:var(--blue);font:inherit;cursor:pointer;padding:0}.page-shell{max-width:1220px;margin:0 auto;padding:28px clamp(16px,3vw,34px) 52px;min-height:calc(100vh - 140px)}.site-footer{border-top:1px solid var(--line);background:#fff;color:var(--muted);display:flex;justify-content:space-between;gap:18px;padding:24px clamp(18px,4vw,60px);font-size:12px}.hero{background:linear-gradient(115deg,#0e2b58 0%,#174da0 57%,#367fe7 100%);border-radius:26px;padding:clamp(30px,6vw,72px);color:#fff;display:grid;grid-template-columns:1.25fr .75fr;gap:32px;align-items:center;overflow:hidden}.hero h1{font-size:clamp(34px,5vw,58px);letter-spacing:-.045em;line-height:1.04;margin:14px 0 20px;max-width:730px}.hero p{font-size:17px;color:#e0ebff;max-width:630px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.15em;font-weight:800;color:#6a85a8}.hero .eyebrow{color:#a7cbff}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.hero-visual{background:#ffffff14;border:1px solid #ffffff30;border-radius:23px;padding:20px;transform:rotate(1deg)}.hero-visual .mini-map{height:210px;border-radius:15px;background:radial-gradient(circle at 65% 40%,#7cb4ff 0 4px,transparent 5px),linear-gradient(35deg,transparent 46%,#ffffff75 47% 50%,transparent 51%),linear-gradient(145deg,#d7e9ff,#b9d7fa);position:relative;overflow:hidden}.map-pin-art{position:absolute;left:61%;top:33%;width:30px;height:30px;background:var(--blue);border:4px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 5px 15px #102d5c45}.mini-search{margin-top:15px;border-radius:12px;background:#fff;padding:13px;color:#61738c;font-size:12px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:end;margin:32px 0 15px}.section-head h2,.panel h1,.page-title{margin:0;letter-spacing:-.03em}.section-head p{margin:5px 0 0;color:var(--muted);font-size:14px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.dorm-card,.panel,.auth-card,.stat-card,.review-card,.message-list-card,.thread-card,.reservation-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.dorm-card{overflow:hidden;display:flex;flex-direction:column}.dorm-cover{height:170px;background:linear-gradient(135deg,#d8e9ff,#f5f8ff);display:grid;place-items:center;color:#7394bd;font-size:40px;overflow:hidden}.dorm-cover img{width:100%;height:100%;object-fit:cover}.dorm-card-content{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}.dorm-card h3{margin:0;font-size:18px;line-height:1.3}.dorm-card p{margin:0;color:var(--muted);font-size:13px}.price{font-weight:850;color:var(--ink);font-size:19px}.price small{font-weight:500;color:var(--muted);font-size:11px}.pills{display:flex;gap:6px;flex-wrap:wrap}.pill{padding:4px 8px;background:#eff4fa;border-radius:30px;color:#4c6079;font-size:10px;font-weight:750}.pill-blue{background:#e6f0ff;color:#1755b0}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #d0dbe8;border-radius:10px;padding:10px 14px;font:inherit;font-weight:750;font-size:13px;cursor:pointer;background:white;color:var(--ink);text-align:center}.button:hover{text-decoration:none;filter:brightness(.98)}.button-secondary{background:#f7f9fc}.button-danger{background:#fff1f0;color:var(--red);border-color:#ffd0cd}.button-small{font-size:12px;padding:7px 10px}.button-full{width:100%}.button-light{background:white;color:#1e4a89}.button-outline-light{border-color:#ffffff8a;background:#ffffff12;color:white}.panel{padding:clamp(18px,3vw,30px);margin-bottom:20px}.panel>h1,.page-title{font-size:clamp(25px,3vw,36px);margin-bottom:10px}.muted{color:var(--muted)}.small{font-size:12px}.flash{padding:12px 15px;border-radius:11px;margin-bottom:15px;font-size:13px;font-weight:650}.flash-success{background:#eaf8f1;border:1px solid #bde8d0;color:#126241}.flash-error{background:#fff0ef;border:1px solid #ffd4d0;color:#a5241b}.flash-info{background:#edf4ff;border:1px solid #d4e5ff;color:#214f96}.empty{padding:35px 20px;text-align:center;border:1px dashed #c7d4e3;border-radius:15px;color:var(--muted)}.auth-wrap{max-width:510px;margin:24px auto}.auth-card{padding:30px}.auth-card h1{font-size:30px;line-height:1.1;letter-spacing:-.04em;margin:10px 0}.role-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;background:#f0f4f9;padding:5px;border-radius:12px;margin:20px 0}.role-tabs a{text-align:center;padding:10px;border-radius:9px;color:#627188;font-weight:750;font-size:13px}.role-tabs a.active{background:#fff;color:var(--blue);box-shadow:0 2px 6px #1d33570c}form{margin:0}label,.field{display:block;font-size:12px;font-weight:750;color:#32465f;margin-bottom:14px}input,textarea,select{display:block;width:100%;border:1px solid #ccd7e5;background:#fff;border-radius:10px;padding:11px 12px;margin-top:6px;font:inherit;color:var(--ink);font-size:14px}textarea{resize:vertical;min-height:92px}input:focus,textarea:focus,select:focus{outline:3px solid #2167d51c;border-color:#6b9ce8}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.form-grid .span-2{grid-column:span 2}.field-help{font-size:11px;color:var(--muted);font-weight:500;margin-top:5px}.dashboard-head{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:22px}.dashboard-head h1{margin:3px 0;font-size:34px;letter-spacing:-.04em}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.stat-card{padding:19px}.stat-card .num{font-size:30px;font-weight:850;letter-spacing:-.04em}.stat-card .label{color:var(--muted);font-size:12px;font-weight:650}.quicklinks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quicklink{padding:16px;border:1px solid var(--line);border-radius:13px;color:var(--ink);display:block;background:#fff}.quicklink strong{display:block;margin-bottom:3px}.quicklink span{font-size:12px;color:var(--muted)}.quicklink:hover{border-color:#9fc3fc;text-decoration:none;background:#f8fbff}.map-layout{display:grid;grid-template-columns:minmax(270px,.8fr) minmax(0,1.5fr);gap:18px;align-items:start}.map-panel{position:sticky;top:95px}.map-box{height:470px;border-radius:15px;overflow:hidden;border:1px solid var(--line);background:#e9f0f8}.map-box.small-map{height:340px}.map-empty{display:grid;place-items:center;height:100%;padding:20px;text-align:center;color:#667b94}.map-help{padding:10px 12px;background:#f3f7fd;border-radius:10px;font-size:11px;color:#5d728c;margin-top:10px}.map-widget-host{margin-top:6px}.map-widget-host gmp-place-autocomplete{width:100%;--gmp-mat-color-primary:var(--blue)}.search-listing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.search-listing-grid .dorm-cover{height:125px}.search-listing-grid .dorm-card-content{padding:13px}.radius-control{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.radius-control input{padding:0;margin:12px 0}.detail-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);gap:22px}.detail-cover{height:330px;background:#dbeaff;border-radius:17px;overflow:hidden;display:grid;place-items:center;font-size:48px;color:#7596c0}.detail-cover img{width:100%;height:100%;object-fit:cover}.detail-aside{position:sticky;top:98px}.list-rows{display:grid;gap:10px}.list-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.status{display:inline-flex;align-items:center;border-radius:30px;padding:4px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:850;background:#edf2f8;color:#53657c}.status-pending,.status-pending_review,.status-pending_owner,.status-awaiting_payment{background:#fff4d8;color:#855a00}.status-approved,.status-verified,.status-active,.status-confirmed,.status-paid{background:#e3f8ed;color:#126c49}.status-rejected,.status-suspended,.status-failed{background:#fff0ef;color:#aa281e}.status-inactive,.status-draft,.status-cancelled{background:#edf0f4;color:#5c6877}.doc-grid,.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.doc-card,.admin-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}.doc-card h3,.admin-card h3{margin:0 0 4px;font-size:15px}.checklist{display:grid;gap:8px;margin:14px 0}.checklist label{display:flex;gap:8px;align-items:start;font-weight:600;margin:0}.checklist input{width:auto;margin:3px 0 0}.admin-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:17px 0 23px}.admin-tabs a{padding:8px 12px;border-radius:9px;background:#f0f4f9;font-size:12px;font-weight:750;color:#53657c}.admin-tabs a.active{background:var(--blue);color:white}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{border-bottom:1px solid var(--line);padding:12px 10px;text-align:left;vertical-align:top}th{color:#627188;font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:#f8fafd}.inline-form{display:flex;gap:8px;flex-wrap:wrap}.message-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:17px}.message-thread-list{display:grid;gap:8px}.message-list-card{padding:14px;color:var(--ink)}.message-list-card.active{border-color:#9fc3fc;background:#f4f8ff}.message-list-card strong{display:block}.message-list-card small{color:var(--muted)}.thread-card{overflow:hidden}.thread-head{padding:15px 18px;border-bottom:1px solid var(--line)}.message-stream{height:420px;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px;background:#f7f9fc}.bubble{max-width:78%;padding:10px 13px;border-radius:14px;background:#fff;border:1px solid var(--line);align-self:flex-start;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.mine{align-self:flex-end;background:#2167d5;color:#fff;border-color:#2167d5}.bubble time{display:block;font-size:9px;opacity:.75;margin-top:5px}.chat-compose{padding:13px;display:flex;gap:8px;border-top:1px solid var(--line)}.chat-compose textarea{margin:0;min-height:45px;max-height:120px}.chat-compose button{align-self:stretch}.reservation-card{padding:18px}.reservation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.review-checks{display:grid;gap:6px;margin:12px 0}.review-checks label{display:flex;align-items:start;gap:8px;font-weight:600;margin:0}.review-checks input{width:auto;margin:3px 0 0}.split-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.center{text-align:center}.note-box{padding:13px 15px;border-radius:12px;background:#fff8e8;border:1px solid #f3dfa8;color:#78560d;font-size:12px}.success-box{padding:14px;border:1px solid #c4e9d4;background:#edfaf2;color:#166b49;border-radius:12px}.site-footer a{color:inherit}@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-visual{display:none}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-layout{grid-template-columns:1fr}.map-panel{position:static}.detail-layout{grid-template-columns:1fr}.detail-aside{position:static}.message-layout{grid-template-columns:1fr}.message-thread-list{grid-template-columns:repeat(2,minmax(0,1fr))}.quicklinks{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.topbar{align-items:flex-start;flex-direction:column}.main-nav{gap:10px}.page-shell{padding-top:18px}.grid,.search-listing-grid,.doc-grid,.admin-grid,.reservation-grid{grid-template-columns:1fr}.hero{padding:28px 22px}.hero h1{font-size:36px}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.dashboard-head{flex-direction:column}.detail-cover{height:230px}.map-box{height:340px}.message-thread-list{grid-template-columns:1fr}.site-footer{flex-direction:column}.bubble{max-width:90%}.chat-compose{align-items:stretch}.chat-compose button{padding:8px}}

/* Privacy acknowledgement on private document uploads */
.consent-row{display:flex;align-items:flex-start;gap:9px;margin:14px 0;font-weight:550;line-height:1.45;background:#f7f9fc;border:1px solid var(--line);padding:12px;border-radius:10px}.consent-row input[type=checkbox]{display:inline-block;flex:0 0 auto;width:auto;margin:3px 0 0}.consent-row a{font-weight:800}

.brand-logo{display:block;width:48px;height:48px;object-fit:contain;flex:0 0 auto}
.home-hero{position:relative;isolation:isolate;display:flex;justify-content:center;align-items:center;min-height:clamp(450px,44vw,570px);padding:clamp(46px,7vw,82px) clamp(20px,5vw,64px);background:#eaf0f6;border:1px solid #dce5ed;border-radius:26px;box-shadow:0 22px 55px rgba(20,39,70,.12);text-align:center;color:var(--ink)}
.hero-media{position:absolute;inset:0;z-index:-1;overflow:hidden;border-radius:inherit}
.hero-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center 44%}
.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(245,249,253,.20),rgba(255,255,255,.40) 27%,rgba(255,255,255,.47) 50%,rgba(255,255,255,.40) 73%,rgba(245,249,253,.20)),linear-gradient(0deg,rgba(239,245,250,.36),transparent 44%,rgba(239,245,250,.12))}
.home-hero-content{position:relative;z-index:1;width:min(850px,100%)}
.home-hero .eyebrow{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(33,103,213,.17);border-radius:7px;background:rgba(255,255,255,.88);color:#174eaa;font-size:10px;letter-spacing:.17em;box-shadow:0 4px 16px rgba(20,39,70,.05)}
.home-hero h1{max-width:820px;margin:20px auto 16px;color:#102d52;font-size:clamp(38px,5.3vw,66px);line-height:.99;letter-spacing:-.055em;text-wrap:balance;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.home-hero p{max-width:620px;margin:0 auto;color:#354c67;font-size:clamp(15px,1.5vw,18px);line-height:1.65}
.home-hero .hero-actions{justify-content:center;margin-top:27px}
.button-home-primary{border-color:#174eaa;background:#174eaa;color:#fff;box-shadow:0 7px 18px rgba(23,78,170,.22)}
.button-home-primary:hover{background:#103f8b;color:#fff;transform:translateY(-1px)}
.button-home-secondary{border-color:rgba(21,36,58,.14);background:rgba(255,255,255,.93);color:#193450;box-shadow:0 5px 16px rgba(20,39,70,.07)}
.button-home-secondary:hover{background:#fff;transform:translateY(-1px)}
.home-hero .button{min-height:47px;padding:12px 19px;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.home-hero a:focus-visible{outline:3px solid #f4b328;outline-offset:4px}
.hero-proof{display:flex;justify-content:center;gap:10px 22px;flex-wrap:wrap;margin:23px auto 0;color:#38536e;font-size:11px;font-weight:700;letter-spacing:.015em}
.hero-proof span{display:inline-flex;align-items:center;gap:7px}
.hero-proof span:before{content:"";width:6px;height:6px;border-radius:50%;background:#12a99c;box-shadow:0 0 0 3px rgba(18,169,156,.12)}
@media(max-width:600px){.brand-logo{width:42px;height:42px}.home-hero{min-height:0;padding:calc(42vw + 26px) 20px 38px;align-items:flex-start;justify-content:flex-start;border-radius:20px}.hero-media{background:#eaf0f6}.hero-image{position:absolute;top:0;left:0;height:42vw;object-fit:cover;object-position:center 44%}.hero-media:after{inset:0 0 auto;height:42vw;background:linear-gradient(180deg,transparent 64%,rgba(239,245,250,.92) 100%)}.home-hero h1{font-size:clamp(37px,11vw,48px);line-height:1.02}.home-hero .hero-actions{gap:9px}.home-hero .button{width:100%}.hero-proof{gap:9px 14px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.home-hero .button{transition:none}}
.page-shell:has(> .home-hero){max-width:none;padding:0 0 52px}
.page-shell:has(> .home-hero)>.home-hero{width:100%;margin:0;border:0;border-radius:0;box-shadow:none}
.page-shell:has(> .home-hero)>:not(.home-hero){width:min(1152px,calc(100% - clamp(32px,6vw,68px)));margin-left:auto;margin-right:auto}
.notification-count{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:3px;padding:0 5px;border-radius:99px;background:#b42318;color:#fff;font-size:10px;font-weight:800}
.notification-list{display:grid;gap:10px}
.notification-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}
.notification-item.unread{border-color:#a9c9fa;background:#f5f9ff}
.notification-item h2{margin:0 0 4px;font-size:15px}
.notification-item p{margin:0 0 5px;color:var(--muted);font-size:13px}
@media print{.topbar,.site-footer,.dashboard-head form,.notification-count,button,.button{display:none!important}.page-shell{max-width:none;padding:0}.panel{box-shadow:none;border:0}}

.owner-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0 0 18px;padding:14px 8px;background:#eaf0f7;border:1px solid #d9e2ee;border-radius:14px;color:#53667f;font-size:12px;font-weight:700}
.owner-progress span{display:flex;align-items:center;justify-content:center;gap:7px;position:relative;text-align:center}
.owner-progress span+span:before{content:"";position:absolute;left:-50%;right:50%;top:50%;height:1px;background:#c7d3e2;z-index:0}
.owner-progress b{display:grid;place-items:center;width:24px;height:24px;flex:none;border-radius:50%;background:#d5dfeb;color:#516783;font-size:11px;z-index:1}
.owner-progress .current{color:#174eaa}.owner-progress .current b{background:#2167d5;color:white}
.owner-note{margin:0 0 18px}
.owner-post-page{max-width:1040px;margin:22px auto 48px}
.owner-post-page>.dashboard-head{align-items:center;margin-bottom:18px}
.owner-post-page>.panel{padding:clamp(18px,3vw,30px)}
.form-section-title{border-top:1px solid var(--line);padding-top:19px;margin:23px 0 14px;font-size:17px;letter-spacing:-.02em}
.required-mark{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:5px;background:#e8f1ff;color:#1755b0;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;vertical-align:2px}
.consent-row{display:flex;align-items:flex-start;gap:9px;padding:12px 13px;background:#f5f8fc;border:1px solid var(--line);border-radius:11px;line-height:1.5}
.consent-row input[type=checkbox]{display:inline-block;width:auto;flex:none;margin:3px 0 0}
.photo-preview-list{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0}
.photo-preview-list a{position:relative;display:block;width:120px;height:84px;overflow:hidden;border-radius:9px;background:#e8eef6}
.photo-preview-list img{width:100%;height:100%;object-fit:cover}
.photo-preview-list span{position:absolute;left:5px;bottom:5px;padding:2px 5px;border-radius:4px;background:#14243add;color:#fff;font-size:10px}
.detail-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:170px;gap:8px;border-radius:16px;overflow:hidden;background:#e6edf6}
.detail-photo-grid img{width:100%;height:100%;object-fit:cover}
.detail-photo-grid img:first-child{grid-column:span 2;grid-row:span 2}
.admin-photo-strip{display:flex;gap:6px;overflow-x:auto;padding:3px 0 9px}
.admin-photo-strip a{display:block;width:100px;height:72px;flex:none;border-radius:7px;overflow:hidden;background:#e8eef6}
.admin-photo-strip img{width:100%;height:100%;object-fit:cover}
.property-doc-review{padding:12px 0;border-top:1px solid var(--line)}
.property-review-checks{margin:8px 0}
@media(max-width:720px){.owner-progress{grid-template-columns:1fr;gap:6px;align-items:start}.owner-progress span{justify-content:flex-start}.owner-progress span+span:before{display:none}.detail-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:130px}.detail-photo-grid img:first-child{grid-column:span 2;grid-row:span 1}}

/* Homepage location explorer */
.home-map-section{margin-top:40px}
.home-map-heading{margin-top:0;margin-bottom:20px}
.home-map-heading h2{font-size:clamp(25px,3vw,33px);line-height:1.2}
.home-map-heading>a{flex:none;font-size:12px;font-weight:750}
.home-map-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:20px;align-items:start}
.home-map-places,.home-map-panel{margin:0;min-width:0;box-shadow:none}
.home-map-places{padding:20px;background:#f0f4fa;border-color:#e0e7f1}
.home-map-places h3,.home-map-panel h3{margin:0;font-size:17px;letter-spacing:-.02em}
.home-map-places>p{margin:4px 0 18px;font-size:12px}
.home-map-list{display:grid;gap:12px;max-height:570px;overflow:auto;margin:0;padding:2px;list-style:none}
.home-map-place-item{padding:14px;border:1px solid #dce4ee;border-radius:12px;background:#fff;transition:border-color .18s,box-shadow .18s}
.home-map-place-item:hover{border-color:#9bbbed}
.home-map-place-item:has(.home-map-place[aria-pressed="true"]){border-color:var(--blue);box-shadow:inset 3px 0 0 var(--blue);background:#fff}
.home-map-place{display:flex;gap:12px;width:100%;padding:0;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.home-map-place:disabled{cursor:default}
.home-map-place:focus-visible{outline:3px solid #8db5ef;outline-offset:5px;border-radius:4px}
.home-map-place-photo{width:68px;height:86px;object-fit:cover;border-radius:7px;flex:none}
.home-map-place-details{display:block;min-width:0;flex:1}
.home-map-place-topline{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.home-map-place-name{font-size:14px;font-weight:800;line-height:1.3}
.home-map-featured-label{padding:2px 5px;border-radius:3px;background:#edf3fc;color:#355b8e;font-size:8px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}
.home-map-place-locality{display:block;margin-top:6px;color:#5b6c82;font-size:11px;line-height:1.45}
.home-map-place-rent{display:block;margin-top:8px;color:var(--ink);font-size:17px;font-weight:850}
.home-map-place-rent small{color:var(--muted);font-size:10px;font-weight:500}
.home-map-view-hint{display:flex;align-items:center;justify-content:space-between;margin-top:10px;color:var(--blue-dark);font-size:11px;font-weight:750}
.home-map-place-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid #e7edf5}
.home-map-place-actions a{font-size:11px;font-weight:750}
.home-map-place-actions a:focus-visible{outline:3px solid #8db5ef;outline-offset:3px}
.home-map-empty-list{margin:15px 0 0;color:#596b83;font-size:10px;line-height:1.55}
.home-map-panel{padding:18px}
.home-map-panel-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:14px}
.home-map-panel-heading p{margin:3px 0 0;font-size:11px;line-height:1.5}
.home-map-count{flex:none;padding:5px 9px;border-radius:6px;background:#eef5ff;color:#174eaa;font-size:10px;font-weight:800}
.home-map-canvas{height:480px;min-height:320px;border-radius:11px}
.home-map-label{padding:5px 8px;border:1px solid #c8d7eb;border-radius:5px;box-shadow:0 2px 8px #15243a18;color:#153d75;font-size:10px;font-weight:750;white-space:nowrap}
@media(max-width:950px){.home-map-layout{grid-template-columns:290px minmax(0,1fr)}.home-map-places{padding:15px}.home-map-place-photo{width:54px;height:74px}.home-map-panel{padding:14px}}
@media(max-width:760px){.home-map-layout{grid-template-columns:1fr}.home-map-panel{grid-row:1}.home-map-canvas{height:400px}.home-map-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:430px}.home-map-places{padding:18px}}
@media(max-width:540px){.home-map-section{margin-top:30px}.home-map-heading{align-items:flex-start;flex-direction:column;gap:12px}.home-map-heading p{font-size:12px}.home-map-list{grid-template-columns:1fr;max-height:460px}.home-map-place-photo{width:76px;height:91px}.home-map-canvas{height:350px}.home-map-label{font-size:9px;padding:4px 5px}.home-map-panel{padding:12px}}

.home-map-navigate{min-height:35px;padding:7px 10px;color:var(--blue-dark);border-color:#c8d9f2;background:#f1f6ff;font-size:11px}
.home-map-navigate:disabled{opacity:.55;cursor:not-allowed}
.home-map-info-navigate{margin:6px 0;padding:7px 10px;border:1px solid #c8d9f2;border-radius:7px;background:#f1f6ff;color:var(--blue-dark);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer}
.home-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px;align-items:center;margin:14px 0 0;padding:14px 16px;border:1px solid #ccdcf1;border-left:4px solid var(--blue);border-radius:12px;background:linear-gradient(110deg,#f4f8ff 0%,#fff 72%)}
.home-navigation-kicker{color:var(--blue-dark);font-size:9px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.home-navigation-copy h4{margin:2px 0 3px;color:var(--ink);font-size:16px;letter-spacing:-.02em}
.home-navigation-status{margin:0;color:#465c78;font-size:12px;line-height:1.5}
.home-navigation-limit{margin:7px 0 0;color:#596b83;font-size:10px;line-height:1.45}.home-navigation-limit summary{cursor:pointer;width:fit-content}.home-navigation-limit p{margin:5px 0 0}
.home-navigation-route{grid-column:1/-1;padding-top:11px;border-top:1px solid #dce6f2}
.home-navigation-destination{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:10px}
.home-navigation-destination span,.home-navigation-metrics>div>span{color:var(--muted);font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}
.home-navigation-destination strong{color:var(--blue-dark);font-size:13px;text-align:right}
.home-navigation-metrics{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(90px,.7fr) minmax(92px,.7fr);gap:10px}
.home-navigation-metrics>div{display:grid;align-content:start;gap:4px;min-width:0}
.home-navigation-metrics strong{color:var(--ink);font-size:13px;line-height:1.4}
#home-navigation-step{font-size:12px}
.home-navigation-steps{display:grid;gap:5px;max-height:210px;overflow:auto;margin:12px 0 0;padding:0;list-style:none}
.home-navigation-step-item{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px 9px;border:1px solid transparent;border-radius:8px;color:#52647b;font-size:11px;line-height:1.4}
.home-navigation-step-item.is-current{border-color:#b8d0f1;background:#edf5ff;color:#153d75}
.home-navigation-step-item.is-complete{opacity:.62}
.home-navigation-step-number{display:grid;width:21px;height:21px;place-items:center;border-radius:50%;background:#e9eef5;color:#41566f;font-size:10px;font-weight:850}
.home-navigation-step-item.is-current .home-navigation-step-number{background:var(--blue);color:#fff}
.home-navigation-step-copy{min-width:0}
.home-navigation-step-copy strong{display:block;color:var(--ink);font-size:11px}
.home-navigation-step-copy span{display:block;margin-top:2px;color:var(--muted);font-size:10px}
.home-navigation-step-distance{white-space:nowrap;color:#52647b;font-size:10px;font-weight:750}
.home-navigation-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap}
.home-navigation-actions .button{min-height:40px}
.home-navigation button:focus-visible,.home-map-info-navigate:focus-visible{outline:3px solid #8db5ef;outline-offset:3px}
.home-navigation [hidden]{display:none!important}
.home-map-canvas.leaflet-container{font:inherit;background:#e9f0f8;z-index:0}
.home-map-popup{min-width:170px;line-height:1.6}
.home-map-popup strong{color:var(--ink)}
@media(max-width:600px){.home-navigation{grid-template-columns:1fr;gap:10px;padding:13px}.home-navigation-actions{justify-content:flex-start}.home-navigation-metrics{grid-template-columns:1fr 1fr;gap:12px}.home-navigation-metrics>div:first-child{grid-column:1/-1}.home-navigation-destination{align-items:flex-start;flex-direction:column;gap:2px}.home-navigation-destination strong{text-align:left}.home-navigation-step-item{grid-template-columns:24px minmax(0,1fr) auto;gap:6px;padding:7px 6px}}
@media(prefers-reduced-motion:reduce){.home-map-place-item{transition:none}}

/* Administrator workspace */
.admin-heading{align-items:flex-end;margin:18px 0 22px;padding:25px 28px;background:linear-gradient(112deg,#163457,#1c5273 68%,#24737b);border-radius:16px;color:#fff;box-shadow:0 16px 34px rgba(21,52,79,.16)}
.admin-heading .eyebrow{color:#c6e4ec}.admin-heading .page-title{margin:5px 0;color:#fff;font-size:clamp(28px,4vw,40px);letter-spacing:-.035em}.admin-heading .muted{max-width:680px;margin:4px 0 0;color:#d4e2eb}.admin-heading-meta{display:flex;align-items:center;gap:16px;white-space:nowrap}.admin-heading-meta .muted{color:#d4e2eb}
.admin-tabs{display:flex;gap:7px;overflow-x:auto;margin:0 0 26px;padding:7px;border:1px solid #dfe7eb;border-radius:12px;background:#fff;scrollbar-width:thin}.admin-tabs a{flex:none;padding:9px 13px;border-radius:8px;color:#42566a;font-size:13px;font-weight:700;white-space:nowrap}.admin-tabs a:hover,.admin-tabs a:focus-visible{background:#edf4f5;color:#145976;text-decoration:none}.admin-tabs a.active{background:#173f60;color:#fff}
.admin-queue,.admin-overview-links,.admin-operations-note{border:1px solid #dce6e9;border-radius:15px;background:#fff;box-shadow:0 8px 22px rgba(23,51,72,.045)}.admin-queue{padding:23px 24px 24px}.admin-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 18px}.admin-section-heading h2{margin:3px 0 0;font-size:22px;letter-spacing:-.025em}.admin-section-heading p{margin:5px 0 0}.admin-section-heading>.small{white-space:nowrap}
.admin-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid #e7edef;border-left:1px solid #e7edef}.admin-metric{display:flex;min-height:128px;flex-direction:column;gap:5px;padding:17px 15px;border-right:1px solid #e7edef;border-bottom:1px solid #e7edef;color:var(--ink);transition:background .16s ease,box-shadow .16s ease}.admin-metric:hover,.admin-metric:focus-visible{position:relative;background:#f2f8f8;box-shadow:inset 0 0 0 2px #b9d9d9;text-decoration:none}.admin-metric .metric-label{font-size:12px;font-weight:700;color:#4a6173;line-height:1.35}.admin-metric strong{font-size:32px;line-height:1.15;letter-spacing:-.04em;color:#173f60}.admin-metric>span:last-child{font-size:11px;color:#718293}.admin-metric.is-attention{background:#fff9ec}.admin-metric.is-attention strong{color:#80551c}.admin-metric.is-attention:hover{background:#fff3d8}
.admin-overview-lower{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.8fr);align-items:start;gap:20px;margin-top:22px}.admin-overview-links{padding:22px}.quicklinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quicklink{position:relative;display:flex;min-height:105px;flex-direction:column;gap:5px;padding:15px 16px;border:1px solid #e4eaed;border-radius:10px;background:#fcfdfd;color:var(--ink);transition:border-color .15s ease,transform .15s ease,background .15s ease}.quicklink:hover,.quicklink:focus-visible{border-color:#a7c8cf;background:#f5faf9;text-decoration:none;transform:translateY(-1px)}.quicklink strong{color:#174f68;font-size:15px}.quicklink span{font-size:12px;line-height:1.45;color:#5d6e7e}.quicklink .quicklink-count{margin-top:auto;padding-top:4px;color:#3b6c77;font-size:11px;font-weight:700}
.admin-operations-note{position:sticky;top:18px;padding:23px;background:#f5f8f6;border-color:#d9e6df}.admin-operations-note .eyebrow{color:#34705e}.admin-operations-note h2{margin:6px 0 9px;font-size:20px;line-height:1.25}.admin-operations-note p{color:#536578;font-size:13px}.admin-operations-note>a{display:inline-flex;margin:5px 0 16px;font-size:13px;font-weight:700}.admin-operations-note .note-box{margin:0;background:#fff}
.admin-search{display:flex;align-items:center;gap:7px;min-width:min(100%,350px)}.admin-search input{width:100%;min-width:140px;min-height:38px;padding:8px 11px;border:1px solid #d5e0e5;border-radius:7px;background:#fff}.admin-search input:focus{border-color:#347f91;outline:3px solid rgba(52,127,145,.15)}.admin-search .button{white-space:nowrap}.button-quiet{color:#53687a;background:#eef2f4}.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 0;padding-top:14px;border-top:1px solid #e5ebee;color:#617385;font-size:12px}.admin-pagination>div{display:flex;gap:8px}.admin-pagination .button{white-space:nowrap}.admin-card{border:1px solid #dce5e9;border-top:3px solid #52818a;border-radius:12px;box-shadow:0 8px 18px rgba(23,51,72,.04)}.admin-card h3{letter-spacing:-.02em}.property-doc-review{padding:14px 0;border-top:1px solid #e5ebee}.property-doc-review form{margin-top:10px}.admin-grid{gap:16px}.admin-card .review-checks{gap:7px}.admin-card .inline-form{gap:8px}.table-wrap{border:1px solid #e1e8eb;border-radius:9px}.table-wrap table{min-width:760px}.table-wrap th{background:#f1f5f6;color:#42586a;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.table-wrap td{vertical-align:top}.table-wrap tbody tr:hover{background:#f8fbfb}.table-wrap td a{font-weight:600}.panel>.admin-section-heading{margin-bottom:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-overview-lower{grid-template-columns:minmax(0,1.35fr) minmax(245px,.8fr)}}
@media(max-width:760px){.admin-heading{align-items:flex-start;flex-direction:column;padding:21px}.admin-heading-meta{width:100%;justify-content:space-between}.admin-section-heading{align-items:flex-start;flex-direction:column}.admin-section-heading>.small{white-space:normal}.admin-search{width:100%;min-width:0}.admin-overview-lower{grid-template-columns:1fr}.admin-operations-note{position:static}.admin-queue,.admin-overview-links{padding:18px}.admin-metric{min-height:112px;padding:13px}.admin-metric strong{font-size:28px}.quicklinks{grid-template-columns:1fr}.quicklink{min-height:88px}.admin-tabs{margin-bottom:19px}.admin-pagination{align-items:flex-start;flex-direction:column}}
@media(max-width:460px){.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-metric{min-height:106px;padding:12px}.admin-metric .metric-label{font-size:11px}.admin-metric strong{font-size:26px}.admin-heading-meta{align-items:flex-start;flex-direction:column;gap:7px}.admin-search{flex-wrap:wrap}.admin-search input{flex-basis:100%}.admin-search .button{flex:1}.admin-section-heading h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){.admin-metric,.quicklink{transition:none}}

/* Admin workspace: a self-contained navigation rail that leaves the shared header alone. */
.page-shell:has(.admin-shell){max-width:none;padding:18px clamp(14px,2vw,28px) 40px}
.admin-shell{display:grid;width:100%;grid-template-columns:248px minmax(0,1fr);align-items:start;gap:22px;max-width:none;margin:0}
.admin-sidebar{position:sticky;top:98px;display:flex;min-height:calc(100vh - 130px);flex-direction:column;padding:18px 12px 13px;border:1px solid #d4e0e2;border-radius:13px;background:#173d52;color:#ecf6f6;box-shadow:0 12px 28px rgba(24,57,75,.12)}
.admin-sidebar-heading{display:flex;align-items:center;gap:11px;padding:3px 9px 19px;border-bottom:1px solid rgba(235,247,248,.18)}
.admin-sidebar-mark{display:grid;width:38px;height:38px;flex:none;place-items:center;border:1px solid rgba(221,244,244,.32);border-radius:10px;background:#245b6c;color:#fff;font-size:13px;font-weight:850;letter-spacing:.04em}
.admin-sidebar-heading strong,.admin-sidebar-kicker{display:block}
.admin-sidebar-heading strong{font-size:14px;letter-spacing:-.01em}
.admin-sidebar-kicker{margin-bottom:2px;color:#b9d5d9;font-size:9px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.admin-sidebar-nav{display:flex;flex:1;flex-direction:column;gap:4px;padding-top:16px}
.admin-nav-label{margin:9px 10px 5px;color:#a9c6cb;font-size:9px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.admin-sidebar-nav a{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-left:3px solid transparent;border-radius:6px;color:#e3eff0;font-size:12px;font-weight:650;line-height:1.3}
.admin-sidebar-nav a:hover,.admin-sidebar-nav a:focus-visible{background:rgba(231,248,249,.1);color:#fff;text-decoration:none}
.admin-sidebar-nav a.active{border-left-color:#83d0c7;background:#e8f5f3;color:#163e52;font-weight:800}
.admin-nav-count{min-width:23px;padding:2px 6px;border-radius:10px;background:rgba(227,243,244,.14);color:#eaf5f5;font-size:10px;font-weight:750;text-align:center}
.admin-sidebar-nav a.active .admin-nav-count{background:#d5eae7;color:#205468}
.admin-sidebar-foot{display:flex;align-items:center;gap:8px;margin-top:18px;padding:13px 8px 2px;border-top:1px solid rgba(235,247,248,.18);color:#c0d6da;font-size:10px}
.admin-sidebar-dot{width:7px;height:7px;border-radius:50%;background:#7cc9aa;box-shadow:0 0 0 3px rgba(124,201,170,.13)}
.admin-main{min-width:0}
.admin-main .admin-heading{margin:0 0 20px}
.admin-market-summary{display:grid;grid-template-columns:minmax(150px,1.05fr) repeat(3,minmax(0,1fr));align-items:stretch;margin-bottom:20px;border:1px solid #dce6e9;border-radius:12px;background:#fff;box-shadow:0 6px 18px rgba(23,51,72,.035)}
.admin-market-heading{display:flex;flex-direction:column;justify-content:center;padding:16px 19px}
.admin-market-heading p{margin:3px 0 0;color:#52697a;font-size:12px}
.admin-market-stat{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:2px;padding:15px 18px;border-left:1px solid #e3eaec;color:var(--ink)}
.admin-market-stat:hover,.admin-market-stat:focus-visible{background:#f6fbfa;text-decoration:none}
.admin-market-stat>span{color:#52697a;font-size:11px;font-weight:750;line-height:1.35}
.admin-market-stat strong{color:#173f60;font-size:28px;letter-spacing:-.04em;line-height:1.15}
.admin-market-stat small{color:#728392;font-size:10px;line-height:1.4}
.admin-market-stat-primary{background:#f3f9f7}
.admin-market-stat-primary strong{color:#176b62;font-size:32px}
.admin-main .admin-queue{padding:21px}
.admin-main .admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-main .admin-overview-lower{margin-bottom:18px}
.admin-main .panel{margin-bottom:0}
.admin-main .admin-section-heading{flex-wrap:wrap}
@media(max-width:1120px){
 .admin-shell{grid-template-columns:220px minmax(0,1fr);gap:18px}
 .admin-market-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
 .admin-market-heading{grid-column:1/-1;padding-bottom:10px}
 .admin-market-stat{border-top:1px solid #e3eaec}
 .admin-market-stat:first-of-type{border-left:0}
 .admin-main .admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 .page-shell:has(.admin-shell){padding:16px 14px 34px}
 .admin-shell{grid-template-columns:minmax(0,1fr);gap:17px}
 .admin-sidebar{position:static;min-height:0;padding:12px;border-radius:10px}
 .admin-sidebar-heading{padding:2px 4px 10px}
 .admin-sidebar-mark{width:32px;height:32px}
 .admin-sidebar-nav{flex-direction:row;gap:5px;overflow-x:auto;padding:10px 0 2px;scrollbar-width:thin}
 .admin-nav-label{display:none}
 .admin-sidebar-nav a{min-height:36px;flex:none;justify-content:center;padding:8px 10px;border:1px solid transparent;border-radius:6px;white-space:nowrap}
 .admin-sidebar-nav a.active{border-color:#bedbd6}
 .admin-sidebar-foot{display:none}
 .admin-main .admin-heading{margin:0 0 16px}
 .admin-market-summary{margin-bottom:16px}
 .admin-main .admin-queue{padding:16px}
}
@media(max-width:460px){
 .admin-market-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .admin-market-heading{grid-column:1/-1}
 .admin-market-stat{padding:12px 13px;border-left:0}
 .admin-market-stat:nth-of-type(2){border-left:1px solid #e3eaec}
 .admin-market-stat strong{font-size:25px}
 .admin-market-stat-primary strong{font-size:29px}
 .admin-main .admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Admin overview dashboard */
.page-shell:has(.admin-shell){background:#f1f4f8}
.admin-shell{grid-template-columns:232px minmax(0,1fr);gap:22px;max-width:1640px}
.admin-sidebar{top:94px;min-height:calc(100vh - 118px);border:0;border-radius:10px;background:#142b49;box-shadow:0 10px 24px rgba(23,43,71,.12)}
.admin-sidebar-mark{background:#24466d}
.admin-sidebar-nav a.active{border-left-color:#4fb8a8;background:#23446a;color:#fff}
.admin-sidebar-nav a.active .admin-nav-count{background:#385979;color:#fff}
.admin-heading-overview{align-items:center;min-height:0;margin:0 0 16px!important;padding:2px 0!important;border:0;border-radius:0;background:transparent;color:var(--ink);box-shadow:none}
.admin-heading-overview .eyebrow{color:#657d99}
.admin-heading-overview .page-title{margin:0;color:#182e49;font-size:clamp(26px,2.4vw,33px);letter-spacing:-.04em}
.admin-heading-overview .muted,.admin-heading-overview .admin-heading-meta .muted{color:#67798e}
.admin-heading-overview>div:first-child .eyebrow{display:none}
.admin-heading-overview>div:first-child .muted{margin-top:4px;font-size:12px}
.admin-heading-overview .admin-heading-meta{gap:10px}
.admin-heading-overview .admin-heading-meta .status{display:none}
.admin-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;margin-bottom:14px}
.admin-stat-card{position:relative;display:grid;min-height:126px;grid-template-columns:28px 1fr;grid-template-rows:auto 1fr auto;align-items:center;column-gap:8px;padding:14px;border:1px solid #e2e8ef;border-radius:9px;background:#fff;color:#41536a;box-shadow:0 3px 10px rgba(36,55,80,.035)}
.admin-stat-card:hover,.admin-stat-card:focus-visible{border-color:#b7c8d9;background:#fbfdff;text-decoration:none;box-shadow:0 5px 15px rgba(36,55,80,.08)}
.admin-stat-card>span:not(.admin-stat-icon){grid-column:1/-1;grid-row:1;color:#607187;font-size:10px;font-weight:700;line-height:1.35}
.admin-stat-card strong{grid-column:1/-1;grid-row:2;align-self:center;color:#1d3552;font-size:27px;letter-spacing:-.045em;line-height:1.1}
.admin-stat-card small{grid-column:1/-1;grid-row:3;color:#8290a0;font-size:9px;line-height:1.35}
.admin-stat-icon{position:absolute;top:12px;right:12px;display:grid;width:23px;height:23px;place-items:center;border-radius:6px;background:#edf2f8;color:#58728f;font-size:13px;font-weight:800}
.admin-stat-highlight{border-color:#c9dff0;background:#f9fcff}
.admin-stat-highlight strong{color:#17697c}
.admin-stat-attention{border-color:#f0dfbb;background:#fffdfa}
.admin-stat-attention strong{color:#8a6423}
.admin-chart-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr);gap:14px;margin-bottom:14px}
.admin-data-panel{min-width:0;padding:17px 18px;border:1px solid #e0e6ed;border-radius:9px;background:#fff;box-shadow:0 3px 10px rgba(36,55,80,.035)}
.admin-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.admin-panel-heading .eyebrow{font-size:9px;letter-spacing:.13em}
.admin-panel-heading h2{margin:2px 0 0;color:#1b314d;font-size:16px;letter-spacing:-.025em;line-height:1.3}
.admin-panel-heading p{margin:3px 0 0;color:#7c8998;font-size:10px;line-height:1.4}
.admin-period-label{flex:none;padding:5px 8px;border:1px solid #e1e7ef;border-radius:5px;color:#65768a;font-size:9px;font-weight:700}
.admin-text-link,.admin-row-link{flex:none;color:#4779a6;font-size:10px;font-weight:750}
.admin-chart-legend{display:flex;gap:14px;margin:8px 0 1px;color:#647488;font-size:9px}
.admin-chart-legend span{display:flex;align-items:center;gap:5px}
.admin-chart-legend i,.admin-status-legend i{display:inline-block;width:7px;height:7px;border-radius:50%}
.legend-dorms{background:#3b927d}.legend-reservations{background:#6189cf}
.admin-chart-scroll{width:100%;overflow-x:auto}
.admin-activity-chart{display:block;width:100%;min-width:420px;height:auto;overflow:visible}
.admin-chart-gridline{stroke:#e9edf2;stroke-width:1}
.admin-chart-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.admin-chart-line-dorms{stroke:#3b927d}.admin-chart-line-reservations{stroke:#6189cf}
.admin-chart-dot-dorms{fill:#fff;stroke:#3b927d;stroke-width:2}.admin-chart-dot-reservations{fill:#fff;stroke:#6189cf;stroke-width:2}
.admin-chart-month{fill:#7a8797;font-size:10px}
.admin-chart-empty,.admin-inline-empty{display:flex;min-height:170px;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:20px;text-align:center;color:#7a8797}
.admin-chart-empty strong{color:#465b71;font-size:12px}
.admin-chart-empty span{max-width:330px;font-size:10px}
.admin-donut-layout{display:flex;min-height:174px;align-items:center;justify-content:center;gap:25px}
.admin-status-donut{display:grid;width:148px;height:148px;flex:none;place-items:center;border-radius:50%;position:relative}
.admin-status-donut::before{position:absolute;inset:22px;border-radius:50%;background:#fff;content:""}
.admin-status-donut>span{z-index:1;display:flex;flex-direction:column;align-items:center;line-height:1.2}
.admin-status-donut strong{color:#203753;font-size:22px;letter-spacing:-.04em}
.admin-status-donut small{color:#7d8997;font-size:9px}
.admin-status-legend{display:flex;min-width:120px;max-width:210px;flex:1;flex-direction:column;gap:9px;margin:0;padding:0;list-style:none}
.admin-status-legend li,.admin-status-legend li>span{display:flex;align-items:center;justify-content:space-between;gap:7px}
.admin-status-legend li>span{justify-content:flex-start;color:#647488;font-size:10px}
.admin-status-legend i{width:8px;height:8px;flex:none}
.admin-status-legend strong{color:#33485f;font-size:10px}
.admin-donut-empty{min-height:auto;padding:12px;font-size:10px}
.admin-queue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.admin-queue-grid .admin-data-panel{padding-bottom:11px}
.admin-table-wrap{width:100%;overflow-x:auto}
.admin-dashboard-table{width:100%;border-collapse:collapse;font-size:10px;text-align:left}
.admin-dashboard-table th{padding:8px 7px;border-bottom:1px solid #e8edf2;color:#8793a2;font-size:8px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.admin-dashboard-table td{padding:9px 7px;border-bottom:1px solid #edf0f4;color:#607084;white-space:nowrap}
.admin-dashboard-table tbody tr:last-child td{border-bottom:0}
.admin-dashboard-table td:first-child{min-width:120px}
.admin-dashboard-table td a strong{color:#354d67;font-size:10px}
.admin-dashboard-table td small{display:block;margin-top:2px;color:#8591a0;font-size:9px}
.admin-inline-count{display:inline-grid;min-width:20px;height:20px;place-items:center;border-radius:50%;background:#eef3f7;color:#526e89;font-weight:750}
.admin-inline-empty{min-height:104px;font-size:10px}
.admin-recent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.admin-recent-grid .admin-data-panel{padding:16px 14px}
.admin-recent-grid .admin-panel-heading h2{font-size:15px}
.admin-recent-grid .admin-panel-heading p{max-width:220px}
.admin-activity-list{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none}
.admin-activity-list>li{display:flex;min-width:0;align-items:center;gap:8px;padding:9px 0;border-top:1px solid #edf0f4}
.admin-record-icon{display:grid;width:25px;height:25px;flex:none;place-items:center;border-radius:7px;background:#edf3f8;color:#597998;font-size:10px;font-weight:800}
.admin-record-booking{background:#edf5f3;color:#39836f}.admin-record-payment{background:#f2f0f9;color:#7566a2}.admin-record-activity{background:#edf3f8;color:#567fa3}
.admin-record-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}
.admin-record-copy>a{overflow:hidden;color:#344b64;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.admin-record-copy small{overflow:hidden;color:#8390a0;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.admin-record-copy small a{color:#6a8097}
.admin-activity-list .status{flex:none;padding:3px 6px;font-size:8px}
.admin-payment-value{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:4px}
.admin-payment-value>strong{color:#3f566c;font-size:9px}
.admin-audit-list time{flex:none;color:#8793a0;font-size:8px}
@media(max-width:1200px){
 .admin-shell{grid-template-columns:210px minmax(0,1fr);gap:16px}
 .admin-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .admin-recent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .admin-recent-grid>.admin-data-panel:last-child{grid-column:1/-1}
}
@media(max-width:900px){
 .admin-chart-grid{grid-template-columns:minmax(0,1.25fr) minmax(260px,.9fr);gap:10px}
 .admin-donut-layout{gap:13px}
 .admin-status-donut{width:124px;height:124px}
 .admin-status-donut::before{inset:19px}
}
@media(max-width:760px){
 .page-shell:has(.admin-shell){padding:10px 10px 28px}
 .admin-shell{width:100%;grid-template-columns:minmax(0,1fr);gap:10px}
 .admin-sidebar{position:static;width:100%;min-width:0;min-height:0;height:auto;padding:8px 10px;border-radius:8px}
 .admin-sidebar-heading{min-height:29px;padding:0 3px 6px}
 .admin-sidebar-mark{width:26px;height:26px}
 .admin-sidebar-heading strong{font-size:12px}
 .admin-sidebar-kicker{font-size:8px}
 .admin-sidebar-nav{min-width:0;flex-flow:row nowrap;gap:4px;overflow-x:auto;padding:6px 0 1px;scrollbar-width:thin}
 .admin-nav-label{display:none}
 .admin-sidebar-nav a{min-height:29px;flex:none;justify-content:center;padding:5px 8px;border:1px solid transparent;border-radius:5px;font-size:10px;white-space:nowrap}
 .admin-sidebar-nav a.active{border-color:#45627f}
 .admin-sidebar-foot{display:none}
 .admin-main .admin-heading{margin:0 0 10px}
 .admin-chart-grid{grid-template-columns:minmax(0,1fr)}
 .admin-chart-scroll{overflow-x:auto}
 .admin-activity-chart{min-width:500px}
 .admin-recent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .admin-heading-overview .page-title{font-size:24px}
 .admin-heading-overview .admin-heading-meta{display:none}
}
@media(max-width:560px){
 .page-shell:has(.admin-shell){padding-right:8px;padding-left:8px}
 .admin-shell{gap:8px}
 .admin-sidebar{padding:7px 8px}
 .admin-sidebar-heading{min-height:27px;padding-bottom:5px}
 .admin-sidebar-nav{gap:3px;padding-top:5px}
 .admin-sidebar-nav a{min-height:27px;padding:4px 7px;font-size:9px}
 .admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .admin-stat-card{min-height:102px;padding:11px}
 .admin-stat-card strong{font-size:24px}
 .admin-queue-grid,.admin-recent-grid{grid-template-columns:minmax(0,1fr);gap:10px}
 .admin-recent-grid>.admin-data-panel:last-child{grid-column:auto}
 .admin-data-panel{padding:14px 12px}
 .admin-donut-layout{justify-content:flex-start}
 .admin-status-donut{width:132px;height:132px}
}
@media(prefers-reduced-motion:reduce){.admin-stat-card{transition:none}}

/* Admin-only chrome and full-height workspace rail. */
.admin-page{min-height:100vh;background:#f1f4f8}
.admin-page .topbar{min-height:44px;height:44px;justify-content:flex-end;padding:0 22px;background:#fff;border-bottom:1px solid #e0e6ed}
.admin-page .topbar .brand,.admin-page .main-nav>a,.admin-page .main-nav>.nav-user{display:none}
.admin-page .main-nav{min-height:44px;justify-content:flex-end;gap:0}
.admin-page .main-nav .nav-logout{display:block;margin:0}
.admin-page .main-nav .link-button{padding:7px 12px;border:1px solid #d7e0e9;border-radius:6px;background:#fff;color:#334b66;font-size:11px;font-weight:750}
.admin-page .page-shell:has(.admin-shell){width:100%;max-width:none;min-height:calc(100vh - 44px);margin:0;padding:0;background:#f1f4f8}
.admin-page .admin-shell{width:100%;max-width:none;min-height:calc(100vh - 44px);grid-template-columns:232px minmax(0,1fr);gap:0;margin:0}
.admin-page .admin-sidebar{position:sticky;top:44px;width:232px;height:calc(100vh - 44px);min-height:calc(100vh - 44px);align-self:start;padding:20px 13px 14px;border:0;border-radius:0;box-shadow:none}
.admin-page .admin-main{min-height:calc(100vh - 44px);padding:19px clamp(18px,2vw,30px) 26px}
.admin-page .admin-main .admin-heading{margin-bottom:14px}
.admin-page .site-footer{display:none}
@media(max-width:760px){
 .admin-page .topbar{height:40px;min-height:40px;padding:0 10px}
 .admin-page .main-nav{min-height:40px}
 .admin-page .main-nav .link-button{padding:5px 9px}
 .admin-page .page-shell:has(.admin-shell){min-height:calc(100vh - 40px);padding:0}
 .admin-page .admin-shell{min-height:calc(100vh - 40px);grid-template-columns:minmax(0,1fr);gap:0}
 .admin-page .admin-sidebar{position:relative;top:auto;width:100%;height:auto;min-height:0;padding:8px 10px 7px;border-radius:0;box-shadow:0 3px 10px rgba(23,43,71,.08)}
 .admin-page .admin-sidebar-heading{min-height:27px;padding:0 3px 5px}
 .admin-page .admin-sidebar-nav{flex-flow:row nowrap;gap:4px;overflow-x:auto;padding:5px 0 2px;scrollbar-width:thin}
 .admin-page .admin-sidebar-nav a{min-height:28px;padding:4px 8px;font-size:9px}
 .admin-page .admin-main{min-height:0;padding:11px 10px 22px}
}
@media(max-width:560px){
 .admin-page .admin-sidebar{padding-right:8px;padding-left:8px}
 .admin-page .admin-sidebar-nav{gap:3px}
 .admin-page .admin-sidebar-nav a{padding:4px 7px;font-size:9px}
 .admin-page .admin-main{padding:10px 8px 20px}
}

/* Homepage featured dorm carousel */
.page-shell:has(> .home-hero)>.home-featured-section{width:100%;max-width:none;margin:28px 0 0;padding:0 clamp(16px,3vw,40px)}
.home-featured-heading{margin:0 0 15px}
.home-featured-heading>div{min-width:0}
.home-featured-heading>a{flex:0 0 auto;white-space:nowrap}
.featured-carousel{min-width:0}
.featured-carousel-track{overflow:hidden;border:1px solid #dfe7f2;border-radius:20px;background:#fff;box-shadow:0 18px 46px rgba(21,36,58,.08)}
.featured-slide[hidden]{display:none!important}
.featured-slide{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(0,1fr);min-height:410px}
.featured-slide-media{position:relative;min-width:0;min-height:410px;overflow:hidden;background:#eaf1f8}
.featured-slide-media>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.featured-slide-no-photo{display:grid;place-items:center;width:100%;height:100%;min-height:410px;color:#7394bd;font-size:56px}
.featured-slide-content{display:flex;min-width:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:13px;padding:clamp(24px,3.5vw,46px);background:#fff}
.featured-label{display:inline-flex;align-items:center;max-width:100%;padding:7px 10px;border:1px solid rgba(33,103,213,.16);border-radius:7px;background:#edf5ff;color:#174eaa;font-size:10px;font-weight:800;letter-spacing:.09em;line-height:1.4;text-transform:uppercase}
.featured-label-listing{background:#eaf8f1;border-color:#c7ebd9;color:#126241}
.featured-slide-content h3{margin:0;color:#102d52;font-size:clamp(27px,3vw,38px);letter-spacing:-.045em;line-height:1.08}
.featured-location,.featured-description,.featured-note{margin:0;color:#4d5f7b;font-size:14px;line-height:1.65}
.featured-location{font-size:15px}
.featured-price{margin:0;color:#15243a;font-size:clamp(25px,2.4vw,32px);font-weight:850;letter-spacing:-.04em;line-height:1.15}
.featured-price small{color:#647791;font-size:12px;font-weight:600;letter-spacing:0}
.featured-pills{display:flex;flex-wrap:wrap;gap:7px}
.featured-pills .pill{padding:6px 10px;font-size:11px}
.featured-cta{width:auto;margin-top:3px;padding:10px 15px}
.featured-note{padding:10px 12px;border-left:3px solid #b6c9df;background:#f4f7fb;font-size:12px}
.featured-slide-media-gallery{display:flex;flex-direction:column;align-self:start;min-height:0;aspect-ratio:auto!important}
.featured-gallery-open{position:relative;display:block;width:100%;height:420px;min-height:0;padding:0;border:0;background:#eaf1f8;cursor:zoom-in;line-height:0}
.featured-gallery-open img{position:static;display:block;width:100%;max-width:100%;height:100%;margin:0;object-fit:cover}
.featured-gallery-open span{position:absolute;right:12px;bottom:12px;padding:7px 11px;border-radius:8px;background:rgba(16,45,82,.88);color:white;font-size:12px}
.featured-gallery-toolbar{display:flex;justify-content:flex-end;padding:6px 12px;background:#f4f7fb}
.featured-gallery-toolbar button{min-height:32px;padding:5px 10px;border:1px solid #d3dfed;border-radius:7px;background:#fff;color:#174eaa;font:inherit;font-size:12px;cursor:pointer}
.featured-gallery-thumbnails{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:0 12px 9px;background:#f4f7fb}
.featured-gallery-thumbnails[hidden]{display:none!important}
.featured-gallery-thumb{width:64px;height:42px;min-width:0;padding:0;overflow:hidden;border:2px solid transparent;border-radius:7px;background:#edf2f8;cursor:pointer}
.featured-gallery-open:focus-visible,.featured-gallery-toolbar button:focus-visible{outline:3px solid #f4b328;outline-offset:-3px}
.featured-photo-viewing{overflow:hidden}
.featured-photo-viewer{width:min(1100px,94vw);max-width:94vw;max-height:94dvh;padding:48px 12px 12px;border:0;border-radius:14px;background:#101c2c;color:white}
.featured-photo-viewer::backdrop{background:rgba(0,0,0,.82)}
.featured-photo-viewer img{display:block;width:100%;height:auto;max-height:calc(94dvh - 72px);object-fit:contain}
.featured-photo-close{position:absolute;top:8px;right:12px;min-height:32px;padding:5px 12px;border:1px solid #697789;border-radius:7px;background:#fff;color:#102d52;font:inherit;cursor:pointer}
.featured-gallery-thumb[aria-pressed=true]{border-color:var(--blue)}
.featured-gallery-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.featured-gallery-thumb:focus-visible,.featured-carousel-arrow:focus-visible{outline:3px solid #f4b328;outline-offset:3px}
.featured-carousel-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:14px 2px 0}
.featured-carousel-controls[hidden]{display:none!important}
.featured-carousel-arrow{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;width:max-content;padding:8px 13px;border:1px solid #d3dfed;border-radius:10px;background:#fff;color:#174eaa;font:inherit;font-size:13px;font-weight:750;cursor:pointer}
.featured-carousel-arrow:hover{border-color:#9bb9e7;background:#f7faff}
.featured-carousel-arrow:last-child{justify-self:end}
.featured-carousel-status{margin:0;color:#627188;font-size:12px;font-weight:650;text-align:center}
@media(max-width:760px){
 .home-featured-heading{align-items:flex-start;flex-direction:column;gap:10px}
 .featured-slide{grid-template-columns:minmax(0,1fr);min-height:0}
 .featured-slide-media{min-height:0;aspect-ratio:1.5}
 .featured-slide-no-photo{min-height:0}
 .featured-slide-content{gap:11px;padding:23px clamp(19px,5vw,30px) 26px}
 .featured-slide-content h3{font-size:clamp(27px,7vw,35px)}
 .featured-gallery-open{height:clamp(240px,65vw,380px);min-height:0;aspect-ratio:auto}
 .featured-gallery-thumb{height:40px;width:58px}
 .featured-carousel-controls{gap:7px}
 .featured-carousel-arrow{min-height:40px;padding:7px 10px;font-size:12px}
}
@media(max-width:420px){
 .featured-carousel-controls{grid-template-columns:auto minmax(0,1fr) auto}
 .featured-carousel-arrow{gap:4px;padding:7px 8px}
 .featured-carousel-arrow span{font-size:11px}
 .featured-carousel-status{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
 .featured-carousel-arrow,.featured-gallery-thumb{scroll-behavior:auto;transition:none}
}


/* ==========================================================================
   DORMFINDER IBA, ZAMBALES - MODERN LOGO-ALIGNED THEME (RENT.PH ARCHITECTURE)
   Color Palette strictly anchored to DormFinder Logo:
   - Royal Navy Blue: #091e3a / #061529
   - Vibrant Primary Blue: #0b4da2 / #174eaa
   - Turquoise / Teal: #00a896 / #008f80
   - Warm Golden Amber: #f59e0b / #d97706
   - Crisp White / Slate: #ffffff / #f4f7fb
   ========================================================================== */

:root {
  --brand-navy: #091e3a;
  --brand-navy-dark: #061529;
  --brand-blue: #0b4da2;
  --brand-blue-hover: #083c7e;
  --brand-blue-glow: rgba(11, 77, 162, 0.22);
  --brand-teal: #00a896;
  --brand-teal-hover: #008f80;
  --brand-teal-glow: rgba(0, 168, 150, 0.24);
  --brand-teal-subtle: rgba(0, 168, 150, 0.10);
  --brand-cyan: #00b4b4;
  --brand-gold: #f59e0b;
  --brand-gold-hover: #d97706;
  --brand-gold-glow: rgba(245, 158, 11, 0.28);
  --brand-gold-subtle: rgba(245, 158, 11, 0.12);
  --brand-bg: #f5f8fc;
  --brand-surface: #ffffff;
  --brand-surface-subtle: #f8fbff;
  --brand-border: #e2e8f2;
  --brand-border-subtle: #edf2f7;
  --brand-text: #091e38;
  --brand-text-muted: #556882;
  --brand-text-dim: #7a8ba0;
  --brand-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  /* Aliases for backwards compatibility */
  --rent-bg: var(--brand-bg);
  --rent-bg-subtle: var(--brand-surface-subtle);
  --rent-card-bg: var(--brand-surface);
  --rent-card-hover: #f8fbff;
  --rent-border: var(--brand-border);
  --rent-border-subtle: var(--brand-border-subtle);
  --rent-orange: var(--brand-blue);
  --rent-orange-hover: var(--brand-blue-hover);
  --rent-orange-glow: var(--brand-blue-glow);
  --rent-orange-subtle: rgba(11, 77, 162, 0.10);
  --rent-text: var(--brand-text);
  --rent-text-muted: var(--brand-text-muted);
  --rent-text-dim: var(--brand-text-dim);
  --rent-font-sans: var(--brand-font-sans);
}

/* Base resets & typography for rent-theme */
body.rent-theme {
  background-color: var(--brand-bg);
  color: var(--brand-text);
  font-family: var(--brand-font-sans);
  margin: 0;
  line-height: 1.6;
}

body.rent-theme a {
  color: var(--brand-blue);
  text-decoration: none;
  transition: color 0.18s ease;
}

body.rent-theme a:hover {
  color: var(--brand-teal);
  text-decoration: none;
}

/* Generic inline SVG Icon styling - strictly replaces all emojis */
.df-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: -0.15em;
  flex-shrink: 0;
  transition: transform 0.18s ease, stroke 0.18s ease;
}

/* Topbar & Navigation */
body.rent-theme .topbar {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--brand-border);
  position: sticky;
  top: 0;
  z-index: 1000;
  padding: 12px clamp(16px, 4vw, 48px);
}

body.rent-theme .brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--brand-navy);
  text-decoration: none;
}

body.rent-theme .brand-logo {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

body.rent-theme .brand-text {
  display: flex;
  flex-direction: column;
}

body.rent-theme .brand-title {
  font-size: 21px;
  font-weight: 900;
  letter-spacing: -0.025em;
  line-height: 1.1;
}

body.rent-theme .brand-title .dorm-part {
  color: var(--brand-blue);
}

body.rent-theme .brand-title .finder-part {
  color: var(--brand-teal);
}

body.rent-theme .brand-title .dot-ph {
  color: var(--brand-gold);
}

body.rent-theme .brand-badge {
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--brand-teal);
  background: var(--brand-teal-subtle);
  border: 1px solid rgba(0, 168, 150, 0.25);
  padding: 2px 7px;
  border-radius: 4px;
  display: inline-block;
  margin-top: 3px;
  width: fit-content;
}

body.rent-theme .main-nav {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

body.rent-theme .main-nav a {
  color: #334155;
  font-size: 13.5px;
  font-weight: 650;
  transition: color 0.18s ease;
}

body.rent-theme .main-nav a:hover {
  color: var(--brand-blue);
}

body.rent-theme .rentmatch-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  background: linear-gradient(135deg, rgba(11, 77, 162, 0.12), rgba(0, 168, 150, 0.15));
  border: 1px solid rgba(0, 168, 150, 0.35);
  border-radius: 999px;
  color: var(--brand-navy) !important;
  font-weight: 750 !important;
  font-size: 12px !important;
}

body.rent-theme .rentmatch-badge .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--brand-teal);
  box-shadow: 0 0 8px var(--brand-teal);
}

body.rent-theme .nav-login {
  color: var(--brand-blue) !important;
  font-weight: 700 !important;
  padding: 8px 14px;
  border: 1px solid var(--brand-border);
  border-radius: 9px;
  background: #ffffff;
  transition: all 0.18s ease;
}

body.rent-theme .nav-login:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

body.rent-theme .nav-register-btn {
  background: var(--brand-blue) !important;
  color: #ffffff !important;
  font-weight: 750 !important;
  padding: 8px 16px;
  border-radius: 9px;
  box-shadow: 0 4px 14px var(--brand-blue-glow);
  transition: all 0.18s ease;
}

body.rent-theme .nav-register-btn:hover {
  background: var(--brand-blue-hover) !important;
  transform: translateY(-1px);
}

body.rent-theme .authenticated-nav {
  flex-wrap: nowrap;
  gap: clamp(10px, 1.4vw, 20px);
}

body.rent-theme .authenticated-nav > a:not(.rentmatch-badge) {
  white-space: nowrap;
}

body.rent-theme .nav-theme-icon {
  display: inline-flex;
  align-items: center;
  color: var(--brand-teal);
}

body.rent-theme .nav-icon-link {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border: 1px solid var(--brand-border);
  border-radius: 50%;
  color: #334155;
  background: #fff;
}

body.rent-theme .nav-icon-link:hover {
  background: #f1f5f9;
  text-decoration: none;
}

body.rent-theme .nav-icon-count {
  position: absolute;
  top: -5px;
  right: -5px;
  display: grid;
  min-width: 17px;
  height: 17px;
  place-items: center;
  padding: 0 4px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #dc3d42;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
}

body.rent-theme .nav-account {
  position: relative;
  flex: 0 0 auto;
}

body.rent-theme .nav-account summary {
  display: flex;
  cursor: pointer;
  list-style: none;
}

body.rent-theme .nav-account summary::-webkit-details-marker {
  display: none;
}

body.rent-theme .nav-avatar {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--brand-blue), var(--brand-teal));
  box-shadow: 0 0 0 1px var(--brand-border);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
}

body.rent-theme .nav-account summary:focus-visible,
body.rent-theme .nav-icon-link:focus-visible {
  outline: 3px solid rgba(33, 103, 213, .35);
  outline-offset: 3px;
}

body.rent-theme .nav-account-menu {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  z-index: 1100;
  width: min(270px, calc(100vw - 32px));
  padding: 8px;
  border: 1px solid var(--brand-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(20, 39, 70, .16);
}

body.rent-theme .nav-account-heading {
  display: grid;
  gap: 2px;
  padding: 10px 11px 12px;
  border-bottom: 1px solid var(--brand-border);
}

body.rent-theme .nav-account-heading strong {
  overflow: hidden;
  color: var(--brand-navy);
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.rent-theme .nav-account-heading span {
  color: var(--brand-text-muted);
  font-size: 11px;
  text-transform: capitalize;
}

body.rent-theme .nav-account-menu > a,
body.rent-theme .nav-account-menu .nav-logout button {
  display: block;
  width: 100%;
  padding: 9px 11px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #334155;
  font: inherit;
  font-size: 13px;
  text-align: left;
}

body.rent-theme .nav-account-menu > a:hover {
  background: #f1f5f9;
  text-decoration: none;
}

body.rent-theme .nav-account-menu .nav-logout {
  margin-top: 5px;
  padding-top: 5px;
  border-top: 1px solid var(--brand-border);
}

body.rent-theme .nav-account-menu .nav-logout button {
  cursor: pointer;
  color: #c83232;
  font-weight: 700;
}

body.rent-theme .nav-account-menu .nav-logout button:hover {
  background: #fff1f0;
}

@media (max-width: 1100px) {
  body.rent-theme .authenticated-topbar {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  body.rent-theme .authenticated-nav {
    width: 100%;
    overflow-x: auto;
    padding: 2px 2px 7px;
    scrollbar-width: thin;
    white-space: nowrap;
  }
}

@media (max-width: 640px) {
  body.rent-theme .authenticated-nav {
    flex-wrap: wrap;
    overflow: visible;
    gap: 5px;
    padding-bottom: 0;
    white-space: normal;
  }

  body.rent-theme .authenticated-nav > a:not(.rentmatch-badge) {
    white-space: nowrap;
  }
}

/* Layout container */
.rent-container {
  width: 100%;
  max-width: 1680px;
  margin: 0 auto;
  padding: 0 clamp(18px, 2.5vw, 40px);
  box-sizing: border-box;
}

.rent-section {
  padding: 32px 0;
  border-bottom: 1px solid var(--brand-border-subtle);
}

.rent-section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  margin-bottom: 18px;
}

.rent-eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--brand-teal);
  margin-bottom: 6px;
}

.rent-section-title {
  font-size: clamp(24px, 3.2vw, 34px);
  font-weight: 900;
  color: var(--brand-navy);
  letter-spacing: -0.025em;
  line-height: 1.15;
  margin: 0 0 6px;
}

.rent-section-title span {
  color: var(--brand-blue);
}

.rent-section-count {
  font-size: 13.5px;
  color: var(--brand-text-muted);
}

.rent-view-all {
  font-size: 13px;
  font-weight: 750;
  color: var(--brand-blue);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.rent-view-all:hover {
  color: var(--brand-teal);
}

/* 1. HERO SECTION */
.page-shell:has(> .rent-hero-wrap) {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 20px;
}

.rent-hero-wrap {
  position: relative;
  isolation: isolate;
  width: 100%;
  background: #edf4fa;
  padding: clamp(56px, 7vw, 76px) 20px;
  color: var(--brand-navy);
  text-align: center;
  overflow: hidden;
  border-radius: 0;
  box-shadow: none;
}

.rent-hero-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  background: #e9f1f7;
}

.rent-hero-bg-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  opacity: 0.68;
  filter: saturate(0.86);
}

.rent-hero-bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.84) 0%, rgba(255, 255, 255, 0.76) 48%, rgba(255, 255, 255, 0.84) 100%);
  pointer-events: none;
}

.rent-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 960px;
  margin: 0 auto;
}

.rent-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(33, 103, 213, 0.18);
  color: var(--brand-blue);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 15px;
}

.rent-hero-title {
  font-size: clamp(38px, 5.6vw, 62px);
  font-weight: 900;
  color: var(--brand-navy);
  line-height: 1.05;
  letter-spacing: -0.045em;
  margin: 0 0 14px;
}

.rent-hero-title span {
  color: var(--brand-blue);
}

.rent-hero-desc {
  font-size: clamp(15px, 1.8vw, 17px);
  color: #344760;
  max-width: 680px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Search Bar in Hero */
.rent-search-bar {
  display: flex;
  align-items: center;
  background: #ffffff;
  border: 1px solid rgba(21, 36, 58, 0.08);
  border-radius: 999px;
  padding: 7px 8px 7px 22px;
  box-shadow: 0 14px 34px rgba(21, 36, 58, 0.16), 0 2px 6px rgba(21, 36, 58, 0.06);
  max-width: 800px;
  margin: 28px auto 18px;
}

.rent-search-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 10px 10px;
  font-size: 15px;
  color: var(--brand-navy);
  font-family: inherit;
}

.rent-search-input:focus {
  outline: none;
}

.rent-search-bar:focus-within {
  border-color: rgba(33, 103, 213, 0.48);
  box-shadow: 0 0 0 4px rgba(33, 103, 213, 0.12), 0 14px 34px rgba(21, 36, 58, 0.16);
}

.rent-search-input::placeholder {
  color: #64748b;
  font-size: 14px;
}

.rent-search-tools {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rent-search-icon-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  display: grid;
  place-items: center;
  color: var(--brand-blue);
  transition: all 0.18s ease;
  cursor: pointer;
}

.rent-search-icon-btn:hover {
  background: var(--brand-blue);
  color: #ffffff;
  border-color: var(--brand-blue);
}

.rent-search-icon-btn:focus-visible,
.rent-search-submit:focus-visible,
.rent-tag-pill:focus-visible {
  outline: 3px solid rgba(33, 103, 213, 0.5);
  outline-offset: 3px;
}

.rent-search-submit {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--brand-teal);
  color: #ffffff;
  border: none;
  cursor: pointer;
  display: grid;
  place-items: center;
  box-shadow: 0 4px 14px rgba(0, 168, 150, 0.4);
  transition: all 0.2s ease;
}

.rent-search-submit:hover {
  background: var(--brand-teal-hover);
  transform: scale(1.05);
}

.rent-search-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 14px;
}

.rent-tag-pill {
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(21, 36, 58, 0.13);
  color: #344760;
  font-size: 12px;
  font-weight: 650;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 3px 10px rgba(21, 36, 58, 0.08);
  transition: all 0.18s ease;
}

.rent-tag-pill:hover,
.rent-tag-pill.active {
  background: var(--brand-blue);
  color: #ffffff;
  border-color: var(--brand-blue);
  box-shadow: 0 5px 14px rgba(33, 103, 213, 0.2);
}

.rent-tag-pill.payment-ready {
  color: #087b70;
  border-color: rgba(0, 168, 150, 0.32);
}

.rent-tag-pill.payment-ready:hover,
.rent-tag-pill.payment-ready.active {
  color: #ffffff;
  border-color: var(--brand-teal);
}

/* 2. PROPERTY REELS */
.rent-reels-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.rent-reel-card {
  position: relative;
  aspect-ratio: 3/4;
  border-radius: 16px;
  overflow: hidden;
  cursor: pointer;
  background: #091e3a;
  box-shadow: 0 6px 20px rgba(9, 30, 58, 0.12);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.rent-reel-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(11, 77, 162, 0.22);
}

.rent-reel-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.rent-reel-card:hover img {
  transform: scale(1.05);
}

.rent-reel-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(9, 30, 58, 0.15) 0%, rgba(9, 30, 58, 0.88) 100%);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 14px;
  color: #ffffff;
}

.rent-reel-views {
  align-self: flex-start;
  font-size: 11px;
  font-weight: 700;
  background: rgba(9, 30, 58, 0.75);
  backdrop-filter: blur(6px);
  padding: 4px 8px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #99f6e4;
}

.rent-reel-info h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.25;
  color: #ffffff;
}

.rent-reel-info p {
  margin: 4px 0 0;
  font-size: 11px;
  color: #cbd5e1;
}

/* 3. DORM CARDS GRID */
.rent-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 18px;
  margin-top: 16px;
}

.rent-card {
  background: var(--brand-surface);
  border: 1px solid var(--brand-border);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(9, 30, 58, 0.05);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
  display: flex;
  flex-direction: column;
}

.rent-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(11, 77, 162, 0.12);
  border-color: #cbd5e1;
}

.rent-card-media {
  position: relative;
  aspect-ratio: 16/10;
  background: #e2e8f0;
  overflow: hidden;
}

.rent-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.rent-card:hover .rent-card-media img {
  transform: scale(1.04);
}

.rent-type-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(9, 30, 58, 0.88);
  backdrop-filter: blur(8px);
  color: #ffffff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 4px 8px;
  border-radius: 6px;
  text-transform: uppercase;
}

.rent-fav-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  border: none;
  cursor: pointer;
  display: grid;
  place-items: center;
  color: var(--brand-navy);
  transition: background 0.18s ease;
}

.rent-fav-btn:hover {
  background: #ffffff;
  color: var(--brand-blue);
}

.rent-rented-overlay {
  position: absolute;
  inset: 0;
  background: rgba(9, 30, 58, 0.72);
  backdrop-filter: blur(2px);
  display: grid;
  place-items: center;
  z-index: 2;
}

.rent-rented-badge {
  background: var(--brand-gold);
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  padding: 6px 14px;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.4);
}

.rent-card-body {
  padding: 18px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.rent-card-code {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  color: var(--brand-text-dim);
  margin-bottom: 8px;
}

.rent-online-badge {
  font-size: 10.5px;
  font-weight: 750;
  color: #0f766e;
  background: #ccfbf1;
  border: 1px solid #99f6e4;
  padding: 2px 7px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.rent-card-title {
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 800;
  color: var(--brand-navy);
  line-height: 1.3;
}

.rent-card-loc {
  margin: 0 0 12px;
  font-size: 12.5px;
  color: var(--brand-text-muted);
  display: flex;
  align-items: center;
  gap: 5px;
}

.rent-card-price {
  font-size: 18px;
  font-weight: 900;
  color: var(--brand-blue);
  margin-bottom: 12px;
}

.rent-card-specs {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--brand-text-muted);
  padding: 10px 0;
  border-top: 1px solid var(--brand-border-subtle);
  border-bottom: 1px solid var(--brand-border-subtle);
  margin-bottom: 14px;
}

.rent-card-specs span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.rent-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 4px;
}

.rent-landlord-mini {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rent-landlord-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: contain;
  background: #f1f5f9;
  border: 1px solid var(--brand-border);
}

.rent-landlord-details {
  display: flex;
  flex-direction: column;
}

.rent-landlord-name {
  font-size: 12px;
  font-weight: 750;
  color: var(--brand-navy);
}

.rent-landlord-sub {
  font-size: 10px;
  color: var(--brand-text-dim);
}

.rent-card-actions {
  display: flex;
  gap: 6px;
}

.rent-action-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--brand-bg);
  border: 1px solid var(--brand-border);
  display: grid;
  place-items: center;
  color: var(--brand-navy);
  transition: all 0.18s ease;
  cursor: pointer;
}

.rent-action-icon:hover {
  background: var(--brand-blue);
  color: #ffffff;
  border-color: var(--brand-blue);
}

/* 4. ONLINE PAYMENT BANNER */
.rent-online-payment-banner {
  background: linear-gradient(135deg, #091e3a 0%, #0b4da2 60%, #008f80 100%);
  border-radius: 24px;
  padding: 40px;
  color: #ffffff;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 36px;
  align-items: center;
  box-shadow: 0 16px 40px rgba(11, 77, 162, 0.22);
  margin: 28px auto;
}

.rent-online-payment-content h3 {
  font-size: clamp(22px, 2.6vw, 28px);
  font-weight: 900;
  line-height: 1.2;
  margin: 8px 0 14px;
  color: #ffffff;
}

.rent-online-payment-content p {
  color: #e2e8f0;
  font-size: 14.5px;
  line-height: 1.65;
  margin-bottom: 22px;
}

.rent-payment-methods {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.rent-pay-pill {
  padding: 6px 12px;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  backdrop-filter: blur(4px);
}

.rent-online-payment-card {
  background: rgba(255, 255, 255, 0.96);
  border-radius: 18px;
  padding: 26px;
  color: var(--brand-navy);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.rent-online-payment-card h4 {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 850;
  color: var(--brand-blue);
}

.rent-step-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 14px;
  font-size: 13px;
  line-height: 1.5;
}

.rent-step-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--brand-teal);
  color: #ffffff;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 12px;
  flex-shrink: 0;
}

/* 5. RENT MANAGER PROS GRID */
.rent-pros-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.rent-pro-card {
  background: var(--brand-surface);
  border: 1px solid var(--brand-border);
  border-radius: 18px;
  padding: 22px;
  text-align: center;
  box-shadow: 0 4px 18px rgba(9, 30, 58, 0.05);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
  display: flex;
  flex-direction: column;
}

.rent-pro-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(11, 77, 162, 0.12);
  border-color: #cbd5e1;
}

.rent-pro-photo-wrap {
  position: relative;
  width: 96px;
  height: 96px;
  margin: 0 auto 14px;
  border-radius: 50%;
  padding: 3px;
  background: linear-gradient(135deg, var(--brand-blue), var(--brand-teal));
}

.rent-pro-photo-wrap img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #ffffff;
}

.rent-pro-badge {
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--brand-navy);
  color: #ffffff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.05em;
  padding: 2px 7px;
  border-radius: 999px;
  white-space: nowrap;
}

.rent-pro-fav {
  position: absolute;
  top: 0;
  right: -4px;
  width: 24px;
  height: 24px;
  background: var(--brand-gold);
  color: #ffffff;
  border-radius: 50%;
  display: grid;
  place-items: center;
}

.rent-pro-name {
  margin: 8px 0 4px;
  font-size: 16px;
  font-weight: 800;
  color: var(--brand-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.rent-pro-verified-icon {
  color: var(--brand-teal);
  display: inline-flex;
}

.rent-pro-loc {
  margin: 0;
  font-size: 12px;
  color: var(--brand-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.rent-pro-date {
  margin: 4px 0 14px;
  font-size: 11px;
  color: var(--brand-text-dim);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.rent-pro-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  background: var(--brand-bg);
  border: 1px solid var(--brand-border-subtle);
  border-radius: 12px;
  padding: 10px;
  margin-bottom: 16px;
}

.rent-pro-stat-item strong {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  font-size: 13.5px;
  font-weight: 850;
  color: var(--brand-navy);
}

.rent-pro-stat-item small {
  font-size: 10px;
  color: var(--brand-text-dim);
}

.rent-chat-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--brand-blue);
  color: #ffffff !important;
  font-size: 13px;
  font-weight: 750;
  padding: 10px 18px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 12px var(--brand-blue-glow);
}

.rent-chat-btn:hover {
  background: var(--brand-blue-hover) !important;
  transform: translateY(-1px);
  text-decoration: none;
}

/* 6. CAMPUS NAVIGATION / OPENSTREETMAP STYLES */
body.rent-theme .home-map-places,
body.rent-theme .home-map-panel {
  background: var(--brand-surface) !important;
  border: 1px solid var(--brand-border) !important;
  color: var(--brand-text) !important;
  border-radius: 18px;
  box-shadow: 0 4px 18px rgba(9, 30, 58, 0.05);
}

body.rent-theme .home-map-places h3,
body.rent-theme .home-map-panel h3 {
  color: var(--brand-navy) !important;
  font-weight: 850;
}

body.rent-theme .home-map-place-item {
  background: #ffffff !important;
  border: 1px solid var(--brand-border) !important;
  border-radius: 12px;
  transition: all 0.18s ease;
}

body.rent-theme .home-map-place-item:hover {
  border-color: var(--brand-blue) !important;
  box-shadow: 0 4px 14px var(--brand-blue-glow);
}

body.rent-theme .home-map-place-name {
  color: var(--brand-navy) !important;
  font-weight: 800;
}

body.rent-theme .home-map-place-locality {
  color: var(--brand-text-muted) !important;
}

body.rent-theme .home-map-place-rent {
  color: var(--brand-blue) !important;
  font-weight: 850;
}

body.rent-theme .home-map-view-hint {
  color: var(--brand-teal) !important;
  font-weight: 700;
}

body.rent-theme .home-navigation {
  background: var(--brand-bg) !important;
  border: 1px solid var(--brand-border) !important;
  border-radius: 12px;
  padding: 16px;
  margin-top: 14px;
}

body.rent-theme #home-navigation-title {
  color: var(--brand-navy) !important;
}

body.rent-theme .home-navigation-destination {
  color: var(--brand-navy) !important;
}

/* 7. ABOUT US & 4 PILLARS */
.rent-about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 16px;
}

.rent-about-col {
  background: var(--brand-surface);
  border: 1px solid var(--brand-border);
  border-radius: 18px;
  padding: 26px;
  box-shadow: 0 4px 18px rgba(9, 30, 58, 0.04);
}

.rent-about-col h4 {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 850;
  color: var(--brand-navy);
}

.rent-about-col p {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--brand-text-muted);
}

.rent-pillars-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.rent-pillar-card {
  background: var(--brand-surface);
  border: 1px solid var(--brand-border);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 4px 18px rgba(9, 30, 58, 0.04);
  display: flex;
  flex-direction: column;
}

.rent-pillar-eyebrow {
  font-size: 10px;
  font-weight: 800;
  color: var(--brand-teal);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.rent-pillar-title {
  margin: 8px 0 14px;
  font-size: 16px;
  font-weight: 850;
  color: var(--brand-navy);
  line-height: 1.3;
}

.rent-pillar-media {
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 16/10;
  margin-bottom: 14px;
}

.rent-pillar-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rent-pillar-desc {
  font-size: 13px;
  color: var(--brand-text-muted);
  line-height: 1.6;
  margin: 0;
}

/* Advocacy block */
.rent-advocacy-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: center;
  background: linear-gradient(135deg, #091e3a 0%, #0b4da2 100%);
  border-radius: 20px;
  padding: clamp(22px, 3vw, 36px);
  margin: 28px 0;
  color: #ffffff;
  box-shadow: 0 16px 36px rgba(11, 77, 162, 0.18);
}

.rent-advocacy-media {
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4/3;
}

.rent-advocacy-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rent-advocacy-eyebrow {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--brand-gold);
  margin-bottom: 6px;
}

.rent-advocacy-title {
  font-size: 30px;
  font-weight: 900;
  color: #ffffff;
  margin: 0 0 16px;
  line-height: 1.15;
}

.rent-advocacy-title span {
  color: #99f6e4;
}

.rent-advocacy-text {
  font-size: 14px;
  color: #e2e8f0;
  line-height: 1.7;
  margin-bottom: 16px;
}

.rent-advocacy-quote {
  border-left: 3px solid var(--brand-teal);
  padding-left: 16px;
  font-size: 14.5px;
  font-style: italic;
  color: #ffffff;
}

.rent-advocacy-quote span {
  display: block;
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  color: #38bdf8;
  margin-top: 6px;
  letter-spacing: 0.08em;
}

/* 8. FAQS ACCORDION / GRID */
.rent-faq-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.rent-faq-tab {
  padding: 8px 16px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid var(--brand-border);
  color: var(--brand-navy);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.18s ease;
}

.rent-faq-tab.active,
.rent-faq-tab:hover {
  background: var(--brand-blue);
  color: #ffffff;
  border-color: var(--brand-blue);
}

.rent-faq-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.rent-faq-card {
  background: var(--brand-surface);
  border: 1px solid var(--brand-border);
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 4px 18px rgba(9, 30, 58, 0.04);
}

.rent-faq-card h4 {
  margin: 0 0 10px;
  font-size: 15.5px;
  font-weight: 800;
  color: var(--brand-navy);
  line-height: 1.35;
}

.rent-faq-card p {
  margin: 0;
  font-size: 13.5px;
  color: var(--brand-text-muted);
  line-height: 1.65;
}

/* 9. DIRECTORY LINKS / EXPLORE MORE SECTIONS */
.rent-dir-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin-top: 18px;
}

.rent-dir-col h4 {
  margin: 0 0 14px;
  font-size: 14px;
  font-weight: 850;
  color: var(--brand-navy);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.rent-dir-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rent-dir-list a {
  color: var(--brand-text-muted);
  font-size: 13px;
  transition: color 0.18s ease;
}

.rent-dir-list a:hover {
  color: var(--brand-blue);
  text-decoration: underline;
}

/* 10. SITE FOOTER */
.rent-footer {
  background: #061529;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 40px 0 24px;
  color: #94a3b8;
  font-size: 13px;
  margin-top: 0;
}

.rent-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 24px;
  margin-bottom: 28px;
}

.rent-footer-brand p {
  color: #94a3b8;
  line-height: 1.65;
  margin: 12px 0 20px;
  font-size: 13px;
}

.rent-footer-socials {
  display: flex;
  gap: 10px;
}

.rent-social-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  display: grid;
  place-items: center;
  color: #ffffff;
  transition: all 0.2s ease;
}

.rent-social-btn:hover {
  background: var(--brand-teal);
  border-color: var(--brand-teal);
  transform: translateY(-2px);
  color: #ffffff;
}

.rent-footer-col h4 {
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 18px;
}

.rent-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rent-footer-links a {
  color: #94a3b8;
  transition: color 0.18s ease;
  font-size: 13px;
}

.rent-footer-links a:hover {
  color: #38bdf8;
  text-decoration: none;
}

.rent-footer-contact-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.rent-footer-contact-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(0, 168, 150, 0.15);
  border: 1px solid rgba(0, 168, 150, 0.3);
  display: grid;
  place-items: center;
  color: var(--brand-teal);
  flex-shrink: 0;
}

.rent-footer-contact-info span {
  display: block;
  font-size: 11px;
  color: #64748b;
  text-transform: uppercase;
  font-weight: 700;
}

.rent-footer-contact-info strong {
  display: block;
  color: #f8fafc;
  font-size: 13px;
  line-height: 1.4;
  margin-top: 2px;
}

.rent-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 24px;
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #64748b;
}

/* RESPONSIVE MEDIA QUERIES */
@media(max-width: 1024px) {
  .rent-reels-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .rent-dir-grid,
  .rent-pillars-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rent-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rent-faq-grid {
    grid-template-columns: 1fr;
  }
  .rent-online-payment-banner,
  .rent-advocacy-wrap {
    grid-template-columns: 1fr;
  }
}

@media(max-width: 680px) {
  .rent-section {
    padding: 26px 0;
  }
  .rent-container {
    padding: 0 16px;
  }
  .rent-hero-wrap {
    padding: 48px 16px 42px;
  }
  .rent-hero-bg-img {
    object-position: center 40%;
    opacity: 0.52;
  }
  .rent-hero-bg-overlay {
    background: rgba(255, 255, 255, 0.78);
  }
  .rent-hero-eyebrow {
    margin-bottom: 13px;
    font-size: 10px;
  }
  .rent-hero-title {
    font-size: clamp(35px, 9vw, 46px);
    line-height: 1.04;
    margin-bottom: 12px;
  }
  .rent-hero-desc {
    font-size: 14.5px;
  }
  .rent-reels-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rent-reel-card {
    aspect-ratio: 9/16;
  }
  .rent-about-grid,
  .rent-dir-grid,
  .rent-pillars-grid,
  .rent-footer-grid {
    grid-template-columns: 1fr;
  }
  .rent-search-bar {
    flex-direction: column;
    border-radius: 16px;
    padding: 10px;
    margin-top: 22px;
  }
  .rent-search-input {
    width: 100%;
    min-width: 0;
    padding: 12px 8px;
    font-size: 14px;
  }
  .rent-search-input::placeholder {
    font-size: 13px;
  }
  .rent-search-tools {
    width: 100%;
    justify-content: space-between;
    margin-top: 6px;
  }
  .rent-tag-pill {
    padding: 6px 10px;
    font-size: 11px;
  }
}

/* Static property detail pages */
.page-shell:has(> .directory-detail-page) {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.directory-detail-page {
  --directory-ink: #172a43;
  --directory-muted: #65758a;
  --directory-border: #e5e9ed;
  --directory-paper: #fffefa;
  --directory-accent: #d47a21;
  width: 100%;
  margin: 0;
  padding: 22px clamp(18px, 2.4vw, 42px) 42px;
  color: var(--directory-ink);
}
.directory-detail-page a:focus-visible,
.directory-detail-page button:focus-visible,
.directory-detail-page input:focus-visible,
.directory-detail-page textarea:focus-visible {
  outline: 3px solid rgba(212, 122, 33, .55);
  outline-offset: 3px;
}
.directory-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  color: var(--directory-muted);
  font-size: 12px;
  margin: 0 0 24px;
}
.directory-breadcrumb a {
  color: #52657b;
  font-weight: 650;
}
.directory-breadcrumb a:hover { color: var(--directory-accent); }
.directory-breadcrumb [aria-current="page"] {
  color: var(--directory-ink);
  font-weight: 650;
}
.directory-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 25px;
}
.directory-heading-copy { min-width: 0; }
.directory-location-label,
.directory-address-line {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #9b5c1c;
  font-size: 12px;
  font-weight: 750;
}
.directory-heading h1 {
  margin: 6px 0 4px;
  color: #182c44;
  font-size: clamp(30px, 3.6vw, 43px);
  letter-spacing: -.045em;
  line-height: 1.08;
}
.directory-address {
  margin: 0;
  color: var(--directory-muted);
  font-size: 14px;
}
.directory-heading-actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 14px;
  padding-bottom: 2px;
}
.directory-status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 11px;
  font-size: 11px;
  font-weight: 800;
}
.directory-status::before {
  width: 7px;
  height: 7px;
  content: "";
  border-radius: 50%;
  margin-right: 7px;
  background: currentColor;
}
.directory-status.is-available { color: #277456; background: #e7f4eb; }
.directory-status.is-reserved { color: #986019; background: #fff1d9; }
.directory-back-link {
  color: #53647a;
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}
.directory-back-link:hover { color: var(--directory-accent); }
.directory-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.1fr) minmax(340px, .9fr);
  align-items: start;
  gap: clamp(16px, 1.5vw, 26px);
}
.directory-primary-column,
.directory-sidebar { min-width: 0; }
.directory-primary-column {
  display: grid;
  gap: 18px;
}
.directory-gallery {
  position: relative;
  display: grid;
  aspect-ratio: 1.72;
  min-height: 280px;
  place-items: center;
  overflow: hidden;
  border: 1px solid #e2e5e5;
  border-radius: 12px;
  background: #edece7;
  box-shadow: 0 8px 24px rgba(30, 43, 55, .08);
}
.directory-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.directory-photo-count {
  position: absolute;
  right: 14px;
  bottom: 14px;
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: 6px;
  padding: 6px 9px;
  color: #fff;
  background: rgba(23, 42, 67, .78);
  font-size: 11px;
  font-weight: 700;
}
.directory-photo-empty {
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 30px;
  color: #78818a;
  text-align: center;
}
.directory-photo-empty p { margin: 0; font-size: 13px; }
.directory-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--directory-border);
  border-radius: 11px;
  background: var(--directory-paper);
}
.directory-fact {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 9px;
  min-height: 76px;
  padding: 13px 15px;
}
.directory-fact:not(:nth-child(3n)) { border-right: 1px solid var(--directory-border); }
.directory-fact:nth-child(n+4) { border-top: 1px solid var(--directory-border); }
.directory-fact-icon {
  grid-row: 1 / 3;
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 8px;
  color: #a45e1d;
  background: #fff1de;
}
.directory-fact-label {
  color: var(--directory-muted);
  font-size: 10px;
  line-height: 1.3;
}
.directory-fact strong {
  overflow-wrap: anywhere;
  color: var(--directory-ink);
  font-size: 12px;
  line-height: 1.35;
}
.directory-content-panel,
.directory-contact-card,
.directory-map-card,
.directory-source-card {
  border: 1px solid var(--directory-border);
  border-radius: 11px;
  background: var(--directory-paper);
  box-shadow: 0 5px 20px rgba(30, 43, 55, .035);
}
.directory-content-panel { padding: 22px 24px; }
.directory-map-card { padding: 18px; }
.directory-section-heading { margin-bottom: 13px; }
.directory-eyebrow {
  display: block;
  color: #a45e1d;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .13em;
  line-height: 1.4;
  text-transform: uppercase;
}
.directory-section-heading h2 {
  margin: 4px 0 0;
  color: var(--directory-ink);
  font-size: 20px;
  letter-spacing: -.025em;
  line-height: 1.25;
}
.directory-description,
.directory-amenities p {
  margin: 0;
  color: #526276;
  font-size: 13px;
  line-height: 1.72;
}
.directory-amenities {
  margin-top: 20px;
  border-top: 1px solid var(--directory-border);
  padding-top: 16px;
}
.directory-amenities h3 {
  margin: 0 0 5px;
  color: var(--directory-ink);
  font-size: 13px;
}
.directory-information-note {
  margin: 15px 0 0;
  color: #748092;
  font-size: 11px;
  line-height: 1.55;
}
.directory-location-panel .directory-address-line {
  margin: 15px 0;
  color: #40536b;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.directory-map {
  min-height: 235px;
  overflow: hidden;
  border: 1px solid var(--directory-border);
  border-radius: 8px;
  background: #f1f3f1;
}
.directory-map .map-empty {
  display: grid;
  min-height: 235px;
  place-items: center;
  color: #66748a;
  font-size: 12px;
}
.directory-directions-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 13px;
  color: #8e4d11;
  font-size: 12px;
  font-weight: 800;
}
.directory-directions-link:hover { color: #bf6717; }
.directory-sidebar {
  position: sticky;
  top: 16px;
  display: grid;
  gap: 15px;
}
.directory-contact-card { padding: 20px; }
.directory-owner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--directory-border);
}
.directory-owner-mark {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  border-radius: 10px;
  color: #a45e1d;
  background: #fff0dc;
}
.directory-owner h2 {
  margin: 3px 0 2px;
  color: var(--directory-ink);
  font-size: 15px;
  line-height: 1.3;
}
.directory-verified {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #317455;
  font-size: 10px;
  font-weight: 750;
}
.directory-rent-line {
  margin: 15px 0 18px;
  padding: 12px 13px;
  border: 1px solid #f1dfc7;
  border-radius: 8px;
  background: #fff8ed;
}
.directory-rent-line > span {
  display: block;
  color: #79572e;
  font-size: 10px;
  font-weight: 700;
}
.directory-rent-line strong {
  display: block;
  margin-top: 2px;
  color: #9a5314;
  font-size: 22px;
  letter-spacing: -.035em;
  line-height: 1.25;
}
.directory-rent-line p {
  margin: 5px 0 0;
  color: #6d6254;
  font-size: 10px;
  line-height: 1.45;
}
.directory-booking-cta {
  margin: -2px 0 18px;
  padding: 14px;
  border: 1px solid #e8d3b8;
  border-radius: 9px;
  background: #fffaf3;
}
.directory-booking-cta h2 {
  margin: 0;
  color: var(--directory-ink);
  font-size: 15px;
}
.directory-booking-cta > p {
  margin: 6px 0 0;
  color: #526276;
  font-size: 11px;
  line-height: 1.5;
}
.directory-booking-cta .directory-checkout-status {
  color: #79572e;
  font-size: 10px;
}
.directory-booking-button {
  display: flex;
  min-height: 40px;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 11px;
  border: 1px solid #a95c1a;
  border-radius: 7px;
  padding: 9px 12px;
  color: #fff;
  background: #a95c1a;
  font-size: 12px;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
}
.directory-booking-button:hover {
  color: #fff;
  background: #88470f;
  text-decoration: none;
}
.directory-unavailable-payment {
  margin: -3px 0 18px;
  border: 1px solid #e5e9ed;
  border-radius: 8px;
  padding: 10px 12px;
  color: #65758a;
  background: #f7f8fa;
  font-size: 10px;
  line-height: 1.5;
}
.directory-form-heading h2 {
  margin: 0;
  color: var(--directory-ink);
  font-size: 16px;
  letter-spacing: -.02em;
}
.directory-form-heading p {
  margin: 4px 0 12px;
  color: var(--directory-muted);
  font-size: 11px;
  line-height: 1.5;
}
.directory-inquiry-form,
.directory-inquiry-form label { display: grid; }
.directory-inquiry-form { gap: 11px; }
.directory-inquiry-form label { gap: 5px; min-width: 0; }
.directory-inquiry-form label > span {
  color: #384a5e;
  font-size: 10px;
  font-weight: 750;
}
.directory-inquiry-form label b { color: #a84d2c; }
.directory-inquiry-form input,
.directory-inquiry-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #d9dfe4;
  border-radius: 6px;
  padding: 9px 10px;
  color: var(--directory-ink);
  background: #fff;
  font: inherit;
  font-size: 12px;
}
.directory-inquiry-form textarea {
  min-height: 88px;
  resize: vertical;
  line-height: 1.45;
}
.directory-inquiry-form input::placeholder { color: #8793a0; }
.directory-contact-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
.directory-form-hint {
  margin: -7px 0 0;
  color: #758193;
  font-size: 9px;
}
.directory-submit-button {
  display: flex;
  width: 100%;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid #a95c1a;
  border-radius: 7px;
  padding: 10px 14px;
  color: #fff;
  background: #a95c1a;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  transition: background .16s ease, transform .16s ease;
}
.directory-submit-button:hover { background: #88470f; transform: translateY(-1px); }
.directory-phone-link {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
  margin-top: 13px;
  color: #40536b;
  font-size: 11px;
  font-weight: 750;
}
.directory-phone-link:hover { color: #9a5314; }
.directory-source-card { padding: 17px 18px; }
.directory-source-card > p {
  margin: 7px 0 12px;
  color: #526276;
  font-size: 11px;
  line-height: 1.55;
}
.directory-source-card > a {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  color: #81501e;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.45;
}
.directory-source-card > a span:nth-child(2) { flex: 1; }
.directory-source-card small {
  display: block;
  margin-top: 8px;
  color: #778394;
  font-size: 9px;
}
.directory-empty {
  max-width: 640px;
  margin: 70px auto;
  border: 1px solid var(--directory-border);
  border-radius: 12px;
  padding: 32px;
  background: var(--directory-paper);
}
.directory-empty h1 { margin: 8px 0; color: var(--directory-ink); }
.directory-empty p { color: var(--directory-muted); }
.directory-empty .directory-back-link { display: inline-block; margin-top: 8px; }

@media (max-width: 900px) {
  .directory-main-grid { grid-template-columns: minmax(0, 1.6fr) minmax(290px, .9fr); gap: 16px; }
  .directory-fact { padding: 12px 10px; column-gap: 7px; }
  .directory-contact-card { padding: 16px; }
}
@media (max-width: 740px) {
  .directory-detail-page { padding: 16px 16px 34px; }
  .directory-breadcrumb { margin-bottom: 17px; gap: 7px; font-size: 11px; }
  .directory-heading { align-items: flex-start; margin-bottom: 18px; }
  .directory-heading h1 { font-size: clamp(27px, 7vw, 36px); }
  .directory-heading-actions { flex-direction: column; align-items: flex-end; gap: 8px; }
  .directory-status { padding: 5px 8px; }
  .directory-back-link { font-size: 10px; }
  .directory-main-grid { grid-template-columns: minmax(0, 1fr); }
  .directory-sidebar { position: static; }
  .directory-gallery { aspect-ratio: 1.45; min-height: 220px; }
}
@media (max-width: 480px) {
  .directory-detail-page { width: 100%; padding-right: 13px; padding-left: 13px; }
  .directory-heading { display: block; }
  .directory-heading-actions { flex-direction: row; justify-content: space-between; align-items: center; margin-top: 12px; }
  .directory-address { font-size: 12px; line-height: 1.55; }
  .directory-gallery { aspect-ratio: 1.18; min-height: 205px; }
  .directory-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .directory-fact:not(:nth-child(3n)) { border-right: 0; }
  .directory-fact:nth-child(odd) { border-right: 1px solid var(--directory-border); }
  .directory-fact:nth-child(n+3) { border-top: 1px solid var(--directory-border); }
  .directory-fact:nth-child(3) { border-top: 1px solid var(--directory-border); }
  .directory-content-panel { padding: 18px 16px; }
  .directory-contact-fields { grid-template-columns: 1fr; }
}

/* Dedicated sign-in and registration screens */
body.auth-page {
  min-height: 100vh;
  background: #f2f3f5;
}

body.auth-page > .topbar,
body.auth-page > .rent-footer {
  display: none;
}

body.auth-page .page-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  place-content: safe center;
  gap: 14px;
  width: 100%;
  max-width: none;
  min-height: 100vh;
  margin: 0;
  padding: 30px 18px;
}

body.auth-page .flash {
  width: min(100%, 490px);
  margin: 0 auto;
}

body.auth-page .auth-wrap {
  width: min(100%, 490px);
  max-width: none;
  margin: 0 auto;
}

body.auth-page .auth-card {
  padding: 25px 30px 24px;
  border: 1px solid #e4e5e8;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 9px 28px rgba(31, 39, 53, .07);
}

body.auth-page .auth-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 13px;
  border-bottom: 1px solid #ececef;
}

body.auth-page .auth-step {
  color: #687284;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
}

body.auth-page .auth-card-header a,
body.auth-page .auth-back-link {
  color: #626d7c;
  font-size: 12px;
  font-weight: 650;
}

body.auth-page .auth-card-header a:hover,
body.auth-page .auth-back-link:hover {
  color: #b9671d;
}

body.auth-page .auth-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 17px 0 14px;
  text-align: center;
}

body.auth-page .auth-brand img {
  display: block;
  width: 72px;
  height: 72px;
  object-fit: contain;
}

body.auth-page .auth-brand p {
  margin: 6px 0 0;
  color: #687284;
  font-size: 12px;
}

body.auth-page .auth-intro {
  margin: 0 0 17px;
  text-align: center;
}

body.auth-page .auth-intro h1 {
  margin: 0;
  color: #1c2d46;
  font-size: clamp(23px, 4vw, 27px);
  line-height: 1.2;
  letter-spacing: -.035em;
}

body.auth-page .auth-intro p {
  margin: 6px 0 0;
  font-size: 12px;
  line-height: 1.5;
}

body.auth-page .auth-intro p strong {
  color: #243952;
}

body.auth-page .auth-card label:not(.consent-row) {
  display: block;
  margin: 0 0 13px;
  color: #596477;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

body.auth-page .auth-field-label {
  display: block;
}

body.auth-page .auth-card input:not([type="checkbox"]) {
  height: 43px;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid #dfe2e7;
  border-radius: 7px;
  background: #f8f8f9;
  color: #1c2d46;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
}

body.auth-page .auth-card input:not([type="checkbox"]):focus {
  outline: 3px solid rgba(216, 138, 56, .18);
  border-color: #d88a38;
}

body.auth-page .auth-card input::placeholder {
  color: #8a93a1;
}

body.auth-page .auth-card .field-help {
  display: block;
  margin-top: 5px;
  color: #778193;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 1.45;
  text-transform: none;
}

body.auth-page .auth-submit.button-primary {
  min-height: 44px;
  margin-top: 3px;
  border: 1px solid #cf7b29 !important;
  border-radius: 7px;
  background: #d88a38 !important;
  box-shadow: 0 3px 8px rgba(173, 99, 29, .16);
  color: #fff !important;
  font-size: 13px;
  font-weight: 800;
  transition: background-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

body.auth-page .auth-submit.button-primary:hover {
  background: #c9792c !important;
  box-shadow: 0 5px 12px rgba(173, 99, 29, .2);
  transform: translateY(-1px);
}

body.auth-page .auth-submit.button-primary:focus-visible,
body.auth-page .role-choice:focus-visible,
body.auth-page .role-tabs a:focus-visible,
body.auth-page .auth-card a:focus-visible {
  outline: 3px solid rgba(216, 138, 56, .35);
  outline-offset: 3px;
}

body.auth-page .auth-switch {
  margin: 17px 0 0;
  text-align: center;
}

body.auth-page .auth-switch a {
  color: #a85f1e;
  font-weight: 750;
}

body.auth-page .role-tabs {
  margin: 0 0 9px;
  padding: 3px;
  gap: 4px;
  border: 1px solid #e6e7e9;
  border-radius: 7px;
  background: #f5f5f6;
}

body.auth-page .role-tabs a {
  padding: 7px 8px;
  border-radius: 5px;
  color: #727b89;
  font-size: 11px;
}

body.auth-page .role-tabs a.active {
  background: #fff;
  color: #a85f1e;
  box-shadow: 0 1px 4px rgba(31, 39, 53, .1);
}

body.auth-page .auth-back-link {
  display: inline-block;
  margin: 0 0 13px;
  font-size: 11px;
}

body.auth-page .role-choice-list {
  display: grid;
  gap: 10px;
  margin-top: 19px;
}

body.auth-page .role-choice {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 12px;
  min-height: 78px;
  padding: 13px 14px;
  border: 1px solid #e2e4e8;
  border-radius: 9px;
  color: #1e2d43;
  background: #fff;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

body.auth-page .role-choice:hover {
  border-color: #d89a5c;
  background: #fffaf4;
  text-decoration: none;
  transform: translateY(-1px);
}

body.auth-page .role-choice-icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #fbf0e4;
  color: #b96c27;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .04em;
}

body.auth-page .role-choice-copy {
  display: block;
}

body.auth-page .role-choice-copy strong {
  display: block;
  font-size: 13px;
  line-height: 1.35;
}

body.auth-page .role-choice-copy > span {
  display: block;
  margin-top: 4px;
  color: #717b89;
  font-size: 11px;
  line-height: 1.4;
}

body.auth-page .role-choice-arrow {
  color: #b96c27;
  font-size: 20px;
  line-height: 1;
}

body.auth-page .consent-row {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  margin: 3px 0 14px;
  padding: 10px 11px;
  border: 1px solid #e4e5e8;
  border-radius: 8px;
  background: #f8f8f9;
  color: #47556a;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 1.45;
  text-transform: none;
}

body.auth-page .consent-row input[type="checkbox"] {
  display: block;
  width: 15px;
  height: 15px;
  margin: 2px 0 0;
  accent-color: #cf7b29;
}

body.auth-page .consent-copy {
  display: block;
}

body.auth-page .consent-copy a {
  color: #a85f1e;
  font-weight: 700;
}

body.auth-page .consent-copy .field-help {
  margin-top: 5px;
}

@media (max-width: 540px) {
  body.auth-page .page-shell {
    padding: 16px 12px;
  }

  body.auth-page .auth-card {
    padding: 20px 18px;
  }

  body.auth-page .auth-brand {
    margin: 14px 0 12px;
  }

  body.auth-page .auth-brand img {
    width: 64px;
    height: 64px;
  }

  body.auth-page .auth-intro h1 {
    font-size: 23px;
  }

  body.auth-page .role-choice {
    grid-template-columns: 34px minmax(0, 1fr) 14px;
    gap: 9px;
    padding: 12px 10px;
  }

  body.auth-page .role-choice-icon {
    width: 32px;
    height: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.auth-page .auth-submit.button-primary,
  body.auth-page .role-choice {
    transition: none;
  }
}

/* Dorm listing detail */
body.dorm-detail-page {
  background: #f7f8f6;
}

body.dorm-detail-page .page-shell {
  display: block;
  width: min(100%, 1320px);
  max-width: 1320px;
  min-height: 0;
  margin: 0 auto;
  padding: 28px clamp(18px, 4vw, 54px) 64px;
}

body.dorm-detail-page .dorm-detail {
  --detail-ink: #202c2b;
  --detail-muted: #6b7774;
  --detail-line: #e3e8e4;
  --detail-teal: #14766e;
  color: var(--detail-ink);
}

body.dorm-detail-page .detail-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 22px;
  margin-bottom: 19px;
  color: var(--detail-muted);
  font-size: 12px;
  font-weight: 600;
}

body.dorm-detail-page .detail-breadcrumb a {
  color: var(--detail-teal);
}

body.dorm-detail-page .detail-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 25px;
}

body.dorm-detail-page .detail-heading-copy {
  min-width: 0;
}

body.dorm-detail-page .detail-kicker {
  display: block;
  color: var(--detail-teal);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .13em;
  line-height: 1.4;
  text-transform: uppercase;
}

body.dorm-detail-page .detail-heading h1 {
  margin: 5px 0 8px;
  color: #1d2927;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(31px, 4vw, 47px);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

body.dorm-detail-page .detail-address {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin: 0;
  color: var(--detail-muted);
  font-size: 14px;
  line-height: 1.5;
}

body.dorm-detail-page .detail-address span {
  color: var(--detail-teal);
  font-size: 17px;
}

body.dorm-detail-page .detail-heading-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 13px;
}

body.dorm-detail-page .detail-heading-actions form {
  margin: 0;
}

body.dorm-detail-page .detail-save-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 41px;
  padding: 8px 13px;
  border-color: #d6dfda;
  border-radius: 8px;
  background: #fff;
  color: #31423e;
  font-size: 12px;
  white-space: nowrap;
}

body.dorm-detail-page .detail-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

body.dorm-detail-page .detail-tags .pill {
  border: 1px solid #dce5df;
  border-radius: 999px;
  background: #fff;
  color: #43524e;
  font-size: 11px;
  line-height: 1.3;
}

body.dorm-detail-page .detail-tags .pill-blue {
  border-color: #c7ded9;
  background: #edf6f3;
  color: #21665d;
}

body.dorm-detail-page .detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(285px, .78fr);
  align-items: start;
  gap: 30px;
}

body.dorm-detail-page .detail-main {
  display: grid;
  min-width: 0;
  gap: 20px;
}

body.dorm-detail-page .detail-demo-note {
  margin: 0;
}

body.dorm-detail-page .detail-photo-grid {
  display: grid;
  grid-auto-rows: minmax(130px, 1fr);
  grid-template-columns: minmax(0, 1.45fr) repeat(2, minmax(0, .8fr));
  gap: 8px;
  min-height: 380px;
  overflow: hidden;
  border-radius: 12px;
  background: #e8eeea;
}

body.dorm-detail-page .detail-photo-grid img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  background: #e8eeea;
}

body.dorm-detail-page .detail-photo-grid img:first-child {
  grid-column: 1 / span 2;
  grid-row: 1 / span 2;
}

body.dorm-detail-page .detail-photo-grid.photo-count-1 {
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: minmax(320px, 420px);
}

body.dorm-detail-page .detail-photo-grid.photo-count-1 img:first-child {
  grid-column: 1;
  grid-row: 1;
}

body.dorm-detail-page .detail-photo-grid.photo-count-2 {
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr);
  grid-auto-rows: minmax(340px, 420px);
}

body.dorm-detail-page .detail-photo-grid.photo-count-2 img:first-child {
  grid-column: 1;
  grid-row: 1;
}

body.dorm-detail-page .detail-photo-grid.photo-count-3 {
  grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr);
  grid-template-rows: repeat(2, minmax(150px, 1fr));
  min-height: 340px;
}

body.dorm-detail-page .detail-photo-grid.photo-count-3 img:first-child {
  grid-column: 1;
  grid-row: 1 / span 2;
}

body.dorm-detail-page .detail-photo-grid.photo-count-4 {
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr);
  grid-template-rows: repeat(3, minmax(120px, 1fr));
  min-height: 390px;
}

body.dorm-detail-page .detail-photo-grid.photo-count-4 img:first-child {
  grid-column: 1;
  grid-row: 1 / span 3;
}

body.dorm-detail-page .detail-photo-grid.photo-count-4 img:nth-child(n + 2) {
  grid-column: 2;
}

body.dorm-detail-page .detail-photo-grid.photo-count-5 {
  grid-template-rows: repeat(2, minmax(180px, 1fr));
  min-height: 380px;
}

body.dorm-detail-page .detail-cover {
  display: grid;
  min-height: 380px;
  overflow: hidden;
  place-items: center;
  border-radius: 12px;
  background: linear-gradient(145deg, #e6ede8, #dce8e3);
  color: #73918a;
  font-size: 52px;
}

body.dorm-detail-page .detail-cover img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 380px;
  object-fit: cover;
}

body.dorm-detail-page .detail-panel {
  margin: 0;
  padding: clamp(20px, 3vw, 29px);
  border: 1px solid var(--detail-line);
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 8px 26px rgba(34, 54, 45, .035);
}

body.dorm-detail-page .detail-section-heading {
  margin-bottom: 13px;
}

body.dorm-detail-page .detail-section-heading h2 {
  margin: 4px 0 0;
  color: #202c2b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 500;
  letter-spacing: -.03em;
  line-height: 1.2;
}

body.dorm-detail-page .detail-description {
  margin: 0 0 20px;
  color: #4f5d59;
  font-size: 14px;
  line-height: 1.75;
  overflow-wrap: anywhere;
}

body.dorm-detail-page .detail-about .quicklinks {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 0;
}

body.dorm-detail-page .detail-about .quicklink {
  min-height: 74px;
  gap: 3px;
  padding: 13px 14px;
  border-color: #e6ebe7;
  border-radius: 8px;
  background: #fafbf9;
}

body.dorm-detail-page .detail-about .quicklink strong {
  color: #394944;
  font-size: 12px;
}

body.dorm-detail-page .detail-about .quicklink span {
  color: #687570;
  font-size: 12px;
}

body.dorm-detail-page .detail-text-block {
  margin-top: 21px;
}

body.dorm-detail-page .detail-text-block h3 {
  margin: 0 0 5px;
  color: #30433d;
  font-size: 13px;
  font-weight: 750;
}

body.dorm-detail-page .detail-text-block p {
  margin: 0;
  color: #5a6863;
  font-size: 13px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

body.dorm-detail-page .detail-location-note {
  margin: -3px 0 15px;
  color: var(--detail-muted);
  font-size: 12px;
  line-height: 1.55;
}

body.dorm-detail-page .detail-location .map-box {
  height: 330px;
  border: 1px solid #e0e7e2;
  border-radius: 8px;
  background: #edf2ee;
}

body.dorm-detail-page .detail-aside {
  position: sticky;
  top: 24px;
}

body.dorm-detail-page .detail-booking {
  padding: 23px;
  border-top: 3px solid #1a7a70;
}

body.dorm-detail-page .detail-price {
  margin: 6px 0 19px;
  color: #1e302b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(27px, 3vw, 35px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

body.dorm-detail-page .detail-price small {
  color: #75817c;
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0;
  white-space: nowrap;
}

body.dorm-detail-page .detail-list-rows {
  margin: 0;
  border-top: 1px solid #e8ece9;
}

body.dorm-detail-page .detail-list-rows .list-row {
  align-items: flex-start;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid #edf0ed;
}

body.dorm-detail-page .detail-list-rows .list-row > span {
  color: #75817c;
  font-size: 11px;
  line-height: 1.5;
}

body.dorm-detail-page .detail-list-rows .list-row > strong {
  max-width: 58%;
  color: #35433e;
  font-size: 11px;
  line-height: 1.5;
  text-align: right;
  overflow-wrap: anywhere;
}

body.dorm-detail-page .detail-list-rows .status {
  display: inline-block;
  margin: 3px 0 0;
  font-size: 9px;
}

body.dorm-detail-page .detail-reservation-note {
  margin: 13px 0 0;
  padding: 11px 12px;
  border-color: #e8e8d4;
  border-radius: 7px;
  font-size: 11px;
  line-height: 1.5;
}

body.dorm-detail-page .detail-booking-actions {
  display: grid;
  gap: 8px;
  margin-top: 17px;
}

body.dorm-detail-page .detail-booking-actions form {
  margin: 0;
}

body.dorm-detail-page .detail-booking-actions .button {
  min-height: 45px;
  border-radius: 7px;
  font-size: 12px;
}

body.dorm-detail-page .detail-booking-actions .note-box {
  margin: 0;
}

body.dorm-detail-page .detail-payment-note {
  margin: 12px 0 0;
  font-size: 10px;
  line-height: 1.5;
}

@media (max-width: 900px) {
  body.dorm-detail-page .detail-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  body.dorm-detail-page .detail-aside {
    position: static;
  }

  body.dorm-detail-page .detail-booking {
    max-width: none;
  }
}

@media (max-width: 640px) {
  body.dorm-detail-page .page-shell {
    padding: 18px 14px 40px;
  }

  body.dorm-detail-page .detail-breadcrumb {
    margin-bottom: 14px;
  }

  body.dorm-detail-page .detail-heading {
    display: grid;
    gap: 14px;
    margin-bottom: 18px;
  }

  body.dorm-detail-page .detail-heading h1 {
    font-size: clamp(29px, 9vw, 38px);
  }

  body.dorm-detail-page .detail-heading-actions {
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  body.dorm-detail-page .detail-tags {
    justify-content: flex-start;
  }

  body.dorm-detail-page .detail-layout,
  body.dorm-detail-page .detail-main {
    gap: 14px;
  }

  body.dorm-detail-page .detail-photo-grid {
    grid-auto-rows: minmax(92px, 1fr);
    min-height: 260px;
    gap: 5px;
    border-radius: 9px;
  }

  body.dorm-detail-page .detail-photo-grid.photo-count-1 {
    grid-auto-rows: minmax(240px, 300px);
  }

  body.dorm-detail-page .detail-photo-grid.photo-count-2 {
    grid-auto-rows: minmax(245px, 300px);
  }

  body.dorm-detail-page .detail-photo-grid.photo-count-3 {
    grid-template-rows: repeat(2, minmax(120px, 1fr));
    min-height: 250px;
  }

  body.dorm-detail-page .detail-photo-grid.photo-count-4 {
    grid-template-rows: repeat(3, minmax(88px, 1fr));
    min-height: 280px;
  }

  body.dorm-detail-page .detail-photo-grid.photo-count-5 {
    grid-template-rows: repeat(2, minmax(125px, 1fr));
    min-height: 260px;
  }

  body.dorm-detail-page .detail-cover,
  body.dorm-detail-page .detail-cover img {
    min-height: 260px;
  }

  body.dorm-detail-page .detail-panel {
    padding: 19px 17px;
    border-radius: 9px;
  }

  body.dorm-detail-page .detail-about .quicklinks {
    gap: 7px;
  }

  body.dorm-detail-page .detail-about .quicklink {
    min-height: 69px;
    padding: 10px;
  }

  body.dorm-detail-page .detail-location .map-box {
    height: 270px;
  }

  body.dorm-detail-page .detail-booking {
    padding: 20px 17px;
  }
}

@media (max-width: 380px) {
  body.dorm-detail-page .detail-photo-grid.photo-count-3,
  body.dorm-detail-page .detail-photo-grid.photo-count-4,
  body.dorm-detail-page .detail-photo-grid.photo-count-5 {
    grid-auto-rows: minmax(75px, 1fr);
  }

  body.dorm-detail-page .detail-about .quicklinks {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.dorm-detail-page *,
  body.dorm-detail-page *::before,
  body.dorm-detail-page *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
