:root{
  --bg:#f4f7fb; --panel:#ffffff; --panel2:#f8fafc; --text:#0f172a; --muted:#64748b;
  --line:#e2e8f0; --brand:#0f766e; --brand2:#0ea5e9; --dark:#111827;
  --danger:#dc2626; --danger-bg:#fee2e2; --warn:#a16207; --warn-bg:#fef3c7; --ok:#047857; --ok-bg:#dcfce7;
  --shadow:0 18px 50px rgba(15,23,42,.08); --radius:22px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;background:radial-gradient(circle at top left,#e0f2fe 0,#f4f7fb 32%,#eef2f7 100%);color:var(--text);min-height:100vh}.page{width:min(1240px,94%);margin:26px auto 48px}.shell{display:grid;grid-template-columns:250px 1fr;gap:22px;align-items:start}.sidebar{position:sticky;top:22px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border:1px solid rgba(226,232,240,.9);box-shadow:var(--shadow);border-radius:var(--radius);padding:18px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:grid;place-items:center;color:white;font-weight:900}.brand-title{font-size:17px;font-weight:850}.brand-sub{font-size:12px;color:var(--muted);margin-top:2px}.nav{display:grid;gap:7px}.nav a{display:flex;align-items:center;gap:9px;text-decoration:none;color:#334155;padding:10px 12px;border-radius:13px;font-weight:750}.nav a:hover,.nav a.active{background:#ecfeff;color:#0f766e}.main{min-width:0}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px}.hero{background:linear-gradient(135deg,#0f766e,#0369a1);color:white;border-radius:28px;padding:26px 28px;box-shadow:0 24px 60px rgba(3,105,161,.22);margin-bottom:22px}.hero h1{margin:0;font-size:34px;letter-spacing:-.035em}.hero p{margin:8px 0 0;color:#dbeafe}.userbox{text-align:right;color:#475569}.userbox strong{color:#0f172a}.userbox a,a.link{color:#0f766e;font-weight:800;text-decoration:none}.userbox a:hover,a.link:hover{text-decoration:underline}.panel,.card,.status-bar{background:rgba(255,255,255,.94);border:1px solid rgba(226,232,240,.8);box-shadow:var(--shadow);border-radius:var(--radius)}.panel{padding:24px;margin-bottom:22px}.panel h2{margin:0 0 16px;font-size:22px;letter-spacing:-.02em}.panel h3{margin:18px 0 10px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.card{padding:20px;overflow:hidden;position:relative}.card:after{content:"";position:absolute;right:-28px;top:-30px;width:90px;height:90px;border-radius:999px;background:#ecfeff}.card-label{color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:9px}.card-value{font-size:30px;font-weight:900;line-height:1.1;letter-spacing:-.03em}.card-help,.small-note{margin-top:8px;color:var(--muted);font-size:13px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;margin-bottom:20px}.status-pill,.badge{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;font-weight:850;font-size:13px}.ok{background:var(--ok-bg);color:var(--ok)}.warning{background:var(--warn-bg);color:var(--warn)}.danger{background:var(--danger-bg);color:var(--danger)}.muted{color:var(--muted)}.filters{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}input,select,textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid #cbd5e1;border-radius:12px;background:white;color:#0f172a;outline:none}input:focus,select:focus,textarea:focus{border-color:#0ea5e9;box-shadow:0 0 0 4px rgba(14,165,233,.15)}select{min-width:0}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end;width:100%}.form-grid-compact{grid-template-columns:minmax(220px,320px) auto}.form-grid label{display:grid;gap:6px;font-size:12px;font-weight:850;color:#475569;text-transform:uppercase;letter-spacing:.04em}.form-actions{display:flex;gap:10px;align-items:center}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border:0;border-radius:12px;background:#0f172a;color:white;font-weight:850;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover,button:hover{filter:brightness(1.05)}.btn-secondary{background:#e2e8f0;color:#0f172a}.btn-danger{background:#dc2626}.btn-small{padding:8px 10px;border-radius:10px;font-size:12px}.table-wrap{overflow:auto;border-radius:16px;border:1px solid var(--line)}.table-wrap form{margin:0}table{width:100%;border-collapse:collapse;background:white}th{background:#0f172a;color:white;text-align:left;padding:12px;font-size:13px;white-space:nowrap}td{padding:12px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}tr:nth-child(even) td{background:#f8fafc}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.technical-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.summary-item,.tech-item{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:14px}.summary-item .label,.tech-item .label{color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.summary-item .value,.tech-item .value{font-size:15px;font-weight:850;word-break:break-word}.error,.notice{padding:12px 14px;border-radius:14px;margin-bottom:14px;font-weight:750}.error{background:var(--danger-bg);color:#991b1b}.notice{background:#dcfce7;color:#166534}.login-page{display:grid;place-items:center;min-height:100vh;padding:24px}.login-card{width:min(460px,94vw);background:white;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:30px}.login-card h1{margin:0 0 8px}.login-card p{margin:0 0 20px;color:var(--muted)}.login-card form{display:grid;gap:12px}.login-card input{width:100%}.status-ok{color:var(--ok);font-weight:900}.status-bad{color:var(--danger);font-weight:900}canvas{max-height:390px}.inline-form{display:inline}.danger-text{color:var(--danger);font-weight:850}@media(max-width:1180px){.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1000px){.shell{grid-template-columns:1fr}.sidebar{position:relative;top:0}.cards{grid-template-columns:repeat(2,1fr)}.technical-grid,.form-grid{grid-template-columns:repeat(2,1fr)}.topbar{flex-direction:column}.userbox{text-align:left}}@media(max-width:620px){.cards,.summary-grid,.technical-grid,.form-grid{grid-template-columns:1fr}.hero h1{font-size:28px}.status-bar{flex-direction:column;align-items:flex-start}.card-value{font-size:26px}}
@media(max-width:1180px){.form-grid-compact{grid-template-columns:minmax(220px,320px) auto}}
@media(max-width:620px){.form-grid-compact{grid-template-columns:1fr}.form-actions{align-items:stretch}.form-actions .btn,.form-actions button{width:100%}}


.inline-form-stack{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:190px}
.inline-form-stack input,.inline-form-stack select{width:100%;min-width:0}
.cards-compact{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width: 1100px){.cards-compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 640px){.cards-compact{grid-template-columns:1fr}}


/* Modalità tecnica / nerd */
.nerd-panel,.nerd-only{display:none!important}
body.nerd-mode .nerd-panel,body.nerd-mode .nerd-only{display:block!important}
body.nerd-mode tr.nerd-only{display:table-row!important}
body.nerd-mode th.nerd-only,body.nerd-mode td.nerd-only{display:table-cell!important}
.nav-nerd-toggle{width:100%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#e5eefc;border-radius:12px;padding:11px 12px;text-align:left;font-weight:800;cursor:pointer;margin-top:6px}
.nav-nerd-toggle:hover{background:rgba(255,255,255,.12)}
.nerd-panel{border:1px dashed #8aa4c7;background:linear-gradient(180deg,#f8fbff,#eef6ff)}
.nerd-panel h2:before{content:'⚙ ';}
.nerd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.nerd-item{background:#ffffff;border:1px solid #d9e5f5;border-radius:14px;padding:12px;min-width:0}
.nerd-item .label{font-size:12px;color:#64748b;text-transform:uppercase;font-weight:800;letter-spacing:.04em;margin-bottom:5px}
.nerd-item .value{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;word-break:break-word;color:#0f172a}
.nerd-pre{max-height:360px;overflow:auto;background:#0f172a;color:#dbeafe;border-radius:14px;padding:14px;font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.nerd-hint{color:#64748b;font-size:13px;margin-top:8px}
@media (max-width: 900px){.nerd-grid{grid-template-columns:1fr}}

/* Contrasto toggle modalità + tema scuro */
.nav-mode-toggle,.nav-nerd-toggle{
  width:100%;
  border:1px solid var(--line);
  border-radius:13px;
  padding:11px 12px;
  text-align:left;
  font-weight:900;
  cursor:pointer;
  margin-top:6px;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.nav-mode-toggle:hover,.nav-nerd-toggle:hover{transform:translateY(-1px);filter:brightness(1.03)}
.nav-mode-toggle.is-on,.nav-nerd-toggle.is-on{
  background:linear-gradient(135deg,#16a34a,#0f766e);
  color:#ffffff;
  border-color:#22c55e;
  box-shadow:0 10px 24px rgba(22,163,74,.22);
}
.nav-mode-toggle.is-off,.nav-nerd-toggle.is-off{
  background:#fff7ed;
  color:#9a3412;
  border-color:#fed7aa;
  box-shadow:0 8px 20px rgba(154,52,18,.10);
}

body.dark-mode{
  --bg:#07111f;
  --panel:#0f172a;
  --panel2:#111c2f;
  --text:#e5eefc;
  --muted:#9fb0c7;
  --line:#243247;
  --brand:#2dd4bf;
  --brand2:#38bdf8;
  --dark:#020617;
  --danger:#f87171;
  --danger-bg:#3b1218;
  --warn:#facc15;
  --warn-bg:#3a2d0b;
  --ok:#4ade80;
  --ok-bg:#0f2f21;
  --shadow:0 22px 60px rgba(0,0,0,.42);
  background:radial-gradient(circle at top left,#123445 0,#07111f 34%,#020617 100%);
  color:var(--text);
}
body.dark-mode .sidebar,
body.dark-mode .panel,
body.dark-mode .card,
body.dark-mode .status-bar,
body.dark-mode .login-card{
  background:rgba(15,23,42,.94);
  border-color:rgba(71,85,105,.72);
}
body.dark-mode .hero{box-shadow:0 24px 70px rgba(14,165,233,.18)}
body.dark-mode .brand-title,
body.dark-mode .userbox strong,
body.dark-mode .card-value,
body.dark-mode .summary-item .value,
body.dark-mode .tech-item .value{color:var(--text)}
body.dark-mode .brand-sub,
body.dark-mode .muted,
body.dark-mode .card-help,
body.dark-mode .small-note,
body.dark-mode .userbox,
body.dark-mode .login-card p{color:var(--muted)}
body.dark-mode .nav a{color:#cbd5e1}
body.dark-mode .nav a:hover,
body.dark-mode .nav a.active{background:rgba(45,212,191,.14);color:#5eead4}
body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea{
  background:#0b1220;
  color:var(--text);
  border-color:#334155;
}
body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder{color:#64748b}
body.dark-mode input:focus,
body.dark-mode select:focus,
body.dark-mode textarea:focus{border-color:#38bdf8;box-shadow:0 0 0 4px rgba(56,189,248,.16)}
body.dark-mode .btn-secondary{background:#26354b;color:#e5eefc}
body.dark-mode .table-wrap{border-color:var(--line)}
body.dark-mode table{background:#0f172a;color:var(--text)}
body.dark-mode th{background:#020617;color:#e5eefc}
body.dark-mode td{border-bottom-color:var(--line)}
body.dark-mode tr:nth-child(even) td{background:#111c2f}
body.dark-mode .summary-item,
body.dark-mode .tech-item{background:var(--panel2);border-color:var(--line)}
body.dark-mode .card:after{background:rgba(45,212,191,.10)}
body.dark-mode .nerd-panel{border-color:#38bdf8;background:linear-gradient(180deg,#0f172a,#0b1f35)}
body.dark-mode .nerd-item{background:#0b1220;border-color:#243247}
body.dark-mode .nerd-item .label{color:#9fb0c7}
body.dark-mode .nerd-item .value{color:#e5eefc}
body.dark-mode .nerd-pre{background:#020617;color:#dbeafe;border:1px solid #243247}
body.dark-mode .nerd-hint{color:#9fb0c7}
body.dark-mode .nav-mode-toggle.is-off,
body.dark-mode .nav-nerd-toggle.is-off{
  background:#2b1d13;
  color:#fdba74;
  border-color:#9a3412;
}
body.dark-mode .nav-mode-toggle.is-on,
body.dark-mode .nav-nerd-toggle.is-on{
  background:linear-gradient(135deg,#059669,#0e7490);
  color:#ffffff;
  border-color:#2dd4bf;
}
body.dark-mode .error{background:#3b1218;color:#fecaca}
body.dark-mode .notice{background:#0f2f21;color:#bbf7d0}

.floating-theme-toggle{position:fixed;right:18px;top:18px;z-index:50;width:auto;box-shadow:var(--shadow)}
@media(max-width:620px){.floating-theme-toggle{right:12px;top:12px;padding:9px 11px;font-size:12px}}

.customer-create-grid{grid-template-columns:minmax(220px,1.2fr) minmax(260px,1.2fr) auto}
.user-create-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.customer-association{display:grid;grid-column:1 / -1;grid-template-columns:minmax(240px,1fr) minmax(280px,1.4fr);gap:12px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--panel2)}
.customer-association label{margin:0}.customer-association .field-help{grid-column:1 / -1;margin:0;color:var(--muted);font-size:13px;line-height:1.35}.check-row{display:flex!important;align-items:center;gap:9px;text-transform:none!important;letter-spacing:0!important;font-size:13px!important}.check-row input{width:auto!important;min-width:auto!important}.field-help{color:var(--muted);font-size:13px;margin:8px 0 0}.customer-association select option{font-size:14px}
@media(max-width:900px){.customer-create-grid,.user-create-grid,.customer-association{grid-template-columns:1fr}.customer-association{grid-column:auto}}

.device-create-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}
.device-create-grid .customer-picker{grid-column:1 / -1}
.compact-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:10px}
.technical-fields{grid-column:1 / -1;padding:16px;border-radius:16px}
.technical-fields h3{margin:0 0 10px;font-size:15px}
.customer-picker{position:relative;display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--panel2)}
.customer-picker label{margin:0}.customer-picker.compact{padding:0;border:0;background:transparent;min-width:220px}
.customer-picker-input{width:100%}.customer-picker-selected{font-size:13px;font-weight:800;color:var(--brand)}
.customer-picker-list{display:none;position:absolute;z-index:40;left:14px;right:14px;top:calc(100% - 6px);max-height:260px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}
.customer-picker.compact .customer-picker-list{left:0;right:0;top:calc(100% + 4px)}
.customer-picker-list.open{display:grid;gap:6px}.customer-picker-list.is-empty::after{content:'Nessun cliente trovato';padding:10px;color:var(--muted);font-size:13px}
.customer-picker-option{display:grid;grid-template-columns:1fr auto;gap:2px 10px;width:100%;padding:10px 11px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.customer-picker-option:hover{border-color:rgba(45,212,191,.45);background:rgba(45,212,191,.10)}
.customer-picker-option strong{font-size:14px}.customer-picker-option span{grid-column:1 / -1;color:var(--muted);font-size:12px}.customer-picker-option small{color:var(--muted);font-size:12px;font-weight:900}
.user-customer-picker{grid-column:1 / -1}.customer-association{grid-template-columns:1fr}.customer-association .customer-picker{grid-column:1 / -1}
body.dark-mode .customer-picker{background:#101a2d;border-color:#26354b}body.dark-mode .customer-picker-list{background:#0f172a;border-color:#334155}body.dark-mode .customer-picker-option:hover{background:rgba(45,212,191,.12);border-color:#2dd4bf}
@media(max-width:980px){.device-create-grid,.compact-grid{grid-template-columns:1fr}.customer-picker-list{position:static;box-shadow:none;margin-top:4px}}


/* 0.0.5: monitor accessi utenti admin */
.panel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.panel-title-row h2{margin-bottom:6px}.panel-title-row p{margin:0}
.user-security-cards .card-value{font-size:28px}.access-panel{border-color:rgba(14,165,233,.28)}
.empty-state{padding:16px;border:1px dashed var(--line);border-radius:16px;background:var(--panel2);color:var(--muted);font-weight:800}
.active-user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.active-user-card{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:8px;min-width:0}
.active-user-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.active-user-top strong{word-break:break-word}
.mini-meta{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:7px;font-size:13px}.mini-meta span{color:var(--muted);font-weight:750}.mini-meta strong{font-weight:900;text-align:right;word-break:break-word}.access-count{display:inline-flex;min-width:38px;justify-content:center;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-weight:950;padding:7px 10px}.users-table th,.users-table td{font-size:13px}.users-table td:first-child{min-width:190px}
body.dark-mode .active-user-card,body.dark-mode .empty-state{background:#101a2d;border-color:#26354b}body.dark-mode .access-panel{border-color:rgba(56,189,248,.35)}
@media(max-width:900px){.active-user-grid{grid-template-columns:1fr}.panel-title-row{display:block}.users-table td:first-child{min-width:160px}}

/* 0.0.6 - access monitor visibility */
.access-overview-panel {
    border: 1px solid rgba(34, 211, 238, 0.28);
    box-shadow: 0 18px 50px rgba(8, 145, 178, 0.12);
}
.access-overview-panel .cards {
    margin-top: 14px;
}
.access-panel {
    border: 1px solid rgba(16, 185, 129, 0.22);
}
.access-count {
    display: inline-flex;
    min-width: 34px;
    justify-content: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(34, 211, 238, 0.14);
    color: var(--text);
    font-weight: 800;
}


.timezone-note{margin-top:10px;color:var(--muted);font-size:13px}.js-local-time{white-space:nowrap}.timezone-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.35);color:var(--text);font-size:12px;font-weight:700}.dark .timezone-pill{background:rgba(45,212,191,.13);border-color:rgba(45,212,191,.35)}


/* 0.0.11 - creazione account cliente in un solo passaggio */
.unified-account-grid .unified-customer-box {
    grid-column: 1 / -1;
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--border, #d6dee8);
    border-radius: 18px;
    background: rgba(15, 23, 42, 0.03);
}
.dark .unified-account-grid .unified-customer-box,
body.dark .unified-account-grid .unified-customer-box {
    background: rgba(148, 163, 184, 0.06);
}
.customer-create-inline h3 {
    margin: 0 0 4px;
    font-size: 18px;
}
.customer-inline-grid {
    margin-top: 10px;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
}
.existing-customer-details {
    border-top: 1px dashed var(--border, #d6dee8);
    padding-top: 12px;
}
.existing-customer-details summary {
    cursor: pointer;
    font-weight: 800;
    color: var(--accent, #0891b2);
    margin-bottom: 10px;
}
@media (max-width: 760px) {
    .customer-inline-grid { grid-template-columns: 1fr; }
}

.unified-help-box { grid-column: 1 / -1; padding: 14px 16px; border: 1px solid var(--border); border-radius: 16px; background: rgba(20,184,166,.08); color: var(--muted); line-height: 1.45; }
.user-create-grid { align-items: end; }


/* 0.0.15 - anagrafiche e modifica account */
.action-panel{border-color:rgba(45,212,191,.28);background:linear-gradient(180deg,rgba(45,212,191,.08),rgba(255,255,255,.92))}
.anagraphics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.anagraphic-card{background:var(--panel2);border:1px solid var(--line);border-radius:20px;padding:18px;display:grid;gap:14px;box-shadow:0 12px 32px rgba(15,23,42,.05)}
.anagraphic-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.anagraphic-head h3{margin:0 0 4px;font-size:21px}.anagraphic-head p{margin:0}.anagraphic-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.anagraphic-meta div{padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.anagraphic-meta span{display:block;color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.anagraphic-meta strong{word-break:break-word}.anagraphic-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.edit-details{border:1px dashed var(--line);border-radius:16px;padding:12px;background:rgba(14,165,233,.05)}.edit-details summary{cursor:pointer;font-weight:900;color:var(--brand);list-style:none}.edit-details summary::-webkit-details-marker{display:none}.edit-details[open] summary{margin-bottom:12px}.edit-user-grid,.customer-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.edit-row td{background:transparent!important;padding-top:0}.edit-row .edit-details{margin:0 0 8px}.users-table .inline-form{display:inline-flex;margin-top:6px;margin-right:6px}.users-table .btn-small{margin-right:6px}.customer-edit-grid .unified-help-box,.edit-user-grid .unified-help-box{grid-column:1 / -1}.customer-edit-grid .form-actions,.edit-user-grid .form-actions{grid-column:1 / -1}
body.dark-mode .action-panel{background:linear-gradient(180deg,rgba(45,212,191,.08),rgba(15,23,42,.94))}body.dark-mode .anagraphic-card{background:#101a2d;border-color:#26354b}body.dark-mode .anagraphic-meta div{background:#0f172a;border-color:#26354b}body.dark-mode .edit-details{background:rgba(56,189,248,.06);border-color:#334155}
@media(max-width:1000px){.anagraphics-grid{grid-template-columns:1fr}.edit-user-grid,.customer-edit-grid{grid-template-columns:1fr}.anagraphic-meta{grid-template-columns:1fr}}


/* 0.0.16 - Gestione utenti responsive senza scroll orizzontale */
.user-management-panel .table-wrap { overflow-x: visible; }
.user-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 16px;
}
.user-admin-card {
    border: 1px solid rgba(148, 163, 184, 0.25);
    background: rgba(15, 23, 42, 0.42);
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 16px 38px rgba(0,0,0,.16);
}
.user-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 14px;
}
.user-card-name { font-size: 18px; font-weight: 900; color: var(--text); line-height: 1.15; }
.user-card-email { color: var(--accent); font-weight: 800; text-decoration: none; overflow-wrap: anywhere; }
.user-card-phone { color: var(--muted); margin-top: 4px; font-size: 13px; }
.user-card-badges { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; flex-shrink: 0; }
.user-card-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0;
}
.user-card-info-grid .mini-meta {
    margin: 0;
    padding: 10px 11px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 13px;
    background: rgba(2, 6, 23, 0.18);
}
.user-card-info-grid .mini-meta small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    overflow-wrap: anywhere;
}
.user-card-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.user-edit-details {
    margin-top: 14px;
    border-top: 1px solid rgba(148, 163, 184, 0.20);
    padding-top: 12px;
}
.user-edit-details summary {
    cursor: pointer;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 12px;
}
.user-edit-details[open] summary { margin-bottom: 14px; }
.edit-user-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.edit-user-grid .unified-help-box { grid-column: 1 / -1; }
.edit-user-grid .form-actions { grid-column: 1 / -1; }
@media (max-width: 980px) {
    .user-card-info-grid { grid-template-columns: 1fr; }
    .edit-user-grid { grid-template-columns: 1fr; }
    .user-card-header { flex-direction: column; }
    .user-card-badges { align-items: flex-start; flex-direction: row; }
}


/* 0.0.18 - Gestione utenti più leggibile */
.user-management-panel {
  max-width: 1180px;
  margin-inline: auto;
}
.user-management-panel .panel-title-row {
  align-items: flex-start;
  gap: 18px;
}
.user-card-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
}
.user-admin-card {
  position: relative;
  display: grid;
  gap: 16px;
  padding: 20px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(148,163,184,.28) !important;
  background: linear-gradient(145deg, rgba(15,23,42,.88), rgba(15,23,42,.62)) !important;
  box-shadow: 0 20px 50px rgba(0,0,0,.18) !important;
  overflow: hidden;
}
.user-admin-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, var(--brand), var(--brand2));
  opacity: .95;
}
.user-card-header {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: start;
  gap: 18px;
  margin: 0 !important;
}
.user-card-name {
  font-size: 19px !important;
  font-weight: 950 !important;
  margin-bottom: 5px;
}
.user-card-email {
  display: inline-flex;
  color: #38bdf8 !important;
  font-weight: 850 !important;
  word-break: break-all;
}
.user-card-phone {
  margin-top: 5px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 750;
}
.user-card-badges {
  display: flex !important;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 150px;
}
.user-card-info-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 12px !important;
}
.user-admin-card .mini-meta {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px !important;
  border: 1px solid rgba(148,163,184,.20) !important;
  border-radius: 16px;
  padding: 12px !important;
  background: rgba(2,6,23,.22);
  min-width: 0;
}
.user-admin-card .mini-meta span {
  font-size: 11px !important;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted) !important;
}
.user-admin-card .mini-meta strong {
  text-align: left !important;
  font-size: 14px;
  line-height: 1.25;
}
.user-admin-card .mini-meta small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-weight: 700;
  word-break: break-word;
}
.user-card-actions {
  display: flex !important;
  flex-wrap: wrap;
  gap: 10px !important;
  align-items: center;
  padding-top: 4px;
}
.user-edit-details {
  margin-top: 2px;
  border: 1px solid rgba(56,189,248,.34) !important;
  background: rgba(14,165,233,.08) !important;
  border-radius: 18px !important;
  padding: 14px !important;
}
.user-edit-details summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #67e8f9 !important;
  font-weight: 950 !important;
}
.user-edit-details[open] {
  padding: 18px !important;
}
.user-edit-details[open] summary {
  margin-bottom: 16px !important;
}
.edit-user-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 14px !important;
}
.edit-user-grid .unified-help-box {
  align-self: stretch;
  display: flex;
  align-items: center;
}
.edit-user-grid .form-actions {
  grid-column: 1 / -1;
}
@media (max-width: 1100px) {
  .user-card-info-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .edit-user-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 720px) {
  .user-card-header { grid-template-columns: 1fr !important; }
  .user-card-badges { justify-content: flex-start; }
  .user-card-info-grid { grid-template-columns: 1fr; }
  .edit-user-grid { grid-template-columns: 1fr !important; }
}

/* Riepilogo terminale 0.0.18: documentato in SERVIZI_FUNZIONAMENTO_COMPLETO.txt */


/* 0.0.19 - pulsante modifica centrato e registro accessi compatto */
.edit-details summary.edit-summary-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    padding: 12px 18px;
    border-radius: 14px;
    border: 1px solid rgba(34, 211, 238, .35);
    background: linear-gradient(135deg, rgba(34, 211, 238, .14), rgba(14, 165, 233, .10));
    color: #67e8f9;
    text-align: center;
    font-weight: 900;
    letter-spacing: .01em;
    cursor: pointer;
}
.edit-details[open] summary.edit-summary-button {
    margin-bottom: 16px;
    background: linear-gradient(135deg, rgba(45, 212, 191, .20), rgba(14, 165, 233, .14));
    border-color: rgba(45, 212, 191, .55);
}
.compact-log-panel { padding: 0; overflow: hidden; }
.compact-log-details { padding: 0; }
.compact-log-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 20px;
    cursor: pointer;
    color: var(--text);
    font-weight: 900;
    list-style: none;
}
.compact-log-summary::-webkit-details-marker { display: none; }
.compact-log-summary small { color: var(--muted); font-weight: 700; }
.access-log-list { display: grid; gap: 8px; padding: 0 18px 18px; }
.access-log-row {
    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) auto minmax(220px, 1.2fr) minmax(180px, 1fr);
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(15, 23, 42, .22);
}
.access-log-row span { color: var(--muted); font-size: 12px; word-break: break-word; }
.access-log-row strong { word-break: break-word; }
@media(max-width: 900px) {
    .compact-log-summary { align-items: flex-start; flex-direction: column; }
    .access-log-row { grid-template-columns: 1fr; }
}

/* 0.0.24 - filtri registro accessi e accessi utente cliccabili */
.access-metric-link {
    text-decoration: none;
    color: inherit;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.access-metric-link:hover {
    transform: translateY(-1px);
    border-color: rgba(45, 212, 191, .60) !important;
    background: rgba(45, 212, 191, .10) !important;
}
.access-metric-link small {
    color: #67e8f9 !important;
    font-weight: 850 !important;
}
.access-filter-form {
    display: grid;
    grid-template-columns: minmax(220px, 1.2fr) minmax(140px, .6fr) minmax(220px, 1fr) auto;
    gap: 12px;
    align-items: end;
    padding: 0 18px 16px;
}
.access-filter-form label {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.access-filter-form input,
.access-filter-form select {
    min-height: 40px;
}
.access-filter-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.selected-access-user {
    margin: 0 18px 14px;
    padding: 12px 14px;
    border: 1px solid rgba(45, 212, 191, .32);
    border-radius: 14px;
    background: rgba(45, 212, 191, .08);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.selected-access-user span {
    color: #38bdf8;
    font-weight: 850;
}
.access-empty-state {
    padding: 0 18px 18px;
}
@media(max-width: 1000px) {
    .access-filter-form { grid-template-columns: 1fr 1fr; }
    .access-filter-actions { grid-column: 1 / -1; }
}
@media(max-width: 640px) {
    .access-filter-form { grid-template-columns: 1fr; }
}



/* 0.0.25 - modalità scura corretta + statistiche media accessi */
body:not(.dark-mode) .user-admin-card {
  background: linear-gradient(180deg, #ffffff, #f8fbff) !important;
  border-color: rgba(203, 213, 225, .95) !important;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .08) !important;
  color: #0f172a !important;
}
body:not(.dark-mode) .user-admin-card .user-card-name,
body:not(.dark-mode) .user-admin-card .mini-meta strong,
body:not(.dark-mode) .user-admin-card .mini-meta span,
body:not(.dark-mode) .user-admin-card .mini-meta small {
  color: inherit;
}
body:not(.dark-mode) .user-admin-card .mini-meta {
  background: #f8fafc !important;
  border-color: #dbe5f1 !important;
}
body:not(.dark-mode) .user-admin-card .mini-meta span,
body:not(.dark-mode) .user-admin-card .mini-meta small {
  color: #64748b !important;
}
body:not(.dark-mode) .user-edit-details {
  background: #eff8ff !important;
  border-color: rgba(14, 165, 233, .35) !important;
}
body:not(.dark-mode) .edit-details summary.edit-summary-button {
  background: linear-gradient(135deg, rgba(14,165,233,.14), rgba(45,212,191,.12));
  color: #0369a1;
  border-color: rgba(14,165,233,.35);
}
body:not(.dark-mode) .access-log-row {
  background: #ffffff !important;
  border-color: #dbe5f1 !important;
  color: #0f172a !important;
}
body:not(.dark-mode) .compact-log-panel,
body:not(.dark-mode) .access-average-panel {
  background: rgba(255,255,255,.96) !important;
  color: #0f172a !important;
}
body.dark-mode .user-admin-card {
  background: linear-gradient(145deg, rgba(15,23,42,.96), rgba(15,23,42,.78)) !important;
  border-color: rgba(71,85,105,.82) !important;
  color: var(--text) !important;
}
body.dark-mode .user-admin-card .mini-meta,
body.dark-mode .access-log-row,
body.dark-mode .access-average-card {
  background: rgba(2,6,23,.32) !important;
  border-color: rgba(71,85,105,.82) !important;
  color: var(--text) !important;
}
body.dark-mode .user-edit-details {
  background: rgba(14,165,233,.08) !important;
  border-color: rgba(56,189,248,.36) !important;
}
body.dark-mode .sidebar {
  background: rgba(15,23,42,.92) !important;
}
body.dark-mode .panel {
  background: rgba(15,23,42,.92) !important;
}
body.dark-mode .nav a.active,
body.dark-mode .nav a:hover {
  background: rgba(45,212,191,.16) !important;
  color: #67e8f9 !important;
}
body.dark-mode .nav-mode-toggle.is-off {
  background: rgba(154,52,18,.20) !important;
  color: #fed7aa !important;
  border-color: rgba(251,146,60,.45) !important;
}
.access-average-panel {
  border-color: rgba(14,165,233,.24);
}
.access-average-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.access-average-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 16px;
  background: var(--panel2);
  min-width: 0;
}
.average-main {
  font-size: 34px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -.04em;
  color: var(--text);
  margin: 6px 0 4px;
}
.average-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}
.average-meta span {
  display: inline-flex;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(14,165,233,.10);
  border: 1px solid rgba(14,165,233,.18);
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
body.dark-mode .average-meta span {
  background: rgba(56,189,248,.10);
  border-color: rgba(56,189,248,.24);
  color: #b7c7dc;
}
@media(max-width: 900px) {
  .access-average-grid { grid-template-columns: 1fr; }
}


/* 0.0.27 - filtro ricerca nome/email per media accessi */
.access-average-filter {
  display: flex;
  gap: 12px;
  align-items: end;
  flex-wrap: wrap;
  margin: 14px 0 16px;
}
.access-average-filter label {
  min-width: min(420px, 100%);
  flex: 1 1 360px;
}
.access-average-filter input,
.access-average-filter select {
  width: 100%;
}
.access-average-filter input[type=search] {
  min-height: 42px;
}
.average-selected-user {
  margin-bottom: 14px;
}
