@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

    :root {
        --sigp-teal: #0f766e;
        --sigp-teal-dark: #0b5f59;
        --sigp-navy: #0B2D4A;
        --sigp-ink: #1a2233;
        --sigp-muted: #6f7f96;
        --sigp-panel: #f3f5f6;
        --sigp-field: #e9effc;
        --sigp-field-border: #dce4f3;
    }

    /* ---------- Fundo da página ---------- */
    .login-bg {
        background:
            radial-gradient(90% 70% at 100% 0%, rgba(34, 211, 197, .28), transparent 60%),
            linear-gradient(135deg, #0B2D4A 0%, #0c4356 55%, #0F766E 130%) !important;
        background-attachment: fixed !important;
    }

    /* Marca d'água: símbolo da nova marca, semitransparente, na lateral da página */
    .login-bg {
        position: relative;
        overflow: hidden;
    }
    .login-bg::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        right: -4vw;
        height: 100%;
        aspect-ratio: 124 / 145;
        background: url('../auth/images/simbolo-infopublic-branco.svg') no-repeat center / contain;
        opacity: .10;
        pointer-events: none;
    }
    .kt-login-v2 .kt-login-v2__body {
        position: relative;
        z-index: 1;
        min-height: 100vh;
        padding: 2.5rem 1.5rem;
        display: flex;
        align-items: center;
    }

    .kt-login-v2 .kt-login-v2__body .kt-login-v2__wrapper {
        width: 100%;
        display: flex;
        justify-content: center;
    }

    /* ---------- Cartão em duas colunas ---------- */
    .sigp-login {
        display: flex;
        width: 100%;
        max-width: 1060px;
        min-height: 620px;
        border-radius: 24px;
        overflow: hidden;
        background: var(--sigp-panel);
        box-shadow: 0 30px 70px rgba(2, 20, 30, .45);
        font-family: 'Inter', 'Open Sans', system-ui, sans-serif;
        text-align: left;
    }

    /* ---------- Painel esquerdo ---------- */
    .sigp-login__brand {
        position: relative;
        flex: 0 0 50%;
        overflow: hidden;
        color: #fff;
        background:
            radial-gradient(110% 75% at 100% 0%, rgba(34, 211, 197, .42), transparent 58%),
            linear-gradient(160deg, #0F766E 0%, #0d4d5e 45%, #0B2D4A 100%);
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 3rem 3.25rem;
    }

    .sigp-circle {
        position: absolute;
        border-radius: 50%;
        background: rgba(34, 211, 197, .09);
        pointer-events: none;
    }
    .sigp-circle--1 { width: 280px; height: 280px; top: -110px; right: -70px; }
    .sigp-circle--2 { width: 190px; height: 190px; bottom: 120px; left: -100px; }
    .sigp-circle--3 { width: 240px; height: 240px; bottom: -90px; left: -40px; }

    .sigp-login__brand-inner {
        position: relative;
        z-index: 1;
        width: 100%;
        text-align: center;
    }

    .sigp-login__logo {
        display: block;
        width: 280px;
        max-width: 85%;
        height: auto;
        margin: 0 auto 2rem;
    }

    .sigp-login__brand-title {
        margin: 0 0 .9rem;
        font-size: 1.65rem;
        font-weight: 700;
        line-height: 1.25;
        color: #fff;
        letter-spacing: 0;
    }

    .sigp-login__brand-text {
        margin: 0 auto 2rem;
        max-width: 340px;
        font-size: .98rem;
        line-height: 1.55;
        color: rgba(255, 255, 255, .92);
    }

    .sigp-features {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: .9rem;
        text-align: left;
    }

    .sigp-features li {
        display: flex;
        align-items: center;
        gap: .9rem;
        padding: .9rem 1.1rem;
        border-radius: 14px;
        background: rgba(255, 255, 255, .11);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
    }

    .sigp-features__icon {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        border-radius: 50%;
        background: rgba(255, 255, 255, .26);
        color: #ffffff;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .sigp-features strong {
        display: block;
        font-size: .95rem;
        font-weight: 600;
        color: #fff;
    }

    .sigp-features small {
        display: block;
        margin-top: 2px;
        font-size: .78rem;
        color: rgba(255, 255, 255, .85);
    }

    /* ---------- Painel direito ---------- */
    .sigp-login__panel {
        flex: 1 1 50%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 3rem 3.25rem;
        background: var(--sigp-panel);
    }

    .sigp-login__panel .kt-login-v2__form {
        width: 100%;
        padding: 0;
    }

    .sigp-login__head {
        position: relative;
        margin-bottom: 1.9rem;
    }

    .sigp-login__head h1 {
        margin: 0 0 .5rem;
        font-size: 1.85rem;
        font-weight: 700;
        color: var(--sigp-ink);
        letter-spacing: 0;
    }

    .sigp-login__head p {
        margin: 0;
        font-size: .95rem;
        color: var(--sigp-muted);
    }

    /* Campos */
    .sigp-field {
        margin-bottom: 1.15rem !important;
    }

    .sigp-field label {
        display: block;
        margin-bottom: .45rem;
        font-size: .9rem;
        font-weight: 600;
        color: #2f3a4e;
    }

    .sigp-input {
        position: relative;
        display: flex;
        align-items: center;
    }

    .sigp-input__icon {
        position: absolute;
        left: 16px;
        color: #9aa7bd;
        pointer-events: none;
        z-index: 2;
        transition: color .2s ease;
    }

    .sigp-input .form-control {
        width: 100%;
        height: 54px;
        padding: 0 3rem 0 3rem !important;
        text-indent: 0 !important;
        border: 2px solid var(--sigp-field-border);
        border-radius: 14px !important;
        background: var(--sigp-field);
        color: var(--sigp-ink);
        font-size: .95rem;
        transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
    }

    .sigp-input .form-control::placeholder { color: #8b98ae; }

    .sigp-input .form-control:focus {
        outline: 0;
        background: #eaf0fe;
        border-color: var(--sigp-teal);
        box-shadow: 0 0 0 4px rgba(15, 118, 110, .14);
    }

    .sigp-input:focus-within .sigp-input__icon { color: var(--sigp-teal); }

    .sigp-input__toggle {
        position: absolute;
        right: 6px;
        width: 42px;
        height: 42px;
        border: 0;
        border-radius: 10px;
        background: transparent;
        color: #7d8ba3;
        cursor: pointer;
        z-index: 2;
    }
    .sigp-input__toggle:hover { color: var(--sigp-teal); }

    .txtvalida {
        color: #dc3545;
        font-size: .8rem;
        margin-top: 4px;
    }
    #kt_login_form .txtvalida:empty { display: none !important; margin: 0; }

    /* reCAPTCHA */
    .recaptcha-container {
        position: relative;
        display: flex;
        justify-content: center;
        width: 100%;
        margin: .25rem 0 1.1rem;
        transform: none;
        overflow: visible;
    }

    .sigp-login__links {
        display: flex;
        justify-content: center;
        margin-top: 1.1rem;
    }

    .link-recuperacao-senha {
        font-size: .88rem;
        font-weight: 600;
        color: var(--sigp-teal) !important;
        text-decoration: none !important;
    }
    .link-recuperacao-senha:hover { color: var(--sigp-teal-dark) !important; text-decoration: underline !important; }

    /* Botões */
    .sigp-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: .6rem;
        height: 54px;
        padding: 0 1.5rem;
        border: 0;
        border-radius: 14px;
        font-family: inherit;
        font-size: 1rem;
        font-weight: 600;
        cursor: pointer;
        transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, background-color .18s ease;
    }

    .sigp-btn--primary {
        width: 100%;
        color: #fff;
        background: linear-gradient(100deg, #0F766E 0%, #0B2D4A 100%);
        box-shadow: 0 10px 24px rgba(15, 118, 110, .28);
    }
    .sigp-btn--primary:hover:not(:disabled) {
        transform: translateY(-1px);
        filter: brightness(1.08);
        box-shadow: 0 14px 28px rgba(15, 118, 110, .36);
    }
    .sigp-btn--primary:active:not(:disabled) { transform: translateY(0); }

    .sigp-btn--ghost {
        color: #475569;
        background: #fff;
        border: 1px solid #d5dce8;
    }
    .sigp-btn--ghost:hover { background: #eef2f7; }

    .btn-recaptcha-disabled,
    .sigp-btn:disabled {
        opacity: .6;
        cursor: not-allowed;
        box-shadow: none !important;
    }

    /* Recuperação de senha */
    #kt_login_form_esqueceu { display: none; }

    .sigp-login__actions-row {
        display: flex;
        gap: .75rem;
        margin-top: 1.4rem;
    }
    .sigp-login__actions-row .sigp-btn--ghost { flex: 0 0 auto; min-width: 110px; }
    .sigp-login__actions-row .sigp-btn--primary { flex: 1 1 auto; width: auto; }

    .close-esqueceu {
        position: absolute;
        top: 0;
        right: 0;
        border: 0;
        background: transparent;
        font-size: 1.1rem;
        color: #7d8ba3;
        cursor: pointer;
        padding: 4px 8px;
    }
    .close-esqueceu:hover { color: var(--sigp-teal); }

    /* ---------- Responsivo ---------- */
    @media (max-width: 900px) {
        .sigp-login { flex-direction: column; max-width: 520px; min-height: 0; }
        .sigp-login__brand { flex: 0 0 auto; padding: 2rem 1.75rem; }
        .sigp-features { display: none; }
        .sigp-login__brand-text { margin-bottom: 0; }
        .sigp-login__logo { width: 210px; margin-bottom: 1.25rem; }
        .sigp-login__brand-title { font-size: 1.3rem; }
        .sigp-login__panel { padding: 2rem 1.75rem 2.25rem; }
    }

    @media (max-width: 900px) {
        .login-bg::before { right: -35vw; opacity: .06; }
    }

    @media (max-width: 480px) {
        .kt-login-v2 .kt-login-v2__body { padding: 1rem .75rem; }
        .sigp-login { border-radius: 18px; }
        .sigp-login__panel { padding: 1.75rem 1.25rem 2rem; }
        .sigp-login__head h1 { font-size: 1.5rem; }
        .recaptcha-container { transform: scale(.86); transform-origin: center top; height: 68px; }
    }

    /* ---------- Tema escuro ---------- */
    body.dark-theme .login-bg { background: linear-gradient(135deg, #082f2c 0%, #071f2c 60%, #050f1a 100%) !important; }
    body.dark-theme .sigp-login { box-shadow: 0 30px 70px rgba(0, 0, 0, .6); }
    body.dark-theme .sigp-login__panel { background: var(--dk-surface); }
    body.dark-theme .sigp-login__head h1 { color: var(--dk-text-strong); }
    body.dark-theme .sigp-login__head p { color: var(--dk-muted); }
    body.dark-theme .sigp-field label { color: var(--dk-text-2); }
    body.dark-theme .sigp-input .form-control { background: var(--dk-input); border-color: var(--dk-border); color: var(--dk-text); }
    body.dark-theme .sigp-input .form-control:focus { background: #1f2d3d; border-color: #2dd4bf; box-shadow: 0 0 0 4px rgba(45, 212, 191, .16); }
    body.dark-theme .sigp-input .form-control::placeholder { color: var(--dk-placeholder); }
    body.dark-theme .link-recuperacao-senha { color: var(--dk-accent) !important; }
    body.dark-theme .sigp-btn--ghost { background: var(--dk-input); color: var(--dk-text); border-color: var(--dk-border); }
