:root{
  --maple:#b3261e; --maple-dark:#8c1c16; --maple-soft:#fbeceb;
  --ink:#14213d; --ink-2:#334155; --muted:#64748b;
  --bg:#ffffff; --soft:#f6f4f1; --line:#e5e1dc;
  --ok:#15803d; --warn:#b45309; --info:#1d4ed8;
  --radius:14px; --shadow:0 10px 30px rgba(20,33,61,.08);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-size:16px}
img,video{max-width:100%;display:block}
a{color:var(--maple);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.5vw,3.4rem);font-weight:800}
h2{font-size:clamp(1.6rem,3vw,2.3rem);font-weight:800}
h3{font-size:1.2rem;font-weight:700}
p{margin:0 0 1em}
.container{max-width:var(--max);margin:0 auto;padding:0 20px}
.section{padding:80px 0}
.section.soft{background:var(--soft)}
.eyebrow{display:inline-block;color:var(--maple);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;margin-bottom:.6rem}
.lead{font-size:1.15rem;color:var(--ink-2);max-width:680px}
.center{text-align:center}.center .lead{margin-left:auto;margin-right:auto}
.muted{color:var(--muted)}
.hidden{display:none!important}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:999px;font-weight:700;border:2px solid transparent;cursor:pointer;font-size:1rem;font-family:inherit;transition:.15s;text-decoration:none!important;line-height:1.2}
.btn-primary{background:var(--maple);color:#fff}
.btn-primary:hover{background:var(--maple-dark)}
.btn-outline{border-color:currentColor;color:var(--ink);background:transparent}
.btn-outline:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-light{background:#fff;color:var(--ink)}
.btn-ghost{background:transparent;color:var(--ink-2);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-sm{padding:.45rem .9rem;font-size:.88rem}
.btn-danger{background:#fff;color:var(--maple);border-color:#f3c9c6}
.btn-danger:hover{background:var(--maple);color:#fff}
.btn[disabled]{opacity:.6;cursor:not-allowed}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.topbar{background:var(--ink);color:#cbd5e1;font-size:.85rem}
.topbar .container{display:flex;justify-content:space-between;gap:1rem;padding-top:6px;padding-bottom:6px;flex-wrap:wrap}
.topbar a{color:#fff}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.logo{display:flex;align-items:center;gap:.6rem;color:var(--ink);font-weight:800;font-size:1.15rem;text-decoration:none!important}
.logo-mark{width:40px;height:40px;border-radius:10px;background:var(--maple);display:grid;place-items:center;color:#fff}
.logo small{display:block;font-size:.66rem;letter-spacing:.14em;color:var(--muted);font-weight:700}
.nav-links{display:flex;gap:1.6rem;align-items:center;list-style:none;margin:0;padding:0}
.nav-links a{color:var(--ink-2);font-weight:600}
.nav-links a.active,.nav-links a:hover{color:var(--maple);text-decoration:none}
.nav-links a.btn-primary,.nav-links a.btn-primary:hover{color:#fff}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;color:var(--ink)}
@media (max-width:900px){
  .menu-toggle{display:block}
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:#fff;border-bottom:1px solid var(--line);padding:10px 20px 20px;gap:0;display:none}
  .nav-links.open{display:flex}
  .nav-links li a{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
  .nav-links .btn{margin-top:12px;width:100%}
  .topbar .hide-sm{display:none}
}

/* Hero */
.hero{position:relative;color:#fff;background:#1e293b center/cover no-repeat;min-height:560px;display:flex;align-items:center}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(15,23,42,.88) 0%,rgba(15,23,42,.6) 55%,rgba(15,23,42,.25) 100%)}
.hero .container{position:relative;padding-top:80px;padding-bottom:80px}
.hero h1{max-width:720px}
.hero p{font-size:1.2rem;max-width:600px;color:#e2e8f0}
.hero.small{min-height:340px}
.hero .eyebrow{color:#fca5a5}
.search-box{background:#fff;border-radius:18px;padding:14px;display:grid;grid-template-columns:2fr 1.2fr 1.2fr auto;gap:10px;max-width:860px;margin-top:28px;box-shadow:var(--shadow)}
.search-box input,.search-box select{border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;font:inherit;color:var(--ink);background:#fff;width:100%}
@media (max-width:760px){.search-box{grid-template-columns:1fr}}

/* Grids & cards */
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:.2s}
.card:hover{box-shadow:var(--shadow)}
.icon{width:52px;height:52px;border-radius:12px;background:var(--maple-soft);color:var(--maple);display:grid;place-items:center;margin-bottom:16px}
.icon svg{width:26px;height:26px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:32px}}
.split img{border-radius:20px;box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover;width:100%}
.check-list{list-style:none;padding:0;margin:1rem 0}
.check-list li{padding:.45rem 0 .45rem 2rem;position:relative;font-weight:600}
.check-list li::before{content:"";position:absolute;left:0;top:.7rem;width:20px;height:20px;border-radius:50%;background:var(--maple) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}
.stat{background:#fff;border-radius:var(--radius);padding:22px;text-align:center;border:1px solid var(--line)}
.stat b{display:block;font-size:1.9rem;color:var(--maple)}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}

/* Property cards */
.prop-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.2s;color:inherit;text-decoration:none!important}
.prop-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.prop-img{position:relative;aspect-ratio:4/3;background:#e2e8f0}
.prop-img img{width:100%;height:100%;object-fit:cover}
.badge{display:inline-block;padding:.25rem .7rem;border-radius:999px;font-size:.75rem;font-weight:700;background:#e2e8f0;color:var(--ink)}
.prop-img .badge{position:absolute;top:12px;left:12px}
.badge.available{background:#dcfce7;color:#166534}
.badge.coming_soon{background:#fef3c7;color:#92400e}
.badge.rented{background:#e2e8f0;color:#475569}
.badge.new{background:#fee2e2;color:#991b1b}
.badge.in_progress{background:#dbeafe;color:#1e40af}
.badge.completed{background:#dcfce7;color:#166534}
.badge.cancelled{background:#e2e8f0;color:#475569}
.badge.prio-emergency{background:var(--maple);color:#fff}
.badge.prio-urgent{background:#fed7aa;color:#9a3412}
.prop-body{padding:18px 20px 22px;flex:1;display:flex;flex-direction:column}
.prop-price{font-size:1.4rem;font-weight:800;color:var(--maple)}
.prop-price small{font-size:.85rem;color:var(--muted);font-weight:600}
.prop-meta{display:flex;gap:14px;color:var(--ink-2);font-size:.9rem;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);flex-wrap:wrap}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.filters input,.filters select{border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;font:inherit;background:#fff}
.filters input{flex:1;min-width:200px}
.empty{padding:60px 20px;text-align:center;color:var(--muted);border:2px dashed var(--line);border-radius:var(--radius)}

/* Property detail */
.gallery{display:grid;grid-template-columns:2fr 1fr;gap:10px;border-radius:18px;overflow:hidden}
.gallery .main{aspect-ratio:16/10;background:#e2e8f0}
.gallery .main img{width:100%;height:100%;object-fit:cover}
.gallery .thumbs{display:grid;grid-template-rows:repeat(2,1fr);gap:10px}
.gallery .thumbs img{width:100%;height:100%;object-fit:cover;cursor:pointer}
.thumb-row{display:flex;gap:8px;margin-top:10px;overflow-x:auto}
.thumb-row img{width:96px;height:72px;object-fit:cover;border-radius:8px;cursor:pointer;opacity:.75;flex:none}
.thumb-row img.active,.thumb-row img:hover{opacity:1;outline:3px solid var(--maple)}
.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:40px;margin-top:32px}
@media (max-width:900px){.detail-grid{grid-template-columns:1fr}}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}
.facts div{background:var(--soft);border-radius:12px;padding:14px;text-align:center}
.facts b{display:block;font-size:1.2rem}
@media (max-width:600px){.facts{grid-template-columns:repeat(2,1fr)}}
.sticky-card{position:sticky;top:100px}

/* Forms */
.form{display:grid;gap:18px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.form-row{grid-template-columns:1fr}}
label{font-weight:600;font-size:.93rem;display:block;margin-bottom:6px}
.req{color:var(--maple)}
input:not([type]),input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=password],input[type=url],select,textarea{width:100%;border:1px solid #d6d0c9;border-radius:10px;padding:.75rem .9rem;font:inherit;color:var(--ink);background:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--maple);box-shadow:0 0 0 3px var(--maple-soft)}
textarea{min-height:130px;resize:vertical}
.choice-group{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (max-width:640px){.choice-group{grid-template-columns:1fr}}
.choice{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;font-weight:500;margin:0}
.choice:has(input:checked){border-color:var(--maple);background:var(--maple-soft)}
.choice input{margin-top:4px;accent-color:var(--maple)}
.choice small{display:block;color:var(--muted)}
.inline-choices{display:flex;gap:10px;flex-wrap:wrap}
.inline-choices .choice{flex:1;min-width:120px}
.checkbox{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.checkbox input{margin-top:5px;accent-color:var(--maple)}

/* Upload zone */
.dropzone{border:2px dashed #cfc7bf;border-radius:14px;padding:30px 20px;text-align:center;background:var(--soft);cursor:pointer;transition:.15s}
.dropzone:hover,.dropzone.drag{border-color:var(--maple);background:var(--maple-soft)}
.dropzone svg{width:40px;height:40px;color:var(--maple);margin:0 auto 8px}
.dropzone b{color:var(--maple)}
.previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:12px}
.preview{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#0f172a;border:1px solid var(--line)}
.preview img,.preview video{width:100%;height:100%;object-fit:cover}
.preview .rm{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(15,23,42,.8);color:#fff;cursor:pointer;font-size:16px;line-height:28px}
.preview .tag{position:absolute;bottom:6px;left:6px;background:rgba(15,23,42,.8);color:#fff;font-size:.7rem;padding:2px 7px;border-radius:6px}
.preview.star{outline:3px solid var(--maple)}

.alert{padding:14px 18px;border-radius:12px;font-weight:500}
.alert.success{background:#dcfce7;color:#14532d}
.alert.error{background:#fee2e2;color:#7f1d1d}
.alert.info{background:#e0f2fe;color:#0c4a6e}
.progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden}
.progress span{display:block;height:100%;background:var(--maple);width:0;transition:width .3s}

/* Emergency / tables */
.emergency{background:var(--ink);color:#fff;border-radius:20px;padding:36px}
.emergency h2,.emergency h3{color:#fff}
.emergency a.phone{font-size:2rem;font-weight:800;color:#fff}
.emergency ul{padding-left:1.2rem;color:#cbd5e1}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}
th{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.emergency td,.emergency th{border-color:rgba(255,255,255,.15);color:#e2e8f0}

/* CTA + footer */
.cta{background:linear-gradient(120deg,var(--maple),#7f1d1d);color:#fff;border-radius:24px;padding:56px;text-align:center}
.cta p{color:#fde2e0}
.cta .btn-outline{color:#fff}
.cta .btn-outline:hover{background:#fff;color:var(--maple);border-color:#fff}
.site-footer{background:var(--ink);color:#cbd5e1;padding:64px 0 24px;margin-top:0}
.site-footer h4{color:#fff;font-size:1rem}
.site-footer a{color:#cbd5e1}
.site-footer a:hover{color:#fff}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{padding:4px 0}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:36px}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.88rem}
.site-footer .logo{color:#fff}

.demo-banner{background:#fef3c7;color:#78350f;text-align:center;padding:8px 12px;font-size:.88rem}
.spinner{width:22px;height:22px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;display:inline-block}
.spinner.dark{border-color:var(--line);border-top-color:var(--maple)}
@keyframes spin{to{transform:rotate(360deg)}}
.map{width:100%;height:340px;border:0;border-radius:var(--radius)}

/* Admin */
.admin-body{background:var(--soft)}
.admin-top{background:var(--ink);color:#fff}
.admin-top .container{display:flex;justify-content:space-between;align-items:center;height:64px}
.admin-top .logo{color:#fff}
.tabs{display:flex;gap:6px;margin:24px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tab{padding:10px 18px;border:0;background:none;font:inherit;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.tab.active{color:var(--maple);border-color:var(--maple)}
.tab .count{background:var(--maple);color:#fff;border-radius:99px;padding:0 7px;font-size:.75rem;margin-left:4px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.req-item{border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:12px;background:#fff;cursor:pointer}
.req-item:hover{border-color:var(--maple)}
.req-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.6);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:30px 12px;overflow-y:auto}
.modal-box{background:#fff;border-radius:18px;max-width:860px;width:100%;padding:28px;position:relative}
.modal-close{position:absolute;top:14px;right:14px;border:0;background:var(--soft);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:20px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.media-grid a,.media-grid video{border-radius:10px;overflow:hidden;background:#0f172a;aspect-ratio:4/3}
.media-grid img,.media-grid video{width:100%;height:100%;object-fit:cover}
.kv{display:grid;grid-template-columns:170px 1fr;gap:6px 16px;margin:16px 0}
.kv dt{color:var(--muted);font-weight:600}
.kv dd{margin:0}
@media (max-width:600px){.kv{grid-template-columns:1fr}.kv dd{margin-bottom:8px}}
.toolbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
.admin-prop{display:flex;gap:16px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:#fff}
.admin-prop img{width:110px;height:80px;object-fit:cover;border-radius:8px;background:#e2e8f0;flex:none}
.admin-prop .grow{flex:1;min-width:0}
@media (max-width:600px){.admin-prop{flex-wrap:wrap}}
section[id],[id=request]{scroll-margin-top:90px}

/* Rental application */
.stepper{display:flex;list-style:none;padding:0;margin:0 0 20px;gap:6px;counter-reset:s;flex-wrap:wrap}
.stepper li{flex:1;min-width:90px;counter-increment:s;font-size:.82rem;font-weight:700;color:var(--muted);padding:10px 8px 8px;border-top:4px solid var(--line);cursor:default}
.stepper li::before{content:counter(s) ". "}
.stepper li.active{color:var(--maple);border-color:var(--maple)}
.stepper li.done{color:var(--ink);border-color:#e8a19c;cursor:pointer}
@media (max-width:640px){.stepper li{min-width:0;font-size:0;padding:0;border-top-width:6px}.stepper li::before{font-size:0}}
.app-form{padding:32px}
.app-form fieldset{border:0;padding:0;margin:0;min-width:0}
.app-form h2{font-size:1.5rem;margin-bottom:18px}
.app-form h3.sub{font-size:1.05rem;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.step-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.rep-card{border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px;background:var(--soft);display:grid;gap:14px}
.rep-head{display:flex;justify-content:space-between;align-items:center}
.rep-block:not(.rep-card){display:grid;gap:14px}
.consent-box{background:var(--soft);border-radius:12px;padding:18px;display:grid;gap:14px}
input.signature{font-family:"Brush Script MT","Segoe Script",cursive;font-size:1.5rem;padding:.5rem .9rem}
.app-section{margin-bottom:18px;break-inside:avoid}
.app-section h4{margin:0 0 6px;padding:6px 10px;background:var(--soft);border-left:4px solid var(--maple);border-radius:4px}
.app-section .kv{margin:6px 0 0}

@media print{
  body.printing > *:not(#modal){display:none!important}
  body.printing #modal{position:static;background:none;padding:0;overflow:visible}
  body.printing .modal-box{box-shadow:none;max-width:none;padding:0}
  body.printing .no-print{display:none!important}
}
.prop-card .prop-img{display:block}
.prop-card h3 a:hover{color:var(--maple);text-decoration:none}
.prop-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.prop-card:hover{transform:none}
.badge.reviewing{background:#dbeafe;color:#1e40af}
.badge.approved{background:#dcfce7;color:#166534}
.badge.declined{background:#fee2e2;color:#991b1b}
.badge.withdrawn{background:#e2e8f0;color:#475569}
@media print{body.printing .modal-close{display:none!important}}
.filters select{width:auto;flex:0 1 auto}.filters input{width:auto}@media (max-width:640px){.filters select{flex:1 1 45%}}
/* City tabs */
.city-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 14px;margin-bottom:18px;scrollbar-width:thin}
.city-tab{flex:none;border:1.5px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-weight:700;padding:.6rem 1.1rem;border-radius:999px;cursor:pointer;transition:.15s;white-space:nowrap}
.city-tab span{display:inline-block;min-width:22px;padding:0 6px;margin-left:4px;border-radius:99px;background:var(--soft);color:var(--muted);font-size:.8rem;text-align:center}
.city-tab:hover{border-color:var(--maple);color:var(--maple)}
.city-tab.active{background:var(--maple);border-color:var(--maple);color:#fff}
.city-tab.active span{background:rgba(255,255,255,.25);color:#fff}
.group-head{display:flex;align-items:baseline;gap:12px;margin:34px 0 16px;padding-bottom:10px;border-bottom:2px solid var(--line)}
.group-head:first-child{margin-top:0}
.group-head h2{font-size:1.5rem;margin:0}
.group-head .dot{width:10px;height:10px;border-radius:50%;background:#16a34a;display:inline-block;margin-right:8px;vertical-align:middle}
.city-head{font-size:1.05rem;font-weight:800;color:var(--ink-2);margin:22px 0 12px;display:flex;align-items:center;gap:8px}
.city-head:first-of-type{margin-top:0}
/* Never print contact details or buttons, however printing is started */
@media print{
  .no-print{display:none!important}
  body.admin-body.modal-open > *:not(#modal){display:none!important}
  body.admin-body.modal-open #modal{position:static;background:none;padding:0;overflow:visible}
  body.admin-body.modal-open .modal-box{box-shadow:none;max-width:none;padding:0}
  body.admin-body.modal-open .modal-close{display:none!important}
}
.badge.booked{background:#dbeafe;color:#1e40af}
.badge.attended{background:#dcfce7;color:#166534}
.badge.no_show{background:#fee2e2;color:#991b1b}
/* Viewings */
.day-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px}
.day-chip{flex:none;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:10px 14px;text-align:center;cursor:pointer;font:inherit;min-width:86px}
.day-chip b{display:block;font-size:1.05rem}
.day-chip small{color:var(--muted)}
.day-chip.active{border-color:var(--maple);background:var(--maple-soft)}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:12px}
.slot{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:10px 6px;font:inherit;font-weight:700;cursor:pointer;text-align:center}
.slot small{display:block;font-weight:500;color:var(--muted);font-size:.75rem}
.slot:hover{border-color:var(--maple)}
.slot.active{background:var(--maple);border-color:var(--maple);color:#fff}
.slot.active small{color:#fde2e0}
.slot[disabled]{opacity:.45;cursor:not-allowed}
.win{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px;background:#fff}
.win .bk{font-size:.88rem;color:var(--ink-2);margin-top:4px}
.day-title{font-weight:800;margin:18px 0 8px;color:var(--ink-2)}
.linkbox{display:flex;gap:8px;flex-wrap:wrap}
.linkbox input{flex:1;min-width:220px;font-size:.85rem;background:var(--soft)}
.addr-group{margin-bottom:18px}
.addr-head{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--ink-2);margin:0 0 8px}
.addr-group .req-item{margin-bottom:8px}
.badge.assigned{background:#ede9fe;color:#5b21b6}
.feat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;background:var(--soft);padding:12px 14px;border-radius:10px}
@media (max-width:600px){.feat-grid{grid-template-columns:1fr}}
.checkbox.feat{margin:0}
.order-bar{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;background:rgba(15,23,42,.75);color:#fff;font-size:.8rem;font-weight:700}
.order-bar button{background:none;border:0;color:#fff;font-size:1rem;padding:6px 10px;cursor:pointer}
.order-bar button[disabled]{opacity:.3;cursor:default}
/* Property photo carousel: same size for every photo */
.carousel{border-radius:18px;overflow:hidden;background:#0f172a}
.car-stage{position:relative;width:100%;aspect-ratio:16/10;max-height:560px;overflow:hidden;user-select:none}
.car-bg{position:absolute;inset:-20px;width:calc(100% + 40px);height:calc(100% + 40px);object-fit:cover;filter:blur(24px) brightness(.6);transform:scale(1.05)}
.car-img{position:relative;width:100%;height:100%;object-fit:contain;z-index:1}
.car-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.9);color:var(--ink);font-size:2rem;line-height:44px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.car-btn:hover{background:#fff}
.car-btn.prev{left:14px}.car-btn.next{right:14px}
.car-count{position:absolute;right:14px;bottom:12px;z-index:2;background:rgba(15,23,42,.75);color:#fff;font-size:.85rem;font-weight:700;padding:4px 10px;border-radius:99px}
@media (max-width:640px){.car-stage{aspect-ratio:4/3}.car-btn{width:40px;height:40px;font-size:1.6rem;line-height:36px}}
/* Accounts */
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}
.acct-table{min-width:900px;font-size:.9rem}
.acct-table th{background:var(--soft);position:sticky;top:0;white-space:nowrap}
.acct-table td{vertical-align:top;padding:8px 10px}
.acct-table tfoot td{font-weight:800;background:var(--soft)}
.acct-table input.cell{padding:.35rem .5rem;font-size:.88rem;min-width:78px;border-radius:6px}
.acct-table tr.row-done{background:#f0fdf4}
.acct-table tr.row-rcvd{background:#eff6ff}
.acct-table tr.row-partial{background:#fff7ed}
.mini{border:1px solid var(--line);background:#fff;border-radius:6px;padding:3px 8px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;margin-top:4px;margin-right:4px;white-space:nowrap}
.mini:hover{border-color:var(--maple);color:var(--maple)}
.mini.warn{background:#fff7ed;border-color:#fdba74;color:#9a3412}
.stat[data-go]:hover,.stat[data-who]:hover{border-color:var(--maple)}
@media print{
  body.print-statement *{visibility:hidden}
  body.print-statement #statement,body.print-statement #statement *{visibility:visible}
  body.print-statement #statement{position:absolute;left:0;top:0;width:100%;border:0}
  body.print-statement .table-wrap{overflow:visible;border:0}
  body.print-statement .acct-table{min-width:0;font-size:.75rem}
}
/* Accounts v2 */
.acct-table tr.row-late{background:#fef2f2}
.acct-table tr.row-soon{background:#fff7ed}
.acct-table tr.owner-row td{background:#eef2ff;font-size:.92rem}
.txt-red{color:#dc2626}.txt-orange{color:#c2410c}.txt-green{color:#15803d}
.ov-list{margin:10px 0 0;padding-left:1.1rem;font-size:.92rem}
.ov-list li{padding:2px 0}
.ov-list li.red{color:#b91c1c}
.ov-list li.orange{color:#c2410c}
.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px 12px;background:var(--soft);padding:10px 12px;border-radius:10px;max-height:220px;overflow:auto}
@media (max-width:700px){.month-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){#acct .stats{grid-template-columns:repeat(2,1fr)!important}}
/* Property care grid */
.care-table{min-width:1000px}
.care-table td.cc{min-width:165px;font-size:.8rem}
.care-table td.cc label{display:inline-block;width:34px;margin:0;font-size:.72rem;color:var(--muted)}
.care-table td.cc input{width:128px;padding:.25rem .35rem;font-size:.8rem;border-radius:6px;margin:2px 0}
.care-table td.cc.red{background:#fee2e2}
.care-table td.cc.orange{background:#ffedd5}
.care-table td.cc.ok{background:#f0fdf4}
.cc-foot{display:flex;justify-content:space-between;align-items:center;gap:4px;color:var(--muted);font-size:.72rem;margin-top:2px}
.ov-list li.green{color:#15803d}
.preview[draggable="true"]{cursor:grab}
.preview.dragging{opacity:.35}
.preview.drop-target{outline:3px dashed var(--maple);outline-offset:2px}
/* Property page: photo + details on one screen */
.pd-top{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:28px;margin-top:10px;align-items:start}
.pd-gallery .car-stage{aspect-ratio:4/3;max-height:430px}
.pd-gallery .thumb-row img{width:72px;height:54px}
.pd-info h1{font-size:clamp(1.5rem,2.6vw,2.1rem);margin:.35rem 0 .3rem}
.pd-info .facts{grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.pd-info .facts div{padding:10px 6px;font-size:.85rem}
.pd-info .facts b{font-size:1.05rem}
.pd-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.pd-actions .btn{padding:.65rem 1.1rem;font-size:.92rem}
.pd-feat{columns:2;margin:4px 0 0;font-size:.88rem}
.pd-feat li{padding:.25rem 0 .25rem 1.7rem;font-weight:600}
.pd-feat li::before{top:.45rem;width:16px;height:16px;background-size:10px}
@media (max-width:900px){.pd-top{grid-template-columns:1fr}.pd-gallery .car-stage{max-height:none}}
/* Smaller, tidier listing photos */
.prop-img{aspect-ratio:16/10}

/* ===== Tenant portal ===== */
.portal-body{background:var(--soft);min-height:100vh}
.portal-top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;padding-top:env(safe-area-inset-top)}
.portal-top .container{display:flex;justify-content:space-between;align-items:center;height:62px;max-width:900px}
.portal-main{max-width:900px;padding-top:18px;padding-bottom:50px}
.portal-card{margin-bottom:16px;padding:22px}
.portal-login{max-width:430px;margin:40px auto}
.portal-hello{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:flex-end;margin:6px 0 14px}
.portal-hello h1{font-size:1.7rem;margin:0}
.portal-hello .muted svg{width:15px;height:15px;vertical-align:-2px}
.portal-chips{display:flex;gap:8px;flex-wrap:wrap}
.portal-chip{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 14px;text-align:left;cursor:pointer;font-family:inherit;font-size:.95rem;color:var(--ink)}
.portal-chip span{display:block;font-size:.72rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.portal-hint{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:10px 14px;font-size:.9rem;margin-bottom:12px}
.linklike{background:none;border:0;color:var(--maple);cursor:pointer;font:inherit;text-decoration:underline;padding:0 0 0 6px}
.portal-tabs{position:sticky;top:62px;z-index:10;background:var(--soft);padding:8px 0}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:12px 0 8px}
.step{font-size:.78rem;color:var(--muted);text-align:center;position:relative;font-weight:600}
.step span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e2e8f0;color:#475569;margin:0 auto 4px;font-weight:800}
.step.done span{background:var(--ok);color:#fff}.step.done{color:var(--ink)}
.step.now span{box-shadow:0 0 0 4px #bbf7d0}
.thread{display:flex;flex-direction:column;gap:8px}
.t-status{font-size:.82rem;color:var(--muted);text-align:center;background:#f1f5f9;border-radius:8px;padding:6px 10px}
.t-status span{opacity:.75;margin-left:4px}
.t-msg{background:#f1f5f9;border-radius:12px 12px 12px 4px;padding:8px 12px;max-width:85%;white-space:pre-line;font-size:.95rem}
.t-msg.me{align-self:flex-end;background:var(--maple-soft);border-radius:12px 12px 4px 12px}
.t-who{font-size:.74rem;color:var(--muted);font-weight:700;margin-bottom:2px}
.t-reply{display:flex;gap:8px;align-items:flex-end;margin-top:10px}
.t-reply textarea{min-height:44px;height:44px;flex:1}
.acct-sum{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.acct-sum>div{background:var(--soft);border-radius:10px;padding:10px 12px}
.acct-sum span{display:block;font-size:.75rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.acct-sum b{font-size:1.1rem}.acct-sum .big b{font-size:1.25rem}
.acct-sum small{display:block;color:var(--muted);font-size:.78rem}
.row-now td{background:#fffbeb}
@media (max-width:600px){.portal-hello h1{font-size:1.4rem}.portal-card{padding:16px}.step{font-size:.68rem}}
.thread-admin .t-msg{max-width:100%}
.portal-months{min-width:0}.portal-months th,.portal-months td{padding:8px 8px}
@media (max-width:600px){.portal-months{font-size:.85rem}}
.portal-months th{white-space:normal;font-size:.68rem;letter-spacing:.02em}.portal-months td{padding:8px 6px}
/* Property cards: 4 per row, compact */
.grid-props{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
@media (max-width:1100px){.grid-props{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){.grid-props{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.grid-props{grid-template-columns:1fr}}
.prop-img{aspect-ratio:3/2;overflow:hidden;min-height:0;height:auto}
.prop-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.grid-props .prop-body{padding:12px 14px 14px}
.grid-props .prop-price{font-size:1.15rem}
.grid-props h3{font-size:1rem}
.grid-props .prop-body p.muted{font-size:.85rem;margin-bottom:8px}
.grid-props .prop-meta{font-size:.8rem;gap:10px;padding-top:8px}
.grid-props .prop-actions{margin-top:10px;gap:6px}
.grid-props .prop-actions .btn{padding:.45rem .6rem;font-size:.82rem}
/* Owner portal */
.op-month{display:flex;gap:10px;align-items:center;margin:4px 0 14px}
.op-month b{min-width:150px;text-align:center}
.op-list{margin:12px 0 0;padding-left:18px;font-size:.92rem}
.op-list li{margin:3px 0}
.op-lease{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px}
@media print{.portal-top,.no-print,.portal-hint{display:none!important}.portal-body{background:#fff}.portal-card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}}
.portal-mode{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px;margin-bottom:12px}
.portal-mode button{border:0;background:none;padding:.5rem 1rem;border-radius:999px;font:inherit;font-weight:700;color:var(--ink-2);cursor:pointer}
.portal-mode button.active{background:var(--ink);color:#fff}
.op-select{display:none;margin:4px 0 10px;font-weight:700}
@media (max-width:700px){.op-select{display:block}.op-chips{display:none!important}.portal-months .opt{display:none}}
/* Brand logo */
.logo-mark{background:url(../images/logo-mark.png) center/contain no-repeat!important;width:46px!important;height:46px!important;border-radius:0}
.logo-mark svg{display:none}
.logo-full{display:block;height:130px;width:auto;margin:0 auto}
.prop-avail{display:flex;gap:6px;align-items:center;font-size:.85rem;font-weight:700;color:var(--warn);margin:2px 0}
.prop-avail svg{width:15px;height:15px}
.prop-avail.now{color:var(--ok)}
/* Map (admin picker + property page) */
.mp-map{height:300px;border-radius:12px;border:1px solid var(--line);background:#e2e8f0;margin-top:6px;z-index:0}
.mp-status{font-size:.82rem;margin-top:6px}
.mp-find{margin-top:4px}
.mp-suggest{position:absolute;left:0;right:0;top:100%;z-index:50;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:260px;overflow:auto}
.mp-suggest button{display:block;width:100%;text-align:left;border:0;background:none;padding:9px 12px;font:inherit;font-size:.9rem;cursor:pointer;border-bottom:1px solid #f1f5f9}
.mp-suggest button:hover{background:var(--soft)}
.mp-pin span{display:block;width:30px;height:30px;border-radius:50% 50% 50% 0;background:var(--maple);transform:rotate(-45deg);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.pd-map{width:100%;height:340px;border:0;border-radius:12px;display:block}
.pd-loc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.site-header .logo-mark,.admin-top .logo-mark,.portal-top .logo-mark{width:54px!important;height:54px!important}
.logo>span:last-child{font-family:Georgia,"Times New Roman",serif;font-size:1.3rem;letter-spacing:.01em}
.logo small{font-family:"Plus Jakarta Sans",system-ui,sans-serif}
.footer-logo{display:inline-block;background:#fff;border-radius:14px;padding:8px 14px}
.footer-logo img{height:96px;width:auto}
