:root{--font:"Segoe UI",Roboto,"Helvetica Neue",system-ui,-apple-system,Arial,sans-serif;
--bg:#f5f6f8;--sf:#fff;--sf2:#eef0f4;--ink:#0f1729;--mut:#4a5568;--line:#e2e6ec;--line2:#7d8799;--acc:#2147d9;--acc-t:#fff;--acc-ink:#1d3fbf;--sel:#e9eefc;--star:#c27c0e;
--federal:#2f6fe0;--estadual:#d9822b;--municipal:#0f9d86;--outros:#8a94a6;
--federal-bg:#e6eefc;--federal-tx:#1d4ab8;--estadual-bg:#fbeedf;--estadual-tx:#8a4b10;--municipal-bg:#dff4ef;--municipal-tx:#0b6b5b;--outros-bg:#eef0f4;--outros-tx:#4a5568;
--warn-bg:#fff1dc;--warn-tx:#8a4b10;--overlay:rgba(15,23,41,.35);--shadow:0 12px 32px rgba(15,23,41,.14);color-scheme:light}
:root[data-tema=escuro]{--bg:#0d1320;--sf:#151d2e;--sf2:#1c2639;--ink:#e8ecf3;--mut:#9aa6ba;--line:#263248;--line2:#5d6b84;--acc:#7b9bff;--acc-t:#0d1320;--acc-ink:#9db4ff;--sel:#1d2a47;--star:#f2b33d;
--federal:#4b7be8;--estadual:#c9752a;--municipal:#149c85;--outros:#5d6b84;
--federal-bg:#1b2b52;--federal-tx:#a9c1ff;--estadual-bg:#3a2814;--estadual-tx:#f0b77a;--municipal-bg:#0f3530;--municipal-tx:#6fd8c3;--outros-bg:#1c2639;--outros-tx:#9aa6ba;
--warn-bg:#3a2814;--warn-tx:#f0b77a;--overlay:rgba(0,0,0,.55);--shadow:0 12px 32px rgba(0,0,0,.45);color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/22px var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
a{color:var(--acc-ink)}a:hover{color:var(--ink)}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
input::placeholder{color:var(--mut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
svg.i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}

.topo{position:sticky;top:0;z-index:10;background:var(--sf);border-bottom:1px solid var(--line)}
.topo>div{max-width:1280px;margin:0 auto;padding:10px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.marca{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.marca b{font-size:17px;line-height:20px;letter-spacing:-.02em;display:block}
.marca small{font-size:11px;line-height:14px;color:var(--mut);display:block}
.acoes{display:flex;align-items:center;gap:6px}
.btn{min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--sf);font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn.ico{width:40px;padding:0}
.btn[aria-pressed=true]{background:var(--sel);border-color:var(--acc)}
.btn.prim{background:var(--acc);color:var(--acc-t);border-color:var(--acc);text-decoration:none}
.btn.sec{border-color:var(--line2)}
.btn:disabled{opacity:.45;cursor:default}
.badge-n{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--acc);color:var(--acc-t);font-size:12px;line-height:20px;font-weight:700}
.spin svg{animation:gira 1s linear infinite}@keyframes gira{to{transform:rotate(360deg)}}

main{max-width:1280px;margin:0 auto;padding:28px 24px 64px;display:flex;flex-direction:column;gap:20px}
h1{margin:0;font-size:26px;line-height:32px;font-weight:650;letter-spacing:-.02em}
.sub{margin:4px 0 0;font-size:14px;line-height:20px;color:var(--mut);max-width:820px}

.segs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.seg{min-height:104px;padding:14px 16px;border-radius:14px;text-align:left;display:flex;flex-direction:column;gap:2px;background:var(--sf);border:1px solid var(--line);margin:1px;transition:transform .2s,border-color .2s,background-color .2s}
.seg:hover{transform:translateY(-2px)}
.seg[aria-pressed=true]{background:var(--sel);border:2px solid var(--acc);margin:0}
.seg .t{display:flex;align-items:center;gap:8px;font-size:13px;line-height:18px;font-weight:600}
.seg .n{font-size:26px;line-height:32px;font-weight:650;letter-spacing:-.02em}
.seg .s{font-size:12px;line-height:16px;color:var(--mut)}
.dot{width:10px;height:10px;border-radius:999px;flex:none;background:var(--c)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.card{background:var(--sf);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.card h2{margin:0;font-size:13px;line-height:18px;font-weight:600;color:var(--mut)}
.big{font-size:28px;line-height:34px;font-weight:650;letter-spacing:-.02em}
.mut{color:var(--mut)}.p12{font-size:12px;line-height:16px}
.dois{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.dois b{display:block;font-size:20px;line-height:26px;font-weight:650}
.elip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.readout{font-size:12px;line-height:16px;font-weight:500;min-height:16px}
.barras{display:flex;flex-direction:column;gap:2px}
.barra{display:grid;grid-template-columns:150px minmax(0,1fr) 80px;align-items:center;gap:8px;min-height:32px;padding:0 4px;border:0;border-radius:8px;background:transparent;font-size:13px;line-height:18px;text-align:left}
.barra:hover{background:var(--sf2)}
.barra .tr{height:12px;background:var(--sf2);border-radius:0 4px 4px 0;overflow:hidden}
.barra .tr i{display:block;height:100%;border-radius:0 4px 4px 0;background:var(--c);transition:width .45s cubic-bezier(.2,.7,.2,1),opacity .2s}
.barra .v{text-align:right;font-weight:600}
.barra.dim .tr i{opacity:.3}

.filtros{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.campo{display:flex;flex-direction:column;gap:6px;flex:1 1 140px}
.campo.busca{flex:999 1 300px}
.campo label{font-size:13px;line-height:18px;font-weight:600}
.campo input,.campo select{height:44px;width:100%;padding:0 12px;border:1px solid var(--line2);border-radius:12px;background:var(--sf)}
.busca .w{position:relative}.busca svg{position:absolute;left:14px;top:13px;color:var(--mut)}
.busca input{padding-left:42px}
.linha2{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{flex:none;min-height:36px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:600;background:var(--sf);border:1px solid var(--line)}
.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.link{border:0;background:none;color:var(--acc-ink);font-size:13px;font-weight:600;text-decoration:underline;min-height:36px;padding:0 6px}

.res-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px}
.res-h h2{margin:0;font-size:17px;line-height:24px;font-weight:650}
.lista{background:var(--sf);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.item{display:flex;align-items:flex-start;border-top:1px solid var(--line);transition:background-color .15s}
.item:first-child{border-top:0}
.item:hover{background:var(--sf2)}
.item.ativo{background:var(--sel);box-shadow:inset 3px 0 0 var(--acc)}
.estrela{flex:none;width:44px;height:44px;margin:10px 0 0 8px;border:0;border-radius:999px;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--mut)}
.estrela svg{width:20px;height:20px}
.estrela[aria-pressed=true]{color:var(--star)}.estrela[aria-pressed=true] svg{fill:var(--star)}
.abrir{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 24px;padding:14px 16px 14px 4px;border:0;background:transparent;text-align:left}
.abrir .esq{flex:999 1 380px;min-width:0;display:flex;flex-direction:column;gap:6px}
.abrir .dir{flex:1 1 150px;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tag{display:inline-flex;align-items:center;gap:6px;padding:1px 9px;border-radius:999px;font-size:12px;line-height:18px;font-weight:600}
.tag.esc{background:var(--bg-e);color:var(--tx-e);padding-left:7px}
.tag.esc i{width:8px;height:8px;border-radius:999px;background:var(--c)}
.tag.mod{border:1px solid var(--line);color:var(--mut)}
.tag.urg{background:var(--warn-bg);color:var(--warn-tx)}
.obj{font-size:15px;line-height:22px;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.org{font-size:13px;line-height:18px;color:var(--mut)}
.valor{font-size:16px;line-height:22px;font-weight:650}
.valor.nd{font-size:13px;font-weight:400;color:var(--mut)}
.mais{align-self:center}
.vazio{padding:32px 24px;background:var(--sf);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.vazio.trava{border-style:dashed;align-items:flex-start;text-align:left}
.vazio p{margin:0}.vazio .t{font-size:16px;font-weight:650}
.esqueleto{height:96px;border-top:1px solid var(--line);background:linear-gradient(90deg,var(--sf) 0,var(--sf2) 50%,var(--sf) 100%);background-size:200% 100%;animation:brilho 1.2s infinite}
@keyframes brilho{to{background-position:-200% 0}}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;line-height:16px;color:var(--mut)}

.fundo{position:fixed;inset:0;z-index:29;border:0;padding:0;background:var(--overlay);opacity:0;pointer-events:none;transition:opacity .28s}
.fundo.on{opacity:1;pointer-events:auto}
.gaveta{position:fixed;top:0;right:0;bottom:0;z-index:30;width:min(460px,100%);overflow-y:auto;background:var(--sf);border-left:1px solid var(--line);box-shadow:var(--shadow);transform:translateX(104%);visibility:hidden;transition:transform .28s cubic-bezier(.2,.7,.2,1),visibility 0s .28s}
.gaveta.on{transform:none;visibility:visible;transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.g-topo{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 10px 20px;background:var(--sf);border-bottom:1px solid var(--line)}
.g-corpo{padding:20px;display:flex;flex-direction:column;gap:18px}
.g-corpo h3{margin:0;font-size:19px;line-height:27px;font-weight:650;letter-spacing:-.01em}
.caixas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.caixa{padding:14px;border-radius:12px;background:var(--sf2);display:flex;flex-direction:column;gap:2px}
.caixa.urg{background:var(--warn-bg);color:var(--warn-tx)}
.caixa span{font-size:12px;line-height:16px;font-weight:600}.caixa b{font-size:20px;line-height:26px;font-weight:650}
dl{margin:0;display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px 14px;font-size:14px;line-height:20px}
dt{color:var(--mut)}dd{margin:0;overflow-wrap:anywhere}
.botoes{display:flex;flex-wrap:wrap;gap:8px}.botoes>*{flex:1 1 130px;min-height:44px}
.irmaos{padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.irmao{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--sf);font-size:13px;line-height:18px;text-align:left}
.irmao span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.form{padding:16px;background:var(--sf2);border-radius:12px;display:flex;flex-direction:column;gap:12px}
.form input,.form select{height:44px;width:100%;padding:0 12px;border:1px solid var(--line2);border-radius:10px;background:var(--sf)}
.alerta{padding:12px 12px 12px 14px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:10px}
.alerta>button:first-child{flex:1 1 auto;min-width:0;padding:0;border:0;background:none;text-align:left;display:flex;flex-direction:column;gap:2px}
.aviso{font-size:13px;line-height:18px;color:var(--warn-tx)}
.toast{position:fixed;left:50%;bottom:24px;z-index:40;transform:translateX(-50%);padding:10px 16px;border-radius:12px;background:var(--ink);color:var(--bg);font-size:14px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s}
.toast.on{opacity:1}

@media (max-width:640px){
.topo>div{padding:10px 16px}.hide-sm{display:none!important}
main{padding:20px 16px 48px}
.segs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}
.segs .seg{flex:0 0 152px;scroll-snap-align:start}
.chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- situação (fase) ---------- */
:root{--ok-bg:#dff4e8;--ok-tx:#0d6b3d;--ok:#1a9d5c;--info-bg:#e6eefc;--info-tx:#1d4ab8;--info:#2f6fe0;--neu:#8a94a6}
:root[data-tema=escuro]{--ok-bg:#0f3524;--ok-tx:#7ddcaa;--ok:#2fb877;--info-bg:#1b2b52;--info-tx:#a9c1ff;--info:#4b7be8;--neu:#5d6b84}
.grupo-f{display:flex;flex-direction:column;gap:6px;min-width:0}
.grupo-f .rot{font-size:13px;line-height:18px;font-weight:600}
.chip .dot{display:inline-block;width:8px;height:8px;margin-right:6px;vertical-align:1px}
.chip.grupo{border-style:dashed}
.tag.fase{background:var(--outros-bg);color:var(--outros-tx)}
.tag.fase.abertas{background:var(--ok-bg);color:var(--ok-tx)}
.tag.fase.a_abrir{background:var(--info-bg);color:var(--info-tx)}
.tag.fase.julgamento{background:var(--warn-bg);color:var(--warn-tx)}
.situacao{padding:14px;border-radius:12px;background:var(--sf2);display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:20px}
.situacao.abertas{background:var(--ok-bg);color:var(--ok-tx)}
.situacao.a_abrir{background:var(--info-bg);color:var(--info-tx)}
.situacao.julgamento{background:var(--warn-bg);color:var(--warn-tx)}
.situacao b{font-size:15px}

/* forma de contratação e modalidade */
.grupos-m{display:flex;flex-direction:column;gap:12px;min-width:0}
.chip.zero:not([aria-pressed=true]){color:var(--mut)}
.chip.extinta{color:var(--mut);border-style:dashed;cursor:help;text-decoration:line-through;text-decoration-thickness:1px}
