/* ============================================================
   Realexaa — rlx-ui.css · Obsidian Gold design system (locked)
   Brand tokens can be overridden per-tenant via Branding::cssVars()
   ============================================================ */
:root{
  /* obsidian */
  --rx-bg:#07070A; --rx-panel:#0E0E13; --rx-raised:#15161D; --rx-hover:#1E2029;
  --rx-line:#2A2C36; --rx-line-soft:rgba(255,255,255,.08);
  /* gold (overridable) */
  --rx-gold:#C9A24B; --rx-gold-bright:#E3C16B; --rx-gold-light:#F4E0A8;
  --rx-gold-deep:#9C7B33; --rx-bronze:#8A6A2E;
  --rx-grad:linear-gradient(135deg,var(--rx-gold),var(--rx-gold-bright));
  --rx-grad-rich:linear-gradient(135deg,#8A6A2E,#C9A24B,#F4E0A8);
  /* ivory / text */
  --rx-text:#F4EFE3; --rx-text-2:#CDC6B5; --rx-muted:#948D7C;
  /* states */
  --rx-success:#4FB286; --rx-warning:#E0A33E; --rx-danger:#DE6A5A; --rx-info:#BFC6CF;
  /* type */
  --rx-fd:"Sora",system-ui,sans-serif;
  --rx-fb:"Inter",system-ui,sans-serif;
  --rx-fdata:"Space Grotesk","Inter",monospace;
  --rx-radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--rx-fb);color:var(--rx-text);
  background:
    radial-gradient(900px 480px at 88% -8%,rgba(201,162,75,.10),transparent 60%),
    radial-gradient(700px 420px at -8% 108%,rgba(138,106,46,.08),transparent 60%),
    var(--rx-bg);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.rx-fd{font-family:var(--rx-fd);letter-spacing:-.01em;color:var(--rx-text)}
a{color:var(--rx-gold-light);text-decoration:none}
.rx-eyebrow{font-family:var(--rx-fdata);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--rx-muted)}
.rx-data{font-family:var(--rx-fdata)}
.rx-muted{color:var(--rx-muted)}

/* Glass panel */
.rx-glass{
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012));
  border:1px solid var(--rx-line);border-radius:var(--rx-radius);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

/* Buttons */
.rx-btn{font-family:var(--rx-fd);font-weight:600;font-size:14px;padding:11px 18px;border-radius:11px;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:transform .2s,box-shadow .2s,border-color .2s}
.rx-btn-gold{color:#1A1404;background:var(--rx-grad);box-shadow:0 10px 26px -12px rgba(201,162,75,.7)}
.rx-btn-gold:hover{transform:translateY(-1px);box-shadow:0 16px 34px -12px rgba(227,193,107,.8)}
.rx-btn-ghost{color:var(--rx-text);background:rgba(255,255,255,.02);border:1px solid var(--rx-line)}
.rx-btn-ghost:hover{border-color:var(--rx-gold);color:var(--rx-gold-light)}

/* Inputs */
.rx-field{margin-bottom:16px}
.rx-field label{display:block;font-family:var(--rx-fdata);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--rx-muted);margin-bottom:7px}
.rx-input,.rx-select,.rx-textarea{
  width:100%;padding:12px 14px;border-radius:11px;background:rgba(0,0,0,.4);
  border:1px solid var(--rx-line);color:var(--rx-text);font-family:var(--rx-fb);font-size:15px;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.rx-input:focus,.rx-select:focus,.rx-textarea:focus{border-color:var(--rx-gold);box-shadow:0 0 0 3px rgba(201,162,75,.14)}

/* Brand mark */
.rx-brand{display:flex;align-items:center;gap:11px;font-family:var(--rx-fd);font-weight:700}
.rx-brand img{height:30px;width:auto;display:block}
.rx-brand .nm{font-size:18px;color:var(--rx-text)}
.rx-brand .nm b{color:var(--rx-gold)}

/* Flash */
.rx-flash{padding:12px 16px;border-radius:11px;margin-bottom:16px;font-size:14px;border:1px solid var(--rx-line)}
.rx-flash.error{background:rgba(222,106,90,.12);border-color:rgba(222,106,90,.35);color:#f4cfc8}
.rx-flash.success{background:rgba(79,178,134,.12);border-color:rgba(79,178,134,.3);color:#bfe7d5}

/* App shell */
.rx-shell{display:grid;grid-template-columns:252px 1fr;min-height:100vh}
.rx-side{padding:22px 16px;border-right:1px solid var(--rx-line);background:linear-gradient(180deg,rgba(21,22,29,.55),transparent)}
.rx-nav{margin-top:26px;display:flex;flex-direction:column;gap:3px}
.rx-nav a{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:10px;color:var(--rx-text);font-size:14px;opacity:.76;transition:.15s}
.rx-nav a:hover{opacity:1;background:rgba(201,162,75,.07)}
.rx-nav a.active{opacity:1;background:rgba(201,162,75,.13);color:var(--rx-gold-light)}
.rx-nav .soon{margin-left:auto;font-family:var(--rx-fdata);font-size:9px;letter-spacing:.08em;color:var(--rx-muted);border:1px solid var(--rx-line);padding:2px 6px;border-radius:20px}
.rx-nav .seg{margin:16px 0 6px;font-family:var(--rx-fdata);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--rx-muted);padding:0 13px}
.rx-main{padding:26px clamp(18px,4vw,42px)}
.rx-top{display:flex;align-items:center;gap:16px;margin-bottom:26px}
.rx-top .who{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px;color:var(--rx-muted)}
.rx-page-title{font-size:26px;margin-top:6px}

/* Stat cards */
.rx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
.rx-stat{padding:20px}
.rx-stat .k{font-family:var(--rx-fdata);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--rx-muted)}
.rx-stat .v{font-family:var(--rx-fd);font-weight:800;font-size:32px;margin-top:6px;background:var(--rx-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* Badges */
.rx-badge{font-family:var(--rx-fdata);font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:20px;border:1px solid var(--rx-line);color:var(--rx-text-2)}
.rx-badge.gold{background:rgba(201,162,75,.14);color:var(--rx-gold-light);border-color:rgba(201,162,75,.3)}
.rx-badge.ok{background:rgba(79,178,134,.14);color:#9fe0c4}
.rx-badge.warn{background:rgba(224,163,62,.14);color:#f0cf95}
.rx-badge.bad{background:rgba(222,106,90,.14);color:#f0b6ac}

/* Table */
.rx-tbl{width:100%;border-collapse:collapse;border:1px solid var(--rx-line);border-radius:14px;overflow:hidden}
.rx-tbl th{font-family:var(--rx-fdata);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--rx-muted);text-align:left;padding:13px 16px;background:rgba(0,0,0,.28)}
.rx-tbl td{padding:13px 16px;border-top:1px solid var(--rx-line-soft);font-size:14px}
.rx-tbl tr:hover td{background:rgba(201,162,75,.03)}

/* Auth */
.rx-auth{min-height:100vh;display:grid;place-items:center;padding:24px}
.rx-auth-card{width:100%;max-width:404px;padding:34px}
.rx-auth-card h1{font-size:24px;margin:18px 0 4px}
.rx-auth-card .sub{color:var(--rx-muted);font-size:13px;margin-bottom:24px}

.rx-note{padding:18px;font-size:13px;color:var(--rx-muted);line-height:1.6}
.rx-note b{color:var(--rx-text)}

/* live fragment pulse */
.rx-live{display:inline-flex;align-items:center;gap:7px;font-family:var(--rx-fdata);font-size:11px;color:var(--rx-muted)}
.rx-live b{width:7px;height:7px;border-radius:50%;background:var(--rx-gold);box-shadow:0 0 9px var(--rx-gold);animation:rxpulse 2.4s ease-in-out infinite}
@keyframes rxpulse{0%,100%{opacity:1}50%{opacity:.35}}

@media(max-width:760px){.rx-shell{grid-template-columns:1fr}.rx-side{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- Phase 1: CRM ---------- */
.rx-pagehead{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px}
.rx-pagehead .actions{margin-left:auto;display:flex;gap:10px}
.rx-toggle{display:inline-flex;border:1px solid var(--rx-line);border-radius:10px;overflow:hidden}
.rx-toggle a{padding:8px 14px;font-size:13px;color:var(--rx-muted);text-decoration:none}
.rx-toggle a.on{background:rgba(201,162,75,.13);color:var(--rx-gold-light)}
.rx-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.rx-chip{font-size:12px;color:var(--rx-muted);padding:6px 13px;border:1px solid var(--rx-line);border-radius:20px;text-decoration:none}
.rx-chip.on{background:rgba(201,162,75,.13);color:var(--rx-gold-light);border-color:rgba(201,162,75,.3)}

.rx-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(216px,1fr);gap:13px;overflow-x:auto;padding-bottom:10px}
.rx-col{background:rgba(0,0,0,.22);border:1px solid var(--rx-line);border-radius:14px;padding:11px;min-height:130px}
.rx-col.over{border-color:var(--rx-gold);background:rgba(201,162,75,.06)}
.rx-col h3{font-family:var(--rx-fdata);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--rx-muted);display:flex;justify-content:space-between;margin-bottom:11px}
.rx-col h3 .n{color:var(--rx-gold)}
.rx-lcard{display:block;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border:1px solid var(--rx-line);border-radius:11px;padding:11px;margin-bottom:9px;cursor:grab;text-decoration:none;transition:border-color .2s,transform .2s}
.rx-lcard:hover{border-color:rgba(201,162,75,.4);transform:translateY(-2px)}
.rx-lcard.drag{opacity:.4}
.rx-lcard .nm{font-family:var(--rx-fd);font-weight:600;font-size:14px;color:var(--rx-text)}
.rx-lcard .meta{font-size:12px;color:var(--rx-muted);margin-top:4px}
.rx-lcard .r2{display:flex;align-items:center;gap:8px;margin-top:9px}
.rx-temp{font-family:var(--rx-fdata);font-size:9px;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:12px}
.rx-temp.hot{background:rgba(201,162,75,.18);color:var(--rx-gold-light)}
.rx-temp.warm{background:rgba(255,255,255,.06);color:#ddd6c8}
.rx-temp.cold{background:rgba(255,255,255,.03);color:var(--rx-muted)}
.rx-score{margin-left:auto;font-family:var(--rx-fd);font-weight:700;font-size:13px;color:var(--rx-gold)}

.rx-detail{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}
@media(max-width:820px){.rx-detail{grid-template-columns:1fr}}
.rx-kv{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--rx-line-soft);font-size:14px}
.rx-kv .k{color:var(--rx-muted)}
.rx-ring{font-family:var(--rx-fd);font-weight:800;font-size:42px;color:var(--rx-gold)}
.rx-bd{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;color:var(--rx-text-2)}
.rx-bd b{color:var(--rx-gold)}
.rx-tl{list-style:none;margin-top:8px}
.rx-tl li{padding:9px 0 9px 18px;position:relative;font-size:13px;color:var(--rx-text-2);border-left:1px solid var(--rx-line);margin-left:4px}
.rx-tl li::before{content:"";position:absolute;left:-4px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--rx-gold)}
.rx-notes{list-style:none;margin-top:10px}
.rx-notes li{padding:12px;background:rgba(255,255,255,.025);border:1px solid var(--rx-line);border-radius:10px;margin-bottom:8px;font-size:14px}
.rx-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.rx-grid2{grid-template-columns:1fr}}

/* ---------- Phase 1 (cont): Listings & Viewings ---------- */
.rx-pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.rx-pcard{display:block;border:1px solid var(--rx-line);border-radius:15px;overflow:hidden;background:rgba(255,255,255,.015);text-decoration:none;color:inherit;transition:transform .25s,border-color .25s,box-shadow .25s}
.rx-pcard:hover{transform:translateY(-4px);border-color:rgba(201,162,75,.4);box-shadow:0 22px 46px -28px rgba(201,162,75,.5)}
.rx-pcard .ph{height:160px;background:#15161D center/cover no-repeat;position:relative}
.rx-pcard .ph .st{position:absolute;top:10px;left:10px}
.rx-pcard .ph .ref{position:absolute;bottom:10px;right:10px;font-family:var(--rx-fdata);font-size:10px;color:#fff;background:rgba(0,0,0,.5);padding:3px 8px;border-radius:8px}
.rx-pcard .bd{padding:14px}
.rx-pcard .ttl{font-family:var(--rx-fd);font-weight:600;font-size:15px;line-height:1.3}
.rx-pcard .price{font-family:var(--rx-fd);font-weight:800;font-size:18px;margin-top:8px;background:var(--rx-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.rx-pcard .feat{display:flex;gap:12px;margin-top:8px;font-size:12px;color:var(--rx-muted)}
.rx-st{font-family:var(--rx-fdata);font-size:9px;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:12px;border:1px solid var(--rx-line)}
.rx-st.live{background:rgba(79,178,134,.16);color:#9fe0c4}
.rx-st.draft{background:rgba(255,255,255,.06);color:var(--rx-muted)}
.rx-st.reserved{background:rgba(224,163,62,.16);color:#f0cf95}
.rx-st.sold,.rx-st.leased{background:rgba(201,162,75,.16);color:var(--rx-gold-light)}
.rx-st.archived{background:rgba(222,106,90,.14);color:#f0b6ac}
.rx-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:18px}
.rx-gallery img{width:100%;height:110px;object-fit:cover;border-radius:11px;border:1px solid var(--rx-line)}
.rx-vday{font-family:var(--rx-fdata);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--rx-gold-light);margin:18px 0 8px}
.rx-vrow{display:flex;align-items:center;gap:14px;padding:13px 16px;border:1px solid var(--rx-line);border-radius:12px;margin-bottom:8px;background:rgba(255,255,255,.015);flex-wrap:wrap}
.rx-vrow .t{font-family:var(--rx-fdata);font-weight:600;color:var(--rx-gold-light);min-width:64px}
.rx-vrow .meta{font-size:13px}.rx-vrow .meta b{font-family:var(--rx-fd)}
.rx-vrow form{margin-left:auto;display:flex;gap:8px;align-items:center}
