:root{--blue:#1266ef;--navy:#0a2e73;--bg:#f4f8fd;--line:#dbe6f4;--green:#159447;--greenbg:#e5f7e9;--text:#16233b;--muted:#64748b;--shadow:0 10px 28px rgba(24,74,132,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px Inter,system-ui,-apple-system,Segoe UI,sans-serif}.shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column}.brand{height:110px;display:grid;place-items:center}.brand img{max-width:155px;max-height:100px;object-fit:contain}.sidebar nav{display:grid;gap:5px}.nav{display:flex;gap:12px;align-items:center;padding:11px 13px;border-radius:10px;color:#405170;text-decoration:none;font-weight:600}.nav:hover{background:#eef5ff;color:var(--blue)}.nav.active{background:linear-gradient(135deg,var(--blue),#0755d9);color:#fff;box-shadow:0 8px 20px rgba(17,103,245,.22)}.doticon{font-size:22px}.grow{flex:1}.system-card,.admin-card{border:1px solid var(--line);border-radius:13px;padding:13px;margin-top:14px;background:#fbfdff}.system-card{display:grid;gap:10px}.system-card strong{color:var(--green)}.system-card small{color:var(--muted)}.system-card small b{color:var(--text)}.admin-card{display:flex;align-items:center;gap:10px}.admin-card>span:last-child{display:grid}.admin-card small{color:var(--muted)}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:800}.main{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 20px;position:sticky;top:0;z-index:5}.title-wrap{display:flex;align-items:center;gap:14px}.title-wrap button{border:0;background:transparent;font-size:24px;color:var(--navy)}h1{margin:0;font-size:20px}.topbar p{margin:3px 0 0;color:var(--muted);font-size:12px}.actions{display:flex;align-items:center;gap:9px}.btn{border:1px solid #b9d1f6;background:#fff;color:var(--blue);border-radius:8px;padding:10px 14px;font-weight:700;cursor:pointer;text-decoration:none}.btn.primary{background:linear-gradient(135deg,var(--blue),#0755d9);border-color:transparent;color:#fff}.wide{width:100%}.bell{position:relative;font-size:20px}.bell i{position:absolute;right:-8px;top:-8px;background:red;color:#fff;border-radius:50%;width:17px;height:17px;font-size:10px;display:grid;place-items:center}.admin-mini{display:grid}.admin-mini small{color:var(--muted)}.content{padding:16px;max-width:1560px;margin:auto}.service-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;margin-bottom:14px}.service-card,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.service-card{min-height:96px;padding:12px;display:grid;place-items:center;align-content:center;gap:7px}.service-icon{color:var(--blue);font-size:22px}.badge{display:inline-flex;padding:4px 11px;border-radius:999px;background:var(--greenbg);color:var(--green);font-size:12px;font-weight:800}.hero{display:grid;grid-template-columns:1.35fr .95fr;gap:14px;margin-bottom:14px}.panel{padding:16px}.panel h2{margin:0 0 4px;font-size:17px}.panel>p{margin:0 0 12px;color:var(--muted)}.self-result{border:1px solid var(--line);border-radius:13px;min-height:170px;display:grid;place-items:center;align-content:center;text-align:center}.big-check{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:#e8f8ec;color:var(--green);font-size:40px}.self-result h3{margin:6px 0;color:#0b7b38;font-size:21px}.self-result p{margin:0;color:var(--muted)}.meta{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:10px;margin-top:10px;padding:9px 0}.meta div{text-align:center;border-right:1px solid var(--line)}.meta div:last-child{border:0}.meta small,.meta b{display:block}.meta small{color:var(--muted)}.panel-link{display:block;text-align:center;margin-top:11px;color:var(--blue);font-weight:800;text-decoration:none}.quick{display:grid;gap:8px;margin-top:12px}.quick button{border:1px solid #74aaff;border-radius:8px;background:#fff;color:var(--blue);padding:11px 15px;text-align:left}.quick button>*{display:block}.quick small{color:#5f7191}.quick .active{background:linear-gradient(135deg,var(--blue),#0755d9);color:#fff}.quick .active small{color:#dce9ff}.nodes-layout{display:grid;grid-template-columns:1fr 310px;gap:14px;margin-bottom:14px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{font-size:11px;color:#52627f;text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:10px 8px;border-bottom:1px solid #e8eef7;white-space:nowrap}.blue{color:var(--blue);font-weight:800}.status-dot{width:8px;height:8px;border-radius:50%;background:#1aaf55;display:inline-block;margin-right:8px}.details dl{margin:0}.details dl div{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;margin:9px 0}.details dt{color:var(--muted)}.details dd{margin:0;font-weight:700;overflow-wrap:anywhere}.green{color:var(--green)}.bottom{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.activity{list-style:none;padding:0;margin:10px 0}.activity li{padding:8px 0;display:flex;gap:8px}.activity time{margin-left:auto;color:var(--muted)}.warn{color:#a26100}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.kpis div{text-align:center;border-right:1px solid var(--line)}.kpis div:last-child{border:0}.kpis b,.kpis small{display:block}.kpis b{font-size:18px;color:var(--blue)}.kpis small{color:var(--muted)}.placeholder{min-height:520px;display:grid;place-items:center;align-content:center;text-align:center}.placeholder>div{font-size:58px;color:var(--blue)}.placeholder p{max-width:620px;color:var(--muted);line-height:1.7}.collapsed .shell{grid-template-columns:82px 1fr}.collapsed .brand img{max-width:55px}.collapsed .nav span:last-child,.collapsed .system-card,.collapsed .admin-card>span:last-child{display:none}.collapsed .nav{justify-content:center}.collapsed .admin-card{justify-content:center}@media(max-width:1200px){.service-grid{grid-template-columns:repeat(4,1fr)}.actions .btn{display:none}.nodes-layout{grid-template-columns:1fr}.details{display:none}}@media(max-width:900px){.shell{grid-template-columns:78px 1fr}.brand img{max-width:55px}.nav span:last-child,.system-card,.admin-card>span:last-child{display:none}.nav,.admin-card{justify-content:center}.hero,.bottom{grid-template-columns:1fr}.service-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.content{padding:10px}.admin-mini{display:none}.meta{grid-template-columns:1fr 1fr}.meta div{border:0}}

/* Sidebar refinement */
.brand{height:96px;margin-bottom:10px}
.sidebar nav{gap:4px}
.nav{min-height:44px;padding:10px 13px;gap:13px;transition:.18s ease}
.nav:hover{transform:translateX(2px)}
.nav:active{transform:translateX(1px) scale(.98)}
.menu-icon{width:20px;height:20px;stroke-width:1.9;flex:0 0 20px}
.nav.active .menu-icon{stroke:#fff}

/* Maggiore separazione tra logo e menu */
.sidebar nav {
    margin-top: 18px;
}

/* Icone dashboard e topbar */
.service-icon{width:25px;height:25px;display:grid;place-items:center}
.button-icon{width:17px;height:17px;flex:0 0 17px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.quick button{position:relative;padding-left:46px;min-height:52px}
.quick-icon{position:absolute;left:15px;top:50%;width:21px;height:21px;transform:translateY(-50%)}
.activity-icon{width:18px;height:18px;flex:0 0 18px}
.activity-icon.ok{color:var(--green)}
.activity-icon.info{color:var(--blue)}
.activity-icon.warning{color:#b76b00}
.title-wrap button{width:36px;height:36px;display:grid;place-items:center;cursor:pointer}
.title-wrap button svg{width:21px;height:21px}
.bell{position:relative;width:36px;height:36px;display:grid;place-items:center;border:0;background:transparent;color:var(--navy);cursor:pointer}
.bell svg{width:20px;height:20px}

/* Hover, clic e focus controlli */
.btn,.quick button,.bell,.title-wrap button,.panel-link{
    transition:transform .16s ease,box-shadow .16s ease,
               background-color .16s ease,border-color .16s ease,
               color .16s ease;
}

.btn:hover{
    transform:translateY(-1px);
    border-color:var(--blue);
    box-shadow:0 6px 16px rgba(18,102,239,.16);
}

.btn.primary:hover{
    box-shadow:0 8px 20px rgba(18,102,239,.28);
}

.quick button:hover{
    transform:translateY(-1px);
    border-color:var(--blue);
    background:#f2f7ff;
    box-shadow:0 6px 16px rgba(18,102,239,.12);
}

.quick button.active:hover{
    background:linear-gradient(135deg,#2575f2,#0755d9);
}

.bell:hover,.title-wrap button:hover{
    background:#eef5ff;
    color:var(--blue);
    border-radius:8px;
}

.panel-link:hover{
    color:var(--navy);
    transform:translateY(-1px);
}

.btn:active,.quick button:active,.bell:active,
.title-wrap button:active,.panel-link:active{
    transform:scale(.97);
}

.btn:focus-visible,.quick button:focus-visible,
.bell:focus-visible,.title-wrap button:focus-visible,
.panel-link:focus-visible,.nav:focus-visible{
    outline:3px solid rgba(18,102,239,.24);
    outline-offset:2px;
}

/* Rifinitura tabelle */
.table-wrap{
    border:1px solid var(--line);
    border-radius:11px;
}

th{
    padding:11px 10px;
    background:#f7faff;
    color:#415574;
    font-weight:800;
    letter-spacing:.02em;
}

td{
    padding:12px 10px;
    transition:background-color .15s ease;
}

tbody tr{
    transition:background-color .15s ease;
}

tbody tr:hover{
    background:#f1f6ff;
}

tbody tr:last-child td{
    border-bottom:0;
}

td .badge{
    align-items:center;
    justify-content:center;
    min-width:66px;
}

/* Uniformazione card */
.service-card,
.panel,
.system-card,
.admin-card{
    border-color:#d7e3f2;
    box-shadow:0 8px 24px rgba(24,74,132,.07);
    transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}

.service-card:hover,
.panel:hover{
    transform:translateY(-1px);
    border-color:#c7d8ee;
    box-shadow:0 12px 28px rgba(24,74,132,.10);
}

.panel{
    padding:18px;
}

.system-card,
.admin-card{
    background:#fcfdff;
}

.self-result{
    background:#fbfdff;
}

.meta{
    background:#fbfdff;
}

/* Topbar: maggiore spazio tra le azioni */
.actions{
    gap:13px;
}

.actions form,
.quick form {
    margin:0;
}

.quick form button {
    width:100%;
}

/* Self-test operativo */
.selftest-form button:disabled{
    opacity:.72;
    cursor:wait;
    pointer-events:none;
}

.selftest-form button.is-loading svg{
    animation:selftest-spin .8s linear infinite;
}

.self-result.failure .big-check{
    background:#fff0f0;
    color:#c62828;
}

.self-result.failure h3{
    color:#b42318;
}

.selftest-details{
    margin-top:12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fbfdff;
}

.selftest-details summary{
    padding:12px 14px;
    color:var(--blue);
    font-weight:800;
    cursor:pointer;
}

.selftest-details pre{
    margin:0;
    padding:14px;
    max-height:360px;
    overflow:auto;
    border-top:1px solid var(--line);
    white-space:pre-wrap;
    font-size:12px;
    line-height:1.55;
    color:#273752;
}

@keyframes selftest-spin{
    to{transform:rotate(360deg)}
}

/* Collassabile dettagli self-test */
.selftest-details{
    margin-top:14px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fbfdff;
    overflow:hidden;
}

.selftest-details summary{
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    color:var(--navy);
    font-size:13px;
    font-weight:800;
    cursor:pointer;
    user-select:none;
}

.selftest-details summary::-webkit-details-marker{
    display:none;
}

.selftest-details summary::after{
    content:'+';
    width:22px;
    height:22px;
    border-radius:6px;
    display:grid;
    place-items:center;
    background:#eef5ff;
    color:var(--blue);
    font-size:16px;
    line-height:1;
}

.selftest-details[open] summary::after{
    content:'−';
}

.selftest-details summary:hover{
    background:#f4f8ff;
}

.selftest-details pre{
    margin:0;
    padding:14px;
    max-height:360px;
    overflow:auto;
    border-top:1px solid var(--line);
    background:#fff;
    white-space:pre-wrap;
    font-size:12px;
    line-height:1.55;
    color:#273752;
}

/* Self-test a tutta larghezza */
.hero{
    grid-template-columns:1fr;
}

.hero .selftest{
    width:100%;
}

/* Situazione di sistema completa */
.system-test-columns{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-top:14px;
}

.test-block{
    border:1px solid var(--line);
    border-radius:13px;
    background:#fbfdff;
    padding:14px;
}

.test-block-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}

.test-block-head h3{
    margin:0 0 3px;
    color:var(--navy);
    font-size:15px;
}

.test-block-head small{
    color:var(--muted);
}

.test-list{
    display:grid;
    gap:7px;
}

.test-row{
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    min-height:54px;
    padding:8px 10px;
    border:1px solid #e5edf8;
    border-radius:10px;
    background:#fff;
}

.test-row>div{
    min-width:0;
}

.test-row b,
.test-row small{
    display:block;
}

.test-row b{
    color:var(--text);
    font-size:13px;
}

.test-row small{
    margin-top:2px;
    color:var(--muted);
    font-size:11px;
    overflow-wrap:anywhere;
}

.test-row-icon{
    width:30px;
    height:30px;
    border-radius:9px;
    display:grid;
    place-items:center;
}

.test-row-icon svg{
    width:17px;
    height:17px;
}

.test-row-icon.ok{
    color:var(--green);
    background:var(--greenbg);
}

.test-row-icon.error{
    color:#c62828;
    background:#fff0f0;
}

.status-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    padding:4px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
    white-space:nowrap;
}

.status-pill.ok{
    color:var(--green);
    background:var(--greenbg);
}

.status-pill.error{
    color:#b42318;
    background:#fff0f0;
}

.aggregator-summary{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-bottom:10px;
}

.aggregator-summary div{
    min-width:0;
    padding:9px 10px;
    border:1px solid #e5edf8;
    border-radius:9px;
    background:#fff;
}

.aggregator-summary small,
.aggregator-summary b{
    display:block;
}

.aggregator-summary small{
    color:var(--muted);
    font-size:10px;
}

.aggregator-summary b{
    margin-top:3px;
    color:var(--navy);
    font-size:12px;
    overflow-wrap:anywhere;
}

.test-empty{
    padding:15px;
    border:1px dashed #cddbee;
    border-radius:10px;
    color:var(--muted);
    text-align:center;
    background:#fff;
}

.technical-details h4{
    margin:0;
    padding:13px 14px;
    border-top:1px solid var(--line);
    color:var(--navy);
    background:#f7faff;
}

.technical-details pre{
    border-top:1px solid var(--line);
}

@media(max-width:980px){
    .system-test-columns{
        grid-template-columns:1fr;
    }
}

@media(max-width:620px){
    .aggregator-summary{
        grid-template-columns:1fr;
    }

    .test-row{
        grid-template-columns:32px minmax(0,1fr);
    }

    .test-row .status-pill{
        grid-column:2;
        justify-self:start;
    }
}

/* Selettore e test singolo nodo */
.node-details-head{
    align-items:center;
}

.node-selector{
    max-width:130px;
    min-height:34px;
    border:1px solid #b9d1f6;
    border-radius:8px;
    padding:6px 30px 6px 10px;
    background:#fff;
    color:var(--navy);
    font-weight:800;
    cursor:pointer;
}

.node-title-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:10px;
}

.node-title-row h3{
    margin:0;
}

.single-node-test-form{
    margin-top:16px;
}

.single-node-test-form button:disabled{
    opacity:.72;
    cursor:wait;
    pointer-events:none;
}

.single-node-test-form button.is-loading svg{
    animation:selftest-spin .8s linear infinite;
}

.single-node-result{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:11px;
    padding:10px 11px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fbfdff;
}

.single-node-result b,
.single-node-result small{
    display:block;
}

.single-node-result small{
    margin-top:2px;
    color:var(--muted);
    font-size:11px;
}

.single-node-result.success{
    border-color:#bfe7ca;
    background:#f4fcf6;
}

.single-node-result.failure{
    border-color:#f2c4c4;
    background:#fff7f7;
}

/* Autenticazione dashboard */
.auth-body{
    min-height:100vh;
    margin:0;
    background:#f2f7fd;
    color:#11213d;
}

.login-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:24px;
}

.login-card{
    width:min(430px,100%);
    padding:34px;
    border:1px solid #c9dcf5;
    border-radius:22px;
    background:#fff;
    box-shadow:0 18px 50px rgba(23,68,132,.12);
}

.login-brand{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:34px;
}

.login-mark{
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    border-radius:15px;
    background:#1265e8;
    color:#fff;
    font-size:25px;
    font-weight:900;
}

.login-brand h1,
.login-heading h2{
    margin:0;
    color:#11213d;
}

.login-brand p,
.login-heading p{
    margin:4px 0 0;
    color:#677895;
}

.login-heading{
    margin-bottom:22px;
}

.login-card form label{
    display:block;
    margin-top:16px;
}

.login-card form label span{
    display:block;
    margin-bottom:7px;
    color:#293b5a;
    font-size:14px;
    font-weight:800;
}

.login-card input[type="text"],
.login-card input[type="password"]{
    width:100%;
    box-sizing:border-box;
    min-height:48px;
    border:1px solid #bfd2ee;
    border-radius:11px;
    padding:11px 13px;
    background:#fbfdff;
    color:#11213d;
    font:inherit;
    outline:none;
}

.login-card input:focus{
    border-color:#1265e8;
    box-shadow:0 0 0 3px rgba(18,101,232,.12);
}

.login-button{
    margin-top:22px;
    min-height:49px;
}

.login-error{
    margin-bottom:17px;
    padding:11px 13px;
    border:1px solid #efbcbc;
    border-radius:10px;
    background:#fff4f4;
    color:#a12020;
    font-weight:700;
}

.login-security{
    margin:20px 0 0;
    text-align:center;
    color:#74839b;
    font-size:12px;
}

.logout-form{
    margin:0;
}

.logout-button{
    display:flex;
    align-items:center;
    gap:7px;
    min-height:38px;
    border:1px solid #cbdcf3;
    border-radius:9px;
    padding:7px 11px;
    background:#fff;
    color:#17335f;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}

.logout-button:hover{
    border-color:#1265e8;
    color:#1265e8;
}

.logout-button svg{
    width:17px;
    height:17px;
}

/* Correzione identità login */
.login-brand{
    display:block;
    margin-bottom:34px;
}

.login-logo{
    display:block;
    width:min(285px,100%);
    height:auto;
    max-height:88px;
    object-fit:contain;
    object-position:left center;
}

.login-brand p{
    margin:10px 0 0;
    color:#677895;
    font-size:16px;
    font-weight:600;
}

.login-heading h1{
    margin:0;
    color:#11213d;
}

.login-mark{
    display:none !important;
}


/* Menu utente topbar */
.user-menu{
    position:relative;
}

.user-menu > summary{
    list-style:none;
    display:flex;
    align-items:center;
    gap:10px;
    padding:5px 7px;
    border-radius:11px;
    cursor:pointer;
    user-select:none;
}

.user-menu > summary::-webkit-details-marker{
    display:none;
}

.user-menu > summary:hover{
    background:#f3f7fd;
}

.user-menu-chevron{
    width:17px;
    height:17px;
    color:#657691;
    transition:transform .18s ease;
}

.user-menu[open] .user-menu-chevron{
    transform:rotate(180deg);
}

.user-menu-dropdown{
    position:absolute;
    z-index:100;
    top:calc(100% + 10px);
    right:0;
    width:220px;
    padding:8px;
    border:1px solid #cadcf3;
    border-radius:13px;
    background:#fff;
    box-shadow:0 16px 38px rgba(17,48,91,.16);
}

.user-menu-header{
    padding:10px 11px 12px;
    border-bottom:1px solid #e3ebf6;
}

.user-menu-header b,
.user-menu-header small{
    display:block;
}

.user-menu-header b{
    color:#11213d;
}

.user-menu-header small{
    margin-top:3px;
    color:#74839b;
    font-size:12px;
}

.user-menu-dropdown form{
    margin:7px 0 0;
}

.user-menu-logout{
    width:100%;
    display:flex;
    align-items:center;
    gap:9px;
    border:0;
    border-radius:9px;
    padding:10px 11px;
    background:transparent;
    color:#b42318;
    font:inherit;
    font-weight:800;
    text-align:left;
    cursor:pointer;
}

.user-menu-logout:hover{
    background:#fff1f0;
}

.user-menu-logout svg{
    width:18px;
    height:18px;
}

/* Il vecchio logout esterno non deve comparire */
.logout-form,
.logout-button{
    display:none !important;
}

/* Allineamento definitivo login */
.login-brand{
    display:flex;
    justify-content:center;
    align-items:center;
    margin-bottom:38px;
    text-align:center;
}

.login-logo{
    width:min(285px,88%);
    margin:0 auto;
    object-position:center;
}

.login-heading{
    text-align:center;
}

.login-heading h1,
.login-heading p{
    text-align:center;
}

.login-heading p{
    margin-left:auto;
    margin-right:auto;
}

/* Attività recenti reali */
.recent-activities-panel{
    display:flex;
    flex-direction:column;
}

.activity-count{
    min-width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:#eef5ff;
    color:var(--blue);
    font-size:12px;
    font-weight:900;
}

.real-activity{
    display:grid;
    gap:8px;
    margin:12px 0 4px;
}

.real-activity .activity-item{
    display:grid;
    grid-template-columns:38px minmax(0,1fr) auto;
    align-items:center;
    gap:11px;
    min-height:62px;
    padding:10px 11px;
    border:1px solid #e1eaf6;
    border-radius:11px;
    background:#fbfdff;
}

.real-activity .activity-item:hover{
    background:#f5f9ff;
    border-color:#cadcf2;
}

.activity-icon-wrap{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:var(--greenbg);
    color:var(--green);
}

.activity-item.error .activity-icon-wrap{
    background:#fff0f0;
    color:#bd2525;
}

.activity-icon-wrap svg{
    width:19px;
    height:19px;
}

.activity-content{
    min-width:0;
}

.activity-content b,
.activity-content small{
    display:block;
}

.activity-content b{
    color:var(--text);
    font-size:13px;
}

.activity-content small{
    margin-top:3px;
    color:var(--muted);
    font-size:11px;
}

.real-activity time{
    display:block;
    min-width:76px;
    margin:0;
    color:#526480;
    text-align:right;
    font-size:11px;
    font-weight:700;
}

.real-activity time small{
    display:block;
    margin-top:2px;
    color:var(--muted);
}

.activity-empty{
    min-height:210px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:7px;
    color:var(--muted);
    text-align:center;
}

.activity-empty svg{
    width:34px;
    height:34px;
    color:#9bb1ce;
}

.activity-empty b{
    color:var(--text);
}

.activity-empty small{
    font-size:12px;
}

/* Tendina notifiche reali */
.notification-menu{
    position:relative;
}

.notification-menu > summary{
    list-style:none;
}

.notification-menu > summary::-webkit-details-marker{
    display:none;
}

.notification-dropdown{
    position:absolute;
    z-index:110;
    top:calc(100% + 12px);
    right:-12px;
    width:360px;
    max-height:480px;
    overflow:auto;
    border:1px solid #cadcf3;
    border-radius:15px;
    background:#fff;
    box-shadow:0 18px 42px rgba(17,48,91,.17);
}

.notification-header{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 15px;
    border-bottom:1px solid #e2eaf5;
    background:#fff;
}

.notification-header b,
.notification-header small{
    display:block;
}

.notification-header b{
    color:var(--navy);
    font-size:15px;
}

.notification-header small{
    margin-top:3px;
    color:var(--muted);
    font-size:11px;
}

.notification-header > span{
    min-width:27px;
    height:27px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:#eef5ff;
    color:var(--blue);
    font-size:12px;
    font-weight:900;
}

.notification-list{
    padding:8px;
}

.notification-item{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:10px;
    padding:11px;
    border-radius:11px;
}

.notification-item + .notification-item{
    border-top:1px solid #edf2f8;
}

.notification-item:hover{
    background:#f6f9fe;
}

.notification-icon{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:var(--greenbg);
    color:var(--green);
}

.notification-item.error .notification-icon{
    background:#fff0f0;
    color:#c62828;
}

.notification-icon svg{
    width:18px;
    height:18px;
}

.notification-content{
    min-width:0;
}

.notification-content b,
.notification-content small,
.notification-content time{
    display:block;
}

.notification-content b{
    color:var(--text);
    font-size:13px;
}

.notification-content small{
    margin-top:3px;
    color:var(--muted);
    font-size:11px;
    overflow-wrap:anywhere;
}

.notification-content time{
    margin-top:5px;
    color:#8795aa;
    font-size:10px;
}

.notification-empty{
    min-height:190px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:7px;
    padding:20px;
    color:var(--muted);
    text-align:center;
}

.notification-empty svg{
    width:31px;
    height:31px;
    color:#9db0c9;
}

.notification-empty b{
    color:var(--text);
}

.notification-empty small{
    font-size:11px;
}

.notification-menu[open] .bell{
    background:#eef5ff;
    color:var(--blue);
}

@media(max-width:620px){
    .notification-dropdown{
        position:fixed;
        top:70px;
        right:10px;
        left:10px;
        width:auto;
    }
}

/* Cancellazione notifiche */
.notification-footer{
    position:sticky;
    bottom:0;
    padding:8px;
    border-top:1px solid #e2eaf5;
    background:#fff;
}

.notification-footer form{
    margin:0;
}

.clear-notifications-button{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:39px;
    border:0;
    border-radius:9px;
    padding:9px 12px;
    background:#fff3f2;
    color:#b42318;
    font:inherit;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
}

.clear-notifications-button:hover{
    background:#ffe8e6;
}

.clear-notifications-button svg{
    width:16px;
    height:16px;
}

/* Stato sistema sidebar definitivo */
.system-card{
    display:grid;
    gap:12px;
    padding:15px;
}

.system-card-head{
    display:flex;
    align-items:center;
    gap:11px;
}

.system-card-head b{
    color:var(--text);
    font-size:15px;
}

.system-card strong{
    margin:0;
    color:var(--green);
    font-size:17px;
    line-height:1.25;
}

.system-card-row{
    display:grid;
    gap:3px;
}

.system-card-row span{
    color:var(--muted);
    font-size:12px;
}

.system-card-row b{
    color:var(--text);
    font-size:13px;
    line-height:1.3;
    overflow-wrap:anywhere;
}

.system-pulse{
    position:relative;
    width:12px;
    height:12px;
    flex:0 0 12px;
    border-radius:50%;
}

.system-pulse.is-ok{
    background:#1aaf55;
    animation:siria-system-pulse-ok 1.8s ease-out infinite;
}

.system-pulse.is-error{
    background:#dc2626;
    animation:siria-system-pulse-error 1.8s ease-out infinite;
}

@keyframes siria-system-pulse-ok{
    0%{
        box-shadow:0 0 0 0 rgba(26,175,85,.50);
    }

    70%{
        box-shadow:0 0 0 9px rgba(26,175,85,0);
    }

    100%{
        box-shadow:0 0 0 0 rgba(26,175,85,0);
    }
}

@keyframes siria-system-pulse-error{
    0%{
        box-shadow:0 0 0 0 rgba(220,38,38,.45);
    }

    70%{
        box-shadow:0 0 0 9px rgba(220,38,38,0);
    }

    100%{
        box-shadow:0 0 0 0 rgba(220,38,38,0);
    }
}

/* Il box amministratore laterale è stato rimosso */
.admin-card{
    display:none !important;
}

/* Riduzione testi box stato sistema */
.system-card{
    gap:9px;
    padding:13px;
}

.system-card-head{
    gap:9px;
}

.system-card-head b{
    font-size:13px;
}

.system-card strong{
    font-size:14px;
}

.system-card-row{
    gap:2px;
}

.system-card-row span{
    font-size:11px;
}

.system-card-row b{
    font-size:12px;
}

/* Parametri configurazione SMTP */
.smtp-config-trigger{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:8px;
    background:transparent;
    color:var(--navy);
    cursor:pointer;
    transition:background-color .16s ease,color .16s ease,
               transform .16s ease;
}

.smtp-config-trigger:hover{
    background:#eef5ff;
    color:var(--blue);
}

.smtp-config-trigger:active{
    transform:scale(.96);
}

.smtp-config-trigger svg{
    width:20px;
    height:20px;
}

.smtp-config-modal{
    position:fixed;
    inset:0;
    z-index:1000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:22px;
}

.smtp-config-modal.is-open{
    display:flex;
}

.smtp-config-backdrop{
    position:absolute;
    inset:0;
    background:rgba(8,25,53,.58);
    backdrop-filter:blur(3px);
}

.smtp-config-dialog{
    position:relative;
    z-index:1;
    width:min(760px,100%);
    max-height:calc(100vh - 44px);
    overflow:auto;
    border:1px solid #cbdcf2;
    border-radius:19px;
    background:#fff;
    box-shadow:0 28px 80px rgba(7,29,64,.30);
}

.smtp-config-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    padding:20px 22px;
    border-bottom:1px solid var(--line);
}

.smtp-config-heading{
    display:flex;
    align-items:center;
    gap:13px;
}

.smtp-config-heading-icon{
    width:43px;
    height:43px;
    display:grid;
    place-items:center;
    flex:0 0 43px;
    border-radius:12px;
    background:#eaf3ff;
    color:var(--blue);
}

.smtp-config-heading-icon svg{
    width:22px;
    height:22px;
}

.smtp-config-heading h2{
    margin:0;
    color:var(--navy);
    font-size:18px;
}

.smtp-config-heading p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:12px;
}

.smtp-config-close{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    flex:0 0 36px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#61718a;
    cursor:pointer;
}

.smtp-config-close:hover{
    background:#eef4fc;
    color:var(--navy);
}

.smtp-config-close svg{
    width:19px;
    height:19px;
}

.smtp-config-body{
    padding:20px 22px;
}

.smtp-config-notice{
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:11px;
    align-items:center;
    margin-bottom:17px;
    padding:12px 13px;
    border:1px solid #bde3c8;
    border-radius:11px;
    background:#f3fbf5;
}

.smtp-config-notice>svg{
    width:23px;
    height:23px;
    color:var(--green);
}

.smtp-config-notice b,
.smtp-config-notice small{
    display:block;
}

.smtp-config-notice b{
    color:#176a35;
    font-size:13px;
}

.smtp-config-notice small{
    margin-top:3px;
    color:#557162;
    font-size:11px;
    line-height:1.4;
}

.smtp-parameter-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:13px;
}

.smtp-parameter{
    min-width:0;
}

.smtp-parameter-wide{
    grid-column:1/-1;
}

.smtp-parameter label{
    display:block;
    margin-bottom:6px;
    color:#354967;
    font-size:12px;
    font-weight:800;
}

.smtp-value-row{
    display:flex;
    align-items:center;
    gap:7px;
}

.smtp-value-row input{
    min-width:0;
    width:100%;
    height:43px;
    border:1px solid #c8d9ee;
    border-radius:9px;
    padding:9px 11px;
    background:#f9fbfe;
    color:var(--text);
    font:inherit;
    font-size:13px;
    outline:none;
}

.smtp-value-row input:focus{
    border-color:var(--blue);
    box-shadow:0 0 0 3px rgba(18,102,239,.12);
    background:#fff;
}

.smtp-copy-button,
.smtp-password-toggle{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    flex:0 0 42px;
    border:1px solid #c8d9ee;
    border-radius:9px;
    background:#fff;
    color:var(--blue);
    cursor:pointer;
}

.smtp-copy-button:hover,
.smtp-password-toggle:hover{
    border-color:var(--blue);
    background:#eef5ff;
}

.smtp-copy-button svg,
.smtp-password-toggle svg{
    width:17px;
    height:17px;
}

.smtp-copy-button.is-copied{
    border-color:#91d1a4;
    background:#effaf2;
    color:var(--green);
}

.smtp-password-parameter>small{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:10px;
}

.smtp-instructions{
    margin-top:18px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fbfdff;
}

.smtp-instructions h3{
    margin:0 0 5px;
    color:var(--navy);
    font-size:13px;
}

.smtp-instructions p{
    margin:0;
    color:var(--muted);
    font-size:12px;
    line-height:1.55;
}

.smtp-config-footer{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    padding:15px 22px;
    border-top:1px solid var(--line);
    background:#fbfdff;
}

body.smtp-modal-open{
    overflow:hidden;
}

@media(max-width:700px){
    .smtp-config-modal{
        padding:10px;
    }

    .smtp-parameter-grid{
        grid-template-columns:1fr;
    }

    .smtp-parameter-wide{
        grid-column:auto;
    }

    .smtp-config-header,
    .smtp-config-body,
    .smtp-config-footer{
        padding-left:15px;
        padding-right:15px;
    }
}

/* Pagina Nodi SMTP */
.nodes-page{display:grid;gap:18px}
.nodes-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px}
.nodes-toolbar h2{margin:0;color:var(--navy);font-size:18px}
.nodes-toolbar p{margin:4px 0 0;color:var(--muted);font-size:12px}
.nodes-toolbar-actions{display:flex;gap:9px}

.nodes-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.nodes-stat{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}
.nodes-stat>span{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:#edf4ff;color:var(--blue)}
.nodes-stat svg{width:21px;height:21px}
.nodes-stat b,.nodes-stat small{display:block}
.nodes-stat b{color:var(--navy);font-size:22px}
.nodes-stat small{margin-top:2px;color:var(--muted);font-size:11px}
.nodes-stat.success>span{background:#edf9f1;color:var(--green)}
.nodes-stat.danger>span{background:#fff0f0;color:#d33535}

.node-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.node-main-card{display:block;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:inherit;text-decoration:none;transition:.16s ease}
.node-main-card:hover{border-color:#91b9f3;transform:translateY(-2px);box-shadow:0 10px 25px rgba(20,54,100,.08)}
.node-main-card.selected{border:2px solid var(--blue);padding:15px;box-shadow:0 10px 28px rgba(18,102,239,.12)}
.node-main-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.node-main-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:10px;background:#edf4ff;color:var(--blue)}
.node-main-icon svg{width:20px;height:20px}
.node-main-card h3{margin:14px 0 3px;color:var(--navy);font-size:16px}
.node-main-card>p{margin:0;color:var(--muted);font-size:11px;overflow-wrap:anywhere}
.node-main-card dl{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0 0}
.node-main-card dl div{padding-top:8px;border-top:1px solid #edf1f7}
.node-main-card dt{color:var(--muted);font-size:9px}
.node-main-card dd{margin:3px 0 0;color:#344966;font-size:11px;font-weight:800;overflow-wrap:anywhere}

.nodes-detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.8fr);gap:16px}
.node-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:16px}
.node-detail-grid>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}
.node-detail-grid small,.node-detail-grid b{display:block}
.node-detail-grid small{color:var(--muted);font-size:10px}
.node-detail-grid b{margin-top:4px;color:var(--navy);font-size:12px;overflow-wrap:anywhere}
.node-detail-actions{display:flex;gap:9px;margin-top:16px}
.node-detail-actions form{margin:0}
.node-test-result{display:flex;align-items:center;gap:11px;margin-top:15px;padding:12px;border-radius:10px}
.node-test-result.success{background:#effaf2;color:#1c763a}
.node-test-result.failure{background:#fff2f2;color:#b82f2f}
.node-test-result svg{width:21px;height:21px;flex:0 0 21px}
.node-test-result b,.node-test-result small{display:block}
.node-test-result small{margin-top:2px;font-size:10px}

.node-security-panel ul{list-style:none;margin:15px 0 0;padding:0;display:grid;gap:10px}
.node-security-panel li{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:10px}
.node-security-panel li>svg{width:19px;height:19px;color:var(--blue)}
.node-security-panel li b,.node-security-panel li small{display:block}
.node-security-panel li b{color:var(--navy);font-size:11px}
.node-security-panel li small{margin-top:2px;color:var(--muted);font-size:10px}

.nodes-table-panel{overflow:hidden}

@media(max-width:1100px){
    .node-card-grid,.nodes-stat-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:800px){
    .nodes-toolbar{align-items:flex-start;flex-direction:column}
    .nodes-detail-layout{grid-template-columns:1fr}
}

@media(max-width:600px){
    .node-card-grid,.nodes-stat-grid,.node-detail-grid{grid-template-columns:1fr}
    .nodes-toolbar-actions,.node-detail-actions{width:100%;flex-direction:column}
    .nodes-toolbar-actions .btn,.node-detail-actions .btn{width:100%}
}

/* Layout operativo pagina Nodi SMTP */
.nodes-workspace{
    display:grid;
    grid-template-columns:320px minmax(0,1fr);
    gap:16px;
    align-items:stretch;
}

.node-card-list{
    display:grid;
    grid-template-columns:1fr;
    gap:11px;
}

.node-card-list .node-main-card{
    padding:13px 14px;
}

.node-card-list .node-main-card.selected{
    padding:12px 13px;
}

.node-card-list .node-main-card h3{
    margin-top:10px;
}

.node-card-list .node-main-card dl{
    margin-top:11px;
    gap:7px;
}

.node-card-list .node-main-card dl div{
    padding-top:6px;
}

.nodes-workspace .node-detail-panel{
    min-width:0;
    height:100%;
}

.nodes-workspace .node-detail-grid{
    margin-top:18px;
}

.node-security-wide{
    padding:17px 20px;
}

.node-security-wide .panel-head{
    margin-bottom:13px;
}

.node-security-wide ul{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px;
    margin:0;
}

.node-security-wide li{
    min-width:0;
    margin:0;
}

.node-security-wide li span{
    min-width:0;
}

.node-security-wide li small{
    overflow-wrap:anywhere;
}

@media(max-width:1050px){
    .nodes-workspace{
        grid-template-columns:270px minmax(0,1fr);
    }

    .node-security-wide ul{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:760px){
    .nodes-workspace{
        grid-template-columns:1fr;
    }

    .node-card-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:560px){
    .node-card-list,
    .node-security-wide ul{
        grid-template-columns:1fr;
    }
}

/* Colonna nodi allineata esattamente a un box riepilogo */
@media(min-width:1101px){
    .nodes-workspace{
        grid-template-columns:
            calc((100% - 39px) / 4)
            minmax(0,1fr);
    }
}

/* Dettagli tecnici nodo */
.node-technical-section{
    margin-top:18px;
    padding-top:17px;
    border-top:1px solid var(--line);
}

.node-technical-title{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:11px;
}

.node-technical-title>svg{
    width:20px;
    height:20px;
    flex:0 0 20px;
    color:var(--blue);
}

.node-technical-title h3{
    margin:0;
    color:var(--navy);
    font-size:13px;
}

.node-technical-title p{
    margin:2px 0 0;
    color:var(--muted);
    font-size:10px;
}

.node-technical-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.node-technical-grid-compact{
    grid-template-columns:repeat(5,minmax(0,1fr));
}

.node-technical-grid>div{
    min-width:0;
    padding:10px 11px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fbfdff;
}

.node-technical-grid small,
.node-technical-grid b{
    display:block;
}

.node-technical-grid small{
    color:var(--muted);
    font-size:9px;
}

.node-technical-grid b{
    margin-top:4px;
    color:var(--navy);
    font-size:11px;
    overflow-wrap:anywhere;
}

.node-technical-grid b.green{
    color:var(--green);
}

.node-record-section{
    margin-bottom:18px;
}

@media(max-width:1250px){
    .node-technical-grid-compact{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:800px){
    .node-technical-grid,
    .node-technical-grid-compact{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:520px){
    .node-technical-grid,
    .node-technical-grid-compact{
        grid-template-columns:1fr;
    }
}

/* Informazioni VPS nel box Stato sistema */
.system-card-divider{
    height:1px;
    margin:2px 0;
    background:var(--line);
}

.system-card-progress{
    height:4px;
    margin-top:-4px;
    overflow:hidden;
    border-radius:999px;
    background:#e7eef8;
}

.system-card-progress span{
    display:block;
    height:100%;
    min-width:2px;
    border-radius:inherit;
    background:var(--blue);
}

.system-card-row b{
    overflow-wrap:anywhere;
}

/* Posizione geografica nei box dei nodi */
.node-card-location{
    display:flex;
    align-items:center;
    gap:6px;
    margin-top:7px;
    color:var(--muted);
    font-size:10px;
    line-height:1.3;
}

.node-card-location svg{
    width:13px;
    height:13px;
    flex:0 0 13px;
    color:var(--blue);
}

.node-card-location span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

/* Pagina utenti */
.users-page{
    display:grid;
    gap:17px;
}

.users-page-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}

.users-page-head h2{
    margin:0;
    color:var(--navy);
    font-size:19px;
}

.users-page-head p{
    margin:5px 0 0;
    color:var(--muted);
    font-size:12px;
}

.users-feedback{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 14px;
    border:1px solid;
    border-radius:11px;
    font-size:12px;
    font-weight:700;
}

.users-feedback svg{
    width:19px;
    height:19px;
    flex:0 0 19px;
}

.users-feedback.success{
    border-color:#b9e2c5;
    background:#effaf2;
    color:#1c7139;
}

.users-feedback.error{
    border-color:#f0c1c1;
    background:#fff3f3;
    color:#a82d2d;
}

.users-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    align-items:start;
}

.users-section{
    min-width:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fff;
    box-shadow:0 9px 30px rgba(17,48,91,.055);
}

.users-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:13px;
    padding:16px;
    border-bottom:1px solid var(--line);
}

.users-section-title{
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
}

.users-section-title h3{
    margin:0;
    color:var(--navy);
    font-size:15px;
}

.users-section-title p{
    margin:3px 0 0;
    color:var(--muted);
    font-size:10px;
}

.users-section-icon{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    flex:0 0 40px;
    border-radius:11px;
    background:#edf4ff;
    color:var(--blue);
}

.users-section-icon.portal{
    background:#f0ecff;
    color:#7554d8;
}

.users-section-icon svg{
    width:20px;
    height:20px;
}

.users-add-button{
    flex:0 0 auto;
}

.users-add-button svg{
    width:16px;
    height:16px;
}

.users-filters{
    display:grid;
    grid-template-columns:minmax(0,1fr) 118px;
    gap:9px;
    padding:13px 16px;
    border-bottom:1px solid var(--line);
    background:#fbfdff;
}

.users-search{
    position:relative;
    display:block;
}

.users-search svg{
    position:absolute;
    top:50%;
    left:11px;
    width:16px;
    height:16px;
    color:#8391a7;
    transform:translateY(-50%);
    pointer-events:none;
}

.users-search input,
.users-filters select{
    width:100%;
    height:38px;
    border:1px solid #cfdaea;
    border-radius:9px;
    background:#fff;
    color:#263a57;
    font:inherit;
    font-size:11px;
    outline:none;
}

.users-search input{
    padding:0 11px 0 35px;
}

.users-filters select{
    padding:0 9px;
}

.users-search input:focus,
.users-filters select:focus{
    border-color:#75a9ed;
    box-shadow:0 0 0 3px rgba(18,102,239,.09);
}

.users-list{
    display:grid;
}

.user-row{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) 34px;
    gap:11px;
    align-items:start;
    padding:15px 16px;
    border-bottom:1px solid #edf1f6;
}

.user-row:last-of-type{
    border-bottom:0;
}

.user-row[hidden]{
    display:none;
}

.user-row-avatar{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:11px;
    font-size:11px;
    font-weight:900;
}

.user-row-avatar.smtp{
    background:#edf4ff;
    color:var(--blue);
}

.user-row-avatar.portal{
    background:#f0ecff;
    color:#6946ce;
}

.user-row-avatar svg{
    width:19px;
    height:19px;
}

.user-row-content{
    min-width:0;
}

.user-row-primary{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:9px;
}

.user-row-primary h4{
    margin:0;
    color:var(--navy);
    font-size:13px;
    overflow-wrap:anywhere;
}

.user-row-primary p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:10px;
    line-height:1.4;
    overflow-wrap:anywhere;
}

.status-pill{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    padding:4px 7px;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
}

.status-pill.active{
    background:#eaf8ee;
    color:#197039;
}

.status-pill.inactive{
    background:#f1f3f6;
    color:#6b778a;
}

.user-row-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 13px;
    margin-top:11px;
}

.user-row-meta span{
    display:flex;
    align-items:center;
    gap:4px;
    min-width:0;
    color:var(--muted);
    font-size:9px;
}

.user-row-meta svg{
    width:12px;
    height:12px;
    flex:0 0 12px;
    color:#7d90ac;
}

.user-row-meta b{
    color:#40536e;
    font-size:9px;
    overflow-wrap:anywhere;
}

.user-edit-button{
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#65758c;
    cursor:pointer;
}

.user-edit-button:hover{
    background:#eef5ff;
    color:var(--blue);
}

.user-edit-button svg{
    width:16px;
    height:16px;
}

.users-empty{
    display:grid;
    justify-items:center;
    gap:5px;
    padding:34px 20px;
    color:var(--muted);
    text-align:center;
}

.users-empty[hidden]{
    display:none;
}

.users-empty svg{
    width:29px;
    height:29px;
    margin-bottom:3px;
    color:#9aabc1;
}

.users-empty b{
    color:#52657f;
    font-size:12px;
}

.users-empty span{
    font-size:10px;
}

/* Modali utenti */
.user-modal{
    position:fixed;
    inset:0;
    z-index:1100;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
}

.user-modal.is-open{
    display:flex;
}

.user-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(7,23,48,.62);
    backdrop-filter:blur(3px);
}

.user-modal-dialog{
    position:relative;
    z-index:1;
    width:min(650px,100%);
    max-height:calc(100vh - 40px);
    overflow:auto;
    border:1px solid #cbd9eb;
    border-radius:17px;
    background:#fff;
    box-shadow:0 30px 90px rgba(4,22,52,.34);
}

.user-modal-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    padding:18px 20px;
    border-bottom:1px solid var(--line);
}

.user-modal-heading{
    display:flex;
    align-items:center;
    gap:12px;
}

.user-modal-heading>span{
    width:41px;
    height:41px;
    display:grid;
    place-items:center;
    flex:0 0 41px;
    border-radius:11px;
    background:#edf4ff;
    color:var(--blue);
}

.user-modal-heading>span.portal{
    background:#f0ecff;
    color:#6b49cf;
}

.user-modal-heading svg{
    width:20px;
    height:20px;
}

.user-modal-heading h2{
    margin:0;
    color:var(--navy);
    font-size:17px;
}

.user-modal-heading p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:10px;
}

.user-modal-close{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#65758b;
    cursor:pointer;
}

.user-modal-close:hover{
    background:#eef4fc;
    color:var(--navy);
}

.user-modal-close svg{
    width:18px;
    height:18px;
}

.user-modal-body{
    padding:19px 20px;
}

.user-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.user-form-wide{
    grid-column:1 / -1;
}

.user-form-field{
    min-width:0;
    margin:0;
    padding:0;
    border:0;
}

.user-form-field>span,
.user-form-field legend{
    display:block;
    margin:0 0 6px;
    padding:0;
    color:#425571;
    font-size:10px;
    font-weight:800;
}

.user-form-field input,
.user-form-field select,
.user-form-field textarea{
    width:100%;
    border:1px solid #ced9e8;
    border-radius:9px;
    background:#fff;
    color:#263a56;
    font:inherit;
    font-size:11px;
    outline:none;
}

.user-form-field input,
.user-form-field select{
    height:40px;
    padding:0 11px;
}

.user-form-field textarea{
    min-height:78px;
    padding:10px 11px;
    resize:vertical;
}

.user-form-field input:focus,
.user-form-field select:focus,
.user-form-field textarea:focus{
    border-color:#75a9ed;
    box-shadow:0 0 0 3px rgba(18,102,239,.09);
}

.user-form-field small{
    display:block;
    margin-top:5px;
    color:var(--muted);
    font-size:9px;
}

.user-password-field{
    position:relative;
}

.user-password-field input{
    padding-right:43px;
}

.user-password-field button{
    position:absolute;
    top:50%;
    right:5px;
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:7px;
    background:transparent;
    color:#75859b;
    cursor:pointer;
    transform:translateY(-50%);
}

.user-password-field button:hover{
    background:#eef4fc;
    color:var(--blue);
}

.user-password-field svg{
    width:16px;
    height:16px;
}

.user-checkbox-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    padding:10px;
    border:1px solid #d4deeb;
    border-radius:9px;
    background:#fbfdff;
}

.user-checkbox-grid label{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    padding:7px 8px;
    border:1px solid #e1e8f2;
    border-radius:8px;
    background:#fff;
    color:#40536e;
    font-size:10px;
    cursor:pointer;
}

.user-checkbox-grid input{
    width:14px;
    height:14px;
    flex:0 0 14px;
    accent-color:var(--blue);
}

.user-checkbox-grid span{
    min-width:0;
    overflow-wrap:anywhere;
}

.user-form-placeholder{
    grid-column:1 / -1;
    color:var(--muted);
    font-size:10px;
    text-align:center;
}

.user-active-switch{
    display:flex;
    align-items:center;
    gap:10px;
    padding:11px 12px;
    border:1px solid #d7e1ee;
    border-radius:10px;
    background:#fbfdff;
    cursor:pointer;
}

.user-active-switch input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.user-switch-control{
    position:relative;
    width:38px;
    height:21px;
    flex:0 0 38px;
    border-radius:999px;
    background:#c9d2df;
    transition:.16s ease;
}

.user-switch-control::after{
    content:"";
    position:absolute;
    top:3px;
    left:3px;
    width:15px;
    height:15px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 5px rgba(15,35,62,.2);
    transition:.16s ease;
}

.user-active-switch input:checked+.user-switch-control{
    background:var(--green);
}

.user-active-switch input:checked+.user-switch-control::after{
    transform:translateX(17px);
}

.user-active-switch b,
.user-active-switch small{
    display:block;
}

.user-active-switch b{
    color:#354a67;
    font-size:10px;
}

.user-active-switch small{
    margin-top:2px;
    color:var(--muted);
    font-size:9px;
}

.user-modal-footer{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    padding:14px 20px;
    border-top:1px solid var(--line);
    background:#fbfdff;
}

.user-modal-footer svg{
    width:16px;
    height:16px;
}

.user-delete-form{
    padding:0 20px 18px;
}

.user-delete-form[hidden]{
    display:none;
}

.user-delete-button{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    width:100%;
    padding:9px 12px;
    border:1px solid #edc1c1;
    border-radius:9px;
    background:#fff6f6;
    color:#b13232;
    font-size:10px;
    font-weight:800;
    cursor:pointer;
}

.user-delete-button:hover{
    border-color:#e09898;
    background:#ffeded;
}

.user-delete-button svg{
    width:15px;
    height:15px;
}

body.user-modal-open{
    overflow:hidden;
}

@media(max-width:1100px){
    .users-columns{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .users-section-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .users-add-button{
        width:100%;
    }

    .users-filters,
    .user-form-grid,
    .user-checkbox-grid{
        grid-template-columns:1fr;
    }

    .user-form-wide{
        grid-column:auto;
    }

    .user-row{
        grid-template-columns:38px minmax(0,1fr) 32px;
        padding-left:12px;
        padding-right:12px;
    }

    .user-row-avatar{
        width:38px;
        height:38px;
    }

    .user-row-primary{
        align-items:flex-start;
        flex-direction:column;
    }

    .user-modal{
        padding:9px;
    }

    .user-modal-header,
    .user-modal-body,
    .user-modal-footer{
        padding-left:14px;
        padding-right:14px;
    }
}

/* Stato operativo domini */
.domain-status-list{
    display:grid;
}

.domain-status-row{
    position:relative;
    display:grid;
    grid-template-columns:8px minmax(0,1fr);
    gap:13px;
    align-items:stretch;
    padding:16px;
    border-bottom:1px solid #edf1f6;
    background:#fff;
}

.domain-status-row:last-child{
    border-bottom:0;
}

.domain-status-indicator{
    width:8px;
    min-height:64px;
    border-radius:999px;
    background:#d34a4a;
}

.domain-status-row.blue .domain-status-indicator{
    background:#2878df;
}

.domain-status-row.green .domain-status-indicator{
    background:#28a45a;
}

.domain-status-main{
    min-width:0;
}

.domain-status-title{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.domain-status-title h4{
    margin:1px 0 0;
    color:var(--navy);
    font-size:14px;
    overflow-wrap:anywhere;
}

.domain-color-pill{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    padding:5px 9px;
    border-radius:999px;
    background:#fff0f0;
    color:#ad3030;
    font-size:9px;
    font-weight:850;
}

.domain-color-pill.blue{
    background:#edf5ff;
    color:#1768c7;
}

.domain-color-pill.green{
    background:#eaf8ee;
    color:#19713a;
}

.domain-status-meta{
    display:flex;
    flex-wrap:wrap;
    gap:9px 16px;
    margin-top:13px;
}

.domain-status-meta span{
    display:flex;
    align-items:center;
    gap:5px;
    color:var(--muted);
    font-size:10px;
}

.domain-status-meta svg{
    width:13px;
    height:13px;
    color:#7e91ac;
}

.domain-status-meta b{
    color:#40536e;
}

@media (max-width:700px){
    .domain-status-title{
        display:grid;
    }

    .domain-color-pill{
        justify-self:start;
    }
}

/* Modale dettaglio dominio */
.domain-status-row[role="button"]{
    cursor:pointer;
    transition:
        background .16s ease,
        transform .16s ease;
}

.domain-status-row[role="button"]:hover{
    background:#f8fbff;
}

.domain-status-row[role="button"]:focus-visible{
    outline:3px solid rgba(18,102,239,.18);
    outline-offset:-3px;
}

.domain-detail-modal{
    position:fixed;
    inset:0;
    z-index:1150;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
}

.domain-detail-modal.is-open{
    display:flex;
}

.domain-detail-backdrop{
    position:absolute;
    inset:0;
    background:rgba(7,23,48,.64);
    backdrop-filter:blur(3px);
}

.domain-detail-dialog{
    position:relative;
    z-index:1;
    width:min(760px,100%);
    max-height:calc(100vh - 40px);
    overflow:auto;
    border:1px solid #cbd9eb;
    border-radius:17px;
    background:#fff;
    box-shadow:0 30px 90px rgba(4,22,52,.34);
}

.domain-detail-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    padding:18px 20px;
    border-bottom:1px solid var(--line);
}

.domain-detail-heading{
    display:flex;
    align-items:center;
    gap:12px;
}

.domain-detail-heading>span{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    flex:0 0 42px;
    border-radius:11px;
    background:#edf4ff;
    color:var(--blue);
}

.domain-detail-heading svg{
    width:21px;
    height:21px;
}

.domain-detail-heading h2{
    margin:0;
    color:var(--navy);
    font-size:17px;
}

.domain-detail-heading p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:10px;
}

.domain-detail-close{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#65758b;
    cursor:pointer;
}

.domain-detail-close:hover{
    background:#eef4fc;
    color:var(--navy);
}

.domain-detail-close svg{
    width:18px;
    height:18px;
}

.domain-detail-body{
    display:grid;
    gap:16px;
    padding:19px 20px 22px;
}

.domain-detail-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:13px 14px;
    border:1px solid #d8e2ef;
    border-radius:11px;
    background:#fbfdff;
}

.domain-detail-status{
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    border-radius:999px;
    font-size:10px;
    font-weight:850;
}

.domain-detail-status.red{
    background:#fff0f0;
    color:#ad3030;
}

.domain-detail-status.blue{
    background:#edf5ff;
    color:#1768c7;
}

.domain-detail-status.green{
    background:#eaf8ee;
    color:#19713a;
}

.domain-detail-counters{
    display:flex;
    flex-wrap:wrap;
    gap:9px 15px;
}

.domain-detail-counters span{
    display:flex;
    align-items:center;
    gap:5px;
    color:var(--muted);
    font-size:10px;
}

.domain-detail-counters svg{
    width:13px;
    height:13px;
}

.domain-detail-counters b{
    color:#40536e;
}

.domain-detail-node-list{
    display:grid;
    gap:10px;
}

.domain-detail-node{
    display:grid;
    gap:11px;
    padding:14px;
    border:1px solid #dbe4ef;
    border-radius:11px;
    background:#fff;
}

.domain-detail-node-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.domain-detail-node-title{
    display:flex;
    align-items:center;
    gap:9px;
}

.domain-detail-node-title>span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    border-radius:9px;
    background:#edf4ff;
    color:var(--blue);
}

.domain-detail-node-title svg{
    width:17px;
    height:17px;
}

.domain-detail-node-title h3{
    margin:0;
    color:var(--navy);
    font-size:13px;
}

.domain-detail-node-title p{
    margin:3px 0 0;
    color:var(--muted);
    font-size:9px;
}

.domain-detail-node-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.domain-detail-check{
    display:grid;
    gap:5px;
    padding:10px;
    border:1px solid #e1e8f2;
    border-radius:9px;
    background:#fbfdff;
}

.domain-detail-check>span{
    color:var(--muted);
    font-size:9px;
    font-weight:750;
}

.domain-detail-check b{
    color:#40536e;
    font-size:10px;
    overflow-wrap:anywhere;
}

.domain-detail-pill{
    display:inline-flex;
    width:max-content;
    padding:4px 7px;
    border-radius:999px;
    font-size:8px;
    font-weight:850;
}

.domain-detail-pill.complete{
    background:#eaf8ee;
    color:#19713a;
}

.domain-detail-pill.progress{
    background:#edf5ff;
    color:#1768c7;
}

.domain-detail-pill.pending,
.domain-detail-pill.error{
    background:#fff0f0;
    color:#ad3030;
}

body.domain-detail-open{
    overflow:hidden;
}

@media (max-width:650px){
    .domain-detail-summary,
    .domain-detail-node-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .domain-detail-node-grid{
        grid-template-columns:1fr;
    }
}

/* Comandi rapidi dominio e mittente per nodo */
.domain-node-actions{
    display:flex;
    align-items:center;
    gap:7px;
}

.domain-node-toggle{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border:1px solid #d5dfeb;
    border-radius:9px;
    background:#f4f6f9;
    color:#9aa8ba;
    cursor:pointer;
    transition:
        background .16s ease,
        border-color .16s ease,
        color .16s ease,
        transform .16s ease;
}

.domain-node-toggle:hover{
    border-color:#b8c8dc;
    background:#edf2f8;
    color:#687b94;
    transform:translateY(-1px);
}

.domain-node-toggle.is-enabled{
    border-color:#a7ddba;
    background:#eaf8ee;
    color:#23934d;
}

.domain-node-toggle.is-enabled:hover{
    border-color:#82cf9e;
    background:#ddf4e5;
    color:#167c3b;
}

.domain-node-toggle.is-saving{
    opacity:.55;
    pointer-events:none;
}

.domain-node-toggle svg{
    width:17px;
    height:17px;
}

.domain-node-toggle-label{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
}

@media (max-width:650px){
    .domain-node-actions{
        align-self:flex-end;
    }
}

/* Disposizione verticale pagina domini */
.domains-vertical-sections{
    grid-template-columns:minmax(0,1fr);
    gap:16px;
}

.domains-vertical-sections .users-section{
    width:100%;
}

.domains-vertical-sections + .users-section{
    width:100%;
    margin-top:16px;
}

/* Riga dominio compatta */
.domain-status-row{
    grid-template-columns:7px minmax(0,1fr);
    gap:14px;
    align-items:center;
    min-height:0;
    padding:13px 16px;
}

.domain-status-indicator{
    min-height:48px;
}

.domain-status-line{
    display:grid;
    grid-template-columns:
        minmax(150px,.8fr)
        minmax(320px,1.4fr)
        auto;
    align-items:center;
    gap:22px;
    min-width:0;
}

.domain-status-line h4{
    margin:0;
    color:var(--navy);
    font-size:14px;
    overflow-wrap:anywhere;
}

.domain-status-line .domain-status-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px 22px;
    margin:0;
}

.domain-status-line .domain-color-pill{
    justify-self:end;
}

@media (max-width:900px){
    .domain-status-line{
        grid-template-columns:minmax(0,1fr) auto;
        gap:12px 16px;
    }

    .domain-status-line .domain-status-meta{
        grid-column:1 / -1;
        order:3;
    }
}

@media (max-width:620px){
    .domain-status-line{
        grid-template-columns:1fr;
    }

    .domain-status-line .domain-color-pill{
        justify-self:start;
    }

    .domain-status-line .domain-status-meta{
        grid-column:auto;
    }
}

/* Collegamenti dashboard esterne dei nodi */
.node-dashboard-links{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:7px;
}

.node-dashboard-link{
    min-width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:0 9px;
    border:1px solid #d4deeb;
    border-radius:9px;
    background:#f7f9fc;
    color:#62738b;
    text-decoration:none;
    font-size:9px;
    font-weight:800;
    transition:
        border-color .16s ease,
        background .16s ease,
        color .16s ease,
        transform .16s ease;
}

.node-dashboard-link:hover{
    border-color:#9fc0eb;
    background:#edf5ff;
    color:var(--blue);
    transform:translateY(-1px);
}

.node-dashboard-link svg{
    width:14px;
    height:14px;
    flex:0 0 14px;
}

@media (max-width:700px){
    .users-section-head{
        align-items:flex-start;
    }

    .node-dashboard-links{
        justify-content:flex-start;
    }

    .node-dashboard-link span{
        display:none;
    }
}

/* Collegamenti dashboard esterne dei nodi */
.node-dashboard-links{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:7px;
}

.node-dashboard-link{
    min-width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:0 9px;
    border:1px solid #d4deeb;
    border-radius:9px;
    background:#f7f9fc;
    color:#62738b;
    text-decoration:none;
    font-size:9px;
    font-weight:800;
    transition:
        border-color .16s ease,
        background .16s ease,
        color .16s ease,
        transform .16s ease;
}

.node-dashboard-link:hover{
    border-color:#9fc0eb;
    background:#edf5ff;
    color:var(--blue);
    transform:translateY(-1px);
}

.node-dashboard-link svg{
    width:14px;
    height:14px;
    flex:0 0 14px;
}

@media (max-width:700px){
    .users-section-head{
        align-items:flex-start;
    }

    .node-dashboard-links{
        justify-content:flex-start;
    }

    .node-dashboard-link span{
        display:none;
    }
}

/* Collegamenti nodi nella testata pagina domini */
.domains-page-main-head{
    align-items:flex-start;
}

.domains-page-main-head .node-dashboard-links{
    flex:0 0 auto;
    padding-top:1px;
}

@media (max-width:760px){
    .domains-page-main-head{
        display:grid;
        justify-content:stretch;
    }

    .domains-page-main-head .node-dashboard-links{
        justify-content:flex-start;
        padding-top:0;
    }
}

/* Collegamento dashboard nelle card nodo */
.node-main-icons{
    display:flex;
    align-items:center;
    gap:8px;
}

.node-dashboard-card-link{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    flex:0 0 42px;
    border:1px solid #d5dfeb;
    border-radius:11px;
    background:#f7f9fc;
    color:#7789a2;
    cursor:pointer;
    transition:
        border-color .16s ease,
        background .16s ease,
        color .16s ease,
        transform .16s ease;
}

.node-dashboard-card-link:hover,
.node-dashboard-card-link:focus-visible{
    border-color:#9fc0eb;
    background:#edf5ff;
    color:var(--blue);
    transform:translateY(-1px);
    outline:none;
}

.node-dashboard-card-link svg{
    width:19px;
    height:19px;
}

/* Allineamento dimensioni icone card nodo */
.node-main-icons .node-main-icon,
.node-main-icons .node-dashboard-card-link{
    width:40px;
    height:40px;
    flex:0 0 40px;
    border-radius:10px;
}

.node-main-icons .node-main-icon svg,
.node-main-icons .node-dashboard-card-link svg{
    width:18px;
    height:18px;
}

/* Indirizzi mittente raggruppati per dominio */
.sender-domain-groups{
    display:grid;
}

.sender-domain-group{
    display:grid;
    border-bottom:1px solid #e8eef6;
}

.sender-domain-group:last-child{
    border-bottom:0;
}

.sender-domain-group-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:12px 16px;
    background:#f8fbff;
    border-bottom:1px solid #e5ecf5;
}

.sender-domain-group-head>div{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

.sender-domain-group-icon{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    border-radius:9px;
    background:#edf4ff;
    color:var(--blue);
}

.sender-domain-group-icon svg{
    width:17px;
    height:17px;
}

.sender-domain-group-head h4{
    margin:0;
    color:var(--navy);
    font-size:13px;
}

.sender-domain-group-head p{
    margin:3px 0 0;
    color:var(--muted);
    font-size:9px;
}

.sender-address-list{
    display:grid;
}

.sender-address-row{
    display:grid;
    grid-template-columns:6px minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:12px 16px;
    border-bottom:1px solid #edf1f6;
    background:#fff;
}

.sender-address-row:last-child{
    border-bottom:0;
}

.sender-address-indicator{
    width:6px;
    min-height:42px;
    border-radius:999px;
    background:#d34a4a;
}

.sender-address-row.blue .sender-address-indicator{
    background:#2878df;
}

.sender-address-row.green .sender-address-indicator{
    background:#28a45a;
}

.sender-address-main{
    display:flex;
    align-items:center;
    gap:26px;
    min-width:0;
}

.sender-address-name{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:210px;
    color:var(--navy);
}

.sender-address-name svg{
    width:15px;
    height:15px;
    flex:0 0 15px;
    color:#7857d8;
}

.sender-address-name b{
    font-size:12px;
    overflow-wrap:anywhere;
}

.sender-address-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px 20px;
    min-width:0;
}

.sender-address-meta span{
    display:flex;
    align-items:center;
    gap:5px;
    color:var(--muted);
    font-size:9px;
}

.sender-address-meta svg{
    width:12px;
    height:12px;
    color:#8294ad;
}

.sender-address-meta b{
    color:#40536e;
    font-size:9px;
    overflow-wrap:anywhere;
}

@media (max-width:900px){
    .sender-address-main{
        display:grid;
        gap:9px;
    }

    .sender-address-name{
        min-width:0;
    }
}

@media (max-width:650px){
    .sender-domain-group-head,
    .sender-address-row{
        align-items:flex-start;
    }

    .sender-address-row{
        grid-template-columns:6px minmax(0,1fr);
    }

    .sender-address-row>.domain-color-pill{
        grid-column:2;
        justify-self:start;
    }

    .sender-domain-group-head>.domain-color-pill{
        display:none;
    }
}

/* Inserimento domini e indirizzi mittente */
.sender-domain-empty{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 16px;
    background:#fff;
    color:var(--muted);
    font-size:10px;
}

.sender-domain-empty>svg{
    width:17px;
    height:17px;
    flex:0 0 17px;
    color:#94a5ba;
}

.sender-domain-empty span{
    flex:1 1 auto;
}

.sender-domain-add{
    flex:0 0 auto;
    height:32px;
    padding:0 10px;
    font-size:9px;
}

.sender-domain-add svg{
    width:14px;
    height:14px;
}

.sender-local-field{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
}

.sender-local-field input{
    border-radius:9px 0 0 9px;
}

.sender-local-field>span{
    height:40px;
    display:flex;
    align-items:center;
    max-width:260px;
    padding:0 11px;
    border:1px solid #ced9e8;
    border-left:0;
    border-radius:0 9px 9px 0;
    background:#f3f6fa;
    color:#52657f;
    font-size:11px;
    font-weight:750;
    overflow-wrap:anywhere;
}

@media (max-width:600px){
    .sender-domain-empty{
        align-items:flex-start;
        flex-wrap:wrap;
    }

    .sender-domain-add{
        margin-left:27px;
    }

    .sender-local-field{
        grid-template-columns:1fr;
    }

    .sender-local-field input{
        border-radius:9px 9px 0 0;
    }

    .sender-local-field>span{
        max-width:none;
        border-left:1px solid #ced9e8;
        border-top:0;
        border-radius:0 0 9px 9px;
    }
}

/* Matrice domini e mittenti sui nodi */
.domain-node-matrix-wrap{
    width:100%;
    overflow-x:auto;
    background:#fff;
}

.domain-node-matrix{
    width:100%;
    min-width:850px;
    border-collapse:collapse;
    table-layout:fixed;
}

.domain-node-matrix th,
.domain-node-matrix td{
    border-right:1px solid #e4ebf4;
    border-bottom:1px solid #e4ebf4;
    padding:11px 12px;
    vertical-align:middle;
}

.domain-node-matrix tr>*:last-child{
    border-right:0;
}

.domain-node-matrix tbody tr:last-child>*{
    border-bottom:0;
}

.domain-node-matrix thead th{
    background:#f7faff;
    color:#657791;
    font-size:10px;
    font-weight:700;
    text-align:left;
}

.domain-node-matrix .matrix-identity-column{
    width:270px;
    color:var(--navy);
}

.matrix-node-head{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
}

.matrix-node-head>span{
    width:29px;
    height:29px;
    display:grid;
    place-items:center;
    flex:0 0 29px;
    border-radius:8px;
    background:#edf4ff;
    color:var(--blue);
}

.matrix-node-head svg{
    width:14px;
    height:14px;
}

.matrix-node-head div{
    display:grid;
    gap:2px;
    min-width:0;
}

.matrix-node-head b{
    color:var(--navy);
    font-size:10px;
}

.matrix-node-head small{
    color:var(--muted);
    font-size:8px;
    font-weight:500;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.matrix-domain-row th,
.matrix-domain-row td{
    background:#f9fbfe;
}

.matrix-domain-identity,
.matrix-sender-identity{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
    text-align:left;
}

.matrix-domain-icon,
.matrix-sender-identity>span{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    flex:0 0 31px;
    border-radius:8px;
}

.matrix-domain-icon{
    background:#eaf3ff;
    color:var(--blue);
}

.matrix-sender-identity>span{
    margin-left:18px;
    background:#f1ecff;
    color:#7857d8;
}

.matrix-domain-icon svg,
.matrix-sender-identity svg{
    width:15px;
    height:15px;
}

.matrix-domain-identity>div,
.matrix-sender-identity>div{
    display:grid;
    gap:2px;
    min-width:0;
}

.matrix-domain-identity b,
.matrix-sender-identity b{
    color:var(--navy);
    font-size:10px;
    overflow-wrap:anywhere;
}

.matrix-domain-identity small,
.matrix-sender-identity small{
    color:var(--muted);
    font-size:8px;
    font-weight:500;
}

.matrix-sender-row th,
.matrix-sender-row td{
    background:#fff;
}

.matrix-status-button{
    width:100%;
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:7px 9px;
    border:1px solid #d8e1ec;
    border-radius:9px;
    background:#f7f9fc;
    color:#7e8fa6;
    cursor:pointer;
    font-size:8px;
    font-weight:750;
    transition:
        border-color .15s ease,
        background .15s ease,
        color .15s ease,
        transform .15s ease;
}

.matrix-status-button:hover,
.matrix-status-button:focus-visible{
    border-color:#9ebce3;
    background:#edf5ff;
    color:var(--blue);
    outline:none;
    transform:translateY(-1px);
}

.matrix-status-button.is-complete{
    border-color:#bde7ca;
    background:#eaf8ee;
    color:#168d47;
}

.matrix-status-button.is-loading{
    opacity:.55;
    pointer-events:none;
}

.matrix-status-button svg{
    width:14px;
    height:14px;
    flex:0 0 14px;
}

.matrix-sender-status{
    border-style:dashed;
}

.matrix-sender-status.is-complete{
    border-style:solid;
}

.matrix-empty-sender-row td{
    padding:9px 16px 9px 55px;
    background:#fff;
}

.matrix-empty-sender-row td>div{
    display:flex;
    align-items:center;
    gap:7px;
    color:#8a9ab0;
    font-size:9px;
}

.matrix-empty-sender-row svg{
    width:14px;
    height:14px;
}

@media (max-width:700px){
    .domain-node-matrix{
        min-width:760px;
    }

    .domain-node-matrix .matrix-identity-column{
        width:230px;
    }
}

/* Dettaglio singolo indirizzo mittente */
.sender-address-row[data-open-sender-detail]{
    cursor:pointer;
    transition:
        background .15s ease,
        box-shadow .15s ease;
}

.sender-address-row[data-open-sender-detail]:hover,
.sender-address-row[data-open-sender-detail]:focus-visible{
    background:#f9fbff;
    box-shadow:inset 3px 0 0 #7657d5;
    outline:none;
}

.sender-detail-heading-icon{
    background:#f1ecff !important;
    color:#7657d5 !important;
}

.sender-detail-note{
    grid-column:1/-1;
}

.sender-detail-note b{
    white-space:normal;
    overflow-wrap:anywhere;
}

/* Centratura reale informazioni domini e indirizzi */
.domain-status-line{
    grid-template-columns:
        minmax(0,1fr)
        auto
        minmax(0,1fr);
}

.domain-status-line .domain-status-meta{
    justify-self:center;
    justify-content:center;
}

.domain-status-line .domain-color-pill{
    justify-self:end;
}


/* Riga indirizzo: nome a sinistra, dati al centro, stato a destra */
.sender-address-row{
    grid-template-columns:
        6px
        minmax(220px,1fr)
        auto
        minmax(220px,1fr);
}

.sender-address-main{
    display:contents;
}

.sender-address-name{
    grid-column:2;
    justify-self:start;
    min-width:0;
}

.sender-address-meta{
    grid-column:3;
    justify-self:center;
    justify-content:center;
}

.sender-address-row>.domain-color-pill{
    grid-column:4;
    justify-self:end;
}


/* Adattamento tablet */
@media (max-width:1050px){
    .sender-address-row{
        grid-template-columns:
            6px
            minmax(190px,1fr)
            auto
            minmax(160px,1fr);
    }
}


/* Disposizione compatta responsive */
@media (max-width:900px){
    .domain-status-line{
        grid-template-columns:minmax(0,1fr) auto;
    }

    .domain-status-line .domain-status-meta{
        grid-column:1 / -1;
        justify-self:start;
        justify-content:flex-start;
    }

    .sender-address-row{
        grid-template-columns:
            6px
            minmax(0,1fr)
            auto;
    }

    .sender-address-name{
        grid-column:2;
    }

    .sender-address-meta{
        grid-column:2;
        justify-self:start;
        justify-content:flex-start;
        margin-top:8px;
    }

    .sender-address-row>.domain-color-pill{
        grid-column:3;
        grid-row:1 / span 2;
        align-self:center;
    }
}

@media (max-width:650px){
    .sender-address-row{
        grid-template-columns:6px minmax(0,1fr);
    }

    .sender-address-row>.domain-color-pill{
        grid-column:2;
        grid-row:auto;
        justify-self:start;
    }
}

/* Utenti SMTP autorizzati al singolo mittente */
.sender-user-access{
    display:grid;
    gap:12px;
    padding:14px;
    border:1px solid #dbe4ef;
    border-radius:11px;
    background:#fff;
}

.sender-user-access-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}

.sender-user-access-head>div{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

.sender-user-access-head>div>span{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    flex:0 0 36px;
    border-radius:9px;
    background:#f1ecff;
    color:#7657d5;
}

.sender-user-access-head svg{
    width:17px;
    height:17px;
}

.sender-user-access-head h3{
    margin:0;
    color:var(--navy);
    font-size:13px;
}

.sender-user-access-head p{
    margin:3px 0 0;
    color:var(--muted);
    font-size:9px;
}

.sender-user-access-count{
    flex:0 0 auto;
    padding:5px 9px;
    border-radius:999px;
    background:#edf5ff;
    color:#1768c7;
    font-size:9px;
    font-weight:800;
}

.sender-user-access-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}

.sender-user-access-option{
    position:relative;
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    padding:10px 11px;
    border:1px solid #dfe7f1;
    border-radius:9px;
    background:#fbfdff;
    cursor:pointer;
    transition:
        border-color .15s ease,
        background .15s ease;
}

.sender-user-access-option:hover{
    border-color:#b9cbe2;
    background:#f5f9ff;
}

.sender-user-access-option.is-selected{
    border-color:#a9c8f3;
    background:#edf5ff;
}

.sender-user-access-option.is-disabled{
    opacity:.58;
    cursor:not-allowed;
}

.sender-user-access-option input{
    width:16px;
    height:16px;
    flex:0 0 16px;
}

.sender-user-access-option>span{
    display:grid;
    gap:2px;
    min-width:0;
}

.sender-user-access-option b{
    color:var(--navy);
    font-size:10px;
    overflow-wrap:anywhere;
}

.sender-user-access-option small{
    color:var(--muted);
    font-size:8px;
}

.sender-user-access-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-top:2px;
}

.sender-user-access-footer>span{
    color:var(--muted);
    font-size:9px;
}

.sender-user-access-footer>span.success{
    color:#19713a;
}

.sender-user-access-footer>span.error{
    color:#ad3030;
}

@media (max-width:650px){
    .sender-user-access-head,
    .sender-user-access-footer{
        align-items:flex-start;
        flex-direction:column;
    }

    .sender-user-access-list{
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   Domini e mittenti — leggibilità testi pagina e modali
   ========================================================== */

.users-page:has(.domains-page-main-head) .users-page-head h2{
    font-size:20px;
}

.users-page:has(.domains-page-main-head) .users-page-head p{
    font-size:13px;
    line-height:1.45;
}

.users-page:has(.domains-page-main-head) .users-section-title h3{
    font-size:16px;
}

.users-page:has(.domains-page-main-head) .users-section-title p{
    font-size:11px;
}

.users-page:has(.domains-page-main-head) .node-dashboard-link{
    font-size:11px;
}

.users-page:has(.domains-page-main-head) .domain-status-line h4,
.users-page:has(.domains-page-main-head) .sender-domain-group-head h4{
    font-size:14px;
}

.users-page:has(.domains-page-main-head) .sender-domain-group-head p{
    font-size:10px;
}

.users-page:has(.domains-page-main-head) .domain-status-meta span,
.users-page:has(.domains-page-main-head) .sender-address-meta span{
    font-size:11px;
}

.users-page:has(.domains-page-main-head) .sender-address-name b{
    font-size:13px;
}

.users-page:has(.domains-page-main-head) .domain-color-pill{
    font-size:10px;
}

.users-page:has(.domains-page-main-head) .matrix-sender-identity b,
.users-page:has(.domains-page-main-head) .matrix-domain-identity b{
    font-size:12px;
}

.users-page:has(.domains-page-main-head) .matrix-sender-identity small,
.users-page:has(.domains-page-main-head) .matrix-domain-identity small{
    font-size:10px;
}

.users-page:has(.domains-page-main-head) .matrix-status-button,
.users-page:has(.domains-page-main-head) .matrix-domain-status{
    font-size:10px;
}

body:has(.domains-page-main-head) .domain-detail-heading h2{
    font-size:19px;
}

body:has(.domains-page-main-head) .domain-detail-heading p{
    font-size:11px;
    line-height:1.45;
}

body:has(.domains-page-main-head) .domain-detail-status{
    font-size:11px;
}

body:has(.domains-page-main-head) .domain-detail-counters span{
    font-size:11px;
}

body:has(.domains-page-main-head) .domain-detail-counters svg{
    width:14px;
    height:14px;
}

body:has(.domains-page-main-head) #senderSmtpUsersTitle{
    font-size:16px;
}

body:has(.domains-page-main-head) #senderSmtpUsersSection p{
    font-size:12px;
    line-height:1.45;
}

body:has(.domains-page-main-head) .domain-detail-node-title h3{
    font-size:14px;
}

body:has(.domains-page-main-head) .domain-detail-node-title p{
    font-size:10px;
}

body:has(.domains-page-main-head) .domain-detail-check > span{
    font-size:10px;
}

body:has(.domains-page-main-head) .domain-detail-check b{
    font-size:11px;
    line-height:1.4;
}

body:has(.domains-page-main-head) .domain-detail-pill{
    font-size:9px;
}

body:has(.domains-page-main-head) .domain-node-toggle{
    font-size:11px;
}

/* ==========================================================
   Pagina Autorizzazioni
   ========================================================== */

.auth-page{
    display:grid;
    gap:16px;
}

.auth-page-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
}

.auth-page-header h2{
    margin:0;
    color:var(--navy);
    font-size:20px;
}

.auth-page-header p{
    max-width:760px;
    margin:5px 0 0;
    color:var(--muted);
    font-size:13px;
    line-height:1.5;
}

.auth-policy{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:16px;
    border:1px solid #cbdcf1;
    border-radius:14px;
    background:linear-gradient(135deg,#f8fbff,#eef5ff);
}

.auth-policy-icon{
    width:45px;
    height:45px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#fff;
    color:var(--blue);
    box-shadow:0 7px 18px rgba(18,102,239,.12);
}

.auth-policy-icon svg{
    width:22px;
    height:22px;
}

.auth-policy h3{
    margin:0;
    color:var(--navy);
    font-size:15px;
}

.auth-policy p{
    margin:5px 0 0;
    color:#52647e;
    font-size:12px;
    line-height:1.5;
}

.auth-status-pill,
.auth-count{
    display:inline-flex;
    align-items:center;
    width:max-content;
    padding:7px 11px;
    border-radius:999px;
    background:#e6f7eb;
    color:#18713a;
    font-size:10px;
    font-weight:800;
    white-space:nowrap;
}

.auth-count.neutral{
    background:#edf3fb;
    color:#52647e;
}

.auth-section-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
}

.auth-section-header h3{
    margin:0;
    color:var(--navy);
    font-size:16px;
}

.auth-section-header p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:11px;
    line-height:1.45;
}

.auth-section-header > span:not(.auth-count){
    width:35px;
    height:35px;
    display:grid;
    place-items:center;
    flex:0 0 35px;
    border-radius:9px;
    background:#edf4ff;
    color:var(--blue);
}

.auth-section-header svg{
    width:18px;
    height:18px;
}

.auth-rule-grid{
    display:grid;
    grid-template-columns:
        minmax(170px,1fr) auto
        minmax(170px,1fr) auto
        minmax(170px,1fr) auto
        minmax(190px,1fr);
    align-items:center;
    gap:9px;
}

.auth-field{
    display:grid;
    align-content:start;
    gap:8px;
    min-height:132px;
    padding:13px;
    border:1px solid #dce5f1;
    border-radius:11px;
    background:#fbfdff;
}

.auth-field > span,
.auth-limit-card label > span,
.auth-rule-limit label > span{
    color:#40536e;
    font-size:10px;
    font-weight:800;
}

.auth-field button,
.auth-limit-card label button{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:9px 10px;
    border:1px solid #d4deeb;
    border-radius:8px;
    background:#fff;
    color:#71819a;
    font:inherit;
    font-size:10px;
    text-align:left;
}

.auth-field button svg,
.auth-limit-card label button svg{
    width:13px;
    height:13px;
}

.auth-field small{
    color:var(--muted);
    font-size:9px;
    line-height:1.45;
}

.auth-arrow{
    display:grid;
    place-items:center;
    color:#8fa2bd;
}

.auth-arrow svg{
    width:16px;
    height:16px;
}

.auth-rule-limit{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    align-items:center;
    gap:18px;
    margin-top:15px;
    padding:14px;
    border:1px solid #eadba5;
    border-radius:11px;
    background:#fffaf0;
}

.auth-rule-limit-copy{
    display:flex;
    align-items:flex-start;
    gap:11px;
}

.auth-rule-limit-icon{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    flex:0 0 36px;
    border-radius:9px;
    background:#fff2c7;
    color:#9a6700;
}

.auth-rule-limit-icon svg{
    width:18px;
    height:18px;
}

.auth-rule-limit h4{
    margin:0;
    color:#5f470e;
    font-size:13px;
}

.auth-rule-limit p{
    margin:4px 0 0;
    color:#79683f;
    font-size:10px;
    line-height:1.45;
}

.auth-rule-limit label{
    display:grid;
    gap:7px;
}

.auth-rule-limit label > div,
.auth-number-field{
    display:flex;
    align-items:center;
    gap:8px;
}

.auth-rule-limit input,
.auth-number-field input{
    width:100%;
    min-width:0;
    padding:9px 10px;
    border:1px solid #d4deeb;
    border-radius:8px;
    background:#fff;
    color:#71819a;
    font:inherit;
    font-size:10px;
}

.auth-rule-limit label small,
.auth-number-field small{
    color:var(--muted);
    font-size:9px;
    white-space:nowrap;
}

.auth-panel-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:15px;
    padding-top:14px;
    border-top:1px solid #e3eaf3;
}

.auth-panel-footer p{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    color:#61728c;
    font-size:10px;
}

.auth-panel-footer p svg{
    width:15px;
    height:15px;
    flex:0 0 15px;
    color:var(--blue);
}

.auth-limit-cards{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.auth-limit-card{
    display:grid;
    gap:13px;
    padding:15px;
    border:1px solid #dce5f1;
    border-radius:12px;
    background:#fbfdff;
}

.auth-limit-card.portal{
    border-top:3px solid #377ee8;
}

.auth-limit-card.smtp{
    border-top:3px solid #765ad1;
}

.auth-limit-card header{
    display:flex;
    align-items:flex-start;
    gap:11px;
}

.auth-limit-card header > span{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    flex:0 0 38px;
    border-radius:10px;
}

.auth-limit-card.portal header > span{
    background:#eaf2ff;
    color:#377ee8;
}

.auth-limit-card.smtp header > span{
    background:#f0edff;
    color:#7054d3;
}

.auth-limit-card header svg{
    width:19px;
    height:19px;
}

.auth-limit-card h4{
    margin:0;
    color:var(--navy);
    font-size:13px;
}

.auth-limit-card header p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}

.auth-limit-card label{
    display:grid;
    gap:7px;
}

.auth-limit-card > .btn{
    justify-self:end;
}

.auth-limit-explanation{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-top:14px;
    padding:12px;
    border:1px solid #d7e2f0;
    border-radius:10px;
    background:#f3f7fc;
    color:#52647e;
}

.auth-limit-explanation > svg{
    width:18px;
    height:18px;
    flex:0 0 18px;
    color:var(--blue);
}

.auth-limit-explanation b{
    display:block;
    color:#344862;
    font-size:11px;
}

.auth-limit-explanation p{
    margin:4px 0 0;
    font-size:10px;
    line-height:1.5;
}

.auth-lists-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.auth-list-panel{
    min-height:245px;
}

.auth-empty{
    min-height:155px;
    display:grid;
    place-items:center;
    align-content:center;
    text-align:center;
}

.auth-empty > span{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:#edf4ff;
    color:var(--blue);
}

.auth-empty > span svg{
    width:23px;
    height:23px;
}

.auth-empty h4{
    margin:9px 0 0;
    color:var(--navy);
    font-size:13px;
}

.auth-empty p{
    max-width:420px;
    margin:5px 0 0;
    color:var(--muted);
    font-size:10px;
    line-height:1.5;
}

.auth-page button:disabled,
.auth-page input:disabled{
    cursor:not-allowed;
    opacity:.75;
}

@media (max-width:1280px){
    .auth-rule-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .auth-arrow{
        display:none;
    }
}

@media (max-width:850px){
    .auth-limit-cards,
    .auth-lists-grid{
        grid-template-columns:1fr;
    }

    .auth-rule-limit{
        grid-template-columns:1fr;
    }
}

@media (max-width:680px){
    .auth-page-header{
        display:grid;
    }

    .auth-policy{
        grid-template-columns:auto minmax(0,1fr);
    }

    .auth-status-pill{
        grid-column:1 / -1;
    }

    .auth-rule-grid{
        grid-template-columns:1fr;
    }

    .auth-panel-footer{
        align-items:flex-start;
        flex-direction:column;
    }
}

/* ==========================================================
   Fine Pagina Autorizzazioni
   ========================================================== */

/* BOX CONFIGURA AUTORIZZAZIONE RIPRISTINATO */
/* ==========================================================
   Pagina Autorizzazioni
   ========================================================== */

.authorizations-page{
    display:grid;
    gap:16px;
}

.authorizations-page-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
}

.authorizations-page-head h2{
    margin:0;
    color:var(--navy);
    font-size:20px;
}

.authorizations-page-head p{
    max-width:720px;
    margin:5px 0 0;
    color:var(--muted);
    font-size:13px;
    line-height:1.5;
}

.authorization-policy-card{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:16px;
    border:1px solid #cbdcf1;
    border-radius:15px;
    background:linear-gradient(135deg,#f9fbff,#edf5ff);
    box-shadow:var(--shadow);
}

.authorization-policy-icon{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#fff;
    color:var(--blue);
    box-shadow:0 8px 20px rgba(18,102,239,.12);
}

.authorization-policy-icon svg{
    width:23px;
    height:23px;
}

.authorization-policy-copy h3{
    margin:0;
    color:var(--navy);
    font-size:15px;
}

.authorization-policy-copy p{
    max-width:900px;
    margin:5px 0 0;
    color:#52647e;
    font-size:12px;
    line-height:1.55;
}

.authorization-policy-state,
.authorization-rules-count{
    display:inline-flex;
    align-items:center;
    width:max-content;
    padding:7px 11px;
    border-radius:999px;
    background:#e8f8ed;
    color:#18733b;
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
}

.authorizations-main-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:16px;
    align-items:start;
}

.authorization-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
}

.authorization-card-head h3{
    margin:0;
    color:var(--navy);
    font-size:16px;
}

.authorization-card-head p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:11px;
    line-height:1.45;
}

.authorization-card-head > span{
    width:35px;
    height:35px;
    display:grid;
    place-items:center;
    flex:0 0 35px;
    border-radius:9px;
    background:#edf4ff;
    color:var(--blue);
}

.authorization-card-head > span svg{
    width:18px;
    height:18px;
}

.authorization-steps{
    display:grid;
    grid-template-columns:
        minmax(145px,1fr) auto
        minmax(145px,1fr) auto
        minmax(145px,1fr) auto
        minmax(145px,1fr) auto
        minmax(170px,1.15fr);
    gap:9px;
    align-items:stretch;
}

.authorization-step-card{
    position:relative;
    display:flex;
    align-items:flex-start;
    gap:10px;
    min-width:0;
    padding:14px 12px 12px;
    border:1px solid #dce5f1;
    border-radius:12px;
    background:#fbfdff;
}

.authorization-step-card.optional{
    border-style:dashed;
}

.authorization-step-number{
    position:absolute;
    top:7px;
    right:8px;
    color:#9aabc0;
    font-size:10px;
    font-weight:850;
}

.authorization-step-icon{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    border-radius:9px;
}

.authorization-step-icon.user{
    background:#eaf2ff;
    color:var(--blue);
}

.authorization-step-icon.smtp{
    background:#f0edff;
    color:#7054d3;
}

.authorization-step-icon.domain{
    background:#e9f8ef;
    color:#19834a;
}

.authorization-step-icon.sender{
    background:#fff2e7;
    color:#bd651c;
}

.authorization-step-icon svg{
    width:17px;
    height:17px;
}

.authorization-step-card > div{
    min-width:0;
}

.authorization-step-card small{
    display:block;
    color:var(--blue);
    font-size:9px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.authorization-step-card h4{
    margin:4px 0 0;
    color:#31435f;
    font-size:12px;
}

.authorization-step-card p{
    min-height:44px;
    margin:5px 0 10px;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}

.authorization-step-card button{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:8px 9px;
    border:1px solid #d4deeb;
    border-radius:8px;
    background:#fff;
    color:#71819a;
    font:inherit;
    font-size:10px;
    text-align:left;
}

.authorization-step-card button svg{
    width:13px;
    height:13px;
}

.authorization-step-arrow{
    display:grid;
    place-items:center;
    color:#8fa2bd;
}

.authorization-step-arrow svg{
    width:16px;
    height:16px;
}

.authorization-builder-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:15px;
    padding-top:14px;
    border-top:1px solid #e3eaf3;
}

.authorization-builder-footer > div{
    display:flex;
    align-items:center;
    gap:8px;
    color:#61728c;
    font-size:11px;
}

.authorization-builder-footer > div svg{
    width:15px;
    height:15px;
    flex:0 0 15px;
    color:var(--blue);
}

.authorization-validation-result{
    display:flex;
    align-items:flex-start;
    gap:11px;
    padding:13px;
    border:1px solid;
    border-radius:11px;
}

.authorization-validation-result + .authorization-validation-result{
    margin-top:10px;
}

.authorization-validation-result > svg{
    width:19px;
    height:19px;
    flex:0 0 19px;
}

.authorization-validation-result b{
    display:block;
    font-size:12px;
}

.authorization-validation-result p{
    margin:4px 0 8px;
    font-size:10px;
    line-height:1.5;
}

.authorization-validation-result span{
    display:inline-flex;
    padding:4px 7px;
    border-radius:999px;
    font-size:9px;
    font-weight:850;
}

.authorization-validation-result.allowed{
    border-color:#cce8d5;
    background:#f1fbf4;
    color:#19713a;
}

.authorization-validation-result.allowed span{
    background:#dff4e5;
}

.authorization-validation-result.blocked{
    border-color:#efcece;
    background:#fff5f5;
    color:#a63838;
}

.authorization-validation-result.blocked span{
    background:#fde4e4;
}

.authorization-validation-note{
    display:flex;
    align-items:flex-start;
    gap:9px;
    margin-top:12px;
    padding:11px;
    border-radius:10px;
    background:#f3f7fc;
    color:#5b6d87;
}

.authorization-validation-note svg{
    width:16px;
    height:16px;
    flex:0 0 16px;
    color:var(--blue);
}

.authorization-validation-note p{
    margin:0;
    font-size:10px;
    line-height:1.5;
}

.authorization-list-card{
    min-height:260px;
}

.authorization-empty-state{
    min-height:175px;
    display:grid;
    place-items:center;
    align-content:center;
    text-align:center;
}

.authorization-empty-state > span{
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#edf4ff;
    color:var(--blue);
}

.authorization-empty-state > span svg{
    width:25px;
    height:25px;
}

.authorization-empty-state h4{
    margin:10px 0 0;
    color:var(--navy);
    font-size:14px;
}

.authorization-empty-state p{
    max-width:520px;
    margin:6px 0 0;
    color:var(--muted);
    font-size:11px;
    line-height:1.55;
}

.authorizations-page button:disabled{
    cursor:not-allowed;
    opacity:.72;
}

@media (max-width:1320px){
    .authorizations-main-grid{
        grid-template-columns:1fr;
    }

    .authorization-steps{
        grid-template-columns:1fr 1fr;
    }

    .authorization-step-arrow{
        display:none;
    }
}

@media (max-width:760px){
    .authorizations-page-head{
        display:grid;
    }

    .authorization-policy-card{
        grid-template-columns:auto minmax(0,1fr);
    }

    .authorization-policy-state{
        grid-column:1 / -1;
    }

    .authorization-steps{
        grid-template-columns:1fr;
    }

    .authorization-builder-footer{
        align-items:flex-start;
        flex-direction:column;
    }
}

.authorization-step-icon.limits{
    background:#fff7dd;
    color:#a66c00;
}

.authorization-step-card.limits{
    border-color:#eadba5;
    background:#fffdf7;
}

.authorization-limits-preview{
    display:grid;
    gap:13px;
    margin-top:15px;
    padding:14px;
    border:1px solid #dce5f1;
    border-radius:12px;
    background:#fbfdff;
}

.authorization-limits-preview > header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}

.authorization-limits-preview > header h4{
    margin:0;
    color:var(--navy);
    font-size:14px;
}

.authorization-limits-preview > header p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}

.authorization-limits-preview > header > span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    border-radius:9px;
    background:#fff7dd;
    color:#a66c00;
}

.authorization-limits-preview > header svg{
    width:17px;
    height:17px;
}

.authorization-limit-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px;
}

.authorization-limit-fields label{
    display:grid;
    gap:7px;
    padding:12px;
    border:1px solid #e0e7f0;
    border-radius:10px;
    background:#fff;
}

.authorization-limit-fields label > span{
    color:#40536e;
    font-size:11px;
    font-weight:800;
}

.authorization-limit-fields label > div{
    display:flex;
    align-items:center;
    gap:8px;
}

.authorization-limit-fields input{
    width:100%;
    min-width:0;
    padding:9px 10px;
    border:1px solid #d4deeb;
    border-radius:8px;
    background:#f8fafc;
    color:#71819a;
    font:inherit;
    font-size:11px;
}

.authorization-limit-fields small{
    color:var(--muted);
    font-size:9px;
    white-space:nowrap;
}

.authorization-limit-fields label > p{
    margin:0;
    color:var(--muted);
    font-size:9px;
    line-height:1.45;
}

.authorization-limit-rule{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:11px 12px;
    border:1px solid #eadba5;
    border-radius:10px;
    background:#fff9e8;
    color:#805600;
}

.authorization-limit-rule > svg{
    width:17px;
    height:17px;
    flex:0 0 17px;
}

.authorization-limit-rule b{
    display:block;
    font-size:11px;
}

.authorization-limit-rule p{
    margin:3px 0 0;
    font-size:10px;
    line-height:1.5;
}

@media (max-width:760px){
    .authorization-limit-fields{
        grid-template-columns:1fr;
    }
}


/* GENERAL LIMIT SEARCH */

.general-limit-search{
    position:relative;
    width:100%;
}

.general-limit-search-input{
    position:relative;
}

.general-limit-search-input > svg{
    position:absolute;
    top:50%;
    left:13px;
    width:16px;
    height:16px;
    color:#8797ad;
    transform:translateY(-50%);
    pointer-events:none;
}

.general-limit-search-input input{
    width:100%;
    box-sizing:border-box;
    padding:11px 13px 11px 39px;
    border:1px solid #d4deeb;
    border-radius:8px;
    background:#fff;
    color:#344862;
    font:inherit;
    font-size:11px;
    outline:none;
}

.general-limit-search-input input:focus{
    border-color:#6f9ee8;
    box-shadow:0 0 0 3px rgba(55,126,232,.12);
}

.general-limit-search-results{
    position:absolute;
    z-index:100;
    top:calc(100% + 6px);
    left:0;
    right:0;
    max-height:280px;
    overflow:auto;
    padding:6px;
    border:1px solid #d4deeb;
    border-radius:10px;
    background:#fff;
    box-shadow:0 16px 35px rgba(31,54,88,.18);
}

.general-limit-search-result{
    width:100%;
    display:flex;
    align-items:center;
    gap:10px;
    padding:9px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#344862;
    font:inherit;
    text-align:left;
    cursor:pointer;
}

.general-limit-search-result:hover{
    background:#edf4ff;
}

.general-limit-search-result > span,
.general-limit-selected-icon{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    flex:0 0 31px;
    border-radius:8px;
    background:#eaf2ff;
    color:var(--blue);
}

.general-limit-search-result svg,
.general-limit-selected-icon svg{
    width:15px;
    height:15px;
}

.general-limit-search-result > div,
.general-limit-selected-copy{
    min-width:0;
    display:grid;
    gap:2px;
}

.general-limit-search-result b,
.general-limit-selected-copy b{
    overflow:hidden;
    color:#31435f;
    font-size:11px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.general-limit-search-result small,
.general-limit-selected-copy small{
    overflow:hidden;
    color:var(--muted);
    font-size:9px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.general-limit-search-message{
    padding:11px;
    color:var(--muted);
    font-size:10px;
    text-align:center;
}

.general-limit-search-message.error{
    color:#a63838;
}

.general-limit-selected:not([hidden]){
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    padding:7px 8px;
    border:1px solid #bcd2ef;
    border-radius:8px;
    background:#f1f6ff;
}

.general-limit-selected > button{
    width:28px !important;
    height:28px;
    display:grid !important;
    place-items:center !important;
    padding:0 !important;
    border:0 !important;
    border-radius:7px !important;
    background:#fff !important;
    color:#71819a !important;
    cursor:pointer !important;
}


/* Utenti SMTP a tutta larghezza */
.users-page .users-columns{
    grid-template-columns:minmax(0,1fr);
}

.users-page .users-section[data-users-section="smtp"]{
    width:100%;
    min-width:0;
}

/* ==========================================================
   Utenti SMTP — righe compatte e metadati centrati
   ========================================================== */

.users-page .users-section[data-users-section="smtp"] .user-row{
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:10px 12px;
}

.users-page .users-section[data-users-section="smtp"] .user-row-avatar{
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:10px;
}

.users-page .users-section[data-users-section="smtp"] .user-row-avatar svg{
    width:18px;
    height:18px;
}

.users-page .users-section[data-users-section="smtp"] .user-row-content{
    display:grid;
    grid-template-columns:minmax(240px,1fr) auto;
    align-items:center;
    gap:18px;
    min-width:0;
}

.users-page .users-section[data-users-section="smtp"] .user-row-primary{
    min-width:0;
}

.users-page .users-section[data-users-section="smtp"] .user-row-primary h4{
    margin:0;
    font-size:13px;
    line-height:1.25;
}

.users-page .users-section[data-users-section="smtp"] .user-row-primary p{
    margin:3px 0 0;
    font-size:10px;
    line-height:1.35;
}

.users-page .users-section[data-users-section="smtp"] .user-row-meta{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin:0;
    white-space:nowrap;
}

.users-page .users-section[data-users-section="smtp"] .user-row-meta span{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    margin:0;
    font-size:10px;
    line-height:1.2;
}

.users-page .users-section[data-users-section="smtp"] .user-row-meta span + span{
    padding-left:18px;
    border-left:1px solid #e1e8f1;
}

.users-page .users-section[data-users-section="smtp"] .user-row-meta svg{
    width:13px;
    height:13px;
    flex:0 0 13px;
}

.users-page .users-section[data-users-section="smtp"] .user-row-meta b{
    font-size:10px;
}

.users-page .users-section[data-users-section="smtp"] .status-pill{
    margin-left:12px;
    padding:5px 9px;
    font-size:9px;
}

.users-page .users-section[data-users-section="smtp"] .user-edit-button{
    align-self:center;
}

@media (max-width:1050px){
    .users-page .users-section[data-users-section="smtp"] .user-row-content{
        grid-template-columns:1fr;
        gap:9px;
    }

    .users-page .users-section[data-users-section="smtp"] .user-row-meta{
        justify-content:flex-start;
        flex-wrap:wrap;
        gap:8px 14px;
    }

    .users-page .users-section[data-users-section="smtp"] .user-row-meta span + span{
        padding-left:0;
        border-left:0;
    }
}

@media (max-width:650px){
    .users-page .users-section[data-users-section="smtp"] .user-row{
        align-items:flex-start;
        grid-template-columns:auto minmax(0,1fr) auto;
    }

    .users-page .users-section[data-users-section="smtp"] .user-row-primary{
        align-items:flex-start;
    }

    .users-page .users-section[data-users-section="smtp"] .user-row-meta{
        display:grid;
        grid-template-columns:1fr;
        justify-items:start;
    }
}


/* Utenti SMTP — autorizzazioni domini e mittenti */
.user-authorization-help{
    display:block;
    margin:0 0 8px;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}

.user-authorization-open{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    border:1px solid #cdddf2;
    border-radius:9px;
    background:#f5f9ff;
    color:#405b7e;
    font-size:10px;
    line-height:1.4;
}

.user-authorization-open svg{
    width:15px;
    height:15px;
    flex:0 0 15px;
    color:var(--blue);
}


/* ==========================================================
   Utenti SMTP — filtri dinamici autorizzazioni
   ========================================================== */

.user-authorization-search{
    position:relative;
    display:block;
    margin:8px 0;
}

.user-authorization-search svg{
    position:absolute;
    top:50%;
    left:11px;
    width:14px;
    height:14px;
    color:#7b8da6;
    transform:translateY(-50%);
    pointer-events:none;
}

.user-authorization-search input{
    width:100%;
    height:36px;
    padding:0 12px 0 34px;
    border:1px solid #d4deeb;
    border-radius:9px;
    background:#fff;
    color:var(--navy);
    font-size:11px;
    outline:none;
}

.user-authorization-search input:focus{
    border-color:#85ace1;
    box-shadow:0 0 0 3px rgba(50,116,207,.10);
}

.user-authorization-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.user-authorization-list [hidden]{
    display:none !important;
}

.user-authorization-empty{
    display:block;
    padding:10px;
    color:var(--muted);
    font-size:10px;
    text-align:center;
}

.user-authorization-empty[hidden]{
    display:none;
}

@media (max-width:650px){
    .user-authorization-list{
        grid-template-columns:1fr;
    }
}


/* AUTHORIZATIONS REAL PAGE START */
.authz-page{
    display:grid;
    gap:22px;
}
.authz-page-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
}
.authz-page-head h2{
    margin:8px 0 6px;
    font-size:30px;
    letter-spacing:-.04em;
}
.authz-page-head p{
    margin:0;
    max-width:720px;
    color:var(--muted);
}
.authz-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:#ea6b22;
    font-size:12px;
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.09em;
}
.authz-eyebrow svg{
    width:16px;
    height:16px;
}
.authz-page-stat{
    min-width:130px;
    padding:18px 20px;
    border:1px solid rgba(234,107,34,.2);
    border-radius:18px;
    background:linear-gradient(145deg,rgba(234,107,34,.11),rgba(234,107,34,.03));
    text-align:center;
}
.authz-page-stat span{
    display:block;
    font-size:28px;
    font-weight:800;
}
.authz-page-stat small{
    color:var(--muted);
}
.authz-message{
    display:flex;
    align-items:center;
    gap:10px;
    padding:14px 16px;
    border-radius:14px;
    font-size:14px;
}
.authz-message svg{
    width:19px;
    height:19px;
}
.authz-message.success{
    background:rgba(24,160,88,.1);
    color:#16804a;
    border:1px solid rgba(24,160,88,.22);
}
.authz-message.error{
    background:rgba(210,55,55,.09);
    color:#b52d2d;
    border:1px solid rgba(210,55,55,.2);
}
.authz-policy-card{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:18px;
    padding:20px;
    border:1px solid rgba(234,107,34,.18);
    border-radius:20px;
    background:linear-gradient(135deg,rgba(234,107,34,.09),rgba(255,255,255,.65));
}
.authz-policy-icon{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    border-radius:15px;
    background:#ea6b22;
    color:#fff;
}
.authz-policy-icon svg{
    width:22px;
    height:22px;
}
.authz-policy-card h3{
    margin:0 0 5px;
    font-size:16px;
}
.authz-policy-card p{
    margin:0;
    color:var(--muted);
    line-height:1.55;
}
.authz-policy-rules{
    display:grid;
    gap:8px;
}
.authz-policy-rules span{
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 11px;
    border-radius:10px;
    background:rgba(255,255,255,.78);
    font-size:12px;
    white-space:nowrap;
}
.authz-policy-rules svg{
    width:15px;
    height:15px;
    color:#ea6b22;
}
.authz-list-panel{
    overflow:hidden;
}
.authz-list-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:22px;
    border-bottom:1px solid var(--border);
}
.authz-list-head h3{
    margin:0 0 5px;
}
.authz-list-head p{
    margin:0;
    color:var(--muted);
}
.authz-search,
.authz-modal-search{
    display:flex;
    align-items:center;
    gap:9px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface);
    padding:0 12px;
}
.authz-search{
    width:min(360px,100%);
}
.authz-search svg,
.authz-modal-search svg{
    width:17px;
    height:17px;
    color:var(--muted);
}
.authz-search input,
.authz-modal-search input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    padding:11px 0;
}
.authz-account-list{
    display:grid;
}
.authz-account-row{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:18px;
    padding:20px 22px;
    border-bottom:1px solid var(--border);
}
.authz-account-row:last-child{
    border-bottom:0;
}
.authz-account-row:hover{
    background:rgba(234,107,34,.025);
}
.authz-account-avatar{
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:14px;
    background:rgba(234,107,34,.12);
    color:#ea6b22;
}
.authz-account-avatar svg{
    width:21px;
    height:21px;
}
.authz-account-main{
    min-width:0;
}
.authz-account-main > header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}
.authz-account-main > header > div{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}
.authz-account-main h4{
    margin:0;
    font-size:16px;
}
.authz-status{
    padding:4px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:750;
    text-transform:uppercase;
}
.authz-status.active{
    background:rgba(24,160,88,.11);
    color:#16804a;
}
.authz-status.inactive{
    background:rgba(130,137,149,.12);
    color:#666f7c;
}
.authz-mode{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:750;
    white-space:nowrap;
}
.authz-mode svg{
    width:14px;
    height:14px;
}
.authz-mode.free{
    color:#16804a;
    background:rgba(24,160,88,.11);
}
.authz-mode.domain{
    color:#2869b4;
    background:rgba(40,105,180,.1);
}
.authz-mode.sender{
    color:#9a5b0b;
    background:rgba(190,126,32,.11);
}
.authz-mode.mixed{
    color:#7c4bbc;
    background:rgba(124,75,188,.1);
}
.authz-account-summary{
    margin:7px 0 12px;
    color:var(--muted);
    font-size:13px;
}
.authz-account-details{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.authz-account-details > div{
    display:grid;
    grid-template-columns:auto auto minmax(0,1fr);
    align-items:center;
    gap:8px;
    min-width:0;
}
.authz-account-details span{
    display:flex;
    align-items:center;
    gap:5px;
    color:var(--muted);
    font-size:11px;
}
.authz-account-details span svg{
    width:13px;
    height:13px;
}
.authz-account-details b{
    display:grid;
    place-items:center;
    min-width:24px;
    height:24px;
    padding:0 6px;
    border-radius:8px;
    background:var(--surface-soft);
    font-size:11px;
}
.authz-account-details small{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--text);
    opacity:.72;
}
.authz-manage-button{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 13px;
    border:1px solid rgba(234,107,34,.28);
    border-radius:11px;
    background:rgba(234,107,34,.07);
    color:#cf5918;
    cursor:pointer;
    font-weight:700;
}
.authz-manage-button:hover{
    background:#ea6b22;
    color:#fff;
}
.authz-manage-button svg{
    width:16px;
    height:16px;
}
.authz-empty{
    display:grid;
    place-items:center;
    gap:7px;
    padding:42px 20px;
    color:var(--muted);
    text-align:center;
}
.authz-empty svg{
    width:30px;
    height:30px;
}
.authz-modal{
    position:fixed;
    inset:0;
    z-index:1200;
    display:none;
    place-items:center;
    padding:24px;
}
.authz-modal.is-open{
    display:grid;
}
.authz-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(17,22,30,.68);
    backdrop-filter:blur(5px);
}
.authz-modal-dialog{
    position:relative;
    z-index:1;
    width:min(920px,100%);
    max-height:calc(100vh - 48px);
    overflow:auto;
    border:1px solid var(--border);
    border-radius:22px;
    background:var(--surface);
    box-shadow:0 28px 80px rgba(0,0,0,.25);
}
.authz-modal-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:20px 22px;
    border-bottom:1px solid var(--border);
}
.authz-modal-head > div{
    display:flex;
    align-items:center;
    gap:13px;
}
.authz-modal-head > div > span{
    display:grid;
    place-items:center;
    width:43px;
    height:43px;
    border-radius:13px;
    background:#ea6b22;
    color:#fff;
}
.authz-modal-head small{
    display:block;
    color:var(--muted);
    margin-bottom:2px;
}
.authz-modal-head h2{
    margin:0;
    font-size:20px;
}
.authz-modal-head > button{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border:0;
    border-radius:10px;
    background:var(--surface-soft);
    cursor:pointer;
}
.authz-modal-body{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    padding:22px;
}
.authz-choice-section{
    min-width:0;
    padding:17px;
    border:1px solid var(--border);
    border-radius:17px;
    background:var(--surface-soft);
}
.authz-choice-section > header{
    display:flex;
    gap:11px;
    margin-bottom:13px;
}
.authz-choice-section > header > span{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:36px;
    height:36px;
    border-radius:11px;
    background:rgba(234,107,34,.11);
    color:#ea6b22;
}
.authz-choice-section h3{
    margin:0 0 3px;
    font-size:14px;
}
.authz-choice-section p{
    margin:0;
    color:var(--muted);
    font-size:12px;
    line-height:1.45;
}
.authz-modal-search{
    margin-bottom:11px;
    background:var(--surface);
}
.authz-options{
    display:grid;
    gap:7px;
    max-height:260px;
    overflow:auto;
    padding-right:3px;
}
.authz-options > label{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:10px;
    padding:10px;
    border:1px solid transparent;
    border-radius:11px;
    background:var(--surface);
    cursor:pointer;
}
.authz-options > label:hover{
    border-color:rgba(234,107,34,.22);
}
.authz-options input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.authz-checkbox{
    display:grid;
    place-items:center;
    width:19px;
    height:19px;
    border:1px solid var(--border-strong);
    border-radius:6px;
}
.authz-options input:checked + .authz-checkbox{
    border-color:#ea6b22;
    background:#ea6b22;
}
.authz-options input:checked + .authz-checkbox::after{
    content:'';
    width:7px;
    height:4px;
    border-left:2px solid #fff;
    border-bottom:2px solid #fff;
    transform:rotate(-45deg) translateY(-1px);
}
.authz-options label > span:last-child{
    display:grid;
    min-width:0;
}
.authz-options b{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:12px;
}
.authz-options small{
    color:var(--muted);
    font-size:10px;
}
.authz-option-placeholder,
.authz-option-empty{
    padding:18px 10px;
    color:var(--muted);
    text-align:center;
    font-size:12px;
}
.authz-live-summary{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    gap:14px;
    padding:16px;
    border:1px solid;
    border-radius:15px;
}
.authz-live-summary > span{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:41px;
    height:41px;
    border-radius:12px;
}
.authz-live-summary small{
    display:block;
    opacity:.68;
    margin-bottom:2px;
}
.authz-live-summary h3{
    margin:0 0 3px;
    font-size:14px;
}
.authz-live-summary p{
    margin:0;
    font-size:12px;
}
.authz-live-summary.free{
    color:#16804a;
    background:rgba(24,160,88,.08);
    border-color:rgba(24,160,88,.2);
}
.authz-live-summary.domain{
    color:#2869b4;
    background:rgba(40,105,180,.08);
    border-color:rgba(40,105,180,.18);
}
.authz-live-summary.sender{
    color:#9a5b0b;
    background:rgba(190,126,32,.08);
    border-color:rgba(190,126,32,.18);
}
.authz-live-summary.mixed{
    color:#7c4bbc;
    background:rgba(124,75,188,.08);
    border-color:rgba(124,75,188,.18);
}
.authz-modal-footer{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    padding:17px 22px;
    border-top:1px solid var(--border);
}
body.authz-modal-open{
    overflow:hidden;
}
@media(max-width:900px){
    .authz-policy-card{
        grid-template-columns:auto 1fr;
    }
    .authz-policy-rules{
        grid-column:1/-1;
    }
    .authz-account-details{
        grid-template-columns:1fr;
    }
}
@media(max-width:700px){
    .authz-page-head,
    .authz-list-head{
        align-items:stretch;
        flex-direction:column;
    }
    .authz-page-stat{
        width:100%;
    }
    .authz-search{
        width:100%;
    }
    .authz-account-row{
        grid-template-columns:auto minmax(0,1fr);
    }
    .authz-manage-button{
        grid-column:1/-1;
        justify-content:center;
    }
    .authz-account-main > header{
        align-items:flex-start;
        flex-direction:column;
    }
    .authz-modal{
        padding:10px;
    }
    .authz-modal-dialog{
        max-height:calc(100vh - 20px);
    }
    .authz-modal-body{
        grid-template-columns:1fr;
        padding:15px;
    }
}
/* AUTHORIZATIONS REAL PAGE END */


/* Fix stato vuoto pagina Autorizzazioni */
.authz-empty[hidden]{
    display:none !important;
}

/* Fix livelli modale Autorizzazioni */
.authz-modal{
    isolation:isolate;
}

.authz-modal-backdrop{
    z-index:0 !important;
}

.authz-modal-dialog{
    z-index:2 !important;
    opacity:1 !important;
    filter:none !important;
    backdrop-filter:none !important;
    background:#ffffff !important;
}

.authz-modal.is-open .authz-modal-dialog{
    opacity:1 !important;
    visibility:visible !important;
}

/* AUTHZ LIMITS START */
.authz-limits-section{
    grid-column:1/-1;
    padding:17px;
    border:1px solid var(--border);
    border-radius:17px;
    background:var(--surface-soft);
}

.authz-limits-section > header{
    display:flex;
    gap:11px;
    margin-bottom:15px;
}

.authz-limits-section > header > span{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:36px;
    height:36px;
    border-radius:11px;
    background:rgba(234,107,34,.11);
    color:#ea6b22;
}

.authz-limits-section h3{
    margin:0 0 3px;
    font-size:14px;
}

.authz-limits-section p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}

.authz-limit-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.authz-limit-fields label{
    display:grid;
    gap:7px;
}

.authz-limit-fields label > span{
    font-size:12px;
    font-weight:700;
}

.authz-limit-fields label > div{
    display:flex;
    align-items:center;
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:11px;
    background:var(--surface);
}

.authz-limit-fields input{
    min-width:0;
    flex:1;
    border:0;
    outline:0;
    padding:11px 12px;
    background:transparent;
}

.authz-limit-fields small{
    padding:0 12px;
    color:var(--muted);
    white-space:nowrap;
}

.user-authorization-open a{
    color:#ea6b22;
    font-weight:750;
    text-decoration:none;
}

.user-authorization-open a:hover{
    text-decoration:underline;
}

@media(max-width:700px){
    .authz-limit-fields{
        grid-template-columns:1fr;
    }
}
/* AUTHZ LIMITS END */

/* AUTHZ USAGE FINAL START */
.authz-usage-monitor{
    margin:0 0 20px;
    padding:18px;
    border:1px solid var(--border);
    border-radius:18px;
    background:var(--surface);
}

.authz-usage-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:15px;
}

.authz-usage-head > div{
    display:flex;
    align-items:center;
    gap:11px;
}

.authz-usage-head > div > span{
    display:grid;
    place-items:center;
    width:39px;
    height:39px;
    border-radius:12px;
    background:rgba(234,107,34,.12);
    color:#ea6b22;
}

.authz-usage-head h3{
    margin:0 0 3px;
    font-size:16px;
}

.authz-usage-head p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}

.authz-usage-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.authz-usage-card{
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:15px;
    background:var(--surface);
}

.authz-usage-card > header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:13px 14px;
    border-bottom:1px solid var(--border);
    background:var(--surface-soft);
}

.authz-usage-card > header > div{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
}

.authz-usage-account{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    flex:0 0 auto;
    border-radius:10px;
    background:rgba(18,102,239,.1);
    color:#1266ef;
}

.authz-usage-card h4{
    margin:0 0 2px;
    font-size:13px;
}

.authz-usage-card header small{
    color:var(--muted);
    font-size:10px;
}

.authz-usage-status{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
    white-space:nowrap;
}

.authz-usage-status.unlimited{
    background:rgba(18,102,239,.1);
    color:#1266ef;
}

.authz-usage-status.regular{
    background:rgba(21,148,71,.11);
    color:#147a3e;
}

.authz-usage-status.warning{
    background:rgba(213,139,25,.13);
    color:#a86a0c;
}

.authz-usage-status.blocked{
    background:rgba(201,48,44,.11);
    color:#a72525;
}

.authz-usage-card.warning{
    border-color:rgba(213,139,25,.35);
}

.authz-usage-card.blocked{
    border-color:rgba(201,48,44,.35);
}

.authz-usage-values{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    padding:13px 14px;
}

.authz-usage-values > section{
    padding:11px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface-soft);
}

.authz-usage-values section > div:first-child{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
    margin-bottom:9px;
}

.authz-usage-values section > div:first-child span{
    display:flex;
    align-items:center;
    gap:5px;
    color:var(--muted);
    font-size:10px;
    font-weight:700;
}

.authz-usage-values b{
    font-size:15px;
}

.authz-usage-values b small{
    color:var(--muted);
    font-size:9px;
}

.authz-usage-bar{
    overflow:hidden;
    height:6px;
    border-radius:999px;
    background:rgba(100,116,139,.15);
}

.authz-usage-bar span{
    display:block;
    height:100%;
    max-width:100%;
    border-radius:inherit;
    background:#1266ef;
}

.authz-usage-card.warning .authz-usage-bar span{
    background:#d58b19;
}

.authz-usage-card.blocked .authz-usage-bar span{
    background:#c9302c;
}

.authz-usage-values footer{
    display:flex;
    justify-content:space-between;
    gap:7px;
    margin-top:7px;
    color:var(--muted);
    font-size:9px;
}

.authz-usage-values footer strong{
    color:var(--text);
}

.authz-usage-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 14px;
    border-top:1px solid var(--border);
    color:var(--muted);
    font-size:9px;
}

.authz-usage-footer > span{
    display:flex;
    align-items:center;
    gap:5px;
}

.authz-usage-reset{
    display:inline-flex;
    align-items:center;
    gap:5px;
    border:0;
    padding:6px 8px;
    border-radius:8px;
    background:rgba(201,48,44,.09);
    color:#a72525;
    cursor:pointer;
    font:inherit;
    font-weight:750;
}

.authz-usage-reset:disabled{
    opacity:.4;
    cursor:not-allowed;
}

@media(max-width:1050px){
    .authz-usage-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){
    .authz-usage-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .authz-usage-values{
        grid-template-columns:1fr;
    }

    .authz-usage-footer{
        align-items:flex-start;
        flex-direction:column;
    }
}
/* AUTHZ USAGE FINAL END */

/* AUTHZ CONSUMI FINALISSIMO START */
section.panel.authz-usage-monitor{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;

    margin-top:0 !important;
    margin-right:0 !important;
    margin-bottom:0 !important;
    margin-left:0 !important;

    padding:40px 46px !important;

    border:1px solid #cfdeef !important;
    border-radius:18px !important;

    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;

    box-shadow:none !important;
    opacity:1 !important;
}

section.panel.authz-usage-monitor .authz-usage-head{
    margin-top:0 !important;
    margin-bottom:28px !important;
}

section.panel.authz-usage-monitor .authz-usage-grid{
    margin:0 !important;
}

.authz-list-panel{
    margin-bottom:0 !important;
}

@media(max-width:700px){
    section.panel.authz-usage-monitor{
        padding:26px 24px !important;
    }
}
/* AUTHZ CONSUMI FINALISSIMO END */

/* AUTHZ SEARCH FILTER FINAL START */
.authz-search,
.authz-usage-search{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:290px;
    padding:10px 13px;
    border:1px solid #cfdeef;
    border-radius:12px;
    background:#ffffff;
    box-shadow:0 1px 2px rgba(15,23,42,.03);
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.authz-search:focus-within,
.authz-usage-search:focus-within{
    border-color:#7fb0ff;
    box-shadow:0 0 0 3px rgba(18,102,239,.10);
}

.authz-search > svg,
.authz-usage-search > svg{
    flex:0 0 auto;
    color:var(--muted);
}

.authz-search input,
.authz-usage-search input{
    width:100%;
    min-width:0;
    border:0;
    outline:0;
    padding:0;
    background:transparent;
    color:var(--text);
    font:inherit;
}

.authz-search input::placeholder,
.authz-usage-search input::placeholder{
    color:#7b879a;
}

.authz-usage-actions{
    display:flex;
    align-items:center;
    gap:12px;
}

.authz-usage-empty{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:90px;
    color:var(--muted);
}

.authz-usage-empty[hidden]{
    display:none !important;
}

@media(max-width:800px){
    .authz-usage-actions{
        width:100%;
        align-items:stretch;
        flex-direction:column;
    }

    .authz-search,
    .authz-usage-search{
        width:100%;
        min-width:0;
        box-sizing:border-box;
    }
}
/* AUTHZ SEARCH FILTER FINAL END */

/* AUTHZ ACCOUNT FILTER HIDDEN START */
[data-authz-row][hidden]{
    display:none !important;
}
/* AUTHZ ACCOUNT FILTER HIDDEN END */

/* NODES LAYOUT SEARCH START */
.nodes-page > .node-security-panel{
    margin-bottom:20px;
}

.node-list-filter{
    grid-column:1/-1;
    margin-bottom:4px;
}

.node-list-filter label{
    display:flex;
    align-items:center;
    gap:9px;
    width:100%;
    box-sizing:border-box;
    padding:11px 13px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface);
    transition:
        border-color .18s ease,
        box-shadow .18s ease;
}

.node-list-filter label:focus-within{
    border-color:#7fb0ff;
    box-shadow:0 0 0 3px rgba(18,102,239,.10);
}

.node-list-filter svg{
    flex:0 0 auto;
    color:var(--muted);
}

.node-list-filter input{
    width:100%;
    min-width:0;
    border:0;
    outline:0;
    padding:0;
    background:transparent;
    color:var(--text);
    font:inherit;
}

.node-list-filter input::placeholder{
    color:var(--muted);
}

[data-node-card][hidden]{
    display:none !important;
}

.node-list-empty{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:120px;
    padding:20px;
    border:1px dashed var(--border);
    border-radius:14px;
    color:var(--muted);
    text-align:left;
}

.node-list-empty[hidden]{
    display:none !important;
}

.node-list-empty span{
    display:grid;
    gap:2px;
}

.node-list-empty b{
    color:var(--text);
}

.node-list-empty small{
    font-size:11px;
}
/* NODES LAYOUT SEARCH END */

/* NODES FILTER LAYOUT FIX START */
.node-card-list{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:stretch !important;
    align-self:flex-start !important;
    gap:14px !important;
    height:auto !important;
    min-height:0 !important;
}

.node-list-filter{
    flex:0 0 auto !important;
    margin:0 !important;
}

.node-main-card:not([hidden]){
    display:block !important;
    flex:0 0 auto !important;
    align-self:stretch !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    box-sizing:border-box !important;
}

.node-list-empty:not([hidden]){
    flex:0 0 auto !important;
}
/* NODES FILTER LAYOUT FIX END */

/* NODES ADD DIALOG START */
.node-dialog{
    width:min(760px,calc(100vw - 32px));
    max-height:calc(100vh - 40px);
    padding:0;
    border:0;
    border-radius:18px;
    background:var(--surface);
    color:var(--text);
    box-shadow:0 24px 80px rgba(15,23,42,.24);
}

.node-dialog::backdrop{
    background:rgba(15,23,42,.55);
    backdrop-filter:blur(3px);
}

.node-dialog form{
    padding:24px;
}

.node-dialog-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:22px;
}

.node-dialog-head h2{
    margin:0 0 5px;
}

.node-dialog-head p{
    margin:0;
    color:var(--muted);
}

.node-dialog-close{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    padding:0;
    border:1px solid var(--border);
    border-radius:10px;
    background:transparent;
    color:var(--text);
    cursor:pointer;
}

.node-dialog-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.node-dialog-grid label{
    display:grid;
    gap:7px;
}

.node-dialog-grid label > span{
    font-size:13px;
    font-weight:700;
}

.node-dialog-grid input,
.node-dialog-grid select,
.node-dialog-grid textarea{
    width:100%;
    box-sizing:border-box;
    padding:11px 12px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--surface);
    color:var(--text);
    font:inherit;
    outline:none;
}

.node-dialog-grid input:focus,
.node-dialog-grid select:focus,
.node-dialog-grid textarea:focus{
    border-color:#7fb0ff;
    box-shadow:0 0 0 3px rgba(18,102,239,.10);
}

.node-dialog-wide{
    grid-column:1/-1;
}

.node-dialog-check{
    display:flex !important;
    grid-template-columns:auto 1fr;
    align-items:center;
}

.node-dialog-check input{
    width:auto;
}

.node-dialog-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid var(--border);
}

@media (max-width:700px){
    .node-dialog-grid{
        grid-template-columns:1fr;
    }

    .node-dialog-wide{
        grid-column:auto;
    }
}
/* NODES ADD DIALOG END */

/* NODES ADD DIALOG OPAQUE FIX START */
.node-dialog{
    background:#ffffff !important;
    opacity:1 !important;
}

.node-dialog form{
    background:#ffffff !important;
    border-radius:18px;
}

.node-dialog::backdrop{
    background:rgba(15,23,42,.58) !important;
    backdrop-filter:blur(4px);
}
/* NODES ADD DIALOG OPAQUE FIX END */

/* NODES ADD MODAL DEFINITIVA START */

#addNodeDialog.node-dialog{
    width:min(820px,calc(100vw - 40px)) !important;
    max-width:820px !important;
    max-height:calc(100vh - 48px) !important;
    margin:auto !important;
    padding:0 !important;
    overflow:hidden !important;
    border:1px solid #d9e3f3 !important;
    border-radius:20px !important;
    background:#ffffff !important;
    color:#14213d !important;
    opacity:1 !important;
    box-shadow:0 28px 90px rgba(15,23,42,.30) !important;
}

#addNodeDialog.node-dialog::backdrop{
    background:rgba(15,23,42,.62) !important;
    backdrop-filter:blur(5px) !important;
}

#addNodeDialog.node-dialog > form{
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    max-height:calc(100vh - 48px) !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    border-radius:20px !important;
    background:#ffffff !important;
}

#addNodeDialog .node-dialog-head{
    flex:0 0 auto !important;
    display:flex !important;
    align-items:flex-start !important;
    justify-content:space-between !important;
    gap:20px !important;
    margin:0 !important;
    padding:24px 26px 18px !important;
    border-bottom:1px solid #e4ebf5 !important;
    background:#ffffff !important;
}

#addNodeDialog .node-dialog-head h2{
    margin:0 0 4px !important;
    color:#14213d !important;
    font-size:24px !important;
    line-height:1.2 !important;
}

#addNodeDialog .node-dialog-head p{
    margin:0 !important;
    color:#66758f !important;
    font-size:14px !important;
}

#addNodeDialog .node-dialog-close{
    flex:0 0 auto !important;
    display:grid !important;
    place-items:center !important;
    width:38px !important;
    height:38px !important;
    padding:0 !important;
    border:1px solid #d9e3f3 !important;
    border-radius:10px !important;
    background:#ffffff !important;
    color:#14213d !important;
    cursor:pointer !important;
}

#addNodeDialog .node-dialog-close:hover{
    background:#f3f7fd !important;
    border-color:#b7cef5 !important;
}

#addNodeDialog .node-dialog-grid{
    flex:1 1 auto !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:14px 16px !important;
    padding:20px 26px !important;
    overflow-y:auto !important;
    background:#ffffff !important;
}

#addNodeDialog .node-dialog-grid label{
    display:flex !important;
    flex-direction:column !important;
    gap:6px !important;
    min-width:0 !important;
    margin:0 !important;
}

#addNodeDialog .node-dialog-grid label > span{
    display:block !important;
    margin:0 !important;
    color:#14213d !important;
    font-size:13px !important;
    line-height:1.25 !important;
    font-weight:700 !important;
}

#addNodeDialog .node-dialog-grid input:not([type="checkbox"]),
#addNodeDialog .node-dialog-grid select,
#addNodeDialog .node-dialog-grid textarea{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:10px 12px !important;
    border:1px solid #cdd9eb !important;
    border-radius:10px !important;
    background:#ffffff !important;
    color:#14213d !important;
    font:inherit !important;
    font-size:14px !important;
    line-height:1.35 !important;
    outline:none !important;
    box-shadow:none !important;
    opacity:1 !important;
}

#addNodeDialog .node-dialog-grid input:not([type="checkbox"]),
#addNodeDialog .node-dialog-grid select{
    height:42px !important;
}

#addNodeDialog .node-dialog-grid textarea{
    min-height:82px !important;
    max-height:120px !important;
    resize:vertical !important;
}

#addNodeDialog .node-dialog-grid input::placeholder,
#addNodeDialog .node-dialog-grid textarea::placeholder{
    color:#98a4b7 !important;
    opacity:1 !important;
}

#addNodeDialog .node-dialog-grid input:focus,
#addNodeDialog .node-dialog-grid select:focus,
#addNodeDialog .node-dialog-grid textarea:focus{
    border-color:#1769e8 !important;
    box-shadow:0 0 0 3px rgba(23,105,232,.12) !important;
}

#addNodeDialog .node-dialog-wide{
    grid-column:1/-1 !important;
}

#addNodeDialog .node-dialog-check{
    grid-column:1/-1 !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:9px !important;
    padding:2px 0 !important;
}

#addNodeDialog .node-dialog-check input{
    width:18px !important;
    height:18px !important;
    margin:0 !important;
    accent-color:#1769e8 !important;
}

#addNodeDialog .node-dialog-check span{
    margin:0 !important;
    font-size:14px !important;
}

#addNodeDialog .node-dialog-actions{
    flex:0 0 auto !important;
    display:flex !important;
    justify-content:flex-end !important;
    align-items:center !important;
    gap:10px !important;
    margin:0 !important;
    padding:16px 26px 20px !important;
    border-top:1px solid #e4ebf5 !important;
    background:#ffffff !important;
}

#addNodeDialog .node-dialog-actions .btn{
    min-height:42px !important;
    padding:10px 17px !important;
}

@media (max-width:700px){
    #addNodeDialog.node-dialog{
        width:calc(100vw - 20px) !important;
        max-height:calc(100vh - 20px) !important;
    }

    #addNodeDialog.node-dialog > form{
        max-height:calc(100vh - 20px) !important;
    }

    #addNodeDialog .node-dialog-head{
        padding:20px 18px 16px !important;
    }

    #addNodeDialog .node-dialog-grid{
        grid-template-columns:1fr !important;
        padding:18px !important;
    }

    #addNodeDialog .node-dialog-wide{
        grid-column:auto !important;
    }

    #addNodeDialog .node-dialog-actions{
        padding:14px 18px 18px !important;
    }
}

/* NODES ADD MODAL DEFINITIVA END */


/* NODES PASSWORD NOTICE START */
.node-password-notice{
    display:flex;
    align-items:center;
    gap:12px;
    position:relative;
    padding:14px 16px;
    border:1px solid rgba(59,130,246,.25);
    border-radius:12px;
    background:rgba(59,130,246,.08);
}

.node-password-notice-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 38px;
    width:38px;
    height:38px;
    border-radius:10px;
    background:rgba(59,130,246,.14);
}

.node-password-notice-icon svg{
    width:19px;
    height:19px;
}

.node-password-notice-text{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
}

.node-password-notice-text strong{
    font-size:14px;
}

.node-password-notice-text span{
    font-size:12px;
    line-height:1.45;
    opacity:.78;
}

.node-password-help{
    position:relative;
    flex:0 0 26px;
    width:26px;
    height:26px;
    margin-left:auto;
    border:1px solid rgba(59,130,246,.35);
    border-radius:50%;
    background:transparent;
    font-weight:700;
    cursor:help;
}

.node-password-help::after{
    content:attr(data-tooltip);
    position:absolute;
    right:0;
    bottom:calc(100% + 10px);
    z-index:20;
    width:270px;
    padding:10px 12px;
    border-radius:9px;
    background:#172033;
    color:#fff;
    font-size:12px;
    font-weight:400;
    line-height:1.45;
    text-align:left;
    box-shadow:0 10px 30px rgba(0,0,0,.25);
    opacity:0;
    visibility:hidden;
    transform:translateY(5px);
    transition:.18s ease;
    pointer-events:none;
}

.node-password-help:hover::after,
.node-password-help:focus-visible::after{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}
/* NODES PASSWORD NOTICE END */

/* QUEUE AND DELIVERIES START */
.queue-page{
    display:grid;
    gap:14px;
}

.queue-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
}

.queue-toolbar h2{
    margin:0 0 4px;
    font-size:20px;
}

.queue-toolbar p{
    margin:0;
    color:var(--muted);
}

.queue-toolbar-actions{
    display:flex;
    align-items:center;
    gap:12px;
}

.queue-updated{
    color:var(--muted);
    font-size:12px;
}

.queue-kpi-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}

.queue-kpi{
    display:flex;
    align-items:center;
    gap:13px;
    min-height:112px;
}

.queue-kpi-icon{
    width:46px;
    height:46px;
    border-radius:13px;
    display:grid;
    place-items:center;
    flex:0 0 46px;
    background:#eaf2ff;
    color:var(--blue);
}

.queue-kpi-icon svg{
    width:22px;
    height:22px;
}

.queue-kpi-success{
    background:#e8f8ec;
    color:var(--green);
}

.queue-kpi-warning{
    background:#fff4dd;
    color:#b56b00;
}

.queue-kpi-danger{
    background:#ffe9e9;
    color:#c43d3d;
}

.queue-kpi div{
    display:grid;
    gap:3px;
}

.queue-kpi small,
.queue-kpi span{
    color:var(--muted);
}

.queue-kpi strong{
    font-size:26px;
    color:var(--navy);
}

.queue-workspace{
    padding:0;
    overflow:hidden;
}

.queue-tabs{
    display:flex;
    gap:4px;
    padding:12px 14px 0;
    border-bottom:1px solid var(--line);
}

.queue-tab{
    border:0;
    background:transparent;
    color:var(--muted);
    display:flex;
    align-items:center;
    gap:7px;
    padding:11px 14px;
    border-radius:10px 10px 0 0;
    font-weight:800;
    cursor:pointer;
}

.queue-tab svg{
    width:17px;
    height:17px;
}

.queue-tab span{
    min-width:23px;
    padding:2px 7px;
    border-radius:999px;
    background:#eaf1fb;
    font-size:11px;
}

.queue-tab.active{
    background:#edf5ff;
    color:var(--blue);
}

.queue-filters{
    display:grid;
    grid-template-columns:minmax(260px,1fr) 190px;
    gap:10px;
    padding:14px;
    border-bottom:1px solid var(--line);
}

.queue-search{
    position:relative;
}

.queue-search svg{
    position:absolute;
    left:12px;
    top:50%;
    width:17px;
    height:17px;
    transform:translateY(-50%);
    color:var(--muted);
}

.queue-search input,
.queue-filters select{
    width:100%;
    height:42px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fff;
    color:var(--text);
}

.queue-search input{
    padding:0 12px 0 39px;
}

.queue-filters select{
    padding:0 11px;
}

.queue-tab-panel{
    display:none;
}

.queue-tab-panel.active{
    display:block;
}

.queue-table td{
    vertical-align:middle;
}

.queue-table code{
    color:var(--navy);
    font-size:12px;
}

.queue-recipient-list{
    display:grid;
    gap:3px;
}

.queue-status{
    display:inline-flex;
    padding:5px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
}

.queue-status-sent{
    background:#e5f7e9;
    color:#148541;
}

.queue-status-deferred,
.queue-status-queued{
    background:#fff2d8;
    color:#a76400;
}

.queue-status-bounced,
.queue-status-expired{
    background:#ffe7e7;
    color:#bd3535;
}

.queue-pool{
    color:var(--blue);
    font-weight:800;
}

.queue-empty{
    min-height:310px;
    display:grid;
    place-items:center;
    align-content:center;
    text-align:center;
    gap:7px;
    color:var(--muted);
}

.queue-empty svg{
    width:52px;
    height:52px;
    color:#9db7dc;
}

.queue-empty strong{
    color:var(--navy);
    font-size:17px;
}

.queue-details{
    position:relative;
}

.queue-details summary{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:var(--blue);
    font-weight:800;
    cursor:pointer;
    list-style:none;
}

.queue-details summary::-webkit-details-marker{
    display:none;
}

.queue-details summary svg{
    width:16px;
    height:16px;
}

.queue-details-card{
    position:absolute;
    right:0;
    top:calc(100% + 8px);
    z-index:25;
    width:440px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    box-shadow:0 18px 45px rgba(20,53,98,.18);
    white-space:normal;
}

.queue-details-card dl{
    margin:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.queue-details-card dl div{
    min-width:0;
}

.queue-details-card dt{
    color:var(--muted);
    font-size:11px;
}

.queue-details-card dd{
    margin:3px 0 0;
    font-weight:700;
    overflow-wrap:anywhere;
}

.queue-response{
    display:grid;
    gap:6px;
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid var(--line);
}

.queue-response code{
    display:block;
    padding:10px;
    border-radius:8px;
    background:#f3f7fc;
    overflow-wrap:anywhere;
}

.queue-technical-note,
.queue-alert{
    display:flex;
    align-items:flex-start;
    gap:12px;
}

.queue-technical-note>svg,
.queue-alert>svg{
    flex:0 0 22px;
    color:var(--blue);
}

.queue-technical-note div,
.queue-alert div{
    display:grid;
    gap:4px;
}

.queue-technical-note span,
.queue-alert span{
    color:var(--muted);
    line-height:1.55;
}

.queue-alert-error{
    border-color:#f0b7b7;
    background:#fff6f6;
}

.queue-alert-error>svg{
    color:#c43d3d;
}

.queue-no-results{
    padding:20px;
    text-align:center;
    color:var(--muted);
    border-top:1px solid var(--line);
}

@media(max-width:1100px){
    .queue-kpi-grid{
        grid-template-columns:1fr 1fr;
    }

    .queue-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:720px){
    .queue-kpi-grid,
    .queue-filters{
        grid-template-columns:1fr;
    }

    .queue-toolbar-actions{
        width:100%;
        justify-content:space-between;
    }

    .queue-tabs{
        overflow:auto;
    }

    .queue-details-card{
        position:fixed;
        left:12px;
        right:12px;
        top:120px;
        width:auto;
    }
}
/* QUEUE AND DELIVERIES END */

/* QUEUE KPI TYPOGRAPHY REFINEMENT START */
.queue-kpi small{
    color:var(--text);
    font-size:13px;
    font-weight:800;
    line-height:1.25;
}

.queue-kpi strong{
    font-size:26px;
    line-height:1;
}

.queue-kpi span{
    color:var(--muted);
    font-size:12px;
    line-height:1.35;
}
/* QUEUE KPI TYPOGRAPHY REFINEMENT END */

/* QUEUE KPI LAYOUT REFINEMENT START */
.queue-kpi{
    display:grid;
    grid-template-columns:1fr;
    align-content:center;
    gap:12px;
    min-height:134px;
    padding:18px 20px;
}

.queue-kpi-title{
    display:block;
    color:var(--text);
    font-size:13px;
    font-weight:800;
    line-height:1.25;
}

.queue-kpi-body{
    display:flex;
    align-items:center;
    gap:13px;
    min-width:0;
}

.queue-kpi-value{
    display:grid;
    gap:5px;
    min-width:0;
}

.queue-kpi-value strong{
    font-size:27px;
    line-height:1;
    color:var(--navy);
}

.queue-kpi-value span{
    color:var(--muted);
    font-size:12px;
    line-height:1.35;
}
/* QUEUE KPI LAYOUT REFINEMENT END */

/* QUEUE KPI INLINE FIX START */
.queue-kpi-body{
    display:grid;
    grid-template-columns:46px minmax(0,1fr);
    align-items:center;
    column-gap:14px;
}

.queue-kpi-value{
    display:grid;
    align-content:center;
    gap:5px;
}

.queue-kpi-value strong,
.queue-kpi-value span{
    display:block;
}
/* QUEUE KPI INLINE FIX END */

/* QUEUE KPI COMPACT ALIGNMENT START */
.queue-kpi{
    min-height:108px;
    padding:14px 18px;
    display:grid;
    grid-template-rows:18px 58px;
    align-content:center;
    gap:8px;
}

.queue-kpi-title{
    margin:0;
    align-self:end;
    font-size:13px;
    line-height:18px;
}

.queue-kpi-body{
    display:grid;
    grid-template-columns:46px minmax(0,1fr);
    align-items:center;
    gap:12px;
    min-height:58px;
}

.queue-kpi-icon{
    width:46px;
    height:46px;
    align-self:center;
}

.queue-kpi-value{
    display:grid;
    grid-template-rows:29px 18px;
    align-content:center;
    gap:2px;
    min-width:0;
}

.queue-kpi-value strong{
    margin:0;
    font-size:27px;
    line-height:29px;
}

.queue-kpi-value span{
    margin:0;
    font-size:12px;
    line-height:18px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
/* QUEUE KPI COMPACT ALIGNMENT END */

/* QUEUE KPI SPACING FIX START */
.queue-kpi-body{
    column-gap:18px;
}
/* QUEUE KPI SPACING FIX END */

/* QUEUE KPI STRONG SPACING FIX START */
.queue-kpi-body{
    column-gap:28px;
}
/* QUEUE KPI STRONG SPACING FIX END */

/* QUEUE KPI REAL SPACING FIX START */
.queue-kpi-body{
    column-gap:0 !important;
}

.queue-kpi-value{
    margin-left:18px !important;
}
/* QUEUE KPI REAL SPACING FIX END */

/* QUEUE SECONDARY TEXT CONSISTENCY START */
.queue-empty{
    min-height:230px;
    gap:5px;
}

.queue-empty svg{
    width:42px;
    height:42px;
}

.queue-empty strong{
    font-size:13px;
    line-height:1.3;
    font-weight:800;
}

.queue-empty span{
    font-size:12px;
    line-height:1.45;
}

.queue-technical-note{
    padding:13px 16px;
}

.queue-technical-note>svg{
    width:19px;
    height:19px;
    flex-basis:19px;
}

.queue-technical-note strong{
    font-size:13px;
    line-height:1.3;
    font-weight:800;
}

.queue-technical-note span{
    font-size:12px;
    line-height:1.45;
}

.queue-technical-note code{
    font-size:11px;
}
/* QUEUE SECONDARY TEXT CONSISTENCY END */

/* Allineamento tipografico pagina Autorizzazioni */
.authz-page-head h2{
    font-size:20px;
    letter-spacing:-.02em;
}

.authz-page-head p{
    font-size:13px;
}

.authz-page-stat span{
    font-size:22px;
}

.authz-page-stat small{
    font-size:12px;
}

.authz-policy-card h3{
    font-size:15px;
}

.authz-policy-card p{
    font-size:13px;
}

.authz-list-head h3{
    font-size:17px;
}

.authz-list-head p{
    font-size:13px;
}

.authz-account-main h4{
    font-size:14px;
}

.authz-account-summary{
    font-size:12px;
}

.authz-manage-button{
    font-size:13px;
}

/* Code e Consegne: azioni, timeline e metadati */
.queue-alert-success{
    border-color:rgba(21,148,71,.24);
    background:rgba(21,148,71,.07);
    color:#137c3f;
}

.queue-alert-warning{
    border-color:rgba(190,126,32,.24);
    background:rgba(190,126,32,.08);
    color:#925b0b;
}

.queue-subject-cell{
    max-width:260px;
    overflow:hidden;
    text-overflow:ellipsis;
}

.queue-estimated{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-size:10px;
}

.queue-delay-reason{
    display:block;
    max-width:260px;
    margin-top:5px;
    overflow:hidden;
    color:var(--muted);
    font-size:10px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.queue-action-form{
    display:flex;
    align-items:center;
    gap:5px;
}

.queue-action-form button{
    display:grid;
    place-items:center;
    width:31px;
    height:31px;
    padding:0;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--blue);
    cursor:pointer;
}

.queue-action-form button:hover{
    border-color:var(--blue);
    background:#eef5ff;
}

.queue-action-form button.danger{
    color:#c73737;
}

.queue-action-form button.danger:hover{
    border-color:#c73737;
    background:#fff1f1;
}

.queue-action-form svg{
    width:14px;
    height:14px;
}

.queue-timeline{
    display:grid;
    gap:9px;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--line);
}

.queue-timeline > span{
    color:var(--muted);
    font-size:12px;
}

.queue-timeline ol{
    display:grid;
    gap:7px;
    margin:0;
    padding:0;
    list-style:none;
}

.queue-timeline li{
    display:grid;
    grid-template-columns:145px 130px minmax(0,1fr);
    gap:9px;
    align-items:center;
    padding:8px 10px;
    border-radius:9px;
    background:var(--surface-soft);
    font-size:11px;
}

.queue-timeline time,
.queue-timeline span{
    color:var(--muted);
}

@media(max-width:800px){
    .queue-timeline li{
        grid-template-columns:1fr;
        gap:3px;
    }
}

/* Paginazione reale Code e Consegne */
.queue-pagination{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:16px 20px;
    border-top:1px solid var(--line);
}

.queue-pagination > span{
    color:var(--muted);
    font-size:12px;
}

.queue-pagination > div{
    display:flex;
    align-items:center;
    gap:6px;
}

.queue-pagination a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    min-width:34px;
    height:34px;
    padding:0 10px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--blue);
    font-size:12px;
    font-weight:700;
    text-decoration:none;
}

.queue-pagination a:hover,
.queue-pagination a.active{
    border-color:var(--blue);
    background:var(--blue);
    color:#fff;
}

.queue-pagination svg{
    width:14px;
    height:14px;
}

@media(max-width:700px){
    .queue-pagination{
        align-items:flex-start;
        flex-direction:column;
    }

    .queue-pagination > div{
        flex-wrap:wrap;
    }
}

/* REPORTS REAL PAGE START */
.reports-page{
    display:grid;
    gap:18px;
}

.reports-filter-panel{
    padding:20px;
}

.reports-filter-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:22px;
    margin-bottom:18px;
}

.reports-filter-head h2{
    margin:5px 0 4px;
    font-size:20px;
}

.reports-filter-head p{
    margin:0;
    color:var(--muted);
    font-size:13px;
}

.reports-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:var(--blue);
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.reports-eyebrow svg{
    width:15px;
    height:15px;
}

.reports-period-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.reports-period-buttons button{
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--blue);
    padding:8px 11px;
    cursor:pointer;
    font-size:12px;
    font-weight:700;
}

.reports-period-buttons button:hover{
    border-color:var(--blue);
    background:#eef5ff;
}

.reports-filter-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:11px;
    align-items:end;
}

.reports-filter-grid label{
    display:grid;
    gap:6px;
}

.reports-filter-grid label > span{
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}

.reports-filter-grid input,
.reports-filter-grid select{
    width:100%;
    min-height:40px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fff;
    padding:0 10px;
    color:var(--text);
}

.reports-filter-actions{
    grid-column:1/-1;
    display:flex;
    justify-content:flex-end;
    gap:8px;
    padding-top:3px;
}

.reports-error{
    display:flex;
    align-items:center;
    gap:11px;
    border-color:rgba(199,55,55,.22);
    background:rgba(199,55,55,.06);
    color:#a92e2e;
}

.reports-error svg{
    width:21px;
    height:21px;
}

.reports-error div{
    display:grid;
    gap:3px;
}

.reports-kpi-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
}

.reports-kpi{
    display:flex;
    align-items:center;
    gap:13px;
    padding:16px;
}

.reports-kpi-icon{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:42px;
    height:42px;
    border-radius:13px;
    background:rgba(18,102,239,.1);
    color:var(--blue);
}

.reports-kpi-icon.success{
    background:rgba(21,148,71,.1);
    color:var(--green);
}

.reports-kpi-icon.warning{
    background:rgba(190,126,32,.11);
    color:#a3640c;
}

.reports-kpi-icon.danger{
    background:rgba(199,55,55,.1);
    color:#c73737;
}

.reports-kpi-icon.info{
    background:rgba(74,95,130,.1);
    color:#52627f;
}

.reports-kpi-icon svg{
    width:20px;
    height:20px;
}

.reports-kpi > div{
    min-width:0;
    display:grid;
}

.reports-kpi small{
    color:var(--muted);
    font-size:11px;
}

.reports-kpi strong{
    margin:2px 0;
    color:var(--navy);
    font-size:22px;
    line-height:1.1;
}

.reports-kpi span{
    color:var(--muted);
    font-size:11px;
}

.reports-trend-panel,
.reports-table-panel{
    padding:0;
    overflow:hidden;
}

.reports-panel-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:17px 18px;
    border-bottom:1px solid var(--line);
}

.reports-panel-head h3{
    margin:0 0 3px;
    font-size:16px;
}

.reports-panel-head p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}

.reports-panel-head > span{
    color:var(--muted);
    font-size:11px;
}

.reports-chart{
    display:flex;
    align-items:flex-end;
    gap:8px;
    min-height:280px;
    padding:28px 20px 18px;
    overflow-x:auto;
}

.reports-chart-column{
    display:grid;
    grid-template-rows:220px auto auto;
    align-items:end;
    justify-items:center;
    flex:1 0 42px;
    min-width:42px;
    gap:6px;
}

.reports-chart-bar{
    align-self:end;
    display:flex;
    flex-direction:column-reverse;
    width:22px;
    height:var(--bar-height,20px);
    min-height:20px;
    overflow:hidden;
    border-radius:7px 7px 2px 2px;
    background:#dfe8f5;
    box-shadow:0 3px 10px rgba(24,74,132,.08);
}

.reports-chart-bar span{
    width:100%;
}

.reports-chart-bar .sent{
    background:var(--green);
}

.reports-chart-bar .deferred{
    background:#d18a1c;
}

.reports-chart-bar .failed{
    background:#c73737;
}

.reports-chart-column strong{
    font-size:11px;
}

.reports-chart-column small{
    color:var(--muted);
    font-size:10px;
    white-space:nowrap;
}

.reports-chart-legend{
    display:flex;
    justify-content:center;
    gap:18px;
    padding:0 18px 17px;
    color:var(--muted);
    font-size:11px;
}

.reports-chart-legend span{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.reports-chart-legend i{
    width:8px;
    height:8px;
    border-radius:50%;
}

.reports-chart-legend i.sent{
    background:var(--green);
}

.reports-chart-legend i.deferred{
    background:#d18a1c;
}

.reports-chart-legend i.failed{
    background:#c73737;
}

.reports-two-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.reports-table{
    min-width:650px;
}

.reports-table th{
    background:#f8fbff;
}

.reports-table td{
    vertical-align:middle;
}

.reports-table strong{
    color:var(--navy);
}

.reports-rate{
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    background:rgba(21,148,71,.1);
    color:var(--green);
    font-size:11px;
    font-weight:800;
}

.reports-status{
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
}

.reports-status-deferred{
    background:rgba(190,126,32,.11);
    color:#9a5b0b;
}

.reports-status-bounced,
.reports-status-expired{
    background:rgba(199,55,55,.1);
    color:#b72f2f;
}

.reports-response{
    max-width:700px;
    white-space:normal;
    line-height:1.45;
}

.reports-empty{
    display:grid;
    place-items:center;
    gap:6px;
    min-height:210px;
    padding:28px;
    color:var(--muted);
    text-align:center;
}

.reports-empty.compact{
    min-height:120px;
}

.reports-empty svg{
    width:28px;
    height:28px;
}

@media(max-width:1250px){
    .reports-filter-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .reports-kpi-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:900px){
    .reports-two-columns{
        grid-template-columns:1fr;
    }

    .reports-filter-head{
        flex-direction:column;
    }

    .reports-kpi-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:650px){
    .reports-filter-grid{
        grid-template-columns:1fr;
    }

    .reports-kpi-grid{
        grid-template-columns:1fr;
    }

    .reports-filter-actions{
        flex-direction:column-reverse;
    }

    .reports-filter-actions .btn{
        text-align:center;
    }
}
/* REPORTS REAL PAGE END */

/* Report: flusso Siria Hub verso nodi SMTP */
.reports-flow-explanation{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    padding:14px 18px 0;
    color:var(--muted);
    font-size:11px;
}

.reports-flow-explanation span{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.reports-flow-explanation i{
    width:10px;
    height:10px;
    border-radius:3px;
}

.reports-flow-explanation i.siria{
    background:var(--navy);
}

.reports-flow-explanation i.nodes{
    background:var(--blue);
}

.reports-flow-chart{
    display:flex;
    align-items:flex-end;
    gap:22px;
    min-height:330px;
    padding:28px 22px 20px;
    overflow-x:auto;
}

.reports-flow-day{
    display:grid;
    justify-items:center;
    flex:1 0 115px;
    min-width:115px;
    gap:7px;
}

.reports-flow-bars{
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:13px;
    min-height:245px;
}

.reports-flow-bar-wrap{
    display:grid;
    grid-template-rows:auto 205px auto;
    justify-items:center;
    align-items:end;
    gap:5px;
}

.reports-flow-bar-wrap > strong{
    color:var(--navy);
    font-size:12px;
}

.reports-flow-bar-wrap > small{
    color:var(--muted);
    font-size:10px;
    font-weight:700;
}

.reports-flow-bar{
    align-self:end;
    width:25px;
    height:var(--bar-height,20px);
    min-height:20px;
    overflow:hidden;
    border-radius:7px 7px 2px 2px;
}

.reports-flow-bar.siria{
    background:var(--navy);
}

.reports-flow-bar.nodes{
    display:flex;
    flex-direction:column-reverse;
    background:#dfe8f5;
}

.reports-flow-bar.nodes > span{
    display:block;
    width:100%;
    min-height:2px;
    background:var(--node-color);
}

.reports-flow-day > time{
    color:var(--text);
    font-size:11px;
    font-weight:800;
}

.reports-flow-match,
.reports-flow-mismatch{
    display:inline-flex;
    align-items:center;
    gap:4px;
    font-size:10px;
    font-weight:700;
    white-space:nowrap;
}

.reports-flow-match{
    color:var(--green);
}

.reports-flow-mismatch{
    color:#b5670d;
}

.reports-flow-match svg,
.reports-flow-mismatch svg{
    width:12px;
    height:12px;
}

.reports-node-legend{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px 16px;
    padding:0 18px 18px;
    color:var(--muted);
    font-size:10px;
}

.reports-node-legend span{
    display:inline-flex;
    align-items:center;
    gap:5px;
}

.reports-node-legend i{
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--node-color);
}

/* LOGS REAL PAGE START */
.logs-page{
    display:grid;
    gap:18px;
}

.logs-source-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
}

.logs-source-card{
    display:flex;
    align-items:center;
    gap:13px;
    padding:16px;
    color:inherit;
    text-decoration:none;
    transition:
        border-color .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
}

.logs-source-card:hover,
.logs-source-card.active{
    border-color:var(--blue);
    transform:translateY(-1px);
    box-shadow:0 8px 22px rgba(25,67,117,.08);
}

.logs-source-card.active{
    background:#f3f8ff;
}

.logs-source-icon{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:42px;
    height:42px;
    border-radius:13px;
    background:rgba(18,102,239,.1);
    color:var(--blue);
}

.logs-source-icon svg{
    width:20px;
    height:20px;
}

.logs-source-card > div{
    display:grid;
    min-width:0;
}

.logs-source-card small,
.logs-source-card span{
    color:var(--muted);
    font-size:11px;
}

.logs-source-card strong{
    margin:2px 0;
    color:var(--navy);
    font-size:21px;
    line-height:1.05;
}

.logs-filter-panel{
    padding:20px;
}

.logs-filter-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:18px;
}

.logs-filter-head h2{
    margin:5px 0 4px;
    font-size:20px;
}

.logs-filter-head p{
    margin:0;
    color:var(--muted);
    font-size:13px;
}

.logs-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:var(--blue);
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.logs-eyebrow svg{
    width:15px;
    height:15px;
}

.logs-generated{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--muted);
    font-size:11px;
    white-space:nowrap;
}

.logs-generated svg{
    width:14px;
    height:14px;
}

.logs-filter-grid{
    display:grid;
    grid-template-columns:minmax(280px,2fr) repeat(3,minmax(150px,1fr));
    gap:11px;
    align-items:end;
}

.logs-filter-grid label{
    display:grid;
    gap:6px;
}

.logs-filter-grid label > span{
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}

.logs-filter-grid input,
.logs-filter-grid select{
    width:100%;
    min-height:40px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fff;
    padding:0 10px;
    color:var(--text);
}

.logs-search-input{
    position:relative;
}

.logs-search-input svg{
    position:absolute;
    top:50%;
    left:11px;
    width:16px;
    height:16px;
    color:var(--muted);
    transform:translateY(-50%);
    pointer-events:none;
}

.logs-search-input input{
    padding-left:36px;
}

.logs-filter-actions{
    grid-column:1/-1;
    display:flex;
    justify-content:flex-end;
    gap:8px;
}

.logs-error-box{
    display:flex;
    align-items:center;
    gap:11px;
    border-color:rgba(199,55,55,.22);
    background:rgba(199,55,55,.06);
    color:#a92e2e;
}

.logs-error-box svg{
    width:21px;
    height:21px;
}

.logs-error-box div{
    display:grid;
    gap:3px;
}

.logs-table-panel{
    padding:0;
    overflow:hidden;
}

.logs-table-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:17px 18px;
    border-bottom:1px solid var(--line);
}

.logs-table-head h3{
    margin:0 0 3px;
    font-size:16px;
}

.logs-table-head p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}

.logs-severity-legend{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    color:var(--muted);
    font-size:10px;
}

.logs-severity-legend span{
    display:inline-flex;
    align-items:center;
    gap:5px;
}

.logs-severity-legend i{
    width:8px;
    height:8px;
    border-radius:50%;
}

.logs-severity-legend i.info{
    background:#75839a;
}

.logs-severity-legend i.success{
    background:var(--green);
}

.logs-severity-legend i.warning{
    background:#d18a1c;
}

.logs-severity-legend i.error{
    background:#c73737;
}

.logs-table{
    min-width:1280px;
}

.logs-table th{
    background:#f8fbff;
}

.logs-table td{
    vertical-align:top;
}

.logs-row-info{
    --log-accent:#75839a;
}

.logs-row-success{
    --log-accent:var(--green);
}

.logs-row-warning{
    --log-accent:#d18a1c;
}

.logs-row-error{
    --log-accent:#c73737;
}

.logs-row td:first-child{
    border-left:3px solid var(--log-accent);
}

.logs-date{
    white-space:nowrap;
}

.logs-date time{
    display:block;
    color:var(--navy);
    font-size:11px;
    font-weight:700;
}

.logs-date small{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:10px;
}

.logs-severity{
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
}

.logs-severity-info{
    background:rgba(117,131,154,.12);
    color:#59677d;
}

.logs-severity-success{
    background:rgba(21,148,71,.1);
    color:var(--green);
}

.logs-severity-warning{
    background:rgba(209,138,28,.12);
    color:#9a5d0b;
}

.logs-severity-error{
    background:rgba(199,55,55,.1);
    color:#b72f2f;
}

.logs-source-badge{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--navy);
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
}

.logs-source-badge svg{
    width:14px;
    height:14px;
    color:var(--blue);
}

.logs-process{
    color:#43526a;
    font-size:10px;
    white-space:nowrap;
}

.logs-references{
    display:grid;
    gap:7px;
}

.logs-references span{
    display:grid;
    gap:2px;
}

.logs-references small{
    color:var(--muted);
    font-size:9px;
    font-weight:700;
    text-transform:uppercase;
}

.logs-references code{
    color:var(--blue);
    font-size:10px;
    white-space:nowrap;
}

.logs-no-reference{
    color:var(--muted);
}

.logs-message-cell{
    min-width:420px;
    width:100%;
}

.logs-details summary{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    color:var(--text);
    font-size:11px;
    line-height:1.5;
    cursor:pointer;
    list-style:none;
}

.logs-details summary::-webkit-details-marker{
    display:none;
}

.logs-details summary svg{
    flex:0 0 auto;
    width:14px;
    height:14px;
    margin-top:2px;
    color:var(--muted);
    transition:transform .18s ease;
}

.logs-details[open] summary svg{
    transform:rotate(180deg);
}

.logs-detail-body{
    margin-top:12px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fbff;
}

.logs-detail-body dl{
    display:grid;
    gap:12px;
    margin:0;
}

.logs-detail-body dl > div{
    display:grid;
    gap:5px;
}

.logs-detail-body dt{
    color:var(--muted);
    font-size:9px;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.logs-detail-body dd{
    margin:0;
}

.logs-detail-body pre{
    margin:0;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    color:#38475d;
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:10px;
    line-height:1.55;
}

.logs-detail-body code{
    color:var(--blue);
    font-size:10px;
    overflow-wrap:anywhere;
}

.logs-pagination{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:15px 18px;
    border-top:1px solid var(--line);
}

.logs-pagination .btn{
    display:inline-flex;
    align-items:center;
    gap:5px;
}

.logs-pagination .btn svg{
    width:14px;
    height:14px;
}

.logs-pagination .btn.disabled{
    opacity:.4;
    pointer-events:none;
}

.logs-page-numbers{
    display:flex;
    align-items:center;
    gap:5px;
}

.logs-page-numbers a,
.logs-page-numbers span{
    display:grid;
    place-items:center;
    min-width:31px;
    height:31px;
    border-radius:8px;
    color:var(--muted);
    font-size:11px;
    font-weight:700;
    text-decoration:none;
}

.logs-page-numbers a:hover,
.logs-page-numbers a.active{
    background:var(--blue);
    color:#fff;
}

.logs-empty{
    display:grid;
    place-items:center;
    gap:6px;
    min-height:230px;
    padding:28px;
    color:var(--muted);
    text-align:center;
}

.logs-empty svg{
    width:29px;
    height:29px;
}

@media(max-width:1250px){
    .logs-source-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .logs-filter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .logs-search-field{
        grid-column:1/-1;
    }
}

@media(max-width:760px){
    .logs-source-grid,
    .logs-filter-grid{
        grid-template-columns:1fr;
    }

    .logs-filter-head,
    .logs-table-head,
    .logs-pagination{
        align-items:flex-start;
        flex-direction:column;
    }

    .logs-filter-actions{
        flex-direction:column-reverse;
    }

    .logs-filter-actions .btn{
        justify-content:center;
        text-align:center;
    }

    .logs-page-numbers{
        flex-wrap:wrap;
    }
}
/* LOGS REAL PAGE END */

/* LOGS PERIOD AND LIMITS START */
.logs-period-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:14px;
    padding:11px 12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f8fbff;
}

.logs-period-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.logs-period-buttons a{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:0 11px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--blue);
    font-size:11px;
    font-weight:800;
    text-decoration:none;
}

.logs-period-buttons a:hover,
.logs-period-buttons a.active{
    border-color:var(--blue);
    background:var(--blue);
    color:#fff;
}

.logs-retention-note{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--muted);
    font-size:10px;
    text-align:right;
}

.logs-retention-note svg{
    flex:0 0 auto;
    width:14px;
    height:14px;
}

.logs-limit-warning{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin:14px 18px 0;
    padding:11px 12px;
    border:1px solid rgba(209,138,28,.24);
    border-radius:9px;
    background:rgba(209,138,28,.08);
    color:#81510b;
    font-size:11px;
    line-height:1.5;
}

.logs-limit-warning svg{
    flex:0 0 auto;
    width:16px;
    height:16px;
    margin-top:1px;
}

@media(max-width:760px){
    .logs-period-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }

    .logs-retention-note{
        text-align:left;
    }
}
/* LOGS PERIOD AND LIMITS END */

/* LOGS SPACING FIX START */
.logs-table-panel{
    display:grid;
    gap:18px;
    padding-bottom:18px;
    overflow:hidden;
}

.logs-table-head{
    margin:0;
}

.logs-limit-warning{
    margin:0 18px;
}

.logs-table-panel > .table-wrap{
    margin:0 18px;
    border:1px solid var(--line);
    border-radius:12px;
    overflow:auto;
}

.logs-table{
    margin:0;
}

.logs-pagination{
    margin:0 18px;
    padding:15px 0 0;
}

.logs-empty{
    margin:0 18px;
    border:1px solid var(--line);
    border-radius:12px;
}

@media(max-width:760px){
    .logs-limit-warning,
    .logs-table-panel > .table-wrap,
    .logs-pagination,
    .logs-empty{
        margin-left:12px;
        margin-right:12px;
    }
}
/* LOGS SPACING FIX END */

/* BACKUP REAL PAGE START */
.backup-page{
    display:grid;
    gap:18px;
}

.backup-notice{
    display:flex;
    align-items:center;
    gap:10px;
    padding:14px 16px;
}

.backup-notice svg{
    width:19px;
    height:19px;
}

.backup-notice-success{
    border-color:rgba(21,148,71,.24);
    background:rgba(21,148,71,.07);
    color:var(--green);
}

.backup-notice-error{
    border-color:rgba(199,55,55,.24);
    background:rgba(199,55,55,.07);
    color:#b72f2f;
}

.backup-kpi-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.backup-kpi{
    display:flex;
    align-items:center;
    gap:14px;
    min-height:104px;
    padding:18px;
}

.backup-kpi-icon{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:44px;
    height:44px;
    border-radius:13px;
    background:rgba(18,102,239,.1);
    color:var(--blue);
}

.backup-kpi-icon.success{
    background:rgba(21,148,71,.1);
    color:var(--green);
}

.backup-kpi-icon.info{
    background:rgba(74,95,130,.1);
    color:#52627f;
}

.backup-kpi-icon.warning{
    background:rgba(209,138,28,.11);
    color:#a3640c;
}

.backup-kpi-icon svg{
    width:21px;
    height:21px;
}

.backup-kpi > div{
    display:grid;
    min-width:0;
}

.backup-kpi small,
.backup-kpi span{
    color:var(--muted);
    font-size:11px;
}

.backup-kpi strong{
    margin:3px 0;
    color:var(--navy);
    font-size:22px;
}

.backup-kpi .backup-kpi-date{
    font-size:14px;
}

.backup-actions-panel,
.backup-archive-panel,
.backup-destination-panel,
.backup-activity-panel{
    padding:0;
    overflow:hidden;
}

.backup-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:18px 20px;
    border-bottom:1px solid var(--line);
}

.backup-section-head h2{
    margin:0 0 4px;
    font-size:17px;
}

.backup-section-head p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}

.backup-section-head > span{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:11px;
    background:rgba(18,102,239,.09);
    color:var(--blue);
}

.backup-section-head > span svg{
    width:18px;
    height:18px;
}

.backup-action-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    padding:20px;
}

.backup-action-card{
    display:grid;
    grid-template-rows:auto 1fr auto;
    gap:13px;
    min-height:225px;
    padding:17px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fff;
}

.backup-action-card > span{
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:12px;
    background:#eef5ff;
    color:var(--blue);
}

.backup-action-card > span svg{
    width:20px;
    height:20px;
}

.backup-action-card strong{
    color:var(--navy);
    font-size:14px;
}

.backup-action-card p{
    margin:7px 0 0;
    color:var(--muted);
    font-size:11px;
    line-height:1.55;
}

.backup-action-card .btn{
    justify-content:center;
}

.backup-table-wrap{
    margin:20px;
    overflow:auto;
    border:1px solid var(--line);
    border-radius:12px;
}

.backup-table{
    width:100%;
    min-width:1100px;
    margin:0;
}

.backup-table th{
    background:#f8fbff;
}

.backup-table td{
    vertical-align:middle;
}

.backup-table td > strong{
    display:block;
    color:var(--navy);
    font-size:11px;
}

.backup-table td > small{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:9px;
}

.backup-table code{
    color:#43526a;
    font-size:10px;
}

.backup-type-badge,
.backup-integrity{
    display:inline-flex;
    padding:5px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
}

.backup-type-badge{
    background:#eef5ff;
    color:var(--blue);
}

.backup-integrity-valid{
    background:rgba(21,148,71,.1);
    color:var(--green);
}

.backup-integrity-invalid{
    background:rgba(199,55,55,.1);
    color:#b72f2f;
}

.backup-integrity-not_verified{
    background:rgba(209,138,28,.11);
    color:#985c0c;
}

.backup-row-actions{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.backup-row-actions .btn{
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:34px;
    padding:0 9px;
    font-size:10px;
}

.backup-row-actions .btn svg{
    width:13px;
    height:13px;
}

.backup-row-actions .btn.danger{
    border-color:rgba(199,55,55,.26);
    color:#b72f2f;
}

.backup-empty{
    display:grid;
    place-items:center;
    gap:7px;
    min-height:190px;
    margin:20px;
    padding:30px;
    border:1px dashed var(--line);
    border-radius:12px;
    color:var(--muted);
    text-align:center;
}

.backup-empty.compact{
    min-height:120px;
}

.backup-empty svg{
    width:30px;
    height:30px;
}

.backup-lower-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);
    gap:18px;
}

.backup-destination-card{
    display:flex;
    align-items:center;
    gap:13px;
    margin:20px;
    padding:15px;
    border:1px solid var(--line);
    border-radius:12px;
}

.backup-destination-icon{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:42px;
    height:42px;
    border-radius:12px;
    background:#eef5ff;
    color:var(--blue);
}

.backup-destination-card > div{
    display:grid;
    flex:1;
    gap:3px;
    min-width:0;
}

.backup-destination-card strong{
    color:var(--navy);
    font-size:13px;
}

.backup-destination-card code{
    color:#43526a;
    font-size:10px;
    overflow-wrap:anywhere;
}

.backup-destination-card small{
    color:var(--muted);
    font-size:10px;
}

.backup-status-pill{
    padding:5px 9px;
    border-radius:999px;
    background:rgba(21,148,71,.1);
    color:var(--green);
    font-size:10px;
    font-weight:800;
}

.backup-remote-note{
    display:flex;
    gap:10px;
    margin:0 20px 20px;
    padding:14px;
    border-radius:11px;
    background:#f8fbff;
    color:var(--muted);
}

.backup-remote-note svg{
    flex:0 0 auto;
    width:18px;
    height:18px;
    color:var(--blue);
}

.backup-remote-note div{
    display:grid;
    gap:3px;
}

.backup-remote-note strong{
    color:var(--navy);
    font-size:11px;
}

.backup-remote-note span{
    font-size:10px;
    line-height:1.5;
}

.backup-activity-list{
    display:grid;
    gap:10px;
    padding:20px;
}

.backup-activity-list article{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:11px;
    border:1px solid var(--line);
    border-radius:10px;
}

.backup-activity-icon{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:30px;
    height:30px;
    border-radius:9px;
}

.backup-activity-icon-success{
    background:rgba(21,148,71,.1);
    color:var(--green);
}

.backup-activity-icon-failed{
    background:rgba(199,55,55,.1);
    color:#b72f2f;
}

.backup-activity-icon svg{
    width:15px;
    height:15px;
}

.backup-activity-list article > div{
    display:grid;
    gap:3px;
}

.backup-activity-list strong{
    color:var(--navy);
    font-size:11px;
}

.backup-activity-list span,
.backup-activity-list small{
    color:var(--muted);
    font-size:10px;
}

@media(max-width:1250px){
    .backup-kpi-grid,
    .backup-action-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:850px){
    .backup-lower-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .backup-kpi-grid,
    .backup-action-grid{
        grid-template-columns:1fr;
    }

    .backup-action-grid,
    .backup-table-wrap,
    .backup-destination-card,
    .backup-remote-note,
    .backup-activity-list{
        margin-left:12px;
        margin-right:12px;
    }
}
/* BACKUP REAL PAGE END */

/* BACKUP OPERATION FEEDBACK START */
.backup-operation-overlay{
    position:fixed;
    inset:0;
    z-index:9999;
    display:grid;
    place-items:center;
    padding:20px;
    background:rgba(12,29,53,.38);
    backdrop-filter:blur(3px);
}

.backup-operation-overlay[hidden]{
    display:none;
}

.backup-operation-dialog{
    display:flex;
    align-items:center;
    gap:16px;
    width:min(440px,100%);
    padding:22px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:16px;
    background:#fff;
    box-shadow:0 22px 70px rgba(12,29,53,.22);
}

.backup-operation-spinner{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:48px;
    height:48px;
    border-radius:14px;
    background:#eef5ff;
    color:var(--blue);
}

.backup-operation-spinner svg{
    width:24px;
    height:24px;
    animation:backupSpin .85s linear infinite;
}

.backup-operation-dialog > div{
    display:grid;
    gap:5px;
}

.backup-operation-dialog strong{
    color:var(--navy);
    font-size:15px;
}

.backup-operation-dialog span{
    color:var(--muted);
    font-size:11px;
    line-height:1.5;
}

.backup-operation-form.is-processing{
    pointer-events:none;
    opacity:.68;
}

.backup-operation-form.is-processing button[type="submit"]{
    cursor:wait;
}

.backup-operation-form.is-processing button[type="submit"] svg{
    animation:backupSpin .85s linear infinite;
}

@keyframes backupSpin{
    to{
        transform:rotate(360deg);
    }
}
/* BACKUP OPERATION FEEDBACK END */

/* BACKUP NOTICE AUTO DISMISS START */
.backup-notice{
    position:relative;
    transition:
        opacity .28s ease,
        transform .28s ease,
        max-height .32s ease,
        margin .32s ease,
        padding .32s ease;
    overflow:hidden;
}

.backup-notice.is-hiding{
    opacity:0;
    transform:translateY(-8px);
    max-height:0;
    margin:0;
    padding-top:0;
    padding-bottom:0;
    border-width:0;
}

.backup-notice-close{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:32px;
    height:32px;
    margin-left:auto;
    padding:0;
    border:0;
    border-radius:9px;
    background:transparent;
    color:currentColor;
    cursor:pointer;
    opacity:.7;
}

.backup-notice-close:hover{
    background:rgba(0,0,0,.06);
    opacity:1;
}

.backup-notice-close svg{
    width:17px;
    height:17px;
}
/* BACKUP NOTICE AUTO DISMISS END */

/* BACKUP VERIFIED BUTTON START */
.backup-verified-button,
.backup-verified-button:disabled{
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:34px;
    padding:0 9px;
    border-color:rgba(21,148,71,.22);
    background:rgba(21,148,71,.08);
    color:var(--green);
    font-size:10px;
    cursor:default;
    opacity:1;
}

.backup-verified-button svg{
    width:13px;
    height:13px;
}
/* BACKUP VERIFIED BUTTON END */

/* BACKUP SCHEDULE PANEL START */
.backup-schedule-panel{
    padding:0;
    overflow:hidden;
}

.backup-schedule-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    padding:20px;
}

.backup-schedule-card{
    display:flex;
    align-items:flex-start;
    gap:13px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fff;
}

.backup-schedule-icon{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:42px;
    height:42px;
    border-radius:12px;
    background:#eef5ff;
    color:var(--blue);
}

.backup-schedule-icon svg{
    width:20px;
    height:20px;
}

.backup-schedule-content{
    display:grid;
    flex:1;
    gap:5px;
    min-width:0;
}

.backup-schedule-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.backup-schedule-title strong{
    color:var(--navy);
    font-size:13px;
}

.backup-schedule-content > span{
    color:#4c5c73;
    font-size:11px;
}

.backup-schedule-content > small{
    color:var(--muted);
    font-size:10px;
}

.backup-schedule-content dl{
    display:grid;
    gap:7px;
    margin:9px 0 0;
    padding-top:10px;
    border-top:1px solid var(--line);
}

.backup-schedule-content dl div{
    display:flex;
    justify-content:space-between;
    gap:12px;
}

.backup-schedule-content dt,
.backup-schedule-content dd{
    margin:0;
    font-size:9px;
}

.backup-schedule-content dt{
    color:var(--muted);
}

.backup-schedule-content dd{
    color:var(--navy);
    font-weight:700;
    text-align:right;
}

.backup-status-off{
    background:rgba(199,55,55,.1);
    color:#b72f2f;
}

.backup-retention-panel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin:0 20px 20px;
    padding:15px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#f8fbff;
}

.backup-retention-panel > div{
    display:flex;
    align-items:center;
    gap:11px;
}

.backup-retention-panel > div > svg{
    flex:0 0 auto;
    width:20px;
    height:20px;
    color:var(--blue);
}

.backup-retention-panel > div > div{
    display:grid;
    gap:3px;
}

.backup-retention-panel strong{
    color:var(--navy);
    font-size:11px;
}

.backup-retention-panel span{
    color:var(--muted);
    font-size:10px;
}

.backup-retention-panel ul{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:7px;
    margin:0;
    padding:0;
    list-style:none;
}

.backup-retention-panel li{
    padding:6px 9px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#fff;
    color:var(--muted);
    font-size:9px;
}

.backup-retention-panel li strong{
    margin-right:3px;
    color:var(--blue);
}

@media(max-width:1100px){
    .backup-schedule-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){
    .backup-retention-panel{
        align-items:flex-start;
        flex-direction:column;
    }

    .backup-retention-panel ul{
        justify-content:flex-start;
    }
}
/* BACKUP SCHEDULE PANEL END */

/* BACKUP RESTORE DIALOG START */
.backup-restore-open:disabled{
    cursor:not-allowed;
    opacity:.45;
}

.backup-restore-dialog{
    width:min(680px,calc(100% - 30px));
    max-height:calc(100vh - 40px);
    padding:0;
    border:0;
    border-radius:17px;
    background:#fff;
    box-shadow:0 28px 90px rgba(12,29,53,.3);
    overflow:auto;
}

.backup-restore-dialog::backdrop{
    background:rgba(12,29,53,.48);
    backdrop-filter:blur(3px);
}

.backup-restore-form{
    display:grid;
}

.backup-restore-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    padding:20px;
    border-bottom:1px solid var(--line);
}

.backup-restore-head > div{
    display:flex;
    align-items:flex-start;
    gap:13px;
}

.backup-restore-head > div > span{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:42px;
    height:42px;
    border-radius:12px;
    background:rgba(199,55,55,.09);
    color:#b72f2f;
}

.backup-restore-head svg{
    width:20px;
    height:20px;
}

.backup-restore-head h2{
    margin:0 0 5px;
    color:var(--navy);
    font-size:17px;
}

.backup-restore-head p{
    margin:0;
    color:var(--muted);
    font-size:11px;
    line-height:1.55;
}

.backup-restore-close{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:34px;
    height:34px;
    padding:0;
    border:0;
    border-radius:10px;
    background:#f4f7fb;
    color:var(--muted);
    cursor:pointer;
}

.backup-restore-summary{
    padding:18px 20px 0;
}

.backup-restore-summary dl{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin:0;
}

.backup-restore-summary dl div{
    display:grid;
    gap:4px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f8fbff;
}

.backup-restore-summary dt{
    color:var(--muted);
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.backup-restore-summary dd{
    margin:0;
    color:var(--navy);
    font-size:11px;
    font-weight:700;
    overflow-wrap:anywhere;
}

.backup-restore-fields{
    display:grid;
    gap:15px;
    padding:18px 20px 20px;
}

.backup-restore-fields label{
    display:grid;
    gap:7px;
}

.backup-restore-fields label > span{
    color:var(--navy);
    font-size:11px;
    font-weight:700;
}

.backup-restore-fields select,
.backup-restore-fields input{
    width:100%;
    min-height:42px;
    padding:0 12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
    color:var(--navy);
    outline:none;
}

.backup-restore-fields select:focus,
.backup-restore-fields input:focus{
    border-color:rgba(18,102,239,.45);
    box-shadow:0 0 0 3px rgba(18,102,239,.08);
}

.backup-restore-warning{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:13px;
    border:1px solid rgba(199,55,55,.2);
    border-radius:11px;
    background:rgba(199,55,55,.06);
}

.backup-restore-warning > svg{
    flex:0 0 auto;
    width:18px;
    height:18px;
    color:#b72f2f;
}

.backup-restore-warning > div{
    display:grid;
    gap:3px;
}

.backup-restore-warning strong{
    color:#a92c2c;
    font-size:11px;
}

.backup-restore-warning span{
    color:#6b4a4a;
    font-size:10px;
    line-height:1.5;
}

.backup-restore-footer{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    padding:16px 20px;
    border-top:1px solid var(--line);
    background:#f8fbff;
}

.backup-restore-footer .btn.danger{
    border-color:#b72f2f;
    background:#b72f2f;
    color:#fff;
}

.backup-restore-footer .btn.danger:disabled{
    cursor:not-allowed;
    opacity:.45;
}

@media(max-width:600px){
    .backup-restore-summary dl{
        grid-template-columns:1fr;
    }
}
/* BACKUP RESTORE DIALOG END */

/* SETTINGS PAGE START */
.settings-page{
    display:grid;
    gap:18px;
}

.settings-notice{
    display:flex;
    align-items:center;
    gap:10px;
    padding:14px 16px;
}

.settings-notice-success{
    border-color:rgba(21,148,71,.24);
    background:rgba(21,148,71,.07);
    color:var(--green);
}

.settings-notice-error{
    border-color:rgba(199,55,55,.24);
    background:rgba(199,55,55,.07);
    color:#b72f2f;
}

.settings-form{
    display:grid;
    gap:18px;
}

.settings-main-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.settings-column{
    display:grid;
    align-content:start;
    gap:18px;
}

.settings-panel,
.settings-system-panel{
    padding:0;
    overflow:hidden;
}

.settings-panel-head{
    display:flex;
    align-items:center;
    gap:13px;
    padding:18px 20px;
    border-bottom:1px solid var(--line);
}

.settings-panel-head > span{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:40px;
    height:40px;
    border-radius:12px;
    background:#eef5ff;
    color:var(--blue);
}

.settings-panel-head svg{
    width:19px;
    height:19px;
}

.settings-panel-head h2{
    margin:0 0 4px;
    color:var(--navy);
    font-size:16px;
}

.settings-panel-head p{
    margin:0;
    color:var(--muted);
    font-size:11px;
}

.settings-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
    padding:20px;
}

.settings-field{
    display:grid;
    gap:7px;
}

.settings-field.full{
    grid-column:1 / -1;
}

.settings-field > span{
    color:var(--navy);
    font-size:11px;
    font-weight:700;
}

.settings-field input,
.settings-field select{
    width:100%;
    min-height:42px;
    padding:0 12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
    color:var(--navy);
    outline:none;
}

.settings-field input:focus,
.settings-field select:focus{
    border-color:rgba(18,102,239,.45);
    box-shadow:0 0 0 3px rgba(18,102,239,.08);
}

.settings-input-unit{
    display:flex;
    align-items:center;
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden;
}

.settings-input-unit input{
    min-width:0;
    border:0;
    border-radius:0;
}

.settings-input-unit > span{
    align-self:stretch;
    display:flex;
    align-items:center;
    padding:0 11px;
    border-left:1px solid var(--line);
    background:#f8fbff;
    color:var(--muted);
    font-size:9px;
    white-space:nowrap;
}

.settings-toggle-list{
    display:grid;
    padding:6px 20px;
}

.settings-toggle-row{
    position:relative;
    display:flex;
    align-items:center;
    gap:14px;
    min-height:70px;
    padding:13px 0;
    border-bottom:1px solid var(--line);
    cursor:pointer;
}

.settings-toggle-row:last-child{
    border-bottom:0;
}

.settings-toggle-row.full{
    grid-column:1 / -1;
    padding:13px;
    border:1px solid var(--line);
    border-radius:11px;
}

.settings-toggle-row.danger{
    background:rgba(199,55,55,.035);
}

.settings-toggle-row > span{
    display:grid;
    flex:1;
    gap:3px;
}

.settings-toggle-row strong{
    color:var(--navy);
    font-size:11px;
}

.settings-toggle-row small{
    color:var(--muted);
    font-size:10px;
}

.settings-toggle-row input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.settings-toggle-row > i{
    position:relative;
    flex:0 0 auto;
    width:40px;
    height:22px;
    border-radius:999px;
    background:#cfd7e3;
    transition:.2s ease;
}

.settings-toggle-row > i::after{
    content:"";
    position:absolute;
    top:3px;
    left:3px;
    width:16px;
    height:16px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 5px rgba(0,0,0,.16);
    transition:.2s ease;
}

.settings-toggle-row input:checked + i{
    background:var(--blue);
}

.settings-toggle-row input:checked + i::after{
    transform:translateX(18px);
}

.settings-save-bar{
    position:sticky;
    bottom:14px;
    z-index:20;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:14px 16px;
    border:1px solid var(--line);
    border-radius:13px;
    background:rgba(255,255,255,.96);
    box-shadow:0 14px 40px rgba(25,48,82,.12);
    backdrop-filter:blur(8px);
}

.settings-save-bar > div{
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--muted);
    font-size:10px;
}

.settings-save-bar svg{
    width:16px;
    height:16px;
}

.settings-service-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
    padding:20px;
}

.settings-service-grid article{
    display:flex;
    align-items:center;
    gap:9px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:11px;
}

.settings-service-grid article > div{
    display:grid;
    gap:2px;
}

.settings-service-grid strong{
    color:var(--navy);
    font-size:10px;
}

.settings-service-grid small{
    color:var(--muted);
    font-size:9px;
}

.settings-service-dot{
    flex:0 0 auto;
    width:9px;
    height:9px;
    border-radius:50%;
    background:#c73737;
    box-shadow:0 0 0 4px rgba(199,55,55,.08);
}

.settings-service-dot.active{
    background:var(--green);
    box-shadow:0 0 0 4px rgba(21,148,71,.08);
}

.settings-info-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    padding:0 20px 20px;
}

.settings-info-grid div{
    display:grid;
    gap:4px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f8fbff;
}

.settings-info-grid span{
    color:var(--muted);
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.settings-info-grid strong{
    color:var(--navy);
    font-size:10px;
    overflow-wrap:anywhere;
}

.settings-security-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:0 20px 20px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:11px;
}

.settings-security-summary > div{
    display:flex;
    align-items:center;
    gap:10px;
}

.settings-security-summary > div > svg{
    width:20px;
    height:20px;
    color:var(--green);
}

.settings-security-summary > div > span{
    display:grid;
    gap:3px;
}

.settings-security-summary strong{
    color:var(--navy);
    font-size:11px;
}

.settings-security-summary small{
    color:var(--muted);
    font-size:9px;
}

.settings-security-summary ul{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:7px;
    margin:0;
    padding:0;
    list-style:none;
}

.settings-security-summary li{
    padding:6px 9px;
    border-radius:999px;
    background:#f3f7fc;
    color:var(--muted);
    font-size:9px;
}

.settings-security-summary li strong{
    margin-right:3px;
    color:var(--blue);
}

@media(max-width:1100px){
    .settings-main-grid{
        grid-template-columns:1fr;
    }

    .settings-service-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .settings-fields,
    .settings-info-grid{
        grid-template-columns:1fr;
    }

    .settings-field.full{
        grid-column:auto;
    }

    .settings-service-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .settings-save-bar,
    .settings-security-summary{
        align-items:flex-start;
        flex-direction:column;
    }

    .settings-security-summary ul{
        justify-content:flex-start;
    }
}
/* SETTINGS PAGE END */

/* SETTINGS NOTICE AUTO DISMISS START */
.settings-notice{
    position:relative;
    overflow:hidden;
    transition:
        opacity .28s ease,
        transform .28s ease,
        max-height .32s ease,
        margin .32s ease,
        padding .32s ease;
}

.settings-notice.is-hiding{
    opacity:0;
    transform:translateY(-8px);
    max-height:0;
    margin:0;
    padding-top:0;
    padding-bottom:0;
    border-width:0;
}

.settings-notice-close{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:32px;
    height:32px;
    margin-left:auto;
    padding:0;
    border:0;
    border-radius:9px;
    background:transparent;
    color:currentColor;
    cursor:pointer;
    opacity:.72;
}

.settings-notice-close:hover{
    background:rgba(0,0,0,.06);
    opacity:1;
}

.settings-notice-close svg{
    width:17px;
    height:17px;
}
/* SETTINGS NOTICE AUTO DISMISS END */

/* SETTINGS OPERATIONAL EFFECTS START */
.maintenance-global-banner{
    display:flex;
    align-items:center;
    gap:11px;
    margin:14px 18px 0;
    padding:13px 15px;
    border:1px solid rgba(199,55,55,.22);
    border-radius:12px;
    background:rgba(199,55,55,.07);
    color:#a92c2c;
}

.maintenance-global-banner > svg{
    flex:0 0 auto;
    width:20px;
    height:20px;
}

.maintenance-global-banner > div{
    display:grid;
    gap:3px;
}

.maintenance-global-banner strong{
    font-size:11px;
}

.maintenance-global-banner span{
    font-size:10px;
}

body.density-compact table th,
body.density-compact table td{
    padding-top:7px;
    padding-bottom:7px;
}

body.density-comfortable table th,
body.density-comfortable table td{
    padding-top:11px;
    padding-bottom:11px;
}

body.density-spacious table th,
body.density-spacious table td{
    padding-top:16px;
    padding-bottom:16px;
}
/* SETTINGS OPERATIONAL EFFECTS END */

/* SETTINGS SMTP NOTIFICATIONS START */
.settings-smtp-panel{
    margin-top:18px;
}

.settings-smtp-scope{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:0 0 18px;
    padding:12px 14px;
    border:1px solid rgba(27,112,165,.18);
    border-radius:11px;
    background:rgba(27,112,165,.06);
    color:#31566d;
    font-size:12px;
    line-height:1.5;
}

.settings-smtp-scope svg{
    flex:0 0 auto;
    width:18px;
    height:18px;
}

.settings-password-status{
    display:block;
    margin-top:6px;
    color:#70808d;
    font-size:10px;
}

.settings-smtp-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid rgba(21,43,58,.09);
}

.settings-smtp-actions small{
    color:#70808d;
    font-size:10px;
}

.settings-smtp-actions .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.settings-smtp-actions .btn svg{
    width:16px;
    height:16px;
}
/* SETTINGS SMTP NOTIFICATIONS END */

/* SETTINGS SMTP SPACING FIX START */
.settings-smtp-panel{
    padding:24px;
}

.settings-smtp-panel .settings-panel-head{
    margin-bottom:20px;
}

.settings-smtp-panel .settings-smtp-scope{
    margin:0 0 22px;
}

.settings-smtp-panel .settings-fields{
    gap:18px;
}

.settings-smtp-panel .settings-toggle-row{
    margin-bottom:2px;
}

.settings-smtp-panel .settings-smtp-actions{
    margin:24px -24px -24px;
    padding:18px 24px;
}

.settings-smtp-panel .settings-field{
    margin:0;
}
/* SETTINGS SMTP SPACING FIX END */

/* SETTINGS SMTP FINAL LAYOUT START */
.settings-smtp-panel,
.settings-save-bar{
    width:100%;
    max-width:1380px;
    margin-left:auto;
    margin-right:auto;
}

.settings-smtp-panel{
    padding:28px 32px;
}

.settings-smtp-panel .settings-panel-head{
    padding-bottom:18px;
    margin-bottom:20px;
    border-bottom:1px solid rgba(21,43,58,.08);
}

.settings-smtp-panel .settings-smtp-scope{
    margin-bottom:26px;
}

.settings-smtp-panel .settings-fields{
    column-gap:24px;
    row-gap:20px;
}

.settings-smtp-panel .settings-smtp-actions{
    margin:28px -32px -28px;
    padding:18px 32px;
}

.settings-save-bar{
    margin-top:18px;
    padding:16px 20px;
}

@media (max-width:900px){
    .settings-smtp-panel{
        padding:22px 18px;
    }

    .settings-smtp-panel .settings-smtp-actions{
        margin:24px -18px -22px;
        padding:16px 18px;
        align-items:flex-start;
        flex-direction:column;
    }
}
/* SETTINGS SMTP FINAL LAYOUT END */

/* SETTINGS SMTP UNIFORMITY FIX START */
.settings-smtp-panel,
.settings-save-bar{
    width:100%;
    max-width:none;
    margin-left:0;
    margin-right:0;
}

.settings-smtp-panel{
    margin-top:18px;
    padding:0;
}

.settings-smtp-panel .settings-panel-head{
    margin:0;
    padding:18px 20px;
    border-bottom:1px solid rgba(21,43,58,.08);
}

.settings-smtp-panel .settings-smtp-scope{
    margin:18px 20px;
    padding:11px 13px;
}

.settings-smtp-panel .settings-fields{
    padding:0 20px 20px;
    column-gap:16px;
    row-gap:14px;
}

.settings-smtp-panel .settings-toggle-row{
    margin:0;
}

.settings-smtp-panel .settings-smtp-actions{
    margin:0;
    padding:14px 20px;
    border-top:1px solid rgba(21,43,58,.09);
}

.settings-save-bar{
    margin-top:18px;
}
/* SETTINGS SMTP UNIFORMITY FIX END */

/* SETTINGS VERTICAL SPACING UNIFORMITY START */
.settings-form{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.settings-form > .settings-main-grid,
.settings-form > .settings-smtp-panel,
.settings-form > .settings-save-bar{
    margin-top:0 !important;
    margin-bottom:0 !important;
}
/* SETTINGS VERTICAL SPACING UNIFORMITY END */

/* SYSTEM COMPLETE PAGE START */
.system-page{
    display:grid;
    gap:18px;
}

.system-overview-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:14px;
}

.system-stat-card{
    display:flex;
    align-items:center;
    gap:13px;
    min-width:0;
    padding:18px;
}

.system-stat-icon{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:42px;
    height:42px;
    border-radius:12px;
    background:rgba(24,104,163,.08);
}

.system-stat-icon svg{
    width:20px;
    height:20px;
}

.system-stat-card div{
    min-width:0;
}

.system-stat-card small,
.system-stat-card p{
    display:block;
    margin:0;
    overflow:hidden;
    color:#72818c;
    font-size:10px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.system-stat-card strong{
    display:block;
    margin:4px 0;
    font-size:20px;
}

.system-grid{
    display:grid;
    gap:18px;
}

.system-grid.two{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.system-grid.three{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.system-panel{
    padding:0;
    overflow:hidden;
}

.system-panel-head{
    display:flex;
    align-items:center;
    gap:12px;
    padding:18px 20px;
    border-bottom:1px solid rgba(18,43,60,.08);
}

.system-panel-head > svg{
    flex:0 0 auto;
    width:20px;
    height:20px;
}

.system-panel-head h2,
.system-panel-head p{
    margin:0;
}

.system-panel-head h2{
    font-size:13px;
}

.system-panel-head p{
    margin-top:3px;
    color:#74828c;
    font-size:10px;
}

.system-data-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    padding:8px 20px 20px;
}

.system-data-grid > div{
    min-width:0;
    padding:12px 0;
    border-bottom:1px solid rgba(18,43,60,.06);
}

.system-data-grid > div:nth-child(odd){
    padding-right:18px;
}

.system-data-grid > div:nth-child(even){
    padding-left:18px;
    border-left:1px solid rgba(18,43,60,.06);
}

.system-data-grid span,
.system-data-grid strong{
    display:block;
}

.system-data-grid span{
    margin-bottom:4px;
    color:#73828d;
    font-size:10px;
}

.system-data-grid strong{
    overflow-wrap:anywhere;
    font-size:11px;
}

.resource-panel{
    padding-bottom:18px;
}

.system-progress{
    padding:18px 20px 8px;
}

.system-progress > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:9px;
    font-size:11px;
}

.system-progress > i{
    display:block;
    height:7px;
    overflow:hidden;
    border-radius:99px;
    background:rgba(20,45,61,.08);
}

.system-progress > i b{
    display:block;
    height:100%;
    border-radius:inherit;
    background:#2c8a67;
}

.system-progress > i b.warning{
    background:#d29330;
}

.system-progress > i b.danger{
    background:#c94d4d;
}

.system-definition-list{
    margin:8px 20px 0;
}

.system-definition-list > div{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:8px 0;
    border-bottom:1px solid rgba(18,43,60,.06);
    font-size:10px;
}

.system-definition-list dt{
    color:#73828d;
}

.system-definition-list dd{
    margin:0;
    text-align:right;
}

.system-service-table{
    padding:0 20px 18px;
}

.system-table-head,
.system-table-row{
    display:grid;
    grid-template-columns:1fr 130px 130px 2fr;
    align-items:center;
    gap:14px;
    min-width:0;
}

.system-table-head{
    padding:12px 0;
    color:#71808b;
    font-size:9px;
    font-weight:700;
    text-transform:uppercase;
}

.system-table-row{
    padding:12px 0;
    border-top:1px solid rgba(18,43,60,.06);
    font-size:10px;
}

.system-table-row code{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.system-status{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:10px;
}

.system-status i{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#c94d4d;
}

.system-status.active i{
    background:#2c9b6d;
}

.system-security-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    padding:18px 20px;
}

.system-security-kpis div{
    padding:13px;
    border:1px solid rgba(18,43,60,.08);
    border-radius:10px;
}

.system-security-kpis span,
.system-security-kpis strong{
    display:block;
}

.system-security-kpis span{
    color:#73828d;
    font-size:9px;
}

.system-security-kpis strong{
    margin-top:5px;
    font-size:18px;
}

.system-details{
    margin:0 20px 20px;
    border:1px solid rgba(18,43,60,.08);
    border-radius:10px;
}

.system-details summary{
    padding:12px 14px;
    cursor:pointer;
    font-size:10px;
    font-weight:700;
}

.system-code-list{
    max-height:180px;
    overflow:auto;
    padding:12px 14px;
    border-top:1px solid rgba(18,43,60,.08);
    font-family:monospace;
    font-size:9px;
    line-height:1.7;
}

.system-network-layout{
    display:grid;
    grid-template-columns:1fr 1.5fr;
    gap:24px;
    padding:18px 20px 20px;
}

.system-network-layout h3{
    margin:0 0 12px;
    font-size:11px;
}

.system-network-card{
    display:grid;
    gap:7px;
    padding:13px;
    border:1px solid rgba(18,43,60,.08);
    border-radius:10px;
}

.system-network-card > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.system-network-card small,
.system-network-card code{
    overflow-wrap:anywhere;
    font-size:9px;
}

.system-port-list{
    max-height:330px;
    overflow:auto;
}

.system-port-list > div{
    display:grid;
    grid-template-columns:55px 1fr 120px;
    gap:12px;
    padding:9px 0;
    border-bottom:1px solid rgba(18,43,60,.06);
    font-size:10px;
}

.system-node-grid,
.system-certificate-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    padding:18px 20px 20px;
}

.system-node-grid article{
    display:grid;
    gap:8px;
    padding:14px;
    border:1px solid rgba(18,43,60,.08);
    border-radius:11px;
}

.system-node-grid small,
.system-node-grid code{
    font-size:9px;
}

.system-simple-list{
    max-height:330px;
    overflow:auto;
    padding:8px 20px 18px;
}

.system-simple-list > div{
    display:flex;
    align-items:center;
    gap:9px;
    padding:10px 0;
    border-bottom:1px solid rgba(18,43,60,.06);
    font-size:10px;
}

.system-simple-list svg{
    flex:0 0 auto;
    width:15px;
    height:15px;
}

.system-certificate-grid article{
    display:flex;
    gap:12px;
    padding:14px;
    border:1px solid rgba(18,43,60,.08);
    border-radius:11px;
}

.system-certificate-grid svg{
    flex:0 0 auto;
    width:20px;
    height:20px;
}

.system-certificate-grid strong,
.system-certificate-grid span,
.system-certificate-grid small{
    display:block;
}

.system-certificate-grid span,
.system-certificate-grid small{
    margin-top:4px;
    color:#73828d;
    font-size:9px;
}

.system-log-list{
    display:grid;
    max-height:360px;
    overflow:auto;
    padding:10px 20px 20px;
}

.system-log-list code{
    padding:9px 0;
    border-bottom:1px solid rgba(18,43,60,.06);
    font-size:9px;
    line-height:1.5;
    white-space:normal;
}

.system-ok-message{
    display:flex;
    align-items:center;
    gap:9px;
    margin:18px 20px 20px;
    padding:13px;
    border:1px solid rgba(44,155,109,.18);
    border-radius:10px;
    background:rgba(44,155,109,.06);
    font-size:10px;
}

.system-ok-message svg{
    width:17px;
    height:17px;
}

.system-generated{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    color:#71808b;
    font-size:9px;
}

.system-generated svg{
    width:14px;
    height:14px;
}

.system-empty{
    display:flex;
    align-items:center;
    gap:10px;
    padding:18px;
}

@media(max-width:1300px){
    .system-overview-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .system-grid.three{
        grid-template-columns:1fr;
    }
}

@media(max-width:900px){
    .system-overview-grid,
    .system-grid.two,
    .system-network-layout,
    .system-node-grid,
    .system-certificate-grid{
        grid-template-columns:1fr;
    }

    .system-table-head{
        display:none;
    }

    .system-table-row{
        grid-template-columns:1fr;
        gap:7px;
    }

    .system-security-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
/* SYSTEM COMPLETE PAGE END */

/* =========================================================
   SIRIA NODE CONTROL CENTER
   ========================================================= */

.node-control-trigger{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:8px;
    background:transparent;
    color:var(--navy);
    cursor:pointer;
    text-decoration:none;
    transition:
        background-color .16s ease,
        color .16s ease,
        transform .16s ease;
}

.node-control-trigger:hover{
    background:#eef5ff;
    color:var(--blue);
}

.node-control-trigger:active{
    transform:scale(.96);
}

.node-control-trigger:focus-visible{
    outline:3px solid rgba(18,102,239,.24);
    outline-offset:2px;
}

.node-control-trigger svg{
    width:20px;
    height:20px;
}

.node-control-brand{
    height:auto;
    min-height:108px;
    padding:8px 0 14px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
}

.node-control-brand small{
    color:var(--blue);
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
}

.node-control-nav{
    display:block !important;
}

.node-control-section-title{
    margin:15px 13px 6px;
    color:#8a9ab1;
    font-size:9px;
    font-weight:900;
    letter-spacing:.12em;
}

.node-control-section-title:first-child{
    margin-top:2px;
}

.node-control-nav .nav{
    margin-bottom:4px;
}

.node-control-nav-locked{
    position:relative;
    color:#8a98ad;
    cursor:not-allowed;
    opacity:.72;
}

.node-control-nav-locked:hover{
    background:#f7f9fc;
    color:#8a98ad;
    transform:none;
}

.node-control-lock{
    width:14px;
    height:14px;
    margin-left:auto;
    flex:0 0 14px;
    color:#93a1b5;
}

.node-control-back{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:14px;
    padding:11px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fbfdff;
    color:var(--navy);
    text-decoration:none;
    transition:.16s ease;
}

.node-control-back:hover{
    border-color:#9abdf1;
    background:#eef5ff;
    color:var(--blue);
}

.node-control-back > svg{
    width:18px;
    height:18px;
    flex:0 0 18px;
}

.node-control-back > span{
    min-width:0;
    display:grid;
}

.node-control-back b{
    font-size:12px;
}

.node-control-back small{
    margin-top:2px;
    color:var(--muted);
    font-size:10px;
    line-height:1.3;
}

.node-control-page{
    display:grid;
    gap:14px;
}

.node-control-intro{
    display:flex;
    align-items:center;
    gap:14px;
}

.node-control-intro > div:nth-child(2){
    flex:1;
}

.node-control-intro h2{
    margin:0 0 4px;
}

.node-control-intro p{
    margin:0;
    color:var(--muted);
}

.node-control-intro-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#eef5ff;
    color:var(--blue);
}

.node-control-intro-icon svg{
    width:23px;
    height:23px;
}

.node-control-node-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-control-node-card{
    min-height:128px;
    position:relative;
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:center;
    gap:12px;
}

.node-control-node-card h3{
    margin:0 0 4px;
}

.node-control-node-card p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}

.node-control-node-icon{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:#eef5ff;
    color:var(--blue);
}

.node-control-node-icon svg{
    width:21px;
    height:21px;
}

.node-control-pending{
    grid-column:1 / -1;
    width:max-content;
    padding:4px 9px;
    border-radius:999px;
    background:#f3f5f8;
    color:#718096;
    font-size:10px;
    font-weight:800;
}

.node-control-development{
    min-height:360px;
    display:grid;
    place-items:center;
    align-content:center;
    text-align:center;
}

.node-control-development > svg{
    width:52px;
    height:52px;
    margin-bottom:13px;
    color:var(--blue);
}

.node-control-development h2{
    margin:0 0 7px;
}

.node-control-development > p{
    max-width:680px;
    margin:0;
    color:var(--muted);
    line-height:1.6;
}

.node-control-ready-modules{
    display:flex;
    justify-content:center;
    gap:9px;
    margin-top:18px;
}

.node-control-ready-modules span{
    display:flex;
    align-items:center;
    gap:7px;
    padding:8px 11px;
    border:1px solid #c9ddf8;
    border-radius:9px;
    background:#f7fbff;
    color:var(--blue);
    font-weight:800;
    font-size:12px;
}

.node-control-ready-modules svg{
    width:16px;
    height:16px;
}

.node-control-domain-matrix{
    width:min(900px,100%);
    margin-top:24px;
    display:grid;
    grid-template-columns:2fr repeat(4,1fr);
    border:1px solid var(--line);
    border-radius:12px;
    overflow:hidden;
    text-align:left;
}

.node-control-domain-matrix > div{
    padding:11px 12px;
    border-right:1px solid var(--line);
    background:#f8fbff;
    color:#52627f;
    font-size:11px;
    font-weight:800;
}

.node-control-domain-matrix > div:nth-child(5){
    border-right:0;
}

.node-control-domain-matrix .node-control-empty-row{
    grid-column:1 / -1;
    border-top:1px solid var(--line);
    border-right:0;
    background:#fff;
    color:var(--muted);
    text-align:center;
    font-weight:600;
}

@media(max-width:1200px){
    .node-control-node-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .node-control-node-grid{
        grid-template-columns:1fr;
    }

    .node-control-domain-matrix{
        grid-template-columns:1.6fr repeat(4,.8fr);
    }
}

/* NODE CONTROL SIDEBAR LAYOUT DEFINITIVO */
.node-control-shell{
    min-height:100vh;
    align-items:stretch;
}

.node-control-sidebar{
    position:relative;
    top:auto;
    height:auto;
    min-height:100vh;
    align-self:stretch;
    padding-bottom:20px;
    overflow:visible;
}

.node-control-sidebar .node-control-nav{
    flex:0 0 auto;
}

.node-control-sidebar .grow{
    flex:1 1 auto;
    min-height:24px;
}

.node-control-back{
    margin-top:14px;
    margin-bottom:0;
    flex:0 0 auto;
}


/* NODE CONTROL HEALTH CARDS */
.node-control-node-card{
    color:inherit;
    text-decoration:none;
    min-height:230px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.node-control-node-card:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(27,61,107,.10);
}

.node-health-head{
    display:grid;
    grid-template-columns:auto auto 1fr;
    align-items:center;
    gap:11px;
}

.node-health-title h3{
    margin:0;
}

.node-health-title strong{
    display:block;
    margin-top:3px;
    font-size:11px;
}

.node-health-light{
    width:12px;
    height:12px;
    border-radius:50%;
    display:inline-block;
    flex:0 0 12px;
}

.node-health-light.ok{
    background:#27a865;
    box-shadow:0 0 0 4px rgba(39,168,101,.12),0 0 15px rgba(39,168,101,.60);
    animation:nodeHealthGreen 1.8s ease-in-out infinite;
}

.node-health-light.warning{
    background:#d99b20;
    box-shadow:0 0 0 4px rgba(217,155,32,.12),0 0 15px rgba(217,155,32,.55);
    animation:nodeHealthWarning 1.8s ease-in-out infinite;
}

.node-health-light.critical{
    background:#d84b4b;
    box-shadow:0 0 0 4px rgba(216,75,75,.12),0 0 15px rgba(216,75,75,.55);
    animation:nodeHealthCritical 1.25s ease-in-out infinite;
}

@keyframes nodeHealthGreen{
    0%,100%{box-shadow:0 0 0 4px rgba(39,168,101,.10),0 0 8px rgba(39,168,101,.38)}
    50%{box-shadow:0 0 0 6px rgba(39,168,101,.08),0 0 20px rgba(39,168,101,.78)}
}

@keyframes nodeHealthWarning{
    0%,100%{box-shadow:0 0 0 4px rgba(217,155,32,.10),0 0 8px rgba(217,155,32,.35)}
    50%{box-shadow:0 0 0 6px rgba(217,155,32,.08),0 0 20px rgba(217,155,32,.70)}
}

@keyframes nodeHealthCritical{
    0%,100%{box-shadow:0 0 0 4px rgba(216,75,75,.10),0 0 8px rgba(216,75,75,.35)}
    50%{box-shadow:0 0 0 7px rgba(216,75,75,.08),0 0 22px rgba(216,75,75,.78)}
}

.node-health-ok{
    border-color:rgba(39,168,101,.23);
}

.node-health-warning{
    border-color:rgba(217,155,32,.35);
}

.node-health-critical{
    border-color:rgba(216,75,75,.38);
}

.node-health-ok .node-health-title strong{
    color:#218a55;
}

.node-health-warning .node-health-title strong{
    color:#b17912;
}

.node-health-critical .node-health-title strong{
    color:#bd3d3d;
}

.node-health-host{
    margin-top:15px;
    color:var(--muted);
    font-size:11px;
}

.node-health-services{
    display:flex;
    flex-wrap:wrap;
    gap:7px 12px;
    margin-top:14px;
}

.node-health-services span{
    display:flex;
    align-items:center;
    gap:5px;
    font-size:11px;
    font-weight:700;
}

.mini-state{
    width:7px;
    height:7px;
    border-radius:50%;
}

.mini-state.ok{
    background:#27a865;
}

.mini-state.bad{
    background:#d84b4b;
}

.node-health-meta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:15px;
}

.node-health-meta span{
    padding:8px 9px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fbff;
    font-size:11px;
}

.node-health-meta b{
    display:block;
    margin-bottom:2px;
    color:var(--muted);
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.node-health-footer{
    margin-top:auto;
    padding-top:15px;
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:10px;
    border-top:1px solid var(--line);
}

.node-health-footer small{
    color:var(--muted);
    font-size:9px;
}

.node-health-footer > span{
    display:flex;
    align-items:center;
    gap:4px;
    color:var(--blue);
    font-size:11px;
    font-weight:800;
}

.node-health-footer svg{
    width:14px;
    height:14px;
}

.node-health-status{
    margin-left:auto;
    padding:6px 10px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
}

.node-health-status-ok{
    background:#eaf8f1;
    color:#218a55;
}

.node-health-status-warning{
    background:#fff7e5;
    color:#a97111;
}

.node-health-status-critical{
    background:#fff0f0;
    color:#bc3c3c;
}

/* NODE CONTROL - DETTAGLIO NODO */
.node-detail-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-detail-grid-wide{
    grid-template-columns:2fr 1fr;
}

.node-detail-panel{
    min-width:0;
}

.node-detail-heading{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:17px;
}

.node-detail-heading > svg{
    width:21px;
    height:21px;
    flex:0 0 21px;
    color:var(--blue);
}

.node-detail-heading h3{
    margin:0;
    font-size:14px;
}

.node-detail-heading p{
    margin:3px 0 0;
    color:var(--muted);
    font-size:10px;
}

.node-detail-list{
    display:grid;
    gap:8px;
}

.node-detail-list > div{
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 10px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fbff;
}

.node-detail-list span{
    color:var(--muted);
    font-size:10px;
    font-weight:700;
}

.node-detail-list strong{
    text-align:right;
    font-size:10px;
}

.node-detail-state{
    display:inline-flex;
    align-items:center;
    width:max-content;
    padding:4px 7px;
    border-radius:999px;
    font-size:9px !important;
    font-weight:900;
}

.node-detail-state.ok{
    background:#eaf8f1;
    color:#218a55;
}

.node-detail-state.warning{
    background:#fff7e5;
    color:#a97111;
}

.node-detail-state.critical{
    background:#fff0f0;
    color:#bc3c3c;
}

.node-detail-big-number{
    margin-top:7px;
    font-size:38px;
    line-height:1;
    font-weight:900;
    color:var(--blue);
}

.node-detail-panel > small{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:9px;
}

.node-blacklist-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}

.node-blacklist-grid > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fbff;
}

.node-blacklist-grid span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:10px;
    font-weight:700;
}

.node-detail-empty{
    padding:18px;
    border:1px dashed var(--line);
    border-radius:10px;
    color:var(--muted);
    text-align:center;
    font-size:11px;
}

.node-delivery-table-wrap{
    overflow-x:auto;
}

.node-delivery-table{
    width:100%;
    border-collapse:collapse;
    font-size:10px;
}

.node-delivery-table th{
    padding:9px 10px;
    border-bottom:1px solid var(--line);
    color:var(--muted);
    text-align:left;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.node-delivery-table td{
    padding:10px;
    border-bottom:1px solid var(--line);
    vertical-align:top;
}

.node-detail-lastcheck{
    color:var(--muted);
    text-align:right;
    font-size:9px;
}

@media(max-width:1200px){
    .node-detail-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .node-detail-grid-wide{
        grid-template-columns:1fr;
    }

    .node-blacklist-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .node-detail-grid,
    .node-blacklist-grid{
        grid-template-columns:1fr;
    }
}

/* NODE CONTROL - RIEPILOGO NODO */
.node-summary-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
}

.node-summary-card{
    min-height:76px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
}

.node-summary-card span{
    color:var(--muted);
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.node-summary-card strong{
    font-size:14px;
}

.node-summary-card strong.ok{
    color:#218a55;
}

.node-summary-card strong.warning{
    color:#a97111;
}

.node-summary-card strong.critical{
    color:#bc3c3c;
}

@media(max-width:1200px){
    .node-summary-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .node-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

.node-queue-raw{
    max-height:320px;
    overflow:auto;
    margin:0;
    padding:14px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f8fbff;
    color:#43516a;
    font-size:10px;
    line-height:1.55;
    white-space:pre-wrap;
    word-break:break-word;
}

/* NODE CONTROL - DOMINI REALI */

.node-domains-panel{
    min-width:0;
}

.node-domains-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:18px;
}

.node-domains-toolbar h3{
    margin:0;
}

.node-domains-toolbar p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:10px;
}

.node-domains-toolbar input{
    width:min(320px,100%);
}

.node-domain-table-wrap{
    overflow-x:auto;
}

.node-domain-table{
    width:100%;
    border-collapse:collapse;
}

.node-domain-table th{
    padding:10px 12px;
    border-bottom:1px solid var(--line);
    color:var(--muted);
    text-align:left;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.node-domain-table td{
    padding:12px;
    border-bottom:1px solid var(--line);
    vertical-align:middle;
    font-size:11px;
}

.node-domain-table tbody tr:hover{
    background:#f8fbff;
}

.node-domain-cell{
    display:grid;
    gap:5px;
}

.node-domain-cell small{
    color:var(--muted);
    font-size:9px;
}

.node-domain-badge{
    display:inline-flex;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
}

.node-domain-badge.ok{
    background:#eaf8f1;
    color:#218a55;
}

.node-domain-badge.warning{
    background:#fff7e5;
    color:#a97111;
}

.node-domain-badge.acceptable{
    background:#edf4ff;
    color:#5876a3;
}

.node-domain-badge.missing{
    background:#f0f3f7;
    color:#8592a6;
}

@media(max-width:700px){
    .node-domains-toolbar{
        align-items:stretch;
        flex-direction:column;
    }

    .node-domains-toolbar input{
        width:100%;
    }
}

/* NODE CONTROL - LOADER OPERAZIONI SERVER */

.node-control-loader{
    position:fixed;
    inset:0;
    z-index:10000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(15,35,66,.30);
    backdrop-filter:blur(3px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
        opacity .18s ease,
        visibility .18s ease;
}

.node-control-loader.is-active{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.node-control-loader-card{
    display:flex;
    align-items:center;
    gap:16px;
    width:min(390px,100%);
    padding:20px 22px;
    border:1px solid #d6e3f3;
    border-radius:16px;
    background:#ffffff;
    box-shadow:0 18px 55px rgba(18,47,85,.20);
}

.node-control-loader-card > div:last-child{
    display:grid;
    gap:4px;
}

.node-control-loader-card strong{
    color:#172844;
    font-size:13px;
    font-weight:900;
}

.node-control-loader-card span{
    color:#708197;
    font-size:11px;
    line-height:1.45;
}

.node-control-loader-spinner{
    flex:0 0 auto;
    width:34px;
    height:34px;
    border:4px solid #dce9f8;
    border-top-color:#3278c6;
    border-radius:50%;
    animation:node-control-spin .75s linear infinite;
}

@keyframes node-control-spin{
    to{
        transform:rotate(360deg);
    }
}

.node-control-server-running{
    cursor:wait;
}

.node-control-server-running .node-control-loader{
    cursor:wait;
}

[data-server-action] button[type="submit"]:disabled{
    cursor:wait;
    opacity:.72;
}

/* NODE CONTROL - CONFRONTO NODI */

.node-compare-panel{
    display:grid;
    gap:18px;
}

.node-compare-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
}

.node-compare-heading h3{
    margin:0;
    color:#172844;
    font-size:15px;
}

.node-compare-heading p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:11px;
}

.node-compare-generated,
.node-compare-note{
    color:#6e8098;
    font-size:10px;
    font-weight:700;
}

.node-compare-table-wrap{
    overflow:auto;
    border:1px solid #dce5f0;
    border-radius:13px;
}

.node-compare-table{
    width:100%;
    min-width:850px;
    border-collapse:collapse;
}

.node-compare-table th,
.node-compare-table td{
    padding:12px 14px;
    border-bottom:1px solid #e6edf6;
    border-right:1px solid #edf2f8;
    text-align:left;
    vertical-align:middle;
    font-size:10px;
}

.node-compare-table tr:last-child th,
.node-compare-table tr:last-child td{
    border-bottom:0;
}

.node-compare-table th:last-child,
.node-compare-table td:last-child{
    border-right:0;
}

.node-compare-table thead th{
    background:#f5f8fc;
    color:#53657d;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.node-compare-table tbody th{
    width:190px;
    background:#fafcff;
    color:#465a75;
    font-weight:800;
}

.node-compare-table thead a{
    display:block;
    color:#183b70;
    font-size:11px;
    font-weight:900;
    text-decoration:none;
}

.node-compare-table thead small,
.node-compare-table td small{
    display:block;
    margin-top:4px;
    color:#8a98aa;
    font-size:8px;
    line-height:1.35;
}

.node-compare-state{
    display:inline-flex;
    align-items:center;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    font-size:8px;
    font-weight:900;
}

.node-compare-state.ok{
    background:#eaf8f1;
    color:#218a55;
}

.node-compare-state.warning{
    background:#fff7e5;
    color:#a97111;
}

.node-compare-state.critical{
    background:#fff0f1;
    color:#b34b57;
}

.node-compare-number{
    color:#172844;
    font-size:12px;
    font-weight:900;
}

.node-compare-cards{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-compare-card{
    display:grid;
    gap:16px;
}

.node-compare-card-head{
    display:flex;
    align-items:center;
    gap:10px;
}

.node-compare-card-head h3{
    margin:0;
    color:#172844;
    font-size:13px;
}

.node-compare-card-head p{
    margin:3px 0 0;
    color:var(--muted);
    font-size:9px;
    overflow-wrap:anywhere;
}

.node-compare-card-body{
    display:grid;
    gap:8px;
}

.node-compare-card-body > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-bottom:7px;
    border-bottom:1px solid #edf2f8;
}

.node-compare-card-body > div:last-child{
    border-bottom:0;
}

.node-compare-card-body span{
    color:#76879c;
    font-size:9px;
}

.node-compare-card-body strong{
    color:#172844;
    font-size:9px;
}

@media(max-width:1100px){
    .node-compare-cards{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:650px){
    .node-compare-heading{
        flex-direction:column;
    }

    .node-compare-cards{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - CODE */

.node-queue-kpi-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-queue-kpi{
    display:grid;
    gap:5px;
}

.node-queue-kpi span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-queue-kpi strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-queue-kpi strong.ok{
    color:#218a55;
    font-size:13px;
}

.node-queue-kpi strong.warning{
    color:#a97111;
    font-size:13px;
}

.node-queue-kpi small{
    color:#8b99ab;
    font-size:9px;
}

.node-queue-node-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.node-queue-node{
    display:grid;
    gap:16px;
}

.node-queue-node-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}

.node-queue-node-title{
    display:flex;
    align-items:center;
    gap:10px;
}

.node-queue-node-title h3{
    margin:0;
    color:#172844;
    font-size:14px;
}

.node-queue-node-title p{
    margin:3px 0 0;
    color:#8290a4;
    font-size:9px;
}

.node-queue-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    height:34px;
    padding:0 9px;
    border-radius:999px;
    font-size:12px;
    font-weight:900;
}

.node-queue-count.empty{
    background:#eaf8f1;
    color:#218a55;
}

.node-queue-count.busy{
    background:#fff7e5;
    color:#a97111;
}

.node-queue-node-summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.node-queue-node-summary > div{
    display:grid;
    gap:4px;
    padding:10px;
    border:1px solid #e2eaf4;
    border-radius:10px;
    background:#fafcff;
}

.node-queue-node-summary span{
    color:#8796a9;
    font-size:8px;
}

.node-queue-node-summary strong{
    color:#172844;
    font-size:9px;
    overflow-wrap:anywhere;
}

.node-queue-node-summary strong.ok{
    color:#218a55;
}

.node-queue-node-summary strong.warning{
    color:#a97111;
}

.node-queue-raw-wrap{
    overflow:hidden;
    border:1px solid #dde7f2;
    border-radius:11px;
    background:#f8fbff;
}

.node-queue-raw-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    padding:10px 12px;
}

.node-queue-raw-head > span{
    color:#52667f;
    font-size:9px;
    font-weight:800;
}

.node-queue-toggle{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:0;
    border:0;
    background:transparent;
    color:#3278c6;
    cursor:pointer;
    font:inherit;
    font-size:9px;
    font-weight:800;
}

.node-queue-toggle svg{
    width:13px;
    height:13px;
}

.node-queue-raw-content{
    max-height:300px;
    margin:0;
    padding:12px;
    overflow:auto;
    border-top:1px solid #dde7f2;
    background:#f4f8fd;
    color:#334b69;
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:9px;
    line-height:1.5;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}

.node-queue-open-node{
    justify-content:center;
}

.node-queue-info{
    display:flex;
    align-items:flex-start;
    gap:12px;
}

.node-queue-info > svg{
    flex:0 0 auto;
    width:20px;
    height:20px;
    color:#3278c6;
}

.node-queue-info strong{
    color:#172844;
    font-size:11px;
}

.node-queue-info p{
    margin:4px 0 0;
    color:#75869b;
    font-size:10px;
    line-height:1.55;
}

@media(max-width:1000px){
    .node-queue-kpi-grid,
    .node-queue-node-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:650px){
    .node-queue-kpi-grid,
    .node-queue-node-grid,
    .node-queue-node-summary{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - AZIONI CODE */

.node-queue-action-result{
    display:flex;
    align-items:flex-start;
    gap:11px;
}

.node-queue-action-result > svg{
    width:20px;
    height:20px;
    flex:0 0 auto;
}

.node-queue-action-result.ok > svg{
    color:#218a55;
}

.node-queue-action-result.error > svg{
    color:#b34b57;
}

.node-queue-action-result div{
    display:grid;
    gap:3px;
}

.node-queue-action-result strong{
    color:#172844;
    font-size:11px;
}

.node-queue-action-result span,
.node-queue-action-result small{
    color:#718399;
    font-size:9px;
}

.node-queue-empty-state{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:64px;
    padding:12px;
    border:1px solid #dfe9f2;
    border-radius:11px;
    background:#f8fcfa;
}

.node-queue-empty-state > svg{
    width:19px;
    height:19px;
    color:#218a55;
}

.node-queue-empty-state div{
    display:grid;
    gap:2px;
}

.node-queue-empty-state strong{
    color:#245d44;
    font-size:10px;
}

.node-queue-empty-state span{
    color:#728797;
    font-size:9px;
}

.node-queue-message-list{
    display:grid;
    gap:10px;
}

.node-queue-message{
    display:grid;
    gap:11px;
    padding:12px;
    border:1px solid #dde7f2;
    border-radius:12px;
    background:#fbfdff;
}

.node-queue-message-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.node-queue-message-head > div{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
}

.node-queue-message-head code{
    color:#173c70;
    font-size:10px;
    font-weight:900;
}

.node-queue-message-head > strong{
    color:#66798f;
    font-size:9px;
}

.node-queue-message-state{
    display:inline-flex;
    padding:4px 7px;
    border-radius:999px;
    font-size:7px;
    font-weight:900;
}

.node-queue-message-state.queued{
    background:#edf4ff;
    color:#4e72a3;
}

.node-queue-message-state.held{
    background:#fff7e5;
    color:#a97111;
}

.node-queue-message-meta{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}

.node-queue-message-meta > div,
.node-queue-message-recipients{
    display:grid;
    gap:3px;
}

.node-queue-message-meta span,
.node-queue-message-recipients > span{
    color:#8997a9;
    font-size:8px;
}

.node-queue-message-meta strong,
.node-queue-message-recipients strong{
    color:#314965;
    font-size:9px;
    overflow-wrap:anywhere;
}

.node-queue-message-detail{
    padding:8px 9px;
    border-radius:8px;
    background:#f4f7fb;
    color:#697d96;
    font-size:8px;
    line-height:1.45;
}

.node-queue-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    padding-top:3px;
}

.node-queue-action-btn{
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:30px;
    padding:6px 9px;
    border:1px solid #d5e1ef;
    border-radius:8px;
    background:#fff;
    color:#31557f;
    cursor:pointer;
    font:inherit;
    font-size:8px;
    font-weight:800;
}

.node-queue-action-btn:hover{
    border-color:#afc7e2;
    background:#f5f9fd;
}

.node-queue-action-btn svg{
    width:12px;
    height:12px;
}

.node-queue-action-btn.danger{
    border-color:#f0d3d7;
    color:#b34b57;
}

.node-queue-action-btn.danger:hover{
    background:#fff5f6;
}

.node-queue-actions button:disabled{
    cursor:wait;
    opacity:.55;
}

@media(max-width:650px){
    .node-queue-message-meta{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - CONSEGNE */

.node-deliveries-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-deliveries-kpi{
    display:grid;
    gap:5px;
}

.node-deliveries-kpi span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-deliveries-kpi strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-deliveries-kpi.success strong{
    color:#218a55;
}

.node-deliveries-kpi.warning strong{
    color:#a97111;
}

.node-deliveries-kpi.danger strong{
    color:#b34b57;
}

.node-deliveries-kpi small{
    color:#8b99ab;
    font-size:9px;
}

.node-deliveries-workspace{
    display:grid;
    gap:16px;
}

.node-deliveries-filters{
    display:grid;
    grid-template-columns:minmax(260px,1.8fr)
        repeat(3,minmax(130px,.7fr))
        auto auto;
    gap:9px;
    align-items:center;
}

.node-deliveries-search{
    position:relative;
}

.node-deliveries-search > svg{
    position:absolute;
    top:50%;
    left:12px;
    width:14px;
    height:14px;
    color:#8796a9;
    transform:translateY(-50%);
    pointer-events:none;
}

.node-deliveries-search input,
.node-deliveries-filters select{
    width:100%;
    min-height:42px;
    border:1px solid #d4dfec;
    border-radius:10px;
    background:#fbfdff;
    color:#263d5a;
    font:inherit;
    font-size:9px;
}

.node-deliveries-search input{
    padding:9px 12px 9px 35px;
}

.node-deliveries-filters select{
    padding:8px 10px;
}

.node-deliveries-search input:focus,
.node-deliveries-filters select:focus{
    outline:0;
    border-color:#8db5e2;
    box-shadow:0 0 0 3px rgba(74,134,202,.10);
}

.node-deliveries-resultbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    padding:9px 11px;
    border-radius:9px;
    background:#f6f9fd;
    color:#718399;
    font-size:9px;
}

.node-deliveries-resultbar strong{
    color:#172844;
}

.node-deliveries-resultbar .warning{
    color:#a97111;
    font-weight:800;
}

.node-deliveries-table-wrap{
    overflow:auto;
    border:1px solid #dfe7f1;
    border-radius:12px;
}

.node-deliveries-table{
    width:100%;
    min-width:1050px;
    border-collapse:collapse;
}

.node-deliveries-table th,
.node-deliveries-table td{
    padding:10px 11px;
    border-bottom:1px solid #e8eef5;
    text-align:left;
    vertical-align:top;
}

.node-deliveries-table thead th{
    background:#f5f8fc;
    color:#586b82;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.node-deliveries-table tbody tr:last-child td{
    border-bottom:0;
}

.node-deliveries-table tbody tr:hover{
    background:#fbfdff;
}

.node-delivery-time{
    white-space:nowrap;
    color:#66798f;
    font-size:9px;
}

.node-delivery-node{
    color:#296eb6;
    font-size:9px;
    font-weight:900;
    text-decoration:none;
}

.node-deliveries-table code{
    color:#274c7a;
    font-size:8px;
    font-weight:800;
}

.node-delivery-address{
    min-width:190px;
}

.node-delivery-address strong{
    display:block;
    color:#263e5b;
    font-size:9px;
    overflow-wrap:anywhere;
}

.node-delivery-address small{
    display:block;
    margin-top:3px;
    color:#8a99aa;
    font-size:8px;
}

.node-delivery-status{
    display:inline-flex;
    padding:5px 8px;
    border-radius:999px;
    font-size:7px;
    font-weight:900;
}

.node-delivery-status.ok{
    background:#eaf8f1;
    color:#218a55;
}

.node-delivery-status.warning{
    background:#fff7e5;
    color:#a97111;
}

.node-delivery-status.critical{
    background:#fff0f1;
    color:#b34b57;
}

.node-delivery-status.neutral{
    background:#edf3f8;
    color:#66798f;
}

.node-delivery-reason{
    min-width:300px;
    max-width:500px;
    color:#63768d;
    font-size:8px;
    line-height:1.45;
}

.node-delivery-reason summary{
    cursor:pointer;
    color:#536b87;
}

.node-delivery-reason details[open] summary{
    margin-bottom:7px;
    color:#2f5f98;
}

.node-delivery-reason details > div{
    padding:8px;
    border-radius:8px;
    background:#f4f7fb;
    overflow-wrap:anywhere;
}

.node-deliveries-empty{
    display:grid;
    justify-items:center;
    gap:6px;
    padding:38px 20px;
    text-align:center;
}

.node-deliveries-empty > svg{
    width:27px;
    height:27px;
    color:#8aa0b7;
}

.node-deliveries-empty strong{
    color:#344d6b;
    font-size:11px;
}

.node-deliveries-empty span{
    color:#8392a5;
    font-size:9px;
}

.node-deliveries-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:15px;
}

.node-deliveries-pagination > span{
    color:#77889c;
    font-size:9px;
}

.node-deliveries-pagination strong{
    color:#243d5b;
}

.node-deliveries-info{
    display:flex;
    align-items:flex-start;
    gap:11px;
}

.node-deliveries-info > svg{
    width:19px;
    height:19px;
    flex:0 0 auto;
    color:#3278c6;
}

.node-deliveries-info strong{
    color:#172844;
    font-size:10px;
}

.node-deliveries-info p{
    margin:4px 0 0;
    color:#75869b;
    font-size:9px;
    line-height:1.5;
}

@media(max-width:1200px){
    .node-deliveries-filters{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:850px){
    .node-deliveries-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .node-deliveries-kpis,
    .node-deliveries-filters{
        grid-template-columns:1fr;
    }

    .node-deliveries-resultbar{
        align-items:flex-start;
        flex-direction:column;
    }
}


.node-deliveries-history-info{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1px;
    overflow:hidden;
    padding:0;
}

.node-deliveries-history-info > div{
    display:grid;
    gap:4px;
    padding:14px 16px;
    background:#fbfdff;
}

.node-deliveries-history-info > div + div{
    border-left:1px solid #e5edf6;
}

.node-deliveries-history-info span{
    color:#7a8ba0;
    font-size:8px;
    font-weight:700;
}

.node-deliveries-history-info strong{
    color:#243e5d;
    font-size:10px;
}

@media(max-width:650px){
    .node-deliveries-history-info{
        grid-template-columns:1fr;
    }

    .node-deliveries-history-info > div + div{
        border-left:0;
        border-top:1px solid #e5edf6;
    }
}


/* NODE CONTROL - SERVIZI */

.node-services-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-services-kpi{
    display:grid;
    gap:5px;
}

.node-services-kpi span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-services-kpi strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-services-kpi.success strong{
    color:#218a55;
}

.node-services-kpi.danger strong{
    color:#b34b57;
}

.node-services-kpi small{
    color:#8b99ab;
    font-size:9px;
}

.node-services-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.node-service-node{
    display:grid;
    gap:14px;
}

.node-service-node-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
}

.node-service-node-head > div{
    display:flex;
    align-items:center;
    gap:9px;
}

.node-service-node-head h3{
    margin:0;
    color:#203958;
    font-size:13px;
}

.node-service-node-head small{
    display:block;
    margin-top:2px;
    color:#8796a9;
    font-size:8px;
}

.node-service-list{
    display:grid;
    gap:10px;
}

.node-service-row{
    display:grid;
    gap:10px;
    padding:13px;
    border:1px solid #e0e8f1;
    border-radius:11px;
    background:#fbfdff;
}

.node-service-main{
    display:flex;
    align-items:center;
    gap:9px;
}

.node-service-icon{
    display:grid;
    width:32px;
    height:32px;
    place-items:center;
    border-radius:9px;
    background:#edf5fd;
    color:#3278c6;
}

.node-service-icon svg{
    width:15px;
    height:15px;
}

.node-service-main strong{
    display:block;
    color:#263e5b;
    font-size:10px;
}

.node-service-main small{
    display:block;
    margin-top:2px;
    color:#8997a8;
    font-size:8px;
}

.node-service-states{
    display:flex;
    align-items:center;
    gap:8px;
}

.node-service-enabled{
    color:#708297;
    font-size:8px;
    font-weight:800;
    text-transform:uppercase;
}

.node-service-meta{
    display:grid;
    grid-template-columns:.55fr .8fr 1.7fr;
    gap:8px;
}

.node-service-meta > span{
    min-width:0;
    padding:7px 8px;
    border-radius:8px;
    background:#f3f7fb;
}

.node-service-meta small{
    display:block;
    color:#8a99ab;
    font-size:7px;
}

.node-service-meta b{
    display:block;
    margin-top:2px;
    color:#455d78;
    font-size:8px;
    overflow-wrap:anywhere;
}

.node-service-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
}

.node-service-actions form{
    margin:0;
}

.node-service-restart{
    border-color:#ead7d9;
    color:#a84b57;
}

.node-service-result{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:12px 14px;
    border-radius:11px;
}

.node-service-result svg{
    width:18px;
    height:18px;
    flex:0 0 auto;
}

.node-service-result strong{
    display:block;
    font-size:10px;
}

.node-service-result span{
    display:block;
    margin-top:3px;
    font-size:9px;
}

.node-service-result.success{
    background:#ecf8f2;
    color:#247e52;
}

.node-service-result.error{
    background:#fff0f1;
    color:#a64753;
}

.node-services-security{
    display:flex;
    align-items:flex-start;
    gap:11px;
}

.node-services-security > svg{
    width:19px;
    height:19px;
    flex:0 0 auto;
    color:#3278c6;
}

.node-services-security strong{
    color:#172844;
    font-size:10px;
}

.node-services-security p{
    margin:4px 0 0;
    color:#75869b;
    font-size:9px;
    line-height:1.5;
}

.node-services-unreachable{
    padding:18px;
    border-radius:9px;
    background:#fff1f2;
    color:#a74c57;
    font-size:9px;
}

@media(max-width:1100px){
    .node-services-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:850px){
    .node-services-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .node-services-kpis{
        grid-template-columns:1fr;
    }

    .node-service-meta{
        grid-template-columns:1fr;
    }

    .node-service-actions{
        justify-content:flex-start;
        flex-wrap:wrap;
    }
}


/* NODE CONTROL - TEST SMTP */

.node-smtp-test-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.node-smtp-test-card{
    display:grid;
    gap:14px;
}

.node-smtp-test-card > header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
}

.node-smtp-test-card > header > div{
    display:flex;
    align-items:center;
    gap:9px;
}

.node-smtp-test-card h3{
    margin:0;
    color:#203958;
    font-size:13px;
}

.node-smtp-test-card header small{
    display:block;
    margin-top:2px;
    color:#8796a9;
    font-size:8px;
}

.node-smtp-diagnostics{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
}

.node-smtp-diagnostics form{
    margin:0;
}

.node-smtp-diagnostics .btn{
    width:100%;
    justify-content:center;
}

.node-smtp-no-send{
    display:flex;
    align-items:center;
    gap:7px;
    padding:8px 10px;
    border-radius:8px;
    background:#edf8f3;
    color:#357657;
    font-size:8px;
}

.node-smtp-no-send svg{
    width:14px;
    height:14px;
}

.node-smtp-real-send{
    display:grid;
    gap:10px;
    padding:12px;
    border:1px solid #ecdadd;
    border-radius:10px;
    background:#fffafb;
}

.node-smtp-real-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
}

.node-smtp-real-head > div{
    display:flex;
    align-items:center;
    gap:8px;
}

.node-smtp-real-head svg{
    width:16px;
    height:16px;
    color:#af5360;
}

.node-smtp-real-head strong{
    display:block;
    color:#7f3c47;
    font-size:9px;
}

.node-smtp-real-head span{
    display:block;
    margin-top:2px;
    color:#a2737a;
    font-size:8px;
}

.node-smtp-real-badge{
    padding:4px 7px;
    border-radius:999px;
    background:#f8e7e9;
    color:#a34d58 !important;
    font-size:7px !important;
    font-weight:900;
}

.node-smtp-real-send form{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
}

.node-smtp-real-send input{
    min-height:40px;
    padding:8px 11px;
    border:1px solid #dfd7da;
    border-radius:9px;
    background:#fff;
    color:#334b67;
    font:inherit;
    font-size:9px;
}

.node-smtp-send-real{
    border-color:#ddbfc4;
    background:#fff;
    color:#9c4652;
}

.node-smtp-result{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:12px 14px;
    border-radius:11px;
}

.node-smtp-result svg{
    width:18px;
    height:18px;
    flex:0 0 auto;
}

.node-smtp-result strong{
    display:block;
    font-size:10px;
}

.node-smtp-result span,
.node-smtp-result small{
    display:block;
    margin-top:3px;
    font-size:9px;
}

.node-smtp-result.success{
    background:#ecf8f2;
    color:#247e52;
}

.node-smtp-result.error{
    background:#fff0f1;
    color:#a64753;
}

.node-smtp-history{
    display:grid;
    gap:12px;
}

.node-smtp-history-empty{
    padding:25px;
    text-align:center;
    color:#8594a6;
    font-size:9px;
}

@media(max-width:1050px){
    .node-smtp-test-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .node-smtp-diagnostics{
        grid-template-columns:1fr;
    }

    .node-smtp-real-send form{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - LOG */

.node-log-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-log-kpi{
    display:grid;
    gap:5px;
}

.node-log-kpi span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-log-kpi strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-log-kpi.warning strong{
    color:#b5792c;
}

.node-log-kpi.danger strong{
    color:#b24d59;
}

.node-log-kpi small{
    color:#8997a8;
    font-size:8px;
}

.node-log-filters{
    display:grid;
    grid-template-columns:
        .75fr
        .9fr
        .85fr
        .9fr
        1.8fr
        auto;
    gap:9px;
    align-items:end;
}

.node-log-filters > div{
    display:grid;
    gap:5px;
}

.node-log-filters label{
    color:#718399;
    font-size:8px;
    font-weight:800;
}

.node-log-filters select,
.node-log-filters input{
    min-height:40px;
    width:100%;
    padding:8px 10px;
    border:1px solid #dce6f0;
    border-radius:9px;
    background:#fff;
    color:#344b66;
    font:inherit;
    font-size:9px;
}

.node-log-table-panel{
    display:grid;
    gap:12px;
}

.node-log-table-wrap{
    max-height:none;
}

.node-log-table{
    table-layout:fixed;
    width:100%;
}

.node-log-table th:nth-child(1){
    width:140px;
}

.node-log-table th:nth-child(2){
    width:85px;
}

.node-log-table th:nth-child(3){
    width:100px;
}

.node-log-table th:nth-child(4){
    width:95px;
}

.node-log-table th:nth-child(6){
    width:80px;
}

.node-log-time{
    white-space:nowrap;
    color:#65778e;
    font-size:8px;
}

.node-log-service{
    color:#3d5877;
    font-size:8px;
    font-weight:800;
}

.node-log-message{
    color:#455d78;
    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Monaco,
        Consolas,
        monospace;
    font-size:8px;
    line-height:1.45;
    overflow-wrap:anywhere;
}

.node-log-details{
    position:relative;
}

.node-log-details summary{
    display:inline-flex;
    align-items:center;
    gap:4px;
    cursor:pointer;
    color:#3278c6;
    font-size:8px;
    font-weight:800;
    list-style:none;
}

.node-log-details summary::-webkit-details-marker{
    display:none;
}

.node-log-details summary svg{
    width:13px;
    height:13px;
}

.node-log-details > div{
    position:fixed;
    z-index:1000;
    left:50%;
    top:50%;
    width:min(900px,90vw);
    max-height:75vh;
    transform:translate(-50%,-50%);
    padding:16px;
    border:1px solid #d9e4ef;
    border-radius:12px;
    background:#fff;
    box-shadow:
        0 18px 55px
        rgba(22,44,76,.18);
    overflow:auto;
}

.node-log-detail-head{
    display:flex;
    justify-content:space-between;
    gap:15px;
    margin-bottom:10px;
    color:#708298;
    font-size:8px;
}

.node-log-details pre{
    margin:0;
    padding:12px;
    border-radius:9px;
    background:#f3f7fb;
    color:#344b66;
    white-space:pre-wrap;
    word-break:break-word;
    font-size:9px;
    line-height:1.55;
}

.node-log-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
}

.node-log-pagination span{
    color:#718399;
    font-size:8px;
}

.node-log-empty{
    display:grid;
    justify-items:center;
    gap:5px;
    padding:35px;
    color:#8393a7;
    text-align:center;
}

.node-log-empty svg{
    width:22px;
    height:22px;
}

.node-log-empty strong{
    color:#526a85;
    font-size:10px;
}

.node-log-empty span{
    font-size:8px;
}

.node-log-readonly{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.node-log-readonly > svg{
    width:18px;
    height:18px;
    color:#3278c6;
    flex:0 0 auto;
}

.node-log-readonly strong{
    color:#172844;
    font-size:10px;
}

.node-log-readonly p{
    margin:4px 0 0;
    color:#75869b;
    font-size:9px;
    line-height:1.5;
}

@media(max-width:1100px){
    .node-log-filters{
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }
}

@media(max-width:850px){
    .node-log-kpis{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

    .node-log-filters{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .node-log-kpis,
    .node-log-filters{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - CONFIGURAZIONI */

.node-config-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-config-kpi{
    display:grid;
    gap:5px;
}

.node-config-kpi span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-config-kpi strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-config-kpi.success strong{
    color:#218a55;
}

.node-config-kpi.warning strong{
    color:#b5792c;
}

.node-config-kpi small{
    color:#8997a8;
    font-size:8px;
}

.node-config-filters{
    display:grid;
    grid-template-columns:
        .8fr
        2fr
        auto
        auto;
    gap:10px;
    align-items:end;
}

.node-config-filters > div{
    display:grid;
    gap:5px;
}

.node-config-filters label{
    color:#718399;
    font-size:8px;
    font-weight:800;
}

.node-config-filters select,
.node-config-filters input{
    min-height:40px;
    width:100%;
    padding:8px 10px;
    border:1px solid #dce6f0;
    border-radius:9px;
    background:#fff;
    color:#344b66;
    font:inherit;
    font-size:9px;
}

.node-config-toggle{
    display:flex;
    align-items:center;
    gap:7px;
    min-height:40px;
    padding:0 10px;
    border:1px solid #dce6f0;
    border-radius:9px;
    background:#f8fbfe;
    white-space:nowrap;
}

.node-config-toggle input{
    width:auto;
    min-height:auto;
}

.node-config-compare{
    display:grid;
    gap:12px;
}

.node-config-table{
    min-width:1100px;
}

.node-config-table th{
    white-space:nowrap;
}

.node-config-param{
    color:#294667;
    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Monaco,
        Consolas,
        monospace;
    font-size:8px;
    font-weight:800;
}

.node-config-value{
    max-width:220px;
    color:#52677f;
    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Monaco,
        Consolas,
        monospace;
    font-size:8px;
    overflow-wrap:anywhere;
}

.node-config-service{
    color:#3278c6;
    font-size:7px;
    font-weight:900;
}

.node-config-state{
    display:inline-flex;
    padding:4px 7px;
    border-radius:999px;
    font-size:7px;
    font-weight:900;
    white-space:nowrap;
}

.node-config-state.ok{
    background:#e9f7ef;
    color:#247d50;
}

.node-config-state.info{
    background:#edf5fd;
    color:#3278c6;
}

.node-config-state.warning{
    background:#fff4df;
    color:#a66c23;
}

.node-config-node-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.node-config-node{
    display:grid;
    gap:11px;
}

.node-config-node > header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
}

.node-config-node > header > div{
    display:flex;
    align-items:center;
    gap:8px;
}

.node-config-node h3{
    margin:0;
    color:#203958;
    font-size:13px;
}

.node-config-node header small{
    display:block;
    margin-top:2px;
    color:#8796a9;
    font-size:8px;
}

.node-config-checks{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
}

.node-config-checks > span{
    display:flex;
    justify-content:space-between;
    gap:5px;
    padding:7px 8px;
    border-radius:8px;
    font-size:8px;
}

.node-config-checks > span.ok{
    background:#edf8f3;
    color:#347653;
}

.node-config-checks > span.critical{
    background:#fff0f1;
    color:#a64753;
}

.node-config-fingerprint{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:7px 9px;
    border-radius:8px;
    background:#f3f7fb;
}

.node-config-fingerprint small{
    color:#8494a6;
    font-size:7px;
}

.node-config-fingerprint code{
    color:#47617e;
    font-size:8px;
}

.node-config-raw{
    border:1px solid #e0e8f1;
    border-radius:9px;
    overflow:hidden;
}

.node-config-raw summary{
    display:flex;
    align-items:center;
    gap:6px;
    padding:9px 11px;
    cursor:pointer;
    list-style:none;
    background:#fbfdff;
    color:#405c7a;
    font-size:8px;
    font-weight:800;
}

.node-config-raw summary::-webkit-details-marker{
    display:none;
}

.node-config-raw summary svg{
    width:13px;
    height:13px;
}

.node-config-raw summary span{
    margin-left:auto;
    color:#8291a4;
    font-size:7px;
}

.node-config-raw pre{
    margin:0;
    max-height:420px;
    padding:12px;
    overflow:auto;
    background:#f3f7fb;
    color:#344b66;
    white-space:pre-wrap;
    word-break:break-word;
    font-size:8px;
    line-height:1.55;
}

.node-config-path{
    padding:7px 11px;
    border-top:1px solid #e5ebf2;
    background:#fff;
    color:#8392a4;
    font-size:7px;
    overflow-wrap:anywhere;
}

.node-config-error{
    padding:16px;
    border-radius:9px;
    background:#fff0f1;
    color:#a64753;
    font-size:9px;
}

.node-config-readonly{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.node-config-readonly > svg{
    width:18px;
    height:18px;
    color:#3278c6;
    flex:0 0 auto;
}

.node-config-readonly strong{
    color:#172844;
    font-size:10px;
}

.node-config-readonly p{
    margin:4px 0 0;
    color:#75869b;
    font-size:9px;
    line-height:1.5;
}

@media(max-width:1100px){
    .node-config-node-grid{
        grid-template-columns:1fr;
    }

    .node-config-filters{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:850px){
    .node-config-kpis{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .node-config-kpis,
    .node-config-filters,
    .node-config-checks{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - SICUREZZA */

.node-security-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-security-kpi{
    display:grid;
    gap:5px;
}

.node-security-kpi span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-security-kpi strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-security-kpi.danger strong{
    color:#b14c58;
}

.node-security-kpi small{
    color:#8997a8;
    font-size:8px;
}

.node-security-alert-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.node-security-alert-summary article{
    display:flex;
    align-items:center;
    gap:10px;
}

.node-security-alert-summary span{
    display:block;
    color:#78899c;
    font-size:8px;
}

.node-security-alert-summary strong{
    display:block;
    margin-top:2px;
    color:#172844;
    font-size:18px;
}

.node-security-alert-icon{
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    border-radius:10px;
}

.node-security-alert-icon svg{
    width:17px;
    height:17px;
}

.node-security-alert-icon.critical{
    background:#fff0f1;
    color:#b24d59;
}

.node-security-alert-icon.warning{
    background:#fff4df;
    color:#ad742b;
}

.node-security-node-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.node-security-node{
    display:grid;
    gap:11px;
}

.node-security-node > header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.node-security-node > header > div{
    display:flex;
    align-items:center;
    gap:8px;
}

.node-security-node h3{
    margin:0;
    color:#203958;
    font-size:13px;
}

.node-security-node header small{
    display:block;
    margin-top:2px;
    color:#8796a9;
    font-size:8px;
}

.node-security-mini-kpis{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
}

.node-security-mini-kpis > div{
    padding:8px;
    border-radius:8px;
    background:#f4f8fc;
}

.node-security-mini-kpis span{
    display:block;
    color:#7e8da0;
    font-size:7px;
}

.node-security-mini-kpis strong{
    display:block;
    margin-top:2px;
    color:#253f5e;
    font-size:13px;
}

.node-security-section{
    display:grid;
    gap:7px;
    padding-top:9px;
    border-top:1px solid #e6edf4;
}

.node-security-section h4{
    display:flex;
    align-items:center;
    gap:6px;
    margin:0;
    color:#345271;
    font-size:9px;
}

.node-security-section h4 svg{
    width:13px;
    height:13px;
}

.node-security-state-list{
    display:grid;
    gap:5px;
}

.node-security-state-list > div,
.node-security-check-grid > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:6px 8px;
    border-radius:7px;
    background:#f8fbfe;
}

.node-security-state-list span,
.node-security-check-grid span{
    color:#718399;
    font-size:7px;
}

.node-security-state-list b,
.node-security-check-grid b{
    color:#405b79;
    font-size:7px;
}

.node-security-state-list b.ok,
.node-security-check-grid b.ok{
    color:#238552;
}

.node-security-state-list b.warning,
.node-security-check-grid b.warning{
    color:#aa7028;
}

.node-security-state-list b.critical,
.node-security-check-grid b.critical{
    color:#ad4451;
}

.node-security-check-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
}

.node-security-jail{
    display:grid;
    grid-template-columns:
        1.2fr
        repeat(3,.8fr);
    gap:6px;
    align-items:center;
    padding:6px 8px;
    border:1px solid #e3ebf3;
    border-radius:7px;
}

.node-security-jail strong{
    color:#355473;
    font-size:7px;
}

.node-security-jail span{
    color:#78899c;
    font-size:7px;
}

.node-security-alert{
    padding:7px 9px;
    border-radius:7px;
    font-size:8px;
}

.node-security-alert.warning{
    background:#fff5e5;
    color:#9a6928;
}

.node-security-alert.critical{
    background:#fff0f1;
    color:#a94854;
}

.node-security-ports{
    border:1px solid #e1e9f1;
    border-radius:9px;
    overflow:hidden;
}

.node-security-ports summary{
    display:flex;
    align-items:center;
    gap:6px;
    padding:9px 10px;
    cursor:pointer;
    list-style:none;
    color:#405c7a;
    font-size:8px;
    font-weight:800;
}

.node-security-ports summary::-webkit-details-marker{
    display:none;
}

.node-security-ports summary svg{
    width:13px;
    height:13px;
}

.node-security-port-list{
    display:grid;
    border-top:1px solid #e7edf3;
}

.node-security-port-list > div{
    display:grid;
    grid-template-columns:55px 1fr 70px;
    gap:8px;
    padding:6px 10px;
    border-bottom:1px solid #edf2f6;
}

.node-security-port-list strong{
    color:#294766;
    font-size:8px;
}

.node-security-port-list span{
    overflow:hidden;
    color:#718399;
    font-size:8px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.node-security-port-list b{
    text-align:right;
    font-size:7px;
}

.node-security-port-list b.ok{
    color:#258455;
}

.node-security-port-list b.info{
    color:#3278c6;
}

.node-security-top-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.node-security-ip-list{
    display:grid;
    gap:5px;
    margin-top:10px;
}

.node-security-ip-list > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:6px 8px;
    border-radius:7px;
    background:#f7fafc;
}

.node-security-ip-list code{
    color:#455e79;
    font-size:8px;
}

.node-security-ip-list strong{
    color:#a84a57;
    font-size:8px;
}

.node-security-readonly{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.node-security-readonly > svg{
    width:18px;
    height:18px;
    color:#3278c6;
    flex:0 0 auto;
}

.node-security-readonly strong{
    color:#172844;
    font-size:10px;
}

.node-security-readonly p{
    margin:4px 0 0;
    color:#75869b;
    font-size:9px;
    line-height:1.5;
}

@media(max-width:1100px){

    .node-security-node-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:850px){

    .node-security-kpis{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

    .node-security-top-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:600px){

    .node-security-kpis,
    .node-security-alert-summary,
    .node-security-check-grid{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - AZIONI DOMINI */

.node-domain-add-form{
    display:grid;
    gap:18px;
}

.node-domain-add-form label{
    display:grid;
    gap:7px;
}

.node-domain-add-form label > span{
    color:#172844;
    font-size:11px;
    font-weight:800;
    letter-spacing:.01em;
}

.node-domain-add-form input[type="text"],
.node-domains-toolbar input[type="search"]{
    width:100%;
    min-height:44px;
    padding:10px 13px;
    border:1px solid #cfdced;
    border-radius:12px;
    background:#fbfdff;
    color:#172844;
    font:inherit;
    font-size:12px;
    outline:none;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.node-domain-add-form input[type="text"]::placeholder,
.node-domains-toolbar input[type="search"]::placeholder{
    color:#91a0b5;
}

.node-domain-add-form input[type="text"]:hover,
.node-domains-toolbar input[type="search"]:hover{
    border-color:#b8cae3;
    background:#ffffff;
}

.node-domain-add-form input[type="text"]:focus,
.node-domains-toolbar input[type="search"]:focus{
    border-color:#6f9fd8;
    background:#ffffff;
    box-shadow:0 0 0 3px rgba(74,128,191,.12);
}

.node-domain-add-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
}

.node-domain-add-head h3{
    margin:0;
}

.node-domain-add-head p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:10px;
}

.node-domain-add-fields{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.node-domain-add-fields label{
    display:grid;
    gap:6px;
}

.node-domain-add-fields label > span{
    font-size:10px;
    font-weight:800;
}

.node-domain-node-select{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.node-domain-node-select label{
    display:flex;
    align-items:center;
    gap:7px;
    padding:8px 11px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fbff;
    cursor:pointer;
    font-size:10px;
    font-weight:800;
}

.node-domain-node-select input{
    width:auto;
    margin:0;
}

.node-domain-result{
    display:grid;
    gap:5px;
}

.node-domain-result.added{
    border-color:rgba(39,168,101,.30);
    background:#f3fbf7;
}

.node-domain-result.partial,
.node-domain-result.invalid,
.node-domain-result.csrf,
.node-domain-result.no_nodes{
    border-color:rgba(217,155,32,.30);
    background:#fffaf0;
}

.node-domain-result span,
.node-domain-result small{
    color:var(--muted);
    font-size:10px;
}

@media(max-width:700px){
    .node-domain-add-head{
        align-items:stretch;
        flex-direction:column;
    }

    .node-domain-add-fields{
        grid-template-columns:1fr;
    }
}

/* NODE CONTROL - LOG - FIX COLONNE EVENTO / DETTAGLIO */

.node-log-table{
    table-layout:fixed;
}

.node-log-table th:nth-child(5),
.node-log-table td:nth-child(5){
    width:auto;
}

.node-log-table th:nth-child(6),
.node-log-table td:nth-child(6){
    width:110px;
    min-width:110px;
    text-align:center;
}

.node-log-message{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    max-width:0;
}

.node-log-details{
    width:100%;
}

.node-log-details summary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    white-space:nowrap;
}


/* NODE CONTROL - CONFIGURAZIONI - FIX MATRICE */

.node-config-table{
    width:100%;
    min-width:0;
    table-layout:fixed;
}

.node-config-table th:nth-child(1),
.node-config-table td:nth-child(1){
    width:85px;
}

.node-config-table th:nth-child(2),
.node-config-table td:nth-child(2){
    width:180px;
}

.node-config-table th:nth-child(3),
.node-config-table td:nth-child(3),
.node-config-table th:nth-child(4),
.node-config-table td:nth-child(4),
.node-config-table th:nth-child(5),
.node-config-table td:nth-child(5),
.node-config-table th:nth-child(6),
.node-config-table td:nth-child(6){
    width:auto;
}

.node-config-table th:nth-child(7),
.node-config-table td:nth-child(7){
    width:135px;
    min-width:135px;
    text-align:center;
}

.node-config-table th,
.node-config-table td{
    overflow:hidden;
}

.node-config-param,
.node-config-value{
    display:table-cell;
    max-width:none;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    word-break:normal;
    overflow-wrap:normal;
}

.node-config-state{
    max-width:100%;
    justify-content:center;
}


/* NODE CONTROL - REPUTAZIONE */

.node-reputation-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-reputation-kpis article{
    display:grid;
    gap:5px;
}

.node-reputation-kpis span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-reputation-kpis strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-reputation-kpis small{
    color:#8997a8;
    font-size:8px;
}

.node-reputation-table-wrap{
    overflow-x:auto;
}

.node-reputation-table{
    width:100%;
    table-layout:fixed;
    border-collapse:collapse;
}

.node-reputation-table th,
.node-reputation-table td{
    padding:9px 10px;
    border-bottom:1px solid #e8eef4;
    text-align:center;
    overflow:hidden;
}

.node-reputation-table th:first-child,
.node-reputation-table td:first-child{
    width:150px;
    text-align:left;
}

.node-reputation-table th{
    color:#708299;
    font-size:8px;
    font-weight:800;
}

.node-reputation-table td{
    color:#3e5875;
    font-size:8px;
}

.node-reputation-table .ok,
.node-reputation-list .ok,
.node-reputation-dkim .ok,
.node-reputation-blacklist .ok{
    color:#258454;
    font-weight:800;
}

.node-reputation-table .warning,
.node-reputation-list .warning{
    color:#a87028;
    font-weight:800;
}

.node-reputation-table .critical,
.node-reputation-list .critical,
.node-reputation-dkim .critical,
.node-reputation-blacklist .critical{
    color:#ad4551;
    font-weight:800;
}

.node-reputation-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.node-reputation-card{
    display:grid;
    gap:11px;
}

.node-reputation-card > header{
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.node-reputation-card > header > div{
    display:flex;
    align-items:center;
    gap:8px;
}

.node-reputation-card h3{
    margin:0;
    color:#203958;
    font-size:13px;
}

.node-reputation-card header small{
    display:block;
    margin-top:2px;
    color:#8796a9;
    font-size:8px;
}

.node-reputation-section{
    display:grid;
    gap:7px;
    padding-top:9px;
    border-top:1px solid #e6edf4;
}

.node-reputation-section h4{
    display:flex;
    align-items:center;
    gap:6px;
    margin:0;
    color:#345271;
    font-size:9px;
}

.node-reputation-section h4 svg{
    width:13px;
    height:13px;
}

.node-reputation-list{
    display:grid;
    gap:5px;
}

.node-reputation-list > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:6px 8px;
    border-radius:7px;
    background:#f8fbfe;
}

.node-reputation-list span{
    flex:0 0 110px;
    color:#718399;
    font-size:7px;
}

.node-reputation-list code{
    min-width:0;
    overflow:hidden;
    color:#405b79;
    font-size:7px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.node-reputation-list b{
    font-size:7px;
}

.node-reputation-dkim,
.node-reputation-blacklist{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:6px 8px;
    border-radius:7px;
    background:#f8fbfe;
}

.node-reputation-dkim code{
    min-width:0;
    overflow:hidden;
    color:#48627e;
    font-size:7px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.node-reputation-dkim b,
.node-reputation-blacklist b{
    flex:0 0 auto;
    font-size:7px;
}

.node-reputation-blacklist span{
    color:#48627e;
    font-size:7px;
}

.node-reputation-raw{
    border:1px solid #e2eaf2;
    border-radius:7px;
}

.node-reputation-raw summary{
    padding:7px 8px;
    cursor:pointer;
    color:#61768e;
    font-size:7px;
    font-weight:800;
}

.node-reputation-raw code{
    display:block;
    padding:0 8px 8px;
    overflow-wrap:anywhere;
    color:#526a85;
    font-size:7px;
    line-height:1.5;
}

.node-reputation-alert{
    padding:7px 9px;
    border-radius:7px;
    font-size:8px;
}

.node-reputation-alert.warning{
    background:#fff5e5;
    color:#986729;
}

.node-reputation-alert.critical{
    background:#fff0f1;
    color:#a94854;
}

.node-reputation-note{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.node-reputation-note > svg{
    width:18px;
    height:18px;
    color:#3278c6;
    flex:0 0 auto;
}

.node-reputation-note strong{
    color:#172844;
    font-size:10px;
}

.node-reputation-note p{
    margin:4px 0 0;
    color:#75869b;
    font-size:9px;
    line-height:1.5;
}

@media(max-width:1000px){
    .node-reputation-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:800px){
    .node-reputation-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:550px){
    .node-reputation-kpis{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - BACKUP */

.node-backup-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-backup-kpis article{
    display:grid;
    gap:5px;
}

.node-backup-kpis span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-backup-kpis strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-backup-kpis small{
    color:#8997a8;
    font-size:8px;
}

.node-backup-table-wrap{
    overflow-x:auto;
}

.node-backup-table{
    width:100%;
    border-collapse:collapse;
}

.node-backup-table th,
.node-backup-table td{
    padding:10px;
    border-bottom:1px solid #e7edf4;
    text-align:left;
    font-size:8px;
    white-space:nowrap;
}

.node-backup-table th{
    color:#73859a;
    font-weight:800;
}

.node-backup-server{
    display:flex;
    align-items:center;
    gap:8px;
}

.node-backup-server div{
    display:grid;
    gap:2px;
}

.node-backup-server b{
    color:#243c59;
}

.node-backup-server small{
    color:#8797aa;
    font-size:7px;
}

.node-backup-state{
    font-size:7px;
    font-weight:900;
}

.node-backup-state.ok,
.node-backup-page .ok{
    color:#278457;
}

.node-backup-state.warning{
    color:#a87329;
}

.node-backup-state.muted{
    color:#8b98a8;
}

.node-backup-page .critical{
    color:#ab4752;
}

.node-backup-actions{
    display:flex;
    align-items:center;
    gap:6px;
}

.node-backup-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.node-backup-card{
    display:grid;
    gap:11px;
}

.node-backup-card > header{
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.node-backup-card > header > div{
    display:flex;
    align-items:center;
    gap:8px;
}

.node-backup-card > header svg{
    width:16px;
    height:16px;
}

.node-backup-card header span{
    display:grid;
    gap:2px;
}

.node-backup-card header b{
    color:#223b58;
    font-size:11px;
}

.node-backup-card header small{
    color:#8a99aa;
    font-size:7px;
}

.node-backup-card header strong{
    font-size:7px;
}

.node-backup-card dl{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    margin:0;
}

.node-backup-card dl div{
    display:grid;
    gap:3px;
    padding:7px 8px;
    border-radius:7px;
    background:#f8fbfe;
}

.node-backup-card dt{
    color:#8190a2;
    font-size:7px;
}

.node-backup-card dd{
    margin:0;
    color:#3f5875;
    font-size:8px;
    font-weight:800;
}

.node-backup-recent{
    display:grid;
    gap:6px;
    padding-top:8px;
    border-top:1px solid #e6edf4;
}

.node-backup-recent h4{
    margin:0;
    color:#405b78;
    font-size:8px;
}

.node-backup-recent > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:6px 8px;
    border-radius:7px;
    background:#f8fbfe;
}

.node-backup-recent > div > span:first-child{
    display:grid;
    gap:2px;
    min-width:0;
}

.node-backup-recent b{
    overflow:hidden;
    color:#405a76;
    font-size:7px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.node-backup-recent small,
.node-backup-recent > div > span:last-child{
    color:#8493a5;
    font-size:7px;
}

.node-backup-empty{
    padding:12px;
    color:#8997a8;
    font-size:8px;
    text-align:center;
}

.node-backup-history{
    display:grid;
}

.node-backup-history > div{
    display:grid;
    grid-template-columns:20px 1fr auto;
    align-items:center;
    gap:8px;
    padding:8px 4px;
    border-bottom:1px solid #e8eef4;
}

.node-backup-history svg{
    width:14px;
    height:14px;
}

.node-backup-history div div{
    display:grid;
    gap:2px;
}

.node-backup-history b{
    color:#405975;
    font-size:8px;
}

.node-backup-history small,
.node-backup-history time{
    color:#8997a8;
    font-size:7px;
}

.node-backup-info{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.node-backup-info > svg{
    width:18px;
    height:18px;
    flex:0 0 auto;
    color:#2d7ac8;
}

.node-backup-info strong{
    color:#203955;
    font-size:10px;
}

.node-backup-info p{
    margin:4px 0 0;
    color:#77889d;
    font-size:8px;
    line-height:1.5;
}

.node-backup-message{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:9px;
    font-weight:700;
}

.node-backup-message svg{
    width:15px;
    height:15px;
}

@media(max-width:1000px){
    .node-backup-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:800px){
    .node-backup-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:550px){
    .node-backup-kpis{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - AUDIT */

.node-audit-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-audit-kpis article{
    display:grid;
    gap:5px;
}

.node-audit-kpis span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-audit-kpis strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-audit-kpis small{
    color:#8997a8;
    font-size:8px;
}

.node-audit-page .ok{
    color:#278457;
}

.node-audit-page .critical{
    color:#ab4752;
}

.node-audit-filters{
    display:grid;
    grid-template-columns:
        repeat(5,minmax(100px,1fr))
        minmax(160px,1.5fr)
        auto;
    align-items:end;
    gap:9px;
}

.node-audit-filters label{
    display:grid;
    gap:4px;
}

.node-audit-filters label > span{
    color:#718399;
    font-size:7px;
    font-weight:800;
}

.node-audit-filters select,
.node-audit-filters input{
    width:100%;
    height:32px;
    padding:0 9px;
    border:1px solid #dbe4ed;
    border-radius:7px;
    background:#fff;
    color:#354f6c;
    font:inherit;
    font-size:8px;
    outline:none;
}

.node-audit-filter-actions{
    display:flex;
    gap:6px;
}

.node-audit-filter-summary{
    display:flex;
    align-items:center;
    gap:18px;
    padding:0 3px;
    color:#8291a3;
    font-size:8px;
}

.node-audit-table-wrap{
    width:100%;
    overflow:auto;
}

.node-audit-table{
    width:100%;
    border-collapse:collapse;
}

.node-audit-table th,
.node-audit-table td{
    padding:9px 8px;
    border-bottom:1px solid #e8eef4;
    text-align:left;
    vertical-align:top;
    font-size:7px;
}

.node-audit-table th{
    color:#76879a;
    font-weight:800;
    white-space:nowrap;
}

.node-audit-table td{
    color:#506983;
}

.node-audit-date{
    white-space:nowrap;
}

.node-audit-node{
    color:#335b82;
    font-weight:900;
}

.node-audit-object{
    max-width:210px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.node-audit-identity{
    display:grid;
    gap:2px;
}

.node-audit-identity b{
    color:#405b77;
    font-size:7px;
}

.node-audit-identity small{
    color:#8a99aa;
    font-size:7px;
}

.node-audit-system{
    color:#8997a8;
    font-size:7px;
    font-weight:800;
}

.node-audit-result{
    display:inline-flex;
    align-items:center;
    gap:4px;
    font-weight:900;
    white-space:nowrap;
}

.node-audit-result svg{
    width:12px;
    height:12px;
}

.node-audit-detail summary{
    color:#3277b9;
    cursor:pointer;
    font-weight:800;
    list-style:none;
    white-space:nowrap;
}

.node-audit-detail summary::-webkit-details-marker{
    display:none;
}

.node-audit-detail > div{
    width:380px;
    max-width:60vw;
    margin-top:7px;
    padding:9px;
    border:1px solid #e1e8ef;
    border-radius:7px;
    background:#f8fbfd;
}

.node-audit-detail p{
    margin:0;
    color:#526b84;
    font-size:7px;
    line-height:1.5;
}

.node-audit-detail pre{
    max-height:260px;
    margin:8px 0 0;
    padding:8px;
    overflow:auto;
    border-radius:6px;
    background:#eef4f8;
    color:#415c78;
    font-size:7px;
    white-space:pre-wrap;
    word-break:break-word;
}

.node-audit-empty{
    padding:30px 15px;
    color:#8997a8;
    font-size:9px;
    text-align:center;
}

.node-audit-info{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.node-audit-info > svg{
    width:18px;
    height:18px;
    flex:0 0 auto;
    color:#2d7ac8;
}

.node-audit-info strong{
    color:#203955;
    font-size:10px;
}

.node-audit-info p{
    margin:4px 0 0;
    color:#77889d;
    font-size:8px;
    line-height:1.5;
}

@media(max-width:1150px){
    .node-audit-filters{
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }
}

@media(max-width:800px){
    .node-audit-kpis{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

    .node-audit-filters{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }
}

@media(max-width:550px){
    .node-audit-kpis,
    .node-audit-filters{
        grid-template-columns:1fr;
    }
}


/* NODE CONTROL - SETTINGS */

.node-settings-page .ok{
    color:#278457;
}

.node-settings-page .warning{
    color:#a87329;
}

.node-settings-page .critical{
    color:#ab4752;
}

.node-settings-message{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:9px;
    font-weight:800;
}

.node-settings-message svg{
    width:15px;
    height:15px;
}

.node-settings-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}

.node-settings-kpis article{
    display:grid;
    gap:5px;
}

.node-settings-kpis span{
    color:#718399;
    font-size:10px;
    font-weight:700;
}

.node-settings-kpis strong{
    color:#172844;
    font-size:24px;
    font-weight:900;
}

.node-settings-kpis small{
    color:#8997a8;
    font-size:8px;
}

.node-settings-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:start;
}

.node-settings-card{
    display:grid;
    gap:13px;
}

.node-settings-card > header{
    display:flex;
    align-items:flex-start;
    gap:9px;
}

.node-settings-card > header > span{
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    flex:0 0 auto;
    border-radius:8px;
    background:#eef5fb;
    color:#3378b8;
}

.node-settings-card > header svg{
    width:15px;
    height:15px;
}

.node-settings-card h2{
    margin:0;
    color:#253e5a;
    font-size:11px;
}

.node-settings-card header p{
    margin:3px 0 0;
    color:#8493a5;
    font-size:8px;
    line-height:1.45;
}

.node-settings-card form{
    display:grid;
    gap:10px;
}

.node-settings-card form > label,
.node-settings-two > label{
    display:grid;
    gap:5px;
}

.node-settings-card label > span{
    color:#61758d;
    font-size:8px;
    font-weight:800;
}

.node-settings-card input[type="text"],
.node-settings-card input[type="email"],
.node-settings-card input[type="number"],
.node-settings-card select{
    width:100%;
    min-height:34px;
    padding:0 9px;
    border:1px solid #dce5ee;
    border-radius:7px;
    background:#fff;
    color:#354f6c;
    font:inherit;
    font-size:8px;
    outline:none;
}

.node-settings-two{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.node-settings-toggle-list{
    display:grid;
    gap:6px;
}

.node-settings-toggle{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:9px 10px;
    border:1px solid #e1e8ef;
    border-radius:8px;
    background:#f9fbfd;
}

.node-settings-toggle > span{
    display:grid;
    gap:2px;
}

.node-settings-toggle b{
    color:#425c78;
    font-size:8px;
}

.node-settings-toggle small{
    color:#8998aa;
    font-size:7px;
    font-weight:400;
}

.node-settings-toggle input{
    width:16px;
    height:16px;
    flex:0 0 auto;
}

.node-settings-card footer{
    display:flex;
    justify-content:flex-end;
    padding-top:3px;
}

.node-settings-unit{
    display:flex;
    align-items:center;
    gap:6px;
}

.node-settings-unit input{
    flex:1;
}

.node-settings-unit em{
    color:#8393a5;
    font-size:7px;
    font-style:normal;
}

.node-settings-smtp-state,
.node-settings-security{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
}

.node-settings-smtp-state > div,
.node-settings-security > div{
    display:grid;
    gap:3px;
    padding:8px 9px;
    border-radius:7px;
    background:#f8fbfd;
}

.node-settings-smtp-state span,
.node-settings-security span{
    color:#8493a5;
    font-size:7px;
}

.node-settings-smtp-state strong,
.node-settings-security strong{
    overflow:hidden;
    color:#405b77;
    font-size:8px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.node-settings-smtp-note{
    display:flex;
    align-items:flex-start;
    gap:8px;
    padding:9px;
    border:1px solid #e1eaf2;
    border-radius:8px;
    background:#f8fbfe;
}

.node-settings-smtp-note svg{
    width:14px;
    height:14px;
    flex:0 0 auto;
    color:#377cbb;
}

.node-settings-smtp-note p{
    margin:0;
    color:#76889d;
    font-size:7px;
    line-height:1.5;
}

@media(max-width:1000px){
    .node-settings-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:800px){
    .node-settings-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:550px){
    .node-settings-kpis,
    .node-settings-two,
    .node-settings-smtp-state,
    .node-settings-security{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   NODE CONTROL - GLOBAL READABILITY
   Aumento moderato della tipografia interna.
   Non modifica topbar, sidebar o KPI principali.
   ========================================================= */

.node-control-shell .node-control-page .panel p,
.node-control-shell .node-control-page .panel .description,
.node-control-shell .node-control-page .panel .subtitle{
    font-size:9.5px !important;
    line-height:1.55 !important;
}

.node-control-shell .node-control-page .panel small{
    font-size:9px !important;
    line-height:1.45 !important;
}

.node-control-shell .node-control-page .panel label,
.node-control-shell .node-control-page .panel label > span,
.node-control-shell .node-control-page .panel dt{
    font-size:9px !important;
    line-height:1.4 !important;
}

.node-control-shell .node-control-page .panel dd{
    font-size:9.5px !important;
    line-height:1.4 !important;
}

.node-control-shell .node-control-page .panel h2{
    font-size:12.5px !important;
    line-height:1.3 !important;
}

.node-control-shell .node-control-page .panel h3{
    font-size:11.5px !important;
    line-height:1.35 !important;
}

.node-control-shell .node-control-page .panel h4{
    font-size:10.5px !important;
    line-height:1.35 !important;
}

.node-control-shell .node-control-page table th{
    font-size:9px !important;
    line-height:1.35 !important;
}

.node-control-shell .node-control-page table td{
    font-size:9.5px !important;
    line-height:1.45 !important;
}

.node-control-shell .node-control-page table td b,
.node-control-shell .node-control-page table td strong{
    font-size:9.5px !important;
}

.node-control-shell .node-control-page input:not([type="checkbox"]):not([type="radio"]),
.node-control-shell .node-control-page select,
.node-control-shell .node-control-page textarea{
    font-size:10px !important;
    line-height:1.4 !important;
}

.node-control-shell .node-control-page .btn{
    font-size:9.5px !important;
}

.node-control-shell .node-control-page .badge,
.node-control-shell .node-control-page [class*="-badge"],
.node-control-shell .node-control-page [class*="-state"],
.node-control-shell .node-control-page [class*="-status"]{
    font-size:8.5px !important;
}

.node-control-shell .node-control-page details summary{
    font-size:9px !important;
}

.node-control-shell .node-control-page code,
.node-control-shell .node-control-page pre{
    font-size:8.5px !important;
    line-height:1.5 !important;
}

/* Manteniamo i KPI principali grandi come sono */

.node-control-shell .node-control-page [class*="-kpi"] > strong,
.node-control-shell .node-control-page [class*="-kpis"] article > strong{
    font-size:inherit;
}

/* Settings: valori e descrizioni interne più leggibili */

.node-control-shell .node-settings-card header p{
    font-size:9px !important;
}

.node-control-shell .node-settings-toggle b{
    font-size:9.5px !important;
}

.node-control-shell .node-settings-toggle small{
    font-size:9px !important;
}

.node-control-shell .node-settings-smtp-state span,
.node-control-shell .node-settings-security span{
    font-size:9px !important;
}

.node-control-shell .node-settings-smtp-state strong,
.node-control-shell .node-settings-security strong{
    font-size:9.5px !important;
}

.node-control-shell .node-settings-smtp-note p{
    font-size:9px !important;
}

/* Audit / Log: leggibilità senza perdere compattezza */

.node-control-shell .node-audit-table th,
.node-control-shell .node-audit-table td{
    font-size:9px !important;
}

.node-control-shell .node-audit-identity b,
.node-control-shell .node-audit-identity small,
.node-control-shell .node-audit-system{
    font-size:8.5px !important;
}

.node-control-shell .node-audit-detail p,
.node-control-shell .node-audit-detail pre{
    font-size:8.5px !important;
}

/* Backup */

.node-control-shell .node-backup-table th,
.node-control-shell .node-backup-table td{
    font-size:9px !important;
}

.node-control-shell .node-backup-server small,
.node-control-shell .node-backup-recent small{
    font-size:8.5px !important;
}


/* =========================================================
   NODE CONTROL - GLOBAL READABILITY V2
   ========================================================= */

/* Testo generale dentro i pannelli */

.node-control-shell .node-control-page .panel p{
    font-size:11px !important;
    line-height:1.55 !important;
}

.node-control-shell .node-control-page .panel small{
    font-size:10.5px !important;
    line-height:1.45 !important;
}

.node-control-shell .node-control-page .panel label,
.node-control-shell .node-control-page .panel label > span,
.node-control-shell .node-control-page .panel dt{
    font-size:10.5px !important;
    line-height:1.4 !important;
}

.node-control-shell .node-control-page .panel dd{
    font-size:11.5px !important;
    line-height:1.4 !important;
}


/* Titoli interni */

.node-control-shell .node-control-page .panel h2{
    font-size:14px !important;
    line-height:1.3 !important;
}

.node-control-shell .node-control-page .panel h3{
    font-size:13px !important;
    line-height:1.35 !important;
}

.node-control-shell .node-control-page .panel h4{
    font-size:12px !important;
    line-height:1.35 !important;
}


/* Tabelle */

.node-control-shell .node-control-page table th{
    font-size:10.5px !important;
    line-height:1.4 !important;
}

.node-control-shell .node-control-page table td{
    font-size:11px !important;
    line-height:1.5 !important;
}

.node-control-shell .node-control-page table td b,
.node-control-shell .node-control-page table td strong{
    font-size:11px !important;
}


/* Form */

.node-control-shell .node-control-page input:not([type="checkbox"]):not([type="radio"]),
.node-control-shell .node-control-page select,
.node-control-shell .node-control-page textarea{
    font-size:11px !important;
}


/* Pulsanti */

.node-control-shell .node-control-page .btn{
    font-size:11px !important;
}


/* Stati e badge */

.node-control-shell .node-control-page .badge,
.node-control-shell .node-control-page [class*="-badge"],
.node-control-shell .node-control-page [class*="-state"],
.node-control-shell .node-control-page [class*="-status"]{
    font-size:10px !important;
}


/* BACKUP - correzione specifica elementi prima troppo piccoli */

.node-control-shell .node-backup-card header b{
    font-size:13px !important;
}

.node-control-shell .node-backup-card header small{
    font-size:10.5px !important;
}

.node-control-shell .node-backup-card header strong{
    font-size:10px !important;
}

.node-control-shell .node-backup-card dt{
    font-size:10.5px !important;
}

.node-control-shell .node-backup-card dd{
    font-size:12px !important;
}

.node-control-shell .node-backup-recent h4{
    font-size:12px !important;
}

.node-control-shell .node-backup-recent b{
    font-size:10.5px !important;
    line-height:1.4 !important;
}

.node-control-shell .node-backup-recent small,
.node-control-shell .node-backup-recent > div > span:last-child{
    font-size:10px !important;
}

.node-control-shell .node-backup-server b{
    font-size:11.5px !important;
}

.node-control-shell .node-backup-server small{
    font-size:10px !important;
}

.node-control-shell .node-backup-state{
    font-size:10px !important;
}


/* SETTINGS */

.node-control-shell .node-settings-card header p{
    font-size:10.5px !important;
}

.node-control-shell .node-settings-toggle b{
    font-size:11px !important;
}

.node-control-shell .node-settings-toggle small{
    font-size:10px !important;
}

.node-control-shell .node-settings-smtp-state span,
.node-control-shell .node-settings-security span{
    font-size:10.5px !important;
}

.node-control-shell .node-settings-smtp-state strong,
.node-control-shell .node-settings-security strong{
    font-size:11.5px !important;
}

.node-control-shell .node-settings-smtp-note p{
    font-size:10.5px !important;
}


/* AUDIT */

.node-control-shell .node-audit-table th{
    font-size:10.5px !important;
}

.node-control-shell .node-audit-table td{
    font-size:10.5px !important;
}

.node-control-shell .node-audit-identity b{
    font-size:10.5px !important;
}

.node-control-shell .node-audit-identity small,
.node-control-shell .node-audit-system{
    font-size:10px !important;
}

.node-control-shell .node-audit-detail summary{
    font-size:10.5px !important;
}

.node-control-shell .node-audit-detail p,
.node-control-shell .node-audit-detail pre{
    font-size:10px !important;
}


/* Codice e output tecnici */

.node-control-shell .node-control-page code,
.node-control-shell .node-control-page pre{
    font-size:10px !important;
    line-height:1.5 !important;
}


/* =========================================================
   NODE CONTROL - DOMAIN DNS CONFIGURATION
   ========================================================= */

body.node-domain-dns-opened{
    overflow:hidden;
}

.node-domain-dns-modal[hidden]{
    display:none !important;
}

.node-domain-dns-modal{
    position:fixed;
    inset:0;
    z-index:10000;
    display:grid;
    place-items:center;
    padding:28px;
}

.node-domain-dns-backdrop{
    position:absolute;
    inset:0;
    background:rgba(19,36,57,.48);
    backdrop-filter:blur(2px);
}

.node-domain-dns-dialog{
    position:relative;
    z-index:1;
    width:min(1120px,96vw);
    max-height:90vh;
    overflow:auto;
    padding:20px;
    border:1px solid #dfe7ef;
    border-radius:16px;
    background:#fff;
    box-shadow:0 24px 70px rgba(24,46,71,.22);
}

.node-domain-dns-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding-bottom:15px;
    border-bottom:1px solid #e5ebf1;
}

.node-domain-dns-head > div{
    display:flex;
    align-items:center;
    gap:10px;
}

.node-domain-dns-icon{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:10px;
    background:#eef5fb;
    color:#3479b8;
}

.node-domain-dns-icon svg{
    width:19px;
    height:19px;
}

.node-domain-dns-head h2{
    margin:0;
    color:#203a57;
    font-size:16px;
}

.node-domain-dns-head p{
    margin:3px 0 0;
    color:#71849a;
    font-size:11px;
    font-weight:700;
}

.node-domain-dns-loading,
.node-domain-dns-error{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:240px;
    color:#536d87;
}

.node-domain-dns-loading svg{
    width:24px;
    height:24px;
    animation:node-dns-spin 1s linear infinite;
}

.node-domain-dns-loading div{
    display:grid;
    gap:4px;
}

.node-domain-dns-loading strong{
    font-size:13px;
}

.node-domain-dns-loading span{
    font-size:10px;
    color:#8494a6;
}

@keyframes node-dns-spin{
    to{
        transform:rotate(360deg);
    }
}

.node-domain-dns-error{
    color:#ab4752;
    font-size:11px;
    font-weight:700;
}

.node-domain-dns-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
}

.node-domain-dns-summary article{
    display:grid;
    gap:4px;
    padding:11px 12px;
    border-radius:9px;
    background:#f7fafc;
}

.node-domain-dns-summary span{
    color:#7b8da0;
    font-size:9px;
    font-weight:700;
}

.node-domain-dns-summary strong{
    color:#29445f;
    font-size:18px;
}

.node-domain-dns-summary .ok{
    color:#278457;
}

.node-domain-dns-summary .warning{
    color:#a87329;
}

.node-domain-dns-summary .critical{
    color:#ab4752;
}

.node-domain-dns-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:13px 0;
}

.node-domain-dns-toolbar > span{
    color:#8291a3;
    font-size:9px;
}

.node-domain-dns-records{
    display:grid;
    gap:10px;
}

.node-domain-dns-record{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid #e0e8ef;
    border-radius:10px;
    background:#fff;
}

.node-domain-dns-record > header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.node-domain-dns-record > header > div{
    display:flex;
    align-items:center;
    gap:8px;
}

.node-domain-dns-record h3{
    margin:0;
    color:#29445f;
    font-size:13px;
}

.node-domain-dns-record-type{
    padding:4px 6px;
    border-radius:5px;
    background:#eef4f9;
    color:#58728d;
    font-size:9px;
    font-weight:900;
}

.node-domain-dns-status{
    font-size:10px;
    font-weight:900;
}

.node-domain-dns-status.ok{
    color:#278457;
}

.node-domain-dns-status.warning{
    color:#a87329;
}

.node-domain-dns-status.critical{
    color:#ab4752;
}

.node-domain-dns-meta{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:8px;
}

.node-domain-dns-meta > div,
.node-domain-dns-value{
    display:grid;
    gap:5px;
}

.node-domain-dns-meta span,
.node-domain-dns-value > span{
    color:#78899c;
    font-size:9px;
    font-weight:800;
}

.node-domain-dns-meta code,
.node-domain-dns-value code{
    display:block;
    padding:9px 10px;
    overflow:auto;
    border:1px solid #e1e8ef;
    border-radius:7px;
    background:#f7fafc;
    color:#3c5874;
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
    font-size:10px !important;
    line-height:1.5;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}

.node-domain-dns-value.required{
    position:relative;
}

.node-domain-dns-value.required > button{
    justify-self:start;
}

.node-domain-dns-value em{
    color:#9aa6b3;
    font-style:normal;
}

.node-domain-dns-note{
    margin:0;
    padding-top:2px;
    color:#77899e;
    font-size:10px !important;
    line-height:1.5;
}

@media(max-width:750px){

    .node-domain-dns-modal{
        padding:10px;
    }

    .node-domain-dns-dialog{
        width:100%;
        max-height:96vh;
    }

    .node-domain-dns-summary{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .node-domain-dns-meta{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   NODE CONTROL - DNS MODAL HIDDEN FIX
   ========================================================= */

.node-domain-dns-loading[hidden],
.node-domain-dns-error[hidden],
#node-domain-dns-content[hidden]{
    display:none !important;
}

#node-domain-dns-modal [hidden]{display:none!important;}

/* =========================================================
   NODE CONTROL - DNS RECORD STATUS COLORS
   ========================================================= */

/* VALORE PUBBLICATO: CORRETTO */
.node-domain-dns-value.current.dns-current-ok code{
    background:#edf9f1 !important;
    border-color:#bfe4cb !important;
    color:#286844 !important;
}

/* VALORE PUBBLICATO: DA MODIFICARE */
.node-domain-dns-value.current.dns-current-change code{
    background:#fff8e6 !important;
    border-color:#efd89d !important;
    color:#80601d !important;
}

/* VALORE PUBBLICATO: MANCANTE / NON GENERATO */
.node-domain-dns-value.current.dns-current-missing code,
.node-domain-dns-value.current.dns-current-not_generated code{
    background:#fff8e6 !important;
    border-color:#efd89d !important;
    color:#80601d !important;
}

/* VALORE CORRETTO DA COPIARE: SEMPRE AZZURRO */
.node-domain-dns-value.required code{
    background:#f3f8fc !important;
    border-color:#d6e5f1 !important;
    color:#385b7a !important;
}


/* =========================================================
   CLIENT CONTROL
   ========================================================= */

.client-control-brand small{
    letter-spacing:.14em;
}

.client-control-home-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-top:14px;
}

.client-control-home-card{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:12px;
    align-items:start;
    padding:18px;
}

.client-control-home-card > svg{
    width:22px;
    height:22px;
    color:#527ca4;
    margin-top:2px;
}

.client-control-home-card h3{
    margin:0 0 5px;
    color:#29445f;
    font-size:13px;
}

.client-control-home-card p{
    margin:0;
    color:#78899c;
    line-height:1.55;
}

.node-control-nav-locked-inline{
    grid-column:1 / -1;
    display:inline-flex;
    align-items:center;
    gap:6px;
    width:max-content;
    margin-top:4px;
    padding:5px 8px;
    border-radius:7px;
    background:#f2f5f8;
    color:#8291a2;
    font-size:9px;
    font-weight:800;
}

.node-control-nav-locked-inline svg{
    width:12px;
    height:12px;
}

.client-control-trigger{
    margin-left:6px;
}

@media(max-width:1100px){

    .client-control-home-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px){

    .client-control-home-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   SIRIA - RECAP URL DASHBOARD + HOSTNAME SMTP/TLS
   ========================================================= */

.siria-hostname-recap{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-top:14px;
    margin-bottom:14px;
}

.siria-endpoint-panel{
    min-width:0;
}

.siria-endpoint-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:14px;
}

.siria-endpoint-head > div{
    display:flex;
    align-items:flex-start;
    gap:10px;
    min-width:0;
}

.siria-endpoint-head h2{
    margin:0 0 4px;
}

.siria-endpoint-head p{
    margin:0;
    color:#718296;
    line-height:1.45;
}

.siria-endpoint-icon{
    width:20px;
    height:20px;
    color:#1670e8;
    flex:0 0 auto;
    margin-top:2px;
}

.siria-endpoint-list{
    display:grid;
    gap:7px;
}

.siria-endpoint-list > div{
    display:grid;
    grid-template-columns:10px minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    min-height:36px;
    padding:7px 10px;
    border:1px solid #dce8f3;
    border-radius:8px;
    background:#fbfdff;
}

.siria-endpoint-status{
    width:7px;
    height:7px;
    border-radius:50%;
    background:#35b869;
    box-shadow:0 0 0 3px #e5f7eb;
}

.siria-endpoint-list code{
    padding:0;
    background:none;
    border:0;
    color:#29465f;
    font-family:inherit;
    font-size:11px;
    font-weight:700;
    overflow-wrap:anywhere;
}

.siria-endpoint-tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:40px;
    padding:4px 7px;
    border-radius:999px;
    background:#e7f7ec;
    color:#289353;
    font-size:8px;
    font-weight:800;
    letter-spacing:.03em;
}

.siria-smtp-endpoint-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

@media(max-width:1100px){
    .siria-hostname-recap{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){
    .siria-smtp-endpoint-list{
        grid-template-columns:1fr;
    }
}


/* Siria - pulsante Aggiungi nodo disabilitato */
.node-add-disabled,
.node-add-disabled:hover,
.node-add-disabled:focus,
.node-add-disabled:active{
    background:#eef2f6 !important;
    border-color:#dfe6ee !important;
    color:#aeb9c8 !important;
    box-shadow:none !important;
    cursor:not-allowed !important;
    opacity:1 !important;
    pointer-events:none !important;
}

.node-add-disabled svg{
    color:#aeb9c8 !important;
}


/* =========================================================
   SIRIA - MODALE HOSTNAME SMTP / TLS
   ========================================================= */

.siria-smtp-endpoint-clickable{
    cursor:pointer;
    transition:
        border-color .15s ease,
        background .15s ease,
        transform .15s ease,
        box-shadow .15s ease;
}

.siria-smtp-endpoint-clickable:hover{
    background:#f5faff !important;
    border-color:#b9d7ef !important;
    box-shadow:0 5px 16px rgba(35,82,120,.08);
    transform:translateY(-1px);
}

.siria-smtp-endpoint-clickable:focus-visible{
    outline:2px solid #2b86d9;
    outline-offset:2px;
}

body.siria-smtp-modal-open{
    overflow:hidden;
}

.siria-smtp-modal[hidden]{
    display:none !important;
}

.siria-smtp-modal{
    position:fixed;
    inset:0;
    z-index:10050;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.siria-smtp-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(28,47,65,.50);
    backdrop-filter:blur(3px);
}

.siria-smtp-modal-dialog{
    position:relative;
    z-index:1;
    width:min(820px,100%);
    max-height:calc(100vh - 48px);
    overflow:auto;
    background:#ffffff;
    border:1px solid #d8e6f1;
    border-radius:16px;
    box-shadow:0 24px 70px rgba(28,56,78,.20);
}

.siria-smtp-modal-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    padding:22px 24px 18px;
    border-bottom:1px solid #e3edf5;
}

.siria-smtp-modal-header > div{
    display:flex;
    align-items:flex-start;
    gap:13px;
    min-width:0;
}

.siria-smtp-modal-icon{
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border-radius:11px;
    background:#edf6fd;
    color:#2478bd;
}

.siria-smtp-modal-icon svg{
    width:21px;
    height:21px;
}

.siria-smtp-modal-kicker{
    margin-bottom:3px;
    color:#71879a;
    font-size:10px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.siria-smtp-modal-header h2{
    margin:0;
    color:#29465f;
    font-size:20px;
}

.siria-smtp-modal-header p{
    margin:4px 0 0;
    color:#7c8e9d;
    font-size:12px;
}

.siria-smtp-modal-close{
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #dce7ef;
    border-radius:9px;
    background:#f7fafc;
    color:#6d8192;
    cursor:pointer;
}

.siria-smtp-modal-close:hover{
    background:#eef5fa;
}

.siria-smtp-modal-close svg{
    width:17px;
    height:17px;
}

.siria-smtp-modal-body{
    padding:20px 24px 24px;
}

.siria-smtp-modal-connection{
    display:grid;
    grid-template-columns:2fr .65fr 1fr .8fr;
    gap:10px;
    margin-bottom:14px;
}

.siria-smtp-modal-connection > div{
    padding:12px 13px;
    border:1px solid #dce8f2;
    border-radius:10px;
    background:#fbfdff;
}

.siria-smtp-modal-connection span{
    display:block;
    margin-bottom:4px;
    color:#8293a1;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
}

.siria-smtp-modal-connection strong{
    display:block;
    color:#31516b;
    font-size:11px;
    overflow-wrap:anywhere;
}

.siria-smtp-modal-online{
    display:flex !important;
    align-items:center;
    gap:7px;
    color:#29935a !important;
}

.siria-smtp-modal-online span{
    width:7px;
    height:7px;
    margin:0;
    border-radius:50%;
    background:#37b96c;
    box-shadow:0 0 0 3px #e4f6ea;
}

.siria-smtp-modal-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-bottom:18px;
}

.siria-smtp-modal-stats article{
    padding:14px;
    border:1px solid #dce8f2;
    border-radius:10px;
    background:#f8fbfe;
}

.siria-smtp-modal-stats span{
    display:block;
    margin-bottom:5px;
    color:#738899;
    font-size:10px;
    font-weight:700;
}

.siria-smtp-modal-stats strong{
    display:block;
    margin-bottom:4px;
    color:#294b68;
    font-size:20px;
}

.siria-smtp-modal-stats small{
    color:#95a3af;
    font-size:9px;
}

.siria-smtp-modal-table-wrap{
    border:1px solid #dce8f2;
    border-radius:11px;
    overflow:hidden;
}

.siria-smtp-modal-section-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    padding:14px 16px;
    border-bottom:1px solid #e3edf5;
    background:#fbfdff;
}

.siria-smtp-modal-section-head h3{
    margin:0 0 3px;
    color:#31516b;
    font-size:13px;
}

.siria-smtp-modal-section-head p{
    margin:0;
    color:#8293a1;
    font-size:10px;
}

.siria-smtp-modal-pending{
    flex:0 0 auto;
    padding:5px 8px;
    border-radius:999px;
    background:#fff6df;
    color:#8a6924;
    font-size:8px;
    font-weight:800;
}

.siria-smtp-modal-table-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) 120px 160px;
    gap:12px;
    padding:9px 15px;
    border-bottom:1px solid #e5edf4;
    background:#f3f7fa;
    color:#718596;
    font-size:8px;
    font-weight:800;
    text-transform:uppercase;
}

.siria-smtp-modal-empty{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:125px;
    padding:22px;
    color:#8093a2;
    text-align:left;
}

.siria-smtp-modal-empty svg{
    width:25px;
    height:25px;
    flex:0 0 auto;
    color:#8db4d1;
}

.siria-smtp-modal-empty strong{
    display:block;
    margin-bottom:4px;
    color:#526f86;
    font-size:11px;
}

.siria-smtp-modal-empty span{
    display:block;
    max-width:470px;
    font-size:10px;
    line-height:1.5;
}

@media(max-width:700px){
    .siria-smtp-modal{
        padding:12px;
    }

    .siria-smtp-modal-connection,
    .siria-smtp-modal-stats{
        grid-template-columns:1fr 1fr;
    }

    .siria-smtp-modal-table-head{
        grid-template-columns:minmax(0,1fr) 80px 110px;
    }
}


/* =========================================================
   SIRIA - DATI REALI MODALE HOSTNAME SMTP
   ========================================================= */

.siria-smtp-modal-live{
    flex:0 0 auto;
    padding:5px 8px;
    border-radius:999px;
    background:#e7f7ec;
    color:#278a51;
    font-size:8px;
    font-weight:800;
}

.siria-smtp-stat-date{
    font-size:13px !important;
    line-height:1.35;
}

.siria-smtp-users-head{
    grid-template-columns:
        minmax(0,1fr)
        80px
        90px
        155px;
}

.siria-smtp-user-row{
    display:grid;
    grid-template-columns:
        minmax(0,1fr)
        80px
        90px
        155px;
    gap:12px;
    align-items:center;
    min-height:43px;
    padding:9px 15px;
    border-bottom:1px solid #edf2f6;
    font-size:10px;
    color:#61798c;
}

.siria-smtp-user-row:last-child{
    border-bottom:0;
}

.siria-smtp-user-row strong{
    color:#31516b;
    overflow-wrap:anywhere;
}

.siria-smtp-user-current,
.siria-smtp-user-history{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    min-width:48px;
    padding:4px 7px;
    border-radius:999px;
    font-size:8px;
    font-weight:800;
}

.siria-smtp-user-current{
    background:#e7f7ec;
    color:#278a51;
}

.siria-smtp-user-history{
    background:#eef2f6;
    color:#7b8996;
}

.siria-smtp-messages-section{
    margin-top:14px;
}

.siria-smtp-messages-head{
    grid-template-columns:
        minmax(0,1fr)
        110px
        55px
        90px
        145px;
}

.siria-smtp-message-row{
    display:grid;
    grid-template-columns:
        minmax(0,1fr)
        110px
        55px
        90px
        145px;
    gap:12px;
    align-items:center;
    min-height:43px;
    padding:9px 15px;
    border-bottom:1px solid #edf2f6;
    font-size:9px;
    color:#657c8e;
}

.siria-smtp-message-row:last-child{
    border-bottom:0;
}

.siria-smtp-message-row strong{
    color:#31516b;
    overflow-wrap:anywhere;
}

.siria-smtp-message-row code{
    padding:0;
    background:none;
    border:0;
    color:#4e6c83;
    font-size:9px;
    overflow-wrap:anywhere;
}

.siria-smtp-message-status{
    display:inline-flex;
    width:max-content;
    padding:4px 7px;
    border-radius:999px;
    background:#edf6fd;
    color:#3979a7;
    font-size:8px;
    font-weight:800;
}

.siria-smtp-dynamic-empty{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:88px;
    padding:20px;
    color:#8798a6;
    font-size:10px;
    text-align:center;
}

@media(max-width:800px){

    .siria-smtp-users-head,
    .siria-smtp-user-row{
        grid-template-columns:
            minmax(0,1fr)
            65px
            70px
            110px;
    }

    .siria-smtp-messages-head,
    .siria-smtp-message-row{
        grid-template-columns:
            minmax(0,1fr)
            90px
            45px
            75px
            110px;
    }
}

