/*
 * generic.css  ·  AUTO-GENERATED by scripts/consolidate_css.py
 *
 * Bucket: generic
 * Rules in source files: 23
 * Rules after dedup:     13
 * Source files merged:
 *   - chat-panel/css/chat-panel.css
 *   - css/chat-panel.css
 *   - css/clash-manager.css
 *   - css/index-styles.css
 *   - css/shared-styles.css
 *   - sandbox/sandbox.css
 *
 * MANUAL ADDITION: the Adelphos design-token :root block at the top.
 * If consolidate_css.py is re-run, preserve this :root block.
 */

/* ────────────────────────────────────────────────────────────────────
   Adelphos design tokens — derived from Sections 1+2 of templates/home.html
   THE single law: every token here traces to a value used on the hero,
   the BUILD cycler, the Revit feature panel, the painted artsy frame,
   or the dark #2f2f2f rp-commands-card. Nothing else. Anything new
   needs explicit user sign-off.
   See: /opt/cursor/artifacts/PLAN.md "The single law"
   See: /workspace/frontend-design/_index.md (Adelphos brand override)
   ──────────────────────────────────────────────────────────────────── */
:root {
  /* Surfaces */
  --ad-bg:           #f5f3ef;            /* warm off-white body bg (Section 2) */
  --ad-bg-dark:      #1a1a1a;            /* dark mode body — never pure black */
  --ad-panel:        #ffffff;            /* light panel surface inside content cards */
  --ad-panel-dark:   transparent;        /* dark mode panels go transparent */
  --ad-card-dark:    #2f2f2f;            /* THE dark feature card surface (rp-commands-card) */
  --ad-painted-overlay: rgba(0,0,0,0.30);/* the 30% black overlay on revit-bg.png */

  /* Brand + greyscale (single accent) */
  --ad-teal:         #156082;
  --ad-teal-light:   #4a9bb8;            /* dark-mode accent shift */
  --ad-teal-deep:    #0e4560;            /* button hover darken */
  --ad-text-0:       #000000;            /* highest emphasis */
  --ad-text-1:       #222222;            /* body headings */
  --ad-text-2:       #444444;            /* body text on light bg */
  --ad-text-3:       #555555;            /* prose body (the View 6 standard) */
  --ad-text-4:       #666666;            /* tertiary text */
  --ad-text-5:       #888888;            /* muted UI labels */
  --ad-text-6:       #999999;            /* subtle indicators */
  --ad-border:       rgba(0,0,0,0.06);   /* thin separator lines */
  --ad-border-card:  rgba(255,255,255,0.12); /* row separators inside dark cards */

  /* Type stacks */
  --ad-font-display: 'Inter Display', 'Inter', sans-serif;
  --ad-font-body:    'Inter', sans-serif;
  --ad-font-brand:   'Gotham Medium', 'Montserrat', Helvetica, Arial, sans-serif;
  --ad-font-mono:    'JetBrains Mono', monospace;

  /* Type sizes (the Adelphos production scale) */
  --ad-text-hero:     30px;              /* hero H1 base; clamps to 44px on large viewports */
  --ad-text-h2:       30px;              /* section H2 default */
  --ad-text-h2-big:   44px;              /* dark-card hero (rp-card-header) */
  --ad-text-card:     18px;              /* feature row title in dark cards (rp-feat-title) */
  --ad-text-row:      16px;              /* feature row desc + service body */
  --ad-text-body:     14px;              /* THE Adelphos body size (View 6) */
  --ad-text-mini:     11px;              /* badges, kickers, surfs */

  /* Weights — only 300 + 500 + 600 (last only in dark cards) */
  --ad-w-light:       300;
  --ad-w-medium:      500;
  --ad-w-card:        600;               /* DARK CARD HEADINGS ONLY */

  /* Line heights */
  --ad-lh-hero:       1.18;
  --ad-lh-card:       1.15;              /* tight on the rp-card-header */
  --ad-lh-h3:         1.4;
  --ad-lh-row:        1.4;               /* dark card row desc */
  --ad-lh-prose:      1.7;               /* service description on light cards */
  --ad-lh-body:       1.8;               /* THE View 6 body line-height */

  /* Letter-spacing */
  --ad-ls-hero:       -0.025em;          /* hero + section H2 */
  --ad-ls-card:       -0.025em;
  --ad-ls-row:        -0.01em;           /* feature row title */
  --ad-ls-mini:       0.10em;            /* badge / kicker uppercase */
  --ad-ls-display:    5pt;               /* BUILD cycler / logo Gotham */
  --ad-ls-service:    2pt;               /* service item title Gotham */

  /* Reading column */
  --ad-measure:       400px;             /* THE Adelphos prose column */

  /* Motion (Adelphos override values) */
  --ad-curve-pos:     cubic-bezier(0.65, 0, 0.35, 1);
  --ad-d-position:   1s;                 /* hero text travel */
  --ad-d-panel:      0.8s;                /* right panel reveal */
  --ad-d-fade:       0.5s;                /* opacity in/out */
  --ad-d-section:    0.4s;                /* services expand etc. */
  --ad-d-hover:      0.3s;
  --ad-d-button:     0.2s;
  --ad-d-press:      0.1s;
  --ad-d-shine:      2.5s;                /* infinite button shine */
}

html.dark-mode {
  --ad-bg:           var(--ad-bg-dark);
  --ad-panel:        var(--ad-panel-dark);
  --ad-text-0:       #ffffff;
  --ad-text-1:       #e0e0e0;
  --ad-text-2:       #cccccc;
  --ad-text-3:       #aaaaaa;
  --ad-text-4:       #999999;
  --ad-text-5:       #888888;
  --ad-text-6:       #666666;
  --ad-border:       rgba(255,255,255,0.10);
}

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

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body,
html {
  background: #ffffff;
  font-family: 'Inter', sans-serif;
  height: 100%;
  overflow: hidden;
  width: 100%;
}

@media (max-width: 767px) {
  body,
  html {
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
}

body,
html {
  background: #ffffff;
  cursor: default;
  font-family: 'Inter', sans-serif;
  height: 100%;
  overflow: hidden;
  width: 100%;
}

/* Adelphos zoom rule: only the live SPA (which uses .has-view-system on
   <body> for view 0..11 navigation) gets the 0.90 scale. Sandbox dist
   pages run at 100% so a 30px heading actually renders at 30px. */
body.has-view-system {
  zoom: 0.90;
}

@media (max-width: 767px) {
  body.has-view-system {
    zoom: 1 !important;
  }
}

h1,
h2 {
  color: #222222;
  font-family: 'Inter', sans-serif;
  font-optical-sizing: auto;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.3;
}

h3 {
  color: #333333;
  font-family: 'Inter', sans-serif;
  font-optical-sizing: auto;
  font-size: 22px;
  font-weight: 300;
  line-height: 1.4;
}

p {
  color: #444444;
  font-family: 'Inter', sans-serif;
  font-optical-sizing: auto;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.7;
}

:root {
  --accent-blue: #156082;
  --accent-blue-hover: #0e4560;
  --accent-green: #156082;
  --accent-green-hover: #0e4560;
  --bg-card: rgba(255,255,255,0.95);
  --bg-dark-card: #2a2a2a;
  --bg-primary: #ffffff;
  --bg-secondary: #f8f8f8;
  --bg-tertiary: #f0f0f0;
  --border-light: rgba(0,0,0,0.06);
  --border-medium: rgba(0,0,0,0.08);
  --node-active: linear-gradient(135deg, #1a7a9e 0%, #156082 100%);
  --node-glow: rgba(21, 96, 130, 0.3);
  --node-idle: linear-gradient(135deg, #666 0%, #444 100%);
  --node-pulse: rgba(21, 96, 130, 0.5);
  --stage-0: #F5A623;
  --stage-1: #E91E8C;
  --stage-2: #4FC3F7;
  --stage-3: #FFEB3B;
  --stage-4: #26A69A;
  --stage-5: #9C27B0;
  --stage-6: #FDD835;
  --stage-7: #8BC34A;
  --teal: #156082;
  --teal-light: #4a9bb8;
  --text-faint: #888;
  --text-light: #666;
  --text-muted: #555;
  --text-primary: #222;
  --text-secondary: #444;
  --text-subtle: #999;
}

:root {
  --accent-blue: #156082;
  --bg-primary: #ffffff;
  --bg-secondary: #f8f8f8;
  --bg-tertiary: #f0f0f0;
  --border-light: rgba(0,0,0,0.06);
  --border-medium: rgba(0,0,0,0.08);
  --teal: #156082;
  --teal-light: #4a9bb8;
  --text-faint: #888;
  --text-light: #666;
  --text-muted: #555;
  --text-primary: #222;
  --text-secondary: #444;
  --text-subtle: #999;
}

:root {
  --bg-card: #ffffff;
  --bg-soft: #f6f7f9;
  --border: rgba(0,0,0,0.08);
  --border-strong: rgba(0,0,0,0.16);
  --brand-teal: #156082;
  --brand-teal-dark: #0e4560;
  --co-bg-danger: oklch(97% 0.014 25);
  --co-bg-info: oklch(97% 0.014 240);
  --co-bg-success: oklch(97% 0.014 150);
  --co-bg-warn: oklch(97% 0.018 80);
  --co-rule-danger: oklch(58% 0.16 25);
  --co-rule-info: oklch(55% 0.13 240);
  --co-rule-success: oklch(55% 0.12 150);
  --co-rule-warn: oklch(60% 0.12 70);
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  --font-display: 'Gotham Medium', 'Inter', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
  --font-sans: 'Inter', sans-serif;
  --max-content: 1640px;
  --motion-base: 220ms;
  --motion-fast: 150ms;
  --motion-slow: 850ms;
  --pill-bg-danger: oklch(95% 0.025 25);
  --pill-bg-info: oklch(95% 0.024 240);
  --pill-bg-neutral: oklch(96% 0.005 240);
  --pill-bg-success: oklch(95% 0.025 150);
  --pill-bg-warn: oklch(95% 0.030 80);
  --pill-fg-danger: oklch(40% 0.13  25);
  --pill-fg-info: oklch(38% 0.10  240);
  --pill-fg-neutral: oklch(38% 0.01  240);
  --pill-fg-success: oklch(38% 0.09  150);
  --pill-fg-warn: oklch(38% 0.10  60);
  --radius-lg: 16px;
  --radius-md: 12px;
  --radius-sm: 6px;
  --rail-left-w: 260px;
  --rail-right-w: 240px;
  --shadow-lg: 0 6px 12px rgba(0,0,0,0.08), 0 18px 36px rgba(0,0,0,0.10);
  --shadow-md: 0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.05);
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.04);
  --shell-padding-top: 120px;
  --space-2xl: 48px;
  --space-2xs: 4px;
  --space-3xl: 64px;
  --space-4xl: 96px;
  --space-lg: 24px;
  --space-md: 16px;
  --space-sm: 12px;
  --space-xl: 32px;
  --space-xs: 8px;
  --text: #1a1a1a;
  --text-muted: #6b7280;
}
