:root{--laranja:#E74908;--laranja-esc:#c43d05;--preto:#000;--fundo:#f3f3f3;--texto:#1b1b1b;--cinza:#6b6b6b;--borda:#dcdcdc}
*{box-sizing:border-box}
html,body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--texto);background:var(--fundo)}
.a-carregar{min-height:100vh;display:grid;place-items:center}
.a-carregar::after{content:"A carregar…";color:var(--cinza)}
header.topo{background:var(--preto);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px}
header.topo img{height:52px;display:block}
.utilizador{display:flex;align-items:center;gap:12px;font-size:14px}
.utilizador .perfil{color:var(--laranja);text-transform:capitalize}
nav.migalhas{background:#111;padding:8px 24px;font-size:14px}
nav.migalhas a{color:var(--laranja);text-decoration:none;margin-right:16px}
nav.migalhas a:hover{text-decoration:underline}
main{max-width:1680px;margin:0 auto;padding:24px 16px}
h1{font-size:22px;margin:0 0 4px}
.sub{color:var(--cinza);margin:0 0 20px}
.btn{background:var(--laranja);color:#fff;border:0;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer}
.btn:hover{background:var(--laranja-esc)}
.btn.sec{background:transparent;color:#fff;border:1px solid #555}
.btn.sec:hover{background:#222}
.grelha{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.cartao{display:block;background:#fff;border:1px solid var(--borda);border-radius:10px;padding:20px;text-decoration:none;color:inherit;border-top:4px solid var(--laranja);transition:box-shadow .15s,transform .15s}
.cartao:hover{box-shadow:0 6px 18px rgba(0,0,0,.12);transform:translateY(-2px)}
.cartao h2{margin:0 0 6px;font-size:18px}
.cartao p{margin:0;color:var(--cinza);font-size:14px}
.cartao.em-breve{opacity:.55;border-top-color:#999;cursor:default;pointer-events:none}
.cartao .tag{display:inline-block;margin-top:10px;font-size:12px;background:#eee;border-radius:10px;padding:2px 8px;color:var(--cinza)}
.login{min-height:100vh;display:grid;place-items:center;background:var(--preto);padding:16px}
.login form{background:#fff;border-radius:12px;padding:28px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:12px}
.login img{width:100%;max-width:260px;margin:0 auto 8px;display:block;background:#000;border-radius:6px}
.login label{font-size:13px;color:var(--cinza);display:flex;flex-direction:column;gap:4px}
.login input{padding:10px;border:1px solid var(--borda);border-radius:6px;font-size:15px}
.login input:focus{outline:2px solid var(--laranja);border-color:transparent}
.erro{color:#b00020;font-size:14px;min-height:20px;margin:0}
@media(max-width:600px){header.topo{padding:10px 12px;flex-wrap:wrap}header.topo img{height:40px}main{padding:16px 12px}}

/* ---------- ecrãs de tabela ---------- */
.btn:disabled{opacity:.5;cursor:default}
.btn.sec-claro{background:#fff;color:var(--texto);border:1px solid var(--borda)}
.btn.sec-claro:hover{background:#f0f0f0}
.barra{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}
.pesquisa{flex:1;min-width:200px;padding:9px 12px;border:1px solid var(--borda);border-radius:6px;font-size:15px;background:#fff}
.pesquisa:focus,.campo input:focus,.campo select:focus,.campo textarea:focus{outline:2px solid var(--laranja);border-color:transparent}
.contagem{color:var(--cinza);font-size:13px}
.tabela-wrap{overflow-x:auto;background:#fff;border:1px solid var(--borda);border-radius:8px}
.tabela{width:100%;border-collapse:collapse;font-size:14px}
.tabela th{text-align:left;background:#fafafa;padding:10px 12px;border-bottom:1px solid var(--borda);white-space:nowrap}
.tabela td{padding:9px 12px;border-bottom:1px solid #eee;vertical-align:top}
.tabela tr:last-child td{border-bottom:0}
.tabela tr.inativo td{color:#999}
.tabela .acoes{white-space:nowrap;text-align:right}
.btn-mini{background:#222;color:#fff;border:0;border-radius:5px;padding:5px 10px;font-size:12px;font-weight:600;cursor:pointer;margin-left:4px}
.btn-mini:hover{background:#444}
.btn-mini.perigo{background:#b00020}
.vazio{padding:24px;color:var(--cinza);margin:0}
.fundo{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;padding:16px;z-index:50}
.modal{background:#fff;border-radius:10px;width:100%;max-width:720px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.modal-topo{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--borda);border-top:4px solid var(--laranja)}
.modal-topo h2{margin:0;font-size:18px}
.x{background:none;border:0;font-size:26px;line-height:1;cursor:pointer;color:var(--cinza)}
.modal-corpo{padding:20px;overflow-y:auto}
.modal-pe{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;border-top:1px solid var(--borda);background:#fafafa}
.form-grelha{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.campo{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--cinza)}
.campo.largo,.audit.largo{grid-column:1/-1}
.campo input,.campo select,.campo textarea{padding:9px;border:1px solid var(--borda);border-radius:6px;font-size:15px;font-family:inherit;color:var(--texto);background:#fff;width:100%}
.campo input:disabled,.campo select:disabled,.campo textarea:disabled{background:#f4f4f4;color:#333}
.checks{display:flex;flex-wrap:wrap;gap:6px 16px;padding:4px 0}
.check{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--texto)}
.check input{width:auto}
.audit{font-size:12px;color:var(--cinza);margin:0}
.ps{position:relative}
.ps input{padding-right:30px}
.ps-limpar{position:absolute;right:6px;top:6px;border:0;background:none;font-size:20px;line-height:1;cursor:pointer;color:var(--cinza)}
.ps-lista{position:absolute;z-index:60;left:0;right:0;top:100%;margin:2px 0 0;padding:0;list-style:none;background:#fff;border:1px solid var(--borda);border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.15);max-height:240px;overflow-y:auto}
.ps-lista li{padding:8px 10px;cursor:pointer;color:var(--texto);font-size:14px}
.ps-lista li:hover{background:#fdeee8}
.ps-lista .ps-vazio{color:var(--cinza);cursor:default}
.ps-lista[hidden],.ps-limpar[hidden]{display:none}
.avisos{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:80}
.aviso{background:#1d6b2f;color:#fff;padding:10px 16px;border-radius:6px;font-size:14px;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.aviso.erro{background:#b00020}
@media(max-width:640px){
  .form-grelha{grid-template-columns:1fr}
  .tabela thead{display:none}
  .tabela,.tabela tbody,.tabela tr,.tabela td{display:block;width:100%}
  .tabela tr{border-bottom:1px solid var(--borda);padding:8px 0}
  .tabela td{border:0;padding:3px 12px}
  .tabela td[data-rotulo]::before{content:attr(data-rotulo) ": ";color:var(--cinza);font-size:12px}
  .tabela .acoes{text-align:left;padding-top:6px}
  .tabela .acoes .btn-mini{margin:0 6px 0 0}
}

.oculto{display:none !important}
.link-campo{display:flex;flex-direction:column;gap:6px}
.link-acoes{display:flex;gap:6px;flex-wrap:wrap}
.lnk{color:var(--laranja);text-decoration:underline}
.proj{display:grid;grid-template-columns:190px minmax(0,1fr);gap:20px;align-items:start}
.proj-menu{display:flex;flex-direction:column;gap:4px}
.proj-tab{text-align:left;padding:10px 12px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font:inherit}
.proj-tab.ativo{background:var(--laranja);color:#fff;border-color:var(--laranja)}
.proj-conteudo{min-width:0}
.ficha{display:grid;grid-template-columns:160px 1fr;gap:8px 16px;margin:12px 0}
.ficha dt{font-weight:600}.ficha dd{margin:0;white-space:pre-wrap}
@media (max-width:640px){.proj{grid-template-columns:1fr}.proj-menu{flex-direction:row;overflow-x:auto}.proj-tab{white-space:nowrap}.ficha{grid-template-columns:1fr}}
.ps-lista .ps-novo{font-weight:600;color:var(--laranja);border-top:1px solid #eee;cursor:pointer}
.aviso-valor{color:#b3261e}.afetacao h3{margin:8px 0 0}

.modal.larga{max-width:1200px}
.nota{border-left:3px solid var(--laranja);padding:6px 10px;margin:8px 0;background:#fafafa}
.nota .meta{font-size:.85em;color:#666;margin-bottom:2px}
.nota.anulada{opacity:.5;text-decoration:line-through}
.nota-texto{white-space:pre-wrap}

.so-impressao{display:none}
.tabela tfoot td{font-weight:700;background:#f6f6f6;border-top:2px solid #ccc}
@media print{
  @page{size:A4 landscape;margin:12mm}
  @page retrato{size:A4 portrait;margin:14mm}
  .so-impressao.retrato{page:retrato}
  body.imprimir > *:not(.so-impressao){display:none !important}
  body.imprimir .so-impressao{display:block}
  .pdf-banner{background:#000 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:10px 16px;margin:0 0 12px}.pdf-banner img{height:46px;display:block}
  .so-impressao h1{font-size:18px;margin:0 0 4px}.so-impressao p{margin:0 0 10px;color:#444;font-size:11px}
  .so-impressao table{width:100%;border-collapse:collapse;font-size:10.5px}
  .so-impressao th,.so-impressao td{border:1px solid #bbb;padding:3px 5px;text-align:left;display:table-cell !important}
  .so-impressao tr{display:table-row !important}.so-impressao thead{display:table-header-group !important}
  .so-impressao td::before{content:none !important}
}
.nivel-0{padding-left:0px}
.nivel-1{padding-left:22px}
.nivel-2{padding-left:44px}
.nivel-3{padding-left:66px}
.nivel-4{padding-left:88px}
.nivel-5{padding-left:110px}
.nivel-6{padding-left:132px}
.nivel-7{padding-left:154px}
.nivel-8{padding-left:176px}
.nivel{display:inline-flex;align-items:center;gap:4px}
.tog{border:0;background:none;cursor:pointer;font-size:1em;width:22px;padding:0;color:var(--laranja)}
.tog-vazio{display:inline-block;width:22px}
tr.pai td:first-child{font-weight:600}
.abas{display:flex;gap:6px;margin-bottom:12px}.abas .proj-tab{width:auto}
.agenda{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}
.cal-mes{margin:0 8px;min-width:170px;text-align:center}
.cal-legenda{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}
.cal{background:#fff;border:1px solid var(--borda);border-radius:8px;overflow:hidden}
.cal-linha{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-cab div{padding:6px;font-weight:600;background:#f6f6f6;text-align:center}
.cal-celula{min-height:92px;border-top:1px solid #eee;border-left:1px solid #eee;padding:3px;cursor:pointer;overflow:hidden}
.cal-celula:nth-child(7n+1){border-left:0}
.cal-celula.fora{background:#fafafa;color:#aaa}
.cal-celula.hoje .cal-num{background:var(--laranja);color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}
.cal-celula.sel{outline:2px solid var(--laranja);outline-offset:-2px}
.cal-num{font-size:.85em;margin-bottom:2px}
.chip{display:block;font-size:.72em;padding:1px 5px;border-radius:4px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff}
.cal-legenda .chip{display:inline-block;font-size:.8em;padding:2px 8px}
.mais{font-size:.72em;color:#666}
.ev-reuniao{background:#2563eb}.ev-tarefa{background:#7c3aed}.ev-escritura{background:#0f766e}.ev-validade{background:#b45309}.ev-tranche{background:#be123c}
.chip.feito{opacity:.5;text-decoration:line-through}
.cal-dia,.cal-prox{margin-top:14px}
.item-agenda{display:grid;grid-template-columns:70px 1fr auto;gap:8px;align-items:start;border-left:4px solid;padding:6px 8px;margin:6px 0;background:#fff;border-radius:4px}
.item-agenda.ev-reuniao{border-color:#2563eb;background:#fff;color:inherit}.item-agenda.ev-tarefa{border-color:#7c3aed;background:#fff;color:inherit}
.item-agenda.ev-escritura{border-color:#0f766e;background:#fff;color:inherit}.item-agenda.ev-validade{border-color:#b45309;background:#fff;color:inherit}.item-agenda.ev-tranche{border-color:#be123c;background:#fff;color:inherit}
.item-agenda.feito .item-corpo{text-decoration:line-through;opacity:.6}
.item-quando{font-variant-numeric:tabular-nums;color:#555}
.item-acoes{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
@media (max-width:900px){.agenda{grid-template-columns:1fr}.cal-celula{min-height:64px}.chip{font-size:.62em}}
.filtro{display:inline-flex;align-items:center;gap:6px}
tr.linha-forn td{font-size:.92em;color:var(--texto-suave,#555);background:rgba(0,0,0,.02)}
.filtros-txt{align-items:center;gap:.5rem;flex-wrap:wrap}
.chips{display:inline-flex;flex-wrap:wrap;gap:.35rem}
.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;border-radius:999px;background:#e8eef5;font-size:.88em}
.chip button{border:0;background:none;cursor:pointer;font-size:1.1em;line-height:1}
input.curto{width:9rem}
.assoc-existente{display:inline-flex;gap:.5rem;align-items:center;flex:1;min-width:16rem}
tr.grupo td{font-weight:600;background:#eef2f7}
tr.grupo-0 td{background:#dde5ef}
tr.grupo-2 td{font-weight:500;background:#f6f8fb}
button.ativo{outline:2px solid var(--cor-primaria,#1d4e89)}
td.dir{text-align:right}tr.forte td{font-weight:600}
a.lnk-ent{color:var(--cor-primaria,#1d4e89);text-decoration:underline dotted;cursor:pointer}
.ps-ficha{position:absolute;right:32px;top:5px}
.det-hist div{font-size:.9em}
tr.clicavel{cursor:pointer}tr.clicavel:hover td{background:#f1f5fa}
.menu-flutuante{position:fixed;z-index:2000;min-width:170px;background:#fff;border:1px solid var(--borda);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.22);padding:4px;display:flex;flex-direction:column}
.menu-item{background:none;border:0;text-align:left;padding:8px 12px;font-size:14px;cursor:pointer;border-radius:5px;color:#111}
.menu-item:hover,.menu-item:focus{background:#eef2f7;outline:none}
.menu-item.perigo{color:#b00020}
.menu-btn{margin-left:0}
.assoc-existente .ps{flex:1;min-width:14rem}
.assoc-existente .ps input{width:100%;box-sizing:border-box;padding:.55rem .7rem;font:inherit;border:1px solid var(--borda);border-radius:6px;background:#fff}
.calc-nota { font-size: .85rem; color: var(--cor-suave, #555); margin-top: 2px; min-height: 0; }
.calc-nota.erro { color: #b00020; }
.multi-sit { display: flex; flex-wrap: wrap; gap: 6px 14px; border: 1px solid var(--borda, #ccc); border-radius: 6px; padding: 4px 10px; }
.multi-sit legend { font-size: .85rem; padding: 0 4px; }
.multi-sit .chk { display: inline-flex; align-items: center; gap: 4px; }
.cartao-info { background: var(--fundo-cartao, #fff); border: 1px solid var(--borda, #ddd); border-radius: 8px; padding: 14px 16px; margin-bottom: 16px; }
.uso-linha { margin: 10px 0; }
.uso-rot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px; font-size: .95rem; }
.uso-barra { height: 10px; background: #e6e6e6; border-radius: 5px; overflow: hidden; margin-top: 4px; }
.uso-enche { height: 100%; background: #2e7d32; }
.uso-enche.alerta { background: #c62828; }
.grupo-consultas { margin-bottom: 22px; }
.grupo-titulo { font-size: 1.1rem; margin: 0 0 8px; }

.link-tel{color:inherit;text-decoration:underline;font-weight:600}

@media print{
  .rel-trabalho h1{font-size:20px;margin:18px 0 4px}.rel-trabalho h2{font-size:14px;margin:18px 0 6px;border-bottom:1px solid #999;padding-bottom:2px}
  .rel-trabalho table{font-size:12px}.rel-trabalho th{width:28%;background:#f2f2f2}
  .rel-trabalho .rel-nota{font-style:italic}
  .rel-assinaturas{display:flex;gap:40px;margin-top:90px;break-inside:avoid}
  .rel-ass{flex:1;text-align:center;font-size:12px}.rel-linha{border-bottom:1px solid #000;height:50px;margin-bottom:6px}
  .rel-peq{font-size:10.5px;color:#444;margin-top:3px}
}
@media print{.so-impressao.retrato{background:#fff}}
