:root{
    --main:#0f3d2e;
    --accent:#8bd450;
    --bg:#f3f7f4;
    --text:#17231d;
    --muted:#68756e;
    --card:#ffffff;
    --border:#dce7df;
    --danger:#b42318;
    --warning:#b7791f;
    }

/* ============================
   AJUSTE FINAL FOTO DE PERFIL
============================ */

/* Foto del login */
.login-card .login-profile-photo {
    width: 130px !important;
    height: 130px !important;
    max-width: 130px !important;
    max-height: 130px !important;
    min-width: 130px !important;
    min-height: 130px !important;
    object-fit: cover !important;
    display: block !important;
    margin: 0 auto 28px auto !important;
    border-radius: 28px !important;
    border: 6px solid #f4faf6 !important;
    box-shadow: 0 14px 34px rgba(15, 61, 46, 0.14) !important;
    background: #ffffff !important;
}

/* Caja del login para que no se deforme */
.login-card {
    max-width: 520px !important;
    overflow: hidden !important;
}

/* Foto superior derecha */
.user-chip.profile-chip {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 7px 12px 7px 7px !important;
    border-radius: 999px !important;
    max-height: 62px !important;
}

/* Imagen del perfil superior */
.user-chip.profile-chip .top-profile-photo,
.top-profile-photo {
    width: 42px !important;
    height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    display: block !important;
    border: 2px solid #e4f1e8 !important;
}

/* Texto superior */
.top-profile-info {
    display: flex !important;
    flex-direction: column !important;
    line-height: 1.1 !important;
}

.top-profile-info span {
    font-weight: 700 !important;
    font-size: 14px !important;
    color: #10241c !important;
}

.top-profile-info small {
    font-size: 12px !important;
    color: #5c7067 !important;
}

/* Perfil lateral */
.sidebar-profile {
    margin: 14px 20px 24px !important;
    padding: 10px !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

/* Imagen del perfil lateral */
.sidebar-profile .sidebar-profile-photo,
.sidebar-profile-photo {
    width: 44px !important;
    height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    display: block !important;
    border: 2px solid rgba(255, 255, 255, 0.35) !important;
}

/* Texto lateral */
.sidebar-profile strong {
    display: block !important;
    color: #ffffff !important;
    font-size: 13px !important;
    line-height: 1.1 !important;
}

.sidebar-profile span {
    display: block !important;
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 11px !important;
    margin-top: 3px !important;
}

/* Evita que cualquier imagen dentro del perfil se agrande */
.profile-chip img,
.sidebar-profile img,
.login-card img.login-profile-photo {
    flex-shrink: 0 !important;
}

/* ============================
   AJUSTE LOGO EN VALIDACIÓN PÚBLICA
============================ */

.validation-card .validation-logo,
.validation-card img.validation-logo {
    width: 74px !important;
    height: 74px !important;
    max-width: 74px !important;
    max-height: 74px !important;
    min-width: 74px !important;
    min-height: 74px !important;
    object-fit: contain !important;
    display: block !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    padding: 8px !important;
    border: 1px solid #dce7df !important;
}

/* Si la imagen de validación quedó sin clase, esto la controla también */
.validation-card > img,
.validation-card header img,
.validation-card .logo-box img {
    width: 74px !important;
    height: 74px !important;
    max-width: 74px !important;
    max-height: 74px !important;
    object-fit: contain !important;
    border-radius: 18px !important;
}

/* ============================
   CAMPO DE CONTRASEÑA CON OJO
============================ */

.password-wrapper {
    position: relative;
    width: 100%;
}

.password-wrapper input {
    width: 100%;
    padding-right: 52px !important;
}

.password-toggle {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    color: #0f3d2e;
    padding: 6px;
    border-radius: 50%;
    transition: background 0.2s ease, transform 0.2s ease;
}

.password-toggle:hover {
    background: rgba(15, 61, 46, 0.08);
}

.password-toggle:active {
    transform: translateY(-50%) scale(0.95);
}

*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--main);text-decoration:none} a:hover{text-decoration:underline}
.app-shell{display:flex;min-height:100vh}.sidebar{width:280px;background:#0b2f24;color:white;padding:24px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:26px}.brand{display:flex;gap:12px;align-items:center}.brand img{width:52px;height:52px;object-fit:contain;background:white;border-radius:14px;padding:6px}.brand strong{display:block;line-height:1.15}.brand span,.sidebar-footer small{color:#bcd2c6;font-size:12px}.nav-menu{display:flex;flex-direction:column;gap:8px}.nav-menu a{color:#e9f4ee;padding:12px 14px;border-radius:12px}.nav-menu a.active,.nav-menu a:hover{background:rgba(139,212,80,.16);text-decoration:none}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:16px}.sidebar-footer a{color:white;display:block;margin-top:5px}.main-content{flex:1;padding:30px;max-width:calc(100% - 280px)}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.topbar h1{margin:0;font-size:30px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:12px;font-weight:700;margin:0 0 6px}.user-chip{display:flex;gap:12px;align-items:center;background:white;border:1px solid var(--border);border-radius:999px;padding:8px 14px}.card,.stat-card{background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:0 14px 38px rgba(15,61,46,.07)}.card{padding:22px;margin-bottom:22px}.card.narrow{max-width:980px}.card-header{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:16px}.card-header h2,.card h2{margin:0}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:18px;margin-bottom:22px}.stat-card{padding:22px}.stat-card span{display:block;color:var(--muted);font-size:14px}.stat-card strong{display:block;margin-top:8px;font-size:34px;color:var(--main)}.stat-card.warning strong{color:var(--warning)}.quick-actions,.actions-bar,.filters,.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.btn{border:0;border-radius:12px;padding:11px 16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn:hover{text-decoration:none;filter:brightness(.98)}.btn-primary{background:var(--main);color:white}.btn-secondary{background:#e8f3ec;color:var(--main)}.btn-accent{background:var(--accent);color:#102618}.btn-danger{background:var(--danger);color:white}.btn-light{background:#f2f5f3;color:#24342b;border:1px solid var(--border)}.table-responsive{width:100%;overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#516158;background:#f8fbf9}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions .danger{color:var(--danger)}.table-link{font-weight:700}.empty{text-align:center;color:var(--muted);padding:30px}.muted{color:var(--muted)}.search-form{display:flex;gap:10px;margin:16px 0}.search-form input{flex:1}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-stack{display:grid;gap:14px}.span-2{grid-column:span 2}label{font-weight:700;color:#263b30;font-size:14px}input,select,textarea{width:100%;margin-top:7px;border:1px solid var(--border);border-radius:12px;padding:12px 13px;font:inherit;background:white;color:var(--text)}textarea{resize:vertical}.alert{padding:13px 15px;border-radius:14px;margin:12px 0;border:1px solid}.alert-success{background:#edf8ea;border-color:#cceac3;color:#27632a}.alert-danger{background:#fff1f0;border-color:#ffd0cc;color:#99231a}.alert-warning{background:#fff8e8;border-color:#f3dda5;color:#744b00}.status-badge{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.badge-ok{background:#e7f8e2;color:#1d672b}.badge-warning{background:#fff4d9;color:#9a5d00}.badge-danger{background:#ffe8e5;color:#9b2117}.badge-muted{background:#eef1ef;color:#546158}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px}.detail-grid p{background:#f9fbfa;border:1px solid var(--border);border-radius:14px;margin:0;padding:13px}.login-body,.validation-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#dff5d2,transparent 34%),var(--bg);padding:20px}.login-card,.validation-card{width:min(560px,100%);background:white;border:1px solid var(--border);border-radius:28px;box-shadow:0 24px 70px rgba(15,61,46,.14);padding:34px}.login-logo,.validation-logo{width:78px;height:78px;object-fit:contain;border-radius:18px;background:#f5f8f6;padding:8px}.validation-card{width:min(760px,100%)}.validation-form{display:flex;gap:10px;margin:20px 0}.valid-box{background:#edf8ea;border:1px solid #cceac3;border-radius:18px;padding:18px;margin:16px 0}.invalid-box{background:#fff1f0;border:1px solid #ffd0cc;border-radius:18px;padding:18px;margin:16px 0}.valid-box h2,.invalid-box h2{margin:0 0 6px}.public-detail{margin-top:14px}.legal-public{font-size:12px;color:var(--muted);text-align:center;margin-top:22px}
@media(max-width:960px){.app-shell{display:block}.sidebar{position:relative;width:100%;height:auto}.main-content{max-width:none;padding:18px}.stats-grid{grid-template-columns:repeat(2,1fr)}.form-grid,.detail-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.topbar{align-items:flex-start;gap:14px;flex-direction:column}.card-header{align-items:flex-start;flex-direction:column}.search-form,.validation-form{flex-direction:column}}
@media(max-width:560px){.stats-grid{grid-template-columns:1fr}.actions{display:block}.actions a{display:inline-block;margin:4px 8px 4px 0}}

