@font-face{font-family:"Geist";src:url("/static/fonts/geist.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("/static/fonts/geist-mono.woff2") format("woff2");font-weight:100 900;font-display:swap}

/* tokens: um acento (verde), vermelho/ambar so como estado semantico. raio: 10 paineis, 8 controles, pill so em chips */
:root{
  --bg:#f2f4f3;--surface:#fcfdfc;--surface2:#f0f2f1;--line:#dfe4e1;--line2:#cbd3cf;
  --tx:#141816;--tx2:#3d4642;--mu:#5c6762;
  --ac:#0d7350;--ac-tx:#fbfdfc;--ac-soft:#e3f1ea;
  --red:#b42318;--red-soft:#fbe9e7;--amb:#93530a;--amb-soft:#fbf0de;--blue:#1f5fae;--blue-soft:#e6eefa;
  --shadow:0 1px 2px rgb(20 40 30 / .06),0 4px 14px rgb(20 40 30 / .05);
  --r:10px;--rc:8px;color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0b0e0d;--surface:#121615;--surface2:#181d1b;--line:#232a27;--line2:#323b37;
  --tx:#e6ebe8;--tx2:#c3ccc7;--mu:#909c96;
  --ac:#4cc79a;--ac-tx:#06130d;--ac-soft:#13261f;
  --red:#ff8b7b;--red-soft:#2a1513;--amb:#f0b453;--amb-soft:#2a2011;--blue:#8db8ff;--blue-soft:#131d2b;
  --shadow:0 1px 2px rgb(0 0 0 / .3);color-scheme:dark;
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.5 "Geist",system-ui,-apple-system,"Segoe UI",sans-serif;font-feature-settings:"ss01"}
a{color:var(--ac)}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px;border-radius:4px}
.ph{font-size:18px;line-height:1;flex:none}
.mono,.num{font-family:"Geist Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:.92em}
[hidden]{display:none!important}

/* ---------- casca */
.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100dvh}
.side{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:6px;padding:18px 14px;border-right:1px solid var(--line);background:var(--surface)}
.brand{display:flex;align-items:center;gap:9px;font-weight:650;letter-spacing:-.01em;padding:4px 8px 16px}
.brand .ph{font-size:22px;color:var(--ac)}
.nav{display:grid;gap:2px}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--rc);color:var(--tx2);text-decoration:none;font-weight:500}
.nav a:hover{background:var(--surface2);color:var(--tx)}
.nav a.on{background:var(--ac-soft);color:var(--tx)}
.nav a.on .ph{color:var(--ac)}
.count{margin-left:auto;font:600 12px/20px "Geist Mono",monospace;min-width:22px;text-align:center;padding:0 6px;border-radius:99px;background:var(--red);color:var(--surface)}
.count.mute{background:none;color:var(--mu);font-weight:500}
.count:empty{display:none}
.side-foot{margin-top:auto;padding:12px 10px;border-top:1px solid var(--line);font-size:13px;color:var(--mu);display:grid;gap:10px}
.side-foot b{color:var(--tx2);font-weight:600;display:block}
.side-out .link{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:none;border:0;border-radius:var(--rc);color:var(--mu);cursor:pointer}
.side-out .link:hover{background:var(--surface2);color:var(--tx)}
.main{padding:32px clamp(16px,4vw,48px) 80px;max-width:1040px;width:100%;outline:none}
.tabbar{display:none}

/* ---------- cabecalho de tela */
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
h1{font-size:26px;line-height:1.15;letter-spacing:-.025em;margin:0;font-weight:650}
h2{font-size:16px;letter-spacing:-.01em;margin:0 0 4px;font-weight:620}
.sub{color:var(--mu);margin:4px 0 0;font-size:14px}
.desc{color:var(--mu);margin:0 0 14px;font-size:14px;max-width:62ch}

/* ---------- controles */
.btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--rc);border:1px solid var(--line2);background:var(--surface);color:var(--tx);font-weight:550;font-size:14px;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s,border-color .15s,transform .1s}
.btn:hover{background:var(--surface2)}
.btn:active{transform:translateY(1px)}
.btn.pri{background:var(--ac);border-color:var(--ac);color:var(--ac-tx)}
.btn.pri:hover{filter:brightness(1.06)}
.btn.ghost{border-color:transparent;background:none}
.btn.ghost:hover{background:var(--surface2)}
.btn.sm{height:30px;padding:0 10px;font-size:13px}
.btn.dan{color:var(--red)}
.btn:disabled{opacity:.45;cursor:default;transform:none}
input:not([type=range]),textarea{width:100%;padding:9px 12px;border-radius:var(--rc);border:1px solid var(--line2);background:var(--surface);color:var(--tx);font-size:15px}
input::placeholder,textarea::placeholder{color:var(--mu);opacity:.8}
input:focus,textarea:focus{outline:2px solid var(--ac);outline-offset:-1px;border-color:transparent}
textarea{resize:vertical;min-height:84px}
.field{display:grid;gap:6px;margin-bottom:16px}
.field label{font-size:13px;font-weight:600;color:var(--tx2)}
.help{margin:0;font-size:13px;color:var(--mu)}
.err{margin:0;font-size:13px;color:var(--red);font-weight:500}
.field.bad input{border-color:var(--red)}
.row-end{display:flex;justify-content:flex-end;gap:8px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}
.panel.flush{padding:0;overflow:hidden}
.stack{display:grid;gap:14px}
details.tech{margin-top:14px;padding:14px 20px}
details.tech summary{cursor:pointer;color:var(--mu);font-size:14px;font-weight:550}
.log{font:12px/1.7 "Geist Mono",monospace;color:var(--mu);max-height:300px;overflow:auto;margin-top:10px;white-space:pre-wrap}

/* ---------- toolbar de alertas */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.search{flex:1 1 260px;position:relative;display:block}
.search .ph{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--mu)}
.search input{padding-left:36px;height:38px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:99px;border:1px solid var(--line2);background:var(--surface);color:var(--tx2);font-size:13px;font-weight:550;cursor:pointer}
.chip .n{font:500 12px "Geist Mono",monospace;color:var(--mu)}
.chip.on{background:var(--tx);border-color:var(--tx);color:var(--bg)}
.chip.on .n{color:inherit;opacity:.7}
.chip.x .ph{font-size:14px}
.seg{display:inline-flex;padding:3px;border-radius:var(--rc);background:var(--surface2);border:1px solid var(--line)}
.seg button{height:28px;padding:0 11px;border:0;border-radius:6px;background:none;color:var(--mu);font-size:13px;font-weight:550;cursor:pointer}
.seg button.on{background:var(--surface);color:var(--tx);box-shadow:var(--shadow)}
#fMarca:not(:empty){margin:-4px 0 14px}

/* ---------- lista de alertas */
.group{margin-top:22px}
.group:first-child{margin-top:0}
.group h3{font-size:14px;font-weight:620;margin:0 0 8px;display:flex;gap:8px;align-items:baseline}
.group h3 .num{color:var(--mu);font-weight:500}
.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.item+.item{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:36px minmax(0,1fr) auto 20px;gap:12px;align-items:center;width:100%;padding:12px 16px;background:none;border:0;text-align:left;cursor:pointer;color:inherit}
.row:hover{background:var(--surface2)}
.ico{width:32px;height:32px;border-radius:8px;display:grid;place-items:center}
.ico.conflito{background:var(--amb-soft);color:var(--amb)}
.ico.meu_processo{background:var(--red-soft);color:var(--red)}
.ico.citada{background:var(--blue-soft);color:var(--blue)}
.ico.meu_processo.leve{background:var(--surface2);color:var(--tx2)}
.t1{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t1 .vs{color:var(--mu);font-weight:450}
.t2{font-size:13px;color:var(--mu);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.right{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.tag{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}
.tag.urg{background:var(--red-soft);color:var(--red)}
.tag.ok{background:var(--amb-soft);color:var(--amb)}
.tag.fim{background:var(--surface2);color:var(--mu)}
.score{font:600 13px "Geist Mono",monospace;color:var(--tx2);min-width:28px;text-align:right}
.chev{color:var(--mu);transition:transform .2s}
.item.open .chev{transform:rotate(180deg)}
.det{padding:4px 16px 18px 64px;display:grid;gap:14px}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.compare div{background:var(--surface2);border-radius:var(--rc);padding:10px 12px}
.compare small{display:block;font-size:12px;color:var(--mu)}
.compare b{font-size:16px;letter-spacing:-.01em;word-break:break-word}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 20px;margin:0}
.facts dt{font-size:12px;color:var(--mu)}
.facts dd{margin:0;font-size:14px;color:var(--tx2);word-break:break-word}
.quote{font-size:14px;color:var(--tx2);background:var(--surface2);border-radius:var(--rc);padding:10px 12px;white-space:pre-wrap;max-width:75ch}
.note{font-size:13px;color:var(--mu);display:flex;gap:8px;align-items:flex-start;max-width:75ch}
.note .ph{font-size:16px;margin-top:1px}
.acts{display:flex;flex-wrap:wrap;gap:8px}
.acts .sp{flex:1}

/* ---------- vazio / esqueleto */
.empty{text-align:center;padding:48px 20px;color:var(--mu)}
.empty .ph{font-size:34px;color:var(--ac);margin-bottom:10px}
.empty b{display:block;color:var(--tx);font-size:16px;margin-bottom:4px}
.empty p{margin:0 auto 16px;max-width:46ch;font-size:14px}
.skel{height:58px;border-top:1px solid var(--line);background:linear-gradient(90deg,var(--surface) 0,var(--surface2) 40%,var(--surface) 80%);background-size:200% 100%;animation:sk 1.2s linear infinite}
.skel:first-child{border-top:0}
@keyframes sk{to{background-position:-200% 0}}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:22px;padding:0;overflow:hidden}
.step{padding:18px 20px;display:grid;gap:6px;align-content:start}
.step+.step{border-left:1px solid var(--line)}
.step .k{width:26px;height:26px;border-radius:99px;display:grid;place-items:center;background:var(--surface2);font:600 13px "Geist Mono",monospace;color:var(--tx2)}
.step.done .k{background:var(--ac);color:var(--ac-tx)}
.step b{font-size:15px}
.step p{margin:0;color:var(--mu);font-size:13px}
.step .btn{justify-self:start;margin-top:6px}

/* ---------- marcas */
.form{margin-bottom:18px}
.form h2{margin-bottom:16px}
.nice{display:flex;flex-wrap:wrap;gap:6px}
.nice button{height:30px;padding:0 10px;border-radius:99px;border:1px solid var(--line2);background:var(--surface);font-size:13px;cursor:pointer;color:var(--tx2)}
.nice button b{font-family:"Geist Mono",monospace;font-weight:600;margin-right:4px}
.nice button.on{background:var(--ac-soft);border-color:var(--ac);color:var(--tx)}
.brands{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.bcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:10px;box-shadow:var(--shadow)}
.bcard.off{opacity:.55}
.bcard .top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.bcard h3{margin:0;font-size:17px;letter-spacing:-.015em;word-break:break-word}
.bcard .meta{font-size:13px;color:var(--mu)}
.cls{display:flex;flex-wrap:wrap;gap:4px}
.cls span{font:500 12px "Geist Mono",monospace;padding:2px 7px;border-radius:6px;background:var(--surface2);color:var(--tx2)}
.bcard .foot{display:flex;gap:4px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
.bcard .foot .sp{flex:1}
.alink{font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;gap:6px;align-items:center}
.alink.zero{color:var(--mu);font-weight:500}

/* ---------- historico */
table{width:100%;border-collapse:collapse;font-size:14px}
th{font-size:12px;font-weight:550;color:var(--mu);text-align:left;padding:10px 16px;background:var(--surface2)}
td{padding:11px 16px;border-top:1px solid var(--line)}
td.r,th.r{text-align:right}

/* ---------- ajustes */
.range{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.range input{flex:1 1 220px;accent-color:var(--ac)}
.range output{font-size:14px;color:var(--tx2);min-width:220px}
.range output b{font-family:"Geist Mono",monospace;font-size:16px;color:var(--tx);margin-right:6px}
.savebar{position:sticky;bottom:16px;display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(8px);border:1px solid var(--line)}

.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--tx);color:var(--bg);padding:10px 16px;border-radius:var(--rc);font-size:14px;font-weight:550;transition:opacity .2s,transform .2s;z-index:30}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- celular */
@media (max-width:820px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .side{position:static;height:auto;flex-direction:row;align-items:center;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}
  .side .nav,.side .side-out{display:none}
  .brand{padding:0}
  .side-foot{margin:0 0 0 auto;padding:0;border:0;font-size:12px;text-align:right;gap:0}
  .side-foot .full{display:none}
  .main{padding:20px 16px 96px}
  .head{flex-wrap:wrap;align-items:flex-start}
  h1{font-size:23px}
  .tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .tabbar a{position:relative;display:grid;justify-items:center;gap:2px;padding:6px 0;color:var(--mu);text-decoration:none;font-size:11px;font-weight:550}
  .tabbar a .ph{font-size:22px}
  .tabbar a.on{color:var(--ac)}
  .dot-count{position:absolute;top:2px;left:calc(50% + 6px);font:600 10px/16px "Geist Mono",monospace;min-width:16px;padding:0 4px;border-radius:99px;background:var(--red);color:var(--surface)}
  .dot-count:empty{display:none}
  .toolbar{gap:8px}
  .search{flex-basis:100%}
  .chips{flex:1 1 100%;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .toolbar{min-width:0}
  .side-foot{min-width:0;white-space:nowrap}
  .row{grid-template-columns:32px minmax(0,1fr) auto;gap:10px;padding:12px}
  .row .chev{display:none}
  .row .score{display:none}
  .det{padding:0 12px 16px}
  .compare{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .step+.step{border-left:0;border-top:1px solid var(--line)}
  .savebar{bottom:84px}
  .toast{bottom:90px}
  th.hide,td.hide{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media (max-width:820px){.t1{white-space:normal;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical}}

.resumo{margin:0;font-size:15px;line-height:1.5;color:var(--tx);max-width:75ch}
.fazer{margin:0;font-size:14px;line-height:1.5;color:var(--tx2);max-width:75ch}
.outras{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:8px}
.outra{display:flex;flex-direction:column;gap:3px;background:var(--surface2);border-radius:var(--rc);padding:10px 12px;font-size:13px;color:var(--tx2);min-width:0;word-break:break-word}
.outra small{font-size:12px;color:var(--mu)}
.outra b{font-size:14px;color:var(--tx)}
.outra a{color:var(--ac)}
.outra .mu{color:var(--mu)}
.orig summary{cursor:pointer;font-size:13px;color:var(--mu);margin-bottom:6px}
