/* /base.css — alvoru-dashboard canonical components
   Geserveerd door server.js voor index.html (admin) en portaal.html (klant).
   Bouwt op /design-tokens.css — verwacht --primary, --primary-dark, --text,
   --text-on-dark, --muted, --border, --bg2, --green, --red, --orange, --cyan,
   --success-bg/-border, --error-bg/-border, --warning-bg/-border, --primary-tint-10,
   --primary-tint-30, --r-lg, --r-sm, --shadow-lg, --violet als al gedefinieerd. */

/* === BUTTONS === */
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--r-lg);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid transparent;white-space:nowrap;text-decoration:none}
.btn-primary{background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);color:var(--text-on-dark);border-color:transparent;border-radius:999px;box-shadow:0 0 0 1px rgba(255,255,255,.10) inset,0 4px 14px -6px rgba(99,102,241,.4)}
.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px);color:var(--text-on-dark);text-decoration:none}
.btn-primary-gradient{background:linear-gradient(135deg,var(--primary),var(--violet));color:var(--text-on-dark);border-color:transparent;box-shadow:0 2px 12px rgba(99,102,241,0.3)}
.btn-primary-gradient:hover{opacity:.88;transform:translateY(-1px)}
.btn-secondary{background:rgba(255,255,255,0.05);color:var(--text);border-color:var(--border)}
.btn-secondary:hover{background:rgba(255,255,255,0.08);text-decoration:none}
.btn-danger{background:rgba(239,68,68,0.1);border-color:rgba(239,68,68,0.25);color:#f87171}
.btn-danger:hover{background:rgba(239,68,68,0.2)}
.btn-green{background:rgba(16,185,129,0.1);border-color:rgba(16,185,129,0.25);color:var(--green)}
.btn-green:hover{background:rgba(16,185,129,0.2)}
.btn-sm{padding:6px 14px;font-size:12px}
.btn-xs{padding:4px 10px;font-size:11px;border-radius:var(--r-sm)}
.btn>svg{width:14px;height:14px;flex-shrink:0}

/* === BADGES === */
.badge{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}
.badge-green{background:var(--success-bg);color:var(--green);border:1px solid var(--success-border)}
.badge-red{background:var(--error-bg);color:var(--red);border:1px solid var(--error-border)}
.badge-orange{background:var(--warning-bg);color:var(--orange);border:1px solid var(--warning-border)}
.badge-blue{background:var(--primary-tint-10);color:var(--primary);border:1px solid var(--primary-tint-30)}
.badge-cyan{background:rgba(6,182,212,0.12);color:var(--cyan);border:1px solid rgba(6,182,212,0.2)}
.badge-gray{background:rgba(255,255,255,0.06);color:var(--muted);border:1px solid var(--border)}
.badge>svg{width:12px;height:12px;flex-shrink:0}

/* === FORM INPUT === */
.form-input{width:100%;background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:var(--r-lg);padding:10px 13px;font-size:14px;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}
.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint-10)}
.form-input::placeholder{color:var(--muted)}
.form-input:disabled{background:rgba(255,255,255,0.02);color:var(--muted);cursor:not-allowed}
select.form-input option{background:var(--bg2)}
textarea.form-input{resize:vertical;min-height:80px}

/* === TOAST === */
.toast{padding:12px 16px;border-radius:var(--r-lg);font-size:13px;font-weight:500;animation:toastIn .25s ease;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-lg);max-width:320px;background:#1a1a2e}
.toast-success{border:1px solid var(--success-border);color:var(--green)}
.toast-error{border:1px solid var(--error-border);color:var(--red)}
.toast-info{border:1px solid var(--primary-tint-30);color:var(--primary)}
@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
