:root{
  --bg:#f4f6fb; --sidebar:#15223b; --sidebar-2:#0f1a30;
  --accent:#2f6fed; --accent-soft:#e8f0ff; --ink:#1d2433; --muted:#6b7488;
  --line:#e6e9f0; --ok:#1f9d6b; --warn:#d98a00; --danger:#d64545;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:-apple-system,"Segoe UI",Roboto,Inter,Helvetica,Arial,sans-serif}
.layout{display:flex;min-height:100vh}
.sidebar{width:248px;background:linear-gradient(180deg,var(--sidebar),var(--sidebar-2));color:#cfd6e6;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;height:100vh;padding:18px 14px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:#fff;font-size:1.05rem;padding:6px 8px 18px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:10px}
.brand i{color:#7aa6ff;font-size:1.3rem}
.sidebar .nav-link{color:#aeb8cf;border-radius:9px;padding:9px 12px;margin:2px 0;display:flex;align-items:center;gap:10px;font-size:.94rem;transition:.15s}
.sidebar .nav-link:hover{background:rgba(255,255,255,.06);color:#fff}
.sidebar .nav-link.active{background:var(--accent);color:#fff;box-shadow:0 4px 14px rgba(47,111,237,.35)}
.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding-top:12px}
.sidebar-foot .user{font-size:.85rem;color:#9aa6c2;margin-bottom:8px;padding-left:4px}
.content{margin-left:248px;flex:1;padding:28px 34px;max-width:1300px}
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.page-head h1{font-size:1.5rem;font-weight:700;margin:0}
.card{border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 3px rgba(20,30,60,.04)}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:4px}
.stat .label{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.stat .value{font-size:1.9rem;font-weight:700}
.stat .ico{font-size:1.3rem;color:var(--accent)}
.table{background:#fff;border-radius:12px;overflow:hidden}
.table thead th{background:#fbfcfe;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--line)}
.table td,.table th{vertical-align:middle}
.badge-stato{font-size:.72rem;padding:.35em .6em;border-radius:6px}
.b-bozza{background:#eef0f5;color:#5a6275}
.b-inviato{background:var(--accent-soft);color:var(--accent)}
.b-accettato{background:#e3f6ee;color:var(--ok)}
.b-rifiutato{background:#fde9e9;color:var(--danger)}
.btn-primary{background:var(--accent);border-color:var(--accent)}
.btn-primary:hover{background:#2459c9;border-color:#2459c9}
.ricarico-pill{font-weight:600;color:var(--ok)}
.ricarico-pill.neg{color:var(--danger)}
.form-section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin-bottom:18px}
.form-section h2{font-size:1rem;font-weight:700;margin-bottom:16px;color:var(--ink)}
label{font-size:.85rem;font-weight:600;color:#3a4252;margin-bottom:3px}
.help{color:var(--muted);font-size:.8rem}
.totale-box{background:var(--accent-soft);border-radius:12px;padding:16px 20px}
.totale-box .tot{font-size:1.5rem;font-weight:700;color:var(--accent)}
/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#15223b,#2f6fed)}
.login-card{background:#fff;border-radius:18px;padding:38px 36px;width:380px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.login-card h1{font-size:1.4rem;font-weight:700;text-align:center;margin-bottom:6px}
.login-card .sub{text-align:center;color:var(--muted);margin-bottom:24px;font-size:.9rem}
