/* Variabili design system shadcn (palette bianco/nero/blu identica al progetto Next.js) */
:root {
  --background: 0 0% 100%;
  --foreground: 222.2 84% 4.9%;
  --card: 0 0% 100%;
  --card-foreground: 222.2 84% 4.9%;
  --popover: 0 0% 100%;
  --popover-foreground: 222.2 84% 4.9%;
  --primary: 221.2 83.2% 53.3%;
  --primary-foreground: 210 40% 98%;
  --secondary: 210 40% 96.1%;
  --secondary-foreground: 222.2 47.4% 11.2%;
  --muted: 210 40% 96.1%;
  --muted-foreground: 215.4 16.3% 46.9%;
  --accent: 210 40% 96.1%;
  --accent-foreground: 222.2 47.4% 11.2%;
  --destructive: 0 84.2% 60.2%;
  --destructive-foreground: 210 40% 98%;
  --border: 214.3 31.8% 91.4%;
  --input: 214.3 31.8% 91.4%;
  --ring: 221.2 83.2% 53.3%;
}
html.dark {
  --background: 222.2 84% 4.9%;
  --foreground: 210 40% 98%;
  --card: 222.2 84% 4.9%;
  --card-foreground: 210 40% 98%;
  --primary: 217.2 91.2% 59.8%;
  --primary-foreground: 222.2 47.4% 11.2%;
  --muted: 217.2 32.6% 17.5%;
  --muted-foreground: 215 20.2% 65.1%;
  --border: 217.2 32.6% 17.5%;
}
* { border-color: hsl(var(--border)); }
html { scroll-behavior: smooth; }
body { background: hsl(var(--background)); color: hsl(var(--foreground)); }
.line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.toast { position:fixed; bottom:20px; right:20px; background:#0f172a; color:#fff; padding:12px 18px; border-radius:8px; z-index:9999; font-size:14px; box-shadow:0 10px 25px rgba(0,0,0,.2); animation:slideUp .25s ease-out; }
.toast.error { background:#dc2626; }
.toast.success { background:#16a34a; }
@keyframes slideUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
.input { width:100%; border-radius:.5rem; border:1px solid hsl(var(--border)); background:hsl(var(--background)); padding:.625rem .875rem; font-size:.875rem; outline:none; transition: border-color .15s; }
.input:focus { border-color:#3b82f6; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; font-weight:500; padding:.55rem 1rem; border-radius:.5rem; font-size:.875rem; cursor:pointer; transition: all .15s; border: 0; }
.btn-primary { background:#2563eb; color:#fff; }
.btn-primary:hover { background:#1d4ed8; }
.btn-outline { background:transparent; border:1px solid hsl(var(--border)); color: hsl(var(--foreground)); }
.btn-outline:hover { background: hsl(var(--muted)); }
.btn:disabled { opacity:.5; cursor:not-allowed; }
