:root {
  --purple-950: #241235;
  --purple-900: #32184d;
  --purple-800: #48236e;
  --purple-700: #62338e;
  --purple-600: #7a43ad;
  --purple-500: #9458c4;
  --purple-300: #cda8e7;
  --purple-100: #f1e8f8;
  --ink: #17151b;
  --muted: #6f6a76;
  --surface: #ffffff;
  --line: #e8e4eb;
}

html { scroll-behavior: smooth; }
body {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #f6f5f8;
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

::selection { background: #d9b9ed; color: #23122f; }

.brand-shell {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 18%, rgba(190, 125, 230, .32), transparent 28%),
    radial-gradient(circle at 18% 5%, rgba(121, 66, 171, .24), transparent 30%),
    linear-gradient(135deg, #17121c 0%, #281833 38%, #48236e 72%, #25142f 100%);
}
.brand-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .42;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to bottom, black, transparent 88%);
}
.brand-shell::after {
  content: "";
  position: absolute;
  width: 440px;
  height: 440px;
  right: -210px;
  bottom: -260px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 50%;
  box-shadow: 0 0 0 58px rgba(255,255,255,.025), 0 0 0 116px rgba(255,255,255,.018);
}

.brand-mark {
  background: linear-gradient(145deg, rgba(255,255,255,.20), rgba(255,255,255,.07));
  border: 1px solid rgba(255,255,255,.20);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 14px 35px rgba(0,0,0,.16);
  backdrop-filter: blur(14px);
}

.hero-chip {
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.075);
  backdrop-filter: blur(10px);
}

.page-glow {
  background:
    radial-gradient(circle at 18% 8%, rgba(137, 73, 186, .10), transparent 26%),
    radial-gradient(circle at 82% 25%, rgba(50, 24, 77, .06), transparent 25%);
}

.form-card {
  border: 1px solid rgba(73, 54, 84, .10);
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 55px rgba(31, 20, 39, .065);
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.form-card:hover {
  border-color: rgba(122, 67, 173, .20);
  box-shadow: 0 22px 62px rgba(31, 20, 39, .085);
}

.section-number {
  background: linear-gradient(145deg, #3a1d56, #8950b5);
  box-shadow: 0 10px 25px rgba(73, 35, 110, .20);
}

.form-control {
  width: 100%;
  border: 1px solid #ddd8e1;
  background: #fff;
  color: #1f1b23;
  border-radius: 13px;
  padding: .82rem .95rem;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.form-control::placeholder { color: #aaa3ae; }
.form-control:hover { border-color: #c8becf; }
.form-control:focus {
  border-color: #7a43ad;
  box-shadow: 0 0 0 4px rgba(122, 67, 173, .11);
}
.form-control.field-error {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 4px rgba(220,38,38,.08);
}

.option-card {
  border: 1px solid #e5e0e8;
  background: #fff;
  border-radius: 13px;
  transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.option-card:hover {
  border-color: #bda7cb;
  background: #fcf9fe;
  transform: translateY(-1px);
}
.option-card:has(input:checked) {
  border-color: #8f5ab2;
  background: #f8f1fc;
  box-shadow: 0 0 0 3px rgba(122, 67, 173, .08);
}
input[type="radio"], input[type="checkbox"] { accent-color: #74409f; }

.file-drop {
  border: 1px dashed #c9bdd1;
  background: linear-gradient(180deg, #fcfafe 0%, #f8f5fa 100%);
  transition: border-color .2s ease, background .2s ease;
}
.file-drop:hover { border-color: #925db8; background: #faf5fd; }

.primary-button {
  background: linear-gradient(135deg, #5c2f82 0%, #8145aa 60%, #9a5bc0 100%);
  box-shadow: 0 12px 28px rgba(93, 47, 130, .23);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.primary-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 34px rgba(93, 47, 130, .30);
  filter: saturate(1.08);
}
.primary-button:active { transform: translateY(0); }

.progress-track { background: rgba(255,255,255,.13); }
.progress-fill {
  width: 0%;
  background: linear-gradient(90deg, #d6b5ec, #ffffff);
  transition: width .25s ease;
}

.success-card {
  background: linear-gradient(135deg, rgba(247,240,251,.98), rgba(255,255,255,.98));
  border-color: rgba(112, 64, 145, .20);
}

.admin-shell { background: #f7f6f8; }
.admin-topbar {
  background: linear-gradient(110deg, #17151b 0%, #2d1a37 45%, #4e276f 100%);
  box-shadow: 0 10px 30px rgba(23, 18, 28, .13);
}
.admin-card {
  background: #fff;
  border: 1px solid #e8e4eb;
  box-shadow: 0 10px 30px rgba(30,22,35,.045);
}
.admin-accent { color: #7741a3; }
.admin-button {
  background: linear-gradient(135deg, #5d3082, #8449ad);
  color: white;
}

@media (max-width: 640px) {
  .brand-shell::after { right: -310px; bottom: -280px; }
  .form-card:hover { transform: none; }
}

@media print {
  .no-print { display: none !important; }
  body { background: #fff !important; }
  .form-card, .admin-card { box-shadow: none !important; }
}
