/* StudyPatch shared design tokens + primitives */
:root{
  --indigo-950:#1e1b4b;--indigo-800:#3730a3;--indigo-600:#4f46e5;--indigo-500:#6366f1;--indigo-200:#c7d2fe;--indigo-100:#e0e7ff;--indigo-50:#eef2ff;
  --teal-800:#115e59;--teal-700:#0f766e;--teal-600:#0d9488;--teal-200:#99f6e4;--teal-100:#ccfbf1;--teal-50:#f0fdfa;
  --sun-500:#f59e0b;--sun-400:#fbbf24;--sun-200:#fde68a;--sun-100:#fef3c7;--sun-50:#fffbeb;--sun-800:#92400e;
  --ink:#0f172a;--ink-2:#334155;--muted:#64748b;--line:#e2e8f0;--bg:#fff;--soft:#f8fafc;
  --radius:14px;--radius-sm:9px;
  --shadow:0 1px 2px rgba(15,23,42,.06),0 10px 28px rgba(30,27,75,.08);
  --font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--font)}
h1,h2,h3,h4{line-height:1.2;margin:0 0 .5em;color:var(--indigo-950);letter-spacing:-.01em}
p{margin:0 0 1em}
a{color:var(--indigo-600)}
img,svg{max-width:100%}
:focus-visible{outline:3px solid var(--indigo-500);outline-offset:2px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.btn{display:inline-flex;align-items:center;gap:.45em;padding:.62em 1.1em;border-radius:10px;border:1px solid transparent;font:600 .95rem var(--font);cursor:pointer;text-decoration:none;transition:background .15s,transform .05s,box-shadow .15s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--indigo-600);color:#fff}
.btn-primary:hover{background:var(--indigo-800)}
.btn-secondary{background:#fff;color:var(--indigo-800);border-color:var(--indigo-200)}
.btn-secondary:hover{background:var(--indigo-50)}
.btn-accent{background:var(--sun-400);color:var(--indigo-950)}
.btn-accent:hover{background:var(--sun-500)}
.btn-ghost{background:transparent;color:var(--ink-2)}
.btn-ghost:hover{background:var(--soft)}
.btn-danger{background:#fff;color:#9f1239;border-color:#fecdd3}
.btn-danger:hover{background:#fff1f2}
.btn-sm{padding:.35em .7em;font-size:.85rem;border-radius:8px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

.badge{display:inline-flex;align-items:center;gap:.3em;padding:.12em .6em;border-radius:999px;font:600 .75rem var(--font);white-space:nowrap}
.badge-ai{background:var(--indigo-50);color:var(--indigo-800);border:1px solid var(--indigo-200)}
.badge-ok{background:var(--teal-100);color:var(--teal-800)}
.badge-warn{background:var(--sun-100);color:var(--sun-800)}
.badge-muted{background:#f1f5f9;color:var(--ink-2)}
.badge-indigo{background:var(--indigo-100);color:var(--indigo-800)}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}
label{font-weight:600;font-size:.9rem;color:var(--ink-2)}
input[type=text],input[type=email],input[type=number],input[type=search],select,textarea{width:100%;padding:.6em .75em;border:1px solid #cbd5e1;border-radius:9px;font:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:3px solid var(--indigo-200);border-color:var(--indigo-500)}
textarea{min-height:90px;resize:vertical}
.hint{color:var(--muted);font-size:.85rem}
.err{color:#9f1239;font-size:.85rem}
