/* ==========================================================================
   Tema gráfico MM — Mário Manuel Marques, Arquitetura, Lda.
   mm-tema.css · v1.0 (2026-10-13) · igual ao site clientes.mm-arquitetura.pt v5.3
   Uma só folha de estilos para todos os sites e subdomínios da empresa.
   Para mudar uma cor em todo o lado, altere as variáveis da secção 1.
   ========================================================================== */

/* MuseoModerno (SIL Open Font License 1.1, ver fontes/OFL.txt) — servida pelo próprio site */
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:300;src:url(fontes/museomoderno-latin-ext-300-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:300;src:url(fontes/museomoderno-latin-300-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:400;src:url(fontes/museomoderno-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:400;src:url(fontes/museomoderno-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:500;src:url(fontes/museomoderno-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:500;src:url(fontes/museomoderno-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:600;src:url(fontes/museomoderno-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:600;src:url(fontes/museomoderno-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:700;src:url(fontes/museomoderno-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'MuseoModerno';font-style:normal;font-display:swap;font-weight:700;src:url(fontes/museomoderno-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ==========================================================================
   1. Cores e medidas (alterar aqui muda todos os sites)
   ========================================================================== */
:root{
  --bg:#fafaf9;            /* fundo da página */
  --panel:rgba(255,255,255,.9); /* painéis, cabeçalho */
  --border:#e7e5e4;        /* linhas finas */
  --border-strong:#1c1917; /* linhas ao passar o rato / foco */
  --text:#1c1917;          /* texto */
  --muted:#78716c;         /* texto secundário */
  --soft:#f5f5f4;          /* campos, cabeçalhos de tabela */
  --accent:#1c1917;        /* botão principal */
  --accent-text:#fff;
  --danger:#dc2626; --danger-hover:#b91c1c; --ok:#059669;
  --ctl:2.4rem;            /* altura comum de botões e campos */
  --largura:1600px;        /* largura máxima do conteúdo */
  --fonte-marca:'MuseoModerno',system-ui,sans-serif;
  --fonte-texto:system-ui,-apple-system,'Segoe UI',sans-serif;
}
html.dark{
  --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;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--fonte-texto);background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;transition:background .3s,color .3s;line-height:1.5}
h1,h2,h3,h4,.brand h1,.brand small,.eyebrow,th,.btn,.who,label,.btn-topo,.tag,.pager,.menu a{font-family:var(--fonte-marca)}
h2{font-size:1.5rem;font-weight:300;line-height:1.25}
h3{font-size:1rem;font-weight:500}
p{font-size:.88rem}
a{color:inherit}
img{max-width:100%}
[hidden]{display:none!important}
.salto{position:absolute;left:-999px;top:0;z-index:200;background:var(--accent);color:var(--accent-text);padding:.6rem 1rem;font-size:.75rem}
.salto:focus{left:1rem;top:1rem}

/* ==========================================================================
   3. Cabeçalho e menu
   ========================================================================== */
header.mm-cab{border-bottom:1px solid var(--border);background:var(--panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);position:sticky;top:0;z-index:50}
.hdr{min-height:5rem;display:flex;align-items:center;gap:1rem 1.25rem;max-width:var(--largura);margin:0 auto;padding:.4rem 1.5rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit;margin-right:auto}
.logo{width:4.5rem;height:4.5rem;display:flex;align-items:center;justify-content:center;flex:none}
.logo img{width:100%;height:100%;object-fit:contain}
html.dark .logo img{filter:invert(1)}
.brand h1{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3}
.brand small{display:block;font-size:.65rem;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;margin-top:4px;font-weight:600}

/* Menu principal: ligações com o mesmo desenho dos botões; a página atual fica a cheio */
.menu{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.menu a{height:var(--ctl);display:inline-flex;align-items:center;gap:4px;padding:0 .85rem;border:1px solid transparent;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--muted);white-space:nowrap;transition:all .2s}
.menu a:hover{color:var(--text);border-color:var(--border)}
.menu a[aria-current="page"]{color:var(--text);border-color:var(--border-strong)}
.btn.menu-btn{display:none}

/* Zona da direita: tema, utilizador, sair / entrar */
.hdr-r{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.who{text-align:right;font-size:.7rem;display:flex;flex-direction:column;justify-content:center;height:var(--ctl);margin-left:.25rem;line-height:1.25}
.who b{display:block;letter-spacing:.06em}
.who span{color:var(--muted);font-size:.6rem;text-transform:uppercase;letter-spacing:.15em}
.separador{width:1px;height:1.6rem;background:var(--border)}

/* ==========================================================================
   4. Botões
   ========================================================================== */
.theme-btn,.btn{height:var(--ctl);display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1}
.theme-btn{border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;width:var(--ctl);font-size:1rem;transition:border-color .2s}
.theme-btn:hover{border-color:var(--border-strong)}
.btn{border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;padding:0 .75rem;cursor:pointer;transition:all .2s;text-decoration:none;gap:4px;white-space:nowrap}
.btn:hover{border-color:var(--border-strong)}
.btn:focus-visible,.theme-btn:focus-visible,.menu a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--border-strong);outline-offset:2px}
.btn.solid{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}
.btn.solid:hover{opacity:.88}
.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger);font-weight:600}
.btn.danger:hover{background:var(--danger-hover);border-color:var(--danger-hover)}
.btn.view{background:#e0f2fe;color:#0369a1;border-color:#bae6fd}
html.dark .btn.view{background:#0c4a6e;color:#e0f2fe;border-color:#0369a1}
.btn.edit{background:#fef3c7;color:#b45309;border-color:#fde68a}
html.dark .btn.edit{background:#78350f;color:#fef3c7;border-color:#b45309}
.btn.obs{background:#ccfbf1;color:#0f766e;border-color:#99f6e4}
html.dark .btn.obs{background:#134e4a;color:#ccfbf1;border-color:#0f766e}
.btn.block{width:100%;margin-top:1.5rem;height:2.6rem;font-size:.65rem;letter-spacing:.15em}
.btn[aria-disabled="true"],.btn:disabled{opacity:.4;pointer-events:none}
form.inline{display:inline-flex;vertical-align:middle}
.grupo-btn{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.btn-topo{position:fixed;bottom:2rem;right:2rem;z-index:99;background:var(--accent);color:var(--accent-text);border:1px solid var(--border-strong);padding:.6rem .9rem;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;box-shadow:0 10px 25px -5px rgba(0,0,0,.2);transition:all .2s;display:flex;align-items:center;gap:6px;border-radius:4px;opacity:0;pointer-events:none}
.btn-topo.visivel{opacity:1;pointer-events:auto}
.btn-topo:hover{opacity:.85;transform:translateY(-2px)}

/* ==========================================================================
   5. Estrutura da página
   ========================================================================== */
main{padding:2.5rem 1.5rem 4rem;max-width:var(--largura);width:100%;margin:0 auto;flex:1}
main.estreito{max-width:1000px}
.glass{background:var(--panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border)}
.panel{padding:2rem}
.panel.fino{padding:1rem}
.mb{margin-bottom:2rem}
.mt{margin-top:1.5rem}
.mt-s{margin-top:1rem}
.eyebrow{font-size:.65rem;text-transform:uppercase;letter-spacing:.25em;color:var(--muted);font-weight:600;display:block}
.linha{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin:.35rem 0 1.5rem}
.linha.fim{justify-content:flex-end;gap:8px;margin:1.25rem 0 0}
.linha h2,.linha h3{margin:0}
.colunas{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.25rem}
.texto{max-width:68ch}
.texto p+p{margin-top:.8rem}
.notice{padding:.8rem 1rem;font-size:.75rem;letter-spacing:.03em;margin-bottom:1.5rem}
.notice.ok{border-color:var(--ok);color:var(--ok)}
.notice.err{border-color:var(--danger);color:var(--danger)}
.nota{font-size:.65rem;color:var(--muted);margin-top:.75rem;line-height:1.5}
.nota.maiusc{text-transform:uppercase;letter-spacing:.05em;font-size:.6rem}
.tag{display:inline-block;font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;padding:.15rem .45rem;border:1px solid var(--border);color:var(--muted)}
.tag.forte{border-color:var(--border-strong);color:var(--text)}
.tag.alerta{border-color:var(--danger);color:var(--danger)}

/* Fichas (blocos rótulo + valor) */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1.5rem}
.field{background:var(--soft);padding:1rem;border:1px solid var(--border)}
.field.full{grid-column:span 2}
.field div{font-size:.85rem;font-weight:500;white-space:pre-wrap;overflow-wrap:anywhere}

/* ==========================================================================
   6. Formulários
   ========================================================================== */
label{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.3rem;font-weight:600}
input[type=text],input[type=password],input[type=number],input[type=search],input[type=email],input[type=tel],input[type=date],input[type=url],select,textarea{width:100%;padding:.55rem .8rem;background:var(--soft);border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:.8rem;border-radius:4px}
input[type=text],input[type=password],input[type=number],input[type=search],input[type=email],input[type=tel],input[type=date],input[type=url],select{height:var(--ctl);padding-top:0;padding-bottom:0}
input:focus,textarea:focus,select:focus{border-color:var(--border-strong)}
textarea{resize:vertical}
input[type=checkbox],input[type=radio]{width:auto;vertical-align:middle;margin-right:.3rem;accent-color:var(--accent)}
label.em-linha{display:flex;align-items:center;gap:.35rem;text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:400;font-family:inherit;color:var(--text)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:1rem}
.form-group.full{grid-column:span 2}
.form-stack .form-group{margin-bottom:1.1rem}
.ajuda{font-size:.65rem;color:var(--muted);margin-top:.3rem;line-height:1.4}
.pesquisa{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.pesquisa input[type=search]{flex:1 1 260px;min-width:0}

/* ==========================================================================
   7. Tabelas e paginação
   ========================================================================== */
.table-container{width:100%;overflow-x:auto;margin-top:1rem;border:1px solid var(--border)}
table{width:100%;border-collapse:collapse;font-size:.75rem}
th,td{padding:.45rem .7rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}
th{font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:var(--soft)}
tbody tr:hover{background:var(--soft)}
td.acoes,th.acoes{text-align:right;white-space:nowrap}
td.acoes .btn{height:1.9rem;padding:0 .55rem}
td.vazio{text-align:center;padding:2rem;color:var(--muted)}
td.mono{font-variant-numeric:tabular-nums;white-space:nowrap}
.pager{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1rem;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pager>div{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}

/* ==========================================================================
   8. Janela (modal)
   ========================================================================== */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);z-index:1000;align-items:center;justify-content:center;padding:1rem}
.modal-overlay.aberto{display:flex}
.modal-box{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:100%;max-width:520px;padding:24px;box-shadow:0 10px 25px -5px rgba(0,0,0,.2)}
html.dark .modal-box{background:#1c1917}
.modal-box h3{margin:.25rem 0 1rem}

/* ==========================================================================
   9. Página de entrada (acesso reservado) — <body class="centro">
   ========================================================================== */
body.centro main{max-width:440px;width:100%;margin:auto;padding:1.5rem}
body.centro header.mm-cab{position:static}
.login-wrap h2{font-size:1.25rem;margin:.4rem 0 1.5rem}

/* ==========================================================================
   10. Rodapé
   ========================================================================== */
footer.mm-rod{border-top:1px solid var(--border);padding:1.4rem 1rem;text-align:center;color:var(--muted);display:grid;gap:.35rem;background:var(--panel)}
.rod-1{font-family:var(--fonte-marca);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.rod-2{font-size:.62rem;letter-spacing:.06em;opacity:.8}
/* Faixa de contactos do atelier (opcional) — igual à das folhas impressas */
.rod-contactos{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.6rem 0;font-size:.72rem;line-height:1.5;text-align:left;color:var(--text);padding-bottom:1rem;margin-bottom:.6rem;border-bottom:1px dotted var(--border)}
.rod-contactos>*{padding:0 1.1rem;border-left:1px solid var(--border)}
.rod-contactos>*:first-child{border-left:none}
.rod-contactos a{text-decoration:none}
.rod-contactos a:hover{text-decoration:underline}
.rod-contactos .qr img{display:block;width:3.2rem;height:3.2rem;background:#fff;padding:3px}

/* ==========================================================================
   11. Ecrãs pequenos
   ========================================================================== */
@media (max-width:860px){
  header.mm-cab{position:static}
  .hdr{padding:.4rem 1rem}
  .logo{width:3.6rem;height:3.6rem}
  .btn.menu-btn{display:inline-flex}
  .menu{display:none;order:10;flex-basis:100%;flex-direction:column;align-items:stretch;gap:.25rem;padding:.5rem 0 .75rem;border-top:1px solid var(--border)}
  .menu.aberto{display:flex}
  .menu a{justify-content:flex-start;border-color:var(--border)}
  .who{display:none}
}
@media (max-width:700px){
  .form-grid,.grid{grid-template-columns:1fr}
  .form-group.full,.field.full{grid-column:span 1}
  main{padding:1.5rem 1rem 3rem}
  .panel{padding:1.25rem}
  .brand h1{font-size:.7rem}
  .brand small{letter-spacing:.15em}
  .rod-contactos{flex-direction:column;text-align:center}
  .rod-contactos>*{border-left:none;padding:0}
  .btn-topo{right:1rem;bottom:1rem}
}

/* ==========================================================================
   12. Impressão simples de qualquer página
   ========================================================================== */
@media print{
  header.mm-cab{position:static;backdrop-filter:none}
  .menu,.menu-btn,.hdr-r,.btn-topo,.nao-imprimir{display:none!important}
  body,html.dark body{background:#fff;color:#000}
  .glass{backdrop-filter:none;border-color:#ccc}
  a{text-decoration:none}
}
