/* TeamLinkUp 3.0 — high-contrast brand UI (deep purple defaults) */
:root {
  --tlu-brand: #3b0f7a;
  --tlu-brand-hover: #4c1d95;
  --tlu-brand-muted: #6d28d9;
  --tlu-brand-soft: #ddd6fe;
  --tlu-brand-glow: rgba(59, 15, 122, 0.22);
  --tlu-ink: #14081f;
  --tlu-muted: #4c3d66;
  --tlu-border: #d4c8ec;
  --tlu-surface: #ffffff;
  --tlu-surface-2: #f8f5ff;
  --tlu-surface-dark: #2a1248;
  --tlu-surface-mid: #3d1a66;
  --tlu-page-from: #e8dff8;
  --tlu-page-to: #d9c9f2;
  --tlu-page-mid: #efe8f9;
  --tlu-page-end: #e4daf5;
  --tlu-card-shadow: 0 2px 4px rgba(20, 8, 31, 0.06), 0 12px 32px rgba(59, 15, 122, 0.1);
  --tlu-radius: 1rem;
  --tlu-header-bg: rgba(255, 255, 255, 0.72);
  --tlu-header-scrolled: rgba(255, 255, 255, 0.97);
  --tlu-input-bg: #ffffff;
  --tlu-radial-a: rgba(109, 40, 217, 0.22);
  --tlu-radial-b: rgba(59, 15, 122, 0.18);
}

/* ─── Color schemes (account → Preferences) ─────── */
html.tlu-scheme-indigo {
  --tlu-brand: #3b0f7a;
  --tlu-brand-hover: #4c1d95;
  --tlu-brand-muted: #6d28d9;
  --tlu-brand-soft: #ddd6fe;
  --tlu-brand-glow: rgba(59, 15, 122, 0.22);
  --tlu-border: #d4c8ec;
  --tlu-page-from: #e8dff8;
  --tlu-page-to: #d9c9f2;
  --tlu-page-mid: #efe8f9;
  --tlu-page-end: #e4daf5;
  --tlu-surface-dark: #2a1248;
  --tlu-surface-mid: #3d1a66;
  --tlu-radial-a: rgba(109, 40, 217, 0.22);
  --tlu-radial-b: rgba(59, 15, 122, 0.18);
}
html.tlu-scheme-blue {
  --tlu-brand: #1e3a8a;
  --tlu-brand-hover: #1d4ed8;
  --tlu-brand-muted: #2563eb;
  --tlu-brand-soft: #dbeafe;
  --tlu-brand-glow: rgba(37, 99, 235, 0.22);
  --tlu-border: #bfdbfe;
  --tlu-page-from: #e0eaff;
  --tlu-page-to: #c7d8fc;
  --tlu-page-mid: #edf3ff;
  --tlu-page-end: #dbeafe;
  --tlu-surface-dark: #0f2744;
  --tlu-surface-mid: #163a66;
  --tlu-radial-a: rgba(37, 99, 235, 0.2);
  --tlu-radial-b: rgba(30, 58, 138, 0.16);
}
html.tlu-scheme-teal {
  --tlu-brand: #0f766e;
  --tlu-brand-hover: #0d9488;
  --tlu-brand-muted: #14b8a6;
  --tlu-brand-soft: #ccfbf1;
  --tlu-brand-glow: rgba(15, 118, 110, 0.22);
  --tlu-border: #99f6e4;
  --tlu-page-from: #d5f5f0;
  --tlu-page-to: #b6ebe3;
  --tlu-page-mid: #e7faf6;
  --tlu-page-end: #ccfbf1;
  --tlu-surface-dark: #0a2f2c;
  --tlu-surface-mid: #115e59;
  --tlu-radial-a: rgba(20, 184, 166, 0.22);
  --tlu-radial-b: rgba(15, 118, 110, 0.16);
}
html.tlu-scheme-rose {
  --tlu-brand: #9f1239;
  --tlu-brand-hover: #be123c;
  --tlu-brand-muted: #e11d48;
  --tlu-brand-soft: #ffe4e6;
  --tlu-brand-glow: rgba(190, 18, 60, 0.22);
  --tlu-border: #fecdd3;
  --tlu-page-from: #ffe4e8;
  --tlu-page-to: #fecdd3;
  --tlu-page-mid: #fff1f2;
  --tlu-page-end: #ffe4e6;
  --tlu-surface-dark: #3f0d1c;
  --tlu-surface-mid: #881337;
  --tlu-radial-a: rgba(244, 63, 94, 0.2);
  --tlu-radial-b: rgba(159, 18, 57, 0.16);
}
html.tlu-scheme-amber {
  --tlu-brand: #b45309;
  --tlu-brand-hover: #d97706;
  --tlu-brand-muted: #f59e0b;
  --tlu-brand-soft: #fef3c7;
  --tlu-brand-glow: rgba(217, 119, 6, 0.22);
  --tlu-border: #fde68a;
  --tlu-page-from: #fff7db;
  --tlu-page-to: #fde68a;
  --tlu-page-mid: #fffbeb;
  --tlu-page-end: #fef3c7;
  --tlu-surface-dark: #3b2308;
  --tlu-surface-mid: #92400e;
  --tlu-radial-a: rgba(245, 158, 11, 0.22);
  --tlu-radial-b: rgba(180, 83, 9, 0.16);
}
html.tlu-scheme-slate {
  --tlu-brand: #0f172a;
  --tlu-brand-hover: #1e293b;
  --tlu-brand-muted: #334155;
  --tlu-brand-soft: #e2e8f0;
  --tlu-brand-glow: rgba(15, 23, 42, 0.18);
  --tlu-border: #cbd5e1;
  --tlu-page-from: #f1f5f9;
  --tlu-page-to: #e2e8f0;
  --tlu-page-mid: #f8fafc;
  --tlu-page-end: #e2e8f0;
  --tlu-surface-dark: #0f172a;
  --tlu-surface-mid: #1e293b;
  --tlu-radial-a: rgba(100, 116, 139, 0.18);
  --tlu-radial-b: rgba(15, 23, 42, 0.12);
}

/* ─── Dark theme ────────────────────────────────── */
html.tlu-theme-dark,
html.tlu-theme-system.tlu-os-dark {
  color-scheme: dark;
  --tlu-ink: #f3eefc;
  --tlu-muted: #b9a8d4;
  --tlu-border: #3d2a5c;
  --tlu-surface: #1a1028;
  --tlu-surface-2: #241536;
  --tlu-page-from: #0c0614;
  --tlu-page-to: #160d24;
  --tlu-page-mid: #120a1c;
  --tlu-page-end: #1a1028;
  --tlu-card-shadow: 0 2px 4px rgba(0, 0, 0, 0.35), 0 12px 32px rgba(0, 0, 0, 0.4);
  --tlu-header-bg: rgba(18, 10, 28, 0.82);
  --tlu-header-scrolled: rgba(18, 10, 28, 0.96);
  --tlu-input-bg: #241536;
  --tlu-brand-soft: rgba(109, 40, 217, 0.28);
  --tlu-radial-a: rgba(109, 40, 217, 0.18);
  --tlu-radial-b: rgba(59, 15, 122, 0.22);
}
/* Scheme-tinted dark soft colors */
html.tlu-theme-dark.tlu-scheme-blue,
html.tlu-theme-system.tlu-os-dark.tlu-scheme-blue {
  --tlu-border: #1e3a5f;
  --tlu-surface: #0c1524;
  --tlu-surface-2: #132033;
  --tlu-brand-soft: rgba(37, 99, 235, 0.28);
  --tlu-muted: #93b4e0;
}
html.tlu-theme-dark.tlu-scheme-teal,
html.tlu-theme-system.tlu-os-dark.tlu-scheme-teal {
  --tlu-border: #134e4a;
  --tlu-surface: #0a1c1a;
  --tlu-surface-2: #0f2a27;
  --tlu-brand-soft: rgba(20, 184, 166, 0.25);
  --tlu-muted: #8fd5cb;
}
html.tlu-theme-dark.tlu-scheme-rose,
html.tlu-theme-system.tlu-os-dark.tlu-scheme-rose {
  --tlu-border: #5c1a2e;
  --tlu-surface: #1a0a10;
  --tlu-surface-2: #2a1018;
  --tlu-brand-soft: rgba(225, 29, 72, 0.25);
  --tlu-muted: #e8a0b0;
}
html.tlu-theme-dark.tlu-scheme-amber,
html.tlu-theme-system.tlu-os-dark.tlu-scheme-amber {
  --tlu-border: #5c3d0e;
  --tlu-surface: #1a1206;
  --tlu-surface-2: #2a1c0a;
  --tlu-brand-soft: rgba(245, 158, 11, 0.22);
  --tlu-muted: #e0c48a;
}
html.tlu-theme-dark.tlu-scheme-slate,
html.tlu-theme-system.tlu-os-dark.tlu-scheme-slate {
  --tlu-border: #334155;
  --tlu-surface: #0f172a;
  --tlu-surface-2: #1e293b;
  --tlu-brand-soft: rgba(148, 163, 184, 0.2);
  --tlu-muted: #94a3b8;
  --tlu-ink: #f1f5f9;
}

body {
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--tlu-ink);
  background:
    radial-gradient(1100px 520px at 8% -8%, var(--tlu-radial-a), transparent 55%),
    radial-gradient(900px 480px at 100% 0%, var(--tlu-radial-b), transparent 48%),
    linear-gradient(165deg, var(--tlu-page-from) 0%, var(--tlu-page-to) 38%, var(--tlu-page-mid) 70%, var(--tlu-page-end) 100%);
  background-attachment: fixed;
  min-height: 100vh;
  transition: background 0.2s ease, color 0.15s ease;
}

/* Fonts (account → Preferences) */
body.tlu-font-system {
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
body.tlu-font-inter {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;
}
body.tlu-font-geist {
  font-family: "Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;
}
body.tlu-font-serif {
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
}

/* Density */
body.tlu-density-comfortable {
  --tlu-space-scale: 1;
}
body.tlu-density-compact {
  --tlu-space-scale: 0.85;
  font-size: 0.875rem;
}
body.tlu-density-compact .tlu-btn,
body.tlu-density-compact a.tlu-btn,
body.tlu-density-compact button.tlu-btn {
  padding: 0.4rem 0.9rem !important;
  font-size: 0.8rem !important;
  border-radius: 0.6rem !important;
}
body.tlu-density-compact .tlu-input {
  padding: 0.4rem 0.7rem;
  font-size: 0.8125rem;
  border-radius: 0.6rem;
}
body.tlu-density-compact main.py-10,
body.tlu-density-compact main.py-6 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
body.tlu-density-compact .tlu-card {
  border-radius: 0.75rem;
}
body.tlu-density-compact .p-6 { padding: 1rem !important; }
body.tlu-density-compact .p-5 { padding: 0.85rem !important; }
body.tlu-density-compact .p-4 { padding: 0.75rem !important; }
body.tlu-density-compact .px-4 { padding-left: 0.75rem !important; padding-right: 0.75rem !important; }
body.tlu-density-compact .py-3 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
body.tlu-density-compact .py-2 { padding-top: 0.35rem !important; padding-bottom: 0.35rem !important; }
body.tlu-density-compact .gap-4 { gap: 0.75rem !important; }
body.tlu-density-compact .gap-3 { gap: 0.5rem !important; }
body.tlu-density-compact .space-y-4 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.75rem !important; }
body.tlu-density-compact .space-y-6 > :not([hidden]) ~ :not([hidden]) { margin-top: 1rem !important; }
body.tlu-density-compact .text-lg { font-size: 1rem !important; line-height: 1.4 !important; }
body.tlu-density-compact .text-xl { font-size: 1.1rem !important; line-height: 1.4 !important; }
body.tlu-density-compact .tlu-cal-shell .fc { font-size: 0.8rem; }
body.tlu-density-compact .tlu-cal-shell .fc .fc-toolbar-title { font-size: 1rem; }
body.tlu-density-compact .tlu-cal-shell .fc-event { font-size: 0.7rem; padding: 0 3px; }

/* ─── Cards ─────────────────────────────────────── */
.tlu-card {
  background: var(--tlu-surface);
  border: 1px solid var(--tlu-border);
  border-radius: var(--tlu-radius);
  box-shadow: var(--tlu-card-shadow);
}

/* Dark create-calendar panel */
.tlu-panel-dark {
  background: linear-gradient(160deg, var(--tlu-surface-mid) 0%, var(--tlu-surface-dark) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: calc(var(--tlu-radius) + 4px);
  box-shadow: 0 16px 48px rgba(20, 8, 31, 0.28), 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  color: #f5f0ff;
}
.tlu-panel-dark h2,
.tlu-panel-dark label,
.tlu-panel-dark .tlu-panel-title {
  color: #f8f5ff !important;
}
.tlu-panel-dark .tlu-panel-sub,
.tlu-panel-dark .text-muted-on-dark {
  color: #c4b5e8 !important;
}
.tlu-panel-dark .tlu-input {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
}
.tlu-panel-dark .tlu-input::placeholder {
  color: rgba(255, 255, 255, 0.45);
}
.tlu-panel-dark .tlu-input:focus {
  border-color: #c4b5fd !important;
  box-shadow: 0 0 0 3px rgba(196, 181, 253, 0.25) !important;
  background: rgba(255, 255, 255, 0.14) !important;
}
.tlu-panel-dark select.tlu-input option {
  background: #2a1248;
  color: #fff;
}
.tlu-panel-dark .tlu-tpl {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #f0eaff;
}
.tlu-panel-dark .tlu-tpl:hover {
  border-color: rgba(196, 181, 253, 0.5);
  background: rgba(255, 255, 255, 0.1);
}
.tlu-panel-dark .tlu-tpl.is-active,
.tlu-panel-dark .tlu-tpl:has(input:checked) {
  border-color: #c4b5fd;
  background: rgba(124, 58, 237, 0.35);
  box-shadow: 0 0 0 2px rgba(196, 181, 253, 0.25);
}
.tlu-panel-dark .tlu-tpl strong { color: #fff; }
.tlu-panel-dark .tlu-tpl span { color: #cfc0ef; }
.tlu-panel-dark .tlu-tpl input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* ─── Buttons — !important beats Tailwind preflight ─ */
.tlu-btn,
a.tlu-btn,
button.tlu-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  border-radius: 0.75rem !important;
  padding: 0.65rem 1.25rem !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  border: none !important;
  cursor: pointer !important;
  text-decoration: none !important;
  transition: background 0.15s, box-shadow 0.15s, color 0.15s, transform 0.1s !important;
}

.tlu-btn-primary,
a.tlu-btn-primary,
button.tlu-btn-primary,
button[type="submit"].tlu-btn-primary {
  background: var(--tlu-brand) !important;
  background-color: var(--tlu-brand) !important;
  background-image: none !important;
  color: #ffffff !important;
  box-shadow: 0 2px 4px rgba(46, 16, 101, 0.3), 0 8px 20px var(--tlu-brand-glow) !important;
}
.tlu-btn-primary:hover,
a.tlu-btn-primary:hover,
button.tlu-btn-primary:hover {
  background: var(--tlu-brand-hover) !important;
  background-color: var(--tlu-brand-hover) !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}

.tlu-btn-accent,
button.tlu-btn-accent {
  background: linear-gradient(135deg, #6d28d9 0%, #3b0f7a 100%) !important;
  background-color: #4c1d95 !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(109, 40, 217, 0.4) !important;
  width: 100%;
}
.tlu-btn-accent:hover {
  filter: brightness(1.08);
  color: #fff !important;
}

.tlu-btn-ghost,
a.tlu-btn-ghost,
button.tlu-btn-ghost {
  background: rgba(255, 255, 255, 0.85) !important;
  background-color: rgba(255, 255, 255, 0.85) !important;
  color: var(--tlu-ink) !important;
  border: 1px solid var(--tlu-border) !important;
  box-shadow: none !important;
}
.tlu-btn-ghost:hover {
  background: #fff !important;
  border-color: var(--tlu-brand-muted) !important;
  color: var(--tlu-brand) !important;
}

.tlu-btn-light,
button.tlu-btn-light {
  background: #ffffff !important;
  color: var(--tlu-brand) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  font-weight: 700 !important;
}
.tlu-btn-light:hover {
  background: var(--tlu-brand-soft) !important;
  color: var(--tlu-brand) !important;
}

.tlu-input {
  width: 100%;
  border-radius: 0.75rem;
  border: 1px solid var(--tlu-border);
  background: var(--tlu-input-bg);
  padding: 0.6rem 0.9rem;
  font-size: 0.9rem;
  color: var(--tlu-ink);
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.tlu-input:focus {
  border-color: var(--tlu-brand-muted);
  box-shadow: 0 0 0 3px var(--tlu-brand-glow);
}

/* Force indigo utilities → brand (Tailwind CDN) */
.bg-indigo-600,
.bg-indigo-500,
.hover\:bg-indigo-500:hover,
.hover\:bg-indigo-600:hover {
  background-color: var(--tlu-brand) !important;
  color: #fff !important;
}
.text-indigo-600,
.text-indigo-700,
.hover\:text-indigo-600:hover {
  color: var(--tlu-brand) !important;
}
.border-indigo-600,
.border-indigo-300 {
  border-color: var(--tlu-brand) !important;
}
.bg-indigo-50,
.bg-indigo-50\/40,
.bg-indigo-50\/50,
.bg-indigo-100 {
  background-color: var(--tlu-brand-soft) !important;
}
.ring-indigo-200,
.ring-indigo-100,
.focus\:ring-indigo-200:focus {
  --tw-ring-color: #c4b5fd !important;
}
.focus\:border-indigo-500:focus {
  border-color: var(--tlu-brand-muted) !important;
}

/* ─── Header: solid when scrolled ───────────────── */
.tlu-header {
  background: var(--tlu-header-bg);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.tlu-header.is-scrolled {
  background: var(--tlu-header-scrolled) !important;
  border-bottom-color: var(--tlu-border);
  box-shadow: 0 4px 20px rgba(20, 8, 31, 0.08);
}

.tlu-footer {
  background: linear-gradient(180deg, color-mix(in srgb, var(--tlu-page-from) 60%, transparent), color-mix(in srgb, var(--tlu-brand) 8%, transparent));
  border-top: 1px solid var(--tlu-border);
  margin-top: 3rem;
}

/* ─── Dark theme surfaces (Tailwind utility overrides) ─ */
html.tlu-theme-dark .tlu-card,
html.tlu-theme-system.tlu-os-dark .tlu-card,
html.tlu-theme-dark .bg-white,
html.tlu-theme-system.tlu-os-dark .bg-white {
  background-color: var(--tlu-surface) !important;
  color: var(--tlu-ink);
}
html.tlu-theme-dark .bg-slate-50,
html.tlu-theme-system.tlu-os-dark .bg-slate-50,
html.tlu-theme-dark .bg-gray-50,
html.tlu-theme-system.tlu-os-dark .bg-gray-50,
html.tlu-theme-dark .bg-slate-100,
html.tlu-theme-system.tlu-os-dark .bg-slate-100 {
  background-color: var(--tlu-surface-2) !important;
}
html.tlu-theme-dark .border-slate-200,
html.tlu-theme-system.tlu-os-dark .border-slate-200,
html.tlu-theme-dark .border-slate-300,
html.tlu-theme-system.tlu-os-dark .border-slate-300,
html.tlu-theme-dark .border-gray-200,
html.tlu-theme-system.tlu-os-dark .border-gray-200,
html.tlu-theme-dark .border-gray-300,
html.tlu-theme-system.tlu-os-dark .border-gray-300 {
  border-color: var(--tlu-border) !important;
}
html.tlu-theme-dark .text-slate-900,
html.tlu-theme-system.tlu-os-dark .text-slate-900,
html.tlu-theme-dark .text-slate-800,
html.tlu-theme-system.tlu-os-dark .text-slate-800,
html.tlu-theme-dark .text-gray-900,
html.tlu-theme-system.tlu-os-dark .text-gray-900 {
  color: var(--tlu-ink) !important;
}
html.tlu-theme-dark .text-slate-700,
html.tlu-theme-system.tlu-os-dark .text-slate-700,
html.tlu-theme-dark .text-slate-600,
html.tlu-theme-system.tlu-os-dark .text-slate-600,
html.tlu-theme-dark .text-slate-500,
html.tlu-theme-system.tlu-os-dark .text-slate-500,
html.tlu-theme-dark .text-gray-600,
html.tlu-theme-system.tlu-os-dark .text-gray-600,
html.tlu-theme-dark .text-gray-500,
html.tlu-theme-system.tlu-os-dark .text-gray-500 {
  color: var(--tlu-muted) !important;
}
html.tlu-theme-dark input:not([type="checkbox"]):not([type="radio"]),
html.tlu-theme-system.tlu-os-dark input:not([type="checkbox"]):not([type="radio"]),
html.tlu-theme-dark select,
html.tlu-theme-system.tlu-os-dark select,
html.tlu-theme-dark textarea,
html.tlu-theme-system.tlu-os-dark textarea {
  background-color: var(--tlu-input-bg) !important;
  border-color: var(--tlu-border) !important;
  color: var(--tlu-ink) !important;
}
html.tlu-theme-dark input::placeholder,
html.tlu-theme-system.tlu-os-dark input::placeholder,
html.tlu-theme-dark textarea::placeholder,
html.tlu-theme-system.tlu-os-dark textarea::placeholder {
  color: color-mix(in srgb, var(--tlu-muted) 80%, transparent);
}
html.tlu-theme-dark .hover\:bg-slate-50:hover,
html.tlu-theme-system.tlu-os-dark .hover\:bg-slate-50:hover,
html.tlu-theme-dark .hover\:bg-gray-50:hover,
html.tlu-theme-system.tlu-os-dark .hover\:bg-gray-50:hover {
  background-color: var(--tlu-surface-2) !important;
}
html.tlu-theme-dark .tlu-btn-ghost,
html.tlu-theme-system.tlu-os-dark .tlu-btn-ghost,
html.tlu-theme-dark a.tlu-btn-ghost,
html.tlu-theme-system.tlu-os-dark a.tlu-btn-ghost,
html.tlu-theme-dark button.tlu-btn-ghost,
html.tlu-theme-system.tlu-os-dark button.tlu-btn-ghost {
  background: var(--tlu-surface-2) !important;
  color: var(--tlu-ink) !important;
  border-color: var(--tlu-border) !important;
}
html.tlu-theme-dark .tlu-header.is-scrolled,
html.tlu-theme-system.tlu-os-dark .tlu-header.is-scrolled {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}
/* FullCalendar dark */
html.tlu-theme-dark .tlu-cal-shell .fc,
html.tlu-theme-system.tlu-os-dark .tlu-cal-shell .fc {
  --fc-border-color: var(--tlu-border);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: var(--tlu-surface-2);
  --fc-list-event-hover-bg-color: var(--tlu-surface-2);
  --fc-today-bg-color: var(--tlu-brand-soft);
  color: var(--tlu-ink);
}
html.tlu-theme-dark .tlu-cal-shell .fc .fc-toolbar-title,
html.tlu-theme-system.tlu-os-dark .tlu-cal-shell .fc .fc-toolbar-title,
html.tlu-theme-dark .tlu-cal-shell .fc .fc-col-header-cell-cushion,
html.tlu-theme-system.tlu-os-dark .tlu-cal-shell .fc .fc-col-header-cell-cushion,
html.tlu-theme-dark .tlu-cal-shell .fc .fc-daygrid-day-number,
html.tlu-theme-system.tlu-os-dark .tlu-cal-shell .fc .fc-daygrid-day-number {
  color: var(--tlu-ink);
}
html.tlu-theme-dark .tlu-cal-shell .fc-theme-standard td,
html.tlu-theme-system.tlu-os-dark .tlu-cal-shell .fc-theme-standard td,
html.tlu-theme-dark .tlu-cal-shell .fc-theme-standard th,
html.tlu-theme-system.tlu-os-dark .tlu-cal-shell .fc-theme-standard th,
html.tlu-theme-dark .tlu-cal-shell .fc-theme-standard .fc-scrollgrid,
html.tlu-theme-system.tlu-os-dark .tlu-cal-shell .fc-theme-standard .fc-scrollgrid {
  border-color: var(--tlu-border);
}
html.tlu-theme-dark .tlu-collapse-btn,
html.tlu-theme-system.tlu-os-dark .tlu-collapse-btn {
  background: var(--tlu-surface) !important;
  border-color: var(--tlu-border) !important;
  color: var(--tlu-ink) !important;
}

/* FullCalendar */
.fc .fc-button-primary {
  background-color: var(--tlu-brand) !important;
  border-color: var(--tlu-brand) !important;
}
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
  filter: brightness(1.08);
}

[x-cloak] { display: none !important; }

.tlu-cal-shell .fc {
  --fc-border-color: var(--tlu-border);
  --fc-today-bg-color: var(--tlu-brand-soft);
  --fc-page-bg-color: transparent;
  font-size: 0.9rem;
}
.tlu-cal-shell .fc .fc-toolbar-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--tlu-ink);
}
.tlu-cal-shell .fc-event {
  border: none !important;
  border-radius: 4px;
  padding: 1px 4px;
  font-size: 0.75rem;
  cursor: pointer;
}
.tlu-cal-shell .fc-daygrid-event { white-space: nowrap; }

.prose-tlu h2 {
  margin-top: 1.75rem;
  margin-bottom: 0.5rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--tlu-ink);
}
.prose-tlu p,
.prose-tlu li {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--tlu-muted);
  margin-bottom: 0.65rem;
}
.prose-tlu ul {
  list-style: disc;
  padding-left: 1.25rem;
  margin-bottom: 0.75rem;
}
.prose-tlu a {
  color: var(--tlu-brand);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Cookie bar */
.tlu-cookie {
  position: fixed;
  z-index: 60;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  max-width: 32rem;
  margin-left: auto;
  margin-right: auto;
  padding: 1rem 1.15rem;
  border-radius: 1rem;
  background: rgba(20, 8, 31, 0.96);
  color: #f5f0fc;
  box-shadow: 0 12px 40px rgba(20, 8, 31, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.tlu-cookie a { color: #c4b5fd; text-decoration: underline; text-underline-offset: 2px; }
.tlu-cookie-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.tlu-cookie .tlu-btn-primary {
  background: #fff !important;
  color: var(--tlu-brand) !important;
  box-shadow: none !important;
}
.tlu-cookie .tlu-btn-ghost {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  color: #e9e0f8 !important;
}
