/*
 * SGC Profamilia UI
 * Diseño visual aislado del tema activo de WordPress.
 */

body.sgc-system-page {
    margin: 0 !important;
    padding: 0 !important;
    background: #f3f7fb !important;
    color: #17324d !important;
    overflow-x: hidden !important;
    color-scheme: light !important;
}

body.sgc-system-page .sgc-system-root {
    width: 100% !important;
    max-width: none !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.sgc-system-page .sgc-system-root > p:empty,
body.sgc-system-page .sgc-system-root > br {
    display: none !important;
}

.sgc-app,
.sgc-login-page,
.sgc-access-page,
.sgc-password-page,
.sgc-shell,
.sgc-form-wrap {
    --sgc-primary: #0867b2;
    --sgc-primary-strong: #063a78;
    --sgc-primary-soft: #eaf4fd;
    --sgc-secondary: #86c63f;
    --sgc-secondary-strong: #198442;
    --sgc-navy: #071d3d;
    --sgc-text: #17324d;
    --sgc-muted: #657a8f;
    --sgc-bg: #f3f7fb;
    --sgc-surface: #ffffff;
    --sgc-border: #dbe6f0;
    --sgc-danger: #c53b45;
    --sgc-warning: #b97907;
    --sgc-success: #198442;
    --sgc-radius-sm: 10px;
    --sgc-radius: 16px;
    --sgc-radius-lg: 22px;
    --sgc-shadow-sm: 0 4px 14px rgba(8, 45, 80, .06);
    --sgc-shadow: 0 16px 45px rgba(8, 45, 80, .11);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    color: var(--sgc-text) !important;
    line-height: 1.5 !important;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

.sgc-app *,
.sgc-login-page *,
.sgc-access-page *,
.sgc-password-page *,
.sgc-shell *,
.sgc-form-wrap * {
    box-sizing: border-box !important;
}

.sgc-app :where(h1, h2, h3, h4, h5, h6),
.sgc-login-page :where(h1, h2, h3, h4),
.sgc-access-page :where(h1, h2, h3, h4),
.sgc-password-page :where(h1, h2, h3, h4) {
    font-family: inherit !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.sgc-app :where(a, button, input, select, textarea),
.sgc-login-page :where(a, button, input, select, textarea),
.sgc-access-page :where(a, button, input, select, textarea),
.sgc-password-page :where(a, button, input, select, textarea) {
    font-family: inherit !important;
}

.sgc-app input[type="checkbox"],
.sgc-app input[type="radio"],
.sgc-login-page input[type="checkbox"],
.sgc-access-page input[type="checkbox"],
.sgc-access-page input[type="radio"],
.sgc-password-page input[type="checkbox"],
.sgc-password-page input[type="radio"] {
    accent-color: var(--sgc-primary) !important;
}

.sgc-app :where(a),
.sgc-login-page :where(a),
.sgc-access-page :where(a),
.sgc-password-page :where(a) {
    box-shadow: none !important;
    text-decoration: none !important;
}

.sgc-container {
    width: min(1420px, calc(100% - 48px)) !important;
    margin-inline: auto !important;
}

/* Botones institucionales */
.sgc-btn {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 10px 17px !important;
    border: 1px solid var(--sgc-primary) !important;
    border-radius: 11px !important;
    background: var(--sgc-primary) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    line-height: 1.2 !important;
    cursor: pointer !important;
    box-shadow: 0 5px 14px rgba(8, 103, 178, .16) !important;
    text-shadow: none !important;
    transition: transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease !important;
}

.sgc-btn:hover,
.sgc-btn:focus-visible {
    background: var(--sgc-primary-strong) !important;
    border-color: var(--sgc-primary-strong) !important;
    color: #fff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 8px 20px rgba(8, 70, 130, .2) !important;
}

.sgc-btn:focus-visible {
    outline: 3px solid rgba(8, 103, 178, .22) !important;
    outline-offset: 2px !important;
}

.sgc-btn:disabled,
.sgc-btn[aria-disabled="true"] {
    opacity: .58 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

.sgc-btn-outline,
.sgc-btn.secondary {
    background: #fff !important;
    color: var(--sgc-primary-strong) !important;
    -webkit-text-fill-color: var(--sgc-primary-strong) !important;
    border-color: #b9cddd !important;
    box-shadow: none !important;
}

.sgc-btn-outline:hover,
.sgc-btn.secondary:hover {
    background: #edf6fd !important;
    color: var(--sgc-primary-strong) !important;
    -webkit-text-fill-color: var(--sgc-primary-strong) !important;
}

.sgc-btn-ghost {
    background: transparent !important;
    color: var(--sgc-primary-strong) !important;
    -webkit-text-fill-color: var(--sgc-primary-strong) !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

.sgc-btn-green {
    background: var(--sgc-secondary-strong) !important;
    border-color: var(--sgc-secondary-strong) !important;
}

.sgc-btn-green:hover {
    background: #116f35 !important;
    border-color: #116f35 !important;
}

.sgc-btn-full { width: 100% !important; }

/* Panel principal */
.sgc-dashboard-app {
    width: 100% !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--sgc-bg) !important;
}

.sgc-dashboard-bar {
    position: relative !important;
    z-index: 10 !important;
    min-height: 82px !important;
    padding: 12px max(3vw, 24px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
    background: #fff !important;
    border-bottom: 1px solid var(--sgc-border) !important;
}

.sgc-dashboard-brand {
    display: inline-flex !important;
    align-items: center !important;
    gap: 18px !important;
    color: var(--sgc-primary-strong) !important;
}

.sgc-dashboard-brand img {
    width: 170px !important;
    max-width: 38vw !important;
    height: 54px !important;
    object-fit: contain !important;
    object-position: left center !important;
    margin: 0 !important;
}

.sgc-dashboard-brand > span {
    display: grid !important;
    gap: 2px !important;
    padding-left: 18px !important;
    border-left: 1px solid var(--sgc-border) !important;
}

.sgc-dashboard-brand strong {
    color: var(--sgc-primary-strong) !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
}

.sgc-dashboard-brand small {
    color: var(--sgc-muted) !important;
    font-size: 12px !important;
}

.sgc-dashboard-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

.sgc-user-summary {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-right: 4px !important;
}

.sgc-user-summary > span:last-child {
    display: grid !important;
    gap: 1px !important;
}

.sgc-user-summary small {
    color: var(--sgc-muted) !important;
    font-size: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
}

.sgc-user-summary strong {
    color: var(--sgc-text) !important;
    font-size: 13px !important;
}

.sgc-user-avatar {
    width: 38px !important;
    height: 38px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, var(--sgc-primary), #28a1df) !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    box-shadow: 0 5px 12px rgba(8, 103, 178, .18) !important;
}

.sgc-dashboard-hero {
    position: relative !important;
    overflow: hidden !important;
    padding: 50px 0 94px !important;
    background:
        radial-gradient(circle at 88% 15%, rgba(98, 187, 239, .24), transparent 28%),
        radial-gradient(circle at 8% 110%, rgba(134, 198, 63, .17), transparent 30%),
        linear-gradient(125deg, #052d61 0%, #075ca4 55%, #0874bd 100%) !important;
}

.sgc-dashboard-hero::after {
    content: "" !important;
    position: absolute !important;
    width: 520px !important;
    height: 520px !important;
    right: -260px !important;
    top: -260px !important;
    border: 1px solid rgba(255, 255, 255, .13) !important;
    border-radius: 50% !important;
    box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.018) !important;
    pointer-events: none !important;
}

.sgc-eyebrow {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 29px !important;
    padding: 5px 11px !important;
    border: 1px solid rgba(255,255,255,.28) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.10) !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: .09em !important;
}

.sgc-dashboard-hero h1 {
    max-width: 820px !important;
    margin: 15px 0 9px !important;
    padding: 0 !important;
    color: #fff !important;
    font-size: clamp(34px, 4vw, 50px) !important;
    font-weight: 820 !important;
    line-height: 1.08 !important;
}

.sgc-dashboard-hero p {
    max-width: 720px !important;
    margin: 0 !important;
    color: #dcecff !important;
    font-size: 17px !important;
}

.sgc-dashboard-content {
    position: relative !important;
    z-index: 2 !important;
    margin-top: -48px !important;
    padding-bottom: 58px !important;
}

.sgc-section-heading {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    margin-bottom: 20px !important;
    padding: 20px 22px !important;
    border: 1px solid var(--sgc-border) !important;
    border-radius: var(--sgc-radius) !important;
    background: #fff !important;
    box-shadow: var(--sgc-shadow-sm) !important;
}

.sgc-section-heading h2 {
    margin: 0 0 4px !important;
    color: var(--sgc-primary-strong) !important;
    font-size: 23px !important;
    line-height: 1.2 !important;
}

.sgc-section-heading p {
    margin: 0 !important;
    color: var(--sgc-muted) !important;
    font-size: 14px !important;
}

.sgc-module-count {
    flex: 0 0 auto !important;
    padding: 7px 11px !important;
    border-radius: 999px !important;
    background: var(--sgc-primary-soft) !important;
    color: var(--sgc-primary-strong) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}

.sgc-module-grid,
.sgc-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

.sgc-module-card,
.sgc-card {
    min-width: 0 !important;
    overflow: hidden !important;
    border: 1px solid var(--sgc-border) !important;
    border-radius: var(--sgc-radius-lg) !important;
    background: #fff !important;
    box-shadow: var(--sgc-shadow-sm) !important;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease !important;
}

.sgc-module-card:hover,
.sgc-card:hover {
    transform: translateY(-4px) !important;
    border-color: #9fc3df !important;
    box-shadow: var(--sgc-shadow) !important;
}

.sgc-module-link {
    display: grid !important;
    grid-template-rows: 154px 1fr !important;
    height: 100% !important;
    color: inherit !important;
}

.sgc-module-media,
.sgc-card-image {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    min-height: 154px !important;
    background:
        radial-gradient(circle at 80% 15%, rgba(255,255,255,.28), transparent 24%),
        linear-gradient(135deg, #eaf4fd, #dceeff) !important;
    background-position: center !important;
    background-size: cover !important;
}

.sgc-module-media.has-image::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, rgba(4,48,91,.02), rgba(4,48,91,.18)) !important;
}

.sgc-module-icon {
    width: 70px !important;
    height: 70px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 20px !important;
    background: linear-gradient(135deg, var(--sgc-primary), #25a0df) !important;
    color: #fff !important;
    box-shadow: 0 12px 25px rgba(8, 103, 178, .22) !important;
}

.sgc-module-icon svg {
    width: 36px !important;
    height: 36px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.sgc-module-indicators .sgc-module-icon { background: linear-gradient(135deg, #0870bd, #2ba7df) !important; }
.sgc-module-risks .sgc-module-icon { background: linear-gradient(135deg, #ef9d13, #f2c545) !important; }
.sgc-module-nc .sgc-module-icon,
.sgc-module-nonconformities .sgc-module-icon { background: linear-gradient(135deg, #1f9a55, #67c267) !important; }

.sgc-module-body,
.sgc-card-body {
    display: flex !important;
    flex-direction: column !important;
    min-height: 230px !important;
    padding: 22px !important;
}

.sgc-module-label {
    color: var(--sgc-primary) !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: .10em !important;
    text-transform: uppercase !important;
}

.sgc-module-body h3,
.sgc-card-body h2 {
    margin: 7px 0 8px !important;
    color: var(--sgc-primary-strong) !important;
    font-size: 21px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
}

.sgc-module-body p,
.sgc-card-body p {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    margin: 0 0 18px !important;
    color: var(--sgc-muted) !important;
    font-size: 14px !important;
}

.sgc-module-cta,
.sgc-card-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    color: var(--sgc-primary-strong) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.sgc-module-cta b {
    width: 31px !important;
    height: 31px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 50% !important;
    background: var(--sgc-primary-soft) !important;
    transition: transform .16s ease !important;
}

.sgc-module-card:hover .sgc-module-cta b { transform: translateX(3px) !important; }

.sgc-empty-state,
.sgc-empty {
    grid-column: 1 / -1 !important;
    padding: 48px 24px !important;
    border: 1px dashed #afc8dc !important;
    border-radius: var(--sgc-radius-lg) !important;
    background: #fff !important;
    text-align: center !important;
}

.sgc-empty-icon {
    width: 56px !important;
    height: 56px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto 12px !important;
    border-radius: 50% !important;
    background: var(--sgc-primary-soft) !important;
    color: var(--sgc-primary) !important;
    font-size: 26px !important;
}

.sgc-empty-state h3 { margin: 0 0 6px !important; color: var(--sgc-primary-strong) !important; }
.sgc-empty-state p { margin: 0 !important; color: var(--sgc-muted) !important; }

.sgc-dashboard-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    padding: 22px max(3vw, 24px) !important;
    border-top: 1px solid var(--sgc-border) !important;
    background: #fff !important;
    color: var(--sgc-muted) !important;
    font-size: 12px !important;
}

/* Formularios básicos y avisos */
.sgc-form-wrap {
    width: min(680px, calc(100% - 32px)) !important;
    margin: 40px auto !important;
    padding: 28px !important;
    border: 1px solid var(--sgc-border) !important;
    border-radius: var(--sgc-radius-lg) !important;
    background: #fff !important;
    box-shadow: var(--sgc-shadow) !important;
}

.sgc-form { display: grid !important; gap: 10px !important; }
.sgc-form label { margin-top: 7px !important; color: #29445f !important; font-size: 13px !important; font-weight: 800 !important; }
.sgc-form input,
.sgc-form select,
.sgc-form textarea {
    width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 10px 13px !important;
    border: 1px solid #c3d3e1 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--sgc-text) !important;
    font-size: 15px !important;
    box-shadow: none !important;
}

.sgc-form input:focus,
.sgc-form select:focus,
.sgc-form textarea:focus {
    border-color: var(--sgc-primary) !important;
    outline: 3px solid rgba(8, 103, 178, .14) !important;
    outline-offset: 0 !important;
}

.sgc-notice {
    margin: 12px 0 !important;
    padding: 12px 14px !important;
    border: 1px solid #c9dce9 !important;
    border-radius: 10px !important;
    background: #f4f9fd !important;
    color: var(--sgc-text) !important;
}
.sgc-notice.error { border-color: #efb8bd !important; background: #fff0f1 !important; color: #922832 !important; }
.sgc-notice.success { border-color: #b8ddc5 !important; background: #eef9f1 !important; color: #146b38 !important; }

/* Acceso */
.sgc-login-page,
.sgc-access-page,
.sgc-password-page {
    width: 100% !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--sgc-bg) !important;
}

.sgc-login-header,
.sgc-access-header {
    min-height: 90px !important;
    display: flex !important;
    align-items: center !important;
    gap: 22px !important;
    padding: 14px max(5vw, 26px) !important;
    border-bottom: 1px solid var(--sgc-border) !important;
    background: #fff !important;
}

.sgc-login-header img,
.sgc-access-header img,
.sgc-access-logo {
    width: 190px !important;
    max-width: 55vw !important;
    height: 60px !important;
    object-fit: contain !important;
    object-position: left center !important;
    margin: 0 !important;
}

.sgc-login-header > span,
.sgc-access-header > div {
    padding-left: 22px !important;
    border-left: 1px solid var(--sgc-border) !important;
}

.sgc-login-header > span,
.sgc-access-header strong {
    color: var(--sgc-primary-strong) !important;
    font-size: 17px !important;
    font-weight: 800 !important;
}

.sgc-access-header > div { display: grid !important; gap: 2px !important; }
.sgc-access-header span { color: var(--sgc-muted) !important; font-size: 12px !important; }

.sgc-login-hero {
    padding: 42px 20px 108px !important;
    background:
        radial-gradient(circle at 85% 10%, rgba(77,177,234,.23), transparent 30%),
        linear-gradient(135deg, #032e63, #075ca4) !important;
    color: #fff !important;
    text-align: center !important;
}

.sgc-login-icon {
    width: 58px !important;
    height: 58px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, var(--sgc-secondary), #55ad45) !important;
    color: #fff !important;
    font-size: 29px !important;
    box-shadow: 0 10px 20px rgba(60,135,45,.25) !important;
}

.sgc-login-hero h1 {
    margin: 13px 0 7px !important;
    color: #fff !important;
    font-size: clamp(31px, 4vw, 42px) !important;
    line-height: 1.1 !important;
}

.sgc-login-hero p { margin: 0 !important; color: #dcecff !important; font-size: 17px !important; }

.sgc-login-grid {
    position: relative !important;
    z-index: 2 !important;
    width: min(1050px, calc(100% - 32px)) !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 !important;
    margin: -72px auto 28px !important;
    filter: drop-shadow(0 16px 34px rgba(0,35,75,.13)) !important;
}

.sgc-login-card {
    padding: 38px 44px !important;
    border: 1px solid var(--sgc-border) !important;
    border-radius: 17px 0 0 17px !important;
    background: #fff !important;
    color: var(--sgc-text) !important;
    text-align: center !important;
}

.sgc-login-card + .sgc-login-card { border-radius: 0 17px 17px 0 !important; }
.sgc-access-card { background: linear-gradient(180deg, #fff, #f7fcf4) !important; }

.sgc-round-icon {
    width: 64px !important;
    height: 64px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto !important;
    border-radius: 50% !important;
    background: var(--sgc-primary-soft) !important;
    color: var(--sgc-primary-strong) !important;
    font-size: 27px !important;
}
.sgc-round-icon.green { background: #eaf7df !important; color: var(--sgc-secondary-strong) !important; }

.sgc-login-card h1,
.sgc-login-card h2 {
    margin: 12px 0 7px !important;
    color: var(--sgc-primary-strong) !important;
    font-size: 25px !important;
}
.sgc-access-card h2 { color: #147a36 !important; }
.sgc-login-card p { margin: 0 0 21px !important; color: #566d82 !important; }
.sgc-login-card small { display: block !important; margin-top: 17px !important; color: var(--sgc-muted) !important; }

.sgc-login-form { text-align: left !important; }
.sgc-login-form label { display: block !important; margin: 13px 0 6px !important; color: #29445f !important; font-size: 13px !important; font-weight: 800 !important; }
.sgc-login-form input[type="email"],
.sgc-login-form input[type="password"] {
    width: 100% !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    border: 1px solid #c5d5e3 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--sgc-text) !important;
    font-size: 15px !important;
    box-shadow: none !important;
}
.sgc-login-form input:focus { border-color: var(--sgc-primary) !important; outline: 3px solid rgba(8,103,178,.13) !important; }

.sgc-login-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: 13px 0 18px !important;
    font-size: 13px !important;
}
.sgc-login-row .sgc-check { display: inline-flex !important; align-items: center !important; gap: 7px !important; margin: 0 !important; font-weight: 500 !important; }
.sgc-login-row input[type="checkbox"] { width: 16px !important; height: 16px !important; accent-color: var(--sgc-primary) !important; }
.sgc-login-page a { color: var(--sgc-primary) !important; }

.sgc-access-card ul {
    display: grid !important;
    gap: 13px !important;
    margin: 23px 0 !important;
    padding: 0 !important;
    list-style: none !important;
    text-align: left !important;
}
.sgc-access-card li { position: relative !important; padding-left: 28px !important; color: #344e65 !important; }
.sgc-access-card li::before { content: "✓" !important; position: absolute !important; left: 0 !important; color: var(--sgc-secondary-strong) !important; font-weight: 900 !important; }

.sgc-trust {
    width: min(1050px, calc(100% - 32px)) !important;
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 12px !important;
    margin: 24px auto 40px !important;
    padding: 20px !important;
    border: 1px solid var(--sgc-border) !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: #36536c !important;
    font-size: 13px !important;
    font-weight: 750 !important;
    text-align: center !important;
    box-shadow: var(--sgc-shadow-sm) !important;
}

.sgc-login-footer,
.sgc-access-footer {
    min-height: 102px !important;
    padding: 24px max(5vw, 28px) !important;
    border-top: 3px solid var(--sgc-secondary) !important;
    background: #032e63 !important;
    color: #fff !important;
}
.sgc-login-footer { display: flex !important; align-items: center !important; gap: 23px !important; }
.sgc-login-footer img { width: 145px !important; height: 52px !important; object-fit: contain !important; filter: brightness(0) invert(1) !important; }
.sgc-login-footer :where(strong, small) { color: #fff !important; }
.sgc-access-footer { display: grid !important; place-items: center !important; min-height: 76px !important; font-size: 12px !important; }

/* Solicitud de acceso */
.sgc-access-main {
    min-height: calc(100vh - 166px) !important;
    display: grid !important;
    grid-template-columns: minmax(300px, 1fr) minmax(420px, 620px) !important;
    align-items: center !important;
    gap: 68px !important;
    padding: 58px max(5vw, 28px) 78px !important;
    background:
        linear-gradient(125deg, #032e63 0%, #07549d 44%, transparent 44%),
        var(--sgc-bg) !important;
}

.sgc-access-intro { max-width: 620px !important; color: #fff !important; }
.sgc-access-badge { display: inline-flex !important; padding: 6px 11px !important; border-radius: 999px !important; background: var(--sgc-secondary) !important; color: #fff !important; font-size: 11px !important; font-weight: 900 !important; letter-spacing: .08em !important; }
.sgc-access-intro h1 { margin: 13px 0 !important; color: #fff !important; font-size: clamp(34px, 4vw, 47px) !important; line-height: 1.08 !important; }
.sgc-access-intro p { margin: 0 0 24px !important; color: #e5f0ff !important; font-size: 17px !important; }
.sgc-access-points { display: grid !important; gap: 9px !important; }
.sgc-access-points span { color: #fff !important; font-weight: 700 !important; }

.sgc-access-panel {
    padding: 33px 37px !important;
    border: 1px solid var(--sgc-border) !important;
    border-radius: 19px !important;
    background: #fff !important;
    box-shadow: 0 20px 50px rgba(0,35,75,.16) !important;
}
.sgc-access-panel h1,
.sgc-access-panel h2 { margin: 0 0 6px !important; color: var(--sgc-primary-strong) !important; }
.sgc-access-panel h2 { font-size: 26px !important; }
.sgc-access-panel > p { margin: 0 0 17px !important; color: var(--sgc-muted) !important; }
.sgc-access-form { display: grid !important; gap: 7px !important; }
.sgc-access-form label { margin-top: 8px !important; color: #29445f !important; font-size: 13px !important; font-weight: 800 !important; }
.sgc-access-form input,
.sgc-access-form select {
    width: 100% !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    border: 1px solid #c5d5e3 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--sgc-text) !important;
    font-size: 15px !important;
    box-shadow: none !important;
}
.sgc-access-form input:focus,
.sgc-access-form select:focus { border-color: var(--sgc-primary) !important; outline: 3px solid rgba(8,103,178,.13) !important; }
.sgc-access-back { margin-top: 18px !important; color: var(--sgc-muted) !important; font-size: 13px !important; text-align: center !important; }
.sgc-access-back a { color: var(--sgc-primary) !important; font-weight: 800 !important; }

@media (max-width: 1080px) {
    .sgc-module-grid,
    .sgc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .sgc-access-main { grid-template-columns: 1fr 1fr !important; gap: 35px !important; }
}

@media (max-width: 800px) {
    .sgc-container { width: min(100% - 28px, 1420px) !important; }
    .sgc-dashboard-bar { align-items: flex-start !important; flex-direction: column !important; gap: 12px !important; }
    .sgc-dashboard-actions { width: 100% !important; justify-content: flex-start !important; }
    .sgc-dashboard-hero { padding-top: 38px !important; }
    .sgc-login-header,
    .sgc-access-header { min-height: auto !important; flex-direction: column !important; align-items: flex-start !important; gap: 6px !important; }
    .sgc-login-header > span,
    .sgc-access-header > div { padding-left: 0 !important; border-left: 0 !important; }
    .sgc-login-grid { grid-template-columns: 1fr !important; }
    .sgc-login-card,
    .sgc-login-card + .sgc-login-card { margin-bottom: 14px !important; border-radius: 17px !important; }
    .sgc-trust { grid-template-columns: 1fr 1fr !important; }
    .sgc-access-main { grid-template-columns: 1fr !important; background: linear-gradient(155deg, #032e63 0%, #07549d 36%, var(--sgc-bg) 36%) !important; }
    .sgc-access-intro { padding-bottom: 35px !important; }
}

@media (max-width: 600px) {
    .sgc-dashboard-brand > span { display: none !important; }
    .sgc-dashboard-brand img { width: 148px !important; }
    .sgc-dashboard-actions .sgc-user-summary { width: 100% !important; }
    .sgc-dashboard-actions .sgc-btn { flex: 1 1 auto !important; }
    .sgc-dashboard-hero { padding: 34px 0 82px !important; }
    .sgc-dashboard-hero p { font-size: 15px !important; }
    .sgc-section-heading { align-items: flex-start !important; flex-direction: column !important; }
    .sgc-module-grid,
    .sgc-grid { grid-template-columns: 1fr !important; }
    .sgc-dashboard-footer { align-items: flex-start !important; flex-direction: column !important; gap: 5px !important; }
    .sgc-login-card { padding: 30px 22px !important; }
    .sgc-login-row { align-items: flex-start !important; flex-direction: column !important; }
    .sgc-trust { grid-template-columns: 1fr !important; }
    .sgc-login-footer { flex-direction: column !important; text-align: center !important; }
    .sgc-access-main { padding-inline: 16px !important; }
    .sgc-access-panel { padding: 28px 21px !important; }
}

@media (prefers-reduced-motion: reduce) {
    .sgc-app *,
    .sgc-login-page *,
    .sgc-access-page *,
    .sgc-password-page * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Iconografía propia del SGC: evita iconos heredados del tema o emojis dependientes del sistema. */
.sgc-ui-icon {
    width: 1.25em !important;
    height: 1.25em !important;
    display: inline-block !important;
    flex: 0 0 auto !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    vertical-align: -.18em !important;
}
.sgc-login-icon .sgc-ui-icon,
.sgc-round-icon .sgc-ui-icon,
.sgc-empty-icon .sgc-ui-icon { width: 30px !important; height: 30px !important; }
.sgc-module-cta b .sgc-ui-icon { width: 16px !important; height: 16px !important; }
.sgc-trust span,
.sgc-access-points span { display:flex !important; align-items:center !important; gap:8px !important; }
.sgc-trust span { justify-content:center !important; }
.sgc-trust .sgc-ui-icon { width:20px !important; height:20px !important; color:var(--sgc-primary) !important; }
.sgc-access-points .sgc-ui-icon { width:18px !important; height:18px !important; color:var(--sgc-secondary) !important; }

/* Centro de trabajo del Gestor SGC */
.sgc-work-center {
    margin: 0 0 28px !important;
    padding: 24px !important;
    border: 1px solid var(--sgc-border) !important;
    border-radius: var(--sgc-radius-lg) !important;
    background: #fff !important;
    box-shadow: var(--sgc-shadow-sm) !important;
}
.sgc-work-head { display: flex !important; align-items: flex-start !important; justify-content: space-between !important; gap: 20px !important; margin-bottom: 18px !important; }
.sgc-work-kicker { color: var(--sgc-primary) !important; font-size: 10px !important; font-weight: 900 !important; letter-spacing: .1em !important; }
.sgc-work-head h2 { margin: 5px 0 4px !important; color: var(--sgc-primary-strong) !important; font-size: 22px !important; font-weight: 850 !important; }
.sgc-work-head p { margin: 0 !important; color: var(--sgc-muted) !important; font-size: 14px !important; }
.sgc-work-grid { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 13px !important; }
.sgc-work-card {
    position: relative !important;
    min-width: 0 !important;
    min-height: 126px !important;
    display: grid !important;
    grid-template-columns: 44px minmax(0,1fr) 25px !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 16px !important;
    border: 1px solid #dbe6f0 !important;
    border-radius: 15px !important;
    background: #fbfdff !important;
    color: var(--sgc-text) !important;
    box-shadow: none !important;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease !important;
}
.sgc-work-card:hover { transform: translateY(-2px) !important; border-color: #9fc3df !important; box-shadow: 0 10px 25px rgba(8,45,80,.09) !important; }
.sgc-work-icon { width: 44px !important; height: 44px !important; display: grid !important; place-items: center !important; border-radius: 13px !important; background: #eaf4fd !important; color: #0867b2 !important; }
.sgc-work-icon svg { width: 24px !important; height: 24px !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.8 !important; stroke-linecap: round !important; stroke-linejoin: round !important; }
.sgc-work-copy { min-width: 0 !important; display: grid !important; gap: 2px !important; }
.sgc-work-copy strong { color: var(--sgc-primary-strong) !important; font-size: 26px !important; line-height: 1 !important; font-weight: 900 !important; }
.sgc-work-copy b { color: var(--sgc-text) !important; font-size: 12px !important; line-height: 1.25 !important; font-weight: 800 !important; }
.sgc-work-copy small { color: var(--sgc-muted) !important; font-size: 10px !important; line-height: 1.25 !important; }
.sgc-work-arrow { color: #7b97ad !important; }
.sgc-work-arrow svg { width: 20px !important; height: 20px !important; fill: none !important; stroke: currentColor !important; stroke-width: 1.8 !important; }
.sgc-work-card.is-amber .sgc-work-icon { background:#fff3d7 !important; color:#b97907 !important; }
.sgc-work-card.is-red .sgc-work-icon { background:#fff0f1 !important; color:#c53b45 !important; }
.sgc-work-card.is-green .sgc-work-icon { background:#edf9f1 !important; color:#198442 !important; }
.sgc-work-card.is-purple .sgc-work-icon { background:#f3efff !important; color:#6948b7 !important; }

/* La portada se renderiza como imagen real para que ningún shorthand de fondo la oculte. */
.sgc-module-media.has-image { background: #dfeaf4 !important; }
.sgc-module-cover {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    margin: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
    opacity: 1 !important;
    filter: none !important;
}
.sgc-module-media.has-image::after { z-index: 1 !important; }

@media (max-width: 1200px) {
    .sgc-work-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
}
@media (max-width: 760px) {
    .sgc-work-center { padding: 18px !important; }
    .sgc-work-grid { grid-template-columns: 1fr !important; }
    .sgc-work-card { min-height: 92px !important; }
}


/* Recuperación y restablecimiento de contraseña del SGC */
.sgc-password-page {
    width: 100% !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f3f7fb !important;
}

.sgc-password-header {
    min-height: 88px !important;
    display: flex !important;
    align-items: center !important;
    gap: 22px !important;
    padding: 14px max(5vw, 26px) !important;
    border-bottom: 1px solid var(--sgc-border) !important;
    background: #fff !important;
}

.sgc-password-header img {
    width: 190px !important;
    max-width: 55vw !important;
    height: 58px !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: left center !important;
}

.sgc-password-header span {
    padding-left: 22px !important;
    border-left: 1px solid var(--sgc-border) !important;
    color: var(--sgc-primary-strong) !important;
    font-size: 17px !important;
    font-weight: 800 !important;
}

.sgc-password-stage {
    position: relative !important;
    min-height: calc(100vh - 88px) !important;
    display: grid !important;
    place-items: center !important;
    overflow: hidden !important;
    padding: 54px 20px !important;
    background:
        radial-gradient(circle at 86% 12%, rgba(98, 187, 239, .22), transparent 29%),
        radial-gradient(circle at 8% 108%, rgba(134, 198, 63, .16), transparent 30%),
        linear-gradient(135deg, #032e63 0%, #075ca4 48%, #0874bd 100%) !important;
}

.sgc-password-stage::before,
.sgc-password-stage::after {
    content: "" !important;
    position: absolute !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 50% !important;
    pointer-events: none !important;
}

.sgc-password-stage::before {
    width: 520px !important;
    height: 520px !important;
    right: -250px !important;
    top: -260px !important;
    box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.018) !important;
}

.sgc-password-stage::after {
    width: 360px !important;
    height: 360px !important;
    left: -230px !important;
    bottom: -230px !important;
}

.sgc-password-card {
    position: relative !important;
    z-index: 2 !important;
    width: min(500px, 100%) !important;
    margin: 0 !important;
    padding: 38px 40px 40px !important;
    border: 1px solid rgba(219,230,240,.95) !important;
    border-radius: 22px !important;
    background: #fff !important;
    color: var(--sgc-text) !important;
    text-align: center !important;
    box-shadow: 0 26px 70px rgba(0,32,72,.24) !important;
}

.sgc-password-icon {
    width: 68px !important;
    height: 68px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto 15px !important;
    border-radius: 19px !important;
    background: linear-gradient(135deg, var(--sgc-secondary), #55ad45) !important;
    color: #fff !important;
    box-shadow: 0 10px 23px rgba(62,137,49,.24) !important;
}

.sgc-password-icon .sgc-ui-icon {
    width: 32px !important;
    height: 32px !important;
}

.sgc-password-badge {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 27px !important;
    padding: 4px 10px !important;
    border-radius: 999px !important;
    background: var(--sgc-primary-soft) !important;
    color: var(--sgc-primary-strong) !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: .09em !important;
}

.sgc-password-card h1 {
    margin: 12px 0 8px !important;
    color: var(--sgc-primary-strong) !important;
    font-size: clamp(27px, 4vw, 34px) !important;
    font-weight: 850 !important;
    line-height: 1.12 !important;
}

.sgc-password-card > p {
    margin: 0 0 22px !important;
    color: #5a7186 !important;
    font-size: 15px !important;
    line-height: 1.58 !important;
}

.sgc-password-form {
    display: grid !important;
    gap: 10px !important;
    margin: 0 !important;
    text-align: left !important;
}

.sgc-password-form label {
    margin: 5px 0 0 !important;
    color: #29445f !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.sgc-password-field {
    position: relative !important;
    width: 100% !important;
}

.sgc-password-field > span {
    position: absolute !important;
    z-index: 2 !important;
    left: 14px !important;
    top: 50% !important;
    display: grid !important;
    place-items: center !important;
    color: #6c8297 !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
}

.sgc-password-field > span .sgc-ui-icon {
    width: 19px !important;
    height: 19px !important;
}

.sgc-password-field input {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 100% !important;
    height: 52px !important;
    margin: 0 !important;
    padding: 0 14px 0 45px !important;
    border: 1px solid #c5d5e3 !important;
    border-radius: 11px !important;
    background: #fff !important;
    color: var(--sgc-text) !important;
    -webkit-text-fill-color: var(--sgc-text) !important;
    font-size: 15px !important;
    line-height: 1 !important;
    box-shadow: none !important;
}

.sgc-password-field input::placeholder {
    color: #8192a3 !important;
    opacity: 1 !important;
}

.sgc-password-field input:focus {
    border-color: var(--sgc-primary) !important;
    outline: 3px solid rgba(8,103,178,.14) !important;
    outline-offset: 0 !important;
}

.sgc-password-form .sgc-btn {
    width: 100% !important;
    min-height: 50px !important;
    margin-top: 8px !important;
}

.sgc-password-help {
    margin: 0 0 3px !important;
    color: var(--sgc-muted) !important;
    font-size: 12px !important;
    text-align: left !important;
}

.sgc-password-card .sgc-notice {
    margin: 0 0 18px !important;
    text-align: left !important;
}

.sgc-password-card > .sgc-btn {
    width: 100% !important;
    margin-top: 4px !important;
}

@media (max-width: 650px) {
    .sgc-password-header {
        min-height: auto !important;
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 6px !important;
    }
    .sgc-password-header span {
        padding-left: 0 !important;
        border-left: 0 !important;
        font-size: 14px !important;
    }
    .sgc-password-header img {
        width: 155px !important;
        height: 48px !important;
    }
    .sgc-password-stage {
        min-height: calc(100vh - 92px) !important;
        padding: 30px 14px !important;
    }
    .sgc-password-card {
        padding: 31px 21px 33px !important;
        border-radius: 18px !important;
    }
}


/* =========================================================
   Gestión frontal de usuarios — Core 0.6.4
   ========================================================= */
.sgc-users-content { display: grid !important; gap: 18px !important; }
.sgc-users-hero { padding-bottom: 84px !important; }
.sgc-front-notice {
    padding: 13px 16px !important; border: 1px solid #a8d9ba !important; border-radius: 12px !important;
    background: #edf9f1 !important; color: #116f35 !important; font-size: 14px !important; font-weight: 750 !important;
    box-shadow: var(--sgc-shadow-sm) !important;
}
.sgc-user-stats { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 14px !important; }
.sgc-user-stat {
    min-height: 96px !important; padding: 18px !important; display: grid !important; align-content: center !important; gap: 5px !important;
    border: 1px solid var(--sgc-border) !important; border-radius: 16px !important; background: #fff !important; color: var(--sgc-text) !important;
    box-shadow: var(--sgc-shadow-sm) !important; transition: .16s ease !important;
}
.sgc-user-stat:hover,.sgc-user-stat.is-active { border-color: #8fbddd !important; background: #f5faff !important; transform: translateY(-1px) !important; }
.sgc-user-stat strong { color: var(--sgc-primary-strong) !important; font-size: 28px !important; line-height: 1 !important; font-weight: 900 !important; }
.sgc-user-stat span { color: var(--sgc-muted) !important; font-size: 12px !important; font-weight: 800 !important; text-transform: uppercase !important; letter-spacing: .04em !important; }
.sgc-users-panel { padding: 22px !important; border: 1px solid var(--sgc-border) !important; border-radius: 18px !important; background: #fff !important; box-shadow: var(--sgc-shadow-sm) !important; }
.sgc-users-toolbar { display: flex !important; align-items: flex-end !important; justify-content: space-between !important; gap: 24px !important; margin-bottom: 18px !important; }
.sgc-users-toolbar h2 { margin: 0 0 4px !important; color: var(--sgc-primary-strong) !important; font-size: 22px !important; font-weight: 850 !important; }
.sgc-users-toolbar p { margin: 0 !important; color: var(--sgc-muted) !important; font-size: 13px !important; }
.sgc-user-search { width: min(460px,100%) !important; display: grid !important; gap: 5px !important; }
.sgc-user-search label,.sgc-user-actions-form label { color: var(--sgc-text) !important; font-size: 12px !important; font-weight: 800 !important; }
.sgc-user-search > div { display: flex !important; gap: 8px !important; }
.sgc-user-search input,.sgc-user-actions-form input,.sgc-user-actions-form select {
    width: 100% !important; min-height: 44px !important; padding: 9px 12px !important; border: 1px solid #c9d8e5 !important; border-radius: 10px !important;
    background: #fff !important; color: var(--sgc-text) !important; -webkit-text-fill-color: var(--sgc-text) !important; box-shadow: none !important; font-size: 14px !important;
}
.sgc-user-search input:focus,.sgc-user-actions-form input:focus,.sgc-user-actions-form select:focus { border-color: var(--sgc-primary) !important; outline: 3px solid rgba(8,103,178,.12) !important; }
.sgc-user-list { display: grid !important; gap: 14px !important; }
.sgc-user-card { padding: 18px !important; border: 1px solid var(--sgc-border) !important; border-radius: 15px !important; background: #fbfdff !important; }
.sgc-user-card-head { display: grid !important; grid-template-columns: auto minmax(0,1fr) auto !important; gap: 13px !important; align-items: center !important; }
.sgc-user-big-avatar { width: 46px !important; height: 46px !important; display: grid !important; place-items: center !important; border-radius: 50% !important; background: linear-gradient(135deg,#0867b2,#29a1df) !important; color:#fff !important; font-size:16px !important; font-weight:900 !important; }
.sgc-user-card-head h3 { margin:0 0 2px !important; color:var(--sgc-primary-strong) !important; font-size:16px !important; font-weight:850 !important; }
.sgc-user-card-head a { color:var(--sgc-primary) !important; font-size:13px !important; }
.sgc-user-status { padding:6px 10px !important; border-radius:999px !important; font-size:11px !important; font-weight:850 !important; white-space:nowrap !important; }
.sgc-user-status.is-pending { background:#fff3d7 !important; color:#9c6400 !important; }
.sgc-user-status.is-active { background:#eaf8ef !important; color:#17733c !important; }
.sgc-user-status.is-inactive { background:#edf1f5 !important; color:#536779 !important; }
.sgc-user-status.is-rejected { background:#fff0f1 !important; color:#b62f3b !important; }
.sgc-user-meta { margin-top:14px !important; padding-top:14px !important; border-top:1px solid var(--sgc-border) !important; display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:12px !important; }
.sgc-user-meta span { min-width:0 !important; color:var(--sgc-text) !important; font-size:13px !important; overflow-wrap:anywhere !important; }
.sgc-user-meta b { display:block !important; margin-bottom:2px !important; color:var(--sgc-muted) !important; font-size:10px !important; font-weight:900 !important; text-transform:uppercase !important; letter-spacing:.05em !important; }
.sgc-user-reason { margin-top:12px !important; padding:10px 12px !important; border-left:3px solid var(--sgc-warning) !important; border-radius:8px !important; background:#fff9eb !important; color:#77510a !important; font-size:13px !important; }
.sgc-user-actions-form { margin-top:14px !important; padding-top:14px !important; border-top:1px solid var(--sgc-border) !important; }
.sgc-user-action-grid { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:12px !important; }
.sgc-user-action-grid label { display:grid !important; gap:5px !important; }
.sgc-user-action-grid label span { color:var(--sgc-muted) !important; font-weight:500 !important; }
.sgc-user-action-buttons { display:flex !important; flex-wrap:wrap !important; gap:8px !important; margin-top:12px !important; }
.sgc-btn-danger { background:#c53b45 !important; border-color:#c53b45 !important; color:#fff !important; -webkit-text-fill-color:#fff !important; }
.sgc-btn-danger:hover { background:#a92c36 !important; border-color:#a92c36 !important; }
@media (max-width: 900px) {
    .sgc-user-stats { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
    .sgc-users-toolbar { align-items:stretch !important; flex-direction:column !important; }
    .sgc-user-search { width:100% !important; }
    .sgc-user-meta { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 620px) {
    .sgc-user-stats { grid-template-columns:1fr 1fr !important; }
    .sgc-users-panel { padding:15px !important; }
    .sgc-user-card-head { grid-template-columns:auto minmax(0,1fr) !important; }
    .sgc-user-status { grid-column:1 / -1 !important; justify-self:start !important; }
    .sgc-user-meta,.sgc-user-action-grid { grid-template-columns:1fr !important; }
    .sgc-user-search > div { flex-direction:column !important; }
    .sgc-user-action-buttons .sgc-btn { width:100% !important; }
}
