:root{
    --ws-sec-green:#07513e;
    --ws-sec-green2:#087258;
    --ws-sec-soft:#edf5f1;
    --ws-sec-cream:#f8f5ee;
    --ws-sec-border:#d9e3de;
    --ws-sec-text:#365148;
    --ws-sec-muted:#7a8982;
}


/* ============================================================
   BOTÓN HEADER
   ============================================================ */

.ws-security-button{
    width:34px;
    height:34px;

    display:grid;
    place-items:center;

    padding:0;

    border:
        1px solid #d8e2dd !important;

    border-radius:50% !important;

    background:#fff !important;

    color:#07513e !important;

    cursor:pointer;

    box-shadow:none !important;

    transition:
        background .15s ease,
        transform .15s ease !important;
}


.ws-security-button:hover{
    background:#edf5f1 !important;
    transform:translateY(-1px);
}


.ws-security-button svg{
    width:16px;
    height:16px;
}


/* ============================================================
   MODAL
   ============================================================ */

.ws-security-overlay{
    position:fixed;

    inset:0;

    z-index:999999;

    display:none;

    align-items:center;
    justify-content:center;

    padding:22px;

    background:
        rgba(19,42,34,.36);

    backdrop-filter:
        blur(3px);
}


.ws-security-overlay.open{
    display:flex;
}


.ws-security-modal{
    width:min(460px,100%);

    overflow:hidden;

    background:#fff;

    border:
        1px solid #d8e2dd;

    border-radius:15px;

    box-shadow:
        0 24px 70px
        rgba(20,54,42,.16);
}


.ws-security-modal-head{
    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:20px 22px;

    border-bottom:
        1px solid #e4e9e6;
}


.ws-security-modal-title{
    display:flex;
    align-items:center;
    gap:10px;

    color:#073f31;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:19px;
    font-weight:600;
}


.ws-security-title-icon{
    width:32px;
    height:32px;

    display:grid;
    place-items:center;

    border-radius:9px;

    background:#edf5f1;

    color:#087258;
}


.ws-security-title-icon svg{
    width:17px;
    height:17px;
}


.ws-security-close{
    border:0 !important;

    background:transparent !important;

    color:#78877f !important;

    font-size:21px;

    cursor:pointer;
}


.ws-security-body{
    padding:22px;
}


.ws-security-user{
    margin-bottom:17px;

    padding:11px 12px;

    border-radius:9px;

    background:#f7faf8;

    color:#718078;

    font-size:10px;
}


.ws-security-field{
    margin-bottom:14px;
}


.ws-security-field label{
    display:block;

    margin-bottom:6px;

    color:#536a60;

    font-size:10px;

    font-weight:700;
}


.ws-security-field input{
    width:100%;

    min-height:42px;

    box-sizing:border-box;

    padding:9px 11px;

    border:
        1px solid #cedad4;

    border-radius:9px;

    background:#fff;

    color:#344f46;

    font-family:
        Inter,
        Arial,
        sans-serif;

    font-size:11px;
}


.ws-security-field input:focus{
    outline:
        2px solid
        rgba(7,81,62,.08);

    border-color:#07513e;
}


.ws-security-message{
    display:none;

    margin-bottom:14px;

    padding:10px 12px;

    border-radius:8px;

    font-size:10px;

    line-height:1.55;
}


.ws-security-message.error{
    display:block;

    border:
        1px solid #efc7c0;

    background:#fff3f0;

    color:#9f3025;
}


.ws-security-message.ok{
    display:block;

    border:
        1px solid #cfe5da;

    background:#edf8f2;

    color:#087258;
}


.ws-security-submit{
    width:100%;

    min-height:43px;

    border:
        1px solid #07513e !important;

    border-radius:9px !important;

    background:#07513e !important;

    color:#fff !important;

    font-size:10.5px;

    font-weight:750;

    cursor:pointer;
}


/* ============================================================
   SESIÓN EXPIRADA
   ============================================================ */

.ws-session-card{
    width:min(390px,100%);

    padding:30px;

    text-align:center;

    background:#fff;

    border:
        1px solid #d8e2dd;

    border-radius:15px;

    box-shadow:
        0 24px 70px
        rgba(20,54,42,.17);
}


.ws-session-icon{
    width:58px;
    height:58px;

    display:grid;
    place-items:center;

    margin:0 auto 15px;

    border-radius:50%;

    background:#edf5f1;

    color:#07513e;

    font-size:24px;
}


.ws-session-card h2{
    margin:0 0 9px;

    color:#073f31;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:23px;

    font-weight:500;
}


.ws-session-card p{
    margin:0 0 18px;

    color:#78877f;

    font-size:10.5px;

    line-height:1.6;
}


.ws-session-card button{
    min-height:39px;

    padding:8px 18px;

    border:0 !important;

    border-radius:20px !important;

    background:#07513e !important;

    color:#fff !important;

    font-size:10px;

    font-weight:700;

    cursor:pointer;
}


/* ============================================================
   OLVIDÉ CONTRASEÑA EN LOGIN
   ============================================================ */

.ws-forgot-entry{
    margin-top:9px;

    text-align:right;

    font-size:10px;
}


.ws-forgot-entry a{
    color:#07513e;

    font-weight:650;

    text-decoration:none;
}


/* ============================================================
   PÁGINAS PASSWORD
   ============================================================ */

.ws-auth-page{
    min-height:100vh;

    display:flex;

    align-items:center;
    justify-content:center;

    padding:30px;

    background:#f8f5ee;

    font-family:
        Inter,
        Arial,
        sans-serif;
}


.ws-auth-card{
    position:relative;

    width:min(470px,100%);

    overflow:hidden;

    padding:35px;

    background:#fff;

    border:
        1px solid #d9e3de;

    border-radius:15px;
}


.ws-auth-card::after{
    content:"";

    position:absolute;

    width:95px;
    height:95px;

    right:-36px;
    top:-38px;

    border:
        1px solid
        rgba(65,174,126,.22);

    border-radius:24px;

    transform:rotate(12deg);
}


.ws-auth-logo{
    margin-bottom:28px;

    color:#07513e;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:23px;

    letter-spacing:.10em;
}


.ws-auth-card h1{
    margin:0 0 9px;

    color:#073f31;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:28px;

    font-weight:500;
}


.ws-auth-card > p{
    margin:0 0 23px;

    color:#78877f;

    font-size:11px;

    line-height:1.65;
}


.ws-auth-form label{
    display:block;

    margin:0 0 6px;

    color:#536a60;

    font-size:10px;

    font-weight:700;
}


.ws-auth-form input{
    width:100%;

    min-height:43px;

    box-sizing:border-box;

    margin-bottom:14px;

    padding:10px 12px;

    border:
        1px solid #cedad4;

    border-radius:9px;

    color:#344f46;

    font:inherit;

    font-size:11px;
}


.ws-auth-form button{
    width:100%;

    min-height:44px;

    margin-top:4px;

    border:0;

    border-radius:9px;

    background:#07513e;

    color:#fff;

    font:inherit;

    font-size:10.5px;

    font-weight:750;

    cursor:pointer;
}


.ws-auth-result{
    display:none;

    margin-bottom:15px;

    padding:11px 12px;

    border-radius:8px;

    font-size:10px;

    line-height:1.55;
}


.ws-auth-result.ok{
    display:block;

    background:#edf8f2;

    color:#087258;

    border:
        1px solid #cfe5da;
}


.ws-auth-result.error{
    display:block;

    background:#fff3f0;

    color:#9f3025;

    border:
        1px solid #efc7c0;
}


.ws-auth-back{
    display:block;

    margin-top:17px;

    text-align:center;

    color:#07513e;

    font-size:10px;

    font-weight:700;

    text-decoration:none;
}


.ws-debug-reset{
    display:none;

    margin-top:12px;

    text-align:center;
}


.ws-debug-reset a{
    display:inline-flex;

    padding:9px 15px;

    border:
        1px solid #c9d9d1;

    border-radius:18px;

    color:#07513e;

    font-size:9px;

    font-weight:700;

    text-decoration:none;
}
