/* ===== tokens ===== */
:root{
  --bg:#f3f5f9;--card:#fff;--card2:#f8fafc;--tx:#0f1b2d;--mut:#5b6b82;--bd:#e2e8f0;--bd2:#cfd8e3;
  --a:#0b7f72;--a2:#096a5f;--aSoft:#e0f5f1;--aTx:#0b6b60;
  --side1:#f3f5f8;--side2:#e9edf2;--sideTx:#3a4656;--sideMut:#6b7a8c;--sideBd:rgba(15,27,45,.09);--sideHover:rgba(15,27,45,.06);--sideOn:rgba(11,127,114,.13);--sideOnTx:#0b6b60;--sideCnt:rgba(15,27,45,.09);--sideCntTx:#2b3645;--sideStrong:#1c2735;--sideBox:rgba(15,27,45,.05);--hero1:#f5f7fa;--hero2:#dde4ec;--heroTx:#1d2a39;--heroLi:#4a596b;--heroSm:#6b7a8c;--heroCk:#0b7f72;
  --st-aberta:#64748b;--st-ext:#d97706;--st-corte:#2563eb;--st-pronta:#7c3aed;--st-entregue:#16a34a;--st-cancelada:#dc2626;
  --err:#c62f2f;--ok:#15803d;--warn:#b45309;
  --r:14px;--sh:0 1px 2px rgba(15,27,45,.05),0 4px 14px rgba(15,27,45,.05);--sh2:0 10px 30px rgba(15,27,45,.14);
  --ring:0 0 0 3px rgba(11,127,114,.22);
}
:root[data-theme=dark]{
  --bg:#0a121b;--card:#111c28;--card2:#0e1822;--tx:#e8eef6;--mut:#8da0b7;--bd:#1f2e3f;--bd2:#2d4157;
  --a:#2dd4bf;--a2:#5eead4;--aSoft:#0f2f2e;--aTx:#5eead4;--side1:#060d15;--side2:#0a1824;--sideTx:#c7d5e4;--sideMut:#7f93a9;--sideBd:rgba(255,255,255,.08);--sideHover:rgba(255,255,255,.07);--sideOn:rgba(45,212,191,.16);--sideOnTx:#5eead4;--sideCnt:rgba(255,255,255,.12);--sideCntTx:#fff;--sideStrong:#fff;--sideBox:rgba(255,255,255,.05);--hero1:#06202b;--hero2:#0b7f72;--heroTx:#e8f6f4;--heroLi:#bfe3de;--heroSm:#8fbdb7;--heroCk:#5eead4;
  --st-aberta:#94a3b8;--st-ext:#fbbf24;--st-corte:#60a5fa;--st-pronta:#a78bfa;--st-entregue:#4ade80;--st-cancelada:#f87171;
  --err:#ff8a8a;--ok:#4ade80;--warn:#fbbf24;--sh:none;--sh2:0 10px 30px rgba(0,0,0,.5);--ring:0 0 0 3px rgba(45,212,191,.28);
}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){
  --bg:#0a121b;--card:#111c28;--card2:#0e1822;--tx:#e8eef6;--mut:#8da0b7;--bd:#1f2e3f;--bd2:#2d4157;
  --a:#2dd4bf;--a2:#5eead4;--aSoft:#0f2f2e;--aTx:#5eead4;--side1:#060d15;--side2:#0a1824;--sideTx:#c7d5e4;--sideMut:#7f93a9;--sideBd:rgba(255,255,255,.08);--sideHover:rgba(255,255,255,.07);--sideOn:rgba(45,212,191,.16);--sideOnTx:#5eead4;--sideCnt:rgba(255,255,255,.12);--sideCntTx:#fff;--sideStrong:#fff;--sideBox:rgba(255,255,255,.05);--hero1:#06202b;--hero2:#0b7f72;--heroTx:#e8f6f4;--heroLi:#bfe3de;--heroSm:#8fbdb7;--heroCk:#5eead4;
  --st-aberta:#94a3b8;--st-ext:#fbbf24;--st-corte:#60a5fa;--st-pronta:#a78bfa;--st-entregue:#4ade80;--st-cancelada:#f87171;
  --err:#ff8a8a;--ok:#4ade80;--warn:#fbbf24;--sh:none;--sh2:0 10px 30px rgba(0,0,0,.5);--ring:0 0 0 3px rgba(45,212,191,.28)}}

*{box-sizing:border-box}html,body{margin:0}[hidden]{display:none!important}
body{background:var(--bg);color:var(--tx);font:15px/1.5 "Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--a);text-decoration:none}
svg.ic{flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#print-area{display:none}
.num{font-variant-numeric:tabular-nums}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes shim{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}
.fade{animation:fade .25s ease both}

/* ===== botoes e campos ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--bd2);background:var(--card);color:var(--tx);border-radius:10px;padding:9px 16px;cursor:pointer;font-weight:600;min-height:40px;white-space:nowrap;transition:.15s}
.btn:hover{border-color:var(--a);color:var(--a)}
.btn:focus-visible,.tile:focus-visible,.seg button:focus-visible{outline:none;box-shadow:var(--ring)}
.btn.pri{background:var(--a);border-color:var(--a);color:#fff}.btn.pri:hover{background:var(--a2);border-color:var(--a2);color:#fff}
:root[data-theme=dark] .btn.pri{color:#062a27}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.pri{color:#062a27}}
.btn.ghost{background:transparent;border-color:transparent;color:var(--mut)}.btn.ghost:hover{background:var(--card2);color:var(--tx)}
.btn.danger:hover{border-color:var(--err);color:var(--err)}
.btn.sm{padding:5px 12px;min-height:32px;font-size:13px;border-radius:8px}
.btn:disabled{opacity:.45;cursor:default;pointer-events:none}
.field{display:block;margin:0}
.field>span.l{display:block;font-size:12.5px;font-weight:600;color:var(--mut);margin-bottom:6px}
.inp{display:flex;align-items:center;background:var(--card);border:1px solid var(--bd2);border-radius:10px;transition:.15s;min-height:44px}
.inp:focus-within{border-color:var(--a);box-shadow:var(--ring)}
.inp input,.inp select{flex:1;min-width:0;border:0;background:transparent;padding:10px 12px;outline:none;border-radius:10px}
.inp .suf{padding-right:12px;color:var(--mut);font-size:13px}.inp>svg{margin-left:12px;color:var(--mut)}
.inp.dis{background:var(--card2)}.inp input:disabled{color:var(--mut);cursor:not-allowed}
textarea.ta{width:100%;background:var(--card);border:1px solid var(--bd2);border-radius:10px;padding:10px 12px;min-height:84px;resize:vertical;outline:none}
textarea.ta:focus{border-color:var(--a);box-shadow:var(--ring)}
select.sel{background:var(--card);border:1px solid var(--bd2);border-radius:10px;padding:9px 12px;min-height:40px;outline:none}
/* seta propria dos selects (a nativa fica colada na borda e muda de navegador para navegador) */
select.sel,.inp select{-webkit-appearance:none;appearance:none;cursor:pointer;padding-right:38px;background-repeat:no-repeat;background-position:right 13px center;background-size:16px 16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
select.sel:focus,.inp select:focus{border-color:var(--a)}
select:disabled{cursor:not-allowed;opacity:.6}
/* icone do calendario nos campos de data, com o mesmo espacamento */
input[type=date]{min-height:40px}
input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55;margin-left:6px;padding:2px}
input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--a)}

/* ===== login ===== */
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.hero{position:relative;overflow:hidden;background:linear-gradient(145deg,var(--hero1) 0%,var(--hero2) 130%);color:var(--heroTx);padding:56px 64px;display:flex;flex-direction:column;justify-content:space-between}
.hero svg.art{position:absolute;right:-120px;bottom:-140px;width:640px;opacity:.9}
.hero .brandrow{display:flex;align-items:center;gap:12px;font-weight:700;font-size:18px;position:relative}
.hero h1{font-size:40px;line-height:1.1;margin:0 0 18px;max-width:480px;position:relative;letter-spacing:-.02em}
.hero ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;position:relative;max-width:420px}
.hero li{display:flex;gap:12px;align-items:flex-start;color:var(--heroLi)}.hero li svg{margin-top:2px;color:var(--heroCk)}
.hero small{position:relative;color:var(--heroSm)}
.logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#14b8a6,#0b7f72);display:grid;place-items:center;color:#fff;box-shadow:0 4px 12px rgba(20,184,166,.35)}
.loginbox{display:grid;place-items:center;padding:32px;background:var(--bg)}
.loginbox form{width:100%;max-width:380px}
.loginbox h2{font-size:26px;margin:0 0 6px;letter-spacing:-.01em}.loginbox p{margin:0 0 26px;color:var(--mut)}
.loginbox .field{margin-bottom:16px}.msg-err{color:var(--err);min-height:22px;margin:10px 0 0;font-size:13.5px}
.hint{color:var(--mut);font-size:13px;margin-top:22px;display:flex;gap:8px;align-items:center}
.demo{margin-top:16px;padding:10px 14px;border-radius:10px;background:var(--aSoft);color:var(--aTx);font-size:13.5px}

/* ===== shell ===== */
.layout{display:grid;grid-template-columns:256px 1fr;min-height:100vh}
aside.side{position:sticky;top:0;align-self:start;height:100vh;border-right:1px solid var(--sideBd);background:linear-gradient(180deg,var(--side1),var(--side2));color:var(--sideTx);display:flex;flex-direction:column;padding:20px 14px}
.side .brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px}
.side .brand b{display:block;color:var(--sideStrong);font-size:15.5px;line-height:1.2}.side .brand small{color:var(--sideMut);font-size:12px}
.side nav{display:grid;gap:4px}
.side nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--sideTx);font-weight:600;transition:.15s}
.side nav a:hover{background:var(--sideHover);color:var(--sideStrong)}
.side nav a.on{background:var(--sideOn);color:var(--sideOnTx)}
.side nav a .cnt{margin-left:auto;background:var(--sideCnt);color:var(--sideCntTx);border-radius:999px;font-size:12px;padding:1px 9px}
.side .sp{flex:1}
.sync{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--sideBox);font-size:12.5px;color:var(--sideMut);margin-bottom:12px}
.dot{width:8px;height:8px;border-radius:50%;background:#4ade80;margin-top:6px;flex:none;box-shadow:0 0 0 3px rgba(74,222,128,.18)}.dot.err{background:#f87171;box-shadow:0 0 0 3px rgba(248,113,113,.18)}.dot.off{background:#94a3b8;box-shadow:none}
.usercard{display:flex;align-items:center;gap:10px;padding:10px;border-top:1px solid var(--sideBd);margin-top:4px}
.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#14b8a6,#0b7f72);display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px;flex:none}
.usercard b{display:block;color:var(--sideStrong);font-size:14px;line-height:1.2;text-transform:capitalize}.usercard small{color:var(--sideMut);font-size:12px}
.usercard .ib{margin-left:auto;display:flex;gap:2px}
.ib button{background:transparent;border:0;color:var(--sideMut);border-radius:8px;width:34px;height:34px;display:grid;place-items:center;cursor:pointer}.ib button:hover{background:var(--sideHover);color:var(--sideStrong)}
main.content{padding:28px 36px 70px;max-width:1360px;width:100%;min-width:0}
.layout>div,.grid>*,.sheet>*{min-width:0}
html,body{overflow-x:clip}
.ph{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.ph h1{font-size:clamp(20px,2.4vw,26px);line-height:1.2;margin:0;letter-spacing:-.02em}.ph p{margin:4px 0 0;color:var(--mut)}.ph .grow{flex:1 1 360px;min-width:0}.ph .acts{display:flex;gap:8px;flex-wrap:wrap}
.crumb{display:inline-flex;align-items:center;gap:6px;color:var(--mut);font-weight:600;font-size:13.5px;margin-bottom:6px}.crumb:hover{color:var(--a)}
.tabbar{display:none}

/* ===== cards ===== */
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);padding:20px;margin-bottom:18px}
.card>h3{margin:0 0 14px;font-size:15px;display:flex;align-items:center;gap:10px}.card>h3 .ico{width:30px;height:30px;border-radius:9px;background:var(--aSoft);color:var(--aTx);display:grid;place-items:center}
.card>h3 small{margin-left:auto;font-weight:400;color:var(--mut);font-size:13px}
.grid{display:grid;gap:16px}.cols2{grid-template-columns:1.3fr 1fr}.cols4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.cols3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.sub{color:var(--mut);font-size:13.5px}
.stat{display:flex;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--bd);border-radius:12px;background:var(--card2)}
.stat .ico{width:42px;height:42px;border-radius:12px;background:var(--aSoft);color:var(--aTx);display:grid;place-items:center}
.stat b{display:block;font-size:24px;line-height:1.1;letter-spacing:-.01em}.stat span{color:var(--mut);font-size:13px}

.cols4s{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cols4s .stat{padding:12px;gap:10px}.cols4s .stat .ico{width:36px;height:36px}.cols4s .stat b{font-size:21px;white-space:nowrap}.cols4s .stat span{font-size:12.5px}
@media(max-width:1250px){.cols4s{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* pipeline */
.pipe{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
@media(max-width:1500px){.stage::after{display:none!important}}
.stage{position:relative;display:block;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);padding:16px 16px 14px;color:var(--tx);transition:.15s;border-top:4px solid var(--c)}
.stage:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.stage .t{display:flex;align-items:center;gap:8px;color:var(--c);font-weight:700;font-size:13.5px}
.stage b{display:block;font-size:34px;line-height:1.1;margin:8px 0 2px;letter-spacing:-.02em}.stage small{color:var(--mut)}
.stage:not(:last-child)::after{content:"";position:absolute;right:-10px;top:50%;width:8px;height:8px;border-top:2px solid var(--bd2);border-right:2px solid var(--bd2);transform:translateY(-50%) rotate(45deg);z-index:1}

/* status */
.st-Aberta{--c:var(--st-aberta)}.st-Em_extrusao{--c:var(--st-ext)}.st-Em_corte_e_solda{--c:var(--st-corte)}.st-Pronta{--c:var(--st-pronta)}.st-Entregue{--c:var(--st-entregue)}.st-Cancelada{--c:var(--st-cancelada)}
.pill{display:inline-flex;align-items:center;gap:7px;padding:3px 11px 3px 9px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent)}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.tag{display:inline-block;padding:2px 9px;border-radius:7px;background:var(--card2);border:1px solid var(--bd);font-size:12px;color:var(--mut);font-weight:600}

/* tabela */
.tw{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);overflow:auto}
table{width:100%;border-collapse:collapse}.tw table{min-width:760px}
th{position:sticky;top:0;background:var(--card2);text-align:left;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);font-weight:700;padding:12px 16px;border-bottom:1px solid var(--bd);white-space:nowrap}
td{padding:13px 16px;border-bottom:1px solid var(--bd);vertical-align:middle}tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tbody tr.click{cursor:pointer;transition:background .12s}tbody tr.click:hover{background:var(--card2)}
td .main{font-weight:600}td .sub2{display:block;color:var(--mut);font-size:12.5px}
.opn{font-weight:700;color:var(--a)}
.empty{padding:48px 20px;text-align:center;color:var(--mut)}.empty svg{width:54px;height:54px;color:var(--bd2);margin-bottom:8px}.empty b{display:block;color:var(--tx);font-size:16px;margin-bottom:2px}
.mini{height:6px;border-radius:99px;background:var(--bd);overflow:hidden;min-width:70px}.mini i{display:block;height:100%;border-radius:99px;background:var(--a)}

/* tabela compacta (painel): cabe na coluna sem rolar para o lado */
.tw.compact{overflow-x:hidden}.tw.compact table{min-width:0;table-layout:auto}
.tw.compact th,.tw.compact td{padding:10px 10px}
.tw.compact td:nth-child(2) .cellrow{max-width:170px}
.tw.compact .cellrow{min-width:0}.tw.compact .cellrow .main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tw.compact td .main{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tw.compact td .sub2{white-space:nowrap}

/* resumo de producao */
.kp4{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:18px}
.kpi2{display:flex;gap:14px;align-items:center;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);padding:16px}
.kpi2 .ico{width:44px;height:44px;border-radius:12px;background:var(--aSoft);color:var(--aTx);display:grid;place-items:center;flex:none}
.kpi2 span{display:block;color:var(--mut);font-size:13px}.kpi2 b{display:block;font-size:24px;line-height:1.15;letter-spacing:-.01em}.kpi2 small{color:var(--mut)}
.tw.flat{box-shadow:none;border-radius:10px}.tw.flat table{min-width:0}.tw.flat th{white-space:normal;line-height:1.25;vertical-align:bottom;padding:10px}.tw.flat td{padding:10px}.tw.flat td .main{display:inline-block;max-width:260px}
tr.tot td{font-weight:700;background:var(--card2)}
.sw{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid transparent;flex:none}
.share{display:flex;align-items:center;gap:8px;justify-content:flex-end}.share .mini{width:52px;min-width:52px}.share span{min-width:34px;text-align:right}

/* paginacao */
.pager{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:14px}
.pager .info{color:var(--mut);font-size:13.5px}
.pgs{display:flex;gap:4px;align-items:center}
.pg{min-width:36px;height:36px;padding:0 10px;border:1px solid var(--bd2);background:var(--card);border-radius:9px;font-weight:600;cursor:pointer;display:inline-grid;place-items:center;transition:.15s}
.pg:hover:not(:disabled){border-color:var(--a);color:var(--a)}.pg.on{background:var(--a);border-color:var(--a);color:#fff}
:root[data-theme=dark] .pg.on{color:#062a27}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .pg.on{color:#062a27}}
.pg:disabled{opacity:.4;cursor:default}.pgs .gap{padding:0 4px;color:var(--mut)}
@media(max-width:700px){.pager{justify-content:center}.pager .info{width:100%;text-align:center}}

/* barra de filtros */
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.tools .grow{flex:1}
.search{min-width:280px;flex:1;max-width:420px}
.seg{display:inline-flex;background:var(--card2);border:1px solid var(--bd);border-radius:10px;padding:3px;gap:2px}
.seg button{border:0;background:transparent;border-radius:8px;padding:6px 14px;font-weight:600;color:var(--mut);cursor:pointer;display:inline-flex;gap:6px;align-items:center;min-height:34px}
.seg button.on{background:var(--card);color:var(--a);box-shadow:var(--sh)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.chip{border:1px solid var(--bd2);background:var(--card);border-radius:999px;padding:5px 14px;cursor:pointer;font-weight:600;color:var(--mut);font-size:13.5px;display:inline-flex;gap:8px;align-items:center;transition:.15s}
.chip:hover{border-color:var(--c,var(--a))}.chip.on{background:color-mix(in srgb,var(--c,var(--a)) 13%,var(--card));border-color:var(--c,var(--a));color:var(--c,var(--a))}
.chip .cn{font-size:12px;opacity:.75}
.total{display:flex;gap:18px;flex-wrap:wrap;margin:0 2px 12px;color:var(--mut);font-size:13.5px}.total b{color:var(--tx)}

/* quadro */
.board{display:grid;grid-template-columns:repeat(5,minmax(240px,1fr));gap:14px;overflow-x:auto;padding-bottom:10px;align-items:start}
.col{background:color-mix(in srgb,var(--c) 6%,var(--card2));border:1px solid var(--bd);border-radius:var(--r);padding:12px;min-height:200px}
.col>h4{margin:2px 4px 12px;display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--c)}.col>h4 .cn{margin-left:auto;background:color-mix(in srgb,var(--c) 16%,transparent);padding:1px 9px;border-radius:99px;font-size:12px}
.kcard{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:13px;margin-bottom:10px;cursor:pointer;box-shadow:var(--sh);transition:.15s}
.kcard:hover{transform:translateY(-2px);box-shadow:var(--sh2);border-color:var(--c)}
.kcard .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.kcard .cli{font-weight:600;line-height:1.3;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kcard .tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.kcard .meta{display:flex;justify-content:space-between;color:var(--mut);font-size:12.5px;margin:6px 0 10px}
.kcard .go{width:100%}
.colbody{max-height:68vh;overflow-y:auto;padding:2px 4px 2px 2px;margin-right:-4px}
.more{display:flex;flex-direction:column;gap:8px;align-items:stretch;margin-top:8px;text-align:center}.more .btn{width:100%}
.col{transition:box-shadow .15s,background .15s}.col.over{box-shadow:inset 0 0 0 2px var(--c);background:color-mix(in srgb,var(--c) 15%,var(--card2))}
.kcard{cursor:grab}.kcard:active{cursor:grabbing}.kcard.dragging{opacity:.4;transform:rotate(2deg)}
.lim .sel{min-height:40px}
.colempty{padding:18px 8px;text-align:center;color:var(--mut);font-size:13px}

/* ficha */
.sheet{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}
.sheet aside{position:sticky;top:18px}
.row{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.row.r3{grid-template-columns:130px 170px 1fr}
.opt{margin-bottom:18px}.opt>b{display:block;font-size:12.5px;color:var(--mut);margin-bottom:8px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px}
.tile{border:1.5px solid var(--bd2);background:var(--card);border-radius:12px;padding:12px 8px;cursor:pointer;text-align:center;font-weight:700;transition:.15s;display:flex;flex-direction:column;align-items:center;gap:2px}
.tile small{font-weight:500;color:var(--mut);font-size:12px}.tile svg{color:var(--mut);margin-bottom:2px}
.tile:hover{border-color:var(--a)}.tile.on{border-color:var(--a);background:var(--aSoft);color:var(--aTx);box-shadow:var(--ring)}.tile.on small,.tile.on svg{color:var(--aTx)}.tile big{font-size:22px;line-height:1.1}
.tile:disabled{opacity:.55;cursor:not-allowed}
.seg.wrap{flex-wrap:wrap}
.ac{position:relative}.ac .lst{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:20;background:var(--card);border:1px solid var(--bd2);border-radius:12px;max-height:290px;overflow:auto;box-shadow:var(--sh2);padding:6px}
.ac .lst div{padding:9px 12px;border-radius:8px;cursor:pointer}.ac .lst div:hover{background:var(--aSoft)}.ac .lst small{display:block;color:var(--mut)}
.linked{margin-top:6px;font-size:12.5px;color:var(--mut);display:flex;gap:6px;align-items:center}.linked.ok{color:var(--ok)}
.step{display:flex;gap:14px;position:relative;padding-bottom:18px}.step:last-child{padding-bottom:0}
.step:not(:last-child)::before{content:"";position:absolute;left:15px;top:32px;bottom:2px;width:2px;background:var(--bd2)}.step.done:not(:last-child)::before{background:var(--c)}
.step .bub{width:32px;height:32px;border-radius:50%;border:2px solid var(--bd2);background:var(--card);display:grid;place-items:center;color:var(--mut);flex:none;z-index:1}
.step.done .bub{background:var(--c);border-color:var(--c);color:#fff}.step.cur .bub{border-color:var(--c);color:var(--c);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 20%,transparent)}
.step b{display:block;line-height:1.2;margin-top:4px}.step small{color:var(--mut)}.step.cur b{color:var(--c)}
.step.pick{cursor:pointer}.step.pick:hover b{text-decoration:underline}
.prog{margin:4px 0 0}.prog .bar{height:10px;border-radius:99px;background:var(--bd);overflow:hidden}.prog .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--a),#34d399);border-radius:99px}
.prog .lbl{display:flex;justify-content:space-between;font-size:13px;color:var(--mut);margin-top:6px}
.hist{max-height:220px;overflow:auto;font-size:13px}.hist div{padding:7px 0;border-bottom:1px dashed var(--bd);color:var(--mut)}.hist b{color:var(--tx);font-weight:600}
.actions{display:grid;gap:8px;margin-top:16px}.actions .btn{width:100%}
.note{display:flex;gap:10px;padding:11px 14px;border-radius:10px;background:var(--aSoft);color:var(--aTx);font-size:13.5px;margin-bottom:16px;align-items:flex-start}.note.warn{background:color-mix(in srgb,var(--warn) 14%,var(--card));color:var(--warn)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:13.5px}.kv dt{color:var(--mut)}.kv dd{margin:0;font-weight:600}

/* cliente */
.cli-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.avatar.lg{display:grid;aspect-ratio:auto;width:60px;height:60px;font-size:22px;border-radius:16px}   /* (.lg tambem e a classe da logo: nao deixar herdar display:block) */
.initials{width:36px;height:36px;border-radius:10px;background:var(--aSoft);color:var(--aTx);display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
.cellrow{display:flex;gap:12px;align-items:center}

/* toast / dialog */
.toast{position:fixed;right:20px;bottom:20px;display:flex;gap:10px;align-items:center;background:var(--tx);color:var(--bg);padding:12px 18px;border-radius:12px;z-index:100;box-shadow:var(--sh2);animation:fade .2s}
dialog{border:0;border-radius:16px;padding:24px;max-width:400px;width:calc(100% - 32px);background:var(--card);color:var(--tx);box-shadow:var(--sh2)}dialog::backdrop{background:rgba(6,13,21,.55);backdrop-filter:blur(2px)}
dialog h3{margin:0 0 6px}dialog p{margin:0 0 20px;color:var(--mut)}dialog .acts{display:flex;gap:8px;justify-content:flex-end}
.skel{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--bd) 0,var(--card2) 100px,var(--bd) 200px);background-size:200px 100%;animation:shim 1.2s infinite linear;margin-bottom:12px}

/* ===== responsivo ===== */
@media(max-width:1100px){.sheet{grid-template-columns:1fr}.sheet aside{position:static}.cols2{grid-template-columns:1fr}}
@media(max-width:900px){
  .login{grid-template-columns:1fr}.hero{display:none}
  .layout{grid-template-columns:1fr}aside.side{display:none}
  main.content{padding:18px 16px 96px}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--card);border-top:1px solid var(--bd);padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11.5px;color:var(--mut);font-weight:600;padding:4px 12px;border-radius:10px}.tabbar a.on{color:var(--a);background:var(--aSoft)}
  .mtop{display:flex!important}
  .row.r3{grid-template-columns:1fr}.search{min-width:0;max-width:none}
}
.mtop{display:none;align-items:center;gap:10px;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:25}
.mtop b{flex:1}.mtop .ib button{color:var(--mut)}.mtop .ib button:hover{color:var(--tx);background:var(--card2)}

/* ===== barras de rolagem: finas, arredondadas, sem setas ===== */
*::-webkit-scrollbar{width:12px;height:12px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--c,var(--mut)) 32%,transparent);border-radius:99px;border:3.5px solid transparent;background-clip:content-box;min-height:36px;transition:background .15s}
*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--c,var(--mut)) 70%,transparent);background-clip:content-box}
*::-webkit-scrollbar-thumb:active{background:var(--c,var(--a));background-clip:content-box}
*::-webkit-scrollbar-button{display:none;width:0;height:0}
*::-webkit-scrollbar-corner{background:transparent}
@-moz-document url-prefix(){*{scrollbar-width:thin;scrollbar-color:var(--bd2) transparent}.colbody{scrollbar-color:color-mix(in srgb,var(--c) 40%,transparent) transparent}}

/* ===== logo da empresa (png transparente: logo.png escuro, logo-claro.png para fundo escuro) ===== */
.lg{display:block;flex:none;aspect-ratio:470/227}
.lg img{display:block;width:100%;height:100%;object-fit:contain}
.lg .c{display:none}
.lg.escuro .n{display:none}.lg.escuro .c{display:block}
:root[data-theme=dark] .lg.auto .n{display:none}:root[data-theme=dark] .lg.auto .c{display:block}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .lg.auto .n{display:none}:root:not([data-theme=light]) .lg.auto .c{display:block}}
.lgh{width:min(300px,70%)}
.lgm{display:none;width:220px;margin:0 auto 24px}
.lgs{width:calc(100% - 12px);margin:0 auto}
.side .brand{display:block;padding:4px 2px 22px}.side .brand small{display:block;margin-top:12px;text-align:center;letter-spacing:.08em;text-transform:uppercase;font-size:11px}
.lgt{height:38px;width:auto}
@media(max-width:900px){.lgm{display:block}}

/* ===== impressao: ficha igual a de papel (A5 paisagem) ===== */
/* o @page (tamanho da folha) e inserido pelo app.js na hora de imprimir */
@media print{
  html,body{margin:0!important;background:#fff;color:#000}.layout,.toast,dialog,.tabbar,.mtop{display:none!important}
  #print-area{display:block!important;color:#000}
  .pf{break-inside:avoid}
}
.pf{width:210mm;height:147mm;padding:6mm 8mm 5mm 5mm;box-sizing:border-box;background:#fff;color:#000;font:11px/1.2 Arial,Helvetica,sans-serif;display:grid;grid-template-columns:30mm minmax(0,1fr);grid-template-rows:minmax(0,1fr);column-gap:3mm;overflow:hidden}
.pf .pmain{display:flex;flex-direction:column;gap:1.8mm;min-width:0;min-height:0;height:100%}
.pf .canh{border-right:1.3px dashed #000;padding-right:2mm;height:100%;display:flex;justify-content:center}
.pf .cb{writing-mode:vertical-rl;transform:rotate(180deg);height:100%;font-size:9.5px}
.pf .cl{display:flex;align-items:stretch;gap:1.6mm;margin-inline-end:1.7mm;white-space:nowrap}
.pf .flc{display:flex;align-items:stretch;gap:1mm;min-width:0}.pf .flc b{font-weight:700}
.pf .flc i{flex:1;min-inline-size:8mm;border-block-end:1.1px solid #000;font-style:normal;text-align:center;font-size:10.5px;overflow:hidden}
.pf .flc.g1{flex:1}.pf .flc.g2{flex:2.4}
.pf *{box-sizing:border-box}
.pf .nrow{display:flex;justify-content:flex-end;align-items:baseline;gap:2mm;height:5mm;flex:none;font-weight:700}.pf .nrow .num{font-size:17px;color:#b3202a;letter-spacing:.03em}
.pf .box{border:1.3px solid #000;padding:1mm 2mm}
.pf .r1{display:grid;grid-template-columns:62.5% minmax(0,1fr);column-gap:1.6%;height:14mm;flex:none;margin-bottom:2.2mm}
.pf .head{display:flex;align-items:center;gap:3mm}.pf .head h1{margin:0;font-size:17px;letter-spacing:.01em;font-weight:800;text-transform:uppercase;white-space:nowrap}
.pf .head .lg{height:12.2mm;width:auto}.pf .head{padding:.8mm 2mm}
.pf .data{font-size:11px}.pf .data i{display:block;text-align:center;font-style:normal;font-size:14px;margin-top:1mm}
.pf .r2{display:grid;grid-template-columns:52.5% minmax(0,1fr);column-gap:1.6%;height:23mm;flex:none}
.pf .pcol{display:flex;flex-direction:column;gap:1.5mm;height:100%}.pf .cli{height:7mm;display:flex;align-items:center;gap:2mm;font-size:11px}.pf .cli i{font-style:normal;font-size:12.5px;font-weight:700}
.pf .saco{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2mm}
.pf .refo{height:14.5mm;min-width:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:2mm;padding:0 2mm;align-self:start}.pf .refo .ln{gap:2.4mm;font-size:10.5px}
.pf .ln{display:flex;gap:4mm;white-space:nowrap;font-weight:700}
.pf .op{font-weight:700;white-space:nowrap}.pf .op u{display:inline-block;inline-size:2.6mm;text-decoration:none;text-align:center;font-weight:800}
.pf .fmt{position:relative;height:9mm;flex:none}.pf .fmt .op{position:absolute;top:50%;transform:translateY(-50%);font-size:12.5px}.pf .fmt .sac{left:12%}.pf .fmt .bob{left:41%}.pf .fmt .capa{left:72%}
.pf .fields{display:flex;justify-content:space-between;align-items:flex-end;gap:5mm;height:7mm;flex:none}.pf .fields.b{padding-left:11mm;padding-right:4mm}
.pf .fl{display:inline-flex;align-items:flex-end;gap:1.5mm;flex:1;min-width:0}.pf .fl b{font-weight:700;white-space:nowrap}
.pf .fl i{flex:1;min-width:12mm;border-bottom:1.2px solid #000;font-style:normal;text-align:center;min-height:4.5mm;font-size:12.5px;padding:0 1mm;white-space:nowrap;overflow:hidden}
.pf .obs{height:15mm;font-weight:700;flex:none}.pf .obs span{font-weight:400;font-size:12px}
.pf .sec{text-align:center;font-weight:800;letter-spacing:.04em;border-top:1.3px solid #000;padding-top:1.5mm;margin-top:.5mm}
.pf .sec.first{border-top:0;margin-top:0}
.pf .secb{flex:1 1 0;min-height:0;display:flex;flex-direction:column;justify-content:space-between}.pf .secb .sec{margin-top:0}.pf .secb .fields{margin-bottom:1.5mm}
.pf .fields.w{padding:0;height:auto;gap:6mm}
/* ===== relatorios impressos (PDF) ===== */
.rp{font:10.5px/1.35 "Segoe UI",Arial,sans-serif;color:#14202e;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.rp *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
.rp-h{display:flex;align-items:center;gap:6mm;padding-bottom:4mm;border-bottom:2.2px solid #0b7f72;margin-bottom:5mm}
.rp-logo img{display:block;height:15mm;width:auto}
.rp-t{flex:1;min-width:0}.rp-t h1{margin:0;font-size:20px;line-height:1.15;letter-spacing:-.01em;color:#0f1b2d}
.rp-s{margin-top:1mm;font-size:11px;color:#4a596b}.rp-s b{color:#14202e;font-size:12.5px}
.rp-meta{text-align:right;font-size:9px;color:#5b6b82;line-height:1.45;white-space:nowrap}.rp-meta b{display:block;color:#14202e;font-size:10.5px}
.rp-ks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3mm;margin-bottom:6mm}
.rp-k{border:1px solid #d6dee8;border-left:3px solid #0b7f72;border-radius:1.5mm;padding:2.4mm 3mm;background:#f6f9fb;break-inside:avoid}
.rp-k small{display:block;font-size:8px;letter-spacing:.07em;text-transform:uppercase;color:#5b6b82;font-weight:700}
.rp-k b{display:block;margin:.6mm 0 .2mm;font-size:16px;letter-spacing:-.01em;color:#0f1b2d}.rp-k span{font-size:9px;color:#5b6b82}
.rp-sec{break-inside:avoid;margin-bottom:6mm}.rp-sec.rp-livre{break-inside:auto}
.rp-sec h2{margin:0 0 2mm;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#0b6b60}
.rp table{width:100%;border-collapse:collapse;margin:0}
.rp th{position:static;background:#e6f2ef;color:#0b5a50;text-align:left;font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2mm 2.2mm;border-bottom:1.5px solid #0b7f72;white-space:nowrap}
.rp td{padding:1.8mm 2.2mm;border-bottom:.5px solid #dbe3ec;font-size:10px;vertical-align:middle;color:#14202e}
.rp tbody tr:nth-child(even) td{background:#f8fafc}
.rp .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rp tr{break-inside:avoid}.rp thead{display:table-header-group}
.rp tr.tot td{background:#e6f2ef;font-weight:700;border-top:1.2px solid #0b7f72;border-bottom:0}
.rp-bar{display:inline-block;width:13mm;height:1.8mm;margin-right:1.6mm;border-radius:1mm;background:#dde5ee;overflow:hidden;vertical-align:middle}.rp-bar i{display:block;height:100%;background:#0b7f72}
.rp .dot{display:inline-block;width:2.4mm;height:2.4mm;margin-right:1.6mm;border-radius:50%;background:var(--c,#94a3b8);vertical-align:-.3mm}
.rp-st{display:inline-block;white-space:nowrap;font-weight:600;color:var(--c,#334155)}
.rp-duas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8mm;margin-top:6mm}

/* ===== MOBILE (celular) — a versao desktop nao muda ===== */
.mtop .ib{display:flex;gap:2px}
@keyframes fadeo{from{opacity:0}to{opacity:1}}
.savebar{display:none}
.stabs,.rl{display:none}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
@media(max-width:900px){
  .fade{animation-name:fadeo}   /* sem transform: um transform no conteudo faria a barra fixa (position:fixed) sair do lugar */
  /* barra de cima e de baixo */
  .mtop{padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));gap:12px}
  .mtop b{font-size:15.5px;letter-spacing:-.01em}
  .tabbar{padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px rgba(15,27,45,.06)}
  .tabbar a{flex:1;padding:6px 2px;font-size:11px;min-width:0}
  .toast{left:12px;right:12px;bottom:calc(148px + env(safe-area-inset-bottom));justify-content:center}
  /* barra fixa da ficha: avancar etapa + salvar */
  .savebar{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom));z-index:29;padding:10px 14px;background:var(--card);border-top:1px solid var(--bd);box-shadow:0 -8px 22px rgba(15,27,45,.08)}
  .savebar .btn{flex:1;min-height:46px}
  .sheet{padding-bottom:72px}
}
@media(max-width:700px){
  body{font-size:15px}
  main.content{padding:16px 14px 100px}
  /* campos: 16px evita o zoom automatico do iPhone; alvos de toque >= 44px */
  .inp input,.inp select,select.sel,textarea.ta,input[type=date]{font-size:16px}
  .inp{min-height:46px}.btn{min-height:44px}.btn.sm{min-height:40px;padding:6px 14px}
  select.sel{min-height:44px}
  .seg button{min-height:40px;padding:6px 16px}
  .chip{padding:7px 14px}
  .pg{min-width:40px;height:40px}
  input[type=checkbox]{width:22px;height:22px}

  /* cabecalho das paginas */
  .ph{margin-bottom:14px;gap:10px}
  .ph .grow{flex-basis:100%}
  .ph h1{font-size:22px}
  .ph .acts{width:100%}.ph .acts .btn{flex:1}
  .card{padding:16px;border-radius:14px;margin-bottom:14px}
  .grid{gap:12px}

  /* painel */
  .pipe{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px!important}
  .stage{padding:12px 12px 10px;border-top-width:3px}
  .stage .t{font-size:13px}.stage b{font-size:30px;margin:4px 0 0}.stage small{font-size:12px}
  .stage:last-child:nth-child(odd){grid-column:1/-1}
  .cols4s{gap:10px}.cols4s .stat{padding:12px}.cols4s .stat .ico{display:none}.cols4s .stat b{font-size:20px}
  .kp4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
  .kpi2{flex-direction:column;align-items:flex-start;gap:8px;padding:14px}.kpi2 b{font-size:20px}.kpi2 .ico{width:38px;height:38px}

  /* filtros */
  .tools{gap:8px}
  .tools .search{flex:1 1 100%;order:5;min-width:0}
  .tools .seg{flex:1}.tools .seg button{flex:1;justify-content:center;padding:6px 10px}
  .tools .lim{flex:0 0 142px}.tools .lim .sel{width:100%;font-size:15px}
  .tools .inp:has(input[type=date]){flex:1 1 0;min-width:0;order:6}.tools .inp input[type=date]{padding:10px 6px 10px 10px}
  .tools .sub{order:6;flex:none}
  .tools .grow{display:none}
  .chips{flex-wrap:wrap;overflow:visible;margin:0 0 14px;padding:0}
  .chip{padding:7px 14px}
  .total{gap:6px 14px}

  /* quadro: colunas deslizam para o lado, uma de cada vez */
  .stabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px}
  .stab{grid-column:span 2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:58px;padding:8px 4px;border:1.5px solid var(--bd2);border-radius:12px;background:var(--card);color:var(--mut);font-size:12.5px;font-weight:600;line-height:1.15;text-align:center;cursor:pointer}
  .stab:nth-child(n+4){grid-column:span 3}
  .stab .cn{font-size:18px;font-weight:800;color:var(--c)}
  .stab.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 13%,var(--card));color:var(--c)}
  .board{display:block;overflow:visible;margin:0;padding:0}
  .board .col{display:none;min-height:0}.board .col.ativa{display:block}
  .col>h4{display:none}
  .colbody{max-height:none;overflow:visible;margin-right:0;padding:0}
  .kcard{padding:14px}.kcard .go{min-height:44px}
  .kcard:hover{transform:none}

  /* tabelas viram cartoes: 1a celula = titulo, as demais em 2 colunas com o nome da coluna */
  .tw,.tw.flat,.tw.compact{background:transparent;border:0;box-shadow:none;overflow:visible;border-radius:0}
  .tw table,.tw.flat table,.tw.compact table{display:block;min-width:0}
  .tw thead{display:none}
  .tw tbody{display:grid;gap:10px}
  .tw tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 14px;background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:14px;box-shadow:var(--sh)}
  .tw tr.click:active{background:var(--card2)}
  .tw td,.tw.flat td,.tw.compact td{display:block;padding:0;border:0;min-width:0;text-align:left;font-size:14px}
  .tw td.n,.tw td.n .share{text-align:left;justify-content:flex-start}
  .tw td::before{content:attr(data-l);display:block;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);margin-bottom:2px}
  .tw td:first-child{grid-column:1/-1;font-size:15px}
  .tw td:first-child::before,.tw td.c-cliente::before,.tw td.c-produto::before,.tw td.c-status::before,.tw td.c-ativo::before{display:none}
  .tw td.c-cliente,.tw td.c-produto,.tw td.c-status{grid-column:1/-1}
  .tw td:first-child .opn{font-size:16px;margin-right:8px}.tw td:first-child .sub2{display:inline}
  .tw td .main,.tw.compact td .main,.tw.flat td .main{max-width:none;white-space:normal;display:block}
  .tw.compact .cellrow .main{white-space:normal}
  .tw td.c-ativo{display:flex;align-items:center;gap:10px}.tw td.c-ativo::after{content:"Ativo";color:var(--mut);font-size:13.5px;order:2}
  .tw td .inp,.tw td select{max-width:100%}
  .tw tr.tot{background:var(--aSoft);border-color:transparent}.tw tr.tot td{background:transparent}
  .tw .empty{background:var(--card);border:1px solid var(--bd);border-radius:14px}
  /* resumos de producao: cartoes (Pedido / Produzido / Entregue) no lugar da tabela larga */
  .tw.flat{display:none}
  .rl{display:grid;gap:10px}
  .ri{background:var(--card2);border:1px solid var(--bd);border-radius:12px;padding:12px 14px}
  .ri.tot{display:none}   /* o total ja aparece nos quadros do topo */
  .ri .rh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ri .rh b{font-size:15px;display:flex;align-items:center;gap:8px;min-width:0}
  .ri .rg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .ri .rg small{display:block;color:var(--mut);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
  .ri .rg b{display:block;font-size:14px;line-height:1.25;margin-top:1px}.ri .rg span{display:block;color:var(--mut);font-size:12px}
  .ri .share{margin-top:10px;justify-content:flex-start}.ri .share .mini{width:100%;flex:1}.ri .share span{min-width:0;text-align:right;white-space:nowrap;font-size:12px;color:var(--mut)}
  .share{justify-content:flex-start}

  /* ficha */
  .row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .row.r3{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}.row.r3>:nth-child(3){grid-column:1/-1}
  .fcol{display:flex;flex-direction:column}.sheet.prodrole .pcard{order:-1}   /* perfil Producao: Extrusao e Corte vem primeiro */
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .tile{padding:14px 6px;min-height:64px}
  .seg.wrap button{flex:1 1 auto;justify-content:center}
  .ac .lst{max-height:46vh}.ac .lst div{padding:12px}
  .hist{max-height:none}
  .cli-head{gap:12px;flex-wrap:nowrap}.avatar.lg{width:52px;height:52px;font-size:19px;border-radius:14px}

  /* janelas viram "gaveta" na parte de baixo */
  dialog{max-width:none;width:100%;margin:auto 0 0;border-radius:20px 20px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom))}
  dialog .acts{flex-direction:column-reverse}dialog .acts .btn{width:100%}
  dialog input{font-size:16px}

  /* login */
  .loginbox{place-items:start center;padding:28px 20px;min-height:100vh}
  .loginbox h2{font-size:24px}
  .lgm{width:200px;margin:8px auto 28px}
  .loginbox .hint,.demo{font-size:13px}
  .pager{margin-top:12px}
}

/* ===== pagina publica (acompanhamento pelo cliente) — sempre no tema claro ===== */
.pubbody{margin:0;min-height:100vh;background:linear-gradient(180deg,#e6edf4 0,#f3f6f9 340px);color:#0f1b2d;color-scheme:light;-webkit-font-smoothing:antialiased}
.pubtop{background:#fff;border-bottom:1px solid #e3e9f0}
.pubtop>div{max-width:840px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.pubtop .lg.publ{width:150px;display:block}.pubtop .lg.publ img{display:block;width:100%;height:auto}
.pubtop small{color:#5b6b82;font-size:12.5px;text-align:right;line-height:1.4}.pubtop small b{color:#0f1b2d;font-size:13.5px}
.pub{max-width:840px;margin:0 auto;padding:22px 20px 56px}
.pubhero{position:relative;overflow:hidden;border-radius:24px;padding:28px 30px 26px;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--c,#0b7f72) 58%,#06121c) 0%,var(--c,#0b7f72) 115%);box-shadow:0 22px 44px -22px color-mix(in srgb,var(--c,#0b7f72) 75%,#000);animation:fade .35s ease both;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.pubhero::before,.pubhero::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.07);pointer-events:none}
.pubhero::before{width:300px;height:300px;right:-90px;top:-110px}.pubhero::after{width:190px;height:190px;right:70px;bottom:-120px}
.pubhero>*{position:relative;z-index:1}
.pubhero.marca{--c:#0b7f72}
.pubhero .toprow{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pubhero .kick{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.85}
.pubhero .hp{padding:4px 14px;border-radius:999px;font-size:13px;font-weight:700;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3)}
.pubhero h1{margin:8px 0 4px;font-size:42px;line-height:1.05;letter-spacing:-.035em;font-weight:800}.pubhero h1.menor{font-size:28px;letter-spacing:-.02em}
.pubhero .who{font-size:15px;opacity:.92}
.pubstat{display:flex;align-items:center;gap:16px;margin-top:22px;padding:16px 18px;border-radius:18px;background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.26)}
.pubstat .ico{flex:none;width:52px;height:52px;border-radius:16px;background:#fff;color:var(--c);display:grid;place-items:center}
.pubstat b{display:block;font-size:19px;line-height:1.2;margin-bottom:2px}.pubstat span{font-size:14.5px;opacity:.95;line-height:1.4}
.pubhero .prog{margin-top:18px}.pubhero .prog .bar{height:10px;background:rgba(255,255,255,.28)}.pubhero .prog .bar i{background:#fff}
.pubhero .prog .lbl{display:flex;justify-content:space-between;margin-top:7px;font-size:13px;color:rgba(255,255,255,.92)}
.pubhero .pubk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:22px}
.pubhero .pubk>div{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:12px 14px}
.pubhero .pubk small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.pubhero .pubk b{display:block;font-size:19px;line-height:1.3;margin-top:2px}.pubhero .pubk span{font-size:12.5px;color:rgba(255,255,255,.85)}
.pcard{background:#fff;border:1px solid #e3e9f0;border-radius:20px;padding:24px 26px;margin-top:16px;box-shadow:0 1px 2px rgba(15,27,45,.04),0 16px 32px -22px rgba(15,27,45,.22);animation:fade .35s ease both}
.pcard h2{margin:0 0 20px;font-size:16px;letter-spacing:-.01em;color:#0f1b2d}
.pcard.vazio{text-align:center;padding:40px 24px}.pcard.vazio .ico{width:60px;height:60px;border-radius:50%;background:#fdecec;color:#c62f2f;display:grid;place-items:center;margin:0 auto 14px}.pcard.vazio h2{margin-bottom:8px;font-size:20px}
/* linha do tempo: horizontal no computador, vertical no celular */
.psteps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.ps{position:relative;text-align:center;padding:0 4px}
.ps .dotc{position:relative;z-index:1;width:40px;height:40px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:15px;background:#fff;border:2px solid #cdd6e1;color:#8796aa}
.ps::before{content:"";position:absolute;top:19px;left:-50%;width:100%;height:3px;background:#dde5ee;z-index:0}.ps:first-child::before{display:none}
.ps.done::before,.ps.cur::before{background:var(--c)}
.ps.done .dotc{background:var(--c);border-color:var(--c);color:#fff}
.ps.cur .dotc{border-color:var(--c);color:var(--c);box-shadow:0 0 0 7px color-mix(in srgb,var(--c) 17%,transparent)}
.ps .pt b{display:block;font-size:13.5px;line-height:1.25;color:#0f1b2d}.ps .pt small{display:block;margin-top:3px;font-size:12px;color:#6b7a8c}
.ps.todo .pt b{color:#8796aa}.ps.cur .pt b{color:var(--c)}
.pdet{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.pdet>div{background:#f4f7fa;border:1px solid #e8edf3;border-radius:14px;padding:13px 16px}
.pdet small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#6b7a8c}.pdet b{display:block;margin-top:3px;font-size:16px;line-height:1.3}
.publ2{display:grid;gap:0}
.pubop{border-left:5px solid var(--c,#0b7f72);padding:20px 22px}.pubop .main{font-weight:700;margin-top:10px;font-size:16px}.pubop .sub{color:#6b7a8c;font-size:13.5px}
.pubop .opn{color:var(--c);font-size:17px}
.pubtit{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.pubq{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 16px;margin-top:14px;font-size:14.5px}
.pubq small{display:block;color:#6b7a8c;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.pub .mini{height:7px;border-radius:99px;background:#e3e9f0;overflow:hidden}.pub .mini i{display:block;height:100%;border-radius:99px;background:var(--c,#0b7f72)}
.pub .rl{display:grid;gap:10px}.pub .ri{background:#f4f7fa;border:1px solid #e8edf3;border-radius:14px;padding:14px 16px}
.pub .ri .rh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.pub .ri .rh b{display:flex;align-items:center;gap:8px}.pub .ri .sub{color:#6b7a8c;font-size:13px}
.pub .ri .rg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pub .ri .rg small{display:block;color:#6b7a8c;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.pub .ri .rg b{display:block;font-size:14.5px}.pub .ri .rg span{display:block;color:#6b7a8c;font-size:12px}
.pub .ri .share{display:flex;align-items:center;gap:10px;margin-top:10px}.pub .ri .share .mini{flex:1}.pub .ri .share span{font-size:12px;color:#6b7a8c;white-space:nowrap}
.pubf{margin-top:28px;text-align:center;color:#6b7a8c;font-size:13px;line-height:1.7}
.pubbtn{margin-top:14px;display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;border:1px solid #cdd6e1;background:#fff;color:#0f1b2d;font-weight:600;font-size:14px;cursor:pointer}.pubbtn:hover{border-color:#0b7f72;color:#0b7f72}
@media(max-width:640px){
  .pubtop>div{padding:10px 16px}.pubtop .lg.publ{width:122px}.pub{padding:16px 14px 44px}
  .pubhero{padding:22px 20px 20px;border-radius:20px}.pubhero h1{font-size:34px}.pubhero h1.menor{font-size:23px}
  .pubstat{padding:14px;gap:12px}.pubstat .ico{width:46px;height:46px;border-radius:14px}.pubstat b{font-size:17px}
  .pubhero .pubk{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pcard{padding:20px 18px;border-radius:18px}.pdet{grid-template-columns:1fr 1fr}
  .psteps{grid-template-columns:1fr}
  .ps{display:flex;align-items:flex-start;gap:14px;text-align:left;padding:0 0 24px}.ps:last-child{padding-bottom:0}
  .ps .dotc{margin:0;flex:none}.ps .pt{padding-top:2px}
  .ps::before{display:none}
  .ps:not(:last-child)::after{content:"";position:absolute;left:19px;top:42px;bottom:2px;width:3px;background:#dde5ee;z-index:0}
  .ps.done:not(:last-child)::after{background:var(--c)}
}
@media print{.noprint{display:none!important}.pubbody{background:#fff}.pubtop{border:0}.pub{max-width:none;padding:0}.pcard{box-shadow:none;break-inside:avoid}.pubhero{break-inside:avoid;box-shadow:none}}

/* ===== grupos de OP, lancar varias e fichas 2 por folha ===== */
.grp{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:1px 9px;border-radius:99px;background:var(--aSoft);color:var(--aTx);font-size:11.5px;font-weight:700;white-space:nowrap;vertical-align:middle}
.tag.grp{margin-left:0;display:inline-flex;align-items:center;gap:4px;border:0;padding:2px 9px}
.selk{margin-right:10px;vertical-align:middle;cursor:pointer}
.selbar{position:sticky;bottom:14px;z-index:20;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;margin-top:14px;background:var(--card);border:1.5px solid var(--a);border-radius:14px;box-shadow:var(--sh2)}.selbar b{margin-right:auto}
.grpcard .grpchips{display:flex;flex-wrap:wrap;gap:8px}
.grpchip{display:flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--bd2);border-radius:12px;color:var(--tx);background:var(--card);font-size:13px}
.grpchip b{color:var(--c)}.grpchip>span:not(.pill){color:var(--mut)}.grpchip:hover{border-color:var(--c)}.grpchip.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,var(--card));box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 22%,transparent)}
.lote{display:grid;gap:14px}.litem{margin-bottom:0}
.lhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.lhead b{font-size:15px}.lacts{display:flex;gap:6px}
.lrow{margin-bottom:12px}.lrow:last-child{margin-bottom:0}
.lotefoot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding:16px 18px;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh)}
.loteres{margin-right:auto;color:var(--mut);font-size:14px}.loteres b{color:var(--tx)}
@media(max-width:900px){.lotefoot{display:none}.savebar .loteres{display:none}.sheet{padding-bottom:0}.lote+div{margin-bottom:70px}}
.pf1{break-after:page}.pf1:last-child{break-after:auto}
.pf2{width:210mm;height:297mm;display:grid;grid-template-rows:148.5mm 148.5mm;background:#fff;overflow:hidden;break-after:page}.pf2:last-child{break-after:auto}
.pf2 .meia{position:relative;overflow:hidden}.pf2 .meia:first-child{border-bottom:.25mm dashed #8a8a8a}
.kcard .topd{display:flex;align-items:center;gap:8px}
.kcard .dup{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;border:1px solid var(--bd2);background:var(--card);color:var(--mut);cursor:pointer;transition:.15s}
.kcard .dup:hover{border-color:var(--a);color:var(--a);background:var(--aSoft)}
@media(max-width:700px){.kcard .dup{width:38px;height:38px}}

/* ===== login: "nao sou um robo" e isca ===== */
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.humano{display:flex;align-items:center;gap:14px;width:100%;margin:2px 0 16px;padding:12px 16px;border:1.5px solid var(--bd2);border-radius:12px;background:var(--card);color:var(--tx);cursor:pointer;text-align:left;transition:.15s}
.humano:hover{border-color:var(--a)}.humano:focus-visible{outline:none;box-shadow:var(--ring)}
.humano .cx{flex:none;width:26px;height:26px;border:2px solid var(--bd2);border-radius:7px;display:grid;place-items:center;background:var(--card2);color:#fff;transition:.15s}
.humano .tt{flex:1;display:flex;flex-direction:column;line-height:1.25;font-weight:600}.humano .tt small{font-weight:500;color:var(--mut);font-size:11.5px}
.humano>svg{color:var(--mut)}
.humano.work .cx{border-color:var(--a)}.humano.ok{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,var(--card))}.humano.ok .cx{background:var(--ok);border-color:var(--ok)}.humano.ok>svg{color:var(--ok)}
.humano.erro{border-color:var(--err)}.humano.erro .tx{color:var(--err)}
.humano .spin{width:14px;height:14px;border:2.5px solid color-mix(in srgb,var(--a) 25%,transparent);border-top-color:var(--a);border-radius:50%;animation:giro .7s linear infinite}
@keyframes giro{to{transform:rotate(360deg)}}

/* papel Produção: quadro com poucas etapas e botões do cartão */
.board.n1{grid-template-columns:minmax(240px,460px)}.board.n2{grid-template-columns:repeat(2,minmax(240px,1fr))}.board.n3{grid-template-columns:repeat(3,minmax(240px,1fr))}.board.n4{grid-template-columns:repeat(4,minmax(240px,1fr))}
.kcard .kact{display:flex;gap:8px;margin-top:10px}.kcard .kact .go{flex:1;width:auto}.kcard .kact .back{flex:none}
.etapasel{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;max-width:340px}.etapasel small{flex:0 0 100%;color:var(--mut);font-size:12px}.etapasel small.warn{color:var(--err);font-weight:600}
.etapasel .ck{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;white-space:nowrap}

/* consulta avancada de clientes (modal) */
.lupa{display:inline-flex;align-items:center;background:none;border:0;padding:0;margin-left:12px;color:var(--mut);cursor:pointer;border-radius:6px}.lupa:hover{color:var(--a)}
dialog.avdlg{max-width:640px}
.avanc{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:12px 0}
.avc{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mut)}
.avc input,.avc select{padding:9px 10px;border:1px solid var(--bd2);border-radius:8px;font:inherit;font-size:14px;background:transparent;color:var(--tx)}
.avres{display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow:auto;margin-top:8px}
.avrow{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border:1px solid var(--bd);border-radius:10px;background:transparent;color:var(--tx);cursor:pointer;font:inherit}
.avrow:hover{background:var(--aSoft)}.avrow small{color:var(--mut)}
