/* ============================================================
   RENTIVA v2 — Design System
   Cabinet Grotesk + General Sans · Terracotta & Bone palette
   ============================================================ */
@import url('https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@800,500,700,900&f[]=general-sans@400,500,600,700&display=swap');

:root{
  --font-heading:'Cabinet Grotesk',ui-sans-serif,system-ui,sans-serif;
  --font-body:'General Sans',ui-sans-serif,system-ui,sans-serif;

  --c-primary:#D95D39;
  --c-primary-hover:#C04E2B;
  --c-primary-soft:#FCE9E1;
  --c-secondary:#0F380F;
  --c-accent:#F0A202;

  --c-bg:#F9F8F6;
  --c-surface:#FFFFFF;
  --c-surface-hover:#F2EFE9;
  --c-text:#1A1A1A;
  --c-muted:#66635E;
  --c-border:#E5E2DB;
  --c-border-strong:#CFC9BE;

  --c-success:#2D7A5D;
  --c-warning:#F0A202;
  --c-danger:#D03027;
  --c-info:#2E6FB0;

  --r-sm:4px; --r-md:8px; --r-lg:12px; --r-xl:20px; --r-pill:9999px;

  --sh-sm:0 1px 2px rgba(26,26,26,.05);
  --sh-md:0 4px 12px rgba(26,26,26,.08);
  --sh-lg:0 20px 40px rgba(26,26,26,.10);

  --t-fast:150ms cubic-bezier(.4,0,.2,1);
  --t-normal:280ms cubic-bezier(.4,0,.2,1);

  --sidebar-w:240px;
  --topbar-h:64px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font-body);
  background:var(--c-bg);
  color:var(--c-text);
  font-size:15px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit}

h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;letter-spacing:-.02em;margin:0 0 .5rem;color:var(--c-text)}
h1{font-size:2.5rem;line-height:1.1;font-weight:800}
h2{font-size:1.875rem}
h3{font-size:1.375rem}
h4{font-size:1.125rem}

/* ---------- LAYOUT ---------- */
.container{max-width:1280px;margin:0 auto;padding:0 24px}
.container-sm{max-width:960px;margin:0 auto;padding:0 24px}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.35rem;font-weight:600;font-size:.9rem;border-radius:var(--r-pill);border:1px solid transparent;transition:transform var(--t-fast),background var(--t-fast),box-shadow var(--t-fast);cursor:pointer;text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--c-primary);color:#fff}
.btn-primary:hover{background:var(--c-primary-hover);transform:translateY(-1px);box-shadow:var(--sh-md)}
.btn-secondary{background:var(--c-secondary);color:#fff}
.btn-secondary:hover{background:#082508;transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--c-text);border-color:var(--c-border)}
.btn-ghost:hover{background:var(--c-surface-hover)}
.btn-danger{background:var(--c-danger);color:#fff}
.btn-danger:hover{background:#a52620}
.btn-sm{padding:.5rem 1rem;font-size:.82rem}
.btn-lg{padding:.95rem 1.75rem;font-size:1rem}
.btn-block{width:100%}
.btn-saas{border-radius:var(--r-md)}

/* ---------- CARDS ---------- */
.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden;transition:box-shadow var(--t-fast),transform var(--t-fast)}
.card:hover{box-shadow:var(--sh-md)}
.card-body{padding:1.5rem}
.card-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--c-border);display:flex;align-items:center;justify-content:space-between}
.card-title{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;margin:0}

/* ---------- BADGES ---------- */
.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-radius:var(--r-sm);background:var(--c-surface-hover);color:var(--c-text)}
.badge-primary{background:var(--c-primary-soft);color:var(--c-primary-hover)}
.badge-success{background:#DBEFE4;color:var(--c-success)}
.badge-warning{background:#FCEBC7;color:#A07300}
.badge-danger{background:#FBDDDA;color:var(--c-danger)}
.badge-info{background:#DBE7F5;color:var(--c-info)}
.badge-dark{background:var(--c-secondary);color:#fff}

/* ---------- FORMS ---------- */
label{display:block;font-size:.82rem;font-weight:600;color:var(--c-text);margin-bottom:.4rem}
.input,input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=date],input[type=file],select,textarea{
  width:100%;padding:.7rem .9rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);color:var(--c-text);font-size:.92rem;transition:border-color var(--t-fast),box-shadow var(--t-fast)
}
textarea{min-height:100px;resize:vertical}
.input:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(217,93,57,.18)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-group{margin-bottom:1rem}
.form-hint{font-size:.78rem;color:var(--c-muted);margin-top:.35rem}

/* ---------- ALERTS ---------- */
.alert{padding:.85rem 1rem;border-radius:var(--r-md);border-left:4px solid;margin-bottom:1rem;font-size:.9rem}
.alert-success{background:#EEFAF3;border-color:var(--c-success);color:#154C39}
.alert-danger{background:#FDEEEC;border-color:var(--c-danger);color:#6B1815}
.alert-info{background:#EAF2FA;border-color:var(--c-info);color:#1B4A78}
.alert-warning{background:#FEF4E0;border-color:var(--c-warning);color:#6B4B00}

/* ---------- TABLE ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--r-lg);border:1px solid var(--c-border);background:var(--c-surface)}
table.tbl{width:100%;border-collapse:collapse;font-size:.9rem}
table.tbl th{text-align:left;padding:.9rem 1rem;font-weight:500;color:var(--c-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;background:var(--c-bg);border-bottom:1px solid var(--c-border)}
table.tbl td{padding:.85rem 1rem;border-bottom:1px solid var(--c-border);vertical-align:middle}
table.tbl tr:last-child td{border-bottom:none}
table.tbl tbody tr:hover{background:var(--c-surface-hover)}

/* ---------- DASHBOARD SHELL ---------- */
.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}
.sidebar{background:var(--c-surface);border-right:1px solid var(--c-border);padding:1.25rem 0;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:0 1.25rem 1.5rem;border-bottom:1px solid var(--c-border);margin-bottom:1rem}
.sidebar-brand .logo-mark{width:34px;height:34px;background:var(--c-primary);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-heading);font-weight:900;font-size:1.05rem}
.sidebar-brand .logo-text{font-family:var(--font-heading);font-weight:800;font-size:1.2rem;letter-spacing:-.02em}
.sidebar-section{padding:.75rem 1.25rem .25rem;font-size:.7rem;font-weight:600;color:var(--c-muted);text-transform:uppercase;letter-spacing:.08em}
.sidebar a.nav{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;color:var(--c-text);font-size:.9rem;font-weight:500;border-left:3px solid transparent;transition:background var(--t-fast)}
.sidebar a.nav:hover{background:var(--c-surface-hover)}
.sidebar a.nav.active{background:var(--c-primary-soft);border-left-color:var(--c-primary);color:var(--c-primary-hover);font-weight:600}
.sidebar a.nav i{width:18px;height:18px}
.main{display:flex;flex-direction:column;min-width:0}
.topbar{height:var(--topbar-h);background:var(--c-surface);border-bottom:1px solid var(--c-border);display:flex;align-items:center;justify-content:space-between;padding:0 1.75rem;position:sticky;top:0;z-index:20}
.topbar .search{display:flex;align-items:center;gap:.5rem;background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-pill);padding:.45rem .9rem;min-width:280px;color:var(--c-muted)}
.topbar .search input{border:none;background:transparent;padding:0;font-size:.9rem}
.topbar .search input:focus{box-shadow:none}
.topbar-actions{display:flex;align-items:center;gap:.9rem}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--c-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-family:var(--font-heading);font-size:.9rem}
.content{padding:1.75rem;flex:1}
.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}
.page-head h1{font-size:1.75rem;margin:0}
.page-head .sub{color:var(--c-muted);font-size:.9rem;margin-top:.25rem}

/* ---------- KPI GRID ---------- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}
.kpi{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:1.25rem}
.kpi .k-top{display:flex;justify-content:space-between;align-items:center;color:var(--c-muted);font-size:.82rem;font-weight:500;margin-bottom:.75rem}
.kpi .k-icon{width:32px;height:32px;border-radius:var(--r-md);background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center}
.kpi .k-value{font-family:var(--font-heading);font-size:1.8rem;font-weight:800;line-height:1;margin-bottom:.5rem}
.kpi .k-trend{font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:.25rem}
.kpi .k-trend.up{color:var(--c-success)}
.kpi .k-trend.down{color:var(--c-danger)}

/* ---------- QUICK MENU CARDS (dashboard shortcuts) ---------- */
.menu-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}
.menu-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:1.25rem;text-decoration:none;color:var(--c-text);display:flex;flex-direction:column;gap:.6rem;transition:all var(--t-fast);position:relative;overflow:hidden}
.menu-card:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:var(--c-primary)}
.menu-card .mc-icon{width:42px;height:42px;border-radius:12px;background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center;transition:background var(--t-fast)}
.menu-card:hover .mc-icon{background:var(--c-primary);color:#fff}
.menu-card .mc-title{font-family:var(--font-heading);font-weight:700;font-size:1rem;letter-spacing:-.01em}
.menu-card .mc-sub{color:var(--c-muted);font-size:.8rem;line-height:1.4}
.menu-card .mc-arrow{position:absolute;top:1.25rem;right:1.25rem;color:var(--c-muted);opacity:0;transform:translateX(-6px);transition:all var(--t-fast)}
.menu-card:hover .mc-arrow{opacity:1;transform:translateX(0)}
.menu-card .mc-count{position:absolute;top:1.25rem;right:1.25rem;background:var(--c-primary);color:#fff;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:9999px}
.menu-card.mc-alert .mc-icon{background:#FBDDDA;color:var(--c-danger)}
.menu-card.mc-alert:hover .mc-icon{background:var(--c-danger);color:#fff}
.menu-card.mc-success .mc-icon{background:#DBEFE4;color:var(--c-success)}
.menu-card.mc-success:hover .mc-icon{background:var(--c-success);color:#fff}
.menu-card.mc-accent .mc-icon{background:#FCEBC7;color:#A07300}
.menu-card.mc-accent:hover .mc-icon{background:var(--c-accent);color:#fff}

/* ---------- NOTIFICATIONS DROPDOWN ---------- */
.notif-wrap{position:relative}
.notif-bell{background:transparent;border:none;padding:.5rem;cursor:pointer;color:var(--c-muted);position:relative;border-radius:8px;transition:background var(--t-fast)}
.notif-bell:hover{background:var(--c-surface-hover);color:var(--c-text)}
.notif-badge{position:absolute;top:2px;right:2px;background:var(--c-primary);color:#fff;font-size:.65rem;font-weight:700;border-radius:9999px;padding:1px 5px;min-width:16px;text-align:center}
.notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-height:520px;background-color:#FFFFFF;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-lg);z-index:1000;overflow:hidden;display:none;flex-direction:column}
.notif-panel.open{display:flex;animation:notifIn var(--t-normal)}
@keyframes notifIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.notif-head{padding:1rem 1.25rem;border-bottom:1px solid var(--c-border);display:flex;justify-content:space-between;align-items:center}
.notif-head h4{margin:0;font-size:1rem;font-family:var(--font-heading);font-weight:700}
.notif-list{overflow-y:auto;max-height:400px;flex:1}
.notif-item{display:flex;gap:.75rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--c-border);cursor:pointer;transition:background var(--t-fast);text-decoration:none;color:inherit}
.notif-item:hover{background:var(--c-surface-hover)}
.notif-item.unread{background:linear-gradient(90deg, rgba(217,93,57,.06), transparent 60%)}
.notif-item.unread::before{content:"";width:6px;height:6px;background:var(--c-primary);border-radius:50%;margin-top:.5rem;flex:0 0 6px}
.notif-item .ni-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--c-primary-soft);color:var(--c-primary);flex:0 0 34px}
.notif-item.type-success .ni-icon{background:#DBEFE4;color:var(--c-success)}
.notif-item.type-warning .ni-icon{background:#FCEBC7;color:#A07300}
.notif-item.type-danger .ni-icon,.notif-item.type-alert .ni-icon{background:#FBDDDA;color:var(--c-danger)}
.notif-item .ni-body{flex:1;min-width:0}
.notif-item .ni-title{font-weight:600;font-size:.9rem;color:var(--c-text);margin-bottom:.15rem}
.notif-item .ni-msg{color:var(--c-muted);font-size:.82rem;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.notif-item .ni-time{color:var(--c-muted);font-size:.72rem;margin-top:.35rem}
.notif-empty{text-align:center;padding:3rem 1rem;color:var(--c-muted)}
.notif-empty i{width:44px;height:44px;color:var(--c-border-strong);margin-bottom:.75rem}
.notif-foot{padding:.75rem 1.25rem;border-top:1px solid var(--c-border);text-align:center}
@media(max-width:768px){.notif-panel{position:fixed;top:var(--topbar-h);right:0;left:0;width:auto;border-radius:0;max-height:calc(100vh - var(--topbar-h))}}

/* ---------- MARKETPLACE PROPERTY CARD ---------- */
.p-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden;transition:transform var(--t-fast),box-shadow var(--t-fast);display:flex;flex-direction:column}
.p-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}
.p-card .img{height:200px;background:var(--c-surface-hover);position:relative;overflow:hidden}
.p-card .img img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-normal)}
.p-card:hover .img img{transform:scale(1.05)}
.p-card .img .tag{position:absolute;top:12px;left:12px;background:rgba(15,56,15,.9);color:#fff;padding:.3rem .65rem;border-radius:var(--r-pill);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.p-card .img .fav{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.95);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--c-muted);border:none}
.p-card .img .fav:hover{color:var(--c-primary)}
.p-card .body{padding:1.15rem;display:flex;flex-direction:column;flex:1}
.p-card .price{font-family:var(--font-heading);font-size:1.35rem;font-weight:800;color:var(--c-text)}
.p-card .price small{color:var(--c-muted);font-size:.75rem;font-weight:500}
.p-card .title{font-family:var(--font-heading);font-size:1.05rem;font-weight:700;margin:.3rem 0 .25rem;letter-spacing:-.01em}
.p-card .loc{color:var(--c-muted);font-size:.85rem;display:flex;align-items:center;gap:.35rem;margin-bottom:.75rem}
.p-card .meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--c-border)}
.p-card .meta span{font-size:.75rem;color:var(--c-muted);display:inline-flex;align-items:center;gap:.25rem}

/* ---------- MARKETPLACE HERO ---------- */
.mp-hero{position:relative;min-height:520px;color:#fff;overflow:hidden;background:#0F380F}
.mp-hero .bg{position:absolute;inset:0}
.mp-hero .bg img{width:100%;height:100%;object-fit:cover;opacity:.55}
.mp-hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,56,15,.45),rgba(15,56,15,.85))}
.mp-hero .container{position:relative;padding-top:110px;padding-bottom:80px}
.mp-hero h1{font-size:3.5rem;font-weight:800;max-width:820px;line-height:1.05;color:#fff;letter-spacing:-.03em}
.mp-hero p.lead{font-size:1.15rem;max-width:640px;opacity:.9;margin:1rem 0 2rem}
.mp-searchbar{background:#fff;border-radius:var(--r-xl);padding:.85rem;display:flex;gap:.5rem;flex-wrap:wrap;box-shadow:var(--sh-lg);color:var(--c-text);max-width:900px}
.mp-searchbar select,.mp-searchbar input{border:none;background:var(--c-bg);border-radius:var(--r-md);padding:.85rem 1rem;flex:1;min-width:140px}
.mp-searchbar select:focus,.mp-searchbar input:focus{box-shadow:none;background:#fff;border:1px solid var(--c-primary)}
.mp-searchbar .btn{padding:.85rem 1.5rem}

/* ---------- PUBLIC NAVBAR ---------- */
.pnav{background:var(--c-surface);border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:30}
.pnav-inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 0}
.pnav .brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-heading);font-weight:800;font-size:1.35rem;letter-spacing:-.02em}
.pnav .brand .mark{width:34px;height:34px;background:var(--c-primary);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-heading);font-weight:900}
.pnav ul{display:flex;list-style:none;gap:2rem;margin:0;padding:0}
.pnav ul a{font-size:.92rem;font-weight:500;color:var(--c-text);transition:color var(--t-fast)}
.pnav ul a:hover{color:var(--c-primary)}
.pnav .cta{display:flex;gap:.6rem;align-items:center}

/* ---------- FOOTER ---------- */
.pfooter{background:#0F380F;color:#DDE6DA;padding:4rem 0 2rem;margin-top:5rem}
.pfooter h4{color:#fff;font-family:var(--font-heading);font-weight:700;margin-bottom:1rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}
.pfooter a{display:block;padding:.3rem 0;color:#B5C4B0;font-size:.9rem}
.pfooter a:hover{color:#fff}
.pfooter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem}
.pfooter-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding-top:1.5rem;font-size:.85rem;opacity:.75;text-align:center}

/* ---------- UTILS ---------- */
.grid{display:grid}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.flex{display:flex}
.items-center{align-items:center}
.justify-between{justify-content:space-between}
.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}
.p-2{padding:1rem}.p-3{padding:1.5rem}.p-4{padding:2rem}
.text-muted{color:var(--c-muted)}
.text-primary{color:var(--c-primary)}
.text-success{color:var(--c-success)}
.text-danger{color:var(--c-danger)}
.text-sm{font-size:.85rem}
.text-xs{font-size:.75rem}
.text-lg{font-size:1.1rem}
.font-heading{font-family:var(--font-heading)}
.fw-700{font-weight:700}
.rounded{border-radius:var(--r-md)}
.empty-state{text-align:center;padding:3rem 1rem;color:var(--c-muted)}
.empty-state i{width:48px;height:48px;color:var(--c-border-strong);margin-bottom:1rem}

/* ---------- RESPONSIVE ---------- */
.hide-mobile{display:inline}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap table{min-width:640px}

/* Public nav hamburger (hidden on desktop) */
.pnav-toggle{display:none;background:transparent;border:1px solid var(--c-border);border-radius:8px;padding:.55rem .6rem;cursor:pointer;flex-direction:column;gap:4px;width:42px;height:42px;align-items:center;justify-content:center}
.pnav-toggle span{width:22px;height:2px;background:var(--c-secondary);border-radius:2px;transition:transform var(--t-fast),opacity var(--t-fast)}
body.pnav-open .pnav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.pnav-open .pnav-toggle span:nth-child(2){opacity:0}
body.pnav-open .pnav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media(max-width:1024px){
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mp-hero h1{font-size:2.5rem}
  .page-head{flex-wrap:wrap}
}
@media(max-width:768px){
  .hide-mobile{display:none}
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;left:-260px;z-index:40;transition:left var(--t-normal);box-shadow:var(--sh-lg);width:260px;top:0;bottom:0;height:100vh;overflow-y:auto}
  .sidebar.open{left:0}
  body.sidebar-open::after{content:"";position:fixed;inset:0;background:rgba(15,56,15,.5);z-index:35;backdrop-filter:blur(2px)}
  .topbar{padding:0 1rem;gap:.5rem}
  #sidebar-toggle{display:inline-flex !important}
  .topbar .search{min-width:0;flex:1;max-width:none}
  .topbar .search input{font-size:16px}

  /* Public nav — full-width slide-down menu */
  .pnav-toggle{display:flex}
  .pnav .pnav-inner{flex-wrap:wrap;padding:.75rem 1rem;gap:.5rem}
  .pnav ul{display:none;flex-basis:100%;flex-direction:column;padding:0;margin:0;list-style:none;order:99;background:var(--c-surface);border-top:1px solid var(--c-border);margin:0 -1rem}
  .pnav ul li{border-bottom:1px solid var(--c-border-light,var(--c-border))}
  .pnav ul li a{display:block;padding:.85rem 1rem;text-decoration:none;color:var(--c-text)}
  .pnav ul li a:hover{background:var(--c-surface-hover)}
  body.pnav-open .pnav ul{display:flex}
  .pnav .cta{flex-basis:100%;order:100;padding-top:.4rem;display:none;flex-direction:column;gap:.4rem}
  body.pnav-open .pnav .cta{display:flex}
  .pnav .cta .btn{width:100%;justify-content:center}

  .grid-3,.grid-2{grid-template-columns:1fr}
  .mp-hero h1{font-size:2rem}
  .form-row{grid-template-columns:1fr;gap:0}
  .pfooter-grid{grid-template-columns:1fr 1fr}
  .content{padding:1rem}
  h1{font-size:1.5rem}
  h2{font-size:1.35rem}
  .page-head{flex-direction:column;align-items:flex-start;gap:.75rem}
  .page-head > .flex, .page-head > div{width:100%;flex-wrap:wrap}
  .menu-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card.p-3, .card.p-4{padding:1rem}
  .btn.btn-lg{padding:.85rem 1.25rem;font-size:.95rem}
  section.pad{padding:2.5rem 0}
  .section-head{margin-bottom:1.75rem}
  .mp-searchbar{grid-template-columns:1fr}
  .p-card .img{height:170px}
  input,select,textarea{font-size:16px}   /* prevent iOS auto-zoom */
  .tbl th, .tbl td{padding:.6rem .5rem;font-size:.85rem}
  .notif-panel{width:calc(100vw - 2rem);right:-.5rem;max-height:70vh}
  .container{padding-left:1rem;padding-right:1rem}
  /* Force any hard-coded flex/grid to wrap on tiny screens */
  [style*="display:flex"]{flex-wrap:wrap}
  img{max-width:100%;height:auto}
  pre, code{max-width:100%;overflow-x:auto;word-break:break-word}
}
@media(max-width:480px){
  .menu-cards{grid-template-columns:1fr}
  .grid[style*="grid-template-columns"]{grid-template-columns:1fr !important}
  .flex.gap-1{gap:.35rem}
  .stats-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .brand{font-size:1.1rem}
  h1{font-size:1.35rem}
  .page-head .sub{font-size:.85rem}
  .btn{font-size:.85rem;padding:.55rem .85rem}
  .card{border-radius:12px}
  .p-card{border-radius:12px}
}

.verified-badge{display:inline-flex;align-items:center;gap:.25rem;background:linear-gradient(135deg,#0F380F,#1a4d1a);color:#fff;font-size:.7rem;padding:2px 8px;border-radius:20px;margin-left:.4rem;vertical-align:middle;letter-spacing:.03em;font-weight:600}
.verified-badge svg{stroke:#F5B96A}
.p-card .verified-strip{position:absolute;top:8px;left:8px;background:rgba(15,56,15,.92);color:#fff;font-size:.65rem;padding:3px 8px;border-radius:16px;font-weight:600;letter-spacing:.05em;display:flex;align-items:center;gap:.2rem;backdrop-filter:blur(4px)}
.p-card .verified-strip svg{stroke:#F5B96A;width:12px;height:12px}

/* ---------- SECTIONS ---------- */
section.pad{padding:5rem 0}
.section-head{max-width:720px;margin-bottom:3rem}
.section-head .eyebrow{display:inline-block;background:var(--c-primary-soft);color:var(--c-primary-hover);padding:.3rem .75rem;border-radius:var(--r-pill);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}

/* ---------- AUTH ---------- */
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.auth-hero{background:linear-gradient(160deg,var(--c-secondary),#1a4d1a);color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth-hero::before{content:"";position:absolute;width:400px;height:400px;background:var(--c-primary);border-radius:50%;top:-100px;right:-100px;opacity:.15;filter:blur(80px)}
.auth-hero h2{color:#fff;font-size:2.5rem;line-height:1.1;position:relative}
.auth-hero p{opacity:.9;position:relative;max-width:400px}
.auth-form{padding:3rem;display:flex;align-items:center;justify-content:center;background:var(--c-bg)}
.auth-form .box{width:100%;max-width:420px}
@media(max-width:900px){.auth-wrap{grid-template-columns:1fr}.auth-hero{display:none}}


/* =====================================================================
   v1.8.0 — Phase 3 UI polish + responsive sweep (Tasks 3 & 12)
   Non-destructive additions only — no existing rule is overridden here.
   ===================================================================== */

/* Trust bar strip (homepage) */
.trust-bar{background:var(--c-surface);border-top:1px solid var(--c-border);border-bottom:1px solid var(--c-border);padding:1.25rem 0}
.trust-inner{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:.75rem;color:#333;font-size:.9rem}
.trust-item i{width:22px;height:22px;color:var(--c-primary);flex-shrink:0}
.trust-item strong{display:block;font-weight:700;font-size:.9rem;line-height:1.1}
.trust-item span{display:block;font-size:.75rem;color:var(--c-muted)}
@media(max-width:768px){
  .trust-inner{gap:1rem}
  .trust-item{flex:1 1 45%;min-width:0}
  .trust-item strong{font-size:.85rem}
}
@media(max-width:480px){
  .trust-item{flex:1 1 100%}
}

/* Empty states — friendlier + consistent */
.empty-state{padding:2.5rem 1rem;text-align:center;color:var(--c-muted);border:1px dashed var(--c-border);border-radius:12px;background:var(--c-surface)}
.empty-state i{width:36px;height:36px;color:var(--c-primary);margin-bottom:.5rem;opacity:.7}
.empty-state > *{margin-top:.35rem}

/* Buttons — subtle hover lift */
.btn-saas{transition:transform .12s ease, box-shadow .12s ease, background .15s ease, color .15s ease}
.btn-saas:hover:not([disabled]){transform:translateY(-1px)}
.btn-primary.btn-saas:hover:not([disabled]){box-shadow:0 8px 20px -8px rgba(217,93,57,.45)}

/* Cards — modernise radius + hover for menu cards */
.menu-card{transition:transform .15s ease, box-shadow .15s ease}
.menu-card:hover{transform:translateY(-3px);box-shadow:0 16px 28px -18px rgba(15,56,15,.18)}

/* Tables — horizontal-scroll wrap so nothing overflows on mobile */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--c-border);border-radius:12px;background:var(--c-surface)}
.table-wrap table{min-width:640px}
@media(max-width:640px){
  .table-wrap{border-radius:8px}
  .table-wrap table{min-width:100%}
  .tbl th, .tbl td{white-space:nowrap}
  /* Allow first cell to wrap so titles don't force a 2×-width row */
  .tbl tbody tr td:first-child{white-space:normal}
}

/* Page head — tidy on mobile */
@media(max-width:640px){
  .page-head{padding:0 .25rem}
  .page-head h1{font-size:1.35rem}
  .page-head .sub{font-size:.85rem}
}

/* Forms — stack cleanly on mobile */
@media(max-width:640px){
  .form-row{grid-template-columns:1fr !important;gap:.5rem}
  .form-group input, .form-group select, .form-group textarea{width:100%}
}

/* Marketplace hero search — always usable on phones */
@media(max-width:640px){
  .mp-searchbar{grid-template-columns:1fr;gap:.5rem;padding:1rem}
  .mp-searchbar select, .mp-searchbar input, .mp-searchbar button{width:100%}
}

/* Sticky footer save bar (used in Homepage CMS) shouldn't overlap on phones */
@media(max-width:640px){
  form[data-testid="hc-form"] > div[style*="position:sticky"]{position:static !important;flex-direction:column;gap:.5rem}
  form[data-testid="hc-form"] > div[style*="position:sticky"] .btn{width:100%;justify-content:center}
}

/* Alerts — softer palette */
.alert{border-radius:10px;padding:.85rem 1rem;font-size:.92rem;margin-bottom:1rem;border:1px solid transparent}
.alert-success{background:#DBEFE4;color:#0F380F;border-color:#B7DDC4}
.alert-danger {background:#FBDDDA;color:#8A1F1F;border-color:#F3B7B0}
.alert-warn   {background:#FCEBC7;color:#7a5b00;border-color:#F1D896}
.alert-info   {background:#F0F7FF;color:#1a4d7a;border-color:#C7DBEE}

/* Badges — consistent padding */
.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;border-radius:999px;font-size:.7rem;font-weight:600;background:var(--c-border);color:var(--c-text)}
.badge-primary{background:var(--c-primary-soft);color:var(--c-primary-hover)}
.badge-success{background:#DBEFE4;color:#0F380F}
.badge-warning{background:#FCEBC7;color:#7a5b00}
.badge-danger {background:#FBDDDA;color:#8A1F1F}

/* Typography rhythm */
h1,h2,h3{letter-spacing:-.01em}
h1{font-size:clamp(1.6rem, 3.5vw, 2.4rem)}

/* Kpi grid — squeeze more nicely on narrow screens */
@media(max-width:640px){
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
  .kpi{padding:.9rem}
  .kpi .k-value{font-size:1.35rem}
}
@media(max-width:400px){
  .kpi-grid{grid-template-columns:1fr}
}

/* Public footer — 2-col on tablets, 1-col on phones */
@media(max-width:640px){ .pfooter-grid{grid-template-columns:1fr} }

/* Prevent stray horizontal scroll globally */
html, body{overflow-x:hidden}


/* =====================================================================
   v1.8.1 · Extra mobile responsiveness hardening (Issue 5 follow-up)
   ===================================================================== */

/* Force any inline 2-column grid to stack on phones */
@media(max-width:768px){
  .grid[style*="grid-template-columns:1fr 1fr"],
  .grid[style*="grid-template-columns: 1fr 1fr"],
  .grid[style*="grid-template-columns:2fr 1fr"],
  .grid[style*="grid-template-columns: 2fr 1fr"],
  .grid[style*="grid-template-columns:1.4fr 1fr"],
  .grid[style*="grid-template-columns: 1.4fr 1fr"],
  .grid[style*="grid-template-columns:1fr 1.4fr"],
  .grid[style*="grid-template-columns: 1fr 1.4fr"],
  .grid[style*="grid-template-columns:220px 1fr"],
  .grid[style*="grid-template-columns: 220px 1fr"],
  .grid[style*="grid-template-columns:320px 1fr"],
  .grid[style*="grid-template-columns: 320px 1fr"],
  .grid[style*="grid-template-columns:360px 1fr"],
  .grid[style*="grid-template-columns: 360px 1fr"]{
    grid-template-columns:1fr !important;
    gap:1rem !important;
  }
  /* File inputs never wider than their card */
  input[type="file"]{max-width:100%;width:100%}
  /* Photo thumbnails inside property detail card */
  [data-testid="photos-card"] img{max-width:100%;height:auto}
  .page-head{align-items:stretch}
  .page-head > div{width:100%}
  .page-head > div:last-child{display:flex;flex-wrap:wrap;gap:.5rem}
  .page-head > div:last-child .btn{flex:1 1 auto;justify-content:center}
}

/* =====================================================================
   v1.8.4 — Property Detail: bulletproof mobile stack (Issue 1 v2)
   Root cause of the residual mobile overflow was CSS Grid's default
   `min-width: auto` on grid items — long content (file input intrinsic
   width, long titles) forced a track wider than the viewport even when
   grid-template-columns collapsed to 1fr. The rule below explicitly
   sets `min-width: 0` on the Property Detail grid children and uses a
   dedicated class instead of relying on attribute selectors.
   ===================================================================== */
.prop-detail-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem;align-items:start}
.prop-detail-grid > .prop-detail-col{min-width:0}                 /* the fix */
.prop-detail-grid .card{max-width:100%;overflow:hidden}
.prop-detail-grid input[type="file"]{max-width:100%;width:100%;min-width:0}
.prop-detail-grid h1,.prop-detail-grid h2,.prop-detail-grid h3,.prop-detail-grid h4{overflow-wrap:break-word;word-break:break-word}
.prop-detail-grid table{max-width:100%}
@media(max-width:900px){
  .prop-detail-grid{grid-template-columns:1fr !important;gap:1rem !important}
}
@media(max-width:640px){
  .prop-detail-grid .card{border-radius:12px}
  .prop-detail-grid .card > .p-3{padding:1rem}
  /* Long floor/unit tables: horizontal scroll inside the card only */
  .prop-detail-grid table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  /* Photos thumb grid → smaller tiles on small screens */
  [data-testid="photos-card"] > div[style*="repeat(auto-fill,minmax(80px"]{grid-template-columns:repeat(auto-fill,minmax(64px,1fr)) !important}
  /* Long h1 in .page-head must wrap on mobile */
  .page-head h1{word-break:break-word;overflow-wrap:break-word;font-size:1.35rem;line-height:1.2}
}


/* CMS page layout — collapse rail below list on mobile */
@media(max-width:900px){
  [data-testid="cms-editor"]{margin-top:1rem}
  [data-testid="cm-detail"]{margin-top:1rem}
}

/* Property moderation form on detail page — stack buttons */
@media(max-width:640px){
  [data-testid="prop-moderation"] form{width:100%;flex-direction:column;align-items:stretch !important}
  [data-testid="prop-moderation"] form input[type="text"]{width:100%}
  [data-testid="prop-moderation"] form .btn{width:100%;justify-content:center}
}

/* Cards should never overflow their parent */
.card{max-width:100%;overflow-wrap:break-word;word-break:break-word}
.text-muted,.text-sm,.text-xs,td,.fw-700{word-break:break-word}

/* Pricing page cards centered on mobile */
@media(max-width:640px){
  .pricing-grid{padding:0 .5rem}
  .pricing-card{max-width:420px;margin:0 auto}
  .pricing-toggle{width:100%;justify-content:center}
}

/* Landlord dashboard menu grid → 1 col on very narrow phones */
@media(max-width:420px){
  .menu-cards{grid-template-columns:1fr !important}
}

/* Sidebar toggle: fatter tap zone + brighter nav on phones */
@media(max-width:768px){
  #sidebar-toggle{display:inline-flex !important;padding:.5rem .7rem !important}
  .sidebar a.nav{padding:.75rem 1.25rem;font-size:.95rem}
}

/* Homepage — hero + trust bar tighter on small phones */
@media(max-width:480px){
  .mp-hero{min-height:auto;padding:2.5rem 0}
  .mp-hero h1{font-size:1.7rem;line-height:1.15}
  .mp-hero .lead{font-size:.92rem}
  .trust-bar{padding:.75rem 0}
  .trust-item{gap:.5rem}
}

/* Filters row — ensure inputs wrap on phones */
@media(max-width:640px){
  [data-testid="prop-filters"] form,
  [data-testid="cm-filter"] form,
  [data-testid="pr-search-card"] form{flex-direction:column !important;align-items:stretch !important}
  [data-testid="prop-filters"] form > div,
  [data-testid="cm-filter"] form > select,
  [data-testid="pr-search-card"] form > input{width:100% !important;min-width:0 !important}
  [data-testid="prop-filters"] form .btn,
  [data-testid="cm-filter"] form .btn,
  [data-testid="pr-search-card"] form .btn{width:100%;justify-content:center}
}

/* Page-head sub text spacing on mobile */
@media(max-width:640px){ .page-head h1{margin:0} .page-head .sub{margin-top:.15rem} }
@media(max-width:480px){ .page-head .btn{white-space:nowrap;font-size:.85rem} }

/* Public nav on tablet: brand + hamburger, no overlap */
@media(max-width:900px){
  .pnav .pnav-inner{gap:.35rem}
  .pnav .brand{font-size:1rem}
}

/* ============================================================
   v1.9.4 — Premium Home Page redesign (additive only)
   Scoped classes prefixed .hp- so they never collide with the
   existing marketplace / dashboard rules above.
   ============================================================ */
.hp-hero{position:relative;background:linear-gradient(180deg,#F9F8F6 0%,#F2EFE9 100%);overflow:hidden;padding:5rem 0 4rem}
.hp-hero::before{content:"";position:absolute;top:-140px;right:-140px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(217,93,57,.22),transparent 70%);filter:blur(30px);pointer-events:none}
.hp-hero::after{content:"";position:absolute;bottom:-180px;left:-180px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(15,56,15,.14),transparent 70%);filter:blur(40px);pointer-events:none}
.hp-hero .container{position:relative;z-index:1}
.hp-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:3.5rem;align-items:center}
.hp-hero-copy .hp-eyebrow{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .85rem;background:var(--c-primary-soft);color:var(--c-primary-hover);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:9999px;margin-bottom:1.25rem}
.hp-hero-copy .hp-eyebrow .hp-dot{width:6px;height:6px;background:var(--c-primary);border-radius:50%;animation:hp-pulse 2s infinite}
@keyframes hp-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hp-hero-copy h1{font-size:clamp(2.25rem,5vw,3.75rem);line-height:1.05;letter-spacing:-.03em;margin:0 0 1.15rem}
.hp-hero-copy h1 .hp-accent{color:var(--c-primary);position:relative;white-space:nowrap}
.hp-hero-copy h1 .hp-accent::after{content:"";position:absolute;left:0;right:0;bottom:-.05em;height:.25em;background:var(--c-primary-soft);z-index:-1;border-radius:9999px}
.hp-hero-copy .hp-lead{font-size:1.1rem;color:var(--c-muted);line-height:1.65;max-width:540px;margin:0 0 1.75rem}
.hp-hero-cta{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.75rem}
.hp-hero-cta .btn-primary{padding:.95rem 1.75rem;font-size:1rem}
.hp-hero-signals{display:flex;gap:1.75rem;flex-wrap:wrap;font-size:.85rem;color:var(--c-muted)}
.hp-hero-signals span{display:inline-flex;align-items:center;gap:.4rem}
.hp-hero-signals i{color:var(--c-success);width:16px;height:16px}
.hp-hero-search{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-xl);padding:.5rem;display:grid;grid-template-columns:1.1fr 1fr 1fr auto;gap:.35rem;box-shadow:var(--sh-md);margin-bottom:1.5rem;max-width:640px}
.hp-hero-search select{border:none;background:transparent;padding:.75rem .9rem;font-size:.88rem;color:var(--c-text);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2366635E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:1.6rem}
.hp-hero-search select:focus{box-shadow:none;background-color:var(--c-surface-hover)}
.hp-hero-search button{border-radius:var(--r-md);padding:.75rem 1.25rem}
@media(max-width:640px){.hp-hero-search{grid-template-columns:1fr 1fr;gap:.5rem;padding:.75rem}.hp-hero-search button{grid-column:span 2}}

/* Hero dashboard preview (real components inside a browser chrome) */
.hp-hero-visual{position:relative}
.hp-browser{background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:16px;box-shadow:0 30px 80px rgba(26,26,26,.18),0 8px 20px rgba(26,26,26,.06);overflow:hidden;transform:perspective(1400px) rotateY(-6deg) rotateX(2deg);transition:transform .5s cubic-bezier(.4,0,.2,1)}
.hp-browser:hover{transform:perspective(1400px) rotateY(-2deg) rotateX(0deg)}
.hp-browser-bar{display:flex;align-items:center;gap:.4rem;padding:.65rem .9rem;background:#F2EFE9;border-bottom:1px solid var(--c-border)}
.hp-browser-bar .dot{width:11px;height:11px;border-radius:50%}
.hp-browser-bar .dot.r{background:#ff6058}.hp-browser-bar .dot.y{background:#ffc02e}.hp-browser-bar .dot.g{background:#28c840}
.hp-browser-bar .url{flex:1;margin-left:.75rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:9999px;padding:.28rem .8rem;font-size:.72rem;color:var(--c-muted);text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.hp-preview-body{padding:1.5rem;background:var(--c-bg);min-height:400px}

/* Floating badges on hero visual */
.hp-float{position:absolute;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:.75rem 1rem;box-shadow:var(--sh-lg);display:flex;gap:.75rem;align-items:center;animation:hp-float 4s ease-in-out infinite}
@keyframes hp-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.hp-float .hp-float-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hp-float .hp-float-icon.g{background:#DBEFE4;color:var(--c-success)}
.hp-float .hp-float-icon.o{background:var(--c-primary-soft);color:var(--c-primary)}
.hp-float .hp-float-title{font-size:.78rem;color:var(--c-muted)}
.hp-float .hp-float-val{font-family:var(--font-heading);font-weight:800;font-size:1rem;color:var(--c-text)}
.hp-float-1{top:16%;left:-40px;animation-delay:0s}
.hp-float-2{bottom:14%;right:-30px;animation-delay:1.5s}

/* Small dashboard mini components used inside previews */
.hp-mini-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem}
.hp-mini-kpi{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);padding:.7rem}
.hp-mini-kpi .lbl{font-size:.62rem;color:var(--c-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.hp-mini-kpi .val{font-family:var(--font-heading);font-weight:800;font-size:1.05rem;color:var(--c-text);margin-top:.15rem}
.hp-mini-kpi.up{background:linear-gradient(135deg,#DBEFE4,#EEFAF3);border-color:#B7DCC6}
.hp-mini-kpi.up .val{color:var(--c-success)}
.hp-mini-kpi.warn{background:linear-gradient(135deg,var(--c-primary-soft),#FDF3EE);border-color:#F1C5AF}
.hp-mini-kpi.warn .val{color:var(--c-primary-hover)}
.hp-mini-menu{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.hp-mini-menu .m{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);padding:.7rem .6rem;text-align:center;position:relative}
.hp-mini-menu .m .ic{width:30px;height:30px;border-radius:8px;background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center;margin:0 auto .35rem}
.hp-mini-menu .m .ic.g{background:#DBEFE4;color:var(--c-success)}
.hp-mini-menu .m .ic.b{background:#DBE7F5;color:var(--c-info)}
.hp-mini-menu .m .ic.a{background:#FCEBC7;color:#A07300}
.hp-mini-menu .m .t{font-size:.7rem;font-weight:700;color:var(--c-text);line-height:1.15}
.hp-mini-menu .m .badge-count{position:absolute;top:5px;right:6px;background:var(--c-primary);color:#fff;font-size:.55rem;font-weight:700;padding:0 5px;border-radius:9999px}

/* "See it in action" section */
.hp-showcase{padding:5rem 0}
.hp-showcase-tabs{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin:0 0 2rem;padding:.4rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:9999px;width:fit-content;margin-left:auto;margin-right:auto;box-shadow:var(--sh-sm)}
.hp-showcase-tab{border:none;background:transparent;padding:.6rem 1.2rem;font-family:var(--font-body);font-weight:600;font-size:.88rem;color:var(--c-muted);border-radius:9999px;cursor:pointer;transition:all var(--t-fast);display:inline-flex;align-items:center;gap:.4rem}
.hp-showcase-tab i{width:16px;height:16px}
.hp-showcase-tab.is-active{background:var(--c-primary);color:#fff;box-shadow:0 6px 14px rgba(217,93,57,.28)}
.hp-showcase-tab:not(.is-active):hover{background:var(--c-surface-hover);color:var(--c-text)}
.hp-showcase-panels{position:relative;margin-top:1rem}
.hp-showcase-panel{display:none;animation:hp-fade .35s ease}
.hp-showcase-panel.is-active{display:block}
@keyframes hp-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.hp-showcase-panel .hp-browser{transform:none;margin:0 auto;max-width:1080px}
.hp-showcase-panel .hp-preview-body{padding:1.75rem;min-height:520px}

/* Preview: table (rent management) */
.hp-preview-table{width:100%;border-collapse:collapse;font-size:.82rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden}
.hp-preview-table th{background:var(--c-bg);text-align:left;padding:.65rem .9rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--c-muted);border-bottom:1px solid var(--c-border)}
.hp-preview-table td{padding:.7rem .9rem;border-bottom:1px solid var(--c-border);color:var(--c-text)}
.hp-preview-table tr:last-child td{border-bottom:none}
.hp-preview-table tr:hover td{background:var(--c-surface-hover)}

/* Preview: notification list */
.hp-notif{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);padding:.5rem}
.hp-notif-item{display:flex;gap:.75rem;padding:.65rem;border-radius:var(--r-sm);align-items:flex-start}
.hp-notif-item:hover{background:var(--c-surface-hover)}
.hp-notif-item .ic{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hp-notif-item .ic.g{background:#DBEFE4;color:var(--c-success)}
.hp-notif-item .ic.o{background:var(--c-primary-soft);color:var(--c-primary)}
.hp-notif-item .ic.b{background:#DBE7F5;color:var(--c-info)}
.hp-notif-item .ic.a{background:#FCEBC7;color:#A07300}
.hp-notif-item .t{font-weight:700;font-size:.85rem;color:var(--c-text);margin-bottom:2px}
.hp-notif-item .d{font-size:.78rem;color:var(--c-muted);line-height:1.4}
.hp-notif-item .time{font-size:.7rem;color:var(--c-muted);margin-left:auto;white-space:nowrap;flex-shrink:0}

/* Preview: chart bars */
.hp-chart{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);padding:1rem}
.hp-chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.hp-chart-head .ttl{font-family:var(--font-heading);font-weight:700;font-size:.95rem}
.hp-chart-head .val{font-family:var(--font-heading);font-weight:800;font-size:1.4rem;color:var(--c-success)}
.hp-chart-bars{display:flex;align-items:flex-end;gap:.5rem;height:110px;padding-top:.5rem}
.hp-chart-bar{flex:1;background:linear-gradient(180deg,var(--c-primary),#F0A377);border-radius:6px 6px 0 0;position:relative;transition:transform var(--t-fast);animation:hp-bar-grow .8s cubic-bezier(.4,0,.2,1) both}
@keyframes hp-bar-grow{from{transform:scaleY(0);transform-origin:bottom}to{transform:scaleY(1)}}
.hp-chart-bar:nth-child(1){animation-delay:.05s}
.hp-chart-bar:nth-child(2){animation-delay:.1s}
.hp-chart-bar:nth-child(3){animation-delay:.15s}
.hp-chart-bar:nth-child(4){animation-delay:.2s}
.hp-chart-bar:nth-child(5){animation-delay:.25s}
.hp-chart-bar:nth-child(6){animation-delay:.3s}
.hp-chart-bar.paid{background:linear-gradient(180deg,var(--c-success),#5AB08F)}
.hp-chart-labels{display:flex;gap:.5rem;margin-top:.5rem;font-size:.68rem;color:var(--c-muted);text-align:center}
.hp-chart-labels span{flex:1}

/* Security section */
.hp-security{padding:5rem 0;background:linear-gradient(180deg,var(--c-secondary) 0%,#082508 100%);color:#fff;position:relative;overflow:hidden}
.hp-security::before{content:"";position:absolute;top:-100px;right:-100px;width:400px;height:400px;background:radial-gradient(circle,rgba(217,93,57,.25),transparent 60%);filter:blur(40px)}
.hp-security .container{position:relative;z-index:1}
.hp-security h2{color:#fff}
.hp-security .hp-eyebrow{background:rgba(255,255,255,.1);color:#F0A377;border:1px solid rgba(255,255,255,.15)}
.hp-security-lead{color:rgba(255,255,255,.72);max-width:640px;margin:1rem auto 3rem;font-size:1.05rem;line-height:1.65;text-align:center}
.hp-security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;max-width:1120px;margin:0 auto}
.hp-security-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);padding:1.5rem;transition:all var(--t-normal);backdrop-filter:blur(6px)}
.hp-security-card:hover{background:rgba(255,255,255,.08);border-color:var(--c-primary);transform:translateY(-3px)}
.hp-security-card .hp-sec-icon{width:44px;height:44px;border-radius:12px;background:var(--c-primary);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.hp-security-card h4{color:#fff;margin:0 0 .4rem;font-size:1.05rem}
.hp-security-card p{color:rgba(255,255,255,.68);font-size:.88rem;line-height:1.55;margin:0}

/* Scroll reveal — used by IntersectionObserver in the footer.
   Content is visible by default (SEO / no-JS friendly); JS only adds
   an entrance animation when the element scrolls into view. */
.hp-reveal{opacity:1;transform:none;transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}
.hp-reveal.hp-reveal-armed{opacity:0;transform:translateY(24px)}
.hp-reveal.is-visible{opacity:1;transform:translateY(0)}
.hp-reveal-delay-1{transition-delay:.08s}
.hp-reveal-delay-2{transition-delay:.16s}
.hp-reveal-delay-3{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){
  .hp-reveal,.hp-browser,.hp-float,.hp-chart-bar{transition:none;animation:none;opacity:1;transform:none}
}

/* Responsive */
@media(max-width:900px){
  .hp-hero{padding:3rem 0 2.5rem}
  .hp-hero-grid{grid-template-columns:1fr;gap:2.5rem}
  .hp-hero-visual{margin:0 -8px}
  .hp-browser{transform:none}
  .hp-float-1{top:8%;left:8px}
  .hp-float-2{bottom:8%;right:8px}
  .hp-mini-kpis{grid-template-columns:repeat(2,1fr)}
  .hp-mini-menu{grid-template-columns:repeat(4,1fr)}
  .hp-showcase{padding:3rem 0}
  .hp-security{padding:3rem 0}
}
@media(max-width:520px){
  .hp-mini-menu{grid-template-columns:repeat(2,1fr)}
  .hp-preview-body{padding:1rem}
  .hp-float{padding:.55rem .7rem}
  .hp-float .hp-float-icon{width:32px;height:32px}
  .hp-float .hp-float-val{font-size:.9rem}
}

/* v1.9.4 — screenshot slot inside browser chrome (uses real dashboard PNGs) */
.hp-preview-body.hp-shot{padding:0;background:var(--c-surface);min-height:0;overflow:hidden}
.hp-preview-body.hp-shot img{display:block;width:100%;height:auto;transform:scale(1.001)} /* tiny scale = hides antialias seam */
.hp-preview-body.hp-shot::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -40px 40px -30px rgba(15,56,15,.06)}
.hp-showcase-panel .hp-browser{position:relative}
