@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap");

:root {
  --iuve-bg: #f4f8ff;
  --iuve-bg-elevated: #eef4ff;
  --iuve-surface: #ffffff;
  --iuve-surface-soft: rgba(255, 255, 255, 0.85);
  --iuve-text: #0f1a33;
  --iuve-muted: #54617c;
  --iuve-border: rgba(15, 40, 95, 0.14);
  --iuve-border-strong: rgba(15, 65, 170, 0.25);
  --iuve-primary: #0b5fff;
  --iuve-primary-hover: #0a4fe0;
  --iuve-primary-soft: rgba(11, 95, 255, 0.12);
  --iuve-accent: #18a37a;
  --iuve-accent-soft: rgba(24, 163, 122, 0.14);
  --iuve-danger: #c92a2a;
  --iuve-warning: #b7791f;
  --iuve-success: #0e9f6e;
  --iuve-shadow-sm: 0 6px 18px rgba(12, 30, 74, 0.08);
  --iuve-shadow-md: 0 14px 34px rgba(12, 30, 74, 0.11);
  --iuve-shadow-lg: 0 22px 60px rgba(12, 30, 74, 0.16);
  --iuve-radius-sm: 10px;
  --iuve-radius-md: 14px;
  --iuve-radius-lg: 18px;
  --iuve-radius-xl: 24px;
  --iuve-space-1: 6px;
  --iuve-space-2: 10px;
  --iuve-space-3: 14px;
  --iuve-space-4: 18px;
  --iuve-space-5: 24px;
  --iuve-space-6: 32px;
  --iuve-font-sans: "IBM Plex Sans", "Segoe UI", sans-serif;
  --iuve-font-display: "Space Grotesk", "IBM Plex Sans", sans-serif;
}

html,
body {
  color: var(--iuve-text);
  font-family: var(--iuve-font-sans);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--iuve-font-display);
  letter-spacing: -0.02em;
  color: var(--iuve-text);
}

a {
  color: var(--iuve-primary);
  text-underline-offset: 2px;
}

a:hover {
  color: var(--iuve-primary-hover);
}

button,
input,
select,
textarea {
  font-family: var(--iuve-font-sans);
}

button,
[role="button"],
.button,
.btn {
  transition: transform 0.16s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

button:hover,
[role="button"]:hover,
.button:hover,
.btn:hover {
  transform: translateY(-1px);
}

button:active,
[role="button"]:active,
.button:active,
.btn:active {
  transform: translateY(0);
}

input,
select,
textarea {
  border-radius: var(--iuve-radius-sm);
  border-color: var(--iuve-border);
}

input:focus,
select:focus,
textarea:focus,
button:focus-visible,
a:focus-visible {
  outline: 2px solid rgba(11, 95, 255, 0.24);
  outline-offset: 2px;
  box-shadow: 0 0 0 3px rgba(11, 95, 255, 0.12);
}

.card,
.panel,
.auth-card,
.topbar,
.hero-card,
.section {
  border-radius: var(--iuve-radius-lg);
  border-color: var(--iuve-border);
  box-shadow: var(--iuve-shadow-sm);
}

table {
  width: 100%;
  border-collapse: collapse;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid var(--iuve-border);
  border-radius: var(--iuve-radius-md);
  overflow: hidden;
}

thead th {
  background: linear-gradient(180deg, rgba(11, 95, 255, 0.1), rgba(11, 95, 255, 0.04));
  color: var(--iuve-text);
  font-family: var(--iuve-font-display);
  font-size: 0.84rem;
  letter-spacing: 0.02em;
}

th,
td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(15, 40, 95, 0.09);
  vertical-align: top;
}

tbody tr:hover {
  background: rgba(11, 95, 255, 0.035);
}

label {
  color: var(--iuve-text);
}

.alert,
.flash,
.notice {
  border-radius: var(--iuve-radius-sm);
  border: 1px solid var(--iuve-border);
  box-shadow: var(--iuve-shadow-sm);
}

.empty,
.empty-state,
.no-data,
.placeholder {
  border: 1px dashed var(--iuve-border-strong);
  background: rgba(11, 95, 255, 0.05);
  border-radius: var(--iuve-radius-md);
  color: var(--iuve-muted);
  padding: var(--iuve-space-4);
}

@media (max-width: 900px) {
  :root {
    --iuve-space-5: 20px;
    --iuve-space-6: 26px;
  }

  h1 {
    font-size: clamp(1.5rem, 5.6vw, 2.1rem);
  }

  h2 {
    font-size: clamp(1.2rem, 4.8vw, 1.7rem);
  }
}

@media (max-width: 640px) {
  :root {
    --iuve-space-4: 14px;
    --iuve-space-5: 18px;
    --iuve-space-6: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
