/* Shared look for every Lease Radar page: color tokens, fonts, the floating nav and buttons.
   home.css and app.css build on these; change the brand here, not in those files. */
:root {
  --bg: #F6F7F6;
  --surface: #FFFFFF;
  --surface-2: #EEF1F0;
  --ink: #0E151C;
  --muted: #4E5964;
  --line: #DCE1E0;
  --grid: #E0E5E4;
  --accent: #A51C30;
  --accent-soft: #F8EBED;
  --crimson: #A51C30;
  --on-crimson: #FFFFFF;
  --good: #1F7A4D;
  --good-soft: #E3F2EA;
  --warn: #8A5600;
  --warn-soft: #FBF1DC;
  --glass: rgba(255, 255, 255, 0.66);
  --glass-line: rgba(14, 21, 28, 0.08);
  --shadow-lg: 0 34px 70px -38px rgba(14, 21, 28, 0.42);
  --shadow-sm: 0 8px 22px -14px rgba(14, 21, 28, 0.35);
  /* house illustrations */
  --sky-a: #DDE8F1; --sky-b: #ECE6DA; --sky-c: #E1ECE3;
  --wall-brick: #B86A55; --wall-stone: #D3C6AA; --wall-slate: #8EA0B2; --wall-blue: #9DB6CC; --wall-cream: #E3D6BA; --wall-sage: #A9BFA2;
  --sun: #F6E1B0; --ground: #D6E0D1; --tree: #7FA88A; --trim: #2B3440; --win: rgba(255, 255, 255, 0.88);
  --f-display: "Schibsted Grotesk", "Public Sans", system-ui, sans-serif;
  --f-body: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-brand: "Big Shoulders Display", "Arial Narrow", sans-serif;
  --f-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0A0E12; --surface: #121920; --surface-2: #18212A; --ink: #ECEFF1; --muted: #9AA5AF; --line: #26313B; --grid: #161E25;
    --accent: #EE5A70; --accent-soft: #2A1218; --good: #5CC48B; --good-soft: #15291E; --warn: #E3A43C; --warn-soft: #33270F;
    --glass: rgba(18, 25, 32, 0.64); --glass-line: rgba(255, 255, 255, 0.08);
    --shadow-lg: 0 34px 70px -38px rgba(0, 0, 0, 0.9); --shadow-sm: 0 8px 22px -14px rgba(0, 0, 0, 0.8);
    --sky-a: #1A2633; --sky-b: #26231E; --sky-c: #1B2620;
    --wall-brick: #7A4436; --wall-stone: #6E6656; --wall-slate: #4A5866; --wall-blue: #4B6074; --wall-cream: #6F6650; --wall-sage: #4E6249;
    --sun: #5A5040; --ground: #1D2821; --tree: #3F6450; --trim: #0B1015; --win: rgba(255, 255, 255, 0.2);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0A0E12; --surface: #121920; --surface-2: #18212A; --ink: #ECEFF1; --muted: #9AA5AF; --line: #26313B; --grid: #161E25;
  --accent: #EE5A70; --accent-soft: #2A1218; --good: #5CC48B; --good-soft: #15291E; --warn: #E3A43C; --warn-soft: #33270F;
  --glass: rgba(18, 25, 32, 0.64); --glass-line: rgba(255, 255, 255, 0.08);
  --shadow-lg: 0 34px 70px -38px rgba(0, 0, 0, 0.9); --shadow-sm: 0 8px 22px -14px rgba(0, 0, 0, 0.8);
  --sky-a: #1A2633; --sky-b: #26231E; --sky-c: #1B2620;
  --wall-brick: #7A4436; --wall-stone: #6E6656; --wall-slate: #4A5866; --wall-blue: #4B6074; --wall-cream: #6F6650; --wall-sage: #4E6249;
  --sun: #5A5040; --ground: #1D2821; --tree: #3F6450; --trim: #0B1015; --win: rgba(255, 255, 255, 0.2);
  color-scheme: dark;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; }
body { background: var(--bg); color: var(--ink); font-family: var(--f-body); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, select, input { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 8px; }
h1, h2, h3 { margin: 0; font-family: var(--f-display); text-wrap: balance; letter-spacing: -0.02em; }
.wrap { max-width: 1180px; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.tnum { font-variant-numeric: tabular-nums; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ---------- Nav ---------- */
.nav-shell { position: fixed; top: calc(env(safe-area-inset-top, 0px) + 14px); left: 0; right: 0; z-index: 1100; pointer-events: none;
  padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.nav { pointer-events: auto; max-width: 1148px; margin: 0 auto; display: flex; align-items: center; gap: 16px; padding: 8px 8px 8px 12px;
  border-radius: 18px; background: var(--glass); border: 1px solid var(--glass-line);
  backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); transition: box-shadow .3s ease; }
.nav.scrolled { box-shadow: 0 14px 34px -20px rgba(14, 21, 28, 0.45); }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; white-space: nowrap; }
.mark { flex: none; display: block; }
.mark rect { fill: var(--crimson); }
.mark path { fill: none; stroke: #FFFFFF; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.wm { font-family: var(--f-brand); font-weight: 800; font-size: 22px; letter-spacing: 0.03em; text-transform: uppercase; line-height: 1; }
.wm b { color: var(--accent); font-weight: 900; }
.nav-links { display: flex; gap: 2px; margin-left: auto; }
.nav-links a { text-decoration: none; font-size: 15px; font-weight: 600; color: var(--muted); padding: 10px 14px; border-radius: 11px; transition: background .2s, color .2s; }
.nav-links a:hover, .nav-links a[aria-current="page"] { background: var(--surface-2); color: var(--ink); }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border-radius: 13px;
  font-family: var(--f-display); font-weight: 700; font-size: 16px; text-decoration: none; border: 0; cursor: pointer; white-space: nowrap;
  transition: transform .2s ease, box-shadow .2s ease, background .2s; }
.btn:hover { transform: translateY(-1px); }
.btn svg { transition: transform .2s ease; }
.btn:hover svg { transform: translateX(3px); }
.btn:disabled { opacity: .6; cursor: wait; transform: none; }
.btn-accent { background: var(--crimson); color: var(--on-crimson); box-shadow: 0 12px 24px -14px rgba(165, 28, 48, 0.85); }
.btn-ink { background: var(--ink); color: var(--bg); }
.btn-ghost { background: transparent; color: var(--accent); box-shadow: inset 0 0 0 1.5px var(--accent); }
.nav .btn { min-height: 44px; padding: 0 18px; font-size: 15px; border-radius: 12px; }

@media (max-width: 860px) { .nav-links { display: none; } .nav .btn { margin-left: auto; } }
@media (max-width: 440px) { .wm { font-size: 19px; } .nav .btn { padding: 0 14px; } }
@media (max-width: 360px) { .nav { gap: 8px; } .mark { width: 30px; height: 30px; } .wm { font-size: 17px; } .nav .btn { padding: 0 12px; font-size: 14px; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
