:root {
  /* ── Brand ── */
  --brand: #EB5E28;
  /* ONLY for: sidebar logo, scanner viewfinder, code values, location pin.
     NEVER on buttons, backgrounds, borders, or badges. */

  /* ── Neutrals ── */
  --ink: #171717;
  --body: #525252;
  --gray: #737373;
  --muted: #A3A3A3;
  --silver: #D4D4D4;
  --border: #E5E5E5;
  --subtle: #F0F0F0;
  --bg: #F7F7F7;
  --card: #FFFFFF;

  /* ── Sidebar ── */
  --sb-bg: #1C1C1C;
  --sb-border: #2E2E2E;
  --sb-active: #262626;
  --sb-hover: #212121;
  --sb-text: #A3A3A3;
  --sb-text-hover: #D4D4D4;
  --sb-text-active: #E5E5E5;

  /* ── Status: Success (Green) ── */
  --success: #16a34a;
  --success-bg: #DCFCE7;
  --success-text: #166534;

  /* ── Status: Info (Blue) ── */
  --info: #2563eb;
  --info-bg: #DBEAFE;
  --info-text: #1E40AF;

  /* ── Status: Warning (Amber) ── */
  --warning: #d97706;
  --warning-bg: #FEF3C7;
  --warning-text: #92400E;

  /* ── Status: Danger (Red) ── */
  --danger: #dc2626;
  --danger-bg: #FEE2E2;
  --danger-text: #991B1B;

  /* ── Status: Violet ── */
  --violet: #7c3aed;
  --violet-bg: #F3E8FF;
  --violet-text: #6B21A8;

  /* ── Status: Teal ── */
  --teal: #0d9488;
  --teal-bg: #CCFBF1;
  --teal-text: #115E59;

  /* ── Typography ── */
  --font-ui: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  /* ── Radii ── */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;

  /* ── Scanner Dark (scoped to .scanner-dark) ── */
  --scanner-bg: #0A0A0A;
  --scanner-surface: #111111;
  --scanner-border: #1C1C1C;
  --scanner-ink: #F5F5F5;
  --scanner-sub: #A3A3A3;
  --scanner-dim: #666666;
}

/* ── Sidebar Component Styles ── */
.sidebar .nav-link {
  transition: all 0.2s ease-in-out;
}

.sidebar .nav-link:hover {
  transform: translateX(2px);
}

/* ── Form Inputs ── */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="date"],
input[type="datetime-local"],
select,
textarea {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 14px;
  color: var(--ink);
  width: 100%;
  transition: border-color 0.15s;
}

input:focus,
select:focus,
textarea:focus {
  outline: none !important;
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 1px var(--border) !important;
}

input::placeholder,
textarea::placeholder {
  color: var(--muted);
}

select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23A3A3A3' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
}

/* ── Property History Timeline ── */
.ph-card { background: #fff; border: 1px solid #E5E5E5; border-radius: 12px; padding: 20px; }
.ph-title { font-size: 10px; font-weight: 600; color: #A3A3A3; text-transform: uppercase; letter-spacing: 1.2px; margin-bottom: 16px; }
.ph-group + .ph-group { margin-top: 12px; padding-top: 12px; border-top: 1px solid #F0F0F0; }
.ph-header { display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 2px 0; }
.ph-address { font-size: 13px; font-weight: 500; color: #171717; }
.ph-badge { display: inline-flex; align-items: center; gap: 3px; font-size: 9px; font-weight: 600; padding: 2px 7px; border-radius: 99px; background: #DCFCE7; color: #166534; white-space: nowrap; flex-shrink: 0; margin-left: 6px; }
.ph-chevron { width: 14px; height: 14px; color: #D4D4D4; transition: transform 0.2s; flex-shrink: 0; }
.ph-group.collapsed .ph-chevron { transform: rotate(-90deg); }
.ph-group.collapsed .ph-timeline { max-height: 0; overflow: hidden; opacity: 0; margin-top: 0; }

.ph-timeline { position: relative; margin-top: 8px; padding-left: 20px; }
.ph-timeline::before { content: ''; position: absolute; left: 6px; top: 0; bottom: 0; width: 1.5px; background: #E8E8E8; }

.ph-entry { position: relative; display: flex; align-items: center; justify-content: space-between; padding: 5px 0; }
.ph-dot { position: absolute; top: 50%; border-radius: 50%; }
.ph-dot--active { left: -14px; width: 7px; height: 7px; background: #171717; transform: translateY(-50%); box-shadow: 0 0 0 2px #fff; }
.ph-dot--past { left: -13px; width: 5px; height: 5px; background: #D4D4D4; transform: translateY(-50%); box-shadow: 0 0 0 2px #fff; }

.ph-label { font-size: 12px; font-weight: 500; color: #171717; }
.ph-label--past { font-weight: 400; color: #A3A3A3; }
.ph-year { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #C4C4C4; margin-left: 6px; }
.ph-view { font-size: 11px; color: #D4D4D4; text-decoration: none; transition: color 0.15s; }
.ph-view:hover { color: #171717; }

/* Single entry groups - no vertical line */
.ph-timeline--single::before { display: none; }
