/* Riepilogo Dashboard */
.nv-stats{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin: 15px 0 25px 0;
  justify-content:center;
}

.stat-box{
  border:1px solid var(--nv-orange, #ff7a00);
  border-radius:8px;
  padding:14px 18px;
  min-width:140px;
  text-align:center;
  background:#000;
}

.stat-box .stat-num{
  font-size:26px;
  font-weight:700;
  margin-bottom:4px;
  color:var(--nv-orange, #ff7a00);
}

.stat-box .stat-label{
  font-size:14px;
  color:#ddd;
}

.stat-box.warning{
  border-color:#ff3b3b;
}

.stat-box.warning .stat-num{
  color:#ff3b3b;
}
:root{ --bg:#000; --card:#0f0f0f; --b1:#222; --txt:#eee; --mut:#9aa; --acc:#ff7a00; }
*{ box-sizing:border-box; }
body{ margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial; background:var(--bg); color:var(--txt); }
a{ color:var(--acc); text-decoration:none; }
.wrap{ max-width:1100px; margin:0 auto; padding:20px; }
.topbar{ display:flex; gap:12px; align-items:center; padding:12px 20px; border-bottom:1px solid var(--b1); background:#070707; position:sticky; top:0; z-index:10; }
.topbar .brand{ color:#fff; font-weight:700; }
.spacer{ flex:1; }
.grid-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin-top:16px; }
.card{ display:block; background:var(--card); border:1px solid var(--b1); border-radius:14px; padding:18px; }
.card:hover{ border-color:var(--acc); transform: translateY(-2px); transition:0.08s ease; }
.card-title{ font-size:18px; font-weight:700; margin-bottom:6px; }
.card-desc{ font-size:13px; color:var(--mut); }

.row{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:10px 0 16px; }
.input, select, textarea{ width:100%; padding:10px; border-radius:10px; border:1px solid var(--b1); background:#0b0b0b; color:#eee; }
.btn{ background:var(--acc); color:#000; padding:10px 14px; border-radius:10px; display:inline-block; border:none; cursor:pointer; }
.btn.secondary{ background:#222; color:#ddd; }
.actions{ display:flex; gap:8px; align-items:center; }

.table-wrap{ overflow:auto; background:#0b0b0b; border-radius:10px; }
.table{ width:100%; border-collapse:collapse; }
.table th,.table td{ border-bottom:1px solid var(--b1); padding:10px; vertical-align:top; }
.table thead th{ position:sticky; top:0; background:#090909; }
.muted{ color:var(--mut); font-size:12px; }

.grid{ display:grid; gap:14px; grid-template-columns:1fr 1fr; }
.grid .span2{ grid-column: span 2; }

.flash{ padding:10px 14px; border:1px solid var(--b1); border-radius:10px; margin:10px 0; background:#111; }

/* Login */
.login-body{ display:flex; min-height:100vh; align-items:center; justify-content:center; background:#000; }
.login-card{ width:100%; max-width:360px; background:#0f0f0f; border:1px solid #222; border-radius:14px; padding:22px; }
.login-logo{ display:block; width:min(180px,70%); max-width:100%; height:auto; margin:0 auto 20px; object-fit:contain; }
.login-card h1{ margin-top:0; }
.login-card label{ display:block; margin-top:10px; margin-bottom:6px; color:#ccc; }
.login-card .input{ margin-bottom:10px; }
.card.danger{ border-color:#333; }
.card.danger:hover{ border-color:#a33; }
/* ========== Nero Vesuviano Premium Export Block ========== */
:root{
  --nv-bg: #0B0B0B;
  --nv-panel: #121212;
  --nv-dark: #141414;
  --nv-lava: #C34A2C;          /* rosso lava caldo */
  --nv-gold: #D9B266;          /* oro satinato */
  --nv-gold-strong: #E5C27E;   /* hover oro */
  --nv-text: #ECECEC;
  --nv-muted: #9FA3A7;
  --nv-border: #1E1E1E;
}

.export-panel{
  margin-top: 28px;
  background: linear-gradient(180deg, rgba(20,20,20,0.9) 0%, rgba(12,12,12,0.95) 100%);
  border: 1px solid var(--nv-border);
  border-radius: 16px;
  padding: 18px 18px 20px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.45);
}

.export-header{
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.nv-section-title{
  color: var(--nv-text);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .3px;
  margin: 0;
}

.export-filter{
  display: flex;
  align-items: center;
  gap: 10px;
}

.nv-pill{
  background: #1a1a1a;
  color: var(--nv-text);
  border: 1px solid var(--nv-border);
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1;
}

.nv-pill.muted{
  color: var(--nv-muted);
}

.nv-select{
  background: #0f0f0f;
  color: var(--nv-text);
  border: 1px solid var(--nv-border);
  border-radius: 10px;
  padding: 8px 10px;
  min-width: 220px;
  outline: none;
}

.export-actions{
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 10px;
}

.nv-btn-premium{
  display: inline-block;
  text-align: center;
  font-weight: 700;
  text-decoration: none;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--nv-border);
  color: var(--nv-text);
  transition: transform .08s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease;
  box-shadow: 0 6px 18px rgba(0,0,0,0.35);
}

.nv-btn-premium.gold{
  background: linear-gradient(180deg, rgba(217,178,102,0.14) 0%, rgba(217,178,102,0.06) 100%);
  border-color: rgba(217,178,102,0.45);
}

.nv-btn-premium.gold:hover{
  border-color: var(--nv-gold-strong);
  background: linear-gradient(180deg, rgba(229,194,126,0.25) 0%, rgba(229,194,126,0.12) 100%);
  transform: translateY(-1px);
}

.nv-btn-premium.lava{
  background: linear-gradient(180deg, rgba(195,74,44,0.18) 0%, rgba(195,74,44,0.08) 100%);
  border-color: rgba(195,74,44,0.55);
}

.nv-btn-premium.lava:hover{
  border-color: #d55a3a;
  background: linear-gradient(180deg, rgba(213,90,58,0.28) 0%, rgba(213,90,58,0.12) 100%);
  transform: translateY(-1px);
}

.nv-btn-premium.dark{
  background: linear-gradient(180deg, rgba(24,24,24,0.9) 0%, rgba(10,10,10,0.95) 100%);
  border-color: #1d1d1d;
}

.nv-btn-premium.dark:hover{
  border-color: #2a2a2a;
  background: linear-gradient(180deg, rgba(36,36,36,0.9) 0%, rgba(16,16,16,0.95) 100%);
  transform: translateY(-1px);
}

.export-hint{
  color: var(--nv-muted);
  font-size: 12px;
  margin-top: 10px;
}
