:root {
  color-scheme: dark;
  --ink: #07111f;
  --panel: rgba(9, 20, 35, 0.88);
  --panel-solid: #0a1626;
  --line: rgba(148, 163, 184, 0.18);
  --accent: #82f7c4;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--ink); }
body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 12% 8%, rgba(33, 171, 140, 0.16), transparent 32rem),
    radial-gradient(circle at 92% 78%, rgba(38, 100, 179, 0.13), transparent 38rem),
    var(--ink);
  color: #f8fafc;
  font-family: "DM Sans", "Noto Sans SC", sans-serif;
}
body::before {
  position: fixed;
  inset: 0;
  pointer-events: none;
  content: "";
  opacity: 0.14;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(to bottom, black, transparent 88%);
}
button, input, textarea, select { font: inherit; }
.page-shell { position: relative; min-height: 100vh; overflow: hidden; }
.hidden-view { display: none !important; }
.brand-mark {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 1px solid rgba(130, 247, 196, 0.45);
  border-radius: 0.85rem;
  background: linear-gradient(145deg, rgba(130, 247, 196, 0.18), rgba(130, 247, 196, 0.04));
  box-shadow: inset 0 0 24px rgba(130, 247, 196, 0.08);
}
.glass-card {
  border: 1px solid var(--line);
  border-radius: 1.25rem;
  background: var(--panel);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(22px);
}
.field-label { color: #d9e2ec; font-size: 0.875rem; font-weight: 600; }
.text-field, .select-field {
  width: 100%;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 0.8rem;
  outline: none;
  background: rgba(4, 12, 23, 0.72);
  color: #fff;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}
.text-field::placeholder { color: #64748b; }
.text-field:hover, .select-field:hover { border-color: rgba(148, 163, 184, 0.42); }
.text-field:focus, .select-field:focus {
  border-color: var(--accent);
  background: rgba(4, 12, 23, 0.94);
  box-shadow: 0 0 0 3px rgba(130, 247, 196, 0.12);
}
.text-field[aria-invalid="true"] { border-color: rgba(252, 165, 165, 0.7); }
.primary-button {
  border: 1px solid rgba(183, 255, 223, 0.42);
  border-radius: 0.8rem;
  background: var(--accent);
  color: #062117;
  box-shadow: 0 10px 26px rgba(78, 229, 168, 0.14);
  transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}
.primary-button:hover:not(:disabled) { transform: translateY(-1px); background: #a2fbd5; box-shadow: 0 14px 32px rgba(78, 229, 168, 0.2); }
.secondary-button {
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.04);
  color: #dbe6f2;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}
.secondary-button:hover:not(:disabled) { border-color: rgba(148, 163, 184, 0.4); background: rgba(255, 255, 255, 0.08); color: white; }
.danger-button { border-color: rgba(248, 113, 113, 0.24); color: #fca5a5; }
.danger-button:hover:not(:disabled) { border-color: rgba(248, 113, 113, 0.45); background: rgba(248, 113, 113, 0.1); color: #fecaca; }
.primary-button:disabled, .secondary-button:disabled { cursor: not-allowed; opacity: 0.55; }
.primary-button:focus-visible, .secondary-button:focus-visible, .tab-button:focus-visible, .type-option:focus-within {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
.stat-card { border: 1px solid var(--line); background: rgba(9, 20, 35, 0.58); }
.service-card { border: 1px solid var(--line); background: rgba(9, 20, 35, 0.7); transition: border-color 160ms ease, transform 160ms ease; }
.service-card:hover { border-color: rgba(148, 163, 184, 0.32); transform: translateY(-1px); }
.nav-link[aria-current="page"] { border-color: rgba(130, 247, 196, 0.35); background: rgba(130, 247, 196, 0.1); color: var(--accent); }
.tab-button[aria-selected="true"] { color: var(--accent); border-color: var(--accent); background: rgba(130, 247, 196, 0.07); }
.type-option:has(input:checked) { border-color: rgba(130, 247, 196, 0.5); background: rgba(130, 247, 196, 0.08); }
.toast { animation: toast-in 220ms ease-out; box-shadow: 0 18px 48px rgba(0, 0, 0, 0.3); }
@keyframes toast-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
