:root{
  --forest:#0d3d25; --green:#1a5c38; --green-2:#26754b; --mint:#e5f2e9;
  --gold:#c9a84c; --gold-soft:#efd780; --cream:#f4f6f2; --cream-warm:#f6f5ef;
  --ink:#172019; --muted:#718077; --line:#e1e7e2; --white:#fff;
  --red:#c94a4a; --amber:#c47a25; --blue:#2766b1;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline}

/* App shell */
.shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}
.side{position:sticky;top:0;height:100vh;padding:28px 21px 24px;background:var(--forest);color:#fff;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:11px;margin-bottom:45px}
.mark{width:42px;height:42px;display:block;flex:none;object-fit:contain}
.brand b{letter-spacing:.14em;font-size:14px}
.brand small{display:block;color:var(--gold-soft);letter-spacing:.38em;font-size:7px;margin-top:4px}
.side-label{padding-left:12px;color:#789985;font-size:8px;font-weight:800;letter-spacing:.15em;margin-bottom:11px}
.nav{display:grid;gap:5px;margin-top:11px}
.nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:9px;color:#b7c9bd;text-decoration:none;font-size:11px}
.nav a.active{background:#1c5738;color:#fff}
.nav-icon{width:18px;text-align:center;font-size:14px}
.side-foot{margin-top:auto;padding:15px;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:rgba(255,255,255,.05)}
.side-foot strong{display:block;font-size:11px;margin-bottom:4px}
.side-foot p{margin:0 0 12px;color:#96ae9e;font-size:9px;line-height:1.55}
.side-foot button{width:100%;padding:8px;border:1px solid #567764;border-radius:7px;background:transparent;color:#fff;font-size:9px;font-weight:700;cursor:pointer}
.side-foot button:hover{background:rgba(255,255,255,.06)}

/* Top bar */
.main{min-width:0}
.top{height:76px;padding:0 34px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.eyebrow{color:var(--green);font-size:8px;font-weight:800;letter-spacing:.15em}
.top h1{margin:3px 0 0;font:500 21px Georgia,serif}
.user{display:flex;align-items:center;gap:10px}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--mint);color:var(--green);display:grid;place-items:center;font-size:10px;font-weight:800}
.user b{font-size:10px}
.user small{display:block;color:var(--muted);font-size:7px;margin-top:2px}

/* Content */
.content{width:min(1450px,100%);margin:auto;padding:28px 32px 36px}
.intro{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;gap:18px;flex-wrap:wrap}
.intro h2{margin:5px 0;font:500 27px Georgia,serif}
.intro p{margin:0;color:var(--muted);font-size:10px;max-width:540px}
.layout{display:grid;grid-template-columns:1.65fr .75fr;gap:18px;align-items:start}
.column{display:grid;gap:15px}
.panel{padding:19px;background:#fff;border:1px solid var(--line);border-radius:14px}
.panel-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:15px;gap:12px}
.panel h3{margin:4px 0 0;font:500 17px Georgia,serif}
.panel h2{margin:4px 0 0;font:500 17px Georgia,serif}
.link{color:var(--green);font-size:9px;font-weight:750;text-decoration:none}

/* Badges, buttons */
.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:99px;background:var(--mint);color:var(--green);font-size:7px;font-weight:750}
.badge.amber{background:#fdf1df;color:var(--amber)}
.badge.red{background:#fbe9e9;color:var(--red)}
.badge.blue{background:#e7f0fb;color:var(--blue)}
.btn{padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green);font-size:8px;font-weight:750;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.btn:hover{background:#f3f8f4}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff}
.btn.primary:hover{background:var(--forest)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.filters{display:flex;gap:7px}
.filter{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#526057;font-size:8px;cursor:pointer}
.filter.active{background:var(--green);color:#fff}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:18px}
.stat{padding:14px;background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:11px}
.stat-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:17px}
.stat-icon.green{background:var(--mint);color:var(--green)}
.stat-icon.amber{background:#fdf1df;color:var(--amber)}
.stat-icon.red{background:#fbe9e9;color:var(--red)}
.stat-icon.blue{background:#e7f0fb;color:var(--blue)}
.stat label{display:block;color:var(--muted);font-size:9px}
.stat strong{display:inline-block;margin-top:3px;font-size:20px}
.stat small{margin-left:5px;color:#9aa39d;font-size:8px}

/* Hero */
.hero{min-height:182px;border-radius:18px;overflow:hidden;background:linear-gradient(118deg,var(--green),#1c6840 65%,var(--forest));color:#fff;display:grid;grid-template-columns:1.55fr .75fr;margin-bottom:18px}
.hero-copy{padding:28px 32px;display:flex;flex-direction:column;justify-content:center}
.hero-kicker{color:var(--gold-soft);font-size:8px;font-weight:800;letter-spacing:.16em}
.hero h1{margin:8px 0 8px;font-family:Georgia,serif;font-size:28px;font-weight:500}
.hero p{max-width:620px;margin:0;color:#cfe0d5;font-size:11px;line-height:1.7}
.hero-art{position:relative;display:grid;place-items:center;background:rgba(0,0,0,.14);overflow:hidden}
.hero-ring{position:absolute;width:220px;height:220px;border:1px solid rgba(255,255,255,.1);border-radius:50%}
.hero-building{font-size:73px;color:rgba(255,255,255,.2)}
.trust{position:absolute;bottom:16px;padding:7px 11px;border-radius:99px;background:rgba(0,0,0,.18);color:#dbe9df;font-size:8px}
.trust b{color:var(--gold-soft)}

/* Property card */
.property{display:grid;grid-template-columns:34% 1fr;min-height:185px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.property-photo{position:relative;display:grid;place-items:center;background:linear-gradient(145deg,#174c31,var(--forest));color:rgba(255,255,255,.28);font-size:53px}
.property-photo.alt{background:linear-gradient(145deg,#234b39,#173328)}
.live{position:absolute;left:12px;top:12px;padding:5px 8px;border-radius:99px;background:rgba(0,0,0,.23);color:#d8e7dd;font-size:7px;font-weight:800}
.live:before{content:"";display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:#55d68b}
.property-body{padding:19px;display:flex;flex-direction:column;justify-content:center}
.property-title{display:flex;justify-content:space-between;gap:12px}
.property h3{margin:0;font-size:14px}
.location{margin-top:4px;color:var(--muted);font-size:9px}
.progress{height:6px;margin-top:7px;border-radius:99px;background:#edf1ed;overflow:hidden}
.progress span{display:block;height:100%;border-radius:99px;background:var(--green)}
.progress-label{margin-top:20px;color:var(--muted);font-size:8px}
.property-meta{display:flex;gap:55px;margin-top:15px}
.property-meta label{display:block;color:#97a098;font-size:7px}
.property-meta strong{display:block;margin-top:3px;color:#465149;font-size:9px}

/* Forms */
.form{display:grid;gap:13px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field label{display:block;margin-bottom:6px;color:#4f5c53;font-size:8px;font-weight:700}
.field input,.field select,.field textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:8px;background:#fff;font:9px Inter,system-ui;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green-2);box-shadow:0 0 0 3px rgba(38,117,75,.1)}
.field textarea{min-height:86px;resize:vertical}
.upload{padding:17px;border:1px dashed #a9bcaf;border-radius:9px;text-align:center;color:var(--muted);font-size:8px;cursor:pointer}
.submit{padding:12px;border:0;border-radius:8px;background:var(--green);color:#fff;font-size:9px;font-weight:800;cursor:pointer}
.submit:hover{background:var(--forest)}
.success{display:none;padding:10px;border-radius:8px;background:var(--mint);color:var(--green);font-size:8px}
.success.show{display:block}
.errorbox{display:none;padding:10px;border-radius:8px;background:#fbe9e9;color:var(--red);font-size:8px}
.errorbox.show{display:block}

/* Empty & loading states */
.empty{padding:30px;text-align:center;color:var(--muted);font-size:10px;border:1px dashed var(--line);border-radius:12px;background:#fbfcfa}
.loading{padding:24px;text-align:center;color:var(--muted);font-size:10px}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin 0.8s linear infinite;vertical-align:middle;margin-right:8px}
@keyframes spin{to{transform:rotate(360deg)}}

/* Toast */
.toast{position:fixed;right:26px;bottom:26px;z-index:30;padding:13px 16px;color:#fff;background:var(--forest);border-radius:10px;font-size:11px;box-shadow:0 18px 50px rgba(0,0,0,.2);transform:translateY(30px);opacity:0;pointer-events:none;transition:.25s ease;max-width:340px}
.toast.show{transform:translateY(0);opacity:1}
.toast.error{background:var(--red)}

/* Modal */
.modal{display:none;position:fixed;inset:0;background:rgba(5,24,15,.68);z-index:20;place-items:center;padding:30px}
.modal.show{display:grid}
.paper{width:min(760px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:14px;padding:30px;box-shadow:0 30px 90px rgba(0,0,0,.3)}

/* Responsive */
@media(max-width:1000px){
  .shell{grid-template-columns:84px minmax(0,1fr)}
  .side{padding:25px 13px}
  .brand>div:last-child,.side-label,.nav a span:last-child,.side-foot{display:none}
  .brand{justify-content:center}
  .nav a{justify-content:center}
  .layout{grid-template-columns:1fr}
  .hero{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
}
