/* Brice (Studio Sun): arquivos licenciados hospedados na própria ferramenta */
@font-face{font-family:'Brice';font-weight:600;font-display:swap;src:url('../fonts/Brice-SemiBold.woff') format('woff'),local('Brice SemiBold')}
@font-face{font-family:'Brice';font-weight:700;font-display:swap;src:url('../fonts/Brice-Bold.woff') format('woff'),local('Brice Bold')}
@font-face{font-family:'Brice';font-weight:800 900;font-display:swap;src:url('../fonts/Brice-Black.woff') format('woff'),local('Brice Black')}
@font-face{font-family:'Brice Expanded';font-weight:700;font-display:swap;src:url('../fonts/Brice-BoldExpanded.woff') format('woff'),local('Brice Bold Expanded')}
@font-face{font-family:'Brice Expanded';font-weight:800 900;font-display:swap;src:url('../fonts/Brice-BlackExpanded.woff') format('woff'),local('Brice Black Expanded')}
:root{
  --display:'Brice','Bricolage Grotesque','Figtree',system-ui,sans-serif;
  --display-wide:'Brice Expanded','Brice','Bricolage Grotesque','Figtree',system-ui,sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --bg:#FEF6E2; --surface:#FFFFFF; --ink:#040606; --muted:#5E5A52; --line:#EFE3C4;
  --mag:#EA1265; --sun:#FFC301; --tq:#4DAE72; --or:#EC5A36; --vio:#434CA8;
  --rj:#4DAE72; --sp:#EC5A36; --ssa:#434CA8;
  --soft-mag:#FCDDEA; --soft-tq:#DDF1E4; --soft-or:#FCE2DA; --soft-vio:#E0E2F3; --soft-sun:#FFF0BF;
  --on-soft:#040606;
  --r:6px; --r-sm:4px; /* raio das bordas: blocos / controles */
  --shadow:0 1px 0 rgba(4,6,6,.03),0 22px 44px -34px rgba(4,6,6,.5);
  --pat-rj:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2744%27%20height%3D%2722%27%3E%3Cpath%20d%3D%27M0%2011%20q11%20-11%2022%200%20t22%200%27%20fill%3D%27none%27%20stroke%3D%27%23FFC301%27%20stroke-width%3D%274%27%20stroke-linecap%3D%27round%27/%3E%3C/svg%3E"); --pat-sp:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2732%27%20height%3D%2724%27%3E%3Cpolygon%20points%3D%274%2C17%2010%2C7%2020%2C7%2014%2C17%27%20fill%3D%27%23FFC301%27/%3E%3C/svg%3E"); --pat-ssa:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2724%27%20height%3D%2724%27%3E%3Ccircle%20cx%3D%276%27%20cy%3D%276%27%20r%3D%273%27%20fill%3D%27%23FFC301%27/%3E%3Ccircle%20cx%3D%2718%27%20cy%3D%2718%27%20r%3D%272.4%27%20fill%3D%27%23FFFFFF%27/%3E%3C/svg%3E");
}
:root[data-theme="dark"]{
  --bg:#14111C; --surface:#1F1A2B; --ink:#FFF7E4; --muted:#BDB4A3; --line:#3A3246;
  --soft-mag:#4A1230; --soft-tq:#173A26; --soft-or:#4A2016; --soft-vio:#262C5A; --soft-sun:#4A3A08; --on-soft:#FFF7E4; --shadow:0 22px 44px -28px rgba(0,0,0,.9);
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-size:15px;line-height:1.5}
h1,h2,h3,h4{font-family:var(--display);line-height:1.1;margin:0}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.wrap{max-width:1360px;margin:0 auto;padding:0 20px}
body{overflow-x:clip}
@media (max-width:640px){.wrap{padding:0 16px}}
/* Lenis (smooth scroll) */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
/* Enquanto a intro não monta, nada pisca. O keyframe é a rede de segurança se o JS falhar. */
html.mo :is(header .wrap,.confete,.confete-l,.mq,.tabsbar,main){opacity:0;animation:mo-show 0s 3s forwards}
@keyframes mo-show{to{opacity:1}}

/* ================= Hero ================= */
header{background:#FFC301;color:#040606;position:relative;overflow:hidden;padding:clamp(20px,3.4vw,40px) 0 clamp(4px,.8vw,12px)}
header .wrap{position:relative;z-index:1}
.confete{position:absolute;right:0;top:0;height:min(100%,380px);width:min(780px,58%);pointer-events:none;z-index:0;overflow:visible}
.confete-l{position:absolute;left:0;top:0;height:100%;width:120px;pointer-events:none;z-index:0}
.hero-top{display:flex;justify-content:space-between;align-items:center;gap:10px 16px;flex-wrap:wrap}
.kicker{display:inline-flex;align-items:center;gap:10px;margin:0;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#3A3326}
.kicker::before{content:"";width:26px;height:4px;border-radius:4px;background:#EA1265}
h1{font-family:var(--display-wide);font-weight:800;letter-spacing:-.01em}
header h1{color:#EA1265;font-size:clamp(44px,9.4vw,128px);line-height:.9;margin:clamp(14px,2.4vw,26px) 0 0}
header h1 .ln{display:block;overflow:clip;padding:.06em 0 .12em;margin:-.06em 0 -.12em} /* máscara da animação das letras */
@media (min-width:761px){header h1 .l2{padding-left:.62em}}
.hero-bot{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 40px;flex-wrap:wrap;margin-top:clamp(16px,2.6vw,30px)}
header .sub{color:#3A3326;max-width:50ch;margin:0;font-size:clamp(14px,1.25vw,17px);line-height:1.5}
.hero-meta{display:flex;flex-wrap:wrap;gap:4px 0;margin:0;font-size:13px;color:#3A3326}
.hero-meta span:not(:last-child)::after{content:"·";margin:0 10px;opacity:.5}
.hero-meta b{font-weight:800;font-size:14px;color:#040606;margin-right:2px}
@media (max-width:760px){header{padding-top:84px}.confete{width:100%;height:96px}.confete-l{display:none}}

/* ================= Faixas em movimento ================= */
.mq{position:relative;overflow:hidden;height:clamp(84px,9vw,124px);background:linear-gradient(#FFC301 50%,var(--bg) 50%)}
.mq-band{position:absolute;left:-4%;width:108%;top:50%;overflow:hidden;font-family:var(--display-wide);font-weight:800;text-transform:uppercase;font-size:clamp(17px,2.3vw,32px);line-height:1;padding:.46em 0}
.mq-a{background:#EA1265;color:#FFC301;transform:translateY(-50%) rotate(-2.4deg);box-shadow:0 14px 30px -18px rgba(4,6,6,.6)}
.mq-b{background:#434CA8;color:#FFF7E4;transform:translateY(-50%) rotate(1.8deg)}
.mq-track{display:flex;width:max-content;will-change:transform}
.mq-item{display:inline-flex;align-items:center;gap:.55em;padding-right:.55em;white-space:nowrap}
.mq-item svg{width:.8em;height:.8em;flex:none}

/* ================= Barra de abas (fixa) ================= */
.tabsbar{position:sticky;top:0;z-index:40;background:var(--bg);background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.tabsbar.stuck{border-bottom-color:var(--line);box-shadow:0 12px 30px -26px rgba(4,6,6,.6)}
.tabsbar .wrap{display:flex;align-items:center;gap:10px;min-height:60px}
.mini-brand{font-family:var(--display-wide);font-weight:800;font-size:17px;color:var(--mag);white-space:nowrap;max-width:0;opacity:0;overflow:hidden;transition:max-width .5s cubic-bezier(.2,.8,.2,1),opacity .3s,margin .5s}
.tabsbar.stuck .mini-brand{max-width:240px;opacity:1;margin-right:8px}
nav{position:relative;display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;padding:8px 0}
nav::-webkit-scrollbar{display:none}
nav button{position:relative;z-index:1;flex:none;border:0;background:transparent;color:var(--muted);padding:10px 16px;border-radius:var(--r-sm);font-weight:700;cursor:pointer;white-space:nowrap;transition:color .3s,background-color .3s}
nav button:hover{color:var(--ink)}
nav button[aria-selected="true"]{background:var(--ink);color:var(--bg)}
nav.has-ind button[aria-selected="true"]{background:transparent}
.tab-ind{position:absolute;left:0;top:8px;bottom:8px;width:0;border-radius:var(--r-sm);background:var(--ink);z-index:0;pointer-events:none}
#themeBtn{flex:none;width:40px;height:40px;padding:0;border-radius:var(--r-sm);display:inline-grid;place-items:center}
#themeBtn .sol,:root[data-theme="dark"] #themeBtn .lua{display:none}
:root[data-theme="dark"] #themeBtn .sol{display:block}
@media (max-width:760px){.mini-brand{display:none}}
main{padding:28px 0 80px}
.tab[hidden]{display:none}
.layout{display:grid;grid-template-columns:minmax(310px,390px) 1fr;gap:22px;align-items:start}
@media (max-width:980px){.layout{grid-template-columns:1fr}}
aside.form{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--mag);border-radius:var(--r);padding:22px 20px 10px;position:sticky;top:76px;max-height:calc(100vh - 92px);overflow:auto;box-shadow:var(--shadow);scrollbar-width:thin}
@media (max-width:980px){aside.form{position:static;max-height:none}}
.step{margin:0 0 20px;padding:0 0 16px;border-bottom:1px dashed var(--line)}
.step:last-child{border-bottom:0}
.step h3{font-size:22px;display:flex;gap:12px;align-items:center}
.step h3 span{width:36px;height:36px;border-radius:var(--r-sm);display:inline-grid;place-items:center;font-size:17px;color:#fff;flex:none;rotate:-6deg}
.s1 h3 span{background:var(--mag)} .s2 h3 span{background:var(--vio)} .s3 h3 span{background:var(--or)}
.hint{color:var(--muted);font-size:13px;margin:4px 0 0}
label.f{display:block;font-weight:600;font-size:13px;margin:14px 0 6px}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],input[type=date],select,textarea{width:100%;font:inherit;padding:10px 12px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--bg);color:var(--ink);transition:border-color .2s,box-shadow .2s}
input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,input[type=number]:focus,input[type=date]:focus,select:focus,textarea:focus{outline:none;border-color:var(--mag);box-shadow:0 0 0 4px color-mix(in srgb,var(--mag) 18%,transparent)}
textarea{font-size:13px;min-height:130px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1.5px solid var(--line);background:transparent;border-radius:var(--r-sm);padding:6px 12px;font-size:13px;cursor:pointer;line-height:1.3;transition:background-color .2s,color .2s,border-color .2s}
.chip:hover{border-color:var(--muted)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.chips.neg .chip[aria-pressed="true"]{background:var(--or);border-color:var(--or);color:#fff}
.chips.must .chip[aria-pressed="true"]{background:var(--vio);border-color:var(--vio);color:#fff}
.zgroup{margin:4px 0 8px}
.zgroup small{display:block;color:var(--muted);font-size:12px;margin:0 0 4px}
.objrow{display:grid;grid-template-columns:1fr 70px;gap:6px;align-items:center;margin:8px 0 2px}
.objrow b{font-size:13px}
.objrow + input{margin-bottom:4px;font-size:13px}
.sum{font-size:13px;font-weight:600;margin-top:6px}
.sum.bad{color:var(--or)}
.w{display:grid;grid-template-columns:minmax(96px,128px) minmax(0,1fr) 66px;align-items:center;gap:10px;font-size:13px;margin:8px 0}
.w input{width:100%}
input[type=range]{-webkit-appearance:none;appearance:none;height:22px;background:transparent;cursor:pointer;margin:0}
input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:6px;background:linear-gradient(90deg,var(--mag) var(--p,50%),var(--line) var(--p,50%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;background:var(--surface);border:3px solid var(--mag);box-shadow:0 2px 8px rgba(4,6,6,.25);transition:transform .2s}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.25)}
input[type=range]::-moz-range-track{height:6px;border-radius:6px;background:var(--line)}
input[type=range]::-moz-range-progress{height:6px;border-radius:6px;background:var(--mag)}
input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--surface);border:3px solid var(--mag)}
.w b{text-align:right}
.btn{border:0;border-radius:var(--r-sm);padding:10px 14px;font-weight:700;cursor:pointer;background:var(--ink);color:var(--bg);transition:background-color .25s,border-color .25s}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn.mag{background:var(--mag);color:#fff}
.btn.ghost:not(:disabled):hover{border-color:var(--muted)}
.btn.small{padding:6px 10px;font-size:13px;border-radius:var(--r-sm)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btns{display:flex;gap:8px;flex-wrap:wrap}
.verdict{background:var(--mag);color:#fff;border-radius:var(--r);padding:clamp(20px,3vw,32px);display:grid;grid-template-columns:1.25fr 1fr;gap:22px;position:relative;overflow:hidden;isolation:isolate;box-shadow:0 30px 60px -38px rgba(234,18,101,.9)}
.verdict::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--pat-ssa);background-size:22px 22px;opacity:.14;-webkit-mask:linear-gradient(115deg,#000,transparent 55%);mask:linear-gradient(115deg,#000,transparent 55%)}
.verdict::after{content:"";position:absolute;z-index:-1;width:360px;height:360px;right:-120px;bottom:-190px;border-radius:50%;background:#FFC301;opacity:.18}
.verdict .confete{width:260px;height:auto;right:-30px;top:-20px;opacity:.9}
@media (max-width:760px){.verdict{grid-template-columns:1fr}}
.verdict small{font-weight:600;opacity:.92}
.verdict h2{display:inline-block;background:var(--sun);color:var(--mag);padding:.06em .28em .1em;border-radius:var(--r-sm);font-family:var(--display-wide);font-size:clamp(30px,3.9vw,58px);white-space:nowrap;max-width:100%;font-weight:800;letter-spacing:-.01em;margin:2px 0 8px}
.verdict p{margin:0 0 8px;max-width:58ch}
.verdict .warn{background:rgba(0,0,0,.18);border-radius:var(--r-sm);padding:8px 12px;font-size:14px}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-content:start;position:relative;z-index:1}
.kpi{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);border-radius:var(--r-sm);padding:12px 14px}
.kpi b{font-family:var(--display-wide);font-size:clamp(28px,3vw,40px);display:block;line-height:1.05}
.kpi span{font-size:13px;opacity:.94}
.exportbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}
.exportbar .btn.big{padding:13px 18px;font-size:16px;background:var(--ink);color:var(--bg)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(16px,2vw,24px);margin-top:20px;box-shadow:var(--shadow)}
.panel h3{font-size:clamp(20px,2vw,26px)}
.panel .hint{margin-bottom:10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:1100px){.grid2,.grid3{grid-template-columns:1fr}}
.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;padding:8px;border-bottom:1.5px solid var(--line);white-space:nowrap}
td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
tr.row{cursor:pointer}
tr.row:hover td{background:var(--soft-vio)}
tr.row.sel td{background:var(--soft-sun)}
.pos{font-family:var(--display);font-weight:800;font-size:18px;width:34px}
.bn{font-weight:700}
.bz{color:var(--muted);font-size:12px}
.bar{height:9px;border-radius:2px;background:var(--line);position:relative;min-width:80px}
.bar i{position:absolute;left:0;top:0;bottom:0;border-radius:inherit}
.sc{display:flex;align-items:center;gap:8px}
.sc b{font-family:var(--display);font-size:18px;min-width:30px}
.tag{font-size:12px;font-weight:600;padding:3px 9px;border-radius:var(--r-sm);white-space:nowrap;display:inline-block;color:var(--on-soft)}
.t-pri{background:var(--soft-mag)} .t-alta{background:var(--soft-tq)} .t-cond{background:var(--soft-sun)} .t-baixa{background:var(--line)} .t-exc{background:var(--soft-or)} .t-val{background:var(--soft-vio)}
svg text{font-family:'Figtree',system-ui,sans-serif;fill:var(--muted)}
.chart svg{width:100%;height:auto;display:block;max-width:440px;margin:0 auto}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:8px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.scen{border:1.5px solid var(--line);border-radius:var(--r);padding:14px;background:var(--bg)}
.scen.rec{border-color:var(--mag);border-width:2.5px}
.scen h4{font-size:19px}
.scen .v{font-family:var(--display);font-size:26px;font-weight:800;margin:6px 0 2px}
.scen ul{margin:8px 0 0;padding-left:18px;font-size:13px}
.scen li{margin:3px 0}
.idx{display:grid;gap:8px}
.irow{display:grid;grid-template-columns:minmax(150px,1fr) 2fr 44px;gap:10px;align-items:center;font-size:13px}
.expl h4{font-size:15px;margin:12px 0 4px}
.expl ul{margin:0;padding-left:18px;font-size:14px}
.terr{display:grid;gap:14px}
.city h4{font-size:16px;margin-bottom:6px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.tile{border-radius:var(--r);padding:12px 14px;color:#fff;min-height:80px}
.cityhead{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.cityhead i{width:46px;height:22px;border-radius:6px;display:inline-block}
.cityhead.rj i{background:var(--rj) var(--pat-rj);background-size:22px 11px}.cityhead.sp i{background:var(--sp) var(--pat-sp);background-size:20px 15px}.cityhead.ssa i{background:var(--ssa) var(--pat-ssa);background-size:14px 14px}
.tile b{display:block;font-family:var(--display);font-size:22px}
.tile span{font-size:12px}
.tile.lo{color:var(--on-soft)}
.note{background:var(--soft-sun);color:var(--on-soft);border-radius:var(--r);padding:12px 14px;font-size:13px;margin-top:14px}
.empty{padding:28px 20px;text-align:center;color:var(--muted);border:2px dashed var(--line);border-radius:var(--r)}
.empty h3{color:var(--ink);margin-bottom:6px}
.saved{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.saved[hidden]{display:none} /* a lista antiga de marcas salvas ficava visível apesar do hidden */
.saved .chip{cursor:default}
.saved .chip button{border:0;background:transparent;cursor:pointer;margin-left:4px;font-weight:700}
.prose{max-width:76ch}
/* Critérios e método: ocupa a largura toda do painel e rola por dentro */
#metodo.prose{max-width:none;max-height:calc(100dvh - 190px);min-height:320px;overflow:auto;overscroll-behavior:contain;padding-right:clamp(16px,2.4vw,32px)}
#metodo.prose p,#metodo.prose li{line-height:1.6}
.prose h3{margin:20px 0 6px}
.prose h3:first-child{margin-top:0}
.prose p{margin:0 0 10px}
.prose ol,.prose ul{margin:0 0 10px;padding-left:20px}
.prose li{margin:4px 0}
.formgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 14px}
.formgrid .full{grid-column:1/-1}
.toast{position:fixed;left:0;right:0;margin:0 auto;width:max-content;max-width:calc(100% - 32px);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--r-sm);font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s;z-index:10}
.toast.on{opacity:1}
code{font-size:12px;background:var(--bg);padding:2px 5px;border-radius:6px;word-break:break-all}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
@media print{nav,aside.form,.noprint,.toast,.mq,.tabsbar,.jump,.cf-p{display:none!important}.layout{display:block}body{background:#fff}}
tr.cut td{background:var(--soft-mag);color:var(--on-soft);font-weight:700;font-size:13px;text-align:center;padding:6px}
.w.off{opacity:.45}
.w small{display:block;font-size:11px;color:var(--muted)}
.check{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin-top:12px}
.check input{margin-top:3px;accent-color:var(--mag)}
details.more summary{cursor:pointer;font-size:13px;color:var(--muted);margin:6px 0}
table.brk td,table.brk th{font-size:13px;padding:6px 8px}
.viewer-only{display:none}
body.viewer .viewer-only{display:block}
body.viewer .owner-only{display:none!important}
.basedate{font-size:12px;color:var(--muted);margin:8px 0 0}
.rpt-ov{position:fixed;inset:0;z-index:50;background:rgba(4,6,6,.8);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow:auto;padding:calc(14px + env(safe-area-inset-top,0px)) 14px calc(24px + env(safe-area-inset-bottom,0px))}
.rpt-ov[hidden]{display:none}
.rpt-bar{position:sticky;top:0;z-index:2;max-width:820px;margin:0 auto 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);color:var(--ink);border-radius:var(--r);padding:10px 14px;box-shadow:0 6px 18px rgba(0,0,0,.2)}
.rpt-page{max-width:820px;margin:0 auto 18px;background:#fff;color:#040606;border-radius:6px;padding:0 0 22px;box-shadow:0 10px 30px rgba(0,0,0,.25);overflow:hidden}
.rpt-band{height:10px;background:#FFC301}
.rpt-cities{display:grid;grid-template-columns:1fr 1fr 1fr;height:4px}.rpt-cities i:nth-child(1){background:#4DAE72}.rpt-cities i:nth-child(2){background:#EC5A36}.rpt-cities i:nth-child(3){background:#434CA8}
.rpt-in{padding:14px clamp(16px,4vw,36px) 0}
.rpt-head{font-size:11px;color:#5E5A52;font-weight:700;margin:0}
.rpt-page h2{font-family:var(--display);font-size:22px;margin:14px 0 10px;color:#040606}
.rpt-page h3{font-family:var(--display);font-size:15px;color:#EA1265;margin:18px 0 8px}
.rpt-page p{font-size:13px}
.rpt-page .rpt-marca{font-family:var(--display);font-size:18px;color:#EA1265;margin:0 0 10px}
.rpt-verdict{background:#EA1265;color:#fff;border-radius:10px;padding:12px 16px;margin:10px 0}
.rpt-verdict small{font-weight:700}
.rpt-verdict b{display:inline-block;background:#FFC301;color:#EA1265;font-family:var(--display-wide);font-size:26px;padding:2px 10px;border-radius:6px;margin:4px 0 6px}
.rpt-verdict p{margin:0}
.rpt-page table{font-size:12px}
.rpt-page th{background:#040606;color:#fff;font-size:11px;border:0}
.rpt-page td{border-bottom:1px solid #EFE3C4;color:#040606;vertical-align:top}
.rpt-page tbody tr:nth-child(odd) td{background:#FEF6E2}
.rpt-page .bz{color:#5E5A52}
.rpt-foot{font-size:10px;color:#5E5A52;padding:14px clamp(16px,4vw,36px) 0;margin:0}
.rpt-page.op{padding:0 0 18px}
.op-head{position:relative;color:#040606}
.op-head svg{display:block;width:100%;height:auto;aspect-ratio:840/150}
.op-head-in{position:absolute;left:clamp(16px,4vw,32px);top:12%;right:30%}
.op-kicker{font-size:11px;font-weight:700;margin:0;letter-spacing:.04em}
.op-head h2{font-family:var(--display);color:#EA1265;font-size:clamp(20px,3.6vw,32px);margin:4px 0;line-height:1.05}
.op-obj{font-size:12px;font-weight:700;margin:0}
.op-in{padding:14px clamp(16px,4vw,32px) 0}
.op-verdict{background:#EA1265;color:#fff;border-radius:12px;padding:12px 16px;display:grid;grid-template-columns:auto 1fr;gap:4px 18px;align-items:center}
.op-verdict span{grid-column:1;font-size:11px;font-weight:700}
.op-verdict b{grid-column:1;display:inline-block;background:#FFC301;color:#EA1265;font-family:var(--display-wide);font-size:24px;padding:2px 10px;border-radius:6px;justify-self:start}
.op-verdict p{grid-column:2;grid-row:1/3;margin:0;font-size:14px!important;line-height:1.4}
@media (max-width:600px){.op-verdict{grid-template-columns:1fr}.op-verdict p{grid-column:1;grid-row:auto}}
.op-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:12px 0}
.op-kpis div{background:#FEF6E2;border-radius:10px;padding:10px 12px}
.op-kpis b{display:block;font-family:var(--display);font-size:22px;line-height:1.1;color:#040606}
.op-kpis span{font-size:11px;color:#5E5A52}
.op-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.op-card{border:1px solid #EFE3C4;border-left:5px solid var(--c);border-radius:10px;padding:10px 12px;background:#fff}
.op-city{font-size:10px!important;font-weight:700;color:var(--c);text-transform:uppercase;letter-spacing:.04em;margin:0}
.op-card h4{font-family:var(--display);font-size:17px;margin:2px 0;color:#040606}
.op-meta{font-size:11px!important;color:#5E5A52;margin:0 0 6px}
.op-fit{display:flex;align-items:center;gap:8px}
.op-fit .bar{flex:1;min-width:60px;background:#EFE3C4}.op-fit .bar i{background:#EA1265}
.op-fit b{font-size:12px;color:#EA1265;white-space:nowrap}
.op-tags{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 0}
.op-tags span{font-size:10.5px;background:#FFF0BF;color:#040606;border-radius:99px;padding:2px 8px}
.op-foot{display:flex;justify-content:space-between;align-items:baseline;margin:8px 0 0;font-size:11px!important;color:#5E5A52}
.op-foot b{font-family:var(--display);font-size:15px;color:#040606;white-space:nowrap;margin-left:8px}
.op-more{font-size:12px!important;font-weight:700;color:#5E5A52}
.op-why h3{margin-top:14px}
.op-why ul{margin:0;padding-left:18px;font-size:13px}
.op-why li{margin:3px 0}
.op-cta{background:#040606;color:#fff;border-radius:10px;padding:10px 14px;margin-top:14px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:13px}
.op-cta b{font-family:var(--display);color:#FFC301;font-size:15px}
.op-note{font-size:10px!important;color:#5E5A52;margin:10px 0 0}
.pracas{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.praca{background:#fff;color:#040606;border-radius:var(--r-sm);padding:6px 10px;font-size:13px;border-left:6px solid}
.praca b{display:block;font-family:var(--display);font-size:14px}
.praca.rj{border-color:#4DAE72}.praca.sp{border-color:#EC5A36}.praca.ssa{border-color:#434CA8}
.verdict h2.long{white-space:normal;font-size:clamp(26px,3vw,42px);line-height:1.08}
.op-verdict b.long{font-size:18px;max-width:240px}
.op-chart{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:18px;align-items:start;margin-top:6px}
@media (max-width:600px){.op-chart{grid-template-columns:1fr}}
.op-radar svg{width:100%;height:auto;display:block}
.op-leg{display:flex;flex-wrap:wrap;gap:10px;font-size:11px!important;margin:4px 0 0}
.op-leg i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}

/* ================= Celular: tabelas viram cartões (rótulos vêm do <th> via data-label) ================= */
@media (max-width:640px){
  main .tablewrap{overflow:visible}
  main .tablewrap.base-scroll{overflow:auto;max-height:72dvh;padding:8px;border-radius:var(--r)}
  main .tablewrap :is(table,tbody,tr,td){display:block;width:100%}
  main .tablewrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  main .tablewrap tr{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 10px}
  main .tablewrap tr.row.sel{background:var(--soft-sun);border-color:var(--sun)}
  main .tablewrap tr.row:hover td,main .tablewrap tr.row.sel td{background:transparent}
  main .tablewrap td{border:0;padding:5px 0;display:grid;grid-template-columns:minmax(90px,36%) minmax(0,1fr);gap:12px;align-items:baseline;white-space:normal!important;overflow-wrap:anywhere}
  main .tablewrap td::before{content:attr(data-label);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
  main .tablewrap :is(td[data-label=""],td.bn){display:block;padding-right:44px} /* sem :has (navegadores antigos) */
  main .tablewrap :is(td[data-label=""],td.bn)::before{content:none}
  main .tablewrap :is(td[data-label=""],td.bn,td:has(> .bn)){display:block;padding-right:44px}
  main .tablewrap :is(td[data-label=""],td.bn,td:has(> .bn))::before{content:none}
  main .tablewrap td.pos{position:absolute;top:10px;right:14px;width:auto;padding:0;display:block;font-size:24px;color:var(--mag)}
  main .tablewrap td.pos::before{content:none}
  main .tablewrap tr.cut{background:var(--soft-mag);padding:8px 12px;text-align:center}
  main .tablewrap tr.cut td{display:block;padding:0;background:transparent}
  main .tablewrap tr.cut td::before{content:none}
  main .tablewrap .bar{min-width:0}
  main .tablewrap .tag{white-space:normal;justify-self:start}
}

/* ================= Celular: atalho para o resultado ================= */
.jump{display:none}
@media (max-width:980px){
  .jump{display:flex;position:fixed;z-index:45;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));align-items:center;justify-content:space-between;gap:12px;border:0;border-radius:var(--r);padding:12px 12px 12px 16px;background:var(--mag);color:#fff;font:inherit;font-size:14px;cursor:pointer;transform:translateY(150%);visibility:hidden;transition:transform .45s cubic-bezier(.2,.9,.25,1.15),visibility 0s .45s}
  .jump.on{transform:none;visibility:visible;transition:transform .45s cubic-bezier(.2,.9,.25,1.15),visibility 0s}
  .jump span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
  .jump b{flex:none;font-family:var(--display);background:#FFC301;color:#040606;border-radius:var(--r-sm);padding:7px 11px}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
}
.cf-p{position:fixed;width:9px;height:14px;margin:-7px 0 0 -4px;pointer-events:none;z-index:95;border-radius:2px}

/* ================= Login ================= */
.auth{display:none;position:fixed;inset:0;z-index:90;overflow:hidden auto;color:#040606;background:radial-gradient(120% 90% at 15% 10%,#FFD54A 0%,#FFC301 55%,#F5B800 100%)}
html.auth-on .auth{display:block}
html.auth-on body{overflow:hidden}
.auth:not(.pronto) :is(.auth-in,.auth-fx,.auth-bands){visibility:hidden}
.auth-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.auth-bands{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.auth-band{position:absolute;left:-12%;width:124%;display:flex;overflow:hidden;white-space:nowrap;font-family:var(--display-wide);font-weight:800;text-transform:uppercase;font-size:clamp(18px,2.6vw,36px);line-height:1;padding:.45em 0}
.auth-band.a{bottom:12%;background:#EA1265;color:#FFC301;transform:rotate(-5deg);box-shadow:0 18px 40px -20px rgba(4,6,6,.5)}
.auth-band.b{bottom:8%;background:#434CA8;color:#FFF7E4;transform:rotate(3deg)}
.auth-in{position:relative;z-index:2;min-height:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,410px);gap:clamp(28px,5vw,90px);align-items:center;max-width:1240px;margin:0 auto;padding:clamp(28px,6vh,72px) clamp(16px,4vw,48px) clamp(130px,24vh,210px)}
.auth-brand{perspective:900px;container-type:inline-size}
.auth-title{font-family:var(--display-wide);font-weight:800;color:#EA1265;font-size:clamp(44px,17cqi,140px);line-height:.88;letter-spacing:-.015em;margin:14px 0 0;transform-style:preserve-3d}
.auth-title .ln{display:block;overflow:clip;padding:.06em 0 .12em;margin:-.06em 0 -.12em}
.auth-title .l2{padding-left:1.1em}
.auth-sub{max-width:34ch;margin:22px 0 0;font-size:clamp(15px,1.3vw,18px);line-height:1.5;color:#3A3326}
.auth-card{background:var(--surface);color:var(--ink);border-radius:var(--r);border-top:6px solid #EA1265;padding:clamp(22px,3vw,34px);box-shadow:0 50px 90px -40px rgba(4,6,6,.65),0 0 0 1px rgba(4,6,6,.06)}
.auth-card h2{font-family:var(--display);font-size:clamp(24px,2.4vw,30px);margin:0 0 6px}
.auth-card .btn.mag{width:100%;min-height:50px;padding:14px 16px;font-size:16px;margin-top:16px}
.auth-card .btn.ok{background:var(--tq)}
.auth-link{display:block;background:none;border:0;padding:8px 0 0;margin-top:6px;color:var(--mag);font:inherit;font-size:14px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.auth-msg{margin:12px 0 0;font-size:13px;font-weight:600;color:var(--or)}
.auth-msg:empty{display:none}
.auth-ti{margin:14px 0 0;font-size:13px;color:var(--muted)}
.auth-ti a{color:var(--mag);font-weight:700;text-underline-offset:3px}
body.sem-admin .admin-only{display:none!important}
.dlg{width:min(980px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line);border-top:5px solid var(--mag);border-radius:var(--r);background:var(--surface);color:var(--ink);box-shadow:0 40px 80px -30px rgba(4,6,6,.6);overflow:hidden}
.dlg[open]{display:flex;flex-direction:column}
.dlg::backdrop{background:rgba(4,6,6,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.dlg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 4px}
.dlg-head .hint{margin:4px 0 0}
.dlg-tools{display:flex;gap:10px;align-items:center;padding:10px 22px 12px;border-bottom:1px solid var(--line)}
.dlg-tools input{flex:1;min-width:0}
.dlg-body{flex:1;min-height:0;overflow:auto;padding:4px 22px 22px}
@media (max-width:640px){.dlg-tools{flex-wrap:wrap}.dlg-tools input{flex-basis:100%}.dlg-head,.dlg-tools{padding-left:16px;padding-right:16px}.dlg-body{padding:4px 16px 16px}}
.dlg-cred{width:min(520px,calc(100% - 32px))}
/* Lista da base: janela com rolagem interna (15 blocos por página) e cabeçalho fixo */
.base-busca{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 10px}
.base-busca input{flex:1 1 280px;max-width:420px}
.base-scroll{max-height:min(66vh,640px);overflow:auto;border:1px solid var(--line);border-radius:var(--r-sm);overscroll-behavior:contain}
.base-scroll thead th{position:sticky;top:0;z-index:1;background:var(--surface);box-shadow:0 1.5px 0 var(--line)}
.pag{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:14px}
.pag button{min-width:40px;min-height:40px;padding:6px 12px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.pag button:hover:not(:disabled):not([aria-current]){border-color:var(--muted)}
.pag button[aria-current="page"]{background:var(--mag);border-color:var(--mag);color:#fff}
.pag button:disabled{opacity:.45;cursor:not-allowed}
.pag .pt{padding:0 4px;color:var(--muted)}
.pag-info{flex-basis:100%;text-align:center;font-size:12px;color:var(--muted)}
.pg-off{display:none!important}
@media print{.pg-off{display:revert!important}.base-scroll{max-height:none!important;overflow:visible!important;border:0}.pag{display:none!important}}
.dlg-confirma{width:min(460px,calc(100% - 32px))}
.cf-body{padding:22px}
.cf-txt{margin:0 0 18px;font-size:16px;line-height:1.5}
/* senha temporária na própria linha da pessoa */
.tmp{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;white-space:normal}
.tmp-q{font-size:13px;color:var(--muted);max-width:26ch}
.tmp-senha{font-family:ui-monospace,Consolas,'Courier New',monospace;font-size:17px;font-weight:700;letter-spacing:.05em;padding:6px 10px;border-radius:var(--r-sm);background:var(--soft-sun);border:1.5px solid var(--sun);color:var(--on-soft);user-select:all}
.tmp-dica{flex-basis:100%;font-size:12px;color:var(--muted)}
.cred-body{padding:8px 22px 22px}
.cred-l{margin:12px 0 4px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.cred-v{margin:0;padding:10px 14px;border-radius:var(--r-sm);background:var(--bg);border:1.5px solid var(--line);font-size:16px;font-weight:600;word-break:break-all;user-select:all}
.cred-senha{font-family:ui-monospace,Consolas,'Courier New',monospace;font-size:clamp(22px,6vw,30px);font-weight:700;letter-spacing:.06em;background:var(--soft-sun);border-color:var(--sun);color:var(--on-soft)}
.cred-body .btns{margin:18px 0 6px}
.auth-msg.ok{color:var(--tq)}
.pw{position:relative}
.pw input{padding-right:84px}
.pw-ver{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:700;cursor:pointer;padding:6px 8px}
.dots{display:inline-flex;gap:6px;vertical-align:middle}
.dots i{display:block;width:8px;height:8px;border-radius:50%;background:currentColor}
@media (max-width:860px){.auth-in{grid-template-columns:1fr;align-content:start}}

/* ================= Admin ================= */
.subnav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 18px;padding:2px}
.subnav::-webkit-scrollbar{display:none}
.subnav button{flex:none;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--r-sm);padding:9px 14px;font:inherit;font-weight:700;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.subnav button[aria-selected="true"]{background:var(--mag);border-color:var(--mag);color:#fff}
.adm-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.adm-kpi{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--mag);border-radius:var(--r);padding:16px;box-shadow:var(--shadow)}
.adm-kpi:nth-child(2){border-top-color:var(--vio)}.adm-kpi:nth-child(3){border-top-color:var(--or)}.adm-kpi:nth-child(4){border-top-color:var(--tq)}.adm-kpi:nth-child(5){border-top-color:var(--sun)}
.adm-kpi b{display:block;font-family:var(--display-wide);font-size:clamp(30px,3vw,42px);line-height:1}
.adm-kpi span{display:block;font-weight:600;margin-top:8px}
.adm-kpi small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.feed{list-style:none;margin:0;padding:0}
.feed li{display:grid;grid-template-columns:128px minmax(0,1fr);gap:2px 12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.feed li:last-child{border-bottom:0}
.feed time{color:var(--muted);font-size:12px;padding-top:2px}
@media (max-width:640px){.feed li{grid-template-columns:1fr}}
.tablewrap select{width:auto;min-width:150px;padding:6px 8px}

/* ================= Celular: menu ☰ ================= */
.hamb,.aba-atual{display:none}
.hamb{width:48px;height:48px;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);cursor:pointer}
.hamb span{display:block;width:20px;height:2.5px;border-radius:2px;background:currentColor}
.menu-mob{position:fixed;inset:0 0 0 auto;width:min(400px,100%);max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;background:#FFC301;color:#040606;overflow:hidden auto}
.menu-mob[open]{display:flex;flex-direction:column}
.menu-mob::backdrop{background:rgba(4,6,6,.55)}
.mm-head{display:flex;justify-content:space-between;align-items:center;padding:14px 14px 6px 22px}
.mm-brand{font-family:var(--display-wide);font-weight:800;font-size:20px;color:#EA1265}
.mm-x{width:48px;height:48px;display:grid;place-items:center;border:0;border-radius:var(--r-sm);background:rgba(255,255,255,.6);color:#040606;cursor:pointer}
.mm-nav{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px;padding:10px 12px}
.mm-nav button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:10px 12px;border:0;border-radius:var(--r-sm);background:transparent;color:#040606;font-family:var(--display);font-size:24px;font-weight:800;line-height:1.1;text-align:left;cursor:pointer}
.mm-nav button::after{content:"→";font-family:'Figtree',system-ui,sans-serif;font-size:18px;opacity:.45}
.mm-nav button.sub{min-height:46px;padding-left:30px;font-family:'Figtree',system-ui,sans-serif;font-size:16px;font-weight:700;color:#3A3326}
.mm-nav button[aria-current="page"]{background:#040606;color:#FFC301}
.mm-nav button[aria-current="page"]::after{opacity:1}
.mm-fx{position:absolute;right:-24px;bottom:150px;width:190px;height:190px;pointer-events:none;z-index:0}
.mm-foot{position:relative;z-index:1;display:grid;gap:10px;margin-top:auto;padding:18px 22px calc(22px + env(safe-area-inset-bottom,0px));border-top:2px solid rgba(4,6,6,.12)}
.mm-user{margin:0 0 4px;font-size:14px;line-height:1.4;color:#3A3326}
.mm-user:empty{display:none}
.mm-user b{display:block;font-size:16px;color:#040606}
.mm-foot .btn{width:100%;min-height:50px}
.mm-foot .btn.ghost{background:rgba(255,255,255,.6);border-color:rgba(4,6,6,.2);color:#040606}
.mm-foot #mmSair{background:#040606;color:#FFC301}
@media (max-width:760px){
  .tabsbar nav,.tabsbar #sairBtn,.tabsbar #themeBtn{display:none!important}
  .hamb{display:inline-flex}
  .aba-atual{display:block;flex:1;min-width:0;font-family:var(--display);font-weight:800;font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;padding:12px 0}
}

/* ================= Celular e telas de toque: alvos de 44px e campos sem zoom ================= */
@media (max-width:760px),(pointer:coarse){
  .btn,.btn.small{min-height:44px}
  .btn.small{padding:8px 14px}
  .chip{min-height:40px;padding:8px 14px}
  .pw-ver{min-height:40px;padding:8px 10px}
  .subnav button{min-height:44px}
  details.more summary{padding:8px 0}
  .auth-ti a{display:inline-block;padding:10px 6px;margin:-10px -6px}
  .check input{width:20px;height:20px;flex:none}
  /* 16px: abaixo disso o iPhone dá zoom no campo ao tocar */
  input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],input[type=date],select,textarea{font-size:16px;min-height:46px}
}
@media (max-width:640px){
  main .tablewrap td > *{grid-column:2} /* segundo texto da célula fica na coluna do valor, não embaixo do rótulo */
  .subnav{display:grid;grid-template-columns:1fr 1fr;overflow:visible}
  .op-head svg{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
  .op-head-in{position:relative;left:auto;right:auto;top:auto;padding:16px 16px 20px}
}
