/* ═══════════════════════════════════════════════════════════════
   LUFTRUM DESIGN SYSTEM — Design Tokens & Components
   Use this in any Luftrum project for visual consistency.
   ═══════════════════════════════════════════════════════════════ */

/* ── Tokens ─────────────────────────────────────────────────── */
:root {
  /* Backgrounds */
  --bg-primary:    #ffffff;
  --bg-secondary:  #f5f4f0;
  --bg-tertiary:   #eeede8;

  /* Text */
  --text-primary:   #1a1a18;
  --text-secondary: #5f5e5a;
  --text-tertiary:  #888780;

  /* Borders */
  --border:    rgba(0, 0, 0, 0.12);
  --border-md: rgba(0, 0, 0, 0.22);

  /* Semantic colours */
  --success: #0f6e56;
  --danger:  #a32d2d;
  --info:    #185fa5;
  --warning: #854f0b;

  /* Shape */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;

  /* Typography */
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  /* Brand blue (logo fill colour) */
  --brand: #0B3B73;
}

/* ── Dark mode ───────────────────────────────────────────────── */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg-primary:   #1c1c1a;
    --bg-secondary: #252522;
    --bg-tertiary:  #2e2e2b;
    --text-primary:   #f0efe9;
    --text-secondary: #a5a49f;
    --text-tertiary:  #6e6d68;
    --border:    rgba(255, 255, 255, 0.10);
    --border-md: rgba(255, 255, 255, 0.18);
    --success: #1db38a;
    --danger:  #d95252;
    --info:    #4a8fd4;
    --warning: #c48020;
  }
}
[data-theme="dark"] {
  --bg-primary:   #1c1c1a;
  --bg-secondary: #252522;
  --bg-tertiary:  #2e2e2b;
  --text-primary:   #f0efe9;
  --text-secondary: #a5a49f;
  --text-tertiary:  #6e6d68;
  --border:    rgba(255, 255, 255, 0.10);
  --border-md: rgba(255, 255, 255, 0.18);
  --success: #1db38a;
  --danger:  #d95252;
  --info:    #4a8fd4;
  --warning: #c48020;
}

/* ── Base ────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
body {
  font-family: var(--font);
  background-color: var(--bg-secondary);
  color: var(--text-primary);
  line-height: 1.5;
  margin: 0;
  -webkit-font-smoothing: antialiased;
}

/* ── Card ────────────────────────────────────────────────────── */
.card {
  background-color: var(--bg-primary);
  border: 0.5px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.03);
}
.card-hover { transition: box-shadow 0.15s, border-color 0.15s; cursor: pointer; }
.card-hover:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.08); border-color: var(--border-md); }

/* ── Buttons ─────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 8px 16px; border-radius: var(--radius-md);
  font-size: 14px; font-weight: 500; cursor: pointer;
  transition: opacity 0.15s, background-color 0.15s, box-shadow 0.15s;
  border: none; outline: none; text-decoration: none; font-family: var(--font);
}
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-primary   { background-color: var(--text-primary); color: var(--bg-primary); }
.btn-primary:hover:not(:disabled) { opacity: 0.85; }
.btn-secondary { background-color: var(--bg-tertiary); color: var(--text-primary); border: 0.5px solid var(--border-md); }
.btn-secondary:hover:not(:disabled) { background-color: var(--bg-secondary); }
.btn-success   { background-color: var(--success); color: #fff; }
.btn-success:hover:not(:disabled) { opacity: 0.9; }
.btn-danger    { background-color: var(--danger); color: #fff; }
.btn-sm { padding: 5px 12px; font-size: 13px; }
.btn-lg { padding: 12px 24px; font-size: 15px; border-radius: var(--radius-lg); }

/* ── Badges ──────────────────────────────────────────────────── */
.badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px; border-radius: 999px;
  font-size: 11px; font-weight: 600; letter-spacing: 0.02em; white-space: nowrap;
}
.badge-info    { background: color-mix(in srgb, var(--info) 12%, transparent);    color: var(--info); }
.badge-success { background: color-mix(in srgb, var(--success) 12%, transparent); color: var(--success); }
.badge-warning { background: color-mix(in srgb, var(--warning) 12%, transparent); color: var(--warning); }
.badge-danger  { background: color-mix(in srgb, var(--danger) 12%, transparent);  color: var(--danger); }
.badge-neutral { background: var(--bg-tertiary); color: var(--text-secondary); }

/* ── Inputs ──────────────────────────────────────────────────── */
.input {
  width: 100%; padding: 9px 12px;
  background-color: var(--bg-secondary); border: 0.5px solid var(--border-md);
  border-radius: var(--radius-md); color: var(--text-primary);
  font-size: 14px; outline: none; font-family: var(--font);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.input:focus { border-color: var(--text-secondary); box-shadow: 0 0 0 3px rgba(0,0,0,0.06); }
.input::placeholder { color: var(--text-tertiary); }
.input-error { border-color: var(--danger) !important; }

/* ── Typography helpers ──────────────────────────────────────── */
.text-primary   { color: var(--text-primary); }
.text-secondary { color: var(--text-secondary); }
.text-tertiary  { color: var(--text-tertiary); }
.text-success   { color: var(--success); }
.text-danger    { color: var(--danger); }
.text-info      { color: var(--info); }

/* ── Section label (like "PILOT HUB" in sidebar) ────────────── */
.section-label {
  font-size: 16px; font-weight: 600;
  color: var(--text-secondary);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* ── Landing-specific: Hero tile ─────────────────────────────── */
.tile {
  background-color: var(--bg-primary);
  border: 0.5px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  transition: box-shadow 0.2s, transform 0.2s;
}
.tile:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.10); transform: translateY(-2px); }

/* ── Divider ─────────────────────────────────────────────────── */
.divider { height: 0.5px; background: var(--border); border: none; margin: 0; }
