/* ===== BOA AI Community — Design Tokens ===== */
:root{
  --primary:#2563EB; --primary-dark:#1D4ED8; --brand-blue:#3B82F6;
  --dark-1:#0B1220; --dark-2:#1E3A8A; --sidebar-border:#1E293B;
  --amber:#F59E0B; --orange:#F97316; --orange-dark:#EA580C;
  --ok-t:#16A34A; --ok-b:#DCFCE7; --pend-t:#B45309; --pend-b:#FEF3C7;
  --fix-t:#C2410C; --fix-b:#FFEDD5; --lock-t:#64748B; --lock-b:#F1F5F9;
  --fail-t:#DC2626; --fail-b:#FEE2E2;
  --text:#0F172A; --text-2:#64748B; --text-3:#94A3B8;
  --border:#E6EAF2; --app-bg:#F4F6FA; --card:#FFFFFF;
  --radius:12px; --radius-sm:9px;
  --shadow:0 1px 2px rgba(15,23,42,.04);
  --shadow-h:0 8px 24px rgba(15,23,42,.08);
  --shadow-modal:0 30px 80px rgba(2,6,23,.4);
  --maxw:1320px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Be Vietnam Pro',system-ui,sans-serif;color:var(--text);background:var(--app-bg);-webkit-font-smoothing:antialiased;line-height:1.5}
a{color:inherit;text-decoration:none}
img{max-width:100%}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:#94a3b8;background-clip:content-box}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;border:0;border-radius:var(--radius-sm);font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:.15s;white-space:nowrap}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.3)}
.btn-primary:hover{background:var(--primary-dark)}
.btn-ghost{background:#fff;color:#334155;border:1px solid var(--border)}
.btn-ghost:hover{background:#F1F5F9}
.btn-dark{background:var(--dark-1);color:#fff}
.btn-dark:hover{background:#0a0f1a}
.btn-sm{height:36px;padding:0 14px;font-size:13px}
.btn-block{width:100%}
.btn:disabled{opacity:.55;cursor:not-allowed}

/* form */
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:7px;color:#334155}
.input,textarea.input,select.input{width:100%;height:44px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#F8FAFC;padding:0 14px;font-family:inherit;font-size:14px;color:var(--text);outline:none;transition:.15s}
textarea.input{height:auto;padding:12px 14px;resize:vertical;min-height:90px}
.input:focus,textarea.input:focus,select.input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}

/* card */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}

/* badges/pills */
.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:700}
.pill-ok{background:var(--ok-b);color:var(--ok-t)} .pill-pend{background:var(--pend-b);color:var(--pend-t)}
.pill-fix{background:var(--fix-b);color:var(--fix-t)} .pill-lock{background:var(--lock-b);color:var(--lock-t)}
.pill-fail{background:var(--fail-b);color:var(--fail-t)} .pill-blue{background:rgba(37,99,235,.1);color:var(--primary)}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#0B1220;color:#fff;padding:13px 22px;border-radius:10px;font-size:13.5px;font-weight:600;z-index:9999;box-shadow:0 12px 40px rgba(2,6,23,.4);opacity:0;transition:.25s;pointer-events:none}
.toast.show{opacity:1;bottom:34px}
.toast.err{background:#B91C1C}

.spinner{width:34px;height:34px;border:3px solid #E2E8F0;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin:40px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.muted{color:var(--text-2)}
.center{text-align:center}
