/* =========================================================================
   Adealia.ai — Foundations
   Color tokens, type tokens, semantic classes.
   Import this once at the root of any Adealia surface.
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root {
  /* -----------------------------------------------------------------------
     BRAND
     ----------------------------------------------------------------------- */
  --navy:        #1A2547;  /* primary text, brand wordmark, primary CTA */
  --navy-soft:   #2A335A;  /* navy hover/active depth */
  --peach:       #F4B89A;  /* warm accent — the ".ai" */
  --peach-soft:  #FAD6C2;  /* peach hover/active tint */
  --peach-deep:  #D88A63;  /* peach-on-light text (rare) */

  /* -----------------------------------------------------------------------
     NEUTRALS — warm slate, tuned to sit on cream paper
     ----------------------------------------------------------------------- */
  --ink-1:       #1A2547;  /* primary text  (== navy) */
  --ink-2:       #4A526B;  /* secondary text */
  --ink-3:       #7B8298;  /* tertiary text / eyebrows */
  --ink-4:       #A8ADBD;  /* placeholder / disabled */

  --line-1:      #E3DFD6;  /* default border, divider */
  --line-2:      #EDE9DF;  /* subtle divider */
  --line-3:      #D5D0C4;  /* emphasized border */

  --surface-1:   #FAF7F2;  /* page paper — warm cream */
  --surface-2:   #F3EFE6;  /* sunken card, metric tile */
  --surface-3:   #FFFFFF;  /* raised card */
  --surface-4:   #11173A;  /* navy surface (email header, footer) */

  /* -----------------------------------------------------------------------
     SEMANTIC PALETTE — taken verbatim from the production analysis card.
     Use these as `--ok-bg`/`--ok-fg`/`--ok-dot` triplets; do NOT mint new
     tints for new flag types.
     ----------------------------------------------------------------------- */

  /* Grade A / success / approve */
  --ok-bg:       #E1F5EE;
  --ok-fg:       #085041;
  --ok-dot:      #1D9E75;
  --ok-bg-hover: #9FE1CB;

  /* Grade B / good adjacency */
  --good-bg:     #EAF3DE;
  --good-fg:     #27500A;
  --good-dot:    #3B6D11;

  /* LOW confidence / Grade C / amber warn */
  --warn-bg:     #FAEEDA;
  --warn-fg:     #633806;
  --warn-dot:    #BA7517;

  /* GLA discrepancy / Grade D-F / alert */
  --alert-bg:    #FAECE7;
  --alert-fg:    #712B13;
  --alert-dot:   #993C1D;

  /* Info / parcel / distance chip */
  --info-bg:     #E6F1FB;
  --info-fg:     #0C447C;
  --info-dot:    #378ADD;

  /* -----------------------------------------------------------------------
     TYPE
     ----------------------------------------------------------------------- */
  --font-sans:   'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:   'IBM Plex Mono', 'SF Mono', 'JetBrains Mono', monospace;

  --fs-display:  32px;
  --fs-h1:       28px;
  --fs-h2:       20px;
  --fs-h3:       16px;
  --fs-body:     14px;
  --fs-body-lg:  15px;
  --fs-small:    13px;
  --fs-caption:  12px;
  --fs-eyebrow:  11px;

  --lh-tight:    1.15;
  --lh-snug:     1.3;
  --lh-normal:   1.5;

  --tracking-eyebrow: 0.05em;
  --tracking-display: -0.01em;

  /* -----------------------------------------------------------------------
     SPACING — 4px base scale
     ----------------------------------------------------------------------- */
  --space-1:  4px;
  --space-2:  8px;
  --space-3:  12px;
  --space-4:  16px;
  --space-5:  20px;
  --space-6:  24px;
  --space-7:  32px;
  --space-8:  40px;
  --space-9:  56px;
  --space-10: 72px;

  /* Card-standard padding (matches reference card exactly) */
  --pad-card-y: 1rem;       /* 16px */
  --pad-card-x: 1.25rem;    /* 20px */

  /* -----------------------------------------------------------------------
     RADII
     ----------------------------------------------------------------------- */
  --radius-sm:   6px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-pill: 999px;

  /* -----------------------------------------------------------------------
     BORDERS
     ----------------------------------------------------------------------- */
  --border-hairline: 0.5px solid var(--line-1);
  --border-default:  1px solid var(--line-1);
  --border-strong:   1px solid var(--line-3);

  /* -----------------------------------------------------------------------
     SHADOWS — rare. Use border-first.
     ----------------------------------------------------------------------- */
  --shadow-1: 0 1px 0 rgba(26, 37, 71, 0.04), 0 1px 2px rgba(26, 37, 71, 0.06);
  --shadow-2: 0 4px 16px rgba(26, 37, 71, 0.08);
  --shadow-focus: 0 0 0 2px var(--surface-1), 0 0 0 4px var(--navy);

  /* -----------------------------------------------------------------------
     MOTION
     ----------------------------------------------------------------------- */
  --ease-out:    cubic-bezier(0.2, 0.7, 0.2, 1);
  --dur-fast:    100ms;
  --dur-base:    160ms;
  --dur-slow:    200ms;

  /* -----------------------------------------------------------------------
     ICON SIZES
     ----------------------------------------------------------------------- */
  --icon-sm:    14px;
  --icon-md:    16px;
  --icon-lg:    20px;

  /* -----------------------------------------------------------------------
     LEGACY/CROSS-COMPAT TOKENS
     The reference card uses Anthropic-style --color-* names. Alias them here
     so we can paste reference HTML into Adealia surfaces without rewriting.
     ----------------------------------------------------------------------- */
  --color-background-primary:   var(--surface-3);
  --color-background-secondary: var(--surface-2);
  --color-background-tertiary:  var(--line-2);
  --color-text-primary:         var(--ink-1);
  --color-text-secondary:       var(--ink-2);
  --color-text-tertiary:        var(--ink-3);
  --color-text-success:         var(--ok-fg);
  --color-border-secondary:     var(--line-1);
  --color-border-tertiary:      var(--line-2);
  --border-radius-md:           var(--radius-md);
  --border-radius-lg:           var(--radius-lg);
}

/* ===========================================================================
   BASE
   =========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--surface-1);
  color: var(--ink-1);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

::selection { background: var(--peach-soft); color: var(--navy); }

/* ===========================================================================
   TYPE — semantic classes
   =========================================================================== */

.adl-display {
  font-family: var(--font-sans);
  font-size: var(--fs-display);
  font-weight: 700;
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-display);
  color: var(--ink-1);
  margin: 0;
}

.adl-h1 {
  font-family: var(--font-sans);
  font-size: var(--fs-h1);
  font-weight: 600;
  line-height: var(--lh-tight);
  color: var(--ink-1);
  margin: 0;
}

.adl-h2 {
  font-family: var(--font-sans);
  font-size: var(--fs-h2);
  font-weight: 600;
  line-height: 1.2;
  color: var(--ink-1);
  margin: 0;
}

.adl-h3 {
  font-family: var(--font-sans);
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: var(--lh-snug);
  color: var(--ink-1);
  margin: 0;
}

.adl-body {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: var(--lh-normal);
  color: var(--ink-1);
  margin: 0;
}

.adl-body-lg {
  font-family: var(--font-sans);
  font-size: var(--fs-body-lg);
  line-height: var(--lh-normal);
  color: var(--ink-1);
  margin: 0;
}

.adl-small  { font-size: var(--fs-small);   color: var(--ink-2); }
.adl-caption{ font-size: var(--fs-caption); color: var(--ink-3); }

.adl-eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--ink-3);
  margin: 0;
}

.adl-mono {
  font-family: var(--font-mono);
  font-feature-settings: 'tnum' 1;
  font-variant-numeric: tabular-nums;
}

/* Inline brand-accent — the ".ai" treatment */
.adl-accent { color: var(--peach-deep); font-weight: inherit; }

/* ===========================================================================
   CARDS
   =========================================================================== */

.adl-card {
  background: var(--surface-3);
  border: var(--border-hairline);
  border-radius: var(--radius-lg);
  padding: var(--pad-card-y) var(--pad-card-x);
  box-shadow: var(--shadow-1);
}
.adl-card--sunken {
  background: var(--surface-2);
  box-shadow: none;
}
.adl-card--flat {
  box-shadow: none;
}

/* ===========================================================================
   BUTTONS
   =========================================================================== */

.adl-btn {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: 1;
  padding: 10px 16px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  transition:
    background var(--dur-fast) linear,
    color      var(--dur-fast) linear,
    transform  var(--dur-base) var(--ease-out);
}
.adl-btn:active { transform: translateY(1px); }
.adl-btn:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 2px;
}
.adl-btn:disabled { opacity: 0.4; cursor: not-allowed; }

.adl-btn--primary {
  background: var(--navy);
  color: var(--surface-1);
}
.adl-btn--primary:hover { background: var(--navy-soft); }

.adl-btn--approve {
  background: var(--ok-bg);
  color: var(--ok-fg);
  border-color: var(--ok-dot);
}
.adl-btn--approve:hover { background: var(--ok-bg-hover); }

.adl-btn--ghost {
  background: var(--surface-3);
  color: var(--ink-2);
  border-color: var(--line-1);
}
.adl-btn--ghost:hover { background: var(--surface-2); color: var(--ink-1); }

.adl-btn--reject {
  background: var(--surface-2);
  color: var(--ink-2);
  border-color: var(--line-1);
}
.adl-btn--reject:hover { background: var(--line-2); }

/* ===========================================================================
   BADGES
   =========================================================================== */

.adl-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: var(--fs-caption);
  font-weight: 500;
  line-height: 1;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}
.adl-badge--ok    { background: var(--ok-bg);    color: var(--ok-fg); }
.adl-badge--good  { background: var(--good-bg);  color: var(--good-fg); }
.adl-badge--warn  { background: var(--warn-bg);  color: var(--warn-fg); }
.adl-badge--alert { background: var(--alert-bg); color: var(--alert-fg); }
.adl-badge--info  { background: var(--info-bg);  color: var(--info-fg); }

/* ===========================================================================
   METRIC TILE
   =========================================================================== */

.adl-metric {
  background: var(--surface-2);
  border-radius: var(--radius-md);
  padding: 10px 12px;
}
.adl-metric__label { font-size: var(--fs-caption); color: var(--ink-2); margin: 0 0 4px; }
.adl-metric__value {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 18px;
  font-weight: 500;
  color: var(--ink-1);
  margin: 0;
}
.adl-metric__sub   { font-size: var(--fs-eyebrow); color: var(--ink-3); margin: 2px 0 0; }

/* ===========================================================================
   INPUT
   =========================================================================== */

.adl-input {
  width: 100%;
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  color: var(--ink-1);
  background: var(--surface-3);
  border: 1px solid var(--line-1);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  transition: border-color var(--dur-base) var(--ease-out);
}
.adl-input::placeholder { color: var(--ink-4); }
.adl-input:hover { border-color: var(--line-3); }
.adl-input:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(26, 37, 71, 0.08);
}

/* ===========================================================================
   FLAG ROW (parcel flags inside the property card)
   =========================================================================== */

.adl-flag-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 0.5px solid var(--line-1);
  font-size: var(--fs-small);
}
.adl-flag-row:last-child { border-bottom: none; }
.adl-flag-icon {
  width: 18px; height: 18px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; margin-top: 1px;
}
.adl-dot { width: 8px; height: 8px; border-radius: 50%; }
.adl-flag-icon--ok    { background: var(--good-bg); }   .adl-dot--ok    { background: var(--good-dot); }
.adl-flag-icon--warn  { background: var(--warn-bg); }   .adl-dot--warn  { background: var(--warn-dot); }
.adl-flag-icon--alert { background: var(--alert-bg); }  .adl-dot--alert { background: var(--alert-dot); }
.adl-flag-icon--info  { background: var(--info-bg); }   .adl-dot--info  { background: var(--info-dot); }

/* ===========================================================================
   MOTION RESET
   =========================================================================== */

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