/*
 * Memora 3.6.6 RC1 — Portal do Cliente responsivo
 * Camada visual isolada. Não altera consultas, cálculos ou gravações.
 */
.memora-client-mobile-only{display:none!important}
.memora-client-desktop-only{display:block}
header.memora-client-desktop-only{display:flex}

@media (max-width:782px){
    html,body{max-width:100%;overflow-x:hidden}
    html.memora-client-drawer-is-open,body.memora-client-drawer-is-open{overflow:hidden;touch-action:none}
    .memora-client-mobile-only{display:block!important}
    .memora-client-desktop-only,header.memora-client-desktop-only{display:none!important}

    .memora-portal-body{
        min-width:0;
        background:#f4f6fb;
        -webkit-text-size-adjust:100%;
        padding:0;
    }
    .memora-client-app{
        width:100%;
        max-width:none;
        min-width:0;
        box-sizing:border-box;
        padding:0 14px calc(88px + env(safe-area-inset-bottom));
    }
    .memora-client-app:before{opacity:.12}
    .memora-client-app:after{background:rgba(15,23,42,calc(var(--memora-bg-dark) * .45))}
    .memora-client-main{min-width:0;padding-top:14px}
    .admin-bar .memora-client-topbar{top:46px}

    /* Topo de aplicativo */
    .memora-client-topbar{
        display:flex!important;
        position:sticky;
        top:0;
        z-index:60;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        min-height:62px;
        margin:0 -14px;
        padding:calc(8px + env(safe-area-inset-top)) 16px 8px;
        box-sizing:border-box;
        background:var(--memora-brand);
        color:#fff;
        box-shadow:0 7px 24px rgba(15,37,74,.18);
    }
    .memora-client-topbar-brand{display:flex;align-items:center;gap:10px;min-width:0}
    .memora-client-topbar-brand img,
    .memora-client-topbar-mark{
        flex:0 0 38px;
        width:38px;
        height:38px;
        border-radius:11px;
        object-fit:contain;
        background:rgba(255,255,255,.96);
        color:var(--memora-brand);
        display:grid;
        place-items:center;
        font-weight:950;
        font-size:19px;
    }
    .memora-client-topbar-brand div{min-width:0}
    .memora-client-topbar-brand strong,
    .memora-client-topbar-brand span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .memora-client-topbar-brand strong{max-width:230px;font-size:15px;line-height:1.25;color:#fff}
    .memora-client-topbar-brand span{max-width:230px;margin-top:2px;font-size:11px;color:rgba(255,255,255,.78)}
    .memora-client-avatar-button{
        flex:0 0 40px;
        width:40px;
        height:40px;
        border:1px solid rgba(255,255,255,.36);
        border-radius:13px;
        background:rgba(255,255,255,.15);
        color:#fff;
        font:900 15px/1 inherit;
        cursor:pointer;
        -webkit-tap-highlight-color:transparent;
    }

    /* Saudação e resumo */
    .memora-client-welcome{
        display:flex!important;
        flex-direction:row!important;
        align-items:flex-start!important;
        justify-content:space-between;
        gap:12px;
        min-width:0;
        padding:18px;
        margin:0 0 12px;
        border-radius:18px;
        box-shadow:0 8px 26px rgba(15,37,74,.07);
    }
    .memora-client-welcome>div:first-child{min-width:0}
    .memora-client-welcome span{font-size:13px}
    .memora-client-welcome h1{
        max-width:100%;
        margin:3px 0 5px;
        font-size:clamp(23px,7vw,29px);
        line-height:1.08;
        overflow-wrap:anywhere;
        letter-spacing:-.025em;
    }
    .memora-client-welcome p{font-size:13px}
    .memora-client-welcome .memora-account-status{flex:0 0 auto;max-width:44%;text-align:center;font-size:11px;padding:7px 9px}

    .memora-next-payment{
        display:flex!important;
        flex-direction:row!important;
        align-items:center!important;
        gap:12px;
        padding:16px;
        margin-bottom:12px;
        border-radius:18px;
        border-left-width:4px;
        box-shadow:0 8px 26px rgba(15,37,74,.07);
    }
    .memora-next-payment>div:first-child{min-width:0;flex:1}
    .memora-next-payment strong{font-size:clamp(24px,8vw,31px);line-height:1.1;overflow-wrap:anywhere}
    .memora-next-payment small{font-size:12px;line-height:1.45}
    .memora-client-next-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:0 0 auto}
    .memora-client-next-actions>a{display:block!important;color:var(--memora-links);font-size:12px;font-weight:850;text-decoration:none}

    .memora-summary-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:12px}
    .memora-summary-grid article{
        min-width:0;
        padding:15px;
        border-radius:17px;
        box-shadow:0 8px 24px rgba(15,37,74,.06);
    }
    .memora-summary-grid span{font-size:11px;line-height:1.3}
    .memora-summary-grid strong{
        margin-top:6px;
        font-size:clamp(20px,6.2vw,27px);
        line-height:1.1;
        letter-spacing:-.03em;
        overflow-wrap:anywhere;
    }
    .memora-summary-grid article:last-child strong{font-size:clamp(17px,5vw,23px)}

    .memora-client-quick-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:0 0 12px}
    .memora-client-quick-actions a{
        min-width:0;
        padding:15px;
        border:1px solid #e6eaf1;
        border-radius:17px;
        background:#fff;
        color:var(--memora-navy);
        text-decoration:none;
        box-shadow:0 8px 24px rgba(15,37,74,.055);
    }
    .memora-client-quick-actions a>span{display:grid;width:36px;height:36px;place-items:center;margin-bottom:9px;border-radius:11px;background:color-mix(in srgb,var(--memora-brand) 11%,white);color:var(--memora-brand);font-size:19px;font-weight:900}
    .memora-client-quick-actions strong,.memora-client-quick-actions small{display:block}
    .memora-client-quick-actions strong{font-size:14px}
    .memora-client-quick-actions small{margin-top:3px;color:#718096;font-size:11px;line-height:1.35}

    /* Blocos expansíveis */
    .memora-client-accordion{
        min-width:0;
        margin:0 0 12px;
        border:1px solid #e6eaf1;
        border-radius:18px;
        background:#fff;
        box-shadow:0 8px 26px rgba(15,37,74,.06);
        overflow:hidden;
    }
    .memora-client-accordion>summary{
        display:grid;
        grid-template-columns:42px minmax(0,1fr) 18px;
        align-items:center;
        gap:11px;
        min-height:70px;
        padding:14px;
        box-sizing:border-box;
        cursor:pointer;
        list-style:none;
        -webkit-tap-highlight-color:transparent;
    }
    .memora-client-accordion>summary::-webkit-details-marker{display:none}
    .memora-client-accordion>summary>span:nth-child(2){min-width:0}
    .memora-client-accordion>summary strong,.memora-client-accordion>summary small{display:block}
    .memora-client-accordion>summary strong{font-size:15px;color:var(--memora-navy)}
    .memora-client-accordion>summary small{margin-top:3px;color:#718096;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
    .memora-client-section-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:color-mix(in srgb,var(--memora-brand) 11%,white);color:var(--memora-brand);font-size:20px;font-weight:900}
    .memora-client-chevron{width:8px;height:8px;border-right:2px solid #94a3b8;border-bottom:2px solid #94a3b8;transform:rotate(45deg);transition:transform .2s ease}
    .memora-client-accordion[open]>summary .memora-client-chevron,
    .memora-client-installment-card[open]>summary .memora-client-chevron{transform:rotate(225deg)}
    .memora-client-accordion-body{padding:0 14px 16px;border-top:1px solid #edf0f4}

    .memora-client-contract-code{position:relative;padding:15px 0 14px;border-bottom:1px solid #edf0f4}
    .memora-client-contract-code>span:first-child{display:block;color:#718096;font-size:11px}
    .memora-client-contract-code>strong{display:block;margin-top:4px;padding-right:105px;font-size:22px;color:var(--memora-navy);overflow-wrap:anywhere}
    .memora-client-contract-code>.memora-account-status{position:absolute;right:0;top:14px;font-size:10px;padding:6px 8px}
    .memora-client-data-list{margin:0}
    .memora-client-data-list>div{display:grid;grid-template-columns:minmax(82px,.7fr) minmax(0,1.3fr);gap:10px;padding:12px 0;border-bottom:1px solid #edf0f4}
    .memora-client-data-list>div:last-child{border-bottom:0;padding-bottom:0}
    .memora-client-data-list dt{color:#718096;font-size:12px}
    .memora-client-data-list dd{margin:0;text-align:right;color:var(--memora-navy);font-size:12px;font-weight:750;overflow-wrap:anywhere}

    .memora-client-dependent-list{display:grid;gap:10px;padding-top:14px}
    .memora-client-dependent-list article{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid #edf0f4;border-radius:14px;background:#f8fafc;min-width:0}
    .memora-client-dependent-list article.is-deceased{background:#fff1f2;border-color:#fecdd3}
    .memora-client-dependent-list article>div:last-child{min-width:0}
    .memora-client-dependent-list strong,.memora-client-dependent-list small{display:block;overflow-wrap:anywhere}
    .memora-client-dependent-list strong{font-size:13px}
    .memora-client-dependent-list small{margin-top:3px;color:#718096;font-size:11px;line-height:1.35}

    /* Extrato em cards */
    .memora-client-mobile-section{min-width:0;margin:0 0 12px;padding:16px;border:1px solid #e6eaf1;border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(15,37,74,.06)}
    .memora-client-section-heading span{display:block;color:var(--memora-brand);font-size:10px;font-weight:950;letter-spacing:.12em}
    .memora-client-section-heading h2{margin:4px 0 2px;font-size:21px;letter-spacing:-.025em}
    .memora-client-section-heading p{margin:0;color:#718096;font-size:12px}
    .memora-client-filter-chips{display:flex;gap:7px;overflow-x:auto;margin:14px -2px 12px;padding:2px 2px 5px;scrollbar-width:none}
    .memora-client-filter-chips::-webkit-scrollbar{display:none}
    .memora-client-filter-chips button{flex:0 0 auto;min-height:38px;padding:0 12px;border:1px solid #dfe5ed;border-radius:999px;background:#fff;color:#526176;font:800 12px/1 inherit;cursor:pointer}
    .memora-client-filter-chips button span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;padding:0 4px;border-radius:999px;background:#eef2f7;font-size:10px}
    .memora-client-filter-chips button.is-active{border-color:var(--memora-brand);background:var(--memora-brand);color:#fff}
    .memora-client-filter-chips button.is-active span{background:rgba(255,255,255,.2);color:#fff}
    .memora-client-statement-list{display:grid;gap:9px}
    .memora-client-installment-card{border:1px solid #e5e9f0;border-radius:15px;background:#fbfcfe;overflow:hidden}
    .memora-client-installment-card>summary{padding:13px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
    .memora-client-installment-card>summary::-webkit-details-marker{display:none}
    .memora-client-installment-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .memora-client-installment-main>div{min-width:0}
    .memora-client-installment-main span:first-child{display:block;color:#718096;font-size:11px}
    .memora-client-installment-main strong{display:block;margin-top:3px;font-size:18px;line-height:1.15;overflow-wrap:anywhere}
    .memora-client-installment-main>.memora-status{flex:0 0 auto;margin-top:1px;font-size:10px}
    .memora-client-installment-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:9px;border-top:1px solid #e9edf3;color:#718096;font-size:11px}
    .memora-client-installment-meta strong{color:#344258}
    .memora-client-installment-details{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:0 13px 13px;border-top:1px solid #e9edf3;background:#fff}
    .memora-client-installment-details>div{min-width:0;padding-top:11px}
    .memora-client-installment-details span,.memora-client-installment-details strong{display:block}
    .memora-client-installment-details span{color:#718096;font-size:10px}
    .memora-client-installment-details strong{margin-top:3px;font-size:11px;overflow-wrap:anywhere}
    .memora-client-filter-empty{padding:18px;text-align:center;color:#718096;font-size:12px}

    .memora-client-empty-state{padding:22px 14px;text-align:center;color:#718096}
    .memora-client-empty-state>span{display:grid;width:46px;height:46px;place-items:center;margin:0 auto 10px;border-radius:14px;background:#eef2f7;color:var(--memora-brand);font-size:22px}
    .memora-client-empty-state strong{display:block;color:#344258;font-size:13px}
    .memora-client-empty-state p{margin:5px 0 0;font-size:11px;line-height:1.45}

    /* Formulário de solicitação */
    .memora-client-request-form{padding-top:14px}
    .memora-client-request-form label{font-size:12px;color:#344258}
    .memora-client-request-form select,.memora-client-request-form textarea{box-sizing:border-box;font-size:16px;background:#fff}
    .memora-client-request-form button{min-height:48px;font-size:14px;background:var(--memora-button)}
    .memora-success{font-size:12px;line-height:1.45}

    /* Rodapé e navegação inferior */
    .memora-portal-footer{padding:14px 10px 8px;font-size:11px}
    .memora-client-bottom-nav{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        z-index:70;
        display:grid!important;
        grid-template-columns:repeat(5,minmax(0,1fr));
        min-height:64px;
        padding:5px 4px calc(5px + env(safe-area-inset-bottom));
        box-sizing:border-box;
        border-top:1px solid #e1e6ee;
        background:rgba(255,255,255,.97);
        box-shadow:0 -9px 28px rgba(15,37,74,.10);
        backdrop-filter:blur(16px);
        -webkit-backdrop-filter:blur(16px);
    }
    .memora-client-bottom-nav a,.memora-client-bottom-nav button{
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:2px;
        min-width:0;
        min-height:54px;
        padding:3px 1px;
        border:0;
        border-radius:13px;
        background:transparent;
        color:#738095;
        text-decoration:none;
        font:inherit;
        cursor:pointer;
        -webkit-tap-highlight-color:transparent;
    }
    .memora-client-bottom-nav span{font-size:20px;line-height:1}
    .memora-client-bottom-nav small{max-width:100%;font-size:9px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .memora-client-bottom-nav a.is-active,.memora-client-bottom-nav button.is-active{background:color-mix(in srgb,var(--memora-brand) 10%,white);color:var(--memora-brand)}

    /* Gaveta */
    .memora-client-drawer-layer{
        position:fixed;
        inset:0;
        z-index:1000;
        visibility:hidden;
        opacity:0;
        pointer-events:none;
        transition:visibility .24s ease,opacity .24s ease;
    }
    .memora-client-drawer-layer.is-open{visibility:visible;opacity:1;pointer-events:auto}
    .memora-client-drawer-overlay{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(7,15,28,.58);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);cursor:pointer}
    .memora-client-drawer{
        position:absolute;
        top:0;
        right:0;
        bottom:0;
        width:min(85vw,390px);
        box-sizing:border-box;
        display:flex;
        flex-direction:column;
        padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));
        background:#fff;
        color:var(--memora-navy);
        box-shadow:-22px 0 54px rgba(7,15,28,.25);
        transform:translateX(104%);
        transition:transform .24s ease;
        overflow-y:auto;
        overscroll-behavior:contain;
    }
    .memora-client-drawer-layer.is-open .memora-client-drawer{transform:translateX(0)}
    .memora-client-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:15px;border-bottom:1px solid #edf0f4}
    .memora-client-drawer-company{display:flex;align-items:center;gap:10px;min-width:0}
    .memora-client-drawer-company img{flex:0 0 40px;width:40px;height:40px;border-radius:11px;object-fit:contain;border:1px solid #edf0f4}
    .memora-client-drawer-company>div:last-child{min-width:0}
    .memora-client-drawer-company strong,.memora-client-drawer-company span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .memora-client-drawer-company strong{font-size:14px}
    .memora-client-drawer-company span{margin-top:2px;color:#718096;font-size:10px}
    .memora-client-drawer-close{flex:0 0 42px;width:42px;height:42px;border:0;border-radius:13px;background:#f0f3f7;color:#344258;font:400 29px/1 inherit;cursor:pointer}
    .memora-client-drawer-user{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);gap:11px;align-items:center;margin:15px 0;padding:14px;border-radius:16px;background:color-mix(in srgb,var(--memora-brand) 7%,white)}
    .memora-client-drawer-avatar{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;background:var(--memora-brand);color:#fff;font-size:17px;font-weight:950}
    .memora-client-drawer-user>div:nth-child(2){min-width:0;padding-right:0}
    .memora-client-drawer-user strong,.memora-client-drawer-user span{display:block}
    .memora-client-drawer-user strong{font-size:13px;line-height:1.35;overflow-wrap:anywhere}
    .memora-client-drawer-user span{margin-top:3px;color:#718096;font-size:10px}
    .memora-client-drawer-user>.memora-account-status{grid-column:1/-1;justify-self:start;margin-top:2px;font-size:9px;padding:5px 7px;color:#166534}
    .memora-client-drawer-user>.memora-account-status.inativo,.memora-client-drawer-user>.memora-account-status.falecido{color:#991b1b}
    .memora-client-drawer-nav{display:grid;gap:5px}
    .memora-client-drawer-nav a{display:flex;align-items:center;gap:11px;min-height:48px;padding:0 12px;border-radius:13px;color:#344258;text-decoration:none;font-size:13px;font-weight:800}
    .memora-client-drawer-nav a span{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:#f0f3f7;color:var(--memora-brand);font-size:17px}
    .memora-client-drawer-nav a:active,.memora-client-drawer-nav a.is-active{background:color-mix(in srgb,var(--memora-brand) 9%,white);color:var(--memora-brand)}
    .memora-client-drawer-logout{margin-top:auto;padding-top:18px}
    .memora-client-drawer-logout button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;border:1px solid #fecdd3;border-radius:13px;background:#fff1f2;color:#9f1239;font:850 13px/1 inherit;cursor:pointer}

    /* Login no celular */
    .memora-login-shell{min-height:100svh;padding:calc(14px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom))}
    .memora-login-card{width:100%;max-width:440px;padding:24px 20px;border-radius:20px!important}
    .memora-login-card h1{margin:28px 0 8px;font-size:clamp(27px,8vw,34px)}
    .memora-login-card>p{font-size:14px;line-height:1.5}
    .memora-login-brand img{width:46px;height:46px}
    .memora-login-card label{margin-top:15px;font-size:13px}
    .memora-login-card input,.memora-login-card select{min-height:50px;padding:13px;font-size:16px}
    .memora-login-card button{min-height:50px;margin-top:20px}
    .memora-login-help{font-size:11px;line-height:1.5}
}

@media (max-width:370px){
    .memora-client-app{padding-left:10px;padding-right:10px}
    .memora-client-topbar{margin-left:-10px;margin-right:-10px;padding-left:12px;padding-right:12px}
    .memora-client-topbar-brand strong,.memora-client-topbar-brand span{max-width:190px}
    .memora-client-welcome{padding:15px}
    .memora-client-welcome .memora-account-status{max-width:42%;font-size:9px}
    .memora-summary-grid article{padding:13px}
    .memora-client-bottom-nav small{font-size:8px}
}

@media (prefers-reduced-motion:reduce){
    .memora-client-drawer-layer,.memora-client-drawer,.memora-client-chevron{transition:none!important}
}
