/* ==========================================================================
   Credai Realty — Design System
   Editorial warmth for the public marketplace; tighter data-console
   register for builder/admin tooling. Self-hosted fonts (no CDN).

   Breakpoint system (all responsive rules live in ONE block per tier,
   at the end of the file, in this order — phone, tablet, desktop-wide —
   so nothing downstream can silently override an earlier responsive rule):
     ≤599px    phone     single column, card-based data
     600–959px tablet    two-column grids, compact tables regain from cards
     ≥960px    desktop   current design, unchanged
     ≥1280px   wide      slightly more breathing room
   ========================================================================== */

@font-face{
  font-family:'Fraunces';
  src:url('../fonts/Fraunces-Regular.ttf') format('truetype');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Fraunces';
  src:url('../fonts/Fraunces-SemiBold.ttf') format('truetype');
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Fraunces';
  src:url('../fonts/Fraunces-ExtraBold.ttf') format('truetype');
  font-weight:800; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts/Inter-Regular.ttf') format('truetype');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts/Inter-Medium.ttf') format('truetype');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts/Inter-SemiBold.ttf') format('truetype');
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts/Inter-Bold.ttf') format('truetype');
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'JetBrains Mono';
  src:url('../fonts/JetBrainsMono-Medium.ttf') format('truetype');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'JetBrains Mono';
  src:url('../fonts/JetBrainsMono-Bold.ttf') format('truetype');
  font-weight:700; font-style:normal; font-display:swap;
}

/* ---------- Tokens ---------- */
:root{
  --paper:#faf7f1;
  --surface:#ffffff;
  --surface-sunk:#f3ede1;
  --ink:#1c1a22;
  --ink-soft:#6b6458;
  --ink-faint:#a39a89;
  --line:#e6ddcc;
  --line-strong:#d8cbb0;

  --brand:#c1552f;
  --brand-deep:#8a3a1e;
  --brand-soft:#f5e3d7;
  --brand-wash:#fbf1ea;

  --gold:#a97e2f;
  --gold-soft:#f2e8d2;

  --good:#3f6b4c;
  --good-soft:#e2ead9;
  --warn:#a97e2f;
  --warn-soft:#f2e8d2;
  --bad:#a03a3a;
  --bad-soft:#f5e0dd;

  --builder-accent:#31577a;
  --builder-soft:#e3ebf1;
  --admin-accent:#5a4a75;
  --admin-soft:#eae3f1;

  --shadow-sm:0 1px 2px rgba(28,26,34,.06);
  --shadow-md:0 8px 24px -8px rgba(28,26,34,.16);
  --shadow-lg:0 24px 64px -20px rgba(28,26,34,.28);

  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:20px;

  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Inter', -apple-system, 'Segoe UI', sans-serif;
  --font-mono:'JetBrains Mono', ui-monospace, monospace;

  --container:1180px;
  --touch:44px; /* minimum touch target */
}

@media (prefers-color-scheme: dark){
  :root{
    --paper:#17151c;
    --surface:#211e27;
    --surface-sunk:#1b1920;
    --ink:#f2ede4;
    --ink-soft:#b3a99a;
    --ink-faint:#7c7365;
    --line:#37323b;
    --line-strong:#463f49;
    --brand:#e07a4f;
    --brand-deep:#f0997a;
    --brand-soft:#3a2721;
    --brand-wash:#2a2019;
    --gold:#d1ac66;
    --gold-soft:#332a18;
    --good:#7fb08e;
    --good-soft:#20301f;
    --warn:#d1ac66;
    --warn-soft:#332a18;
    --bad:#e08080;
    --bad-soft:#3a2021;
    --builder-accent:#7ea6cf;
    --builder-soft:#212b38;
    --admin-accent:#b09fd6;
    --admin-soft:#2a2436;
  }
}
:root[data-theme="dark"]{
  --paper:#17151c; --surface:#211e27; --surface-sunk:#1b1920;
  --ink:#f2ede4; --ink-soft:#b3a99a; --ink-faint:#7c7365;
  --line:#37323b; --line-strong:#463f49;
  --brand:#e07a4f; --brand-deep:#f0997a; --brand-soft:#3a2721; --brand-wash:#2a2019;
  --gold:#d1ac66; --gold-soft:#332a18;
  --good:#7fb08e; --good-soft:#20301f; --warn:#d1ac66; --warn-soft:#332a18;
  --bad:#e08080; --bad-soft:#3a2021;
  --builder-accent:#7ea6cf; --builder-soft:#212b38;
  --admin-accent:#b09fd6; --admin-soft:#2a2436;
}
:root[data-theme="light"]{
  --paper:#faf7f1; --surface:#ffffff; --surface-sunk:#f3ede1;
  --ink:#1c1a22; --ink-soft:#6b6458; --ink-faint:#a39a89;
  --line:#e6ddcc; --line-strong:#d8cbb0;
  --brand:#c1552f; --brand-deep:#8a3a1e; --brand-soft:#f5e3d7; --brand-wash:#fbf1ea;
  --gold:#a97e2f; --gold-soft:#f2e8d2;
  --good:#3f6b4c; --good-soft:#e2ead9; --warn:#a97e2f; --warn-soft:#f2e8d2;
  --bad:#a03a3a; --bad-soft:#f5e0dd;
  --builder-accent:#31577a; --builder-soft:#e3ebf1;
  --admin-accent:#5a4a75; --admin-soft:#eae3f1;
}

/* ---------- Reset & base ---------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0;max-width:100%}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.015em;text-wrap:balance;margin:0}
::selection{background:var(--brand-soft);color:var(--brand-deep)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* ---------- Header ---------- */
.site-header{
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:sticky; top:0; z-index:20;
  backdrop-filter:blur(8px);
}
.site-header__inner{
  max-width:var(--container);margin:0 auto;padding:18px 28px;
  display:flex;align-items:center;gap:40px;
}
.brand{
  font-family:var(--font-display);font-weight:800;font-size:23px;
  color:var(--ink);letter-spacing:-.01em;
  display:flex;align-items:center;gap:10px;
}
.brand:hover{text-decoration:none}
.brand::after{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brand);margin-left:2px;vertical-align:super}
.brand__credai{height:22px;width:auto;display:block;border-left:1px solid var(--line);padding-left:10px}
.main-nav{display:flex;gap:28px;flex:1}
.main-nav a{
  color:var(--ink-soft);font-size:14px;font-weight:500;
  padding:6px 0;border-bottom:2px solid transparent;
}
.main-nav a:hover{color:var(--ink);text-decoration:none}
.account-nav{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--ink-soft)}
.account-nav__user{font-weight:500;color:var(--ink)}

/* ---------- Mobile nav toggle (hamburger) ---------- */
.nav-toggle-checkbox{position:absolute;opacity:0;pointer-events:none}
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:4px;
  width:var(--touch);height:var(--touch);cursor:pointer;flex-shrink:0;
}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s ease, opacity .2s ease;margin:0 auto}
.mobile-nav{display:none}
.nav-scrim{display:none}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 20px;border-radius:99px;min-height:var(--touch);
  font-family:var(--font-body);font-size:14px;font-weight:600;
  border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);
  cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover{text-decoration:none;box-shadow:var(--shadow-sm)}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--brand);border-color:var(--brand);color:#fff8f3}
.btn--primary:hover{background:var(--brand-deep);border-color:var(--brand-deep)}
.btn--ghost{background:transparent;border-color:var(--line-strong)}
.btn--small{padding:6px 14px;font-size:12.5px;border-radius:8px;min-height:36px}
.btn--approve{background:var(--good-soft);border-color:var(--good);color:var(--good)}
.btn--reject{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}
.btn__short{display:none}
.btn__full{display:inline}

/* ---------- Layout ---------- */
.site-main{max-width:var(--container);margin:0 auto;padding:0 28px 100px}
.section{margin-top:56px}
.section--narrow{max-width:600px}
.section__title{position:relative;display:flex;align-items:baseline;gap:14px;font-size:30px;margin:0 0 10px}
.section__header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.section__header-row .section__title{margin:0 0 10px}
.section__title::after{content:'';flex:1;height:1px;background:var(--line);align-self:center;margin-top:6px}
.section__subtitle{color:var(--ink-soft);font-size:15px;margin-top:-6px;max-width:62ch}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;
  border-radius:var(--radius-lg);
  padding:80px 48px;margin-top:32px;text-align:center;
  background:
    radial-gradient(ellipse 700px 420px at 18% -10%, var(--brand-soft), transparent 60%),
    radial-gradient(ellipse 600px 400px at 88% 110%, var(--gold-soft), transparent 60%),
    var(--surface);
  border:1px solid var(--line);
}
.hero__eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  color:var(--brand-deep);background:var(--brand-soft);
  padding:6px 14px;border-radius:99px;margin-bottom:22px;
}
.hero__eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--brand)}
.pilot-badge{
  max-width:var(--container);margin:0 auto;padding:16px 28px;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.pilot-badge__logo{height:32px;width:auto;display:block}
.pilot-badge__text{font-size:13px;color:var(--ink-faint)}
.hero h1{
  font-size:clamp(34px,5vw,54px);line-height:1.05;margin:0 0 18px;
}
.hero h1 em{color:var(--brand);font-style:normal}
.hero p{color:var(--ink-soft);font-size:17px;max-width:56ch;margin:0 auto 34px;line-height:1.6}
.hero__search{
  display:flex;gap:0;justify-content:center;flex-wrap:wrap;
  background:var(--surface);border:1px solid var(--line-strong);
  border-radius:99px;padding:6px;box-shadow:var(--shadow-md);
  max-width:640px;margin:0 auto;
}
.hero__search select{
  padding:12px 18px;border:none;background:transparent;font-size:14px;color:var(--ink);
  font-family:var(--font-body);border-radius:99px;min-height:var(--touch);
}
.hero__search select:focus{outline:none;background:var(--surface-sunk)}
.hero__search .btn--primary{border-radius:99px;padding:12px 26px}

/* ---------- Listing grid / card ---------- */
.listing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:26px;margin-top:26px}
.listing-card{
  display:block;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);overflow:hidden;color:var(--ink);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.listing-card:hover{
  text-decoration:none;transform:translateY(-4px);
  box-shadow:var(--shadow-lg);border-color:var(--line-strong);
}
.listing-card__photo{
  height:182px;background-size:cover;background-position:center;
  position:relative;background-color:var(--surface-sunk);
}
.listing-card__photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.35) 100%);
}
.listing-card__badge{position:absolute;top:12px;left:12px;z-index:1}
.listing-card__body{padding:16px 18px 18px}
.listing-card__price{
  font-family:var(--font-display);font-weight:700;font-size:20px;
  font-variant-numeric:tabular-nums;
}
.listing-card__title{font-size:14.5px;margin:5px 0 8px;color:var(--ink-soft);font-weight:500}
.listing-card__meta{display:flex;gap:10px;font-size:12.5px;color:var(--ink-faint);flex-wrap:wrap;font-family:var(--font-mono)}
.listing-card__meta span{position:relative;padding-left:12px}
.listing-card__meta span:first-child{padding-left:0}
.listing-card__meta span:not(:first-child)::before{content:'·';position:absolute;left:3px}

/* Promoted (paid) listing card — same shape, clearly labeled, never
   pretending to be an organic verified result. */
.listing-card--promoted{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}
.listing-card__promoted-tag{
  position:absolute;top:12px;right:12px;z-index:1;
  background:var(--gold);color:#2a2110;
  font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:4px 9px;border-radius:99px;
}

.locality-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.locality-chip{
  padding:10px 18px;border:1px solid var(--line);border-radius:99px;
  background:var(--surface);font-size:13.5px;color:var(--ink);font-weight:500;
  transition:border-color .15s ease, color .15s ease;
}
.locality-chip:hover{text-decoration:none;border-color:var(--brand);color:var(--brand-deep)}

/* ---------- Badges ---------- */
.badge{
  display:inline-flex;align-items:center;gap:5px;
  font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.03em;text-transform:uppercase;
  padding:5px 11px;border-radius:99px;
}
.badge--small{font-size:9.5px;padding:3px 8px;margin-left:6px}
.badge--verified{background:var(--good-soft);color:var(--good)}
.badge--verified::before{content:'●';font-size:8px}
.badge--pending{background:var(--warn-soft);color:var(--warn)}
.badge--unverified{background:var(--bad-soft);color:var(--bad)}
.badge--status-active{background:var(--good-soft);color:var(--good)}
.badge--status-expired{background:var(--surface-sunk);color:var(--ink-faint)}
.badge--status-archived{background:var(--surface-sunk);color:var(--ink-faint)}
.badge--promoted{background:var(--gold-soft);color:var(--gold)}

.verification-badge{position:relative;display:inline-block;margin-bottom:14px}
.verification-badge__tip{
  display:none;position:absolute;top:calc(100% + 8px);left:0;width:300px;
  background:var(--ink);color:var(--paper);font-size:12.5px;font-family:var(--font-body);
  padding:14px 16px;border-radius:var(--radius-sm);line-height:1.5;z-index:5;
  box-shadow:var(--shadow-lg);
}
.verification-badge:hover .verification-badge__tip,.verification-badge:focus-within .verification-badge__tip{display:block}

/* ---------- Filter bar ---------- */
.filter-bar{
  display:flex;gap:14px;flex-wrap:wrap;align-items:end;
  background:var(--surface);border:1px solid var(--line);
  padding:20px;border-radius:var(--radius-md);margin-top:20px;
  box-shadow:var(--shadow-sm);
}
.filter-bar__field{display:flex;flex-direction:column;gap:6px;font-size:11.5px;color:var(--ink-soft);font-weight:500;text-transform:uppercase;letter-spacing:.04em}
.filter-bar__field select,.filter-bar__field input{
  padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);
  font-size:14px;font-family:var(--font-body);background:var(--paper);color:var(--ink);min-height:var(--touch);
}
.result-count{color:var(--ink-soft);font-size:13.5px;margin-top:20px;font-family:var(--font-mono)}
.empty-state{color:var(--ink-soft);padding:48px 24px;text-align:center;background:var(--surface-sunk);border-radius:var(--radius-md);font-size:14.5px}

/* ---------- Listing detail ---------- */
.listing-detail{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;margin-top:32px}
.listing-detail__main-photo{
  height:400px;background-size:cover;background-position:center;
  border-radius:var(--radius-md);background-color:var(--surface-sunk);
  box-shadow:var(--shadow-md);cursor:zoom-in;
}
.listing-detail__thumbs{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.listing-detail__thumb{
  width:76px;height:76px;flex-shrink:0;background-size:cover;background-position:center;
  border-radius:8px;cursor:pointer;border:2px solid transparent;transition:border-color .15s, opacity .15s;
  padding:0;background-color:var(--surface-sunk);opacity:.75;
  -webkit-appearance:none;appearance:none;
}
.listing-detail__thumb:hover{border-color:var(--brand);opacity:1}
.listing-detail__thumb.is-active{border-color:var(--brand);opacity:1}
.listing-detail__thumb:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.listing-detail__price{
  font-family:var(--font-display);font-size:34px;font-weight:700;margin:8px 0;
  font-variant-numeric:tabular-nums;
}
.listing-detail__meta{
  display:flex;gap:16px;color:var(--ink-soft);font-size:13.5px;flex-wrap:wrap;margin-bottom:20px;
  font-family:var(--font-mono);
}
.listing-detail__description{margin:20px 0;color:var(--ink-soft);line-height:1.75;font-size:15.5px}

/* Lightbox (tap-to-zoom on the main photo) */
.lightbox{
  display:none;position:fixed;inset:0;z-index:100;
  background:rgba(15,13,10,.92);
  align-items:center;justify-content:center;padding:24px;
  cursor:zoom-out;
}
.lightbox.is-open{display:flex}
.lightbox img{max-width:100%;max-height:100%;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}
.lightbox__close{
  position:absolute;top:20px;right:20px;width:var(--touch);height:var(--touch);
  border-radius:50%;background:rgba(255,255,255,.12);color:#fff;border:none;
  font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;
}

.owner-card{
  display:flex;align-items:center;gap:14px;padding:16px;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);margin-bottom:24px;
}
.owner-card__avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;box-shadow:var(--shadow-sm)}
.owner-card__name{font-weight:600;font-size:15px}
.owner-card__meta{font-size:12.5px;color:var(--ink-soft);margin-top:2px}

.history-panel{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);padding:22px;margin-bottom:24px;
}
.history-panel h2{font-family:var(--font-display);font-size:18px;margin:0 0 16px}
.history-panel__list{display:flex;gap:0;list-style:none;padding:0;margin:0 0 18px;font-size:13.5px}
.history-panel__list li{
  flex:1;padding:14px 16px;background:var(--surface-sunk);
  border-radius:var(--radius-sm);text-align:center;margin-right:10px;
}
.history-panel__list li:last-child{margin-right:0}
.history-panel__list strong{
  display:block;font-family:var(--font-display);font-size:22px;font-weight:700;
  color:var(--ink);font-variant-numeric:tabular-nums;
}
.history-table{width:100%;border-collapse:collapse;font-size:13.5px;font-family:var(--font-mono)}
.history-table th,.history-table td{text-align:left;padding:8px 0;border-bottom:1px solid var(--line)}
.history-table th{color:var(--ink-faint);font-weight:500;text-transform:uppercase;font-size:11px;letter-spacing:.04em}

.contact-panel{
  background:linear-gradient(160deg, var(--brand-wash), var(--surface) 70%);
  border:1px solid var(--brand-soft);
  border-radius:var(--radius-md);padding:24px;
}
.contact-panel h2{font-family:var(--font-display);font-size:19px;margin:0 0 8px}
.contact-panel__note{font-size:13px;color:var(--ink-soft);margin-bottom:16px}
.contact-panel__confirmation{font-size:14.5px}
.contact-panel__confirmation p:first-child{font-family:var(--font-display);font-size:17px;font-weight:600;margin:0 0 8px}
.contact-form{display:flex;flex-direction:column;gap:12px}
.contact-form label{font-size:12px;color:var(--ink-soft);display:flex;flex-direction:column;gap:5px;font-weight:500;text-transform:uppercase;letter-spacing:.03em}
.contact-form input,.contact-form textarea{
  padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);
  font-size:14.5px;font-family:var(--font-body);background:var(--surface);color:var(--ink);min-height:var(--touch);
}
.contact-form textarea{min-height:80px}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--brand)}
.contact-form .btn{margin-top:6px}

/* ---------- Locality ---------- */
.locality-description{color:var(--ink-soft);max-width:70ch;font-size:15.5px;line-height:1.7}
.locality-stats{display:flex;gap:16px;margin-top:22px;flex-wrap:wrap}
.stat-row{display:flex;gap:16px;margin:22px 0;flex-wrap:wrap}
.stat-tile{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);padding:20px 24px;min-width:140px;
  box-shadow:var(--shadow-sm);
}
.stat-tile__value{
  font-family:var(--font-display);font-size:26px;font-weight:700;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.stat-tile__label{font-size:11.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-weight:500}
.stat-tile__delta{font-size:11.5px;margin-top:8px;font-weight:600;font-family:var(--font-mono)}
.stat-tile__delta.is-up{color:var(--good)}
.stat-tile__delta.is-down{color:var(--ink-faint)}

/* ---------- Analytics detail ---------- */
.back-link{display:inline-block;font-size:13px;color:var(--ink-soft);margin-bottom:20px;font-weight:500}
.back-link:hover{color:var(--brand);text-decoration:none}
.analytics-detail__header{display:flex;gap:24px;align-items:flex-start;padding-bottom:8px}
.analytics-detail__photo{
  width:180px;height:130px;flex-shrink:0;background-size:cover;background-position:center;
  border-radius:var(--radius-md);background-color:var(--surface-sunk);box-shadow:var(--shadow-sm);
}

/* ---------- Section nav (builder/admin tabs) ---------- */
.section-nav{display:flex;gap:4px;margin-bottom:28px;border-bottom:1px solid var(--line)}
.section-nav a{
  padding:12px 18px;font-size:14px;color:var(--ink-soft);font-weight:500;
  border-bottom:2px solid transparent;margin-bottom:-1px;
}
.section-nav a:hover{text-decoration:none;color:var(--ink)}
.section-nav a.is-active{color:var(--ink);font-weight:600}
.section-nav--builder a.is-active{border-color:var(--builder-accent);color:var(--builder-accent)}
.section-nav--admin a.is-active{border-color:var(--admin-accent);color:var(--admin-accent)}

/* Console mode: builder/admin areas get a tighter, cooler surface tone. */
body.console .site-main{background:transparent}
body.console .section__title{font-size:26px}

/* ---------- Tables ---------- */
.data-table{
  width:100%;border-collapse:collapse;margin-top:20px;font-size:13.5px;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);
}
.data-table th{
  text-align:left;background:var(--surface-sunk);padding:12px 16px;
  font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);
  font-weight:600;font-family:var(--font-mono);
}
.data-table td{padding:13px 16px;border-top:1px solid var(--line);vertical-align:middle}
.data-table tbody tr{transition:background .12s ease}
.data-table tbody tr:hover{background:var(--surface-sunk)}
.data-table select{padding:6px 8px;border-radius:6px;border:1px solid var(--line-strong);font-size:12.5px;background:var(--paper);color:var(--ink)}
.muted{color:var(--ink-faint);font-size:12px}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* Compact variant: same table, tighter padding/dropped sub-line — used
   on tablet widths so tables regain real-table form instead of jumping
   straight from desktop-dense to phone-cards. Toggled by breakpoint below. */
.data-table--compact th{padding:9px 12px;font-size:10px}
.data-table--compact td{padding:9px 12px;font-size:13px}
.data-table--compact .muted{display:none}

/* ---------- Card-list components (mobile-native alternative to tables) ----------
   One shared shape (.entity-card) used by My Listings, Analytics, Inquiries,
   and the admin tables, so every "table became cards on phone" moment looks
   like the same designed system rather than five different fallbacks. */
.entity-cards{display:none;flex-direction:column;gap:14px;margin-top:20px}
.entity-card{
  display:block;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);padding:16px 18px;box-shadow:var(--shadow-sm);
  color:var(--ink);position:relative;overflow:hidden;
}
.entity-card--link{transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease}
.entity-card--link:hover,.entity-card--link:active{
  text-decoration:none;transform:translateY(-2px);
  box-shadow:var(--shadow-md);border-color:var(--line-strong);
}
.entity-card--accent::before{
  content:'';position:absolute;top:0;left:0;bottom:0;width:4px;
  background:linear-gradient(180deg, var(--brand), var(--gold));
}
.entity-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.entity-card__title{font-family:var(--font-display);font-weight:700;font-size:16px;line-height:1.3}
.entity-card__subtitle{font-size:11.5px;color:var(--ink-faint);font-family:var(--font-mono);margin-top:3px;text-transform:uppercase;letter-spacing:.03em}
.entity-card__arrow{
  flex-shrink:0;color:var(--brand);font-size:18px;font-weight:700;
  width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  background:var(--brand-soft);border-radius:50%;
}
.entity-card__badges{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.entity-card__stats{display:flex;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);gap:12px}
.entity-card__stat{flex:1;text-align:left;min-width:0}
.entity-card__stat strong{
  display:block;font-family:var(--font-display);font-size:20px;font-weight:700;
  color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1;
}
.entity-card__stat span{font-size:10.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em}
.entity-card__foot{margin-top:12px;font-size:12px;color:var(--ink-soft);font-family:var(--font-mono)}
.entity-card__row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13.5px}
.entity-card__row:first-of-type{border-top:none;padding-top:0}
.entity-card__row-label{color:var(--ink-faint);font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}
.entity-card__row-value{text-align:right}
.entity-card__actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.entity-card__actions form{display:flex;gap:8px;flex-wrap:wrap;width:100%}
.entity-card__photo{
  width:100%;height:150px;background-size:cover;background-position:center;
  border-radius:var(--radius-sm);background-color:var(--surface-sunk);margin-bottom:12px;
}
.entity-card--horizontal{display:flex;gap:14px}
.entity-card--horizontal .entity-card__photo{width:88px;height:88px;flex-shrink:0;margin-bottom:0}
.entity-card--horizontal .entity-card__body{flex:1;min-width:0}

/* ---------- Verification queue review cards ---------- */
.review-queue{display:flex;flex-direction:column;gap:16px;margin-top:24px}
.review-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;
}
.review-card__summary{
  display:flex;align-items:flex-start;gap:16px;padding:16px;flex-wrap:wrap;
}
.review-card__thumb{
  width:120px;height:90px;flex-shrink:0;background-size:cover;background-position:center;
  border-radius:var(--radius-sm);background-color:var(--surface-sunk);position:relative;
}
.review-card__thumb-count{
  position:absolute;bottom:6px;right:6px;background:rgba(20,18,14,.72);color:#fff;
  font-family:var(--font-mono);font-size:9.5px;font-weight:600;padding:2px 7px;border-radius:99px;
}
.review-card__info{flex:1;min-width:220px}
.review-card__title{font-family:var(--font-display);font-weight:700;font-size:16.5px}
.review-card__meta{font-size:12.5px;color:var(--ink-soft);margin-top:4px}
.review-card__meta--mono{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint);margin-top:6px}
.review-card__controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-left:auto}
.review-card__controls .inline-form{display:inline-flex;gap:8px}

.review-card__detail{
  border-top:1px solid var(--line);padding:18px 16px;background:var(--surface-sunk);
}
.review-card__gallery{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}
.review-card__gallery-photo{
  width:150px;height:110px;flex-shrink:0;background-size:cover;background-position:center;
  border-radius:var(--radius-sm);background-color:var(--surface);
}
.review-card__description{font-size:14px;color:var(--ink-soft);line-height:1.6;margin:14px 0}
.review-card__facts{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 20px;
  margin-top:10px;padding-top:14px;border-top:1px solid var(--line);
}
.review-card__facts > div{display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.review-card__row-label{font-size:10.5px;color:var(--ink-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em}

@media (max-width:640px){
  .review-card__summary{flex-direction:column}
  .review-card__thumb{width:100%;height:160px}
  .review-card__controls{margin-left:0;width:100%}
}

/* Analytics summary card — bespoke vertical card, tappable, arrow affordance. */
.analytics-cards{display:none;flex-direction:column;gap:14px;margin-top:20px}
.analytics-card{
  display:block;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);padding:18px 20px;box-shadow:var(--shadow-sm);
  color:var(--ink);position:relative;overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.analytics-card::before{
  content:'';position:absolute;top:0;left:0;bottom:0;width:4px;
  background:linear-gradient(180deg, var(--brand), var(--gold));
}
.analytics-card:hover,.analytics-card:active{
  text-decoration:none;transform:translateY(-2px);
  box-shadow:var(--shadow-md);border-color:var(--line-strong);
}
.analytics-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.analytics-card__title{font-family:var(--font-display);font-weight:700;font-size:16.5px;line-height:1.3}
.analytics-card__locality{font-size:12px;color:var(--ink-faint);font-family:var(--font-mono);margin-top:3px;text-transform:uppercase;letter-spacing:.03em}
.analytics-card__arrow{
  flex-shrink:0;color:var(--brand);font-size:18px;font-weight:700;
  width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  background:var(--brand-soft);border-radius:50%;
}
.analytics-card__stats{display:flex;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.analytics-card__stat{flex:1;text-align:left}
.analytics-card__stat strong{
  display:block;font-family:var(--font-display);font-size:22px;font-weight:700;
  color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1;
}
.analytics-card__stat span{font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.analytics-card__foot{margin-top:12px;font-size:12px;color:var(--ink-soft);font-family:var(--font-mono)}

/* My Listings management card — bespoke horizontal card with photo. */
.listing-manage-cards{display:none;flex-direction:column;gap:14px;margin-top:20px}
.listing-manage-card{
  display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);padding:14px;box-shadow:var(--shadow-sm);
}
.listing-manage-card__photo{
  width:88px;height:88px;flex-shrink:0;background-size:cover;background-position:center;
  border-radius:var(--radius-sm);background-color:var(--surface-sunk);
}
.listing-manage-card__body{flex:1;min-width:0}
.listing-manage-card__badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.listing-manage-card__title{font-family:var(--font-display);font-weight:700;font-size:15px;line-height:1.3}
.listing-manage-card__locality{font-size:11.5px;color:var(--ink-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em;margin-top:2px}
.listing-manage-card__stats{display:flex;gap:16px;margin-top:10px}
.listing-manage-card__stats strong{
  display:block;font-family:var(--font-display);font-size:16px;font-weight:700;
  color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1;
}
.listing-manage-card__stats span{font-size:10px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em}
.listing-manage-card__edit{display:inline-block;margin-top:12px;padding:7px 16px;font-size:12.5px}

/* ---------- Step indicator (Add Listing: Details -> Photos) ---------- */
.step-indicator{display:flex;align-items:center;gap:10px;margin-top:18px}
.step-indicator__step{
  font-family:var(--font-mono);font-size:11.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;
  padding:6px 14px;border-radius:99px;background:var(--surface-sunk);color:var(--ink-faint);
}
.step-indicator__step.is-active{background:var(--brand);color:#fff8f3}
.step-indicator__step.is-done{background:var(--good-soft);color:var(--good)}
.step-indicator__arrow{color:var(--ink-faint);font-size:13px}

/* ---------- Forms ---------- */
.login-form,.listing-form{display:flex;flex-direction:column;gap:18px;margin-top:20px}
.login-form label,.listing-form label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--ink-soft);font-weight:500;text-transform:uppercase;letter-spacing:.03em}
.login-form input,.listing-form input,.listing-form select,.listing-form textarea{
  padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);
  font-size:15px;font-family:var(--font-body);background:var(--surface);color:var(--ink);min-height:var(--touch);
}
.login-form input:focus,.listing-form input:focus,.listing-form select:focus,.listing-form textarea:focus{
  outline:none;border-color:var(--brand);
}
.listing-form__row{display:flex;gap:16px}
.listing-form__row label{flex:1}
.form-error{background:var(--bad-soft);color:var(--bad);padding:12px 16px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:500}
.demo-credentials{
  background:var(--gold-soft);border:1px solid var(--gold);border-radius:var(--radius-sm);
  padding:14px 18px;font-size:13px;margin-bottom:20px;color:var(--ink);
}
.demo-credentials code{background:var(--surface);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:12.5px}

.photo-picker{border:1px solid var(--line);border-radius:var(--radius-md);padding:16px;background:var(--surface)}
.photo-picker legend{font-size:12px;color:var(--ink-soft);padding:0 8px;text-transform:uppercase;letter-spacing:.04em;font-weight:500}
.photo-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px;max-height:280px;overflow-y:auto;padding:4px}
.photo-picker__item{position:relative;cursor:pointer}
.photo-picker__item img{width:100%;height:64px;object-fit:cover;border-radius:8px;display:block;border:2px solid transparent}
.photo-picker__item input:checked + img,.photo-picker__item img:has(+ input:checked){border-color:var(--brand)}
.photo-picker__item input{position:absolute;top:6px;left:6px;accent-color:var(--brand);width:20px;height:20px}

/* ---------- Photo upload (Add/Edit Listing) ---------- */
.photo-upload-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;
  margin-bottom:14px;
}
.photo-upload-item{position:relative;border-radius:8px;overflow:hidden;background:var(--surface-sunk)}
.photo-upload-item img{width:100%;height:88px;object-fit:cover;display:block}
.photo-upload-item__remove{
  position:absolute;top:4px;right:4px;width:24px;height:24px;
  border-radius:50%;border:none;background:rgba(20,18,14,.65);color:#fff;
  font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.photo-upload-item__remove:hover{background:var(--bad)}

.photo-upload-dropzone{
  display:flex;align-items:center;justify-content:center;position:relative;
  min-height:96px;border:2px dashed var(--line-strong);border-radius:var(--radius-sm);
  background:var(--paper);cursor:pointer;text-align:center;padding:16px;
  transition:border-color .15s ease, background .15s ease;
}
.photo-upload-dropzone:hover,.photo-upload-dropzone.is-dragover{border-color:var(--brand);background:var(--brand-wash)}
.photo-upload-dropzone span{font-size:13.5px;color:var(--ink-soft)}

/* ---------- Ad slots ---------- */
.ad-slot{position:relative}
.ad-slot__label{
  position:absolute;top:10px;right:10px;z-index:2;
  background:rgba(20,18,14,.72);color:#fff;
  font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  padding:3px 8px;border-radius:99px;
}
.ad-banner{
  display:block;border-radius:var(--radius-lg);overflow:hidden;position:relative;
  margin-top:32px;box-shadow:var(--shadow-md);border:1px solid var(--line);
  min-height:140px;background-size:cover;background-position:center;background-color:var(--surface-sunk);
}
.ad-banner__scrim{
  position:absolute;inset:0;background:linear-gradient(90deg, rgba(20,18,14,.78) 0%, rgba(20,18,14,.15) 70%);
  display:flex;flex-direction:column;justify-content:center;padding:28px 32px;color:#fff;
}
.ad-banner__eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;opacity:.85;margin-bottom:8px}
.ad-banner__title{font-family:var(--font-display);font-size:24px;font-weight:700;max-width:60ch}
.ad-banner__cta{margin-top:14px}

.ad-card-sidebar{
  background:var(--surface);border:1px solid var(--gold);border-radius:var(--radius-md);
  padding:14px;box-shadow:var(--shadow-sm);
}

/* Campaign builder — live price summary */
.campaign-price{
  background:var(--brand-wash);border:1px solid var(--brand-soft);border-radius:var(--radius-md);
  padding:18px 20px;margin-top:8px;
}
.campaign-price__row{display:flex;justify-content:space-between;font-size:13.5px;padding:4px 0}
.campaign-price__total{
  display:flex;justify-content:space-between;font-family:var(--font-display);font-size:20px;font-weight:700;
  border-top:1px solid var(--line);margin-top:8px;padding-top:10px;
}
.campaign-price__total span:last-child{font-variant-numeric:tabular-nums}

.budget-bar{height:6px;border-radius:99px;background:var(--surface-sunk);overflow:hidden;margin-top:8px}
.budget-bar__fill{height:100%;background:linear-gradient(90deg, var(--brand), var(--gold));border-radius:99px}

/* Checkbox pill group (placement/targeting pickers) */
.pill-checks{display:flex;flex-wrap:wrap;gap:8px}
.pill-check{position:relative}
.pill-check input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;margin:0}
.pill-check span{
  display:inline-flex;align-items:center;padding:9px 16px;border-radius:99px;
  border:1px solid var(--line-strong);font-size:13px;font-weight:500;color:var(--ink-soft);
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.pill-check input:checked + span{background:var(--brand);border-color:var(--brand);color:#fff8f3}
.pill-check input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--line);margin-top:80px;background:var(--surface)}
.site-footer__inner{max-width:var(--container);margin:0 auto;padding:28px;font-size:12.5px;color:var(--ink-faint)}

/* ==========================================================================
   RESPONSIVE — one block per tier, this order, nothing responsive above
   this line. Later blocks (tablet, then desktop-wide) intentionally come
   after phone so a wider match can cleanly override a narrower one.
   ========================================================================== */

/* ---------- Phone: ≤599px ---------- */
@media (max-width:599px){
  html,body{overflow-x:hidden}

  .site-header__inner{padding:14px 18px;gap:10px}
  .brand{font-size:19px;flex-shrink:0}
  .main-nav{display:none}
  .account-nav{gap:8px;flex-shrink:0;margin-left:auto}
  .account-nav__user{display:none}
  .btn{padding:9px 16px;font-size:13px;white-space:nowrap}
  .btn__full{display:none}
  .btn__short{display:inline}

  .nav-toggle{display:flex}
  .mobile-nav{
    display:flex;flex-direction:column;
    max-height:0;overflow:hidden;
    transition:max-height .25s ease;
    border-top:1px solid transparent;
  }
  .mobile-nav a{
    padding:13px 18px;font-size:14.5px;color:var(--ink);font-weight:500;
    border-bottom:1px solid var(--line);min-height:var(--touch);display:flex;align-items:center;
  }
  .mobile-nav a:hover{background:var(--surface-sunk);text-decoration:none}
  .mobile-nav__divider{
    padding:10px 18px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;
    color:var(--ink-faint);font-weight:600;background:var(--surface-sunk);
  }
  .nav-toggle-checkbox:checked ~ .site-header .nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .nav-toggle-checkbox:checked ~ .site-header .nav-toggle span:nth-child(2){opacity:0}
  .nav-toggle-checkbox:checked ~ .site-header .nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .nav-toggle-checkbox:checked ~ .site-header .mobile-nav{
    max-height:70vh;overflow-y:auto;border-top-color:var(--line);
  }
  .nav-toggle-checkbox:checked ~ .nav-scrim{
    display:block;position:fixed;inset:0;top:auto;
    background:rgba(20,18,14,.25);z-index:19;
  }

  .site-main{padding:0 18px 72px}
  .section{margin-top:40px}
  .section__title{font-size:23px}

  .section-nav{
    flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    border-bottom:none;gap:8px;margin:0 -18px 24px;padding:0 18px 4px;
    scrollbar-width:none;
  }
  .section-nav::-webkit-scrollbar{display:none}
  .section-nav a{
    flex-shrink:0;padding:9px 16px;font-size:13.5px;
    border:1px solid var(--line);border-radius:99px;
    background:var(--surface);margin-bottom:0;white-space:nowrap;min-height:var(--touch);display:flex;align-items:center;
  }
  .section-nav--builder a.is-active{background:var(--builder-accent);border-color:var(--builder-accent);color:#fff}
  .section-nav--admin a.is-active{background:var(--admin-accent);border-color:var(--admin-accent);color:#fff}

  .hero{padding:44px 22px;margin-top:20px;border-radius:var(--radius-md)}
  .hero__search{
    flex-direction:column;border-radius:var(--radius-md);
    align-items:stretch;padding:8px;
  }
  .hero__search select,.hero__search .btn--primary{
    width:100%;min-width:0;box-sizing:border-box;border-radius:8px;text-align:center;
  }
  .hero__search select{border:1px solid var(--line);appearance:none;-webkit-appearance:none}

  .listing-detail{grid-template-columns:1fr;gap:24px}
  .listing-detail__price{font-size:27px}
  .listing-detail__description{margin:14px 0;font-size:14.5px}
  .listing-detail__thumbs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}
  .listing-detail__thumbs::-webkit-scrollbar{display:none}

  .owner-card{padding:12px;margin-bottom:16px;gap:10px}
  .owner-card__avatar{width:38px;height:38px}
  .history-panel{padding:16px;margin-bottom:16px}
  .history-panel h2{font-size:16px;margin-bottom:12px}
  .history-panel__list{gap:8px;margin-bottom:12px}
  .history-panel__list li{margin-right:0;padding:10px 6px}
  .history-panel__list strong{font-size:17px}
  .contact-panel{padding:18px}
  .contact-panel h2{font-size:17px}

  .stat-row{gap:10px}
  .stat-tile{min-width:0;flex:1 1 128px;padding:14px 16px}
  .stat-tile__value{font-size:21px;word-break:break-word}

  .filter-bar{flex-direction:column;align-items:stretch}
  .filter-bar__field{width:100%}
  .listing-form__row{flex-direction:column;gap:14px}

  .analytics-detail__header{flex-direction:column}
  .analytics-detail__photo{width:100%;height:160px}

  /* Tables → entity cards */
  .data-table--hide-mobile,.data-table--hide-tablet{display:none}
  .entity-cards,.analytics-cards,.listing-manage-cards{display:flex}

  .ad-banner__scrim{padding:22px}
  .ad-banner__title{font-size:19px}
}

/* ---------- Tablet: 600–959px ---------- */
@media (min-width:600px) and (max-width:959px){
  .site-header__inner{padding:16px 24px}
  .main-nav{gap:20px}
  .site-main{padding:0 24px 90px}

  .hero{padding:60px 36px}
  .hero__search{max-width:560px}

  .listing-grid{grid-template-columns:repeat(2,1fr)}

  .listing-detail{grid-template-columns:1fr;gap:32px}
  .listing-detail__main-photo{height:340px}

  .stat-row{flex-wrap:wrap}
  .stat-tile{flex:1 1 160px}

  /* Tables regain a real (compact) table at tablet width instead of the
     phone card list — there's room for it, and a table is more scannable
     once it fits without horizontal scroll. */
  .data-table--hide-tablet{display:none}
  .entity-cards,.analytics-cards,.listing-manage-cards{display:none}
  .data-table{display:table}
  .data-table th,.data-table td{padding:10px 12px;font-size:12.5px}
  .data-table .muted{display:none}

  .section-nav{flex-wrap:wrap}
}

/* ---------- Desktop-wide: ≥1280px ---------- */
@media (min-width:1280px){
  :root{--container:1280px}
  .listing-grid{grid-template-columns:repeat(auto-fill,minmax(288px,1fr))}
}
