:root {
  --bg: #f2f4fb;
  --surface: #ffffff;
  --surface-2: #f7f8fc;
  --border: #e5e9f2;
  --text: #0f172a;
  --text-2: #5b6478;
  --muted: #98a1b3;
  --primary: #4f46e5;
  --primary-2: #4338ca;
  --primary-050: #eef2ff;
  --danger: #dc2626;
  --danger-050: #fef2f2;
  --success: #16a34a;
  --success-050: #f0fdf4;
  --warning: #d97706;
  --warning-050: #fffbeb;
  --carico: #16a34a;
  --scarico: #dc2626;
  --carico-050: #f0fdf4;
  --scarico-050: #fef2f2;
  --radius: 14px;
  --radius-sm: 9px;
  --shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .06);
  --shadow-lg: 0 20px 40px -12px rgba(15, 23, 42, .25);
  --sidebar-w: 240px;
  --topbar-h: 60px;
  --font: "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: "Cascadia Code", Consolas, "Courier New", monospace;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font);
  background:
    radial-gradient(900px 400px at 100% 0%, rgba(99, 102, 241, .05), transparent),
    var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.5;
  min-height: 100vh;
}
h1 { font-size: 22px; font-weight: 800; letter-spacing: -.01em; }
h2 { font-size: 15px; font-weight: 700; margin-bottom: 10px; }
h3 { font-size: 17px; font-weight: 700; margin-bottom: 14px; }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
input, select, button { font: inherit; color: inherit; }
input[type="number"]::-webkit-inner-spin-button { opacity: 1; }

/* Icone SVG inline */
.ico { flex: none; vertical-align: -2px; display: inline-block; }

.muted { color: var(--text-2); }
.small { font-size: 12px; }
.mono { font-family: var(--mono); font-size: 13px; }
.num { text-align: right; font-variant-numeric: tabular-nums; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 8px; border: 2px solid var(--bg); }
::-webkit-scrollbar-track { background: transparent; }
