/* ═════════ 4.1 · pedidos da Joana de 20/10 (tarde): cor que organiza (um tom por módulo e por menu, só nos ícones),
   linha do tempo dos orçamentos separada das ações, ações com a cor do canal, nome do cliente primeiro, ecrãs sem scroll ═════════ */
/* módulos: quadrado de cor com o traço branco (Início, barra lateral, outros módulos) */
.ill40.ill41 .b{fill:var(--k)}.ill40.ill41 g{stroke:#fff}
.mh .ill40.ill41 .b{fill:var(--k)}.mh .ill40.ill41 g{stroke:#fff}
.lkd .ill40.ill41 .b,.omb.lkd .ill40.ill41 .b{fill:#cdd2d3}.lkd .ill40.ill41 g{stroke:#fff}
/* barra lateral: cada menu com o seu quadrado de cor */
.nb .ni.k41{background:var(--k)!important;color:#fff;border-radius:6px!important;box-shadow:0 1px 0 rgba(0,0,0,.12)}
.nb .ni.k41 svg.i40{width:14px;height:14px;stroke-width:2}
.nb.on{box-shadow:inset 3px 0 0 var(--k,#a7cacb)}
.mh b{display:flex;flex-direction:column;min-width:0}
.mh small.tr41{font-family:'Inter',sans-serif;font-size:10.5px;font-weight:600;color:#e9c48e;letter-spacing:.01em;margin-top:2px;white-space:nowrap}
.om41{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;background:var(--k);color:#fff;flex:none}
.om41 svg.i40{width:11px;height:11px;stroke-width:2.2}
.om40 button.lkd .om41{background:#7f9497}
/* topo: o ícone do menu ao lado do título */
#tti41{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--k);color:#fff;flex:none;box-shadow:0 1px 2px rgba(0,0,0,.12)}
#tti41 svg.i40{width:19px;height:19px;stroke-width:2}
#tti41[hidden]{display:none}
.zbtn svg.i40{width:17px;height:17px}
/* Início: cartões com uma risca da cor do módulo */
.h40 .tile5{border-top:3px solid var(--k,var(--bd))}
.h40 .tile5:hover{border-color:var(--k);border-top-color:var(--k)}
.h40 .tile5 em{color:var(--k)!important;background:color-mix(in srgb,var(--k) 11%,#fff)!important}
.h40 .tile5.lkd{border-top-color:#d2d7d8}
.h40 .tile5.lkd em{color:var(--mu)!important;background:#fff!important}
/* botões de ação com a cor do canal (o texto fica escuro; a cor está no ícone e no fundo claro) */
.btn.k41{--k:#2b696e;background:color-mix(in srgb,var(--k) 8%,#fff);border-color:color-mix(in srgb,var(--k) 30%,#fff);color:var(--ink)}
.btn.k41 svg.i40{color:var(--k)}
.btn.k41:hover{border-color:var(--k);background:color-mix(in srgb,var(--k) 14%,#fff)}
.btn.k41.wa{--k:#1fa855}.btn.k41.wa svg.i40{color:#25d366}
.btn.k41.wa.sol{background:#25d366;border-color:#1fb85a;color:#fff}.btn.k41.wa.sol svg.i40{color:#fff}.btn.k41.wa.sol:hover{background:#1fbf5b}
.btn.k41.em{--k:#1a6fd1}
.btn.k41.sms{--k:#d08a1e}
.btn.k41.tel{--k:#d93025}
.btn.k41.pdf{--k:#c4302b;background:#fff}
.btn.k41.cli{--k:#7458c4}
.btn.k41.ed{--k:#298a8f}
.btn.k41.lnk,.btn.k41.dup{--k:#55657a}
.btn.k41.ver{--k:#3f8048}
.btn.k41.ok{--k:#298a8f;background:#298a8f;border-color:#298a8f;color:#fff}.btn.k41.ok svg.i40{color:#fff}
.btn.k41.ob{--k:#c0553a}.btn.k41.fat{--k:#3f8048}
.btn.k41.per{--k:#c0392b;background:#fff;color:#b03a2e}.btn.k41.per.on{background:#fdecea}
.btn.k41.w{width:100%;justify-content:flex-start}
/* linha aberta do orçamento: linha do tempo (em cima) e ações (em baixo, numa faixa à parte) */
.xp41{padding:12px 16px 14px}
.tlh41{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:2px}
.nx41{font-size:13px;color:var(--tx);margin-left:auto}
.nx41 b{color:var(--ink)}
.agl41{display:block;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--mu);white-space:nowrap}
.ax41{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 0;margin-top:10px;padding:10px 12px;background:#f5f7f7;border:1px solid var(--bd);border-radius:12px}
.ag41{display:flex;flex-direction:column;gap:5px;padding:0 16px;border-left:1px solid var(--bd)}
.ag41:first-child{padding-left:2px;border-left:0}
.ag41.end{margin-left:auto;border-left:0;padding-right:0}
.agb41{display:flex;gap:6px;flex-wrap:wrap}
.per41{margin-top:10px;padding:10px 12px;border:1px solid #efc5c0;background:#fff8f7;border-radius:10px}
/* linha do tempo: círculos ligados por uma linha; verde = feito, azul = em curso, âmbar = próximo passo, vermelho = perdido */
.tl41{display:flex;align-items:flex-start;margin:6px 0 2px;min-width:0}
.p41{flex:1 1 0;min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 2px}
.p41::before{content:'';position:absolute;top:11px;right:50%;width:100%;height:2px;background:#d9dedf;z-index:0}
.p41:first-child::before{display:none}
.p41 i{position:relative;z-index:1;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid #d0d6d7;color:#fff;font-style:normal;box-sizing:border-box}
.p41 i svg.i40{width:14px;height:14px;stroke-width:2.6}
.p41 b{font-size:12.5px;font-weight:600;color:var(--mu);margin-top:4px;white-space:nowrap;line-height:1.25}
.p41 span{font-size:11.5px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.3}
.p41.ok i{background:#298a8f;border-color:#298a8f}.p41.ok::before{background:#298a8f}.p41.ok b{color:var(--ink)}
.p41.cur i{background:#fff;border-color:#2f74c0}.p41.cur i::after{content:'';width:10px;height:10px;border-radius:50%;background:#2f74c0}.p41.cur::before{background:#298a8f}.p41.cur b{color:#1e5a99}.p41.cur span{color:#1e5a99;font-weight:600}
.p41.nx i{border-color:#d08a1e;border-style:dashed}.p41.nx b{color:#9a6210}.p41.nx span{color:#9a6210;font-weight:600}
.p41.bad i{background:#c0392b;border-color:#c0392b}.p41.bad::before{background:#e3a59d}.p41.bad b{color:#b03a2e}.p41.bad span{color:#b03a2e}
.p41.gone i{background:#9aa19a;border-color:#9aa19a}.p41.gone b{color:var(--mu)}
.p41 i svg:not(.i40){width:11px;height:11px}
.p41.clk{cursor:pointer}.p41.clk:hover b{color:var(--ac);text-decoration:underline;text-underline-offset:2px}
.tl41.sm .p41 b{font-size:11.5px}.tl41.sm .p41 span{font-size:11px}.tl41.sm .p41 i{width:20px;height:20px}.tl41.sm .p41::before{top:9px}.tl41.sm .p41 i svg.i40{width:12px;height:12px}
.qrow.q41{gap:14px}
/* PDF: a coluna da direita */
.side2.s41{gap:7px}
.side2.s41 .agl41{margin-top:8px}
/* cliente do orçamento: nome e morada primeiro */
.cf41a{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px}
.cf41b{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:12px;align-items:start;margin-top:10px}
.cf41 .hits:empty{display:none}
.cf41 #cli_nome,.cf41 #nc_nome,.cf41 #ed_nome{font-weight:600}
/* Atividade: indicadores numa faixa e quatro quadros lado a lado */
.kpi41{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.kp.k41{background:#fff;padding:6px 12px 7px;border-radius:11px;border-top:3px solid var(--k)}
.kp.k41 span{display:flex;align-items:center;gap:5px;font-size:10.5px;letter-spacing:.04em;line-height:1.25}
.kp.k41 span svg.i40{color:var(--k);width:14px;height:14px;flex:none}
.kp.k41 b{font-size:18px;margin-top:1px;line-height:1.25}
.kp.k41 em{font-size:11.5px;line-height:1.3}
.kp.k41.ok{background:#f3f9f9}
.at41g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px;align-items:start}
.card.at41{margin:0;padding:12px 14px}
.card.at41 .ch{margin-bottom:8px;flex-wrap:wrap;gap:2px 8px}
.card.at41 .ch h2{display:flex;align-items:center;gap:6px;font-size:13px}
.card.at41 .ch h2 svg.i40{color:var(--k)}
.card.at41 .rt{margin-left:0;width:100%}
.ab41{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}
.ab41>div{display:flex;justify-content:space-between;gap:8px;font-size:12.5px}
.ab41>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ab41>div b{font-weight:600;color:var(--ink);white-space:nowrap}
.ab41>i{display:block;height:7px;border-radius:4px;background:var(--sf2);overflow:hidden}
.ab41>i u{display:block;height:100%;border-radius:4px;background:var(--k)}
.vm41{font-size:12.5px;font-weight:600;color:var(--ac);padding:2px 0;text-decoration:underline;text-underline-offset:2px}
#atCom{margin-top:10px}
#atCom .tr{min-height:34px;padding-top:4px;padding-bottom:4px}
#atCom .tr .atb{display:none}
#atCom{padding-top:10px;padding-bottom:10px}
#atCom .ch{margin-bottom:6px}
@media (max-width:1100px){.at41g{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){
 #tti41{display:none}
 .cf41a,.cf41b{grid-template-columns:1fr}
 .at41g{grid-template-columns:1fr}
 .kpi41{grid-template-columns:1fr}
 .kp.k41 span{white-space:nowrap}
 .ax41{flex-direction:column;align-items:stretch}.ag41{border-left:0;padding:0}
}
/* faixa das ações em duas filas: documento, envio e contacto; outras ações e «perdido» */
.ax41{flex-direction:column;align-items:stretch;gap:10px}
.axr41{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 0}
.axr41+.axr41{padding-top:10px;border-top:1px dashed var(--bd)}
.axr41>.ag41:first-child{padding-left:2px;border-left:0}
/* separadores dos ecrãs compridos */
.tabs41{display:flex;gap:2px;border-bottom:1px solid var(--bd);margin:0 0 12px;flex:none;overflow-x:auto}
.tabs41 button{padding:8px 14px 9px;font-weight:600;font-size:13.5px;color:var(--mu);border-bottom:2.5px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs41 button:hover{color:var(--ink)}
.tabs41 button.on{color:var(--tit);border-bottom-color:var(--k41,var(--tit))}
.t41h{display:none!important}
.filt+.tabs41{margin-top:2px}
/* permissões: módulos que abrem os seus menus */
.pgx41{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1px solid var(--bd);background:#fff;color:var(--mu);margin-right:8px;vertical-align:-5px}
.pgx41 svg{transition:transform .15s}.pgx41.on svg{transform:rotate(90deg)}.pgx41:hover{color:var(--ink);border-color:var(--mu)}
.pgs41{display:inline-block;margin-left:10px;font-size:11.5px;color:var(--mu);font-weight:500}
.pgm{cursor:default}
/* Início: sem scroll */
.h40.home{min-height:0}
.app.home{padding-top:0;padding-bottom:0}.app.home .topo{margin-top:20px}
/* calendário: cartões compactos; as ações aparecem ao passar o rato (ou ao abrir a marcação) */
@media (min-width:701px){
 .cal .ev .eb{display:none}
 .cal .ev:hover .eb,.cal .ev:focus-within .eb{display:flex}
 .cal .ev.done .eb{display:none!important}
 .cal .ev>.xs.mu{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
 .cal .ev{cursor:pointer}
}
/* Obras em Curso: cartão compacto */
@media (min-width:701px){
 .v2 .job>.cl{display:none}
 .v2 .job>.ja select{display:none}
 .v2 .job>.ja{flex-wrap:nowrap}
 .v2 .job>.ja .btn{flex:1 1 auto}
 .ck41{font-size:11px}
 /* novo orçamento: configurador mais compacto */
 .tipo{min-height:0!important;padding:9px 8px 8px!important}.tipo .e{width:32px!important;height:32px!important;font-size:17px!important}
 #cfgp .sub,#c2 .sub{padding:8px 12px}
}
/* listas que ocupam o resto do ecrã: altura mínima menor (cabe em portáteis de 700 px de altura) */
@media (min-width:701px){
 .card.grow{min-height:170px}.card.grow>.tab{min-height:90px}
 .corpo>.grow{min-height:200px}
 .agmic{min-height:72px!important;padding-top:8px!important;padding-bottom:8px!important}
}
/* telemóvel: textos compridos passam à linha em vez de alargar a página */
@media (max-width:700px){
 #dAlertas .pxp{flex-wrap:wrap}
 #cpTab .tr span,#cpTab .tr b,#cpTab .tr div{white-space:normal!important;overflow-wrap:anywhere;min-width:0}
}
.seq41{display:flex;justify-content:flex-end;margin-top:2px}
/* 2.º painel: «visto a» na lista, símbolo do WhatsApp nos textos, email sem endereço, em atraso */
.vis41{font-weight:600;color:#1e5a99}.vis41 svg.i40{width:13px;height:13px;vertical-align:-2px}
svg.i40.wa41{color:#25d366}
.btn.k41.em.sem41{border-style:dashed}
#hojeAtr{border-color:#efc5c0;background:#fffaf9}
#hojeAtr .ch h2{color:#b03a2e}
.d .vis41{display:inline!important;font-size:inherit;margin:0}
/* afinação 20/10 (noite): «Sem NIF» é uma caixa pequena ao lado do rótulo do NIF */
.nifh42{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 4px}
.nifh42 .lbl{margin:0}
.snf42{display:inline-flex;align-items:center;gap:5px;border:0;background:none;padding:0 2px;margin:0;font:inherit;font-size:12px;font-weight:600;color:var(--mu);cursor:pointer;white-space:nowrap;line-height:1;min-height:0}
.snf42 .ck{width:14px;height:14px;box-sizing:border-box;border:1.5px solid #9aa6a8;border-radius:3px;display:inline-grid;place-items:center;font-size:10px;line-height:1;color:#fff;background:#fff}
.snf42:hover .ck{border-color:#2b696e}
.snf42.on{color:var(--ink)}
.snf42.on .ck{background:#2b696e;border-color:#2b696e}
/* comerciais em Utilizadores e Permissões */
#defCom .com41s{gap:10px;margin-top:2px}
.tab.com41{margin-top:12px}
.tab.com41 .th,.tab.com41 .tr{display:grid;grid-template-columns:96px minmax(0,1fr) minmax(0,1fr) 160px 100px;gap:10px;align-items:center}
.tab.com41 .inp{min-height:34px}
@media (max-width:700px){
 .snf42{min-height:32px;padding:0 4px}
 .tab.com41 .th{display:none}
 .tab.com41 .tr{grid-template-columns:56px minmax(0,1fr)}
 .tab.com41 .tr>*:nth-child(n+3){grid-column:2}
}
