* { margin: 0; padding: 0; box-sizing: border-box; }

:root {
    --primary:       #10b981;
    --primary-dark:  #059669;
    --primary-soft:  #d1fae5;
    --blue:          #3b82f6;
    --blue-soft:     #dbeafe;
    --purple:        #8b5cf6;
    --purple-soft:   #ede9fe;
    --orange:        #f59e0b;
    --orange-soft:   #fef3c7;
    --danger:        #ef4444;
    --danger-soft:   #fee2e2;
    --gray-50:  #f8fafc;
    --gray-100: #f1f5f9;
    --gray-200: #e2e8f0;
    --gray-300: #cbd5e1;
    --gray-400: #94a3b8;
    --gray-500: #64748b;
    --gray-600: #475569;
    --gray-700: #334155;
    --gray-800: #1e293b;
    --gray-900: #0f172a;
    --sidebar-w: 230px;
    --topbar-h:  64px;
    --radius:    12px;
    --shadow-sm: 0 1px 2px rgba(0,0,0,.04);
    --shadow:    0 2px 8px rgba(0,0,0,.06);
    --shadow-lg: 0 8px 24px rgba(0,0,0,.08);
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: var(--gray-50);
    color: var(--gray-900);
    font-size: 13.5px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--primary); text-decoration: none; }
button { cursor: pointer; font-family: inherit; }
input, select, textarea { font-family: inherit; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; }
img, svg { max-width: 100%; }

#toast-container {
    position: fixed;
    top: 20px; right: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.toast {
    padding: 12px 18px;
    border-radius: 10px;
    background: #fff;
    box-shadow: var(--shadow-lg);
    border-left: 4px solid var(--primary);
    min-width: 260px;
    font-size: 13px;
    animation: slideIn .3s ease;
}
.toast.error { border-color: var(--danger); }
.toast.warning { border-color: var(--orange); }
@keyframes slideIn {
    from { opacity: 0; transform: translateX(30px); }
    to   { opacity: 1; transform: translateX(0); }
}