*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#10231b;background:#f7faf8}a{text-decoration:none;color:inherit}.container{width:min(1120px,92%);margin:auto}.topbar{background:#fff;border-bottom:1px solid #e4ebe7;position:sticky;top:0;z-index:10}.nav{height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px}.nav nav{display:flex;gap:22px;align-items:center}.brand{font-size:24px;font-weight:800}.brand span{color:#16794f}.owner-link{background:#10231b;color:#fff;padding:10px 14px;border-radius:10px}.hero{background:linear-gradient(135deg,#e9f7ef,#f8fbf9);padding:80px 0 70px}.hero-inner{max-width:1120px}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:800;color:#168255;margin-bottom:12px}h1{font-size:clamp(38px,6vw,68px);line-height:1.02;margin:0 0 18px;max-width:760px}h2{font-size:32px;margin:0 0 22px}h3{margin:8px 0;font-size:20px}.hero p{font-size:18px;max-width:650px;color:#52635b}.searchbox{display:flex;gap:8px;margin-top:30px;max-width:720px}.searchbox input{flex:1}.searchbox button,.primary{background:#16794f;color:white;border:0}.searchbox button,.primary,.secondary,.danger{padding:13px 18px;border-radius:10px;font-weight:700;cursor:pointer}.section{padding:65px 0}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:28px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters>*{width:auto}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card,.form-card,.admin-card{background:#fff;border:1px solid #e3ebe6;border-radius:16px;overflow:hidden;box-shadow:0 6px 24px #16382a0b}.card-photo{height:180px;background:#e7eee9;display:flex;align-items:center;justify-content:center;color:#6b7b73}.card-photo img{width:100%;height:100%;object-fit:cover}.card-body{padding:18px}.badge{display:inline-block;background:#e6f6ed;color:#16794f;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:800}.muted{color:#64746d}.details{margin-top:14px}.secondary{background:#fff;border:1px solid #cfdad4;color:#183229}.danger{background:#fff0f0;border:1px solid #efb9b9;color:#a62929}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.three article{background:#fff;padding:24px;border-radius:14px;border:1px solid #e3ebe6}.three p{color:#617069}.status{padding:12px 0;color:#5d6b65}.empty{padding:40px;text-align:center;background:#fff;border:1px dashed #cbd8d1;border-radius:14px;grid-column:1/-1}.form-page{padding:55px 0;max-width:800px}.form-card{padding:26px;margin-top:24px}.form-card label{display:block;font-weight:700;margin:15px 0}.form-card input,.form-card select,.form-card textarea,.filters input,.filters select,.searchbox input{width:100%;padding:12px;border:1px solid #ccd8d2;border-radius:9px;margin-top:7px;font:inherit;background:#fff}.form-card textarea{min-height:90px;resize:vertical}.admin-list{display:grid;gap:15px}.admin-card{padding:20px;display:flex;justify-content:space-between;gap:20px}.actions{display:flex;gap:8px;align-items:center}footer{padding:30px 0;background:#10231b;color:#dfeae4;font-size:14px}@media(max-width:850px){.grid,.three{grid-template-columns:1fr 1fr}.section-head{align-items:flex-start;flex-direction:column}.nav nav{display:none}}@media(max-width:600px){.grid,.three{grid-template-columns:1fr}.searchbox{flex-direction:column}.admin-card{flex-direction:column}.actions{align-items:stretch}.actions button{flex:1}}.section-sub{margin:-10px 0 0;color:#617069}.filter-panel{background:#fff;border:1px solid #dfe9e3;border-radius:16px;padding:18px;box-shadow:0 6px 24px #16382a0b}.filter-row{display:grid;grid-template-columns:1.1fr 1fr 1.1fr 1fr;gap:12px}.filter-row-bottom{grid-template-columns:1fr 1fr auto;margin-top:12px}.filter-panel label{font-size:12px;font-weight:800;color:#44574f}.filter-panel input,.filter-panel select{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid #ccd8d2;border-radius:9px;font:inherit;background:#fff;color:#10231b}.clear-btn{align-self:end;padding:11px 16px;border:1px solid #ccd8d2;border-radius:9px;background:#f7faf8;font-weight:700;cursor:pointer}.availability{font-size:13px;color:#7b5b35}.availability.open{color:#16794f;font-weight:700}.card-tags{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.card-tags span{font-size:11px;background:#f1f5f2;border-radius:999px;padding:5px 7px;color:#4f6259}.modal{position:fixed;inset:0;background:#10231b66;display:flex;align-items:center;justify-content:center;padding:18px;z-index:100}.modal[hidden]{display:none}.modal-card{position:relative;background:#fff;width:min(650px,100%);max-height:90vh;overflow:auto;border-radius:18px;padding:28px;box-shadow:0 20px 70px #10231b33}.modal-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:30px;cursor:pointer;color:#53645c}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.detail-grid>div{background:#f7faf8;padding:14px;border-radius:12px}.detail-grid p{margin:6px 0 0;color:#5d6b65}.contact-box{border:1px solid #cfe1d7;background:#eef8f2;padding:16px;border-radius:12px}.contact-box p{margin:6px 0 0}@media(max-width:850px){.filter-row,.filter-row-bottom{grid-template-columns:1fr 1fr}}@media(max-width:600px){.filter-row,.filter-row-bottom{grid-template-columns:1fr}.clear-btn{width:100%}.detail-grid{grid-template-columns:1fr}.modal-card{padding:22px}}

/* V3 adjustments */
.verified-badge{background:#e6f6ed;color:#16794f}
.unverified-badge{background:#ffe8e8;color:#b21f2d;border:1px solid #f3b5b5}
.pending-badge{background:#fff4df;color:#8a5a00}
.unverified-btn{padding:13px 18px;border-radius:10px;font-weight:700;cursor:pointer;background:#fff0f0;border:1px solid #e8a7ad;color:#b21f2d}
.facility-picker{margin:20px 0;padding:16px;border:1px solid #dfe8e2;border-radius:12px;background:#f8fbf9}
.field-title{font-weight:800}
.field-help{font-size:13px;color:#64746d;margin:6px 0 14px}
.facility-options{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.facility-options label{margin:0!important;font-weight:600!important;background:#fff;border:1px solid #dbe5df;border-radius:9px;padding:10px}
.facility-options input{width:auto!important;margin:0 7px 0 0!important}
.admin-edit-card{display:block}
.admin-card-main{width:100%}
.admin-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.admin-edit-grid label{margin:10px 0}
.admin-actions{flex-wrap:wrap;margin-top:14px}
.inline-status{padding-top:8px;color:#53645c;font-size:13px}
@media(max-width:600px){.facility-options,.admin-edit-grid{grid-template-columns:1fr}.admin-actions{flex-direction:column}.admin-actions button{width:100%}}
.room-options-section{margin:22px 0;padding:18px;border:1px solid #dbe3ef;border-radius:16px;background:#f8fafc}.section-title-row,.room-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.room-option{margin-top:14px;padding:16px;border:1px solid #dbe3ef;border-radius:14px;background:white}.room-head h3{margin:0}.bed-config{margin:14px 0;padding:14px;border-radius:12px;background:#f8fafc}.field-help-inline{font-size:.8em;font-weight:400}.unverified-badge{background:#ffe5e5!important;color:#b42318!important;border:1px solid #f1a7a7}.unverified-btn{background:#fff;border:1px solid #d92d20;color:#b42318;padding:10px 14px;border-radius:10px;font-weight:700}
.room-list{margin-top:18px}.room-summary{padding:14px;margin:10px 0;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc}.room-summary div{margin-top:5px}

.location-picker{margin:22px 0;padding:18px;border:1px solid #dbe5df;border-radius:16px;background:#f8fbf9}
.peraboard-map{height:320px;width:100%;border:1px solid #ccd8d2;border-radius:12px;overflow:hidden;z-index:1}
.location-coordinates{margin-top:10px}
.map-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.map-link{display:inline-block;padding:10px 13px;border:1px solid #cbd8d1;border-radius:9px;background:#f7faf8;color:#183229;font-weight:700}
@media(max-width:600px){.peraboard-map{height:280px}}

/* Faculty route estimate */
.route-estimate { margin: 12px 0; padding: 12px; background: #f4f7f6; border: 1px solid #dce7e2; border-radius: 12px; }
.route-result { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.route-result > div { display: flex; flex-direction: column; gap: 3px; }
.route-value { font-size: 1.25rem; font-weight: 750; color: #176b50; }
.route-label { font-size: .8rem; color: #52615b; }
.route-disclaimer { margin: 9px 0 0; font-size: .75rem; color: #68756f; line-height: 1.4; }
@media (max-width: 480px) { .route-result { gap: 8px; } .route-value { font-size: 1.1rem; } }


/* V6.1: faculty selector and always-visible card route estimates */
.faculty-destination-bar{padding:14px 16px;margin-bottom:16px;border:1px solid #cfe2d7;border-radius:12px;background:#f0f8f3}
.faculty-destination-bar label{display:block;max-width:560px;font-size:14px;color:#183229}
.faculty-destination-bar select{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #c4d5cb;border-radius:9px;background:#fff;font:inherit;color:#10231b}
.faculty-help{margin:8px 0 0;font-size:12px;color:#64746d}
.card-route-estimate{margin:12px 0;padding:11px 12px;border:1px solid #d5e7dc;border-radius:11px;background:#f2f8f4}
.card-route-values{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.card-route-values span{display:flex;flex-direction:column;gap:2px}
.card-route-values b{font-size:1.18rem;color:#176b50}
.card-route-values small{font-size:11px;color:#617069}
.card-route-caption{display:block;margin-top:7px;color:#68756f;font-size:11px}
.route-loading{font-size:12px;color:#64746d}

/* V7 tenant preference badges */
.card-badges{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.boys-badge{background:#e4f0ff;color:#1459a6;border:1px solid #b8d6ff}
.girls-badge{background:#ffe6f0;color:#a82962;border:1px solid #ffc2da}
.approved-admin-heading{margin-top:34px}

/* V8: property photos and verified student reviews */
.photo-upload-section,.photo-moderation,.reviews-entry,.stay-code-tools{margin:20px 0;padding:16px;border:1px solid #dfe9e3;border-radius:13px;background:#fbfdfb}
.photo-preview-grid,.admin-photo-grid,.property-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:12px}
.photo-preview-item,.admin-photo-item{position:relative;display:block;border:1px solid #dce6e0;border-radius:10px;overflow:hidden;background:#f1f5f2}
.photo-preview-item img,.admin-photo-item img{display:block;width:100%;height:105px;object-fit:cover}
.photo-preview-item span{position:absolute;right:6px;top:6px;background:#10231bcc;color:white;padding:3px 7px;border-radius:20px;font-size:11px}
.admin-photo-item span{display:flex;align-items:center;gap:5px;padding:7px;font-size:11px;font-weight:700}
.property-gallery{grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0}
.property-gallery img{width:100%;height:180px;object-fit:cover;border-radius:10px;background:#eef3ef}
.review-summary{font-size:13px;margin:6px 0;color:#68756f}.review-summary span,.review-stars{color:#a66b00;font-weight:800}
.public-review{border-top:1px solid #e5ece7;padding:10px 0}.public-review p{margin:5px 0}.review-stars span{color:#168255;font-size:12px}
.review-link{display:inline-block;margin:6px 0;color:#fff!important}.stay-code-row{display:flex;gap:8px;align-items:center}.stay-code-row input{flex:1;min-width:0;padding:11px;border:1px solid #ccd8d2;border-radius:9px}.stay-code-result{margin-top:10px;overflow-wrap:anywhere;color:#16794f}
@media(max-width:600px){.stay-code-row{flex-direction:column;align-items:stretch}.stay-code-row button{width:100%}.property-gallery img{height:130px}}
.photo-preview-item{position:relative}.remove-photo-preview{position:absolute;right:5px;bottom:5px;width:25px;height:25px;border:0;border-radius:50%;background:#a62929;color:white;font-size:18px;line-height:1;cursor:pointer}
.review-category-scores{font-size:12px;color:#68756f;line-height:1.5}

.account-link{display:inline-block;background:#e9f7ef;color:#16794f;padding:10px 14px;border-radius:10px;font-weight:800;white-space:nowrap}.account-review{padding:14px 0;border-bottom:1px solid #e3ebe6}.account-review-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.account-review p{margin:8px 0}.account-browse{display:inline-block;text-decoration:none;margin-top:10px}@media(max-width:850px){.nav nav{display:none}.nav{justify-content:space-between}.account-link{margin-left:auto}}


/* UniStay brand and structured room details */
.room-list{margin:24px 0}
.room-list-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.room-list-heading h3{margin:0 0 4px}
.room-list-heading p{margin:0;font-size:13px}
.room-count{flex:none;background:#eaf5ee;color:#176b50;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}
.room-card-grid{display:grid;grid-template-columns:1fr;gap:13px}
.room-detail-card{padding:17px;border:1px solid #dce8e0;border-radius:15px;background:linear-gradient(145deg,#fff,#f8fbf9);box-shadow:0 4px 16px #16382a08}
.room-detail-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.room-number{font-size:10px;letter-spacing:.12em;font-weight:850;color:#168255}
.room-detail-top h4{font-size:17px;margin:5px 0 0;color:#10231b}
.room-status{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:11px;line-height:1.3;font-weight:800;text-align:center}
.room-status-open{background:#e5f6ec;color:#16794f}
.room-status-full{background:#fff0f0;color:#b42318}
.room-status-date{background:#fff4df;color:#8a5a00}
.room-status-unknown{background:#eef2ef;color:#5d6b65}
.room-price{font-size:21px;font-weight:850;color:#176b50;margin:15px 0}
.room-price small{font-size:11px;font-weight:600;color:#64746d}
.room-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.room-facts>div{padding:10px 11px;background:#f0f5f2;border-radius:10px;min-width:0}
.room-facts span{display:block;color:#68756f;font-size:11px;margin-bottom:4px}
.room-facts b{display:block;font-size:13px;color:#20372d;overflow-wrap:anywhere}
.room-facilities{margin-top:13px;padding-top:12px;border-top:1px solid #e3ebe6}
.room-facilities-label{font-size:11px;font-weight:800;color:#52635b}
.room-facility-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.room-facility-tags span{background:#eaf2ed;border:1px solid #dce8e0;color:#3f594b;border-radius:999px;padding:5px 9px;font-size:11px}
@media(min-width:720px){.room-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.room-detail-card{padding:13px}.room-detail-top{flex-direction:column}.room-facts{gap:7px}.room-facts>div{padding:9px}}
