/* Zelo v1: entrada, registo, conta e só leitura (com as cores e letras da app) */
html.zl-fora .app{visibility:hidden}
#zl-entrada{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;overflow:auto}
#zl-entrada[hidden]{display:none!important}
.zl-cartao{width:100%;max-width:420px;background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:28px 26px;box-shadow:0 8px 30px rgba(28,42,45,.08);margin:auto 0 0}
.zl-marca{display:flex;flex-direction:column;margin-bottom:18px}
.zl-marca b{font-family:var(--disp);font-size:28px;color:var(--tit,var(--ink));letter-spacing:-.02em;line-height:1}
.zl-marca small{font-size:10px;letter-spacing:.14em;color:var(--mu);margin-top:4px}
.zl-cartao h1{font-family:var(--disp);font-size:20px;color:var(--ink);margin:0 0 10px}
.zl-sub{color:var(--mu);font-size:13.5px;margin:0 0 12px}
.zl-carrega{text-align:center;margin:10px 0}
.zl-cartao form{display:flex;flex-direction:column;gap:10px}
.zl-cartao label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--tx)}
.zl-cartao label i{font-weight:400;color:var(--mu);font-style:normal}
.zl-cartao input:not([type=checkbox]),.zl-cartao select{font:inherit;font-size:14.5px;font-weight:400;padding:9px 11px;border:1px solid var(--bd);border-radius:8px;background:var(--inp);color:var(--ink)}
.zl-cartao input:focus,.zl-cartao select:focus{outline:2px solid var(--acb);border-color:var(--ac)}
.zl-cartao fieldset{border:1px solid var(--bd);border-radius:8px;padding:6px 12px 8px;display:flex;gap:18px;margin:0}
.zl-cartao legend{font-size:12.5px;font-weight:600;padding:0 4px}
.zl-cartao input:not([type=checkbox]),.zl-cartao select{width:100%;min-width:0;box-sizing:border-box;height:40px}
/* NIF e Setor: duas colunas iguais, etiquetas numa linha só, caixas na mesma linha de base */
.zl-2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:10px;align-items:end}
.zl-2>label{min-width:0}
.zl-2>label>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zl-mods{flex-wrap:wrap;row-gap:4px}
.zl-pp{position:relative;display:block}
.zl-pp input{padding-right:84px!important}
.zl-ver{position:absolute;right:6px;top:50%;transform:translateY(-50%);font:inherit;font-size:12.5px;font-weight:600;color:var(--ac);background:none;border:0;padding:6px 8px;cursor:pointer}
.zl-preco{font-size:13px;color:var(--tx);background:var(--acl);border-radius:8px;padding:9px 11px;margin:0;line-height:1.45}
.zl-preco b{color:var(--ink)}
.zl-ck{flex-direction:row!important;align-items:center;gap:8px!important;font-weight:400!important;font-size:13.5px!important}
.zl-termos{align-items:flex-start!important}
.zl-bt{display:inline-block;text-align:center;text-decoration:none;font:inherit;font-weight:600;font-size:14.5px;background:var(--ac);color:#fff;border:0;border-radius:8px;padding:11px 14px;cursor:pointer;margin-top:4px}
.zl-bt:disabled{opacity:.6;cursor:default}
.zl-gratis{font-size:12px;color:var(--mu);line-height:1.45;margin:2px 0 0;text-align:center}
.zl-lk{font:inherit;color:var(--ac);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.zl-erro{color:var(--red);background:var(--redl);border-radius:8px;padding:8px 10px;font-size:13px;margin:0}
.zl-ok{color:var(--ac);background:var(--acl);border-radius:8px;padding:8px 10px;font-size:13px;margin:0 0 10px}
.zl-links{display:flex;flex-direction:column;gap:6px;margin-top:16px;font-size:13px;color:var(--mu)}
.zl-cartao a,.zl-rodape a{color:var(--ac)}
.zl-rodape{margin:16px 0 auto;font-size:12px;color:var(--mu)}
@media (max-width:480px){.zl-cartao{padding:22px 18px}}
@media (max-width:340px){.zl-2{grid-template-columns:minmax(0,1fr)}}

/* botão da conta na barra de cima */
.topo .zconta{white-space:nowrap}
.topo .zconta.ro{color:var(--red);border-color:var(--red)}
/* janela da conta */
.zconta-m{width:460px;max-width:100%}
.zconta-m h4{margin:16px 0 6px;font-size:13px;color:var(--ink)}
.zconta-m .zl-l{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--bd);font-size:13.5px}
.zconta-m .zl-l>span:first-child{color:var(--mu)}
.zconta-m .zl-ck{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:13.5px}
.zchip{display:inline-block;font-size:12px;padding:3px 9px;border-radius:99px;background:var(--warnl);color:var(--warn)}
.zchip.ok{background:var(--acl);color:var(--ac)}
.zchip.ro{background:var(--redl);color:var(--red)}
/* só leitura */
#zFaixa{background:var(--redl);color:var(--red);font-size:13px;padding:8px 16px;border-bottom:1px solid var(--bd)}
#zFaixa a{color:inherit}

/* módulos por ativar e em construção: à parte e mais discretos */
.zl-outros{margin-top:26px}
.zl-outros h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mu);font-weight:600;margin:0 0 10px;text-align:center}
.zl-outros .tile5{opacity:.78}
.zl-outros .tile5:hover{opacity:1}
#side .zl-disc-t{margin-top:10px;opacity:.75}
#side .om40.zl-disc button{opacity:.62}
#mSheet .zl-disc-t{color:var(--mu)}
#mSheet .mgr.zl-disc .mli{opacity:.7}
#mSheet .mli small{display:block;font-size:11px;color:var(--mu);font-weight:400}
.zl-lock .zl-tag{display:inline-block;font-size:12px;font-weight:700;color:var(--pc,var(--ac));background:var(--pl,var(--acl));border-radius:99px;padding:3px 11px;margin:2px 0 8px}
.zl-lock .zl-lockt{color:var(--tx);font-size:14px;line-height:1.5;margin:6px auto 10px;max-width:420px}
.zl-lock .zl-feito{color:var(--ac);background:var(--acl);border-radius:8px;padding:9px 12px;font-size:13.5px;font-weight:600;display:inline-block}
/* engrenagem e menu da conta */
.topo .zeng svg.i40{width:19px;height:19px}
.zengm{position:fixed;z-index:400;min-width:250px;max-width:calc(100vw - 16px);background:var(--sf);border:1px solid var(--bd);border-radius:12px;box-shadow:0 12px 34px rgba(28,42,45,.16);padding:6px;display:none}
.zengm.on{display:block}
.zengm .zengh{padding:8px 10px 10px;border-bottom:1px solid var(--bd);margin-bottom:4px}
.zengm .zengh b{display:block;color:var(--ink);font-size:14px}
.zengm .zengh small,.zengm button small{display:block;color:var(--mu);font-size:11.5px;font-weight:400}
.zengm button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:8px 10px;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer}
.zengm button:hover,.zengm button:focus-visible{background:var(--acl)}
.zengm button svg.i40{width:17px;height:17px;flex:none;color:var(--ac)}
.zl-outros .tile5 .tlk{display:none}

/* conta vazia e dados de exemplo */
#zFaixaEx{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--warnl);color:var(--warn);font-size:13px;padding:7px 16px;border-bottom:1px solid var(--bd)}
#zFaixaEx b{color:inherit}
.zvazio{flex:none;height:auto;align-self:center;width:100%;max-width:560px;margin:40px auto;text-align:center;padding:34px 28px}
.zvazio .zvi{width:58px;height:58px;border-radius:16px;margin:0 auto 14px;display:grid;place-items:center;background:var(--acl);color:var(--ac)}
.zvazio .zvi svg.i40{width:28px;height:28px}
.zvazio h2{font-family:var(--disp);font-size:20px;color:var(--ink);margin:0 0 8px}
.zvazio p{color:var(--mu);font-size:14.5px;line-height:1.55;margin:0 auto 18px;max-width:430px}
.zvazio .zvb{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.zvazio .zvb .btn{max-width:100%;white-space:normal}

/* avisos: «Precisa da sua atenção» e «Atividade» */
.notifs .zavh b{font-size:15px;color:var(--ink)}
.notifs .zsep{display:flex;gap:4px;padding:0 12px 8px;border-bottom:1px solid var(--bd)}
.notifs .zsep button{font:inherit;font-size:12.5px;font-weight:600;color:var(--mu);background:none;border:0;border-radius:99px;padding:5px 11px;cursor:pointer}
.notifs .zsep button.on{background:var(--acl);color:var(--ac)}
.notifs .zsep em{font-style:normal;background:var(--red);color:#fff;border-radius:99px;padding:0 6px;font-size:11px;margin-left:3px}
.notifs .zsep i{font-style:normal;color:var(--mu);font-weight:400;margin-left:3px}
.notifs .zav{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--bd);padding:11px 14px;font:inherit;font-size:13.5px;line-height:1.4;color:var(--tx);cursor:pointer}
.notifs .zav:hover,.notifs .zav:focus-visible{background:var(--acl)}
.notifs .zavi{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--acl);color:var(--ac)}
.notifs .zavi svg.i40{width:16px;height:16px}
.notifs .zok{color:var(--ac);font-weight:600}
.zl-outros .tile5 em{white-space:normal;max-width:100%;box-sizing:border-box}

/* fim da experiência: faixas e ecrã de subscrição */
#zFaixa{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
#zFaixa.fim{background:var(--warnl);color:var(--warn)}
#zFaixa .btn{flex:none}
#zSub{position:fixed;inset:0;z-index:9000;background:var(--bg);display:none;overflow:auto;padding:24px 16px}
#zSub.on{display:flex}
html.zsub-on,html.zsub-on body{overflow:hidden}
.zsub{margin:auto;width:100%;max-width:520px;background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:30px 28px;box-shadow:0 10px 34px rgba(28,42,45,.1)}
.zsub h1{font-family:var(--disp);font-size:24px;color:var(--ink);margin:6px 0 10px}
.zsub h2{font-size:14px;color:var(--ink);margin:18px 0 6px}
.zsub p,.zsub li{font-size:14.5px;line-height:1.55;color:var(--tx)}
.zsub ol{padding-left:20px;margin:0}
.zsubp{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;background:var(--acl);border-radius:10px;padding:12px 14px;margin:14px 0}
.zsubp span{color:var(--mu);font-size:13px;flex-basis:100%}
.zsubp b{font-size:20px;color:var(--ink)}
.zsubp small{color:var(--ac);font-weight:600}
.zsubb{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 6px}
.zsubb .btn{text-decoration:none;max-width:100%;white-space:normal;text-align:center}
.zsubc{font-size:13px!important;color:var(--mu)!important}
.zsubn{font-weight:600}
.zsubf{width:100%;margin-top:10px}
/* imprimir em só leitura: sai em branco (o bloqueio principal está na interface) */
@media print{html.zl-ro body>*{display:none!important}html.zl-ro body::after{content:"A conta está só em leitura. Subscreva para exportar.";display:block;padding:40px;font:16px sans-serif}}

/* aviso de instalação no iPhone */
#zInst{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:350;display:flex;align-items:center;gap:10px;background:var(--sf);border:1px solid var(--bd);border-radius:12px;box-shadow:0 8px 26px rgba(28,42,45,.16);padding:10px 12px;font-size:13.5px;line-height:1.4;color:var(--tx)}
#zInst .zinsti{flex:none;color:var(--ac)}
#zInst .zinsti svg.i40{width:20px;height:20px}
#zInst .btn{flex:none}
/* app instalada: o conteúdo não fica por baixo da barra de estado */
@media (display-mode: standalone){.topo{padding-top:max(env(safe-area-inset-top),0px)}}

/* telemóvel: os botões das janelas nunca saem da caixa (texto quebra linha em vez de transbordar) */
@media (max-width:700px){
 #modalBox .btn,#view .btn{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;height:auto;min-height:40px;line-height:1.25;box-sizing:border-box}
 #view,#modalBox{overflow-x:hidden}
}
/* o aviso de instalação não fica por cima das janelas */
.modal-bg.on~#zInst,html.zsub-on #zInst{display:none}

/* sincronização */
.topo .zsync{background:none;border:0;font:inherit;font-size:11.5px;color:var(--mu);white-space:nowrap;cursor:pointer;padding:4px 6px}
.topo .zsync:hover{color:var(--ac)}
@media (max-width:700px){.topo .zsync{display:none}}

/* subscrição: módulos e extras */
.zsub .zsubh{font-size:13px!important;color:var(--mu)!important;margin:0 0 8px}
.zsubl{display:flex;flex-direction:column;gap:8px}
.zsubo{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--sf);border:1px solid var(--bd);border-radius:10px;padding:10px 12px;font:inherit;color:var(--tx);cursor:pointer;box-sizing:border-box}
.zsubo.on{border-color:var(--ac);background:var(--acl)}
.zsubo .zck{flex:none;width:22px;height:22px;border-radius:6px;border:1.5px solid var(--bd);display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff;background:#fff}
.zsubo.on .zck{background:var(--ac);border-color:var(--ac)}
.zsubot{flex:1;min-width:0}
.zsubot b{display:block;color:var(--ink);font-size:14px}
.zsubot small{display:block;color:var(--mu);font-size:12.5px;line-height:1.4}
.zsubot small a{color:var(--ac)}
.zsubopr{flex:none;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap}
.zsubq{cursor:default;flex-wrap:wrap}
.zstep{display:flex;align-items:center;gap:8px}
.zstep button{width:32px;height:32px;border-radius:8px;border:1px solid var(--bd);background:#fff;font:inherit;font-size:18px;cursor:pointer;color:var(--ink)}
.zstep b{min-width:18px;text-align:center}
@media (max-width:480px){.zsubo{flex-wrap:wrap}.zsubo .zsubot{flex-basis:calc(100% - 34px)}.zsubopr{margin-left:34px}.zsubq .zsubot{flex-basis:100%}.zsubq .zsubopr{margin-left:auto}}
/* ajuda a configurar */
#zCfg{position:fixed;inset:0;z-index:9100;background:rgba(28,42,45,.45);display:none;overflow:auto;padding:24px 16px}
#zCfg.on{display:flex}
.zcfg{position:relative}
.zcfgx{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:8px;border:1px solid var(--bd);background:#fff;cursor:pointer;font-size:15px}
.zcfg h1{padding-right:40px}
.zcfgl{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.zcfgl li{padding-left:22px;position:relative;font-size:14px;line-height:1.45}
.zcfgl li::before{content:"✓";position:absolute;left:0;color:var(--ac);font-weight:700}
.zcfgl b{color:var(--ink)}
.zcfgl span{display:block;color:var(--mu);font-size:13px}
.zcfgb{display:flex;align-items:center;gap:12px;width:100%;max-width:760px;margin:22px auto 0;text-align:left;background:var(--sf);border:1px dashed var(--ac);border-radius:12px;padding:12px 16px;font:inherit;cursor:pointer;color:var(--tx);box-sizing:border-box}
.zcfgb:hover{background:var(--acl)}
.zcfgb .zcfgi{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--acl);color:var(--ac)}
.zcfgb .zcfgi svg.i40{width:19px;height:19px}
.zcfgb>span:nth-child(2){flex:1;min-width:0}
.zcfgb b{display:block;color:var(--ink);font-size:14.5px}
.zcfgb small{display:block;color:var(--mu);font-size:12.5px}
.zcfgb .zcfgv{flex:none;font-weight:700;color:var(--ac);font-size:13.5px}
.zcfgs{display:flex;align-items:center;gap:7px;width:100%;margin-top:8px;padding:6px 9px;border:1px dashed rgba(255,255,255,.28);border-radius:8px;background:none;color:#cee1e1;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.zcfgs:hover{background:rgba(255,255,255,.08);color:#fff}
.zcfgs svg.i40{width:14px;height:14px}
body:has(#mSheet.on) #zInst,body:has(#zCfg.on) #zInst{display:none}

/* valor do parceiro e a minha margem (parceiro.js) */
#parcBox .pc-l{display:grid;grid-template-columns:minmax(0,1.4fr) 150px 170px minmax(150px,1fr) 34px;gap:8px;align-items:center;margin-top:6px}
#parcBox .pc-h{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mu);margin-top:4px}
#parcBox .pc-n{color:var(--ink);font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#parcBox .pc-m{display:grid;grid-template-columns:minmax(0,1fr) 62px;gap:6px}
#parcBox .pc-c{display:block;min-width:0}
#parcBox .pc-l .inp{min-width:0;width:100%}
#parcBox .pc-lb{display:none;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mu);margin-bottom:3px}
#parcBox .pc-r{display:flex;flex-direction:column;line-height:1.25}
#parcBox .pc-r b{color:var(--ink)}
#parcBox .pc-r small{font-size:11.5px;color:var(--mu)}
#parcBox .pc-para{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
input[readonly][id^=lvP],input[readonly][id^=lvK]{background:var(--bg);color:var(--mu)}
@media (max-width:700px){
 #parcBox .pc-h{display:none}
 #parcBox .pc-l{grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--bd);padding-top:8px}
 #parcBox .pc-n{grid-column:1/-1;white-space:normal}
 #parcBox .pc-lb{display:block}
 #parcBox .pc-m{grid-template-columns:minmax(0,1fr) 58px}
 #parcBox .pc-m select.inp{padding-left:8px;padding-right:4px}
 #parcBox .pc-l>.btn{justify-self:end}
}
/* mudar a subscrição: módulo de saída ou só para consulta (subscricao.js) */
.zcons{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--warnl);color:var(--warn);font-size:13px;padding:8px 14px;border-radius:10px;margin:0 0 12px}
.zcons.ro{background:var(--redl);color:var(--red)}
.zcons .btn{flex:none}
.zsubot small.zsubsai{color:var(--warn);font-weight:600}
.zsub ul.zsubmud{margin:0 0 12px;padding-left:20px;font-size:14px;line-height:1.5}
.zsub ul.zsubmud li{margin:0 0 6px}

/* telefone inválido (zelo/validar.js) */
input.zinv{border-color:#c0392b!important;box-shadow:0 0 0 2px rgba(192,57,43,.15)!important}
