/* Direction: EstateFlow — soft beige paper, deep navy, teal actions, a touch of gold and orange */
/* Completed by the platform from the short form: both modes, every
   palette token, each text-on-ground pair at its floor. To restyle, write the
   short form again (the decisions in one :root) and it is completed again. */

:root {
  --canvas: #f6f1e7;
  --surface: #ffffff;
  --surface-2: #efe8da;
  --border: #e0d7c4;
  --border-strong: #adaea7;
  --ink: #12213f;
  --muted: #566075;
  --accent: #0f7f86;
  --accent-hover: #0d6c72;
  --accent-ink: #ffffff;
  --accent-text: #0b6870;
  --accent-strong: #0e757b;
  --accent-soft: #d9efee;
  --accent-border: #8ebebb;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #dbe3d3;
  --success-strong: #116d34;
  --warning: #b45309;
  --warning-ink: #ffffff;
  --warning-soft: #eedecc;
  --warning-strong: #994607;
  --danger: #b91c1c;
  --danger-ink: #ffffff;
  --danger-soft: #efd7cf;
  --danger-strong: #b91c1c;
  --chart-1: #0f7f86;
  --chart-2: #5e89d9;
  --chart-3: #7a3c84;
  --chart-4: #c66161;
  --chart-5: #705001;
  --chart-6: #569b4e;

  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Plus Jakarta Sans", system-ui, sans-serif;
  --radius-card: 18px;
  --radius-btn: 12px;
  --radius-input: 12px;
  --shadow-card: 0 1px 2px rgba(18, 33, 63, 0.05), 0 8px 24px -12px rgba(18, 33, 63, 0.18);
  --x-navy: #10213f;
  --x-navy-2: #1a3158;
  --x-teal-deep: #0e5d68;
  --x-on-navy: #f6f1e7;
  --x-dim: #aebbd2;
  --x-gold: #d9a441;
  --x-orange: #e8743b;
  --x-on-photo: #ffffff;
  --x-new: #0f9aa3;
  --x-contacted: #3b82c4;
  --x-interested: #d9a441;
  --x-visit: #e8743b;
  --x-negotiation: #7c5cc4;
  --x-closed: #2e9a5f;
  --font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --font-sans: "Plus Jakarta Sans", system-ui, sans-serif;
  --display-weight: 700;
  --display-tracking: -0.02em;
  --eyebrow-tracking: 0.08em;
}

html[data-theme="dark"] {
  --canvas: #020f10;
  --surface: #1b2728;
  --surface-2: #0f1b1c;
  --border: #253131;
  --border-strong: #4e5758;
  --ink: #f6f1e7;
  --muted: #949791;
  --accent: #0f7f86;
  --accent-hover: #339298;
  --accent-ink: #ffffff;
  --accent-text: #449ba1;
  --accent-strong: #449ba1;
  --accent-soft: #05282a;
  --accent-border: #084145;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #06281a;
  --success-strong: #499c68;
  --warning: #b45309;
  --warning-ink: #ffffff;
  --warning-soft: #291e0e;
  --warning-strong: #c57a40;
  --danger: #b91c1c;
  --danger-ink: #ffffff;
  --danger-soft: #2a1213;
  --danger-strong: #d16969;
  --chart-1: #0f7f86;
  --chart-2: #5e89d9;
  --chart-3: #a464ae;
  --chart-4: #c66161;
  --chart-5: #a47810;
  --chart-6: #569b4e;
}

@media (max-width: 1023px) { #sidebar { transform: translateX(-100%); } #sidebar.open { transform: none; box-shadow: 0 0 0 100vmax rgb(0 0 0 / 0.45); } }
.side-link { display: flex; align-items: center; gap: 0.75rem; padding: 0.65rem 0.9rem; border-radius: 12px; color: var(--x-dim); font-weight: 600; font-size: 0.95rem; transition: background 0.15s, color 0.15s, transform 0.15s; }
.side-link:hover { background: color-mix(in srgb, var(--x-on-navy) 10%, transparent); color: var(--x-on-navy); transform: translateX(2px); }
.side-link:focus-visible { outline: 2px solid var(--x-gold); outline-offset: 2px; }
.side-link[aria-current="page"] { background: color-mix(in srgb, var(--x-on-navy) 14%, transparent); color: var(--x-on-navy); box-shadow: inset 3px 0 0 var(--x-gold); }

.st { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.2rem 0.65rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700; background: var(--surface-2); color: var(--ink); white-space: nowrap; }
.st::before { content: ""; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--dot, var(--muted)); }
[data-s="New"] { --dot: var(--x-new); }
[data-s="Contacted"] { --dot: var(--x-contacted); }
[data-s="Interested"] { --dot: var(--x-interested); }
[data-s="Site Visit"] { --dot: var(--x-visit); }
[data-s="Negotiation"] { --dot: var(--x-negotiation); }
[data-s="Closed"], [data-s="Won"], [data-s="Completed"], [data-s="Available"] { --dot: var(--x-closed); }
[data-s="Pending"], [data-s="In Progress"], [data-s="Under Offer"] { --dot: var(--x-interested); }
[data-s="Lost"], [data-s="Missed"], [data-s="Sold"] { --dot: var(--x-orange); }

.hero-grad { background: linear-gradient(135deg, var(--x-navy) 0%, var(--x-navy-2) 60%, var(--x-teal-deep) 100%); color: var(--x-on-navy); }
.lift { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.lift:hover { transform: translateY(-3px); box-shadow: 0 14px 30px -14px rgb(0 0 0 / 0.35); }
.bar { transform-origin: bottom; animation: grow 0.7s ease both; }
.hbar { transform-origin: left; animation: growx 0.7s ease both; }
@keyframes grow { from { transform: scaleY(0.05); } to { transform: scaleY(1); } }
@keyframes growx { from { transform: scaleX(0.05); } to { transform: scaleX(1); } }
@keyframes rise { from { transform: translateY(14px); } to { transform: none; } }
.rise { animation: rise 0.5s ease both; }
.overdue { box-shadow: inset 4px 0 0 var(--x-orange); background: color-mix(in srgb, var(--x-orange) 8%, var(--surface)); }
.donut { border-radius: 50%; display: grid; place-items: center; }
.donut > div { border-radius: 50%; background: var(--surface); display: grid; place-items: center; }
html.reduced-motion .bar, html.reduced-motion .hbar, html.reduced-motion .rise { animation: none; }
html.reduced-motion .lift:hover, html.reduced-motion .side-link:hover { transform: none; }
dialog.modal { max-width: min(46rem, 94vw); width: 100%; }
dialog.modal::backdrop { background: rgb(0 0 0 / 0.55); }
