/* Painel de balcão de obra: marrom terra, preto e branco. Amarelo chama atenção, vermelho marca perda. */
:root{
  --bg:#fff; --surface:#f7f2ed; --surface2:#efe7df; --line:#e2d6ca;
  --fg:#17120e; --muted:#6f6258; --brown:#5a3a22; --brown2:#8a5a35; --brown-soft:#d9c3ae;
  --yellow:#e0a100; --yellow-bg:#fff4d1; --red:#b3261e; --red-bg:#fde7e5;
  --hero:#2b1a0f; --hero-fg:#fff7ef; --hero-mut:#d9c3ae;
  --f-display:'Bricolage Grotesque',system-ui,sans-serif; --f-body:'DM Sans',system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.45;padding:0 16px 48px}
.wrap{max-width:1120px;margin:0 auto}
h1,h2,h3{font-family:var(--f-display);margin:0;letter-spacing:-.01em;text-wrap:balance}
h2{font-size:1.3rem;display:flex;align-items:center;gap:10px}
h2::before{content:'';width:6px;height:1.1em;background:var(--yellow);border-radius:2px}
h3{font-size:1rem}
p{margin:0}
a{color:var(--brown)}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}
.note{font-size:.82rem;margin-top:8px}

header.top{margin-top:16px;padding:22px 22px 18px;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:flex-end;justify-content:space-between;background:linear-gradient(120deg,var(--hero),#5a3a22);color:var(--hero-fg);border-radius:12px;border-bottom:5px solid var(--yellow)}
header.top h1{font-size:1.9rem;color:var(--hero-fg)}
header.top .muted{color:var(--hero-mut);margin-top:4px}
header.top a.light{color:var(--hero-fg)}
.inline{display:inline}
.linkbtn{font:inherit;background:none;border:0;color:var(--hero-fg);text-decoration:underline;cursor:pointer;padding:0}
.ctrls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.field{display:flex;flex-direction:column;gap:3px;min-width:0}
.field label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
header.top .field label{color:var(--hero-mut)}
select,input[type=date],input[type=text],input[type=email],input[type=password],input[type=url],input[type=search]{font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px;min-width:0}
header.top select,header.top input[type=date]{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:var(--hero-fg);color-scheme:dark}
header.top option{color:#17120e}
select:focus-visible,input:focus-visible,button:focus-visible,a:focus-visible,tr[tabindex]:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.switch{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid rgba(255,255,255,.25);border-radius:6px;background:rgba(255,255,255,.1);cursor:pointer;user-select:none}
.switch input{accent-color:var(--yellow)}
.apply{font:inherit;font-weight:700;background:var(--yellow);color:#17120e;border:0;border-radius:6px;padding:9px 16px;cursor:pointer}
.apply:hover{filter:brightness(.95)}
.apply.alt{background:var(--surface2);color:var(--fg)}
.js .apply[type=submit]#applyHide{display:none}

nav.tabs{display:flex;gap:4px;border-bottom:2px solid var(--fg);position:sticky;top:0;background:var(--bg);z-index:5;overflow-x:auto;margin-top:12px}
nav.tabs a{font-family:var(--f-display);font-weight:700;font-size:1rem;padding:11px 18px;color:var(--muted);text-decoration:none;border-bottom:4px solid transparent;margin-bottom:-2px;white-space:nowrap}
nav.tabs a[aria-current=page]{color:var(--fg);border-bottom-color:var(--yellow)}
nav.tabs a:hover{color:var(--fg)}
main.panel{padding-top:22px}

.grid{display:grid;gap:14px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.kpi{background:var(--surface);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0;border-top:4px solid var(--brown-soft)}
.kpi .l{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.kpi .v{font-family:var(--f-display);font-size:1.7rem;font-weight:700;overflow-wrap:anywhere}
.kpi.hero{background:linear-gradient(135deg,var(--hero),#6b4528);color:var(--hero-fg);border-top-color:var(--yellow)}
.kpi.hero .l{color:var(--hero-mut)}
.kpi.hero .v{font-size:2rem}
.chip{display:inline-flex;align-items:center;font-size:.8rem;font-weight:700;padding:1px 7px;border-radius:99px;width:max-content;background:var(--surface2);color:var(--brown)}
.chip.warn{background:var(--yellow-bg);color:var(--fg);box-shadow:inset 0 0 0 1px var(--yellow)}
.chip.bad{background:var(--red-bg);color:var(--red)}
.chip.none{background:transparent;color:var(--muted);font-weight:400;padding:1px 0}
.kpi.hero .chip{background:rgba(255,255,255,.14);color:var(--hero-fg)}
.kpi.hero .chip.warn{background:var(--yellow);color:#17120e;box-shadow:none}
.kpi.hero .chip.bad{background:var(--red);color:#fff}
.kpi.hero .chip.none{background:transparent;color:var(--hero-mut)}

.block{margin-top:30px;display:flex;flex-direction:column;gap:12px}
.block>header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;align-items:baseline}
.alert{padding:10px 14px;border-radius:6px;border-left:6px solid var(--yellow);background:var(--yellow-bg);margin-bottom:8px}
.alert.red{border-left-color:var(--red);background:var(--red-bg)}
.banner{padding:10px 14px;border-radius:6px;background:var(--surface2);border-left:6px solid var(--brown);margin-bottom:12px}
.card{background:var(--surface);border-radius:10px;padding:18px;border-left:4px solid var(--brown-soft)}
.card.form{display:flex;flex-direction:column;gap:10px;max-width:640px}
.card .row{display:flex;gap:10px;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.seg a{font-size:.85rem;padding:6px 12px;background:var(--surface);color:var(--muted);text-decoration:none}
.seg a[aria-pressed=true]{background:var(--brown);color:#fff}
.segs{display:flex;gap:10px;flex-wrap:wrap}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.searchform{margin-left:auto}
.pager{display:flex;gap:16px;align-items:center;justify-content:center;padding:8px}

.hb{display:flex;flex-direction:column;gap:7px}
.hb .r{display:grid;grid-template-columns:minmax(90px,190px) 1fr minmax(64px,auto);gap:10px;align-items:center;font-size:.9rem}
.hb .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb .bar{height:20px;background:var(--surface2);border-radius:3px;overflow:hidden}
.hb .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brown2),var(--brown));border-radius:3px}
.hb .bar i.y{background:linear-gradient(90deg,#f2c14e,var(--yellow))}
.hb .bar i.r{background:linear-gradient(90deg,#d9534a,var(--red))}
.hb .val{text-align:right}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--muted);margin-top:8px}
.legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px;background:var(--c)}
.cols{display:flex;align-items:flex-end;gap:8px;height:170px;padding-top:8px}
.cols .c{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;min-width:0}
.cols .c i{display:block;width:100%;background:var(--brown-soft);border-radius:5px 5px 0 0}
.cols .c.in i{background:linear-gradient(180deg,var(--brown2),var(--hero))}
.cols .c span,.cols .c b{font-size:.72rem}
.cols .c span{color:var(--muted)}
.cols .c b{font-weight:500}

.tw{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{padding:9px 12px;text-align:right;white-space:nowrap}
th:first-child,td:first-child{text-align:left}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#fff;background:var(--brown);font-weight:700}
tbody tr{border-top:1px solid var(--line)}
tbody.camp{border-top:1px solid var(--line)}
tr.campline{cursor:pointer}
tr.campline:hover{background:var(--surface)}
.caret::before{content:"▸";display:inline-block;width:1.1em;color:var(--brown)}
tr.campline.open .caret::before{content:"▾"}
tr.adsrow td{background:var(--surface);padding:0}
tr.adsrow .inner{padding:8px 12px 12px 30px}
.tw.nested{background:var(--bg)}
.pill{font-size:.72rem;padding:2px 8px;border-radius:99px;background:var(--surface2);color:var(--muted)}
td.bad{color:var(--red);font-weight:700}
td.warn{background:var(--yellow-bg);font-weight:700}

.cone{display:flex;flex-direction:column;align-items:center;max-width:640px;margin:0 auto}
.stage{color:#fff;text-align:center;padding:14px 10px;width:var(--w);clip-path:polygon(0 0,100% 0,calc(100% - 4%) 100%,4% 100%)}
.stage b{font-family:var(--f-display);font-size:1.7rem;display:block}
.stage small{opacity:.9}
.stage.s1{background:#3b2414}.stage.s2{background:#5a3a22}.stage.s3{background:#8a5a35}.stage.s4{background:#b9976f;color:#17120e}.stage.s5{background:#d9c3ae;color:#17120e}.stage.s6{background:#eadccd;color:#17120e}
.stage.pend{background:repeating-linear-gradient(135deg,var(--surface2) 0 8px,var(--surface) 8px 16px);color:var(--muted)}
.loss{font-size:.82rem;font-weight:700;color:#fff;background:var(--red);padding:3px 12px;margin:6px 0;border-radius:99px;text-align:center;min-height:1.6em}
.loss:empty{background:none}
.loss.warn{color:#17120e;background:var(--yellow)}
.loss.none{background:var(--surface2);color:var(--muted);font-weight:400}
.wait{border:2px dashed var(--line);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.wait .v{font-family:var(--f-display);font-size:1.5rem;color:var(--muted)}
.tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;background:var(--yellow-bg);color:var(--fg);border:1px solid var(--yellow);padding:2px 8px;border-radius:99px;width:max-content}

body.auth{display:grid;place-items:center;min-height:100vh}
.authbox{width:min(420px,100%);display:flex;flex-direction:column;gap:14px;padding:28px;background:var(--surface);border-radius:12px;border-top:5px solid var(--yellow)}
.authbox h1{color:var(--brown)}

@media (max-width:520px){.hb .r{grid-template-columns:minmax(70px,110px) 1fr 60px}header.top h1{font-size:1.4rem}}
@media (prefers-reduced-motion:no-preference){
  main.panel{animation:rise .35s ease}
  .hb .bar i{transition:width .35s ease}
  @keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}

/* chips de comparação quebram linha no celular */
.kpi .chip{white-space:normal;max-width:100%;overflow-wrap:anywhere}
.ctrls .cmpnote{align-self:center}
