@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Orbitron:wght@700;800;900&display=swap");

@tailwind base;
@tailwind components;
@tailwind utilities;

@font-face {
  font-family: "StalinistOne";
  src: url("/StalinistOne-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --background: 235 45% 4%;
  --foreground: 258 36% 96%;
  --muted: 246 30% 13%;
  --muted-foreground: 247 18% 68%;
  --border: 251 35% 20%;
  --input: 252 42% 24%;
  --ring: 258 92% 70%;
  --primary: 264 93% 66%;
  --primary-foreground: 265 55% 98%;
  --secondary: 244 32% 14%;
  --secondary-foreground: 254 38% 94%;
  --accent: 188 86% 50%;
  --accent-foreground: 230 45% 8%;
  --radius: 0.5rem;
}

* {
  @apply border-border;
  scrollbar-color: hsl(263 92% 68% / 0.42) transparent;
  scrollbar-width: thin;
}

html,
body,
#app {
  height: 100%;
}

body {
  @apply bg-background text-foreground antialiased;
  background-color: hsl(var(--background));
  background-image:
    linear-gradient(90deg, hsl(187 92% 49% / 0.08), transparent 24%, hsl(264 92% 59% / 0.12) 74%, transparent),
    linear-gradient(180deg, hsl(250 60% 16% / 0.68), hsl(235 45% 4%) 48%, hsl(235 54% 3%));
  font-family: "Inter", "Avenir Next", "Segoe UI", sans-serif;
}

button,
input,
select,
textarea {
  font: inherit;
  color-scheme: dark;
}

::selection {
  background: hsl(264 92% 68% / 0.45);
  color: hsl(258 36% 98%);
}

.sybil-wordmark {
  font-family: "StalinistOne", "Orbitron", "Inter", sans-serif;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}

.app-grid-surface {
  background-image:
    linear-gradient(hsl(244 48% 20% / 0.18) 1px, transparent 1px),
    linear-gradient(90deg, hsl(244 48% 20% / 0.14) 1px, transparent 1px);
  background-size: 48px 48px;
}

.glass-panel {
  background:
    linear-gradient(180deg, hsl(243 42% 12% / 0.88), hsl(236 48% 5% / 0.92)),
    hsl(236 48% 6%);
  box-shadow:
    inset 0 1px 0 hsl(252 90% 86% / 0.08),
    0 14px 36px hsl(240 80% 2% / 0.28);
}

.md-content {
  word-break: break-word;
}

.md-table-scroll {
  max-width: 100%;
  margin: 0.35rem 0 1rem;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid hsl(var(--border) / 0.86);
  border-radius: 0.625rem;
  background: hsl(246 34% 10% / 0.76);
  box-shadow: inset 0 1px 0 hsl(258 80% 88% / 0.06);
}

.md-content table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.94em;
  line-height: 1.48;
}

.md-table-scroll::-webkit-scrollbar {
  height: 0.45rem;
}

.md-table-scroll::-webkit-scrollbar-thumb {
  border-radius: 9999px;
  background: hsl(263 78% 72% / 0.34);
}

.md-content th,
.md-content td {
  padding: 0.48rem 0.7rem;
  border-right: 1px solid hsl(var(--border) / 0.72);
  border-bottom: 1px solid hsl(var(--border) / 0.7);
  text-align: left;
  vertical-align: top;
  word-break: normal;
}

.md-content th:last-child,
.md-content td:last-child {
  border-right: 0;
}

.md-content tr:last-child td {
  border-bottom: 0;
}

.md-content th {
  background: hsl(251 40% 15% / 0.92);
  color: hsl(258 36% 98%);
  font-weight: 700;
  white-space: nowrap;
}

.md-content td {
  color: hsl(258 34% 94% / 0.96);
}

.md-content tbody tr:nth-child(odd) td {
  background: hsl(242 32% 10% / 0.58);
}

.md-content tbody tr:nth-child(even) td {
  background: hsl(252 36% 13% / 0.46);
}

.md-content tbody tr:hover td {
  background: hsl(263 46% 20% / 0.48);
}

.md-content p + p {
  margin-top: 0.85rem;
}

.md-content h1,
.md-content h2,
.md-content h3 {
  line-height: 1.25;
  margin-top: 1.2rem;
  margin-bottom: 0.45rem;
  font-weight: 700;
}

.md-content h1 {
  font-size: 1.45rem;
}

.md-content h2 {
  font-size: 1.25rem;
}

.md-content h3 {
  font-size: 1.1rem;
}

.md-content ul,
.md-content ol {
  margin-top: 0.65rem;
  margin-left: 0;
  padding-left: 0;
  list-style: none;
}

.md-content li > ul,
.md-content li > ol {
  margin-top: 0.3rem;
  padding-left: 1.35rem;
}

.md-content li + li {
  margin-top: 0.3rem;
}

.md-content code {
  background: hsl(288 22% 23%);
  border-radius: 0.25rem;
  padding: 0.05rem 0.3rem;
  font-size: 0.86em;
}

.md-content pre {
  overflow-x: auto;
  border-radius: 0.5rem;
  background: hsl(287 28% 13%);
  padding: 0.6rem 0.75rem;
}

.md-content a {
  color: hsl(269 88% 76%);
  text-decoration: underline;
}

.md-cite-token {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  border: 1px solid hsl(274 40% 55%);
  background: hsl(277 33% 21%);
  color: hsl(304 42% 96%);
  font-size: 0.72rem;
  line-height: 1;
  padding: 0.12rem 0.38rem;
  vertical-align: baseline;
}
