/* Skyline Design System · TenureOS edition — Holland Market Research
   Brand source: TenureOS master identity (tenureos.com + TenureOS Logo Factory).
   Core palette: paper #f5f3f0 · ink #0f2f38 · deep teal #1a4d5c · warm gold #d4a574.
   Division accent (exactly one, per factory rules): Analyst Blue #4a7fa5.
   Feel: editorial, evidence-first — light display type, generous whitespace, flat marks.
*/
:root {
  /* TenureOS core — values flow from static/tokens.css (generated from
     src/gs_pipeline/theme.py); fallbacks mirror the same values so the
     stylesheet still works standalone. */
  --tos-paper: var(--tok-paper, #f5f3f0);
  --tos-ink: var(--tok-ink, #0f2f38);
  --tos-teal: var(--tok-teal, #1a4d5c);
  --tos-teal-deep: var(--tok-teal-deep, #143d49);
  --tos-gold: var(--tok-gold, #d4a574);
  --tos-gold-deep: var(--tok-gold-deep, #b3854f);
  --tos-rule: var(--tok-rule, rgba(15, 47, 56, 0.10));

  /* Division accent — Analyst Blue (research/data voice) */
  --tos-accent: var(--tok-accent, #4a7fa5);
  --tos-accent-deep: var(--tok-accent-deep, #3d6a8c);
  --tos-accent-soft: var(--tok-accent-soft, rgba(74, 127, 165, 0.10));

  /* Legacy Skyline aliases (kept so existing templates keep working) */
  --skyline-navy-900: #0b232a;
  --skyline-navy-800: var(--tos-teal-deep);
  --skyline-navy-700: var(--tos-ink);
  --skyline-navy-600: var(--tos-teal);
  --skyline-blue-600: var(--tos-accent-deep);
  --skyline-blue-500: var(--tos-accent);
  --skyline-sky-300: var(--tos-gold);
  --skyline-bg: var(--tos-paper);
  --skyline-panel: #FFFFFF;
  --skyline-line: #e4e0d8;
  --skyline-line-soft: #eceae4;
  --skyline-ink: #2e4750;
  --skyline-muted: #5f6f76;
  --skyline-muted-2: #8d9aa0;
  --skyline-success: #3f8f5f;
  --skyline-danger: #a63d3d;

  --color-primary-50: var(--tos-accent-soft);
  --color-primary-100: #dbe7f0;
  --color-primary-300: #7fa3bf;
  --color-primary-500: var(--tos-accent);
  --color-primary-600: var(--tos-accent-deep);
  --color-primary-700: var(--tos-ink);
  --color-neutral-900: var(--tos-ink);
  --color-neutral-700: #2e4750;
  --color-neutral-500: #5f6f76;
  --color-neutral-300: #8d9aa0;
  --color-neutral-100: #eceae4;
  --color-neutral-bg: var(--tos-paper);
  --color-success: #3f8f5f;
  --color-warning: var(--tos-gold-deep);
  --color-danger: #a63d3d;
  --color-chart-1: var(--tos-accent);
  --color-chart-2: var(--tos-gold);
  --color-chart-3: var(--tos-teal);
  --color-chart-4: #3f8f5f;
  --color-chart-5: var(--tos-gold-deep);
  --color-chart-6: #a63d3d;

  --font-display: 'Lato', 'Helvetica Neue', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body: 'Lato', 'Helvetica Neue', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'SF Mono', Menlo, Monaco, Consolas, monospace;

  /* TenureOS display voice: large and light, tight tracking */
  --type-display: 300 52px / 1.05 var(--font-display);
  --type-display-ls: -1.5px;
  --type-h1: 300 52px / 1.05 var(--font-display);
  --type-h1-ls: -1.5px;
  --type-h2: 400 28px / 1.2 var(--font-display);
  --type-h2-ls: -0.4px;
  --type-h3: 700 17px / 1.25 var(--font-display);
  --type-h3-ls: 0;
  --type-body: 400 16px / 1.65 var(--font-body);
  --type-body-sm: 400 15px / 1.55 var(--font-body);
  --type-caption: 400 13px / 1.5 var(--font-body);
  --type-caption-xs: 400 12px / 1.4 var(--font-body);

  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-28: 28px;
  --space-32: 32px;
  --space-40: 40px;
  --space-56: 56px;
  --space-72: 72px;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 12px;
  --radius-pill: 999px;

  --shadow-sm: 0 1px 3px rgba(15, 47, 56, 0.08);
  --shadow-md: 0 4px 16px rgba(15, 47, 56, 0.10);
  --shadow-lg: 0 12px 32px rgba(15, 47, 56, 0.14);
  --shadow-accent: 0 4px 14px rgba(74, 127, 165, 0.28);

  --color-accent: var(--tos-accent);
  --color-accent-soft: var(--tos-accent-soft);
  --color-accent-dark: var(--tos-accent-deep);
  --color-text: #2e4750;
  --color-text-primary: var(--tos-ink);
  --color-text-secondary: #5f6f76;
  --color-text-tertiary: #8d9aa0;
  --color-bg-primary: #FFFFFF;
  --color-bg-secondary: var(--tos-paper);
  --color-border: #e4e0d8;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{min-height:100%;width:100%;}
body{font:var(--type-body);color:var(--color-text);background:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;}
::selection{background:rgba(212,165,116,.35);color:var(--tos-ink);}
a{color:var(--color-accent);text-decoration:none;}
a:hover{color:var(--tos-ink);text-decoration:underline;}
button,input,textarea,select{font-family:inherit;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:12px 28px;font-size:15px;font-weight:700;line-height:1;border:1px solid transparent;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;text-decoration:none;white-space:nowrap;}
.btn:hover{text-decoration:none;}
.btn-primary{background:var(--tos-teal);color:#fff;border-color:var(--tos-teal);}
.btn-primary:hover{background:var(--tos-teal-deep);color:#fff;}
.btn-secondary{background:transparent;color:var(--tos-ink);border-color:var(--color-border);}
.btn-secondary:hover{background:rgba(15,47,56,.05);color:var(--tos-ink);}
.btn-soft{background:transparent;color:var(--tos-accent);border-color:var(--tos-accent);}
.btn-soft:hover{background:var(--tos-accent-soft);color:var(--tos-accent-deep);}
.btn-ghost{background:transparent;color:var(--color-text-secondary);border-color:transparent;}
.btn-ghost:hover{background:rgba(15,47,56,.05);color:var(--tos-ink);}
input[type="text"],input[type="search"],textarea,select{font:var(--type-body-sm);color:var(--color-text);background:#fff;border:1px solid var(--color-border);border-radius:4px;padding:12px 14px;outline:none;}
input:focus,textarea:focus,select:focus{border-color:var(--tos-accent);box-shadow:0 0 0 3px var(--tos-accent-soft);}
