/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* ============================================================
   1. STRUTTURA GENERALE
   ============================================================ */

.app-shell[b-2sn4ogqh2d] {
    min-height: 100vh;
    background: #101418;
    color: #f5f5f5;
}


/* ============================================================
   2. BARRA SUPERIORE
   ============================================================ */

.topbar[b-2sn4ogqh2d] {
    height: 64px;
    background: #171c22;
    border-bottom: 1px solid #2a313a;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 28px;
}

.brand[b-2sn4ogqh2d] {
    font-size: 20px;
    font-weight: 700;
}

.server-status[b-2sn4ogqh2d] {
    font-size: 13px;
    font-weight: 600;
    color: #67d391;
}

.top-right-area[b-2sn4ogqh2d] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.logout-button[b-2sn4ogqh2d] {
    min-width: 110px;
}

/* ============================================================
   3. CONTENUTO PAGINA
   ============================================================ */

.main-content[b-2sn4ogqh2d] {
    padding: 28px;
}


/* ============================================================
   4. ERRORE BLAZOR
   ============================================================ */

#blazor-error-ui[b-2sn4ogqh2d] {
    background: #b32121;
    color: white;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.3);
    display: none;
    left: 0;
    padding: 0.8rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-2sn4ogqh2d] {
        cursor: pointer;
        position: absolute;
        right: 1rem;
    }

/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-8q4ya1thyh],
.components-reconnect-repeated-attempt-visible[b-8q4ya1thyh],
.components-reconnect-failed-visible[b-8q4ya1thyh],
.components-pause-visible[b-8q4ya1thyh],
.components-resume-failed-visible[b-8q4ya1thyh],
.components-rejoining-animation[b-8q4ya1thyh] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-8q4ya1thyh],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-8q4ya1thyh],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-8q4ya1thyh],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-8q4ya1thyh],
#components-reconnect-modal.components-reconnect-retrying[b-8q4ya1thyh],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-8q4ya1thyh],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-8q4ya1thyh],
#components-reconnect-modal.components-reconnect-failed[b-8q4ya1thyh],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-8q4ya1thyh] {
    display: block;
}


#components-reconnect-modal[b-8q4ya1thyh] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-8q4ya1thyh 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-8q4ya1thyh 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-8q4ya1thyh 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-8q4ya1thyh]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-8q4ya1thyh 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-8q4ya1thyh {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-8q4ya1thyh {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-8q4ya1thyh {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-8q4ya1thyh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-8q4ya1thyh] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-8q4ya1thyh] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-8q4ya1thyh] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-8q4ya1thyh] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-8q4ya1thyh] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-8q4ya1thyh] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-8q4ya1thyh 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-8q4ya1thyh] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-8q4ya1thyh {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* ============================================================
   1. PAGINA
   ============================================================ */

.server-manager-page[b-0uunkuq44d] {
    max-width: 1500px;
    margin: 0 auto;
}


/* ============================================================
   2. INTESTAZIONE
   ============================================================ */

.header-row[b-0uunkuq44d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

.header-row h1[b-0uunkuq44d] {
    margin: 0;
    font-size: 30px;
    font-weight: 700;
}

.subtitle[b-0uunkuq44d] {
    margin-top: 6px;
    color: #9aa4af;
}


/* ============================================================
   3. FORM NUOVA / MODIFICA ISTANZA - MODALE
   ============================================================ */

.instance-form-overlay[b-0uunkuq44d] {
    position: fixed;
    inset: 0;
    z-index: 3000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background: rgba(0, 0, 0, 0.78);
    backdrop-filter: blur(3px);
}

.instance-form-dialog[b-0uunkuq44d] {
    width: min(860px, 96vw);
    max-height: 90vh;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background: #171c22;
    border: 1px solid #39424d;
    border-radius: 14px;

    box-shadow:
        0 24px 80px rgba(0, 0, 0, 0.65),
        0 0 0 1px rgba(255, 255, 255, 0.03);
}

.instance-form-header[b-0uunkuq44d] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;

    padding: 22px 24px 18px;

    border-bottom: 1px solid #2a313a;
}

.instance-form-header h3[b-0uunkuq44d] {
    margin: 0;
    font-size: 24px;
}

.instance-form-header p[b-0uunkuq44d] {
    margin: 7px 0 0;
    color: #9aa4af;
}

.instance-form-close[b-0uunkuq44d] {
    width: 36px;
    height: 36px;

    flex: 0 0 36px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    color: #c7ced6;
    background: transparent;
    border: 1px solid #343c46;
    border-radius: 8px;

    font-size: 25px;
    line-height: 1;

    cursor: pointer;
}

.instance-form-close:hover[b-0uunkuq44d] {
    color: #ffffff;
    background: #252c34;
    border-color: #4b5663;
}

.instance-form-body[b-0uunkuq44d] {
    padding: 24px;
    overflow-y: auto;
}

.instance-form-grid[b-0uunkuq44d] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 22px;
}

.form-field[b-0uunkuq44d] {
    min-width: 0;
}

.form-label[b-0uunkuq44d] {
    display: block;
    margin-bottom: 7px;
    font-weight: 600;
}

.form-control[b-0uunkuq44d],
.form-select[b-0uunkuq44d] {
    width: 100%;
    min-height: 38px;

    background: #0f1317;
    border: 1px solid #343c46;
    color: #f5f5f5;
}

.form-control:focus[b-0uunkuq44d],
.form-select:focus[b-0uunkuq44d] {
    background: #0f1317;
    color: #f5f5f5;
    border-color: #6c757d;
    box-shadow: none;
}

.form-control[readonly][b-0uunkuq44d] {
    background: #12171c;
    color: #aeb7c1;
}

.form-text[b-0uunkuq44d] {
    margin-top: 6px;
}

.trust-checkbox-row[b-0uunkuq44d] {
    display: flex;
    align-items: center;
    gap: 10px;

    margin-top: 22px;
    padding: 13px 14px;

    background: #11161b;
    border: 1px solid #2d353e;
    border-radius: 9px;
}

.trust-checkbox-row .form-check-input[b-0uunkuq44d] {
    margin: 0;
    flex: 0 0 auto;
}

.trust-checkbox-row .form-check-label[b-0uunkuq44d] {
    margin: 0;
    cursor: pointer;
}

.instance-form-footer[b-0uunkuq44d] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;

    padding: 18px 24px;

    border-top: 1px solid #2a313a;
    background: #14191f;
}


/* ============================================================
   4. SEZIONE ISTANZE
   ============================================================ */

.instances-section[b-0uunkuq44d] {
    margin-top: 28px;
}

.instances-section h2[b-0uunkuq44d] {
    margin-bottom: 18px;
    font-size: 22px;
}

.empty-state[b-0uunkuq44d] {
    background: #171c22;
    border: 1px dashed #343c46;
    border-radius: 12px;
    padding: 30px;
    color: #9aa4af;
    text-align: center;
}


/* ============================================================
   5. CARD ISTANZA
   ============================================================ */

.instance-card[b-0uunkuq44d] {
    background: #171c22;
    border: 1px solid #2a313a;
    border-radius: 12px;
    padding: 22px;
    margin-bottom: 18px;
}

.instance-card-header[b-0uunkuq44d] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.instance-card h3[b-0uunkuq44d] {
    margin: 0 0 8px 0;
    font-size: 20px;
}


/* ============================================================
   6. STATO ISTANZA
   ============================================================ */

.status-stopped[b-0uunkuq44d] {
    color: #ff8a8a;
    font-size: 13px;
    font-weight: 700;
}

.status-running[b-0uunkuq44d] {
    color: #67d391;
    font-size: 13px;
    font-weight: 700;
}

.status-expired[b-0uunkuq44d] {
    color: #ff6b6b;
    font-size: 13px;
    font-weight: 700;
}

.status-security-error[b-0uunkuq44d] {
    color: #ff6b6b;
    font-size: 13px;
    font-weight: 700;
}

.runtime-error-message[b-0uunkuq44d] {
    margin-top: 7px;
    color: #ff9b9b;
    font-size: 13px;
    max-width: 520px;
}

.runtime-error-code[b-0uunkuq44d] {
    margin-top: 3px;
    color: #8f98a3;
    font-size: 11px;
}


/* ============================================================
   7. DETTAGLI ISTANZA
   ============================================================ */

.instance-details[b-0uunkuq44d] {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 16px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #2a313a;
}

.instance-details div[b-0uunkuq44d] {
    color: #c7ced6;
}


/* ============================================================
   8. PULSANTI
   ============================================================ */

.instance-actions[b-0uunkuq44d] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.form-actions[b-0uunkuq44d] {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}


/* ============================================================
   9. FINESTRE DI CONFERMA
   ============================================================ */

.confirm-overlay[b-0uunkuq44d] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.confirm-dialog[b-0uunkuq44d] {
    width: min(520px, 92vw);
    max-height: 85vh;
    overflow-y: auto;
    background: #1e1e1e;
    border: 1px solid #444;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
}

.confirm-dialog h3[b-0uunkuq44d] {
    margin-top: 0;
}

.recovery-dialog[b-0uunkuq44d] {
    width: min(650px, 92vw);
}

.recovery-item[b-0uunkuq44d] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 14px 0;
    border-bottom: 1px solid #444;
}


/* ============================================================
   10. RECUPERO DATABASE SQL
   ============================================================ */

.recovery-database-item[b-0uunkuq44d] {
    margin-top: 15px;
    padding: 16px;
    border: 1px solid #444;
    border-radius: 8px;
}

.recovery-database-item + .recovery-database-item[b-0uunkuq44d] {
    margin-top: 12px;
}


/* ============================================================
   11. RESPONSIVE
   ============================================================ */

@media (max-width: 900px) {

    .header-row[b-0uunkuq44d] {
        flex-direction: column;
        align-items: flex-start;
    }

    .instance-card-header[b-0uunkuq44d] {
        flex-direction: column;
    }

    .instance-details[b-0uunkuq44d] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {

    .instance-form-overlay[b-0uunkuq44d] {
        padding: 10px;
        align-items: flex-start;
    }

    .instance-form-dialog[b-0uunkuq44d] {
        width: 100%;
        max-height: calc(100vh - 20px);
        margin-top: 10px;
    }

    .instance-form-grid[b-0uunkuq44d] {
        grid-template-columns: 1fr;
    }

    .instance-form-header[b-0uunkuq44d],
    .instance-form-body[b-0uunkuq44d],
    .instance-form-footer[b-0uunkuq44d] {
        padding-left: 16px;
        padding-right: 16px;
    }

    .instance-form-footer[b-0uunkuq44d] {
        flex-wrap: wrap;
    }

    .form-actions[b-0uunkuq44d] {
        flex-wrap: wrap;
    }
}
/* /Components/Pages/Login.razor.rz.scp.css */
/* ============================================================
   1. SFONDO PAGINA
   ============================================================ */

.login-overlay[b-ie0zjra8jo] {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0, 0, 0, 0.55);
    z-index: 1000;
}


/* ============================================================
   2. CARD LOGIN
   ============================================================ */

.login-card[b-ie0zjra8jo] {
    width: 100%;
    max-width: 440px;
    padding: 32px;
    border-radius: 14px;
    background: #1f232a;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
}


/* ============================================================
   3. TITOLO
   ============================================================ */

.login-title[b-ie0zjra8jo] {
    margin: 0 0 4px 0;
    text-align: center;
    font-weight: 700;
}


/* ============================================================
   4. SOTTOTITOLO
   ============================================================ */

.login-subtitle[b-ie0zjra8jo] {
    margin-bottom: 28px;
    text-align: center;
    opacity: 0.7;
    font-size: 0.95rem;
}


/* ============================================================
   5. GRUPPI FORM
   ============================================================ */

.login-card .mb-3[b-ie0zjra8jo],
.login-card .mb-4[b-ie0zjra8jo] {
    width: 100%;
}


/* ============================================================
   6. LABEL
   ============================================================ */

.login-card .form-label[b-ie0zjra8jo] {
    display: block;
    width: 100%;
    margin-bottom: 7px;
    text-align: left;
    font-weight: 500;
}


/* ============================================================
   7. INPUT TESTO / PASSWORD
   ============================================================ */

.login-card .form-control[b-ie0zjra8jo] {
    display: block;
    width: 100%;
    min-height: 46px;
    box-sizing: border-box;
    margin: 0;
}


/* ============================================================
   8. CHECKBOX RICORDAMI
   ============================================================ */

.login-card .form-check[b-ie0zjra8jo] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding-left: 0;
    margin-top: 4px;
}


/* ============================================================
   9. CHECKBOX
   ============================================================ */

.login-card .form-check-input[b-ie0zjra8jo] {
    position: static;
    float: none;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin: 0;
}


/* ============================================================
   10. LABEL CHECKBOX
   ============================================================ */

.login-card .form-check-label[b-ie0zjra8jo] {
    margin: 0;
    line-height: 18px;
}


/* ============================================================
   11. PULSANTE
   ============================================================ */

.login-button[b-ie0zjra8jo] {
    display: block;
    width: 100%;
    min-height: 46px;
    margin-top: 6px;
    font-weight: 600;
}
/* /Components/Pages/Users.razor.rz.scp.css */
.users-page[b-qy154ecnot] {
    max-width: 1200px;
    margin: 0 auto;
}

.users-header[b-qy154ecnot] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
}

    .users-header h1[b-qy154ecnot] {
        margin: 0;
    }

    .users-header p[b-qy154ecnot] {
        margin: 6px 0 0;
        color: #9aa4af;
    }

.users-list[b-qy154ecnot] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.user-card[b-qy154ecnot] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 18px 20px;
    background: #171c22;
    border: 1px solid #343c46;
    border-radius: 12px;
}

.user-email[b-qy154ecnot] {
    margin-top: 4px;
    color: #9aa4af;
}

.user-enabled[b-qy154ecnot],
.user-disabled[b-qy154ecnot] {
    display: inline-block;
    margin-top: 8px;
    font-size: 12px;
    font-weight: 700;
}

.user-enabled[b-qy154ecnot] {
    color: #57d98d;
}

.user-disabled[b-qy154ecnot] {
    color: #ff6b6b;
}

.user-actions[b-qy154ecnot] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.user-overlay[b-qy154ecnot] {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(0, 0, 0, 0.78);
    backdrop-filter: blur(3px);
}

.user-dialog[b-qy154ecnot] {
    width: min(520px, 96vw);
    padding: 28px;
    background: #171c22;
    border: 1px solid #39424d;
    border-radius: 14px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.65);
}

    .user-dialog h3[b-qy154ecnot] {
        margin-bottom: 24px;
    }

.user-form-actions[b-qy154ecnot] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
}

.user-dialog .form-control[b-qy154ecnot] {
    width: 100%;
    box-sizing: border-box;
}
