/* ==========================================================================
   Magical Teams Intake UI (Refactor)
   - Light-first (matches MT website vibe)
   - Dark mode supported via prefers-color-scheme
   - Works for both Admin + Public (same stylesheet)
   - Drop-in replacement for /assets/css/ui.css
   ========================================================================== */

:root{
  /* Typography + layout */
  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --max: 1080px;

  /* Brand (MT-ish) */
  --mt-purple: #6B4EFF;
  --mt-purple-soft: #F3F1FF;
  --mt-gold: #F4C15D;

  /* Semantic accents */
  --primary: var(--mt-purple);
  --accent: var(--mt-gold);
  --success: #22c55e;
  --danger: #ef4444;

  /* Light theme surfaces */
  --bg: #F9FAFC;            /* page */
  --panel: #FFFFFF;         /* card */
  --panel2: #F1F3F7;        /* muted surfaces */
  --text: #1F2937;          /* main text */
  --muted: rgba(31,41,55,0.70);
  --border: rgba(31,41,55,0.12);

  --radius: 18px;
  --radius-sm: 12px;
  --shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
  --shadow2: 0 16px 48px rgba(15, 23, 42, 0.10);

  /* Inputs */
  --input-bg: rgba(255,255,255,0.9);
  --input-border: rgba(31,41,55,0.14);

  /* Focus ring */
  --ring: rgba(107,78,255,0.35);
}

/* Dark theme overrides */
@media (prefers-color-scheme: dark) {
  :root{
    --bg: #0B1220;
    --panel: rgba(255,255,255,0.06);
    --panel2: rgba(255,255,255,0.09);
    --text: #E5E7EB;
    --muted: rgba(229,231,235,0.70);
    --border: rgba(229,231,235,0.14);

    --shadow: 0 14px 40px rgba(0,0,0,.35);
    --shadow2: 0 18px 52px rgba(0,0,0,.45);

    --input-bg: rgba(0,0,0,0.22);
    --input-border: rgba(229,231,235,0.14);

    --ring: rgba(244,193,93,0.28);
  }
}

*{box-sizing:border-box}
html,body{height:100%}

body{
  margin:0;
  font-family:var(--font);
  color:var(--text);

  /* Light-first: airy MT vibe */
  background:
    radial-gradient(1200px 600px at 20% 10%, rgba(107,78,255,0.12), transparent 55%),
    radial-gradient(900px 500px at 80% 0%, rgba(244,193,93,0.16), transparent 55%),
    radial-gradient(800px 600px at 50% 110%, rgba(107,78,255,0.08), transparent 55%),
    var(--bg);
}

/* Links */
a{color:inherit; text-decoration:none}
a:hover{opacity:0.92}

/* Layout */
.container{max-width:var(--max); margin:0 auto; padding:28px 18px}

/* Cards */
.card{
  background: linear-gradient(180deg, var(--panel), rgba(255,255,255,0.00));
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
}

/* Header */
.header{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 18px;
  border-bottom:1px solid var(--border);
  background:
    linear-gradient(180deg, rgba(107,78,255,0.08), transparent 80%);
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
}

/* Brand block */
.brand{display:flex; gap:12px; align-items:center}
.brand .logo{
  width:44px; height:44px; border-radius:14px;
  background: linear-gradient(135deg, rgba(107,78,255,0.22), rgba(244,193,93,0.24));
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  box-shadow: 0 6px 18px rgba(15,23,42,0.08);
}
.brand .logo img{width:100%; height:100%; object-fit:cover}
.brand h1{font-size:16px; margin:0; letter-spacing:0.2px}
.brand p{margin:2px 0 0; font-size:12px; color:var(--muted)}

/* Main */
.main{padding:18px}

/* Grid */
.grid{display:grid; gap:14px}
.grid.two{grid-template-columns: 1fr 1fr}
@media(max-width:900px){.grid.two{grid-template-columns:1fr}}

/* Fields */
.field label{display:block; font-size:12px; color:var(--muted); margin:0 0 6px}
.field input,.field textarea,.field select{
  width:100%;
  padding:12px 12px;
  border-radius:var(--radius-sm);
  background: var(--input-bg);
  border:1px solid var(--input-border);
  color:var(--text);
  outline:none;
  transition: border-color .15s ease, box-shadow .15s ease, transform .05s ease;
}

.field input:focus,
.field textarea:focus,
.field select:focus{
  border-color: rgba(107,78,255,0.45);
  box-shadow: 0 0 0 4px var(--ring);
}

.field textarea{min-height:110px; resize:vertical}

/* Buttons */
.btnrow{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.btn{
  padding:10px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background: rgba(255,255,255,0.55);
  color:var(--text);
  cursor:pointer;
  transition: transform .06s ease, box-shadow .15s ease, filter .15s ease, background .15s ease;
  box-shadow: 0 6px 16px rgba(15,23,42,0.06);
}
@media (prefers-color-scheme: dark){
  .btn{ background: rgba(255,255,255,0.06); box-shadow: none; }
}

.btn:hover{filter: brightness(1.02)}
.btn:active{transform: translateY(1px)}

.btn.primary{
  color:#fff;
  background: linear-gradient(135deg, rgba(107,78,255,0.95), rgba(107,78,255,0.65));
  border-color: rgba(107,78,255,0.55);
  box-shadow: 0 10px 24px rgba(107,78,255,0.20);
}
.btn.accent{
  color:#111827;
  background: linear-gradient(135deg, rgba(244,193,93,0.92), rgba(244,193,93,0.60));
  border-color: rgba(244,193,93,0.55);
  box-shadow: 0 10px 24px rgba(244,193,93,0.18);
}
.btn.success{
  color:#fff;
  background: linear-gradient(135deg, rgba(34,197,94,0.88), rgba(34,197,94,0.55));
  border-color: rgba(34,197,94,0.50);
}
.btn.danger{
  color:#fff;
  background: linear-gradient(135deg, rgba(239,68,68,0.88), rgba(239,68,68,0.55));
  border-color: rgba(239,68,68,0.50);
}

/* KPI cards */
.kpi{
  padding:14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background: var(--panel2);
}
.kpi .n{font-size:20px; font-weight:700}
.kpi .t{font-size:12px; color:var(--muted)}

/* Tables */
.table{width:100%; border-collapse:collapse}
.table th,.table td{
  padding:10px 8px;
  border-bottom:1px solid rgba(31,41,55,0.10);
  font-size:13px;
  text-align:left;
}
@media (prefers-color-scheme: dark){
  .table th,.table td{border-bottom:1px solid rgba(229,231,235,0.10)}
}

/* Badges */
.badge{
  display:inline-flex;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  border:1px solid var(--border);
  color:var(--muted);
  background: rgba(255,255,255,0.45);
}
@media (prefers-color-scheme: dark){
  .badge{ background: rgba(255,255,255,0.04); }
}

/* Flash messages */
.flash{
  padding:10px 12px;
  border-radius:var(--radius-sm);
  border:1px solid var(--border);
  background: rgba(107,78,255,0.10);
  margin-bottom:12px;
}

/* Small text + code */
.small{font-size:12px; color:var(--muted)}
.code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:12px;
  background: rgba(15,23,42,0.06);
  border:1px solid var(--border);
  padding:10px 12px;
  border-radius:var(--radius-sm);
  overflow:auto;
}
@media (prefers-color-scheme: dark){
  .code{ background: rgba(0,0,0,0.35); }
}

/* Optional: a nicer “question card” surface for public intakes */
.question-card{
  background: var(--panel2);
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
}

/* Improve checkbox/radio alignment in “btn label” chips */
.btn input[type="checkbox"],
.btn input[type="radio"]{
  transform: translateY(1px);
}

/* utility */
.mt-0{margin-top:0}
.mb-12{margin-bottom:12px}

/* Reduce motion for neurodiversity friendliness */
@media (prefers-reduced-motion: reduce){
  *{transition:none !important}
}