/* Tailwind via CDN at runtime — but for offline-friendly utility classes used
   by index.html and other pages, this file backstops with a minimal subset.
   For full Tailwind, swap in the play CDN in <head>:
     <script src="https://cdn.tailwindcss.com"></script>
   For now this hand-written CSS implements the classes the pages reference. */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
               Helvetica, Arial, sans-serif, "Apple Color Emoji";
  -webkit-font-smoothing: antialiased;
}

/* Color tokens (Tailwind slate-950 etc) */
.bg-slate-950 { background: #020617; }
.bg-slate-900 { background: #0f172a; }
.bg-slate-800 { background: #1e293b; }
.text-slate-100 { color: #f1f5f9; }
.text-slate-400 { color: #94a3b8; }
.text-slate-500 { color: #64748b; }
.text-slate-600 { color: #475569; }
.text-emerald-400 { color: #34d399; }
.text-rose-400 { color: #fb7185; }
.text-rose-500 { color: #f43f5e; }
.text-amber-400 { color: #fbbf24; }
.text-orange-500 { color: #f97316; }
.border-slate-800 { border-color: #1e293b; }

/* Layout */
.p-4 { padding: 1rem; } .p-3 { padding: 0.75rem; }
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.pr-2 { padding-right: 0.5rem; }
.mt-1 { margin-top: 0.25rem; } .mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.max-w-3xl { max-width: 48rem; }
.mx-auto { margin-left: auto; margin-right: auto; }
.space-y-4 > * + * { margin-top: 1rem; }

.grid { display: grid; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.gap-2 { gap: 0.5rem; } .gap-3 { gap: 0.75rem; }

.flex { display: flex; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.text-center { text-align: center; } .text-right { text-align: right; }
.text-left { text-align: left; }

.font-bold { font-weight: 700; } .font-semibold { font-weight: 600; }
.font-mono { font-family: ui-monospace, SFMono-Regular, "Menlo", monospace; }
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.uppercase { text-transform: uppercase; }
.underline { text-decoration: underline; }

.rounded { border-radius: 0.25rem; } .rounded-xl { border-radius: 0.75rem; }
.border-t { border-top: 1px solid; } .border-b { border-bottom: 1px solid; }

.sticky { position: sticky; } .top-0 { top: 0; }
.z-10 { z-index: 10; }
.overflow-x-auto { overflow-x: auto; }

.w-full { width: 100%; }

.backdrop-blur { backdrop-filter: blur(8px); }
.bg-slate-950\/80 { background: rgba(2,6,23,0.8); }

table { border-collapse: collapse; }
th, td { padding: 0; }
button { background: transparent; border: 0; color: inherit; cursor: pointer; }

select {
  border: 1px solid #1e293b;
  border-radius: 0.25rem;
  padding: 0.25rem 0.5rem;
}

a { color: inherit; text-decoration: none; }
a.hover\:bg-slate-800:hover { background: #1e293b; }
