:root{--green:#1F6C5F;--light:#91c0b7;--dark:#103932;--paper:#F8F7F4;--line:#d7d7d2;--red:#b8332b}*{box-sizing:border-box}html{scroll-behavior:smooth}body.tuto-app-body{margin:0;background:#eef1ef;color:var(--dark);font-family:'Josefin Sans',sans-serif}.tuto-app-shell{width:100%;max-width:480px;min-height:100vh;margin:auto;background:var(--paper);box-shadow:0 0 30px #0002;padding-bottom:78px}.tuto-hero,.tuto-member-head{position:relative;min-height:220px;background:linear-gradient(145deg,var(--dark),var(--green));overflow:hidden;padding:42px 28px;color:#fff}.tuto-hero .tuto-logo{width:155px;max-height:100px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1)}.leaf{position:absolute;right:22px;top:30px;font-size:105px;line-height:1;color:#91c0b755;transform:rotate(-25deg)}.tuto-main{margin-top:-24px;position:relative;background:var(--paper);border-radius:24px 24px 0 0;padding:24px 20px}.tuto-welcome{text-align:center;padding:4px 8px 18px}.tuto-welcome h2{font:500 24px 'Playfair Display',serif;margin:0}.tuto-welcome h1{font:600 43px 'Playfair Display',serif;margin:0 0 8px}.tuto-welcome p{font-size:18px;line-height:1.35;margin:0}.diamond{display:block;margin-top:12px;color:var(--green);font-size:11px}.tuto-actions{display:grid;gap:10px}.tuto-row{min-height:56px;border:1px solid #bfc4c1;border-radius:9px;background:#fff;color:var(--dark);text-decoration:none;display:grid;grid-template-columns:32px 1fr 20px;align-items:center;padding:8px 14px;font-size:17px}.tuto-row-icon{font-size:22px;color:var(--green)}.tuto-chevron{text-align:right;font-size:28px}.tuto-primary{min-height:56px;border-radius:9px;background:linear-gradient(90deg,var(--green),#00695d);color:#fff;text-decoration:none;display:flex;gap:12px;align-items:center;justify-content:center;font-weight:600;font-size:17px}.tuto-quick{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:78px;background:var(--light);display:grid;grid-template-columns:repeat(3,1fr);padding:10px 8px max(8px,env(safe-area-inset-bottom))}.tuto-quick a,.tuto-bottom a{color:var(--dark);text-decoration:none;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:4px;font-size:12px}.tuto-quick b{font-size:25px;font-weight:400}.tuto-member-head{min-height:190px;padding-top:45px}.tuto-member-head h1{font:500 28px 'Playfair Display',serif;margin:0 0 10px}.tuto-member-head p{font:500 23px/1.25 'Playfair Display',serif;margin:0}.tuto-member-main{padding-bottom:30px}.tuto-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tuto-grid>a{min-height:118px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--dark);text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:9px;font-weight:600}.tuto-grid b{font-size:30px;color:var(--green)}.tuto-panel{margin-top:22px;padding-top:8px;scroll-margin-top:15px}.tuto-panel h2{font:600 26px 'Playfair Display',serif;margin:0 0 12px}.tuto-panel .tuto-row{border-radius:0;border-left:0;border-right:0;border-bottom:0}.tuto-panel .tuto-row:last-child{border-bottom:1px solid #bfc4c1}.tuto-logout,.tuto-logout .tuto-row-icon{color:var(--red)!important}.tuto-bottom{position:fixed;z-index:11;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:70px;background:linear-gradient(90deg,var(--dark),var(--green));display:grid;grid-template-columns:repeat(5,1fr);padding:6px 4px max(6px,env(safe-area-inset-bottom))}.tuto-bottom a{color:#fff;font-size:10px}.tuto-bottom b{font-size:19px;font-weight:400}@media(min-width:700px){body.tuto-app-body{padding:30px 0}.tuto-app-shell{min-height:calc(100vh - 60px);border-radius:28px;overflow:hidden}.tuto-quick,.tuto-bottom{bottom:30px;border-radius:0 0 28px 28px}}

/* v0.1.2 — ícones SVG próprios */
.tuto-row-icon svg{width:22px;height:22px;display:block}
.tuto-grid-icon{display:flex!important;align-items:center;justify-content:center}
.tuto-grid-icon svg{width:30px;height:30px;display:block}
.tuto-quick b,.tuto-bottom b{display:flex;align-items:center;justify-content:center}
.tuto-quick b svg{width:25px;height:25px;display:block}
.tuto-bottom b svg{width:19px;height:19px;display:block}
.tuto-primary-icon{display:flex;align-items:center;justify-content:center}
.tuto-primary-icon svg{width:21px;height:21px;display:block}


/* =========================================================
   v0.2.0 — páginas WordPress dentro da experiência TUTO App
   ========================================================= */
.tuto-app-internal-body{
    margin:0!important;
    padding:0!important;
    background:#eef3f1!important;
}
.tuto-app-internal-shell{
    min-height:100vh;
    padding-bottom:78px;
}
.tuto-internal-head{
    position:sticky;
    top:0;
    z-index:9999;
    min-height:68px;
    display:grid;
    grid-template-columns:44px 1fr 44px;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    background:#103932;
    color:#fff;
    box-sizing:border-box;
}
.tuto-internal-head h1{
    margin:0!important;
    padding:0!important;
    color:#fff!important;
    font-family:'Playfair Display',serif!important;
    font-size:21px!important;
    line-height:1.2!important;
    text-align:center;
    font-weight:600!important;
}
.tuto-back,.tuto-home-mini{
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff!important;
    text-decoration:none!important;
    border-radius:50%;
}
.tuto-back:hover,.tuto-home-mini:hover{
    background:rgba(255,255,255,.12);
}
.tuto-back svg,.tuto-home-mini svg{
    width:24px;
    height:24px;
}
.tuto-content-view{
    min-height:calc(100vh - 145px);
    padding:24px 20px 36px;
    background:#fff;
    color:#103932;
    font-family:'Josefin Sans',sans-serif;
    font-size:17px;
    line-height:1.6;
    box-sizing:border-box;
    overflow-wrap:anywhere;
}
.tuto-content-view h1,
.tuto-content-view h2,
.tuto-content-view h3,
.tuto-content-view h4,
.tuto-content-view h5,
.tuto-content-view h6{
    font-family:'Playfair Display',serif!important;
    color:#103932!important;
    line-height:1.25!important;
}
.tuto-content-view img,
.tuto-content-view video,
.tuto-content-view iframe{
    max-width:100%!important;
}
.tuto-content-view table{
    max-width:100%;
}
.tuto-content-view input:not([type="checkbox"]):not([type="radio"]),
.tuto-content-view select,
.tuto-content-view textarea{
    max-width:100%;
    box-sizing:border-box;
}
.tuto-content-view a{
    color:#1F6C5F;
}
.tuto-app-internal-body .tuto-bottom{
    position:fixed!important;
    bottom:0!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    width:min(100%,400px)!important;
    z-index:10000!important;
}

/* Oculta elementos de tema que alguns plugins possam injetar via wp_head/wp_footer.
   O conteúdo principal é renderizado diretamente pela App. */
.tuto-app-internal-body #wpadminbar{
    display:none!important;
}
html:has(body.tuto-app-internal-body){
    margin-top:0!important;
}

@media (max-width:480px){
    .tuto-app-internal-shell{
        width:100%!important;
        max-width:none!important;
        border-radius:0!important;
    }
    .tuto-content-view{
        padding:22px 18px 34px;
    }
}


/* =========================================================
   v0.2.1 — submenus próprios: Revistas / Doutrina / Arquivos
   ========================================================= */
.tuto-native-menu{
    min-height:calc(100vh - 145px);
    padding:22px 16px 34px;
    background:#f8f7f4;
    box-sizing:border-box;
}
.tuto-native-menu-intro{
    padding:10px 8px 22px;
    text-align:center;
    color:#103932;
}
.tuto-native-menu-icon{
    width:54px;
    height:54px;
    margin:0 auto 9px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#e3f0ed;
    color:#1F6C5F;
}
.tuto-native-menu-icon svg{
    width:29px;
    height:29px;
}
.tuto-native-menu-intro p{
    margin:0;
    font-size:15px;
}
.tuto-native-menu-list{
    overflow:hidden;
    border:1px solid #e2e1dd;
    border-radius:16px;
    background:#fff;
    box-shadow:0 7px 24px rgba(16,57,50,.06);
}
.tuto-native-menu-list .tuto-row{
    border-left:0;
    border-right:0;
}
.tuto-native-menu-list .tuto-row:first-child{
    border-top:0;
}
.tuto-native-menu-list .tuto-row:last-child{
    border-bottom:0;
}

/* O conteúdo reaproveitado já não deve mostrar espaços artificiais deixados
   pelos antigos wrappers vc_empty_space. */
.tuto-content-view > p:empty{
    display:none;
}


/* v0.2.2 */
.tuto-section-label{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 14px;box-sizing:border-box;font-family:'Josefin Sans',sans-serif;font-weight:700;color:#103932;border:1px solid #d9dfdc;border-bottom:0}
.tuto-section-label-member{background:#dceee9}
.tuto-section-label-reserved{margin-top:10px;background:#f0efeb;color:#1F6C5F}
.tuto-section-label .tuto-row-icon{display:flex;align-items:center;justify-content:center}
.tuto-section-label .tuto-row-icon svg{width:21px;height:21px}
.tuto-login-view,.tuto-native-contact,.tuto-audio-view{min-height:calc(100vh - 145px);padding:28px 18px 100px;background:#f8f7f4;box-sizing:border-box}
.tuto-login-card,.tuto-contact-card,.tuto-audio-card{background:#fff;border-radius:18px;padding:22px 18px;box-shadow:0 8px 26px rgba(16,57,50,.07)}
.tuto-login-card h2,.tuto-contact-card h2,.tuto-audio-card h2{font-family:'Playfair Display',serif;color:#103932}
.tuto-login-card h2,.tuto-contact-card h2{text-align:center;margin-top:0}
.tuto-login-card>p{text-align:center}
.tuto-login-card label:not(.tuto-remember){display:block;margin:14px 0 6px;font-weight:600}
.tuto-login-card input[type="text"],.tuto-login-card input[type="password"]{width:100%;min-height:48px;border:1px solid #bbc6c2;border-radius:10px;padding:10px 12px;box-sizing:border-box;font:inherit}
.tuto-remember{display:flex;align-items:center;gap:8px;margin:14px 0}
.tuto-login-submit{width:100%;border:0;cursor:pointer}
.tuto-forgot{display:block;margin-top:18px;text-align:center;color:#1F6C5F}
.tuto-login-error{margin:0 0 14px;padding:10px 12px;border-radius:9px;background:#fff1ef;color:#9f2e22;font-size:14px}
.tuto-contact-item,.tuto-contact-address{display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;padding:13px 8px;border-bottom:1px solid #ecebe7}
.tuto-contact-item a,.tuto-contact-address a{color:#1F6C5F;text-decoration:none}
.tuto-socials{padding-top:18px}
.tuto-socials h3{text-align:center;font-family:'Playfair Display',serif}
.tuto-social-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tuto-social-grid a{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #cfd8d5;border-radius:10px;color:#103932;text-decoration:none;background:#fff}
.tuto-audio-intro{text-align:center;margin-bottom:18px}
.tuto-audio-list{display:grid;gap:12px}
.tuto-audio-card h2{text-align:center;margin-top:0}
.tuto-audio-card audio{width:100%}
.tuto-audio-note{margin-top:18px;font-size:13px;color:#667772}
.tuto-content-view,.tuto-native-menu{padding-bottom:100px!important}

/* =========================================================
   v0.2.4 — navegação hierárquica, Conta e biblioteca áudio
   ========================================================= */
/* Separação visual entre Resumo da Conta e Histórico de Pagamentos. */
.tuto-content-view #rcp-payment-history,
.tuto-content-view .rcp-payment-history,
.tuto-content-view .rcp-table + h2,
.tuto-content-view .rcp-table + h3,
.tuto-content-view table + h2,
.tuto-content-view table + h3{
    margin-top:32px!important;
    padding-top:2px!important;
}

.tuto-audio-library{display:grid;gap:24px}
.tuto-audio-group>h2{
    margin:0 0 10px!important;
    text-align:center;
    font-family:'Playfair Display',serif;
    font-size:21px;
    color:#103932;
}
.tuto-audio-group .tuto-audio-list{
    overflow:hidden;
    border:1px solid #dfe5e2;
    border-radius:15px;
    background:#fff;
    box-shadow:0 7px 24px rgba(16,57,50,.05);
}
.tuto-audio-item{border-bottom:1px solid #e7ebe9;background:#fff}
.tuto-audio-item:last-child{border-bottom:0}
.tuto-audio-item summary{
    min-height:50px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 14px;
    box-sizing:border-box;
    cursor:pointer;
    list-style:none;
    color:#103932;
    font-weight:600;
}
.tuto-audio-item summary::-webkit-details-marker{display:none}
.tuto-audio-item summary span{font-size:22px;font-weight:300;color:#1F6C5F}
.tuto-audio-item[open] summary span{transform:rotate(45deg)}
.tuto-audio-player{padding:0 14px 14px}
.tuto-audio-player audio{width:100%;display:block}
.tuto-audio-empty{padding:18px;border-radius:12px;background:#fff;text-align:center;color:#667772}

.tuto-audio-unavailable{margin:0;padding:8px 0 2px;text-align:center;font-size:13px;color:#667772}

/* =========================================================
   v0.3.1 — PWA móvel: safe areas iOS/Android
   ========================================================= */
html,body.tuto-app-body{
    min-height:100%;
    background:#103932;
}
body.tuto-app-body{
    padding-top:0!important;
}
.tuto-app-shell{
    min-height:100dvh;
}
.tuto-internal-head{
    min-height:calc(58px + env(safe-area-inset-top));
    padding-top:env(safe-area-inset-top)!important;
    display:grid!important;
    grid-template-columns:54px minmax(0,1fr) 54px!important;
    align-items:center!important;
}
.tuto-internal-head .tuto-back,
.tuto-internal-head .tuto-home-mini{
    width:48px!important;
    height:48px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    position:relative!important;
    z-index:20!important;
    touch-action:manipulation;
}
.tuto-internal-head h1{
    min-width:0;
    padding:8px 4px!important;
    line-height:1.18!important;
}
.tuto-member-head,
.tuto-hero{
    padding-top:calc(42px + env(safe-area-inset-top))!important;
}
.tuto-bottom,
.tuto-quick{
    height:calc(70px + env(safe-area-inset-bottom))!important;
    padding-bottom:max(6px,env(safe-area-inset-bottom))!important;
}
.tuto-quick{
    height:calc(78px + env(safe-area-inset-bottom))!important;
}
.tuto-content-view,
.tuto-native-menu,
.tuto-audio-view{
    padding-bottom:calc(105px + env(safe-area-inset-bottom))!important;
}

/* Em ecrãs móveis a App ocupa o viewport todo e evita folgas que fazem
   parecer que a página está dentro de um segundo contentor. */
@media(max-width:699px){
    body.tuto-app-body{background:#f8f7f4!important;}
    .tuto-app-shell,
    .tuto-app-internal-shell{
        width:100%!important;
        max-width:none!important;
        min-height:100dvh!important;
        margin:0!important;
        border-radius:0!important;
        box-shadow:none!important;
        overflow:visible!important;
    }
    .tuto-bottom,.tuto-quick{
        left:0!important;
        right:0!important;
        transform:none!important;
        width:100%!important;
        max-width:none!important;
        bottom:0!important;
        border-radius:0!important;
    }
}

/* v0.3.5 — erro interno simples, sem abrir o template 404 do site */
.tuto-not-found{padding:48px 28px 120px;text-align:center;}
.tuto-not-found h2{font-family:'Playfair Display',serif;font-size:25px;line-height:1.25;margin:0 0 14px;color:#103932;}
.tuto-not-found p{max-width:390px;margin:0 auto 24px;line-height:1.55;}
.tuto-not-found .tuto-primary{display:inline-block;text-decoration:none;}

/* v0.3.11 — espaço visual entre o botão Entrar e a barra inferior na vista pública */
body.tuto-app-body:not(.tuto-app-internal-body) .tuto-main .tuto-actions .tuto-primary:last-child{
    margin-bottom:26px!important;
}
