:root{--azul:#1F4E78;--azul2:#2A78D6;--bg:#F3F6FA;--card:#fff;--tx:#18222d;--mut:#5d6b7a;--bd:#d9e0e8;--ok:#0c7a3d;--okbg:#dff3e6;--bad:#b3261e;--badbg:#fde4e2;--warn:#8a6100;--warnbg:#fff1c9;--gray:#555;--graybg:#e8ebef;--nd:#6a3fb5;--ndbg:#ece4fa}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#10161d;--card:#18212b;--tx:#e8eef5;--mut:#9aa8b8;--bd:#2b3846;--okbg:#12361f;--ok:#6fdc9a;--badbg:#431a17;--bad:#ff9b94;--warnbg:#41330a;--warn:#ffd36a;--graybg:#26303b;--gray:#bcc6d1;--ndbg:#2b2147;--nd:#c9b3ff}}
*{box-sizing:border-box}
html,body{margin:0}
body{font:15px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--tx);padding-bottom:78px}
button,input,select{font:inherit;color:inherit}
.top{position:sticky;top:0;z-index:20;background:var(--azul);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top))}
.brand{display:flex;gap:10px;align-items:center}.brand .logo{font-size:26px}.brand b{letter-spacing:.5px}.brand small{display:block;opacity:.8;font-size:12px}
.top-actions{display:flex;gap:6px}
button.ghost{background:rgba(255,255,255,.14);border:0;color:#fff;border-radius:8px;padding:8px 12px;cursor:pointer}
.banner{background:var(--warnbg);color:var(--warn);padding:8px 14px;font-size:13px;text-align:center}
.tabs{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:var(--card);border-top:1px solid var(--bd);padding-bottom:env(safe-area-inset-bottom)}
.tabs button{flex:1;background:none;border:0;padding:8px 2px 6px;display:flex;flex-direction:column;align-items:center;gap:1px;font-size:20px;color:var(--mut);cursor:pointer}
.tabs button span{font-size:11px}.tabs button.on{color:var(--azul2);font-weight:700}
@media (min-width:820px){body{padding-bottom:0}.tabs{position:sticky;top:56px;bottom:auto;border-top:0;border-bottom:1px solid var(--bd);justify-content:center}.tabs button{flex:0 0 120px;flex-direction:row;gap:6px;justify-content:center;font-size:16px}.tabs button span{font-size:14px}}
main{max-width:1100px;margin:0 auto;padding:14px}
.search{display:flex;gap:8px;position:sticky;top:56px;z-index:5;padding:2px 0 10px;background:var(--bg)}
@media (min-width:820px){.search{top:104px}}
.search input{flex:1;font-size:18px;padding:14px;border:2px solid var(--azul2);border-radius:12px;background:var(--card);min-width:0}
.search button{border:0;background:var(--azul2);color:#fff;border-radius:12px;padding:0 16px;font-size:20px}
.hint{color:var(--mut);font-size:13px;margin:4px 2px 10px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:12px;margin-bottom:10px}
.card h3{margin:0 0 4px;font-size:18px;word-break:break-all}
.row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600;background:var(--graybg);color:var(--gray)}
.chip.ok{background:var(--okbg);color:var(--ok)}.chip.bad{background:var(--badbg);color:var(--bad)}.chip.warn{background:var(--warnbg);color:var(--warn)}.chip.nd{background:var(--ndbg);color:var(--nd)}.chip.azul{background:#dbe9fb;color:#17406e}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .chip.azul{background:#1b3556;color:#a9cdfa}}
.addr{border-top:1px dashed var(--bd);padding:8px 0;display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center}
.addr b{font-size:15px}.addr .sub{color:var(--mut);font-size:13px;grid-column:1/-1}
.addr .acts{display:flex;gap:6px}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}
@media (min-width:820px){.kpis{grid-template-columns:repeat(5,1fr)}}
.kpi{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:12px}.kpi small{color:var(--mut)}.kpi div{font-size:26px;font-weight:700;color:var(--azul2)}
.sec{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:12px;margin-bottom:12px}
.sec h3{margin:0 0 8px;font-size:15px}
.bar{display:grid;grid-template-columns:minmax(90px,38%) 1fr 54px;gap:8px;align-items:center;margin:4px 0;font-size:13px}
.bar .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar .trk{background:var(--graybg);border-radius:6px;height:14px;overflow:hidden}.bar .fil{height:100%;background:var(--azul2);border-radius:6px}.bar .fil.nd{background:#8a63d2}.bar .fil.ok{background:#1aa352}.bar .fil.bad{background:#d03b3b}.bar .fil.warn{background:#fab219}.bar .num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.filters{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:10px}
@media (min-width:820px){.filters{grid-template-columns:repeat(6,1fr)}}
.filters select,.filters input,.f input,.f select{width:100%;padding:9px;border:1px solid var(--bd);border-radius:10px;background:var(--card)}
.tblwrap{overflow:auto;border:1px solid var(--bd);border-radius:12px;background:var(--card)}
table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}
th{position:sticky;top:0;background:var(--azul);color:#fff;text-align:left;padding:8px 10px;font-weight:600}
td{padding:7px 10px;border-top:1px solid var(--bd)}
tr:nth-child(even) td{background:rgba(127,127,127,.06)}
.pager{display:flex;justify-content:space-between;align-items:center;margin:10px 0;color:var(--mut);font-size:13px;gap:8px;flex-wrap:wrap}
.btn{border:1px solid var(--bd);background:var(--card);border-radius:10px;padding:8px 12px;cursor:pointer}
.btn.pri{background:var(--azul2);color:#fff;border-color:var(--azul2)}.btn.red{color:var(--bad);border-color:var(--bad)}.btn.sm{padding:4px 9px;font-size:13px}
.btn:disabled{opacity:.4}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:50;display:flex;align-items:flex-end;justify-content:center}
@media (min-width:820px){.modal{align-items:center}}
.sheet{background:var(--card);width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px}
@media (min-width:820px){.sheet{border-radius:18px}}
.sheet h2{margin:0 0 10px;font-size:18px}
.f{display:grid;gap:4px;margin-bottom:9px}.f label{font-size:12px;color:var(--mut)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:92px;background:#222;color:#fff;padding:10px 16px;border-radius:10px;z-index:60;max-width:90vw}
.toast.err{background:var(--bad);color:#fff}
.hist{border-bottom:1px solid var(--bd);padding:8px 0;font-size:13px}.hist b{font-size:14px}.hist .d{color:var(--mut)}
.empty{text-align:center;color:var(--mut);padding:28px 8px}
.list-edit{display:flex;flex-wrap:wrap;gap:6px}.list-edit .chip{padding:4px 6px 4px 10px}.list-edit .chip button{border:0;background:none;color:inherit;cursor:pointer;font-size:14px;padding:0 4px}
hr{border:0;border-top:1px solid var(--bd);margin:12px 0}
[hidden]{display:none!important}
.search input::-webkit-search-cancel-button{display:none}
.bar .lbl{white-space:normal;overflow:visible;line-height:1.2}
.card.obs{border:2px solid #d03b3b;background:linear-gradient(0deg,rgba(208,59,59,.07),rgba(208,59,59,.07)),var(--card)}
.card.obs h3{color:#d03b3b}
.obsbox{background:#fde4e2;color:#8c1d18;border-left:4px solid #d03b3b;border-radius:8px;padding:8px 10px;margin:6px 0}
.obsbox small{opacity:.8}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .obsbox{background:#431a17;color:#ffb3ad}}
tr.obsrow td{background:rgba(208,59,59,.14)!important}
tr.obsrow td:first-child{border-left:4px solid #d03b3b}
.obstxt{color:#d03b3b;font-weight:600;white-space:normal;display:inline-block;min-width:180px}
.kpi-obs div{color:#d03b3b}
textarea{font:inherit;color:inherit;width:100%}
.filters3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.filters3 select{width:100%;padding:9px;border:1px solid var(--bd);border-radius:10px;background:var(--card)}
@media (max-width:520px){.filters3{grid-template-columns:1fr}}

/* ===== v2: fundo, créditos, splash, layout desktop, gráficos ===== */
:root{--fundo:url(bg.jpg);--fundopos:center;--htop:60px;--tabsh:0px}
body::before{content:"";position:fixed;inset:0;background:var(--fundo) var(--fundopos)/cover no-repeat;opacity:.16;z-index:-1;pointer-events:none}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body::before{opacity:.07}}
.top{display:block;padding:0}
.toprow{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 6px;padding-top:max(10px,env(safe-area-inset-top))}
.credit{font-size:11px;opacity:.92;padding:0 14px 7px;line-height:1.25}
.credit b{font-weight:700}
.tabs{top:auto}
@media (min-width:820px){.tabs{top:var(--htop)}.search{top:calc(var(--htop) + var(--tabsh))}}
@media (max-width:819px){.search{top:var(--htop)}}
.foot{text-align:center;font-size:12px;color:var(--mut);padding:8px 12px 18px;max-width:1100px;margin:0 auto}
.hero{background:linear-gradient(90deg,rgba(12,38,72,.78),rgba(12,38,72,.35)),var(--fundo) center/cover;color:#fff;border-radius:16px;padding:18px 18px;margin-bottom:12px;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.hero h1{margin:0;font-size:22px}.hero p{margin:4px 0 0;opacity:.95;font-size:14px}
.splash{position:fixed;inset:0;z-index:100;background:linear-gradient(rgba(14,40,76,.12),rgba(14,40,76,.3)),var(--fundo) center/cover;display:flex;align-items:center;justify-content:center;padding:16px;transition:opacity .5s}
.splash.out{opacity:0;pointer-events:none}
.glass{background:rgba(20,36,66,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.28);border-radius:22px;padding:26px 24px;max-width:460px;width:100%;color:#fff;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.glass h1{margin:6px 0 2px;font-size:25px;letter-spacing:.3px}.glass h2{margin:0 0 10px;font-size:15px;font-weight:600;opacity:.95}
.glass .s-ico{font-size:40px}.glass .s-sub{opacity:.9;font-size:14px;margin:0 0 14px}
.glass .s-credit{font-size:13px;border-top:1px solid rgba(255,255,255,.3);padding-top:12px;margin:0 0 16px;line-height:1.5}
.logoimg{max-height:64px;max-width:70%;margin-bottom:6px}
.btn.big{padding:12px 22px;font-size:16px;border-radius:12px}
@media (min-width:820px){main{max-width:1560px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:12px;align-items:start}.cards .card{margin-bottom:0}.filters{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.tblwrap{max-height:calc(100vh - var(--htop) - var(--tabsh) - 230px)}}
.filters{grid-template-columns:repeat(2,1fr)}
@media (min-width:820px){.filters{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}
table.grid{font-size:13px}
table.grid th{position:sticky;top:0;z-index:2}
table.grid td.w{white-space:normal;min-width:110px}table.grid td.w2{white-space:normal;min-width:190px}
table.grid td.c,table.grid th.c{text-align:center}
table.grid th.pn,table.grid td.pn{position:sticky;left:0;z-index:1;font-weight:700;background:var(--card);border-right:2px solid var(--bd)}
table.grid th.pn{z-index:3;background:var(--azul)}
table.grid td.obs,table.grid th.obs{white-space:normal;min-width:220px}
table.grid tbody tr:hover td{background:rgba(42,120,214,.12)}
table.grid td.p .chip,table.grid td.s .chip{white-space:nowrap}
.warnbox{background:var(--warnbg);color:var(--warn);border-radius:8px;padding:8px 10px;margin:8px 0;font-size:13px}
.chartrow{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:820px){.chartrow{grid-template-columns:1.15fr 1fr;align-items:start}}
.piebox{display:flex;flex-direction:column;align-items:center;gap:8px}
@media (min-width:820px){.piebox{flex-direction:row;align-items:flex-start;justify-content:center}}
.pie{width:210px;height:210px;flex:0 0 auto}.pie .pt{font:700 24px system-ui;fill:var(--tx)}.pie .ps{font:12px system-ui;fill:var(--mut)}
.legend{max-height:230px;overflow:auto;font-size:12.5px;min-width:160px;flex:1;width:100%}
.legend div{display:flex;align-items:center;gap:6px;padding:2px 0}.legend span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend b{font-variant-numeric:tabular-nums}
.dot{display:inline-block;width:11px;height:11px;border-radius:3px;flex:0 0 auto;margin-right:6px;vertical-align:-1px}.legend .dot{margin-right:0}
.bar{grid-template-columns:minmax(120px,42%) 1fr 56px}
.bar .lbl{display:flex;align-items:center;white-space:normal;line-height:1.2}

/* v3: colunas estreitas, descrição, limpar filtros */
table.grid td.n,table.grid th.n{width:1%;min-width:50px;padding-left:6px;padding-right:6px;white-space:nowrap;word-break:normal;text-align:center}
table.grid td.pos,table.grid th.pos{max-width:96px;white-space:normal;overflow-wrap:anywhere}
table.grid th.n{font-size:12px;line-height:1.15}
.card .desc{font-size:13.5px;color:var(--mut);margin:-2px 0 6px;font-weight:600}

/* ===== v4: layout compacto ===== */
@media (max-width:819px){:root{--fundopos:center}}
.splash{background-position:var(--fundopos)}
select,option{background:var(--card);color:var(--tx)}
select{color-scheme:light dark}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) select{color-scheme:dark}}
body{font-size:14px;line-height:1.3}
.top{flex-wrap:wrap;gap:0 12px;align-items:center}
.toprow{flex:1 1 auto;padding:6px 12px 2px}
.brand .logo{font-size:20px}.brand small{font-size:11px;display:inline;margin-left:8px}
.brand{gap:7px}.top-actions button.ghost{padding:5px 10px}
.credit{font-size:10.5px;padding:0 12px 5px;flex:1 1 100%;opacity:.85}
@media (min-width:820px){.top{flex-wrap:nowrap}.toprow{padding:6px 14px}.credit{flex:0 0 auto;padding:0 14px 0 0;font-size:11.5px;text-align:right;order:2}.toprow{order:1}}
.banner{padding:4px 10px;font-size:12px}
.tabs button{padding:5px 2px 4px;font-size:18px}.tabs button span{font-size:10.5px}
@media (min-width:820px){.tabs button{flex:0 0 108px;font-size:14px;padding:6px 2px}}
main{padding:8px 12px;max-width:1560px}
.hero{padding:7px 14px;margin-bottom:6px;border-radius:10px}.hero h1{font-size:15px}.hero p{display:none}
.search{padding:0 0 6px;gap:6px}.search input{font-size:16px;padding:8px 12px;border-radius:10px}.search button{padding:0 14px;font-size:16px;border-radius:10px}
.hint{font-size:12px;margin:2px 2px 6px}
.filters,.filters3{gap:6px;margin-bottom:6px}
.filters select,.filters input,.filters3 select,.f input,.f select{padding:6px 8px;font-size:13px;border-radius:8px}
.btn{padding:5px 10px;font-size:13px;border-radius:8px}.btn.sm{padding:3px 8px;font-size:12px}
.pager{margin:6px 0;font-size:12px}
.card{padding:8px 10px;border-radius:10px;margin-bottom:8px}
.card h3{font-size:15px;margin:0 0 2px}
.card .desc{font-size:12.5px;margin:0 0 3px}
.addr{padding:4px 0;gap:1px 6px}.addr b{font-size:13.5px}.addr .sub{font-size:12px;gap:4px}
.chip{padding:1px 7px;font-size:11px}
@media (min-width:820px){.cards{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:8px}.cards .card{margin-bottom:0}}
table{font-size:12.5px;line-height:1.2}
th{padding:5px 8px;font-size:12px}td{padding:3px 8px}
table.grid td.w2{min-width:150px;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.grid td.w{min-width:80px}
.tblwrap{border-radius:10px}
.kpis{gap:6px;margin-bottom:8px}.kpi{padding:7px 10px;border-radius:10px}.kpi div{font-size:20px}
.sec{padding:8px 10px;margin-bottom:8px;border-radius:10px}
.pie{width:170px;height:170px}.legend{max-height:190px}
.bar{margin:2px 0;font-size:12.5px}.bar .trk{height:11px}
.foot{padding:4px 10px 10px;font-size:11px}
body{padding-bottom:58px}@media (min-width:820px){body{padding-bottom:0}}
/* usuários (painel) */
.usugrid{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:900px){.usugrid{grid-template-columns:330px 1fr;align-items:start}}
.usugrid h3{margin:0 0 8px;font-size:15px}
.ufrm .f{margin-bottom:7px}.ufrm .f label{font-size:12px;font-weight:700;color:var(--tx)}
.badge{display:inline-block;padding:1px 8px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.3px;color:#fff;background:#6b7683}
.badge.adm{background:#222b36}.badge.edi{background:#2a78d6}.badge.pen{background:#b07d00}.badge.blo{background:#b3261e}
.ib{border:1px solid var(--bd);background:var(--card);border-radius:7px;padding:3px 8px;cursor:pointer;font-size:14px;line-height:1}
.ib.red{color:var(--bad);border-color:var(--bad)}
.hist label.sel{display:flex;gap:8px;align-items:flex-start}.hist input[type=checkbox]{margin-top:3px}

/* v4: consulta compacta */
.filters3{grid-template-columns:repeat(3,1fr) auto;align-items:center}
@media (max-width:520px){.filters3{grid-template-columns:1fr 1fr}.filters3 .btn{grid-column:1/-1}}
.card.cp{padding:6px 10px}
.card.cp .ch{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-bottom:2px}
.card.cp .ch h3{margin:0;font-size:15px}.card.cp .ch .desc{font-size:12.5px;color:var(--mut);font-weight:600;flex:1;min-width:80px}
.ad{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;padding:3px 0;border-top:1px dashed var(--bd);font-size:12.5px}
.ad .loc{font-size:13px}.ad .mm,.ad .st{display:inline-flex;flex-wrap:wrap;gap:3px;align-items:center}.ad .kk{color:var(--mut)}
.ad .btn{margin-left:auto;padding:2px 8px;font-size:12px}
.ad .chip{padding:1px 6px;font-size:11.5px}
@media (min-width:820px){.cards{grid-template-columns:repeat(auto-fill,minmax(560px,1fr))}}

/* v4: usuários, selects, histórico */
.usu{display:grid;grid-template-columns:340px 1fr;gap:14px;align-items:start}
@media (max-width:820px){.usu{grid-template-columns:1fr}}
.usu-form .f{margin-bottom:8px}.usu-form label{font-weight:700;font-size:12.5px}
.usu-form input,.usu-form select,.f input,.f select{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid var(--bd);border-radius:8px;background:var(--card);color:var(--tx)}
.btn.ok{background:#1AA352;color:#fff;border-color:#1AA352}.btn.red{background:#d03b3b;color:#fff;border-color:#d03b3b}
.nivel{display:inline-block;padding:2px 9px;border-radius:6px;font-size:11.5px;font-weight:700;color:#fff;background:#6b7785}
.nivel.adm{background:#1f2937}.nivel.edt{background:#2a78d6}.nivel.pen{background:#C98A00}.nivel.blq{background:#d03b3b}
td.acoes{white-space:nowrap}.ib{border:1px solid var(--bd);background:var(--card);color:var(--tx);border-radius:8px;padding:3px 8px;margin-left:4px;cursor:pointer}.ib.red{color:#d03b3b;border-color:#d03b3b}
table.usu-tab th,table.usu-tab td{padding:7px 9px}
select,select option{background:var(--card);color:var(--tx);opacity:1}
select:disabled{opacity:1}
.hist .hsel{margin-right:6px}

/* v5: sinalização, abas */
.tabs{overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:0 0 auto}
.flag{border:0;background:transparent;cursor:pointer;font-size:14px;padding:0 4px;opacity:.55}.flag:hover{opacity:1}
.card.flg,.card.cp:has(.flgbox){border:2px solid #E08A00}
.flgbox{background:rgba(224,138,0,.14);border-left:4px solid #E08A00;border-radius:6px;padding:5px 8px;margin:4px 0;font-size:12.5px}
tr.flgrow td{background:rgba(224,138,0,.16)!important}
table.grid td.pn .pnt{margin-right:2px}
td.acoes{white-space:nowrap}

/* v6: créditos centralizados (uma vez só), textarea, bandeira por endereço */
textarea,.f textarea{box-sizing:border-box;padding:9px 10px;border:1px solid var(--bd);border-radius:8px;background:var(--card);color:var(--tx);font:inherit;width:100%}
textarea::placeholder,input::placeholder{color:var(--mut);opacity:.8}
.toprow{flex-wrap:wrap}
.toprow .credit{flex:1 1 auto;order:0;text-align:center;padding:0 8px;margin:0;font-size:12px}
@media (max-width:819px){.toprow .credit{order:5;flex:1 1 100%;font-size:10.5px;padding:2px 0 0}}
.ad .flag{margin-left:auto}.ad .flag + .btn{margin-left:0}
.ad.flgad{background:rgba(224,138,0,.16);border-radius:6px;padding-left:4px}
/* v7: imagem de fundo mais presente em todas as abas */
body::before{opacity:.42;background-attachment:fixed}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body::before{opacity:.3}}
.search{background:transparent}
.card,.sec,.kpi{background:color-mix(in srgb,var(--card) 90%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
/* v8: flowracks */
.flbox{margin:6px 0;border:1px solid var(--bd);border-radius:10px;padding:8px 10px}.flbox summary{cursor:pointer}.flbox p{margin:8px 0;word-break:break-word;line-height:1.5}
#x_esterr:not([hidden]){background:var(--badbg);padding:8px 10px;border-radius:8px;margin:4px 0}
/* v9: guia nível/posição */
.guiabtn{width:100%;text-align:left;font-size:13px;padding:10px;border-color:var(--azul2);color:var(--azul2)}
.guiaov{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:10px}
.guiabox{background:var(--card);color:var(--tx);width:100%;max-width:780px;max-height:96vh;overflow:auto;border-radius:16px;padding:14px 16px}
.guiahd{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.guiabox h3{margin:6px 0}.guiabox img{width:100%;height:auto;border-radius:10px;background:#fff;display:block;margin:6px 0}
.guiabox ul{margin:8px 0;padding-left:20px;line-height:1.55}
.guianav{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:10px 0}.guianav .btn[disabled]{opacity:.4}
.dots{display:flex;gap:7px}.dots i{width:10px;height:10px;border-radius:50%;background:var(--bd);cursor:pointer}.dots i.on{background:var(--azul2)}
.guiabox a{color:#6fb0ff;font-weight:600}
/* v10: aviso WhatsApp */
.zapbar{position:fixed;left:50%;transform:translateX(-50%);bottom:84px;z-index:65;display:flex;align-items:center;gap:10px;background:var(--card);color:var(--tx);border:2px solid #25d366;border-radius:14px;padding:10px 12px;box-shadow:0 6px 24px rgba(0,0,0,.4);max-width:94vw}
.zapbar[hidden]{display:none}.zapbar .btn.pri{background:#25d366;border-color:#25d366;color:#06310f;font-weight:700}
@media (max-width:520px){.zapbar{flex-wrap:wrap;justify-content:center;width:94vw}}
/* v11: fotos */
.flag.foto{margin-left:4px}.flag.foto.vazio{opacity:.45;font-size:12px}
.fotogr{width:100%;max-height:60vh;object-fit:contain;border-radius:10px;background:#fff;display:block;margin:6px 0}
/* v12: flowracks gráficos + títulos editáveis + exportar + whatsapp */
.fltab td,.fltab th{text-align:center}.fltab tr.tot td{background:rgba(31,111,178,.12)}
.vcols{display:flex;gap:28px;align-items:flex-end;justify-content:center;padding:10px 6px 4px;min-height:220px;flex-wrap:wrap}
.vgrp{display:flex;flex-direction:column;align-items:center;gap:6px}
.vbars{display:flex;gap:8px;align-items:flex-end;height:190px}
.vbar{width:42px;min-height:4px;border-radius:6px 6px 0 0;position:relative;transition:height .4s}
.vbar b{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:12px;color:var(--txt,inherit)}
.legend.row{display:flex;gap:16px;justify-content:center;margin-top:8px}
.tit-ed{padding:2px 8px;margin-left:6px;font-size:12px;vertical-align:middle;opacity:.75}
.btn.zap,.zapbtn{background:#1FAF55;color:#fff;border-color:#1FAF55}
.exp-row{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}
a.btn{text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.flpred{border-top:1px solid var(--bd);padding:8px 0}.flpred h4{margin:4px 0 6px}
.flnums{display:inline-flex;flex-wrap:wrap;gap:4px}.flnums .chip{margin:0}
tr.reprow td{background:var(--warnbg)}
.camwrap{background:#000;border-radius:10px;overflow:hidden;display:flex;justify-content:center}
.camwrap video{width:100%;max-height:60vh;object-fit:contain;display:block}
.semfoto{display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow:auto}
.sfi{display:flex;gap:8px;align-items:center;padding:4px 6px;border-bottom:1px solid var(--bd)}
.mmarca{border:0;border-radius:8px;padding:1px 6px;font-size:11px;font-weight:700;margin-left:4px;cursor:pointer}
.mmarca.cg{background:#dbe9ff;color:#1F4E78}.mmarca.cy{background:#ffe3d6;color:#9a3412}.mmarca:disabled{cursor:default}
/* v13: campos sempre legíveis (tema claro e escuro) */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select,textarea{background:var(--card);color:var(--tx);border:1px solid var(--bd);border-radius:10px;padding:8px 10px;font:inherit}
input::placeholder,textarea::placeholder{color:var(--mut);opacity:1}
input:focus,select:focus,textarea:focus{outline:2px solid var(--azul2);outline-offset:1px}
/* v14: consulta limpa — endereço em uma linha, detalhes na seta */
details.adr{border-top:1px solid var(--bd);padding:2px 0}
details.adr>summary{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(52px,auto)) 1fr auto auto;gap:4px 14px;align-items:end;padding:7px 4px;cursor:pointer;border-radius:8px}
details.adr>summary::-webkit-details-marker{display:none}
details.adr>summary:hover{background:rgba(127,140,160,.08)}
.kv{display:flex;flex-direction:column;font-weight:700;font-size:14.5px;line-height:1.15;white-space:nowrap}
.kv small{font-weight:500;font-size:10.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.kvm{white-space:normal;color:var(--azul2)}.ndt{color:var(--nd);font-style:normal}
.kvf{align-self:center}
.chev{align-self:center;font-size:22px;color:var(--mut);transition:transform .2s;padding:0 4px}
details.adr[open] .chev{transform:rotate(90deg)}
.adet{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:4px 6px 10px;font-size:13.5px}
.adet .acts{margin-left:auto;display:flex;gap:6px}
details.adr.flgad>summary{background:rgba(208,59,59,.08)}
@media (max-width:640px){details.adr>summary{grid-template-columns:repeat(3,minmax(0,1fr)) auto;}
 .kvm{grid-column:1/-2}.kvf{grid-column:auto}.chev{grid-row:1/3;grid-column:4}}
.kvf{align-self:center;opacity:.45}.kvf.on,.kvf:hover{opacity:1}
details.adr>summary{grid-template-columns:52px minmax(64px,140px) 74px 50px 62px 1fr 28px 22px}
.kv{white-space:normal;overflow-wrap:anywhere}
@media (max-width:640px){details.adr>summary{grid-template-columns:repeat(3,minmax(0,1fr)) 26px}.kvf{grid-column:4;grid-row:3}}
@media (min-width:641px){details.adr>summary{grid-template-columns:44px 112px 60px 42px 56px minmax(0,1fr) 26px 20px;gap:4px 10px}}
.kv small{white-space:nowrap}
details.adr>summary{align-items:start}.chev,.kvf{align-self:center}
@media (min-width:641px){details.adr>summary{grid-template-columns:44px 112px 68px 42px 58px minmax(0,1fr) 26px 20px}}
/* v15: observação = obs. do admin (⚠) ou última alteração (✎); coluna PN fixa sem sobreposição */
.alttxt{color:var(--mut);font-size:12.5px;line-height:1.3}
td.obs{min-width:220px;max-width:380px;white-space:normal}
table.grid td.pn{background:var(--card)!important;z-index:2}table.grid th.pn{z-index:4}
table.grid tr.obsrow td.pn{background:color-mix(in srgb,var(--badbg) 55%,var(--card))!important}
/* coluna Part Number fixa sempre opaca (não deixa o texto de trás aparecer) */
table.grid tbody tr:hover td.pn{background:color-mix(in srgb,#2a78d6 14%,var(--card))}
table.grid tr.flgrow td.pn{background:color-mix(in srgb,#e08a00 18%,var(--card))!important}
table.grid tr.obsrow td.pn{background:color-mix(in srgb,#d03b3b 16%,var(--card))!important}
table.grid td.pn{z-index:3}
.alttxt{color:var(--mut);font-size:12.5px}
.padronizado{outline:2px solid #1AA352!important;transition:outline .3s}
/* painel do histórico */
.htit{margin:4px 0 10px;font-size:18px}
.hkpi{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:12px}
.hk{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:12px 10px;text-align:center;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.hk b{font-size:24px;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hk span{font-size:12px;color:var(--mut)}
.hk.k-ok b{color:#1AA352}.hk.k-warn b{color:#E08A00}.hk.k-bad b{color:#D03B3B}.hk.k-az b{color:#2A78D6}
.hk.k-top{background:#1F4E78;border-color:#1F4E78}.hk.k-top b{color:#fff;font-size:17px}.hk.k-top span{color:#cfe0f2}
.hdash{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.hcard{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:12px}.hcard h3{margin:0 0 10px;font-size:14px}
.hb{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;align-items:center;gap:8px;margin:5px 0;font-size:13px}
.hb small{grid-column:1/-1;color:var(--mut);font-size:11px;margin-top:-4px}
.hbk{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbt{background:color-mix(in srgb,var(--bd) 60%,transparent);border-radius:6px;height:12px;overflow:hidden}
.hbf{display:block;height:100%;background:#1AA352;border-radius:6px}.hbf.warn{background:#E0A100}.hbf.azul{background:#2A78D6}
.hdias{display:flex;align-items:flex-end;gap:4px;height:150px;padding-top:14px}.hd{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.hd span{width:100%;background:#2A78D6;border-radius:4px 4px 0 0;min-height:2px}.hd small{font-size:10px;color:var(--mut)}.hd em{font-style:normal;font-size:10px;color:var(--mut);margin-top:3px}
.hhoras .hd span{background:#1F4E78}.hhoras .hd em{font-size:9px}
.hper.on{background:#2A78D6;color:#fff;border-color:#2A78D6}.hfil input[type=date]{margin-left:4px}
.htab td{vertical-align:top}.hdet{font-size:12px;min-width:220px}.hdet s{opacity:.65}.chip.azul{background:#dbe9fb;color:#1F4E78}

/* tema escolhido pelo usuário */
:root[data-theme=dark]{--bg:#10161d;--card:#18212b;--tx:#e8eef5;--mut:#9aa8b8;--bd:#2b3846;--okbg:#12361f;--ok:#6fdc9a;--badbg:#431a17;--bad:#ff9b94;--warnbg:#41330a;--warn:#ffd36a;--graybg:#26303b;--gray:#bcc6d1;--ndbg:#2b2147;--nd:#c9b3ff}
:root[data-theme=dark] .chip.azul{background:#1b3556;color:#a9cdfa}
:root[data-theme=dark] .obsbox{background:#431a17;color:#ffb3ad}
:root[data-theme=dark] body::before{opacity:.07}
:root[data-theme=dark] select{color-scheme:dark}
:root[data-theme=dark] body::before{opacity:.3}
:root[data-theme=light] select{color-scheme:light}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}
.themebtn{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;border-radius:999px;padding:5px 11px;cursor:pointer;font-size:13px;white-space:nowrap}
.splash .themebtn{position:fixed;top:14px;right:14px;z-index:5;background:rgba(0,0,0,.35)}

/* ===== v9: layout compacto, contraste e tema claro ===== */
.top{box-shadow:0 2px 10px rgba(0,0,0,.18)}
.toprow{padding:5px 14px!important}.brand{font-size:15px}
.top-actions button,.top-actions .themebtn{padding:4px 10px!important;font-size:13px!important;border-radius:8px}
.tabs button{padding:4px 2px!important}
@media (min-width:820px){.tabs button{flex:0 0 auto!important;padding:5px 12px!important;font-size:13.5px!important;border-radius:8px;margin:3px 1px}.tabs button.on{background:color-mix(in srgb,var(--azul2) 14%,transparent)}}
main{padding-top:8px!important;padding-bottom:6px!important}
/* barra de filtros do Mapeamento */
.plbar{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:8px;margin-bottom:8px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.plf{display:grid;grid-template-columns:minmax(200px,2fr) repeat(auto-fill,minmax(140px,1fr));gap:6px;align-items:center}
.plf input,.plf select{width:100%;padding:6px 8px;font-size:13px;border:1px solid var(--bd);border-radius:8px;background:var(--card);color:var(--tx)}
.pltools{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end;margin-top:6px}
.pltools .cnt{margin-right:auto;font-size:12.5px;color:var(--mut);font-weight:600}
.pltools .btn,.plf .btn{padding:5px 10px;font-size:12.5px}
.pld{position:relative}.pld .btn{width:100%}
.plmenu{position:absolute;right:0;top:calc(100% + 4px);z-index:30;background:var(--card);color:var(--tx);border:1px solid var(--bd);border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px rgba(0,0,0,.2);min-width:210px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.plmenu label{display:flex;gap:8px;align-items:center;cursor:pointer}.plmenu small{color:var(--mut);font-size:11px}
/* tabela ocupa a tela e paginação logo abaixo, centralizada */
.tblwrap.fit{overflow:auto}
.pager.pgc{justify-content:center;gap:14px;margin:6px 0 0;font-size:12.5px}
.pager.pgc .btn{padding:5px 12px}
table.grid th,table.grid td{padding:5px 8px!important;font-size:13px}
table.grid thead th{position:sticky;top:0;z-index:2}
/* ícones da célula Part Number menores */
table.grid td.pn{white-space:nowrap}
table.grid td.pn .ib{padding:1px 5px!important;font-size:11px!important;margin-left:2px!important;border-radius:6px}
table.grid td.pn .flag{font-size:12px;padding:0 2px}
table.grid td.pn .flag.foto{font-size:12px;margin-left:3px}
/* tema claro: fundo mais suave e textos com mais destaque */
:root:not([data-theme=dark]) {--mut:#44505e;--bd:#c9d3de}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--mut:#a9b6c5}}
:root[data-theme=dark]{--mut:#a9b6c5}
body::before{opacity:.18!important}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body::before{opacity:.22!important}}
:root[data-theme=dark] body::before{opacity:.22!important}
.card,.hcard,.hk,.tblwrap,.plbar,.filters select,.filters input{background:var(--card)}
.card{box-shadow:0 1px 5px rgba(0,0,0,.08)}
.kv small{color:var(--mut)!important;font-weight:700;letter-spacing:.02em}
.kv{color:var(--tx)}
.pager,.hint,#lcnt,#cnt{text-shadow:none}
main>.pager,.filters+.pager,.cnt{background:color-mix(in srgb,var(--card) 82%,transparent);border-radius:8px;padding:3px 8px}
.search input{padding:10px 14px!important;font-size:16px!important}
@media (min-width:1100px){.toprow{flex-wrap:nowrap!important;gap:12px}.toprow .credit{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-actions{flex:0 0 auto}}
.fldet{margin:8px 0;border:1px solid var(--bd);border-radius:10px;padding:8px 12px;background:var(--card)}.fldet summary{cursor:pointer;font-weight:600;list-style:none}.fldet summary::-webkit-details-marker{display:none}.fldet[open] summary{margin-bottom:6px}
