:root {
    --bg: #f3f6fb;
    --surface: #ffffff;
    --text: #1e293b;
    --muted: #64748b;
    --primary: #4f46e5;
    --primary-dark: #3730a3;
    --primary-soft: #eef2ff;
    --border: #dfe7f1;
    --success: #047857;
    --success-bg: #ecfdf5;
    --danger: #b91c1c;
    --danger-bg: #fef2f2;
    --shadow: 0 12px 35px rgba(15, 23, 42, .08);
    --radius: 16px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-width: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; background: var(--bg); color: var(--text); }
button, input, select { font: inherit; }
h1,h2,h3,p { margin-top: 0; }
.topbar { min-height: 92px; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 28px; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 30; }
.topbar h1 { margin-bottom: 0; font-size: clamp(1.25rem, 2vw, 1.8rem); line-height: 1.2; }
.eyebrow { margin-bottom: 5px; color: var(--primary); text-transform: uppercase; letter-spacing: .11em; font-size: .72rem; font-weight: 800; }
.admin-box { display: flex; flex-direction: column; align-items: flex-end; min-width: 0; }
.admin-box span { max-width: 250px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 750; }
.admin-box small { color: var(--muted); }
.mobile-section-nav { display: none; }
.layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); min-height: calc(100vh - 92px); }
.sidebar { padding: 24px 16px; border-right: 1px solid var(--border); background: var(--surface); }
.sidebar a { display: block; padding: 11px 13px; margin-bottom: 6px; border-radius: 10px; color: var(--muted); text-decoration: none; font-weight: 650; }
.sidebar a:hover, .sidebar a.active { color: var(--primary); background: var(--primary-soft); }
.content { padding: 28px; min-width: 0; }
.hero, .card { background: var(--surface); border: 1px solid var(--border); border-radius: 18px; box-shadow: var(--shadow); }
.hero { padding: 26px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.hero p:last-child { margin-bottom: 0; color: var(--muted); }
.hero.compact { padding: 1.25rem 1.5rem; }
.stats { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 14px; margin: 18px 0; }
.stats article { min-width: 0; padding: 19px; background: var(--surface); border: 1px solid var(--border); border-radius: 15px; }
.stats strong { display: block; font-size: 1.7rem; }
.stats span { color: var(--muted); font-size: .88rem; }
.card { padding: 24px; }
.table-list > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--border); }
.table-list > div:last-child { border-bottom: 0; }
.table-list code { overflow-wrap: anywhere; }
.status { display: inline-flex; flex: 0 0 auto; padding: 6px 10px; border-radius: 999px; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.status.ok { background: var(--success-bg); color: var(--success); }
.status.ko { background: var(--danger-bg); color: var(--danger); }
.alert { margin-bottom: 18px; padding: 14px 16px; border-radius: 12px; }
.alert.success { background: var(--success-bg); color: #065f46; border: 1px solid #a7f3d0; }
.alert.danger { color: #991b1b; background: var(--danger-bg); border: 1px solid #fecaca; }
.placeholder { min-height: 280px; display: grid; place-content: center; text-align: center; }
.center-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.denied-card { width: min(620px, 100%); text-align: center; background: var(--surface); border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--shadow); padding: 38px; }
.denied-icon { width: 74px; height: 74px; margin: 0 auto 20px; display: grid; place-items: center; border-radius: 50%; background: var(--danger-bg); color: var(--danger); font-size: 2.4rem; font-weight: 900; }
.denied-card p:not(.eyebrow) { color: var(--muted); line-height: 1.65; }
.button { display: inline-flex; margin-top: 10px; padding: 12px 18px; border-radius: 10px; color: #fff; background: var(--primary); text-decoration: none; font-weight: 750; }
.toolbar { display: grid; grid-template-columns: minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr); gap: .75rem; padding: 1rem; margin-bottom: 1rem; position: sticky; top: 108px; z-index: 15; }
.toolbar input,.toolbar select,.user-form select { width: 100%; min-height: 44px; border: 1px solid var(--border); border-radius: 10px; padding: .72rem .8rem; background: #fff; color: var(--text); }
.toolbar input:focus,.toolbar select:focus,.user-form select:focus { outline: 3px solid rgba(79,70,229,.14); border-color: var(--primary); }
.users-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,330px),1fr)); gap: 1rem; }
.user-card { min-width: 0; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 1rem; }
.user-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .8rem; align-items: center; }
.user-head h3 { margin: 0; color: var(--text); font-size: 1rem; overflow-wrap: anywhere; }
.user-head p,.user-email { margin: .15rem 0; color: var(--muted); font-size: .82rem; overflow-wrap: anywhere; }
.avatar { width: 42px; height: 42px; flex: 0 0 auto; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg,var(--primary),var(--primary-dark)); color: #fff; font-weight: 700; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: 1rem; }
.form-grid label { min-width: 0; color: var(--text); font-size: .78rem; font-weight: 700; }
.form-grid label select { margin-top: .35rem; font-weight: 400; }
.client-field { grid-column: 1/-1; }
.client-field small { display: block; margin-top: .35rem; color: var(--muted); font-weight: 400; overflow-wrap: anywhere; }
.hidden { display: none!important; }
.form-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
.form-actions button { min-height: 44px; border: 0; border-radius: 10px; background: var(--primary); color: #fff; padding: .7rem 1rem; font-weight: 700; cursor: pointer; }
.form-actions button:hover { background: var(--primary-dark); }
[hidden] { display: none !important; }
@media (max-width: 1024px) {
    .layout { grid-template-columns: 190px minmax(0,1fr); }
    .content { padding: 22px; }
    .stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 820px) {
    .topbar { min-height: 78px; padding: 14px 18px; }
    .layout { display: block; min-height: 0; }
    .sidebar { display: none; }
    .mobile-section-nav { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 10px; padding: 10px 16px; background: var(--surface); border-bottom: 1px solid var(--border); position: sticky; top: 78px; z-index: 25; }
    .mobile-section-nav label { color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
    .mobile-section-nav select { width: 100%; min-height: 42px; border: 1px solid var(--border); border-radius: 10px; padding: .55rem .7rem; background: #fff; color: var(--text); }
    .content { padding: 18px; }
    .toolbar { top: 140px; grid-template-columns: 1fr 1fr; }
    .toolbar input { grid-column: 1/-1; }
    .stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
    .topbar { align-items: flex-start; gap: 10px; }
    .topbar .eyebrow { margin-bottom: 3px; }
    .admin-box { display: none; }
    .mobile-section-nav { top: 78px; }
    .content { padding: 12px; }
    .hero { padding: 18px; align-items: flex-start; flex-direction: column; gap: 12px; border-radius: 14px; }
    .hero.compact { padding: 1rem; }
    .card { padding: 16px; border-radius: 14px; }
    .toolbar { position: static; grid-template-columns: 1fr; gap: .6rem; padding: .75rem; }
    .toolbar input { grid-column: auto; }
    .users-grid { grid-template-columns: 1fr; gap: .75rem; }
    .user-card { padding: .85rem; border-radius: 14px; }
    .user-head { grid-template-columns: auto minmax(0,1fr); align-items: start; }
    .user-head > .status { grid-column: 1/-1; width: max-content; }
    .form-grid { grid-template-columns: 1fr; gap: .7rem; }
    .client-field { grid-column: auto; }
    .form-actions { justify-content: stretch; }
    .form-actions button { width: 100%; }
    .stats { gap: 8px; margin: 12px 0; }
    .stats article { padding: 14px; }
    .stats strong { font-size: 1.4rem; }
    .table-list > div { align-items: flex-start; }
    .denied-card { padding: 26px 18px; }
}
@media (max-width: 380px) {
    .topbar { padding-inline: 12px; }
    .topbar h1 { font-size: 1.12rem; }
    .mobile-section-nav { grid-template-columns: 1fr; gap: 4px; padding-inline: 12px; }
    .content { padding: 9px; }
    .stats { grid-template-columns: 1fr; }
    .avatar { width: 38px; height: 38px; }
}

/* STEP 4 - Gestione ruoli */
.role-create-card h3{margin:0 0 1rem}.role-create-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.role-create-form label,.role-edit-form label{display:flex;flex-direction:column;gap:.45rem;font-weight:650;color:var(--text,#243047)}.role-create-form input,.role-create-form textarea,.role-edit-form input,.role-edit-form textarea{width:100%;border:1px solid var(--border,#dbe2ea);border-radius:10px;padding:.75rem;background:#fff;font:inherit;color:inherit}.role-create-form small,.role-edit-form small{font-weight:400;color:var(--muted,#64748b)}.role-description-field{grid-column:1/-1}.roles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.role-card{position:relative;background:#fff;border:1px solid var(--border,#dbe2ea);border-radius:16px;padding:1.1rem;box-shadow:0 5px 18px rgba(15,23,42,.05)}.role-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem}.role-card-head h3{margin:0 0 .2rem}.role-card-head code{font-size:.8rem}.level-badge{white-space:nowrap;background:#eef2ff;color:#4338ca;border-radius:999px;padding:.35rem .65rem;font-weight:700;font-size:.78rem}.role-stats{display:flex;gap:.7rem;margin-bottom:1rem}.role-stats span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.5rem .7rem;font-size:.85rem}.role-form-grid{grid-template-columns:1fr 120px}.role-actions{margin-top:.85rem}.role-delete-form{position:absolute;right:1.1rem;bottom:1.1rem}.danger-button{border:1px solid #fecaca;background:#fff;color:#b91c1c;border-radius:10px;padding:.65rem .85rem;font-weight:700;cursor:pointer}.danger-button:disabled{opacity:.45;cursor:not-allowed}.protected-note{margin:.85rem 0 0;color:#64748b;font-size:.82rem}
@media(max-width:900px){.role-create-form{grid-template-columns:1fr 1fr}.roles-grid{grid-template-columns:1fr}}
@media(max-width:620px){.role-create-form{grid-template-columns:1fr}.role-description-field{grid-column:auto}.role-card{padding:1rem}.role-card-head{align-items:center}.role-form-grid{grid-template-columns:1fr}.role-actions{padding-right:0}.role-delete-form{position:static;margin-top:.7rem}.role-delete-form .danger-button{width:100%;min-height:44px}.role-edit-form .form-actions button,.role-create-form .form-actions button{width:100%;min-height:46px}.role-stats{flex-wrap:wrap}.level-badge{font-size:.74rem}}

/* STEP 5 - Risorse e permessi */
.resource-add-card{margin:1rem 0}.resource-add-card h3{margin-top:0}.resource-add-form{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:.8rem;align-items:end}.resource-add-form label,.resource-properties-form label{display:flex;flex-direction:column;gap:.4rem;font-weight:700;font-size:.82rem}.resource-add-form input,.resource-add-form select,.resource-properties-form input,.resource-properties-form select,.resource-properties-form textarea,.permission-row select{width:100%;min-height:44px;border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem;background:#fff;color:var(--text);font:inherit}.resource-toolbar{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr);gap:.75rem;margin:1rem 0;padding:1rem;position:sticky;top:108px;z-index:14}.resource-toolbar input,.resource-toolbar select{min-height:44px;border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem;background:#fff}.resources-list{display:grid;gap:.85rem}.resource-card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.resource-card.resource-focus{outline:3px solid rgba(79,70,229,.25);scroll-margin-top:170px}.resource-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem}.resource-head>div{display:flex;align-items:center;gap:.75rem;min-width:0}.resource-head h3{margin:0 0 .2rem;font-size:1rem}.resource-head code{display:block;overflow-wrap:anywhere;font-size:.8rem}.resource-icon{font-size:1.5rem}.resource-card details{border-top:1px solid var(--border)}.resource-card summary{cursor:pointer;padding:.85rem 1rem;font-weight:750;color:var(--primary);background:#f8fafc}.resource-panels{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(400px,1.2fr);gap:1rem;padding:1rem}.resource-panels form{border:1px solid var(--border);border-radius:12px;padding:1rem}.resource-panels h4{margin:0 0 .85rem}.resource-properties-form{display:grid;gap:.75rem}.resource-checks{display:flex;flex-wrap:wrap;gap:.75rem}.resource-checks label{display:flex;flex-direction:row;align-items:center;gap:.4rem;font-weight:600}.permission-grid{display:grid;gap:.55rem}.permission-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(150px,.8fr) auto;align-items:center;gap:.65rem;padding:.65rem;border:1px solid #e8edf3;border-radius:10px}.permission-row strong,.permission-row small{display:block}.permission-row small{color:var(--muted)}.child-check{display:flex;align-items:center;gap:.35rem;font-size:.78rem;white-space:nowrap}.return-resource{margin:0 1rem 1rem}
@media(max-width:950px){.resource-panels{grid-template-columns:1fr}.resource-add-form{grid-template-columns:160px 1fr}.resource-add-form .form-actions{grid-column:1/-1}.resource-add-form .form-actions button{width:100%}.resource-toolbar{top:140px}}
@media(max-width:700px){.resource-add-form,.resource-toolbar{grid-template-columns:1fr;position:static}.resource-head{align-items:flex-start}.resource-head>.status{margin-top:.1rem}.resource-panels{padding:.7rem}.resource-panels form{padding:.8rem}.permission-row{grid-template-columns:1fr}.child-check{white-space:normal}.resource-checks{display:grid}.return-resource{display:flex;justify-content:center}}

/* STEP 6 - Permessi individuali e verifica effettiva */
.status.neutral{background:#eef2f7;color:#526070}
.effective-test-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:1rem;align-items:end}
.effective-result{margin-top:1rem;padding:1rem;border-radius:12px;display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}
.effective-result.allowed{background:#ecfdf3;border:1px solid #a7f3d0;color:#166534}
.effective-result.denied{background:#fff1f2;border:1px solid #fecdd3;color:#9f1239}
.effective-result span{flex:1 1 260px}.effective-result code{font-size:.75rem}
.individual-permission-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.35fr);gap:1.25rem;padding-top:1rem}
.individual-permission-form,.current-individual-permissions{background:#f8fafc;border:1px solid var(--border);border-radius:12px;padding:1rem}
.individual-permission-form{display:grid;gap:.85rem}.inline-check{display:flex!important;align-items:center;gap:.55rem}.inline-check input{width:auto}
.individual-permission-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.75rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--border)}
.individual-permission-row:last-child{border-bottom:0}.individual-permission-row small,.individual-permission-row p{display:block;color:var(--secondary);margin:.15rem 0 0}
.permission-effect{font-size:.75rem;font-weight:700;text-transform:uppercase;padding:.3rem .55rem;border-radius:999px}
.permission-effect.consenti{background:#dcfce7;color:#166534}.permission-effect.nega{background:#fee2e2;color:#991b1b}
.small-button{padding:.45rem .65rem;font-size:.78rem}.muted{color:var(--secondary)}
@media(max-width:900px){.effective-test-form{grid-template-columns:1fr 1fr}.effective-test-form .form-actions{grid-column:1/-1}.individual-permission-layout{grid-template-columns:1fr}}
@media(max-width:620px){.effective-test-form{grid-template-columns:1fr}.effective-test-form .form-actions{grid-column:auto}.individual-permission-row{grid-template-columns:1fr}.individual-permission-row form,.individual-permission-row button{width:100%}}

/* STEP 7 - Scansione root */
.scan-card{margin:1rem 0}.scan-card-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.scan-card-head h3{margin:0 0 .35rem}.scan-card-head p{margin:0;color:var(--muted)}.scan-card button{min-height:44px;border:0;border-radius:10px;padding:.7rem 1rem;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.scan-results{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem;margin-top:1rem}.scan-results span{padding:.75rem;border:1px solid var(--border);border-radius:10px;background:#f8fafc;text-align:center;color:var(--muted);font-size:.78rem}.scan-results strong{display:block;color:var(--text);font-size:1.15rem}.scan-exclusions{margin-top:1rem;border-top:1px solid var(--border);padding-top:.8rem}.scan-exclusions summary{cursor:pointer;color:var(--primary);font-weight:750}.scan-exclusions form{display:grid;gap:.7rem;margin-top:.8rem}.scan-exclusions label{display:grid;gap:.4rem;font-weight:700}.scan-exclusions textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:.7rem;resize:vertical;font:inherit}.scan-exclusions small{color:var(--muted)}
@media(max-width:950px){.scan-results{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.scan-card-head{align-items:stretch;flex-direction:column}.scan-card-head form,.scan-card-head button{width:100%}.scan-results{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* STEP 8 - Home dei ruoli */
.home-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1rem}.home-role-card{padding:1rem}.home-role-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.home-role-head h3{margin:0 0 .25rem}.home-role-head code,.current-home code{overflow-wrap:anywhere}.current-home{display:flex;flex-direction:column;gap:.3rem;padding:.85rem;margin-bottom:1rem;border:1px solid var(--border);border-radius:12px;background:var(--light)}.current-home small{color:var(--secondary)}.home-role-form{display:grid;gap:.85rem}.home-role-form label{display:grid;gap:.4rem;font-weight:600}.home-role-form select{width:100%;min-height:44px}.remove-home-form{margin-top:.75rem}.home-role-card button:disabled{opacity:.55;cursor:not-allowed}@media(max-width:640px){.home-role-grid{grid-template-columns:1fr}.home-role-head{align-items:stretch;flex-direction:column}.home-role-head .status{align-self:flex-start}.home-role-form .form-actions button,.remove-home-form button{width:100%}}

/* STEP 10 - Gestione sessioni */
.session-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.session-actions-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0}.session-actions-card h3{margin:0 0 .3rem}.session-actions-card p{margin:0;color:var(--muted)}.session-actions{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}.revoke-user-form{display:flex;gap:.55rem;align-items:center}.revoke-user-form select,.session-toolbar input,.session-toolbar select{min-height:44px;border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem;background:#fff;font:inherit}.cleanup-session-form button{min-height:44px}.session-toolbar{display:grid;grid-template-columns:minmax(240px,2fr) minmax(150px,1fr) minmax(150px,1fr);gap:.75rem;margin:1rem 0;position:sticky;top:108px;z-index:14}.sessions-list{display:grid;gap:.85rem}.session-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:1rem;box-shadow:var(--shadow)}.session-card.current-session{outline:3px solid rgba(79,70,229,.18)}.session-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.session-card-head h3{margin:0 0 .2rem}.session-card-head p{margin:0;color:var(--muted);overflow-wrap:anywhere}.session-badges{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.status.current{background:#eef2ff;color:#4338ca}.session-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-top:1rem}.session-meta div{padding:.7rem;border:1px solid #e8edf3;border-radius:10px;background:#f8fafc;min-width:0}.session-meta small,.session-meta strong{display:block}.session-meta small{color:var(--muted);font-size:.72rem;margin-bottom:.2rem}.session-meta strong{font-size:.85rem;overflow-wrap:anywhere}.revocation-reason{margin:.8rem 0 0;padding:.65rem .75rem;border-radius:10px;background:#fff7ed;color:#9a3412}.revoke-session-form{display:flex;justify-content:flex-end;margin-top:.8rem}
@media(max-width:1000px){.session-actions-card{align-items:stretch;flex-direction:column}.session-actions{justify-content:stretch}.revoke-user-form{flex:1}.revoke-user-form select{flex:1}.session-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.session-toolbar{top:140px}.session-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.session-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.session-toolbar{grid-template-columns:1fr;position:static}.revoke-user-form{display:grid;width:100%}.revoke-user-form button,.cleanup-session-form,.cleanup-session-form button{width:100%}.session-card-head{flex-direction:column}.session-badges{justify-content:flex-start}.session-meta{grid-template-columns:1fr}.revoke-session-form .danger-button{width:100%;min-height:44px}}

/* STEP 11 - Registro attività */
.log-filter-form{display:grid;grid-template-columns:2fr repeat(4,minmax(130px,1fr));gap:1rem;align-items:end}.log-filter-form label,.cleanup-log-form label{display:flex;flex-direction:column;gap:.4rem;font-weight:600}.log-filter-form .form-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.7rem}.button-link{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1rem;border-radius:8px;background:var(--primary);color:#fff;text-decoration:none;font-weight:600}.button-link.secondary{background:var(--secondary)}.log-list{display:grid;gap:1rem}.log-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.log-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.log-card-head h3{margin:0 0 .25rem;font-size:1rem}.log-card-head p{margin:0;color:var(--secondary);font-size:.8rem}.log-badges{display:flex;gap:.4rem;flex-wrap:wrap}.status.warning{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.log-description{margin:.9rem 0;padding:.75rem;background:var(--light);border-radius:8px}.log-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.log-meta div{min-width:0}.log-meta small,.log-detail-grid small{display:block;color:var(--secondary);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.log-meta strong,.log-meta span{display:block;overflow-wrap:anywhere}.log-meta span{font-size:.8rem;color:var(--secondary)}.log-details{margin-top:1rem;border-top:1px solid var(--border);padding-top:.75rem}.log-details summary{cursor:pointer;font-weight:600}.log-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem}.log-detail-grid .full{grid-column:1/-1}.log-detail-grid pre{margin:.35rem 0 0;padding:.75rem;max-height:260px;overflow:auto;background:#0f172a;color:#e2e8f0;border-radius:8px;font-size:.75rem;white-space:pre-wrap;overflow-wrap:anywhere}.pagination{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin:1rem 0}.pagination a{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;background:#fff;text-decoration:none;color:var(--dark)}.pagination a.active{background:var(--primary);color:#fff;border-color:var(--primary)}.log-maintenance{display:flex;justify-content:space-between;gap:1rem;align-items:end}.cleanup-log-form{display:flex;gap:.75rem;align-items:end}.cleanup-log-form input{max-width:140px}
@media(max-width:1000px){.log-filter-form{grid-template-columns:1fr 1fr}.log-meta{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.log-filter-form,.log-meta,.log-detail-grid{grid-template-columns:1fr}.log-card-head,.log-maintenance,.cleanup-log-form{flex-direction:column;align-items:stretch}.log-badges{justify-content:flex-start}.cleanup-log-form input{max-width:none}.button-link,.log-filter-form button,.cleanup-log-form button{width:100%}}

/* Step 12: configurazione */
.config-warning{border-left:4px solid currentColor}.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.config-card{display:grid;gap:16px}.config-card.full{grid-column:1/-1}.config-card label{display:grid;gap:7px}.config-card small{opacity:.72}.switch-row{display:flex!important;align-items:center;justify-content:space-between;gap:20px;padding:14px;border:1px solid rgba(120,130,145,.22);border-radius:14px}.switch-row span{display:grid;gap:4px}.switch-row input{width:22px;height:22px}.config-save-bar{position:sticky;bottom:12px;display:flex;justify-content:flex-end;padding:14px;margin-top:18px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-radius:16px;box-shadow:0 10px 35px rgba(20,30,45,.14)}@media(max-width:760px){.config-grid{grid-template-columns:1fr}.config-card.full{grid-column:auto}.switch-row{align-items:flex-start}.config-save-bar button{width:100%}}

/* Step 13: diagnostica */
.diagnostic-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.diagnostic-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.diagnostic-toolbar h3{margin:0 0 .25rem}.diagnostic-toolbar p{margin:0;color:var(--secondary)}.diagnostic-list{display:grid;gap:.75rem}.diagnostic-group-title{margin:1rem 0 .15rem}.diagnostic-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;border-left:5px solid #94a3b8}.diagnostic-item.ok{border-left-color:#16a34a}.diagnostic-item.avviso{border-left-color:#f59e0b}.diagnostic-item.errore{border-left-color:#dc2626}.diagnostic-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f1f5f9;font-weight:800}.diagnostic-item h4{margin:0 0 .25rem}.diagnostic-item p{margin:0;color:var(--secondary)}.diagnostic-item small{display:block;margin-top:.4rem;color:var(--dark);font-weight:600}@media(max-width:650px){.diagnostic-toolbar,.diagnostic-item{align-items:stretch}.diagnostic-toolbar{flex-direction:column}.diagnostic-toolbar .button-link{width:100%}.diagnostic-item{grid-template-columns:auto 1fr}.diagnostic-item>.status{grid-column:1/-1;width:max-content}.diagnostic-stats{grid-template-columns:1fr}}

/* Step 14: messa in produzione */
.production-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.production-stats strong{font-size:1rem;overflow-wrap:anywhere}.production-note{border-left:5px solid #2563eb}.production-note h3{margin:0 0 .4rem}.production-note p{margin:0}.production-checks{display:grid;gap:.75rem}.production-check{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;border-left:5px solid #dc2626}.production-check.ok{border-left-color:#16a34a}.production-check-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f1f5f9;font-weight:900}.production-check h3{margin:0 0 .25rem}.production-check p{margin:0;color:var(--secondary)}.production-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem}.production-actions h3{margin:0 0 .35rem}.production-actions p{margin:0;color:var(--secondary)}.production-actions small{display:block;margin-top:.4rem}.deployment-form button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.production-stats{grid-template-columns:1fr}.production-check{grid-template-columns:auto 1fr}.production-check>.status{grid-column:1/-1;width:max-content}.production-actions{align-items:stretch;flex-direction:column}.deployment-form,.deployment-form button{width:100%}}
