/* Estilo partilhado pelo Manual do Utilizador (/manual) e pelo Manual de Instalação (/admin/manual-instalacao). */
  :root{
    --paper:#f6f4ee;
    --paper-raised:#ffffff;
    --ink:#1f2a37;
    --ink-soft:#54606f;
    --ink-faint:#8992a0;
    --navy:#16233a;
    --navy-2:#223855;
    --accent:#3667a6;
    --accent-strong:#254a7d;
    --accent-soft:#dfe9f5;
    --teal:#2f7a5c;
    --teal-soft:#dcefe6;
    --amber:#a8661f;
    --amber-soft:#f4e6d3;
    --line:#e1dccf;
    --line-strong:#c9c2b0;
    --code-bg:#eef1ea;
    --shadow: 0 1px 2px rgba(22,35,58,.06), 0 8px 24px rgba(22,35,58,.05);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#111a28;
      --paper-raised:#16233a;
      --ink:#e9e6dc;
      --ink-soft:#b7bfcc;
      --ink-faint:#7c8798;
      --navy:#0c1420;
      --navy-2:#182742;
      --accent:#8fb4e0;
      --accent-strong:#bcd4f0;
      --accent-soft:#1e2f4a;
      --teal:#6fc7a4;
      --teal-soft:#173328;
      --amber:#e0a35d;
      --amber-soft:#3a2c18;
      --line:#28344a;
      --line-strong:#37455e;
      --code-bg:#0f1826;
      --shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35);
    }
  }
  :root[data-theme="dark"]{
    --paper:#111a28;
    --paper-raised:#16233a;
    --ink:#e9e6dc;
    --ink-soft:#b7bfcc;
    --ink-faint:#7c8798;
    --navy:#0c1420;
    --navy-2:#182742;
    --accent:#8fb4e0;
    --accent-strong:#bcd4f0;
    --accent-soft:#1e2f4a;
    --teal:#6fc7a4;
    --teal-soft:#173328;
    --amber:#e0a35d;
    --amber-soft:#3a2c18;
    --line:#28344a;
    --line-strong:#37455e;
    --code-bg:#0f1826;
    --shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35);
  }

  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Work Sans", "Segoe UI", system-ui, sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:"Source Serif 4", Georgia, serif;
    color:var(--ink);
    text-wrap:balance;
    line-height:1.2;
    margin:0 0 .5rem 0;
  }
  code, .mono{ font-family:"IBM Plex Mono", ui-monospace, monospace; }
  a{ color:var(--accent-strong); }
  a:focus-visible, button:focus-visible, summary:focus-visible{
    outline:2px solid var(--accent-strong);
    outline-offset:2px;
  }

  /* ---------- Masthead ---------- */
  .masthead{
    background:linear-gradient(180deg, var(--navy), var(--navy-2));
    color:#eef2f8;
    padding:2.6rem 1.5rem 2.2rem;
  }
  .masthead-inner{
    max-width:1180px;
    margin:0 auto;
    display:flex;
    flex-wrap:wrap;
    gap:1.5rem;
    align-items:flex-end;
    justify-content:space-between;
  }
  .masthead-eyebrow{
    font-family:"IBM Plex Mono", monospace;
    font-size:.72rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:#9fb6d6;
    margin-bottom:.6rem;
  }
  .masthead h1{
    color:#fbfaf6;
    font-size:clamp(1.7rem, 3vw, 2.4rem);
    margin:0;
  }
  .masthead p{
    color:#c9d5e6;
    max-width:46ch;
    margin:.55rem 0 0;
    font-size:.98rem;
  }
  .masthead-meta{
    font-family:"IBM Plex Mono", monospace;
    font-size:.78rem;
    color:#9fb6d6;
    text-align:right;
    white-space:nowrap;
  }

  /* ---------- Shell layout ---------- */
  .shell{
    max-width:1180px;
    margin:0 auto;
    display:grid;
    grid-template-columns:250px minmax(0,1fr);
    gap:2.6rem;
    padding:2.2rem 1.5rem 5rem;
    align-items:start;
  }
  nav.toc{
    position:sticky;
    top:1.4rem;
    max-height:calc(100vh - 2.8rem);
    overflow-y:auto;
    padding-right:.4rem;
    font-size:.86rem;
  }
  nav.toc .toc-title{
    font-family:"IBM Plex Mono", monospace;
    font-size:.72rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-bottom:.7rem;
  }
  nav.toc ul{ list-style:none; margin:0 0 1.1rem; padding:0; }
  nav.toc > ul > li{ margin-bottom:.15rem; }
  nav.toc .grupo-label{
    display:block;
    font-weight:600;
    color:var(--ink);
    padding:.3rem .5rem;
    border-radius:6px;
    text-decoration:none;
  }
  nav.toc .grupo-label:hover{ background:var(--accent-soft); }
  nav.toc ul ul{ margin:.1rem 0 .5rem .5rem; border-left:1px solid var(--line); padding-left:.7rem; }
  nav.toc ul ul li a{
    display:block;
    padding:.2rem .4rem;
    color:var(--ink-soft);
    text-decoration:none;
    border-radius:5px;
  }
  nav.toc ul ul li a:hover{ background:var(--accent-soft); color:var(--accent-strong); }

  main{ min-width:0; }
  .lede{
    font-size:1.05rem;
    color:var(--ink-soft);
    max-width:66ch;
    margin-bottom:2.2rem;
  }

  section.modulo{
    padding:1.9rem 0;
    border-top:1px solid var(--line);
    scroll-margin-top:1.2rem;
  }
  section.modulo:first-of-type{ border-top:none; padding-top:0; }

  .modulo-head{
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:.6rem 1rem;
    border-left:4px solid var(--accent);
    padding-left:.9rem;
    margin-bottom:1rem;
  }
  .modulo-head h2{ font-size:1.5rem; margin:0; }
  .pill{
    font-family:"IBM Plex Mono", monospace;
    font-size:.72rem;
    letter-spacing:.02em;
    padding:.2rem .55rem;
    border-radius:999px;
    white-space:nowrap;
  }
  .pill-perm{ background:var(--accent-soft); color:var(--accent-strong); border:1px solid var(--line-strong); }
  .pill-livre{ background:var(--teal-soft); color:var(--teal); border:1px solid var(--line-strong); }

  .modulo-body > *{ max-width:70ch; }
  .modulo-body p{ margin:.6rem 0; }
  .modulo-body ul, .modulo-body ol{ padding-left:1.3rem; margin:.6rem 0; }
  .modulo-body li{ margin:.3rem 0; }
  .modulo-body h3{ font-size:1.1rem; margin-top:1.3rem; }
  .modulo-body h4{ font-size:.98rem; color:var(--ink-soft); font-family:"Work Sans",sans-serif; font-weight:600; margin-top:1rem; }

  .callout{
    max-width:70ch;
    margin:1rem 0;
    padding:.85rem 1.1rem;
    border-radius:8px;
    border-left:3px solid var(--accent);
    background:var(--accent-soft);
    font-size:.94rem;
  }
  .callout.atencao{ border-left-color:var(--amber); background:var(--amber-soft); }
  .callout.dica{ border-left-color:var(--teal); background:var(--teal-soft); }
  .callout strong.rotulo{
    display:block;
    font-family:"IBM Plex Mono", monospace;
    font-size:.7rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    margin-bottom:.3rem;
    color:var(--ink-soft);
  }

  .grade-perfis{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(230px,1fr));
    gap:1rem;
    margin:1.4rem 0 2.4rem;
    max-width:100%;
  }
  .cartao-perfil{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:10px;
    padding:1.1rem 1.2rem 1.3rem;
    box-shadow:var(--shadow);
  }
  .cartao-perfil .etiqueta{
    display:inline-block;
    font-family:"IBM Plex Mono", monospace;
    font-size:.68rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--teal);
    margin-bottom:.4rem;
  }
  .cartao-perfil h3{ font-size:1.05rem; margin:0 0 .5rem; font-family:"Work Sans",sans-serif; font-weight:700; }
  .cartao-perfil ol{ padding-left:1.1rem; margin:0; font-size:.9rem; color:var(--ink-soft); }
  .cartao-perfil li{ margin:.3rem 0; }
  .cartao-perfil a{ text-decoration:none; }

  table.ref{
    width:100%;
    max-width:100%;
    border-collapse:collapse;
    font-size:.88rem;
    margin:1rem 0 1.6rem;
  }
  table.ref caption{
    text-align:left;
    font-family:"IBM Plex Mono", monospace;
    font-size:.72rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-bottom:.5rem;
  }
  table.ref th, table.ref td{
    text-align:left;
    padding:.55rem .7rem;
    border-bottom:1px solid var(--line);
    vertical-align:top;
  }
  table.ref thead th{
    font-family:"Work Sans",sans-serif;
    font-weight:600;
    color:var(--ink-soft);
    border-bottom:2px solid var(--line-strong);
  }
  table.ref td.codigo, table.ref th.codigo{ font-family:"IBM Plex Mono", monospace; font-size:.82rem; white-space:nowrap; }
  .tabela-wrap{ overflow-x:auto; max-width:70ch; }

  details.faq{
    max-width:70ch;
    border-bottom:1px solid var(--line);
    padding:.75rem 0;
  }
  details.faq summary{
    cursor:pointer;
    font-weight:600;
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
  }
  details.faq summary::-webkit-details-marker{ display:none; }
  details.faq summary::after{
    content:"+";
    font-family:"IBM Plex Mono", monospace;
    color:var(--accent);
    font-size:1.1rem;
    flex:none;
  }
  details.faq[open] summary::after{ content:"–"; }
  details.faq p{ margin:.6rem 0 0; color:var(--ink-soft); }

  kbd{
    font-family:"IBM Plex Mono", monospace;
    font-size:.82rem;
    background:var(--code-bg);
    border:1px solid var(--line-strong);
    border-radius:5px;
    padding:.08rem .4rem;
  }

  footer.rodape{
    max-width:70ch;
    margin-top:2.5rem;
    padding-top:1.3rem;
    border-top:1px solid var(--line);
    font-size:.82rem;
    color:var(--ink-faint);
  }

  @media (max-width: 880px){
    .shell{ grid-template-columns:1fr; }
    nav.toc{ position:static; max-height:none; }
    nav.toc details{ border:1px solid var(--line); border-radius:8px; padding:.6rem .8rem; background:var(--paper-raised); }
    nav.toc summary{ font-family:"IBM Plex Mono",monospace; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
  }

  @media print{
    .masthead{ background:none !important; color:#000 !important; padding:0 0 1rem; }
    .masthead h1, .masthead p, .masthead-eyebrow, .masthead-meta{ color:#000 !important; }
    nav.toc{ display:none; }
    .shell{ display:block; padding:0; }
    section.modulo{ break-inside:avoid; }
    .callout{ background:#fff !important; border:1px solid #999; }
  }

/* ==========================================================================
   Conteúdo vindo de Markdown (Manual de Instalação, Administração → Manual de Instalação): mesmo aspecto do Manual do Utilizador.
   ========================================================================== */
.modulo-body > .tabela-wrap,
.modulo-body > pre,
.modulo-body > details { max-width: 100%; }
.modulo-body pre {
  position: relative;
  margin: .8rem 0;
  padding: .8rem 4.5rem .8rem 1rem;
  overflow-x: auto;
  background: var(--code-bg);
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: .82rem;
  line-height: 1.5;
}
.modulo-body pre code { background: none; padding: 0; font-size: inherit; white-space: pre; }
.modulo-body :not(pre) > code { background: var(--code-bg); padding: .08rem .35rem; border-radius: 4px; font-size: .86em; }
.modulo-body blockquote {
  margin: .9rem 0; padding: .6rem 1rem;
  border-left: 4px solid var(--amber); background: var(--amber-soft); border-radius: 0 8px 8px 0;
  max-width: 70ch;
}
.modulo-body blockquote > p { margin: .3rem 0; }
.modulo-body table { border-collapse: collapse; width: 100%; font-size: .88rem; }
.modulo-body table th, .modulo-body table td { border: 1px solid var(--line); padding: .35rem .6rem; vertical-align: top; text-align: left; }
.modulo-body table th { background: var(--accent-soft); }
.modulo-body hr { border: 0; border-top: 1px solid var(--line); margin: 1.2rem 0; }
.modulo-body input[type="checkbox"] { margin-right: .4rem; }
.btn-copiar-manual {
  position: absolute; top: .4rem; right: .4rem;
  font: 600 .72rem/1 "Work Sans", sans-serif; padding: .3rem .55rem;
  border: 1px solid var(--line-strong); border-radius: 6px; background: var(--paper-raised); color: var(--ink-soft); cursor: pointer;
}
.btn-copiar-manual:hover { background: var(--accent-soft); color: var(--accent-strong); }
.acoes-manual { display: flex; gap: .6rem; flex-wrap: wrap; margin: 0 0 1rem; }
.acoes-manual a, .acoes-manual button {
  font: 600 .8rem/1 "Work Sans", sans-serif; padding: .45rem .8rem; border-radius: 6px;
  border: 1px solid var(--line-strong); background: var(--paper-raised); color: var(--accent-strong); text-decoration: none; cursor: pointer;
}
@media print {
  .btn-copiar-manual, .acoes-manual { display: none !important; }
  .modulo-body pre { white-space: pre-wrap; padding-right: 1rem; }
  .modulo-body > * { max-width: none; }
}
