/* ═══ RESET + BASE ═══ */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --teal:#14B8A6;--teal-dark:#0D9488;--teal-light:#CCFBF1;--teal-50:#F0FDFA;
  --navy:#1E3A5F;--navy-light:#E0E7EF;
  --amber:#F59E0B;--amber-light:#FEF3C7;
  --red:#DC2626;--red-light:#FEE2E2;
  --green:#22C55E;--green-light:#DCFCE7;
  --yellow:#EAB308;--yellow-light:#FEF9C3;
  --purple:#8B5CF6;--purple-light:#EDE9FE;
  --blue:#3B82F6;--blue-light:#DBEAFE;
  --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:260px;--topbar-h:56px;
  --shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);--shadow-md:0 4px 6px rgba(0,0,0,.1);--shadow-lg:0 10px 15px rgba(0,0,0,.1);
  --radius:8px;--radius-lg:12px;--radius-xl:16px;
}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--gray-50);color:var(--gray-800);font-size:14px;line-height:1.5;overflow-x:hidden}
a{color:var(--teal);text-decoration:none}
button{cursor:pointer;font-family:inherit;font-size:inherit;border:none;outline:none}
input,select,textarea{font-family:inherit;font-size:inherit;border:1px solid var(--gray-300);border-radius:var(--radius);padding:8px 12px;outline:none;transition:border .2s}
input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(20,184,166,.15)}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-weight:500;transition:all .2s}
.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-secondary{background:#fff;color:var(--gray-700);border:1px solid var(--gray-300)}.btn-secondary:hover{background:var(--gray-100)}
.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:#B91C1C}
.btn-sm{padding:5px 10px;font-size:13px}
.btn-lg{padding:10px 24px;font-size:15px}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}
.card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:all .2s}
.card:hover{box-shadow:var(--shadow-md)}
.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.4}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:700;line-height:1}
.hidden{display:none!important}
.fade-in{animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
@keyframes slideInRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes slideOutRight{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}
@keyframes countUp{from{opacity:0}to{opacity:1}}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes gaugeGrow{from{--gauge-pct:0}to{--gauge-pct:var(--gauge-target)}}

/* ═══ THEME CLASSES — accent color per role ═══ */
:root { --accent: var(--teal); }
.theme-audit { --accent: var(--teal); }
.theme-operations { --accent: var(--blue); }
.theme-manutenzione { --accent: var(--navy); }
.theme-acquisti { --accent: var(--amber); }
.theme-field { --accent: var(--navy); }

.theme-audit .sidebar-logo-icon { color: var(--teal); }
.theme-operations .sidebar-logo-icon { color: var(--blue); }
.theme-manutenzione .sidebar-logo-icon { color: var(--navy); }
.theme-acquisti .sidebar-logo-icon { color: var(--amber); }
.theme-audit .nav-item.active { border-right-color: var(--teal); color: var(--teal); }
.theme-operations .nav-item.active { border-right-color: var(--blue); color: var(--blue); }
.theme-manutenzione .nav-item.active { border-right-color: var(--navy); color: var(--navy); }
.theme-acquisti .nav-item.active { border-right-color: var(--amber); color: var(--amber); }
