/* ------------------------------------------------------------------
   farol.contratacaopublica.ai
   Sistema de design do ecossistema Contratação Pública, variante Farol
   Operador: AudiQCER  ·  v1.0  ·  2026-10-02
   ------------------------------------------------------------------ */

:root{
  --paper:#ffffff;
  --paper-2:#f6f7f9;
  --ink:#1a1d23;
  --muted:#5b6472;
  --line:#e2e5ea;
  --navy:#1a2e4a;
  --bar:#1a2e4a;
  --bar-fg:#ffffff;
  --gold:#c9a227;
  --acc:#5a4fcf;
  --acc-soft:#eeedfb;
  --beam:#e6a23c;
  --beam-soft:#fdf4e4;
  --crit:#b3261e;
  --crit-soft:#fdecea;
  --ok:#2e7d32;
  --ok-soft:#e8f5e9;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --wrap:1080px;
  --rail:196px;
  --radius:3px;
  --shadow:0 1px 2px rgba(26,46,74,.06),0 8px 24px rgba(26,46,74,.06);
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#10141a;
    --paper-2:#161c24;
    --ink:#e6e9ee;
    --muted:#9aa4b2;
    --line:#242b35;
    --navy:#c9d4e4;
  --bar:#0b1016;
  --bar-fg:#ffffff;
    --bar:#0b1016;
    --bar-fg:#ffffff;
    --gold:#d9b84a;
    --acc:#9a93ef;
    --acc-soft:#1c1b3a;
    --beam:#efb662;
    --beam-soft:#2a2114;
    --crit:#f07a72;
    --crit-soft:#2c1715;
    --ok:#7fc383;
    --ok-soft:#14231a;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"]{
  --paper:#10141a;
  --paper-2:#161c24;
  --ink:#e6e9ee;
  --muted:#9aa4b2;
  --line:#242b35;
  --navy:#c9d4e4;
  --gold:#d9b84a;
  --acc:#9a93ef;
  --acc-soft:#1c1b3a;
  --beam:#efb662;
  --beam-soft:#2a2114;
  --crit:#f07a72;
  --crit-soft:#2c1715;
  --ok:#7fc383;
  --ok-soft:#14231a;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.62;
  font-synthesis-weight:none;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto}
a{color:var(--acc);text-underline-offset:2px}
a:hover{color:var(--navy)}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:2px}

.skip{position:absolute;left:-9999px;top:0;background:var(--acc);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:.5rem;top:.5rem}

/* ---------- barra superior ---------- */
.topbar{background:var(--bar);color:var(--bar-fg);font-size:13.5px;letter-spacing:.01em}
.topbar .in{max-width:var(--wrap);margin:0 auto;padding:.42rem 1rem;display:flex;gap:1.1rem;flex-wrap:wrap;align-items:center}
@media (max-width:620px){.topbar .inst{display:none}}
.topbar a{color:var(--bar-fg);text-decoration:none;opacity:.92}
.topbar a:hover{opacity:1;text-decoration:underline}
.topbar .cities{opacity:.78;letter-spacing:.06em;text-transform:uppercase;font-size:12px}
.topbar .sp{margin-left:auto;display:flex;gap:1.1rem;flex-wrap:wrap}

/* ---------- cabeçalho ---------- */
header.site{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--paper) 94%,transparent);
  backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line)}
header.site .in{max-width:var(--wrap);margin:0 auto;padding:.62rem 1rem;display:flex;align-items:center;gap:1rem}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:inherit;flex:0 0 auto}
.brand .mark{width:34px;height:34px;flex:0 0 auto}
.brand b{font-family:var(--serif);font-weight:700;font-size:20px;letter-spacing:.005em;line-height:1.1;color:var(--navy)}
.brand small{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
nav.main{margin-left:auto;display:flex;gap:.05rem;flex-wrap:wrap;justify-content:flex-end}
nav.main a{font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none;padding:.4rem .42rem;border-radius:var(--radius);white-space:nowrap}
nav.main a:hover{background:var(--acc-soft);color:var(--acc)}
nav.main a[aria-current="page"]{color:var(--acc);box-shadow:inset 0 -2px 0 var(--acc)}
.tog{background:none;border:1px solid var(--line);color:var(--muted);border-radius:var(--radius);
  width:34px;height:34px;cursor:pointer;font-size:15px;line-height:1;display:grid;place-items:center}
.tog:hover{border-color:var(--acc);color:var(--acc)}
.burger{display:none}
@media (max-width:980px){
  nav.main{display:none}
  .burger{display:grid}
  nav.main.open{display:flex;position:absolute;left:0;right:0;top:100%;background:var(--paper);
    border-bottom:1px solid var(--line);flex-direction:column;padding:.5rem 1rem 1rem;gap:0}
  nav.main.open a{padding:.6rem .2rem;border-bottom:1px solid var(--line)}
}

/* ---------- painel lateral ---------- */
.rail{position:fixed;left:max(.75rem,calc(50vw - var(--wrap)/2 - var(--rail) - 1.5rem));top:140px;width:var(--rail);
  border-left:2px solid var(--acc);padding:.1rem 0 .1rem .8rem;z-index:40}
.rail p{margin:0 0 .45rem;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.rail a{display:block;font-size:13.5px;color:var(--ink);text-decoration:none;padding:.22rem 0;border-bottom:1px dotted var(--line)}
.rail a:last-child{border-bottom:0}
.rail a:hover{color:var(--acc)}
.rail a[aria-current="page"]{color:var(--acc);font-weight:700}
@media (max-width:1520px){.rail{display:none}}

/* ---------- estrutura ---------- */
main{display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1rem}
section{padding:2.1rem 0;border-bottom:1px solid var(--line)}
section:last-of-type{border-bottom:0}
h1,h2,h3{font-family:var(--serif);color:var(--navy);font-weight:700;line-height:1.16;margin:0 0 .5rem}
h1{font-size:clamp(2rem,1.3rem + 2.6vw,3rem);letter-spacing:-.01em}
h2{font-size:clamp(1.45rem,1.1rem + 1.2vw,1.95rem);margin-top:.2rem}
h3{font-size:1.14rem;font-family:var(--sans);font-weight:700;letter-spacing:.005em;color:var(--ink)}
p{margin:0 0 .85rem}
.lead{font-size:1.1rem;color:var(--muted);max-width:66ch}
.eyebrow{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc);font-weight:700;margin:0 0 .5rem}
.prose{max-width:72ch}
ul,ol{margin:0 0 .9rem;padding-left:1.15rem}
li{margin:.22rem 0}
hr{border:0;border-top:1px solid var(--line);margin:1.4rem 0}
small{font-size:13px}

/* ---------- zona de abertura ---------- */
.hero{display:grid;grid-template-columns:1.25fr .9fr;gap:2rem;align-items:start;padding:2.6rem 0 2.2rem}
@media (max-width:860px){.hero{grid-template-columns:1fr;gap:1.4rem}}
.hero-panel{background:var(--paper-2);border:1px solid var(--line);border-top:3px solid var(--acc);
  border-radius:var(--radius);padding:1.1rem 1.15rem;box-shadow:var(--shadow)}
.hero-panel h2{font-family:var(--sans);font-size:1rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 .6rem}
.hero-panel ul{list-style:none;padding:0;margin:0}
.hero-panel li{padding:.42rem 0;border-bottom:1px dotted var(--line);font-size:15px}
.hero-panel li:last-child{border-bottom:0}
.pagehead{padding:2.1rem 0 1.4rem;border-bottom:1px solid var(--line)}

/* ---------- faixa de indicadores ---------- */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
@media (max-width:760px){.strip{grid-template-columns:repeat(2,1fr)}}
.strip div{background:var(--paper);padding:.95rem 1rem}
.strip b{display:block;font-family:var(--serif);font-size:1.75rem;color:var(--acc);line-height:1.1}
.strip span{display:block;font-size:13.5px;color:var(--ink);margin-top:.15rem}
.strip em{display:block;font-style:normal;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:.3rem}

/* ---------- cartões ---------- */
.g2,.g3,.g4{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.05rem}
.card h3{margin:0 0 .35rem}
.card p{margin:0 0 .5rem;font-size:15.5px;color:var(--muted)}
.card p:last-child{margin-bottom:0}
.card .more{font-size:14px;font-weight:700;text-decoration:none}
.card .more::after{content:" \2192"}

/* ---------- tabelas técnicas ---------- */
.tw{width:100%;overflow-x:auto;margin:0 0 1rem;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:15px}
caption{text-align:left;font-size:13.5px;color:var(--muted);padding:0 0 .4rem}
th,td{border:1px solid var(--line);padding:.5rem .6rem;vertical-align:top;text-align:left}
thead th{background:var(--bar);color:var(--bar-fg);font-size:13.5px;letter-spacing:.02em}
tbody tr:nth-child(even) td{background:var(--paper-2)}

/* ---------- notas ---------- */
.note{border:1px solid var(--line);border-left:4px solid var(--acc);background:var(--acc-soft);
  border-radius:var(--radius);padding:.85rem 1rem;margin:0 0 1rem}
.note p:last-child{margin-bottom:0}
.note b{display:block;margin-bottom:.25rem;color:var(--acc)}
.note.gold{border-left-color:var(--beam);background:var(--beam-soft)}
.note.gold b{color:#8a6412}
.note.crit{border-left-color:var(--crit);background:var(--crit-soft)}
.note.crit b{color:var(--crit)}
.note.ok{border-left-color:var(--ok);background:var(--ok-soft)}
.note.ok b{color:var(--ok)}

/* ---------- não verificado ---------- */
.nv{font-style:italic;background:var(--beam-soft);border-bottom:1px dashed var(--beam);padding:0 .12em}
.nv::before{content:"[ "}
.nv::after{content:" ]"}

/* ---------- listas numeradas e cronologia ---------- */
.num-list{list-style:none;counter-reset:n;padding:0;margin:0 0 1rem}
.num-list li{counter-increment:n;position:relative;padding:.3rem 0 .3rem 2.3rem;border-bottom:1px dotted var(--line)}
.num-list li:last-child{border-bottom:0}
.num-list li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;top:.35rem;
  font-family:var(--mono);font-size:12.5px;color:var(--acc);font-weight:700}
.tl{list-style:none;padding:0;margin:0 0 1rem;border-left:2px solid var(--line)}
.tl li{position:relative;padding:.1rem 0 .9rem 1.1rem}
.tl li::before{content:"";position:absolute;left:-5px;top:.55rem;width:8px;height:8px;border-radius:50%;background:var(--acc)}
.tl b{display:block;font-family:var(--mono);font-size:12.5px;color:var(--acc);letter-spacing:.04em}

/* ---------- ficha de dados ---------- */
.ficha{display:grid;grid-template-columns:minmax(150px,230px) 1fr;border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;margin:0 0 1rem;font-size:15px}
.ficha dt{background:var(--paper-2);border-bottom:1px solid var(--line);padding:.5rem .7rem;font-weight:700;color:var(--navy)}
.ficha dd{margin:0;border-bottom:1px solid var(--line);padding:.5rem .7rem}
.ficha dt:nth-last-of-type(1),.ficha dd:nth-last-of-type(1){border-bottom:0}
@media (max-width:560px){.ficha{grid-template-columns:1fr}.ficha dt{border-bottom:0}}

/* ---------- perguntas frequentes ---------- */
details.q{border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .8rem;margin:0 0 .5rem;background:var(--paper)}
details.q[open]{background:var(--paper-2)}
details.q summary{cursor:pointer;font-weight:700;color:var(--navy);list-style:none}
details.q summary::-webkit-details-marker{display:none}
details.q summary::before{content:"+";color:var(--acc);font-family:var(--mono);margin-right:.5rem}
details.q[open] summary::before{content:"\2212"}
details.q p{margin:.55rem 0 0;color:var(--muted)}

/* ---------- apelos à ação ---------- */
.btn{display:inline-block;background:var(--acc);color:#fff;border:1px solid var(--acc);
  padding:.58rem 1.05rem;border-radius:var(--radius);font-weight:700;font-size:15px;
  text-decoration:none;cursor:pointer;font-family:var(--sans)}
.btn:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.ghost{background:transparent;color:var(--acc)}
.btn.ghost:hover{background:var(--acc-soft);color:var(--acc)}
.btns{display:flex;gap:.6rem;flex-wrap:wrap;margin:.6rem 0 0}
.cta{background:var(--paper-2);border:1px solid var(--line);border-top:3px solid var(--acc);
  border-radius:var(--radius);padding:1.3rem 1.4rem;margin:1.2rem 0 0}
.cta h2{margin-top:0}

/* ---------- configurador setorial ---------- */
.conf{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem}
.conf .row{display:grid;grid-template-columns:1fr 1fr auto;gap:.7rem;align-items:end}
@media (max-width:720px){.conf .row{grid-template-columns:1fr}}
.conf label{display:block;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 .25rem}
.conf select{width:100%;padding:.5rem .6rem;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--paper);color:var(--ink);font:inherit;font-size:15px}
.conf-out{margin:1rem 0 0;border-top:1px solid var(--line);padding-top:.9rem}
.conf-out .strip{grid-template-columns:repeat(3,1fr)}
@media (max-width:620px){.conf-out .strip{grid-template-columns:1fr}}
.prov{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin:.5rem 0 0}

/* ---------- caixa do formulário ---------- */
.formbox{border:1px solid var(--line);border-top:3px solid var(--acc);border-radius:var(--radius);
  background:var(--paper-2);padding:1.1rem 1.2rem}
.formbox h3{margin-top:0}
.formbox .consent{font-size:13.5px;color:var(--muted);margin:.7rem 0 0}
.formbox iframe{width:100%;min-height:900px;border:0;background:var(--paper);margin-top:.9rem;border-radius:var(--radius)}
.formbox .ph{border:1px dashed var(--line);border-radius:var(--radius);padding:1.4rem;text-align:center;color:var(--muted);margin-top:.9rem}

/* ---------- exemplo de ficha de oportunidade ---------- */
.op{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:15px;background:var(--paper)}
.op .ohead{background:var(--bar);color:var(--bar-fg);padding:.7rem .9rem}
.op .ohead b{font-family:var(--serif);font-size:1.15rem;display:block}
.op .ohead span{font-family:var(--mono);font-size:11.5px;opacity:.85}
.op dl{display:grid;grid-template-columns:minmax(140px,210px) 1fr;margin:0}
.op dt{background:var(--paper-2);border-bottom:1px solid var(--line);padding:.45rem .7rem;font-weight:700;font-size:14px;color:var(--navy)}
.op dd{margin:0;border-bottom:1px solid var(--line);padding:.45rem .7rem}
.op .foot{padding:.6rem .9rem;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
@media (max-width:560px){.op dl{grid-template-columns:1fr}.op dt{border-bottom:0}}

/* ---------- rodapé ---------- */
footer.site{background:var(--paper-2);border-top:1px solid var(--line);margin-top:1rem}
.fgrid{max-width:var(--wrap);margin:0 auto;padding:2rem 1rem 1.2rem;display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;gap:1.6rem}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}}
.fgrid h2{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .6rem;font-weight:700}
.fgrid ul{list-style:none;padding:0;margin:0}
.fgrid li{margin:.22rem 0;font-size:14.5px}
.fgrid a{color:var(--ink);text-decoration:none}
.fgrid a:hover{color:var(--acc);text-decoration:underline}
.fgrid address{font-style:normal;font-size:14.5px;color:var(--muted);line-height:1.7}
.fbot{border-top:1px solid var(--line)}
.fbot .in{max-width:var(--wrap);margin:0 auto;padding:.85rem 1rem;display:flex;gap:1rem;flex-wrap:wrap;
  font-size:13.5px;color:var(--muted)}
.fbot a{color:var(--muted)}
.fbot .lk{margin-left:auto;display:flex;gap:1rem;flex-wrap:wrap}

/* ---------- impressão ---------- */
@media print{
  .topbar,header.site,.rail,.btns,.cta,.formbox,.conf,footer.site .fgrid{display:none!important}
  body{font-size:11pt;color:#000;background:#fff}
  a{color:#000;text-decoration:none}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#444}
  section{border-bottom:0;padding:.6rem 0}
  h1,h2,h3{color:#000}
  thead th{background:#ddd;color:#000}
}
