:root{
  --verde:#123C32;--verde-2:#1b5144;--lima:#C5EF57;--lima-2:#b3dd45;--fundo:#F6F7F2;--texto:#202923;--suave:#5b665f;
  --borda:#dfe3d8;--card:#fff;--ok:#1d7a3e;--ok-bg:#e3f4e4;--warn:#7a5300;--warn-bg:#fff1c9;--bad:#a1261a;--bad-bg:#fde4e0;
  --info:#164f7a;--info-bg:#e1eefa;--neutral:#454f49;--neutral-bg:#eceee8;--r:12px;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--texto);background:var(--fundo);
}
*{box-sizing:border-box}
body{margin:0;background:var(--fundo);line-height:1.5;font-size:16px}
h1,h2,h3{font-family:Manrope,Inter,system-ui,sans-serif;letter-spacing:-.01em}
h1{font-size:1.6rem;margin:0}h2{font-size:1.15rem;margin:1.5rem 0 .6rem}
a{color:var(--verde-2)}a:hover{color:var(--verde)}
:focus-visible{outline:3px solid #2b6cb0;outline-offset:2px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--lima);padding:.6rem 1rem;z-index:99}.skip:focus{left:8px;top:8px}
small{display:block;color:var(--suave);font-size:.82rem}
.hint{color:var(--suave);font-size:.88rem;margin:.3rem 0}
.disclaimer{margin-top:2rem;font-size:.8rem}
.logo-mark{width:28px;height:34px;flex:none}
/* Logotipo: ESTOQUE + etiqueta FC com canto cortado (mesmo corte do escudo) */
.wordmark{font-family:'Barlow Condensed',Manrope,sans-serif;font-style:italic;font-weight:800;text-transform:uppercase;letter-spacing:.01em;display:inline-flex;align-items:center;gap:.22em;line-height:1;white-space:nowrap}
.wordmark b{background:var(--lima,#C5EF57);color:var(--verde,#123C32);font-weight:800;padding:.1em .38em .04em .3em;clip-path:polygon(0 0,calc(100% - .32em) 0,100% .32em,100% 100%,0 100%)}
.brand{display:flex;align-items:center;gap:.55rem;color:#fff;text-decoration:none;font-size:1.55rem}

/* Estrutura */
.shell{display:flex;min-height:100vh}
.side{display:none}
.main{flex:1;min-width:0;padding-bottom:84px}
.topbar{background:var(--verde);padding:.7rem 16px;position:sticky;top:0;z-index:10}
main{padding:16px;max-width:1180px;margin:0 auto}
.page-head{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;margin:.5rem 0 1rem}
.page-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.foot{color:var(--suave);font-size:.8rem;text-align:center;padding:1rem}
.bottom{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--borda);z-index:20;padding-bottom:env(safe-area-inset-bottom)}
.bottom ul{display:flex;list-style:none;margin:0;padding:0}
.bottom li{flex:1}
.bottom a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:.55rem 0;font-size:.72rem;color:var(--suave);text-decoration:none;min-height:56px}
.bottom a[aria-current]{color:var(--verde);font-weight:600}
.bottom a[aria-current] .ico{background:var(--lima);border-radius:10px}
.ico{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;padding:1px 4px;box-sizing:content-box}
@media (min-width:900px){
  .side{display:flex;flex-direction:column;width:240px;background:var(--verde);color:#fff;padding:20px 14px;position:sticky;top:0;height:100vh}
  .side nav ul{list-style:none;margin:28px 0;padding:0;display:grid;gap:4px}
  .side nav a{display:flex;gap:.7rem;align-items:center;color:#e7efe9;text-decoration:none;padding:.6rem .75rem;border-radius:10px}
  .side nav a:hover{background:var(--verde-2)}
  .side nav a[aria-current]{background:var(--lima);color:var(--verde);font-weight:600}
  .side-foot{margin-top:auto;border-top:1px solid #ffffff2a;padding-top:12px;display:flex;justify-content:space-between;align-items:end;gap:.5rem}
  .side-foot .who{font-size:.9rem}.side-foot small{color:#b9cbc2}.side-foot .link-btn{color:#e7efe9}
  .topbar,.bottom{display:none}.main{padding-bottom:0}
  main{padding:28px 32px}
}

/* Componentes */
.card{background:var(--card);border:1px solid var(--borda);border-radius:var(--r);padding:16px;margin:0 0 14px}
.card>h2:first-child{margin-top:0}
details.card>summary{cursor:pointer;min-height:28px}
details.card[open]>summary{margin-bottom:.8rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.55rem 1rem;border-radius:10px;border:1px solid var(--borda);background:#fff;color:var(--texto);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.2}
.btn:hover{border-color:var(--verde-2)}
.btn-primary{background:var(--lima);border-color:var(--lima-2);color:var(--verde)}.btn-primary:hover{background:var(--lima-2)}
.btn-danger{background:#fff;border-color:#e3b2ab;color:var(--bad)}
.btn-ghost{background:transparent}
.btn-sm{min-height:36px;padding:.3rem .7rem;font-size:.88rem}
.btn-block{width:100%}
.btn[disabled],.btn[aria-busy=true]{opacity:.6;cursor:progress}
.link-btn{background:none;border:0;color:var(--verde-2);text-decoration:underline;cursor:pointer;font:inherit;padding:.4rem}
.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.8rem 0}
.row form,.actions-bar form,.inline{display:inline}
.actions-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.quick{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.badge{display:inline-block;padding:.12rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap;border:1px solid transparent}
.b-ok{background:var(--ok-bg);color:var(--ok);border-color:#b9e0bd}.b-warn{background:var(--warn-bg);color:var(--warn);border-color:#f0d78a}
.b-bad{background:var(--bad-bg);color:var(--bad);border-color:#f2b9b1}.b-info{background:var(--info-bg);color:var(--info);border-color:#b7d3ee}
.b-neutral{background:var(--neutral-bg);color:var(--neutral);border-color:#d6dad1}
.flash{padding:.8rem 1rem;border-radius:10px;margin:0 0 14px;background:var(--info-bg);color:#123a5a;border-left:5px solid var(--info)}
.flash-ok{background:var(--ok-bg);color:#14532d;border-left-color:var(--ok)}
.flash-erro{background:var(--bad-bg);color:#6b1a11;border-left-color:var(--bad)}
.banner{padding:.7rem 16px;background:var(--info-bg);color:#123a5a;font-size:.92rem}.banner-warn{background:var(--warn-bg);color:#4d3400}
.offline{position:sticky;top:0;z-index:50;background:#3b0f0a;color:#fff;padding:.7rem 16px;text-align:center;font-weight:600}
.empty{text-align:center;padding:2.5rem 1rem;background:#fff;border:1px dashed var(--borda);border-radius:var(--r)}
.empty h2{margin-top:0}.empty p{color:var(--suave);max-width:46ch;margin:.4rem auto 1rem}

/* Formulários */
.form fieldset,fieldset{border:1px solid var(--borda);border-radius:10px;padding:12px;margin:0 0 14px}
legend{font-weight:700;padding:0 .3rem}
.grid{display:grid;gap:0 14px;grid-template-columns:1fr}
@media (min-width:640px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.grid{grid-template-columns:repeat(3,1fr)}}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;min-width:0}
.field label{font-weight:600;font-size:.9rem}
.req{color:var(--bad)}
input,select,textarea{font:inherit;font-size:16px;padding:.6rem .7rem;border:1px solid #c9cfc3;border-radius:9px;background:#fff;color:var(--texto);min-height:44px;width:100%}
input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--verde)}
input[type=file]{padding:.45rem}
.check{display:flex;gap:.55rem;align-items:center;font-weight:500;margin:.35rem 0;cursor:pointer}
.form-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.filters{display:flex;flex-wrap:wrap;gap:0 10px;align-items:end;margin-bottom:12px}
.filters .field{flex:1 1 150px;margin-bottom:8px}.filters>.btn{margin-bottom:8px}
.filters .hint{flex-basis:100%;margin:0}

/* Tabelas e listas */
.tbl-wrap{overflow-x:auto;background:#fff;border:1px solid var(--borda);border-radius:var(--r);margin-bottom:14px}
.tbl{width:100%;border-collapse:collapse;font-size:.92rem}
.tbl th{text-align:left;font-weight:600;color:var(--suave);background:#fafbf7;padding:.6rem .7rem;border-bottom:1px solid var(--borda);white-space:nowrap}
.tbl td{padding:.6rem .7rem;border-bottom:1px solid #eef0ea;vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.num{text-align:right;white-space:nowrap}
.muted td{opacity:.6}
.neg{color:var(--bad)}.pos{color:var(--ok)}
.due{color:var(--bad);font-weight:600}
.prod{display:flex;gap:.6rem;align-items:center;text-decoration:none;color:inherit}
.thumb{width:44px;height:44px;border-radius:8px;object-fit:cover;background:var(--neutral-bg);flex:none;display:inline-block}
.thumb-lg{width:96px;height:96px;object-fit:contain;border-radius:8px;border:1px solid var(--borda);vertical-align:middle}
.photo{max-width:220px;width:100%;border-radius:10px;border:1px solid var(--borda)}
.prod-head{display:flex;flex-wrap:wrap;gap:16px}
.kv{display:grid;gap:10px 18px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:0;flex:1}
.kv dt{font-size:.8rem;color:var(--suave)}.kv dd{margin:0;font-weight:500}
.cards{list-style:none;padding:0;margin:0 0 14px;display:grid;gap:10px}
.order-card a{display:grid;gap:6px;background:#fff;border:1px solid var(--borda);border-radius:var(--r);padding:12px 14px;text-decoration:none;color:inherit}
.order-card a:hover{border-color:var(--verde-2)}
.oc-top{display:flex;gap:.6rem;flex-wrap:wrap;align-items:baseline}.oc-date{margin-left:auto;color:var(--suave);font-size:.85rem}
.oc-badges{display:flex;gap:.35rem;flex-wrap:wrap}.oc-val{font-weight:600}
.list{list-style:none;padding:0;margin:0 0 14px;background:#fff;border:1px solid var(--borda);border-radius:var(--r)}
.list li{padding:.7rem 1rem;border-bottom:1px solid #eef0ea;display:flex;flex-wrap:wrap;gap:.3rem .8rem;align-items:baseline}
.list li:last-child{border-bottom:0}
.status-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:12px}
.totals dl,dl.totals{margin:0}
.totals div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dashed #e7eae2}
.totals dt{color:var(--suave)}.totals dd{margin:0;font-weight:600;white-space:nowrap}
.totals .total{border-bottom:0;font-size:1.1rem}.totals .total dt{color:var(--texto);font-weight:700}
.report-grid{display:grid;gap:14px}@media (min-width:900px){.report-grid{grid-template-columns:1fr 1fr}}
.formula{font-size:.88rem;color:var(--suave)}
.kpis{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:14px}
.kpi{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--borda);border-radius:var(--r);padding:14px;text-decoration:none;color:inherit;min-height:96px}
a.kpi:hover{border-color:var(--verde-2)}
.kpi>span:first-child{font-size:.85rem;color:var(--suave)}.kpi strong{font-family:Manrope,Inter,sans-serif;font-size:1.45rem}
.kpi-go{margin-top:auto;font-size:.78rem;color:var(--verde-2)}
.kpis-inline{background:#fff;border:1px solid var(--borda);border-radius:10px;padding:.6rem .9rem}
.top{margin:0;padding-left:1.3rem}.top li{padding:.25rem 0}
.steps li{margin:.4rem 0}.steps .done{color:var(--suave)}
.onboarding{border-left:5px solid var(--lima-2)}
.pager{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:center;margin:12px 0;color:var(--suave);font-size:.9rem}
.menu{position:relative;display:inline-block}
.menu>summary{list-style:none}.menu>summary::-webkit-details-marker{display:none}
.menu-list{position:absolute;right:0;z-index:30;background:#fff;border:1px solid var(--borda);border-radius:10px;box-shadow:0 8px 24px #0002;min-width:230px;padding:6px;display:grid}
.menu-list a{padding:.6rem .7rem;border-radius:8px;text-decoration:none;color:var(--texto)}.menu-list a:hover{background:var(--fundo)}
.menu-page{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:8px}
.menu-page a{display:flex;gap:.8rem;align-items:center;background:#fff;border:1px solid var(--borda);border-radius:var(--r);padding:14px;text-decoration:none;color:var(--texto);font-weight:600}
.settings a{flex-direction:column;align-items:flex-start;gap:2px}
.tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:14px;border-bottom:1px solid var(--borda)}
.tabs a{padding:.6rem .9rem;text-decoration:none;color:var(--suave);white-space:nowrap;border-bottom:3px solid transparent}
.tabs a[aria-current]{color:var(--verde);border-bottom-color:var(--lima-2);font-weight:600}
.team{display:grid;gap:.5rem}.danger-zone summary{color:var(--bad)}
.sizes{max-width:420px}.sizes td,.sizes th{padding:.35rem .5rem}.sizes input[type=number]{max-width:110px}

.filter-box{margin-bottom:12px}.filter-box>summary{list-style:none;margin-bottom:8px}.filter-box>summary::-webkit-details-marker{display:none}
@media (max-width:600px){.tbl{font-size:.85rem}.tbl td:first-child{min-width:150px}.tbl th,.tbl td{padding:.5rem .45rem}.prod .thumb{display:none}.page-actions .btn{min-height:40px}}

/* Login / cadastro */
.auth{background:var(--fundo);min-height:100vh}
.auth-grid{display:grid;min-height:100vh}
.auth-side{display:none}
@media (min-width:900px){
  .auth-grid{grid-template-columns:minmax(380px,44%) 1fr}
  .auth-side{display:flex;flex-direction:column;justify-content:space-between;padding:40px 48px;color:#fff;position:relative;overflow:hidden;
    background:repeating-linear-gradient(90deg,#123C32 0 90px,#15433a 90px 180px)}
  .auth-side::before{content:"";position:absolute;width:300px;height:300px;border:3px solid #ffffff14;border-radius:50%;right:-150px;top:50%;transform:translateY(-50%)}
  .auth-side::after{content:"";position:absolute;right:0;top:0;bottom:0;border-left:3px solid #ffffff14}
  .auth-side .brand{justify-content:flex-start}
  .auth-side h2{font-size:2.2rem;line-height:1.15;margin:0 0 1.4rem;position:relative}
  .auth-side h2 em{font-style:normal;color:var(--lima)}
  .auth-side ul{list-style:none;padding:0;margin:0;display:grid;gap:.8rem;position:relative}
  .auth-side li{padding-left:32px;position:relative;color:#d6e4dc}
  .auth-side li::before{content:"✓";position:absolute;left:0;width:22px;height:22px;border-radius:50%;background:var(--lima);color:var(--verde);font-weight:800;font-size:.8rem;display:grid;place-items:center}
  .auth-side-foot{color:#a9c2b5;margin:0;position:relative}
  .brand-auth-mobile{display:none!important}
}
.auth-main{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:32px 16px}
.brand-auth-mobile{color:var(--verde);font-size:2rem;margin-bottom:1.4rem}
.auth-card{width:100%;max-width:440px;background:#fff;border:1px solid var(--borda);border-radius:20px;padding:28px;box-shadow:0 20px 50px #123c3212}
.auth-card h1{font-size:1.6rem;margin-bottom:1rem}
.auth-foot{font-size:.85rem;color:var(--suave);margin-top:1.2rem;text-align:center}

/* Páginas públicas */
.public{background:var(--verde);min-height:100vh}
.public-main{max-width:460px;margin:0 auto;padding:32px 16px}
.public-main.wide{max-width:820px}
.brand-public{font-size:2.2rem;justify-content:center}.brand-public .logo-mark{width:44px;height:54px}
.tagline{color:#d7e6dd;text-align:center;margin:.3rem 0 1.4rem}
.public .card{padding:22px}.public .foot a{color:#d7e6dd}.public .foot{color:#d7e6dd}
.public h1{font-size:1.4rem;margin-bottom:.8rem}
.checks{padding-left:1.2rem}.checks li{margin:.3rem 0}
.price{background:var(--fundo);border-radius:10px;padding:.8rem}

/* Admin */
.admin-top{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;background:var(--verde);padding:.8rem 16px}
.admin-top nav{display:flex;flex-wrap:wrap;gap:1rem}.admin-top nav a,.admin-top .link-btn{color:#e7efe9}
.admin-main{max-width:1180px}

/* Impressão */
.print-page{background:#fff}.receipt{max-width:640px;margin:1rem auto;border:1px solid var(--borda);border-radius:10px;padding:20px}
.receipt pre{white-space:pre-wrap;font-family:inherit;font-size:.95rem}.receipt-logo{max-height:64px}
.copy-ok{color:var(--ok);font-weight:600}
.invite-link pre{white-space:pre-wrap;word-break:break-all;background:var(--fundo);border:1px solid var(--borda);border-radius:8px;padding:.7rem;font-size:.85rem}
@media print{.no-print,.bottom,.side,.topbar,.foot{display:none!important}.receipt{border:0;margin:0}body{background:#fff}}
