/* ==========================================================================
   site.css — Memória Descritiva RJUE (carregar depois de mm-tema.css)
   Só usa as variáveis do tema; as cores próprias da ferramenta estão na secção A.
   ========================================================================== */

/* A. Variáveis próprias da ferramenta (estados e folha impressa) */
:root{
  --aviso:#b45309; --aviso-soft:#fef3c7; --ok-soft:#ecfdf5; --danger-soft:#fef2f2;
  --marca:#fde68a; --marca-ink:#713f12;
  --folha:#ffffff; --folha-ink:#111111; --folha-muted:#262626; --folha-linha:#111111; --folha-sombra:rgba(28,25,23,.08);
  --fonte-doc:'Carlito','Calibri','Lato',system-ui,sans-serif;
  --cab-h:5.2rem;
}
html.dark{--aviso:#fbbf24;--aviso-soft:#422006;--ok-soft:#022c22;--danger-soft:#450a0a;--marca:#854d0e;--marca-ink:#fef3c7;--folha:#e7e5e4;--folha-sombra:rgba(0,0,0,.5);color-scheme:dark}

/* B. Ponte com o modo claro/escuro do visualizador (sem classe = segue o sistema) */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]):not(.claro){
    --bg:#0c0a09; --panel:rgba(28,25,23,.9); --border:#44403c; --border-strong:#f5f5f4;
    --text:#f5f5f4; --muted:#a8a29e; --soft:#1c1917; --accent:#f5f5f4; --accent-text:#1c1917;
    --danger:#ef4444; --danger-hover:#dc2626; --ok:#34d399;
    --aviso:#fbbf24;--aviso-soft:#422006;--ok-soft:#022c22;--danger-soft:#450a0a;--marca:#854d0e;--marca-ink:#fef3c7;--folha:#e7e5e4;--folha-sombra:rgba(0,0,0,.5);
    color-scheme:dark}
  :root:not([data-theme="light"]):not(.claro) .logo img{filter:invert(1)}
}
:root[data-theme="dark"]:not(.claro){
  --bg:#0c0a09; --panel:rgba(28,25,23,.9); --border:#44403c; --border-strong:#f5f5f4;
  --text:#f5f5f4; --muted:#a8a29e; --soft:#1c1917; --accent:#f5f5f4; --accent-text:#1c1917;
  --danger:#ef4444; --danger-hover:#dc2626; --ok:#34d399;
  --aviso:#fbbf24;--aviso-soft:#422006;--ok-soft:#022c22;--danger-soft:#450a0a;--marca:#854d0e;--marca-ink:#fef3c7;--folha:#e7e5e4;--folha-sombra:rgba(0,0,0,.5);
  color-scheme:dark}
:root[data-theme="dark"]:not(.claro) .logo img{filter:invert(1)}
html.claro .logo img{filter:none}

/* C. Estrutura */
.hdr{padding-left:max(1.5rem,env(safe-area-inset-left,0px));padding-right:max(1.5rem,env(safe-area-inset-right,0px))}
header.mm-cab{top:env(safe-area-inset-top,0px)}
.brand{cursor:default}
.estado{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.estado .tag{white-space:nowrap}
.tag.aviso{border-color:var(--aviso);color:var(--aviso)}
.tag.ok{border-color:var(--ok);color:var(--ok)}
.menu a,.menu button{font-family:var(--fonte-marca)}
.menu button{height:var(--ctl);display:inline-flex;align-items:center;gap:6px;padding:0 .85rem;border:1px solid transparent;background:none;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap;cursor:pointer;transition:all .2s}
.menu button:hover{color:var(--text);border-color:var(--border)}
.menu button[aria-current="step"]{color:var(--text);border-color:var(--border-strong)}
.menu button[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.menu .k{font-weight:700}
.menu .feito{color:var(--ok)}
main.mdj{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:1.5rem;align-items:start;padding-left:max(1.5rem,env(safe-area-inset-left,0px));padding-right:max(1.5rem,env(safe-area-inset-right,0px))}
.col-form,.col-doc{min-width:0}
.col-doc{position:sticky;top:calc(var(--cab-h) + 1rem);max-height:calc(100vh - var(--cab-h) - 2rem);overflow:auto;border:1px solid var(--border);background:var(--soft)}
.pilha{display:flex;flex-direction:column;gap:1.25rem}
.pilha:empty{display:none}
#notes{margin-bottom:1.25rem}
.vistas{display:none;gap:.5rem;padding:1rem max(1rem,env(safe-area-inset-left,0px)) 0}
.vistas .btn[aria-pressed="true"],.pv-bar .btn[aria-pressed="true"]{border-color:var(--border-strong);color:var(--text)}
.secnav{display:flex;gap:.4rem;overflow:visible;padding-bottom:1rem}
.secnav:empty{display:none}
.secnav .btn{flex:none}
.secnav .n{font-family:var(--fonte-texto);font-size:.62rem;letter-spacing:0;padding:.05rem .4rem;border:1px solid var(--aviso);color:var(--aviso);font-variant-numeric:tabular-nums}
.secnav .n.zero{border-color:var(--ok);color:var(--ok)}

/* D. Painéis do formulário */
.mdj fieldset{margin:0;min-width:0;scroll-margin-top:calc(var(--cab-h) + 1rem)}
.mdj fieldset>legend{display:contents}
.fs-cab{display:flex;align-items:baseline;gap:.8rem;margin-bottom:1.25rem}
.fs-cab .num{font-family:var(--fonte-marca);font-size:1.6rem;font-weight:300;line-height:1;color:var(--muted);min-width:1.6rem}
.fs-cab h2{font-size:1.15rem}
.campos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.9rem}
.sub{grid-column:1/-1;display:flex;gap:.6rem;align-items:baseline;padding-top:.9rem;margin-top:.2rem;border-top:1px dotted var(--border)}
.sub:first-child{border-top:0;padding-top:0;margin-top:0}
.sub .eyebrow{display:inline}
.sub .rom{font-family:var(--fonte-marca);font-size:.8rem;font-weight:600}
.f{display:flex;flex-direction:column;min-width:0;grid-column:span 3}
.f.w1{grid-column:span 1}.f.w2{grid-column:span 2}.f.w4{grid-column:span 4}.f.w6{grid-column:1/-1}.f.fim{align-items:flex-end}
.unidade{position:relative}
.unidade input{padding-right:2.4rem;font-variant-numeric:tabular-nums}
.unidade span{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);font-size:.7rem;color:var(--muted);pointer-events:none}
.calc{height:var(--ctl);display:flex;align-items:center;padding:0 .8rem;border:1px dashed var(--border);font-variant-numeric:tabular-nums;font-size:.8rem}
input.falta{border-color:var(--danger);background:var(--danger-soft)}
label.em-linha{grid-column:1/-1;cursor:pointer}
label.em-linha span{line-height:1.4}
.linhas{grid-column:1/-1;display:flex;flex-direction:column;gap:.75rem}
.linha-cond{display:grid;grid-template-columns:1fr 1fr auto;gap:.75rem;align-items:end;padding:.9rem;border:1px solid var(--border);background:var(--soft)}
.linha-cond .f{grid-column:auto}
.linha-cond .f.w6{grid-column:1/-1}
.rede{grid-column:1/-1;display:grid;grid-template-columns:10rem 13rem minmax(0,1fr);gap:.75rem;align-items:end}
.rede .nm{font-size:.8rem;font-weight:600;padding-bottom:.65rem}
.rede .f{grid-column:auto}
.ptab{grid-column:1/-1;display:flex;flex-direction:column;gap:.45rem}
.prow{display:grid;grid-template-columns:1.2rem minmax(0,2.2fr) minmax(0,1.6fr) 6.2rem 6rem 2.4rem;gap:.6rem;align-items:center}
.prow.cab{font-family:var(--fonte-marca);font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.prow.off .pn,.prow.off input[type=text],.prow.off select{opacity:.4}
.prow .pn{font-size:.8rem;font-weight:600}
.prow .pn small{color:var(--muted);font-weight:400}
.prow input[type=checkbox]{margin:0}
.confirma{grid-column:1/-1;display:flex;flex-direction:column;gap:.75rem;padding-top:1rem;border-top:1px dotted var(--border)}
.erros{margin:0;padding-left:1.1rem;font-size:.75rem;color:var(--danger)}
.bloqueio{text-align:center;display:flex;flex-direction:column;gap:1rem;align-items:center}
.bloqueio p{max-width:52ch;color:var(--muted)}
.state{display:inline-block;font-family:var(--fonte-marca);font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;padding:.15rem .45rem;border:1px solid var(--border);white-space:nowrap}
.state.ok{border-color:var(--ok);color:var(--ok)}.state.bad{border-color:var(--danger);color:var(--danger)}.state.warn{border-color:var(--aviso);color:var(--aviso)}
td .inp-prop{width:6rem}
.export{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem}
.export .field{display:flex;flex-direction:column;gap:.6rem}
.export .field.principal{border-color:var(--border-strong)}
.export .field p{font-size:.75rem;color:var(--muted);flex:1}
.export .ext{font-family:var(--fonte-marca);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ficheiros{grid-column:1/-1;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;background:var(--soft);border:1px solid var(--border);padding:.8rem 1rem;white-space:pre;overflow-x:auto;line-height:1.7}
.passos{grid-column:1/-1;margin:0;padding-left:1.2rem;font-size:.8rem;display:flex;flex-direction:column;gap:.35rem}
.notas li{display:flex;gap:.55rem;align-items:flex-start;font-size:.78rem;list-style:none}
.notas{margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.45rem}
.sev{flex:none;width:.5rem;height:.5rem;margin-top:.38rem;background:var(--muted)}
.sev.bad{background:var(--danger)}.sev.warn{background:var(--aviso)}.sev.ok{background:var(--ok)}.sev.info{background:var(--text)}
.glass.panel.info{border-color:var(--border-strong)}

/* E. Pré-visualização: folha A4 com cabeçalho e rodapé do modelo */
.pv-bar{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.75rem 1rem;background:var(--panel);border-bottom:1px solid var(--border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.folha-wrap{padding:1.25rem 1rem 2.5rem}
.folha{background:var(--folha);color:var(--folha-ink);max-width:794px;margin:0 auto;padding:22px 32px 22px 54px;box-shadow:0 1px 2px var(--folha-sombra),0 10px 30px var(--folha-sombra);font-family:var(--fonte-doc);font-size:14.6px;line-height:1.5;display:flex;flex-direction:column;min-height:1123px}
.folha-cab{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px}
.folha-logo{width:111px;height:auto;display:block}
.folha-fich{font-family:Arial,sans-serif;font-size:8px;font-weight:700;color:var(--folha-muted)}
.folha-print{width:100%;border-collapse:collapse;flex:1}
.folha-print>thead,.folha-print>tfoot{display:none}
.folha-print>tbody>tr>td{padding:0;border:0;vertical-align:top}
.folha-corpo{font-size:14.6px}
.folha-corpo .meta{display:grid;grid-template-columns:max-content 1fr;gap:4px 6px;margin:0 0 40px}
.folha-corpo .meta b{font-weight:700}
.folha-corpo h1{font-family:var(--fonte-doc);font-size:14.6px;font-weight:700;text-align:center;margin:0 0 26px;text-wrap:balance}
.folha-corpo h2{font-family:var(--fonte-doc);font-size:14.6px;font-weight:700;font-style:normal;margin:26px 0 10px;display:grid;grid-template-columns:24px 1fr;line-height:1.5;text-wrap:pretty;scroll-margin-top:4rem}
.folha-corpo h2 .n{font-style:normal}
.folha-corpo h3{font-family:var(--fonte-doc);font-size:14.6px;font-weight:700;font-style:normal;margin:16px 0 4px 24px;text-wrap:pretty;scroll-margin-top:4rem}
.folha-corpo p{font-size:14.6px;margin:0 0 9px;text-align:justify;hyphens:auto;line-height:1.5}
.folha-corpo ul{margin:0 0 10px;padding-left:34px}
.folha-corpo li{margin-bottom:3px;text-align:justify}
.folha-corpo .tbl{overflow-x:auto;margin:6px 0 14px}
.folha-corpo table{width:100%;border-collapse:collapse;font-size:13.3px;font-variant-numeric:tabular-nums}
.folha-corpo th,.folha-corpo td{border:1px solid var(--folha-linha);padding:5px 7px;text-align:left;vertical-align:top;font-family:var(--fonte-doc);color:var(--folha-ink);background:transparent;text-transform:none;letter-spacing:0}
.folha-corpo th{font-weight:700;font-size:13.3px}
.folha-corpo td.r,.folha-corpo th.r{text-align:right}
.folha-corpo tbody tr:hover{background:transparent}
.folha-corpo .assin{margin-top:36px}
.folha-corpo .assin .traco{margin-top:46px;border-top:1px solid var(--folha-ink);width:260px;padding-top:4px}
.folha-corpo mark{background:#fde68a;color:#713f12;padding:0 3px;font-family:var(--fonte-texto);font-size:.82em;font-weight:600;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.folha-corpo .verdict{font-weight:700}
.folha-corpo .verdict.bad{color:#b91c1c}
.folha-rod{margin-top:28px;border-top:1px dotted var(--folha-muted);padding-top:6px;display:grid;grid-template-columns:42px auto auto auto 1fr;gap:0;align-items:center;font-family:'Carlito','Calibri',sans-serif;font-size:8.6px;line-height:1.55;color:var(--folha-muted)}
.folha-rod img{width:38px;height:38px;display:block}
.folha-rod>div{padding:0 16px;border-left:1px solid var(--folha-muted)}
.folha-rod>div.end{border-left:0;text-align:right;align-self:end;justify-self:end;padding-right:0}
.folha-rod>div:nth-child(2){border-left:0;padding-left:20px}
pre.md{margin:0 auto;max-width:860px;background:var(--panel);border:1px solid var(--border);padding:1rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--text)}

/* F. Avisos flutuantes */
.toast{position:fixed;left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--accent);color:var(--accent-text);padding:.7rem 1.1rem;font-family:var(--fonte-marca);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;z-index:200;box-shadow:0 10px 25px -5px rgba(0,0,0,.25);max-width:calc(100vw - 2rem)}
.drop{position:fixed;inset:0;z-index:150;border:3px dashed var(--border-strong);background:var(--panel);display:grid;place-items:center;font-family:var(--fonte-marca);font-size:1rem;letter-spacing:.12em;text-transform:uppercase;pointer-events:none}
.btn.armado{background:var(--danger);border-color:var(--danger);color:#fff}
.btn.ocupado{opacity:.6;cursor:progress}

/* G. Ecrãs pequenos */
@media (max-width:1180px){
  .vistas{display:flex}
  main.mdj{grid-template-columns:minmax(0,1fr)}
  main.mdj[data-view="form"] .col-doc{display:none}
  main.mdj[data-view="doc"] .col-form{display:none}
  .col-doc{position:static;max-height:none;overflow:visible}
  .estado{order:5;flex-basis:100%}
}
@media (max-width:700px){
  .campos{grid-template-columns:minmax(0,1fr)}
  .f,.f.w1,.f.w2,.f.w4{grid-column:1/-1}
  .linha-cond,.rede{grid-template-columns:minmax(0,1fr)}
  .rede .nm{padding-bottom:0}
  .prow{grid-template-columns:1.2rem minmax(0,1fr) 6rem 2.4rem;row-gap:.35rem}
  .prow.cab{display:none}
  .prow .pn,.prow .nm-in{grid-column:2/4}
  .prow .art{grid-column:2/-1}
  .prow .op{grid-column:2}
  .prow .lim{grid-column:3/-1}
  .prow .del{grid-column:4;grid-row:1}
  .folha{padding:16px 16px;font-size:13.5px;min-height:0}
  .folha-corpo .meta{grid-template-columns:minmax(0,1fr)}
  .folha-rod{grid-template-columns:42px 1fr;row-gap:6px}
  .folha-rod>div{border-left:0;padding:0 0 0 12px}
  .hdr-r{width:100%}
}

/* H. Impressão (Ctrl+P na versão offline/servidor): só a folha, com cabeçalho e rodapé em todas as páginas */
@media print{
  @page{size:A4;margin:9mm 15mm 16mm 25mm;@bottom-right{content:"Pág. " counter(page) " de " counter(pages);font:7pt Carlito,Calibri,sans-serif;color:#262626}}
  html,body{background:#fff!important}
  header.mm-cab,footer.mm-rod,.vistas,.col-form,.pv-bar,.toast,.drop,#mdview,.nao-imprimir{display:none!important}
  main.mdj{display:block;padding:0;max-width:none}
  .col-doc{position:static;max-height:none;overflow:visible;border:0;background:none;display:block!important}
  .folha-wrap{padding:0}
  .folha{box-shadow:none;padding:0;max-width:none;min-height:0;background:#fff;color:#111;display:block}
  .folha-cab{position:fixed;top:0;left:0;right:0;margin:0}
  .folha-rod{position:fixed;bottom:0;left:0;right:0;margin:0;background:#fff}
  .folha-rod>div.end{display:none}
  .folha-print>thead,.folha-print>tfoot{display:table-header-group}
  .folha-print>tfoot{display:table-footer-group}
  .esp-cab{height:72px}.esp-rod{height:58px}
  .folha-corpo mark{background:#fde68a!important;color:#713f12!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .folha-corpo h2,.folha-corpo h3{break-after:avoid}
  .folha-corpo tr{break-inside:avoid}
}

/* I. Margens de segurança do visualizador (o tema anula o padding de todos os elementos) */
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}

/* J. Voltar ao topo e quadro sinóptico numa só folha */
.btn-topo{bottom:calc(2rem + env(safe-area-inset-bottom,0px));right:calc(2rem + env(safe-area-inset-right,0px))}
@media (max-width:700px){.btn-topo{bottom:calc(1rem + env(safe-area-inset-bottom,0px));right:calc(1rem + env(safe-area-inset-right,0px))}}
@media print{.btn-topo{display:none!important}.folha-corpo .tbl.quadro{break-inside:avoid;page-break-inside:avoid}}

/* K. Quadros sinópticos múltiplos */
.quadro-ed{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.9rem;padding-bottom:1rem;border-bottom:1px dotted var(--border)}
.qgrid{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);gap:.4rem .75rem;align-items:center}
.qgrid.alt{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)}
.qgrid .qh{font-family:var(--fonte-marca);font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.qgrid .ql{font-size:.78rem}
.lote{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.5rem;align-items:end}
.lote .f{grid-column:span 1}
.folha-corpo .tbl.quadro table td:not(:first-child),.folha-corpo .tbl.quadro table th:not(:first-child){width:24%}
@media print{.folha-corpo .tbl.quadro td,.folha-corpo .tbl.quadro th{padding-top:2px;padding-bottom:2px}.folha-corpo .assin{break-before:avoid;margin-top:18px}}
@media (max-width:700px){.quadro-ed{grid-template-columns:minmax(0,1fr)}.qgrid,.qgrid.alt{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.qgrid.alt .ql{grid-column:1/-1}.lote{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* L. Assistente de leitura do regulamento */
.reg-res{border:1px solid var(--border);background:var(--soft);padding:1rem;display:flex;flex-direction:column;gap:.75rem}
.reg-grid{margin-top:.5rem}
.reg-res .field{background:var(--panel)}
.reg-res td input[type=text]{height:2rem;font-size:.75rem}
.reg-res td.trecho{font-size:.68rem;color:var(--muted);max-width:22rem;line-height:1.35}
.linha-link{flex-wrap:nowrap}.linha-link input{flex:1;min-width:0}
/* L. Leitura do regulamento: colunas da tabela de revisão */
.reg-res td input[id^="reg-a-"]{min-width:13rem}
.reg-res td input[id^="reg-v-"]{width:5rem}
.reg-res td:last-child{font-size:.7rem;color:var(--muted);min-width:14rem}

/* M. v3.3 — introdução, confrontantes por lado, fogos por tipologia */
.folha-corpo .intro-tit{text-align:center;text-decoration:underline;margin:-14px 0 24px}
.folha-corpo h1{margin-bottom:18px}
.confs{grid-column:1/-1;display:grid;grid-template-columns:8rem minmax(0,1fr);gap:.5rem .75rem;align-items:center}
.confs label.em-linha{grid-column:auto}
.tipos{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.tipo-l{display:grid;grid-template-columns:5rem 5rem auto;gap:.35rem;align-items:center}

/* N. v3.3 — passos em abas, sub-abas, pré-visualização ocultável, SEGUINTE, pendentes, arquivo */
.abas-bar{position:sticky;top:var(--cab-top,0px);z-index:45;display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;flex-wrap:wrap;background:var(--bg);border-bottom:1px solid var(--border);padding:.5rem max(1.5rem,env(safe-area-inset-right,0px)) 0 max(1.5rem,env(safe-area-inset-left,0px));margin-bottom:1.25rem}
.abas{display:flex;gap:.25rem;flex-wrap:wrap;overflow:visible}
.abas button{font-family:var(--fonte-marca);height:calc(var(--ctl) + 4px);display:inline-flex;align-items:center;gap:6px;padding:0 1rem;border:1px solid transparent;border-bottom:0;background:none;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer;white-space:nowrap;margin-bottom:-1px}
.abas button:hover{color:var(--text)}
.abas button[aria-selected="true"]{color:var(--text);background:var(--panel);border-color:var(--border);border-bottom:1px solid var(--panel);font-weight:600}
.abas button[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.abas .k{font-weight:700}.abas .feito{color:var(--ok)}
.abas button:focus-visible,.subabas .btn:focus-visible{outline:2px solid var(--border-strong);outline-offset:-2px}
.abas-r{display:flex;gap:.5rem;align-items:center;padding-bottom:.4rem;flex-wrap:wrap}
.abas-r .quem{display:flex;gap:.4rem;align-items:center}
.secnav .subabas{display:flex;gap:.3rem;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:.6rem}
.subabas .btn{flex:none}
.subabas .btn[aria-selected="true"]{border-color:var(--border-strong);color:var(--text);background:var(--soft);font-weight:600}
.subabas .tudo{margin-left:auto}
main.mdj.sem-pv{grid-template-columns:minmax(0,1fr)}
main.mdj.sem-pv .col-doc{display:none}
main.mdj.sem-pv .col-form{max-width:1100px;width:100%;margin:0 auto}
.flutua{position:fixed;right:calc(2rem + env(safe-area-inset-right,0px));bottom:calc(2rem + env(safe-area-inset-bottom,0px));z-index:99;display:flex;flex-direction:column-reverse;align-items:stretch;gap:.5rem}
.flutua .btn-topo{position:static;justify-content:center}
.flutua .btn-topo:not(.visivel){display:none}
.btn-seg{font-family:var(--fonte-marca);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 10px 25px -5px rgba(0,0,0,.2);border-radius:4px;padding:.6rem .9rem;height:auto}
@media (max-width:700px){.flutua{right:calc(1rem + env(safe-area-inset-right,0px));bottom:calc(1rem + env(safe-area-inset-bottom,0px))}.abas button{padding:0 .6rem}}
@media print{.flutua,.abas-bar,.pend{display:none!important}}
.estado button.tag{cursor:pointer;background:none;font:inherit;font-family:var(--fonte-marca)}
.estado button.tag:hover{background:var(--soft)}
.tag.alerta{border-color:var(--erro,#b42318);color:var(--erro,#b42318)}
.pend{position:fixed;z-index:120;top:calc(var(--cab-h,80px) + .5rem);right:max(1rem,env(safe-area-inset-right,0px));width:min(30rem,calc(100vw - 2rem));max-height:calc(100vh - var(--cab-h,80px) - 2rem);overflow:auto;padding:1rem 1.1rem;border:1px solid var(--border-strong);background:var(--panel);box-shadow:0 20px 40px -10px rgba(0,0,0,.3)}
.pend-cab{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem}
.pend h4{font-family:var(--fonte-marca);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;margin:.9rem 0 .35rem;color:var(--muted)}
.pend ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}
.pend-it{display:block;width:100%;text-align:left;background:none;border:1px solid var(--border);border-left-width:3px;padding:.4rem .6rem;font:inherit;font-size:.78rem;color:var(--text);cursor:pointer;line-height:1.35}
.pend-it:hover,.pend-it:focus-visible{background:var(--soft)}
.pend-it.bad{border-left-color:var(--erro,#b42318)}.pend-it.warn,.pend-it.m{border-left-color:var(--aviso)}
.pend-sec{display:block;font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.notas .lnk{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;text-decoration:underline dotted;cursor:pointer}
.notas .lnk:hover{text-decoration:underline}
@keyframes mdjPisca{0%,100%{box-shadow:0 0 0 0 transparent}20%,60%{box-shadow:0 0 0 4px var(--aviso)}}
.pisca{animation:mdjPisca 1.1s ease 2}
mark.pisca{outline:3px solid var(--aviso);outline-offset:2px}
.qgrid .ql small{color:var(--muted);font-size:.66rem}
.qgrid .unidade{display:grid;grid-template-columns:minmax(0,1fr) 2.2rem;align-items:center}
.qgrid .unidade span:empty{visibility:hidden}
.qgrid .calc{min-height:2.25rem;display:flex;align-items:center}
.qgrid.alt .calc,.qgrid .calc{margin-right:2.2rem}
.ql-in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem;align-items:center}
.reservado{opacity:.9;border-style:dashed}
.abrir-zona{border:1px dashed var(--border-strong);padding:1rem;display:flex;flex-direction:column;gap:.75rem;background:var(--soft)}
.lista-seg{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.45rem;font-size:.82rem}
table.arq td{vertical-align:top}
table.arq small{color:var(--muted)}
p.erro{color:var(--erro,#b42318)}
.btn.armado{border-color:var(--erro,#b42318);color:var(--erro,#b42318)}

/* O. Páginas de acesso do servidor (entrar, instalação) — caixa compacta */
body.acesso{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:1.25rem 1rem;gap:.9rem;background:var(--bg)}
.acesso-caixa{flex:0 0 auto;height:auto;min-height:0;margin:0;width:min(20.5rem,100%);display:flex;flex-direction:column;gap:.85rem;padding:1.6rem 1.5rem 1.35rem;background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--border-strong);box-shadow:0 18px 40px -22px rgba(0,0,0,.35)}
.acesso-marca{display:flex;flex-direction:column;align-items:center;gap:.45rem;text-align:center}
.acesso-logo{width:54px;height:auto}
.acesso-firma{font-family:var(--fonte-marca);font-size:.62rem;letter-spacing:.14em;text-transform:lowercase;color:var(--muted)}
.acesso-tit{display:flex;align-items:baseline;justify-content:center;gap:.45rem;padding-bottom:.7rem;border-bottom:1px dotted var(--border)}
.acesso-app{font-family:var(--fonte-marca);font-size:1rem;font-weight:600}
.acesso-ver{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);padding:.05rem .35rem}
.acesso-caixa h2{font-family:var(--fonte-marca);font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0}
.acesso-form{display:flex;flex-direction:column;gap:.65rem}
.acesso-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.acesso-form input{text-transform:none;letter-spacing:0}
.acesso-form input{height:2.35rem;padding:0 .7rem;border:1px solid var(--border);background:var(--soft);color:var(--text);font:inherit;font-size:.88rem;transition:border-color .15s,box-shadow .15s}
.acesso-form input:focus{outline:none;border-color:var(--border-strong);box-shadow:0 0 0 3px rgba(127,127,127,.15)}
.acesso-form .btn{height:2.35rem;margin-top:.2rem;justify-content:center;width:100%}
.acesso-caixa .nota{font-size:.66rem;margin:0;color:var(--muted);text-align:center}
.acesso .erro{color:var(--erro,#b42318);font-size:.75rem;margin:0;padding:.45rem .6rem;border-left:3px solid currentColor;background:var(--danger-soft)}
.acesso-rod{font-size:.6rem;letter-spacing:.08em;color:var(--muted);margin:0}
.acesso-rod a{color:inherit}

/* P. v3.4 — operações e usos múltiplos, escolha dos quadros, colunas a demolir / a ampliar, perfis e autorizações */
.ops-l,.qsel-l{display:flex;flex-wrap:wrap;gap:.35rem 1.2rem}
.ops-l .em-linha,.qsel-l .em-linha{grid-column:auto}
.qsel{border:1px solid var(--border);background:var(--soft);padding:.9rem 1rem}
.qsel .sugerido span{font-weight:600}
.qsel small,.ops small{color:var(--muted);font-weight:400}
.qd-cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;border-top:2px solid var(--border-strong);padding-top:.8rem}
.qd-cab h3{margin:0;font-family:var(--fonte-marca);font-size:.95rem;font-weight:500}
.qd-cab .rom{font-family:var(--fonte-marca);color:var(--muted)}
.qd-cols{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin-left:auto;align-items:center}
.qd-cols .em-linha{grid-column:auto}
.qd-acoes{display:flex;gap:.5rem;flex-wrap:wrap}
.qgrid.c2{grid-template-columns:minmax(0,2.2fr) minmax(0,1fr)}
.qgrid.c3{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)}
.qgrid.c4{grid-template-columns:minmax(0,1.7fr) repeat(3,minmax(0,1fr))}
.qgrid.c5{grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr))}
.qgrid.c4 .unidade,.qgrid.c5 .unidade{grid-template-columns:minmax(0,1fr) 1.6rem}
.qgrid.c4 .calc,.qgrid.c5 .calc{margin-right:1.6rem}
.qgrid input::placeholder{color:var(--ok);opacity:.9}
@media (max-width:900px){.qgrid.c4,.qgrid.c5{grid-template-columns:repeat(2,minmax(0,1fr))}.qgrid.c4 .ql,.qgrid.c5 .ql,.qgrid.c4 .qh:first-child,.qgrid.c5 .qh:first-child{grid-column:1/-1}}
.usos{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}
.uso-l{display:grid;grid-template-columns:minmax(12rem,1.4fr) minmax(0,1fr) 9rem auto;gap:.4rem;align-items:center;width:100%}
@media (max-width:700px){.uso-l{grid-template-columns:minmax(0,1fr) auto}.uso-l>*:nth-child(2),.uso-l>*:nth-child(3){grid-column:1/-1}}
details.p-off{margin-top:.4rem;border-top:1px dotted var(--border);padding-top:.4rem}
details.p-off summary{cursor:pointer;font-size:.72rem;color:var(--muted);padding:.3rem 0}
details.p-off .prow{opacity:.85}
.tag.rmue{margin-left:.35rem;font-size:.55rem;padding:.05rem .35rem;border-color:var(--border-strong)}
.autoriz{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin-top:.4rem}
.autoriz select{height:2rem;font-size:.75rem;max-width:12rem}
.autoriz .lnk{border:0;background:none;cursor:pointer;color:inherit;padding:0 .1rem}
.linha-pp{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.25rem 0;border-bottom:1px dotted var(--border)}
.linha-pp span{flex:1;min-width:10rem}
.ro-aviso{border-color:var(--aviso)}
.ro-aviso p{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.3rem 0 0}
.btn.leve{opacity:.85}
#form input:disabled,#form textarea:disabled,#form select:disabled{opacity:.75;cursor:not-allowed}


/* Q. v3.5 — operação urbanística, fogos por piso, estado nas abas, utilizador no cabeçalho */
.ops .lbl,.fogos .lbl{font-family:var(--fonte-marca);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ops-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:.75rem;margin-top:.4rem}
.ops-bloco{border:1px solid var(--border);background:var(--soft);padding:.75rem .85rem;display:flex;flex-direction:column;gap:.55rem;min-width:0}
.ops-tit{font-weight:600;font-size:.8rem}
.op-seg{display:flex;flex-direction:column;gap:.3rem}
.op-r{display:flex;gap:.5rem;align-items:flex-start;padding:.4rem .55rem;border:1px solid var(--border);background:var(--panel);cursor:pointer;font-size:.8rem;line-height:1.3}
.op-r small{display:block;color:var(--muted);font-size:.68rem}
.op-r.on{border-color:var(--border-strong);box-shadow:inset 3px 0 0 var(--text)}
.op-r input{margin-top:.15rem}
.ops-sub{display:flex;flex-direction:column;gap:.3rem;padding-left:.2rem}
.ops-sub .em-linha{grid-column:auto;font-size:.8rem}
.ops-sub small{color:var(--muted)}
.ops-res{margin-top:.5rem}
@media (max-width:1100px){.ops-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ops-bloco:first-child{grid-column:1/-1}}
@media (max-width:600px){.ops-grid{grid-template-columns:minmax(0,1fr)}}
details.fogos{border:1px solid var(--border);background:var(--soft);padding:0}
details.fogos>summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;align-items:baseline;padding:.65rem .85rem;cursor:pointer;list-style:none}
details.fogos>summary::-webkit-details-marker{display:none}
details.fogos>summary::before{content:'▸';margin-right:.4rem;color:var(--muted);transition:transform .15s}
details.fogos[open]>summary::before{transform:rotate(90deg)}
details.fogos>summary .lbl{margin-right:auto}
.fogos-res{font-size:.8rem;font-variant-numeric:tabular-nums}
.fogos-tab{display:flex;flex-direction:column;gap:.35rem;padding:0 .85rem .6rem}
.fogos-l{display:grid;grid-template-columns:minmax(0,2fr) 6rem 6rem 2.4rem;gap:.4rem;align-items:center}
.fogos-l.cab span{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.fogos-l.cab small{text-transform:none;letter-spacing:0}
.fogos-l input{height:2.25rem;min-width:0}
.fogos-l input[inputmode=numeric]{text-align:right;font-variant-numeric:tabular-nums}
.fogos-acoes{padding-top:.2rem}
.fogos-tot{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:baseline;border-top:1px solid var(--border-strong);padding-top:.5rem;margin-top:.2rem;font-size:.8rem;font-variant-numeric:tabular-nums}
.fogos-tot>span:first-child{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
details.fogos>.ajuda{padding:0 .85rem .7rem;margin:0}
@media (max-width:600px){.fogos-l{grid-template-columns:minmax(0,1fr) 4.5rem 4.5rem 2.2rem}.fogos-tot{grid-template-columns:1fr}}
.qgrid .qh-p{color:var(--text)}
.qgrid .calc.cp{font-weight:600}
.qgrid .calc.soma{border-style:solid;border-color:var(--border-strong)}
.qgrid .calc.vazio{color:var(--muted);justify-content:center}
/* estado (a validar, incoerências) na linha das abas */
.abas-r .estado{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}
.abas-r .estado .tag{height:calc(var(--ctl) - 6px);display:inline-flex;align-items:center;font-size:.6rem;padding:0 .6rem}
/* utilizador ao lado do botão claro / escuro */
.hdr-r .quem{display:flex;align-items:center;gap:.5rem}
.quem-id{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;min-width:0}
.quem-nome{font-size:.78rem;font-weight:600;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quem-papel{font-family:var(--fonte-marca);font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.quem-papel.adm{color:var(--ok)}
.op-r,.op-r span{font-family:var(--fonte-texto);text-transform:none;letter-spacing:0;font-size:.82rem;color:var(--text)}
.op-r small{font-family:var(--fonte-texto);text-transform:none;letter-spacing:0}
.ops-tit{font-family:var(--fonte-texto)}
.fogos-l.cab span{font-family:var(--fonte-marca)}

/* R. v3.8 — quadros numa linha, edição na pré-visualização, adendas, passo 1, registo, técnicos */
.qgrid.c4,.qgrid.c5{gap:.3rem .4rem}
.qgrid.c4{grid-template-columns:minmax(7rem,1.5fr) repeat(3,minmax(4.6rem,1fr))}
.qgrid.c5{grid-template-columns:minmax(7rem,1.4fr) repeat(4,minmax(4.4rem,1fr))}
.qgrid.c4 .qh,.qgrid.c5 .qh{font-size:.52rem;letter-spacing:.06em;line-height:1.2}
.qgrid.c4 .ql,.qgrid.c5 .ql{font-size:.72rem;line-height:1.25}
.qgrid.c4 .unidade,.qgrid.c5 .unidade{display:block;position:relative}
.qgrid.c4 .unidade input,.qgrid.c5 .unidade input{height:2rem;font-size:.74rem;padding:0 1.5rem 0 .4rem;width:100%;min-width:0}
.qgrid.c4 .unidade span,.qgrid.c5 .unidade span{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);font-size:.6rem}
.qgrid.c4 .calc,.qgrid.c5 .calc{height:2rem;min-height:2rem;margin-right:0;padding:0 .4rem;font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:700px){.qgrid.c4,.qgrid.c5{grid-template-columns:repeat(2,minmax(0,1fr))}.qgrid.c4 .ql,.qgrid.c5 .ql,.qgrid.c4 .qh:first-child,.qgrid.c5 .qh:first-child{grid-column:1/-1}}
.folha-corpo .tbl td.nw{white-space:nowrap}
.folha-corpo .tbl.quadro td,.folha-corpo .tbl.quadro th{padding-left:5px;padding-right:5px}
.pv-dica{margin:.4rem 0 0;font-size:.68rem;color:var(--muted)}
.ed-bar{position:sticky;top:0;z-index:5;display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:.45rem .7rem;margin-top:.4rem;background:var(--panel);border:1px solid var(--border-strong);font-size:.7rem}
.folha-corpo p[data-k]{cursor:text;border-radius:2px;transition:background .15s}
.folha-corpo p[data-k]:hover{background:rgba(127,127,127,.08)}
.folha-corpo p[data-k]:focus{outline:1px dashed var(--border-strong);outline-offset:3px;background:rgba(127,127,127,.06)}
.folha-corpo p.ed{box-shadow:-6px 0 0 -3px var(--ok)}
.folha-corpo p.ed-old{box-shadow:-6px 0 0 -3px var(--aviso,#b45309);background:rgba(180,83,9,.06)}
.folha-corpo h1.pb{margin-top:2.6rem;padding-top:2.2rem;border-top:1px dashed var(--border)}
@media print{.folha-corpo h1.pb{break-before:page;border:0;margin-top:0;padding-top:0}.folha-corpo p.ed,.folha-corpo p.ed-old{box-shadow:none;background:none}}
.adenda{border:1px solid var(--border);padding:.8rem 1rem;background:var(--soft)}
.adenda .linha{display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.adenda h3{margin:0;font-size:.95rem}
.adenda .campos{margin-top:.6rem}
table.ad-q input{height:1.9rem;font-size:.74rem;padding:0 .4rem;width:100%;min-width:4.2rem}
table.ad-q th input{font-weight:600;font-size:.62rem;text-transform:uppercase}
table.ad-q td:first-child input{min-width:11rem}
table.ad-q input.num{text-align:right}
table.ad-q td,table.ad-q th{padding:.2rem .25rem}
.subabas .btn[data-go="m0"]{margin-right:1.4rem;position:relative}
.subabas .btn[data-go="m0"]::after{content:"";position:absolute;right:-.85rem;top:15%;bottom:15%;border-right:1px solid var(--border-strong)}
.subabas .sub-acoes{margin-left:auto;display:flex;gap:.3rem;flex-wrap:wrap}
.reg-t td:first-child,.reg-t th:first-child{width:2rem;text-align:center}
.cadeado{font-size:.75rem;opacity:.7}
table.tec-t input{height:2rem;font-size:.76rem;padding:0 .45rem;width:100%;min-width:8.5rem}
table.tec-t td:first-child input,table.tec-t td:nth-child(3) input{min-width:12rem}
table.tec-t input.falta{border-color:var(--aviso,#b45309)}
.folha-corpo .tbl.quadro table{table-layout:fixed;width:100%}
.folha-corpo p.sp{margin-top:22px}
.extenso .calc{height:auto;min-height:var(--ctl);padding:.45rem .8rem;line-height:1.35}
/* S. Gestor de Memórias Descritivas v1.0.1 — Início, barra da memória, processos, versões, modelos */
.membar{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;padding-right:.4rem;margin-right:.2rem;border-right:1px solid var(--border)}
.membar .mb-id{font-size:.7rem;max-width:16rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.membar .mb-sem,.membar .mb-ro{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.membar .mb-sujo{font-size:.66rem;color:var(--ok)}.membar .mb-sujo.on{color:var(--aviso)}
.membar select{height:calc(var(--ctl) - 6px);font-size:.66rem;padding:0 .4rem;width:auto}
.membar .btn{height:calc(var(--ctl) - 6px);font-size:.6rem;padding:0 .7rem}
.g-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem;margin:.4rem 0 1rem}
.g-card{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.8rem 1rem;border:1px solid var(--border);background:var(--soft);color:var(--text);cursor:pointer;text-align:left;font:inherit}
.g-card:hover{border-color:var(--border-strong)}.g-card b{font-family:var(--fonte-marca);font-size:1.5rem;line-height:1}.g-card span{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.g-h{font-family:var(--fonte-marca);font-size:.8rem;font-weight:600;letter-spacing:.06em;margin:1rem 0 .5rem}
table.g-t td{vertical-align:middle}table.g-t tr.aberta td{background:var(--soft)}table.g-t tr.arq td{opacity:.6}
table.g-t .grupo-btn{flex-wrap:nowrap}
.g-nova{margin-bottom:1rem}.g-nova h3{margin:0 0 .5rem}
tr.g-dup td{background:var(--soft)}tr.g-dup .linha{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.equipa .eq-l{display:flex;flex-wrap:wrap;gap:.2rem 1rem}
.me-cap{border:1px solid var(--border);padding:.6rem .8rem;margin-bottom:.6rem;background:var(--soft)}
.est-final,.est-aprovada{font-weight:600}
@media (max-width:900px){.membar{border-right:0;width:100%;order:-1}}
.cli-imp{border:1px dashed var(--border-strong);padding:.7rem .9rem;background:var(--soft)}
.cli-imp input[type=search]{width:100%}
table.cli-t td{font-size:.76rem}
.cli-off{border-color:var(--aviso);background:var(--aviso-soft);font-size:.8rem}
.btn.perigo{border-color:var(--danger);color:var(--danger)}
.btn.perigo:hover{background:var(--danger);color:#fff}
.g-elim{border:1px solid var(--danger);padding:1rem 1.2rem;margin-top:1.5rem}
.gw-passos{display:flex;gap:1.5rem;list-style:none;counter-reset:gw;padding:0;margin:0 0 .5rem;flex-wrap:wrap;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.gw-passos li{counter-increment:gw}
.gw-passos li::before{content:counter(gw);display:inline-grid;place-items:center;width:1.5em;height:1.5em;border:1px solid currentColor;border-radius:50%;margin-right:.5em;font-size:.9em}
.gw-passos li.on{color:var(--text);font-weight:600}
.gw-passos li.ok{color:var(--ok)}
.gw-resumo th{width:30%;text-align:left}
