/* fiscaldoo backoffice — mesma linguagem visual do Plano Director, do Painel fiscaldoo e
   do portal (F1-EPIC-07). Propositadamente NÃO é o "cloud SaaS" genérico: tom de
   ledger/documento certificado, nunca dashboard escuro com gráficos roxo-azul. */
:root{
  --paper:#F1F2ED; --surface:#FBFBF8; --surface-2:#F7F8F2;
  --ink:#16222E; --ink-muted:#4C5B62; --ink-faint:#7C8A86;
  --accent:#1F5C6B; --accent-ink:#0F3A45; --accent-soft:#E3EDEC;
  --critical:#8C332E; --critical-soft:#F3E4DF; --critical-ink:#6B2420;
  --good:#3F7D4F; --good-soft:#E3EEE1; --good-ink:#2C5B38;
  --warn:#A8762A; --warn-soft:#F3E9D6; --warn-ink:#7E5A1E;
  --line:#D9DBD1; --line-strong:#C3C6B8;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#10161C; --surface:#161D24; --surface-2:#131920;
    --ink:#E7EAE4; --ink-muted:#9FB0AC; --ink-faint:#71817D;
    --accent:#5FB8C9; --accent-ink:#BFE9EF; --accent-soft:#1B3339;
    --critical:#E08478; --critical-soft:#3A1E1C; --critical-ink:#F2B6AC;
    --good:#7FC08E; --good-soft:#1C3322; --good-ink:#AEE0B8;
    --warn:#D7AE64; --warn-soft:#3A2E16; --warn-ink:#EAC989;
    --line:#2A3138; --line-strong:#3A4248;
  }
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Public Sans", system-ui, sans-serif; font-size:15px; line-height:1.55;
}
h1,h2{font-family:"Newsreader", Georgia, serif; font-weight:600; margin:0}
code,.mono{font-family:"IBM Plex Mono", ui-monospace, monospace}
a{color:var(--accent)}
.wrap{max-width:880px; margin:0 auto; padding:2rem 1.2rem 4rem}
header.top{display:flex; align-items:baseline; gap:1.2rem; margin-bottom:1.6rem; flex-wrap:wrap}
header.top h1{font-size:1.6rem}
nav.tabs{display:flex; gap:.4rem; margin-bottom:1.6rem}
nav.tabs a{
  font-size:.82rem; padding:.4rem .9rem; border:1px solid var(--line-strong); border-radius:999px;
  color:var(--ink-muted); text-decoration:none;
}
nav.tabs a.active{background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); font-weight:600}
.tbl-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:3px; margin-bottom:1.2rem}
table{border-collapse:collapse; width:100%; font-size:.86rem}
th,td{text-align:left; padding:.55rem .75rem; border-bottom:1px solid var(--line)}
thead th{background:var(--surface-2); font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-muted)}
tbody tr:last-child td{border-bottom:none}
.pill{display:inline-flex; align-items:center; gap:.35rem; font-size:.76rem; font-weight:600; padding:.1rem .55rem; border-radius:999px}
.pill .d{width:7px;height:7px;border-radius:50%}
.pill.good{background:var(--good-soft); color:var(--good-ink)} .pill.good .d{background:var(--good)}
.pill.crit{background:var(--critical-soft); color:var(--critical-ink)} .pill.crit .d{background:var(--critical)}
.pill.warn{background:var(--warn-soft); color:var(--warn-ink)} .pill.warn .d{background:var(--warn)}
.empty{color:var(--ink-faint); font-size:.86rem; padding:1rem; text-align:center; border:1px dashed var(--line-strong); border-radius:3px}
.note{font-size:.8rem; color:var(--ink-faint); margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--line)}

/* formulários e acções administrativas */
fieldset{border:1px solid var(--line); border-radius:3px; padding:1rem 1.1rem; margin:0 0 1.4rem; background:var(--surface)}
legend{font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-muted); padding:0 .4rem}
.frow{display:flex; gap:.6rem; flex-wrap:wrap; align-items:flex-end; margin-bottom:.6rem}
.frow label{display:flex; flex-direction:column; gap:.25rem; font-size:.76rem; color:var(--ink-muted)}
.frow input, .frow select, .frow textarea{
  font:inherit; font-size:.86rem; padding:.4rem .55rem; border:1px solid var(--line-strong);
  border-radius:3px; background:var(--surface); color:var(--ink); min-width:160px;
}
.frow textarea{min-width:280px; min-height:2.4em}
button, .btn{
  font:inherit; font-size:.8rem; font-weight:600; padding:.38rem 1rem; border-radius:3px;
  border:1px solid var(--accent); background:var(--accent); color:#fff; cursor:pointer;
}
button.danger{background:var(--critical); border-color:var(--critical)}
button.ghost{background:transparent; color:var(--ink-muted); border-color:var(--line-strong)}
.actions{display:flex; gap:.5rem}
form.inline{display:inline}
.hint{font-size:.72rem; color:var(--ink-faint); margin-top:.2rem}
