/* ═══════════════════════════════════════════════════════════
   VITHAX — styles.css
═══════════════════════════════════════════════════════════ */

/* ─── RESET ─────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
input,button,select,textarea{font-size:16px;font-family:inherit;-webkit-appearance:none;appearance:none;border-radius:0}
input[type=checkbox]{-webkit-appearance:checkbox;appearance:checkbox;border-radius:0}
img{display:block;max-width:100%}

/* ─── TOKENS ─────────────────────────────────────────────── */
:root{
  --bg:#0a0a0d; --s1:#141418; --s2:#1a1a21; --s3:#20202a;
  --b1:#252530; --b2:#2e2e3c; --b3:#3a3a50;
  --acc:#2563eb; --acc-g:rgba(37,99,235,.14); --acc-tx:#fff;
  --grn:#7cffc4; --grn-g:rgba(124,255,196,.12);
  --blu:#7eb3ff; --blu-g:rgba(126,179,255,.12);
  --org:#ffb347; --org-g:rgba(255,179,71,.12);
  --red:#ff5c5c; --red-g:rgba(255,92,92,.12);
  --tx1:#eeeef5; --tx2:#a0a0b8; --tx3:#5a5a72;
  --r:14px; --r-sm:9px;
  --st:env(safe-area-inset-top,0px); --sb:env(safe-area-inset-bottom,0px);
  --sl:env(safe-area-inset-left,0px); --sr:env(safe-area-inset-right,0px);
  /* aliases — evitam referências a variáveis indefinidas */
  --bdr:var(--b2); --brd:var(--b1);
  --bg2:var(--s2); --bg3:var(--s3);
  --sfc:var(--s2); --ac:var(--acc);
  --ok:var(--grn); --err:var(--red);
}

/* ─── BASE ───────────────────────────────────────────────── */
body{
  font-family:'Syne',sans-serif; background:var(--bg); color:var(--tx1);
  min-height:100vh; min-height:-webkit-fill-available;
  overscroll-behavior:none; -webkit-tap-highlight-color:transparent;
}
body::before{
  content:''; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:
    linear-gradient(rgba(37,99,235,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(37,99,235,.018) 1px,transparent 1px);
  background-size:48px 48px;
}
.hidden{display:none!important}

/* ─── AUTH SCREENS ───────────────────────────────────────── */
.auth-screen{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center;
  padding:max(1.2rem,var(--st)) 1.2rem max(1.2rem,var(--sb));
  background:var(--bg); overflow-y:auto;
  background-image:radial-gradient(ellipse 60% 50% at 50% 30%,rgba(37,99,235,.03) 0%,transparent 60%);
}
.auth-card{
  background:var(--s1); border:1px solid var(--b2); border-radius:22px;
  padding:2.2rem 1.8rem 2rem; width:100%; max-width:420px;
  position:relative; overflow:hidden; animation:fadeUp .35s ease both;
}
.auth-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--acc),var(--grn),transparent);
}
.auth-logo{display:flex;align-items:center;justify-content:center;gap:.65rem;margin-bottom:1.5rem}
.auth-logo-img{width:40px;height:40px;border-radius:10px;flex-shrink:0}
.auth-logo h2{font-size:1.55rem;font-weight:800;letter-spacing:-.04em;line-height:1;margin:0}
.auth-logo h2 .vi{color:#2563EB}.auth-logo h2 .thax{color:#8b95a5}
.auth-title{font-size:.68rem;color:var(--tx3);font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.4rem}
.auth-tabs{display:flex;gap:.4rem;margin-bottom:1.4rem;background:var(--s2);border-radius:10px;padding:.25rem}
.auth-tab{
  flex:1;padding:.55rem;border:none;border-radius:8px;cursor:pointer;
  font-family:'Syne',sans-serif;font-size:.78rem;font-weight:700;
  color:var(--tx2);background:transparent;transition:background .2s,color .2s;
  touch-action:manipulation;
}
.auth-tab.active{background:var(--s1);color:var(--tx1);box-shadow:0 1px 4px rgba(0,0,0,.4)}
.af{margin-bottom:.85rem}
.af label{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tx2);margin-bottom:.4rem}
.af input,.af select{
  width:100%;background:var(--s2);border:1px solid var(--b2);border-radius:11px;
  padding:.82rem 1rem;min-height:50px;color:var(--tx1);
  font-family:'DM Mono',monospace;font-size:16px;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.af input:focus,.af select:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-g)}
.af input::placeholder{color:var(--tx3)}
.af-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;align-items:end}
.af-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;align-items:end}
@media(max-width:520px){.af-3{grid-template-columns:1fr 1fr}}
@media(max-width:360px){.af-2,.af-3{grid-template-columns:1fr}}
.auth-err{font-size:.76rem;color:var(--red);min-height:1.1rem;margin-bottom:.6rem;font-weight:600;text-align:center}
.auth-btn{
  width:100%;background:var(--acc);color:var(--acc-tx);border:none;border-radius:11px;
  padding:.95rem;min-height:52px;font-family:'Syne',sans-serif;font-size:16px;
  font-weight:800;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;
  touch-action:manipulation;transition:background .15s;margin-top:.3rem;
}
.auth-btn:active{background:#3b82f6}
.auth-hint{margin-top:1rem;font-size:.66rem;color:var(--tx3);text-align:center;line-height:1.7}
.auth-hint-link{background:none;border:none;padding:0;font-size:inherit;font-family:inherit;font-weight:700;color:var(--acc);cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:opacity .15s}
.auth-hint-link:hover{opacity:.75}

/* ─── APP LAYOUT ─────────────────────────────────────────── */
#app{
  position:relative; z-index:1;
  padding:max(1.2rem,var(--st)) max(1rem,var(--sr)) max(5rem,calc(var(--sb)+4rem)) max(1rem,var(--sl));
}
.wrap{max-width:960px;margin:0 auto}

/* TOP BAR */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.1rem;flex-wrap:wrap}
.tlogo{display:flex;align-items:center;gap:.5rem}
.sys-logo-sm{width:24px;height:24px;border-radius:6px;flex-shrink:0}
.tlogo h1{font-size:1.2rem;font-weight:800;letter-spacing:-.04em;line-height:1}
.tlogo h1 .vi{color:#2563EB}.tlogo h1 .thax{color:#8b95a5}
.tright{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.user-badge{
  display:flex;align-items:center;gap:.4rem;
  background:var(--s1);border:1px solid var(--b2);border-radius:999px;
  padding:.3rem .8rem;font-size:.68rem;color:var(--tx2);font-weight:600;
}
.user-badge .uname{color:var(--tx1)}
.sync-wrap{position:relative;display:flex;align-items:center;flex-shrink:0}
.sync-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:background .35s,box-shadow .35s;cursor:default}
.pending-badge{position:absolute;top:-5px;right:-7px;background:var(--org);color:#fff;font-size:.5rem;font-weight:800;line-height:1;padding:2px 3px;border-radius:6px;min-width:13px;text-align:center;pointer-events:none;border:1.5px solid var(--bg)}
.sync-dot.sync-idle{background:var(--grn);box-shadow:0 0 0 2px rgba(124,255,196,.2)}
.sync-dot.sync-syncing{background:var(--org);box-shadow:0 0 0 3px rgba(255,179,71,.2);animation:sync-pulse 1.2s ease-in-out infinite}
.sync-dot.sync-offline{background:var(--red);box-shadow:0 0 0 2px rgba(255,92,92,.2)}
.sync-dot.sync-error{background:var(--org);box-shadow:0 0 0 2px rgba(255,179,71,.2)}
@keyframes sync-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.7}}
.sync-dot.cache-green{background:var(--grn);box-shadow:0 0 0 2px rgba(124,255,196,.2)}
.sync-dot.cache-yellow{background:#d4b84a;box-shadow:0 0 0 2px rgba(212,184,74,.2)}
.sync-dot.cache-orange{background:var(--org);box-shadow:0 0 0 2px rgba(255,179,71,.2)}
.sync-dot.cache-red{background:var(--red);box-shadow:0 0 0 2px rgba(255,92,92,.2)}
.offline-bar{
  display:flex;align-items:center;justify-content:center;gap:.45rem;
  background:rgba(255,92,92,.07);border-bottom:1px solid rgba(255,92,92,.16);
  padding:.28rem 1rem;font-size:.69rem;font-weight:600;color:var(--red);
  animation:fadeInDown .3s ease
}
.offline-bar.hidden{display:none}
.offline-bar-age{color:rgba(255,92,92,.5);font-weight:400}
/* ─── TRIAL BANNER ──────────────────────────────────────── */
.trial-banner{
  display:flex;align-items:center;justify-content:center;
  padding:.32rem 1rem;font-size:.72rem;font-weight:600;text-align:center;
  animation:fadeInDown .3s ease;line-height:1.4;
}
.trial-banner.hidden{display:none}
.trial-banner.info{background:rgba(126,179,255,.1);border-bottom:1px solid rgba(126,179,255,.2);color:var(--blu)}
.trial-banner.warning{background:rgba(255,179,71,.1);border-bottom:1px solid rgba(255,179,71,.2);color:var(--org)}
.trial-banner.critical{background:rgba(255,92,92,.1);border-bottom:1px solid rgba(255,92,92,.2);color:var(--red)}
.trial-banner.expired{background:rgba(255,92,92,.14);border-bottom:1px solid rgba(255,92,92,.3);color:var(--red)}
.trial-wa-btn{
  display:inline-block;margin-left:.5rem;padding:.18rem .6rem;
  background:#25d366;color:#fff;border-radius:5px;font-size:.68rem;
  font-weight:700;text-decoration:none;white-space:nowrap;
}
.trial-wa-btn:hover{background:#1ebe5d}

@keyframes fadeInDown{0%{opacity:0;transform:translateY(-6px)}100%{opacity:1;transform:translateY(0)}}
/* skeleton loading */
@keyframes skel-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.skel-sale{background:var(--s1);border-radius:14px;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.4rem;margin-bottom:.4rem}
.skel-card{background:var(--s1);border-radius:14px;padding:.75rem;display:flex;flex-direction:column;gap:.35rem}
.skel-line,.skel-img-sq{border-radius:6px;background:linear-gradient(90deg,var(--s2) 25%,var(--s3) 50%,var(--s2) 75%);background-size:200% 100%;animation:skel-shimmer 1.8s ease-in-out infinite}
.skel-line{height:.62rem}
.skel-img-sq{height:60px;border-radius:8px;margin-bottom:.1rem}
.skel-w60{width:60%}.skel-w40{width:40%}.skel-w70{width:70%}.skel-w50{width:50%}
.outbtn{
  background:transparent;border:1px solid var(--b2);border-radius:999px;
  padding:.36rem .85rem;min-height:34px;font-family:'Syne',sans-serif;
  font-size:.68rem;font-weight:700;color:var(--tx2);cursor:pointer;
  text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;touch-action:manipulation;
  transition:border-color .2s,color .2s;
}
.outbtn:active{border-color:var(--red);color:var(--red)}
.adm-access-btn{
  background:transparent;border:1px solid var(--acc);border-radius:999px;
  padding:.36rem .85rem;min-height:34px;font-family:'Syne',sans-serif;
  font-size:.68rem;font-weight:700;color:var(--acc);cursor:pointer;
  white-space:nowrap;touch-action:manipulation;transition:opacity .2s;
}
.adm-access-btn:active{opacity:.7}

/* NAV TABS */
.nav-tabs{
  display:flex;gap:.35rem;margin-bottom:1.1rem;
  background:var(--s1);border:1px solid var(--b1);
  border-radius:var(--r);padding:.3rem;
  overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--b2) transparent;}
.nav-tabs::-webkit-scrollbar{height:5px}
.nav-tabs::-webkit-scrollbar-track{background:transparent;margin:0 6px}
.nav-tabs::-webkit-scrollbar-thumb{background:var(--b2);border-radius:5px}
.nav-tabs::-webkit-scrollbar-thumb:hover{background:var(--b3)}
.nav-tab{
  flex-shrink:0;padding:.52rem 1rem;border:none;border-radius:var(--r-sm);
  cursor:pointer;font-family:'Syne',sans-serif;font-size:.78rem;font-weight:700;
  color:var(--tx2);background:transparent;
  transition:background .2s,color .2s;touch-action:manipulation;white-space:nowrap;
  display:flex;align-items:center;gap:.35rem;
}
.nav-tab.active{background:var(--s2);color:var(--tx1)}
.nav-tab .nbadge{
  font-size:.6rem;background:var(--s3);border-radius:999px;
  padding:.1rem .45rem;color:var(--tx3);font-family:'DM Mono',monospace;
}
.nav-tab.active .nbadge{background:var(--acc);color:var(--acc-tx)}
.tab-page{display:none}
.tab-page.active{display:block}

/* DASHBOARD */
/* ── Onboarding ─────────────────────────────────────────── */
.onb-card{background:linear-gradient(135deg,rgba(37,99,235,.06),rgba(56,189,248,.06));border:1px solid rgba(37,99,235,.2);border-radius:14px;padding:1.1rem 1.2rem;margin-bottom:1.2rem}
.onb-title{font-size:.82rem;font-weight:700;color:var(--tx1);margin-bottom:.85rem}
.onb-steps{display:flex;flex-direction:column;gap:.65rem;margin-bottom:.9rem}
.onb-step{display:flex;align-items:flex-start;gap:.75rem}
.onb-icon{font-size:1.2rem;line-height:1;flex-shrink:0;margin-top:.05rem}
.onb-step-title{font-size:.8rem;font-weight:700;color:var(--tx1);margin-bottom:.1rem}
.onb-step-desc{font-size:.74rem;color:var(--tx3)}
.onb-dismiss{font-size:.72rem;color:var(--tx3);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline}
.onb-dismiss:hover{color:var(--tx2)}
/* ── Dashboard ──────────────────────────────────────────── */
.dash{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem;margin-bottom:1.2rem}
@media(min-width:500px){.dash{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.dash{grid-template-columns:repeat(5,1fr)}}
.dc{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);padding:.82rem .9rem;position:relative;overflow:hidden}
.dc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--stripe,var(--b1))}
.dc:nth-child(1){--stripe:var(--blu)}
.dc:nth-child(2){--stripe:var(--acc)}
.dc:nth-child(3){--stripe:var(--grn)}
.dc:nth-child(4){--stripe:var(--org)}
.dc:nth-child(5){--stripe:var(--red)}
.dlbl{font-size:.56rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--tx3);margin-bottom:.26rem;line-height:1.3}
.dval{font-family:'DM Mono',monospace;font-size:.9rem;font-weight:500;color:var(--tx1);line-height:1.2}
.dc:nth-child(2) .dval{color:var(--acc)}
.dc:nth-child(3) .dval{color:var(--grn)}
.dc:nth-child(4) .dval{color:var(--org)}
.dc:nth-child(5) .dval{color:var(--red)}

/* SECTION HEADER */
.secthdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;flex-wrap:wrap;gap:.4rem}
.sectitle{font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tx3)}
.secright{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.cnt-badge{font-family:'DM Mono',monospace;font-size:.68rem;color:var(--tx2);background:var(--s2);border:1px solid var(--b1);border-radius:999px;padding:.13rem .62rem}

/* BUTTONS */
.btn-primary{
  background:var(--acc);color:var(--acc-tx);border:none;border-radius:10px;
  padding:.52rem 1.05rem;min-height:38px;font-family:'Syne',sans-serif;
  font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  cursor:pointer;touch-action:manipulation;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.3rem;transition:background .15s;
}
.btn-primary:active{background:#3b82f6}
.btn-ghost{
  background:transparent;border:1px solid var(--b2);border-radius:10px;
  padding:.48rem .9rem;min-height:36px;font-family:'Syne',sans-serif;
  font-size:.72rem;font-weight:700;color:var(--tx2);cursor:pointer;
  text-transform:uppercase;letter-spacing:.04em;touch-action:manipulation;
  transition:border-color .2s,color .2s;
}
.btn-ghost:active{border-color:var(--acc);color:var(--acc)}
.btn-danger{
  background:transparent;border:1px solid var(--b1);border-radius:8px;
  padding:.4rem .68rem;min-height:32px;font-size:.7rem;color:var(--tx3);
  cursor:pointer;touch-action:manipulation;transition:border-color .2s,color .2s;
}
.btn-danger:active{border-color:var(--red);color:var(--red)}
.btn-detail{
  background:var(--s2);border:1px solid var(--b2);border-radius:8px;
  padding:.38rem .82rem;min-height:32px;font-family:'Syne',sans-serif;
  font-size:.66rem;font-weight:700;color:var(--tx2);cursor:pointer;
  text-transform:uppercase;letter-spacing:.04em;touch-action:manipulation;
  transition:border-color .2s,color .2s;
}
.btn-detail:active{border-color:var(--blu);color:var(--blu)}

/* TOOLBAR */
.toolbar{display:flex;flex-wrap:wrap;gap:.48rem;align-items:center;margin-bottom:1rem}
.srchwrap{flex:1;min-width:140px;position:relative}
.srchwrap input{
  width:100%;background:var(--s1);border:1px solid var(--b2);border-radius:9px;
  padding:.54rem .85rem .54rem 2.1rem;color:var(--tx1);font-size:14px;min-height:38px;
  outline:none;transition:border-color .2s;
}
.srchwrap input:focus{border-color:var(--acc)}
.srchwrap input::placeholder{color:var(--tx3)}
.srchi{position:absolute;left:.68rem;top:50%;transform:translateY(-50%);font-size:.8rem;pointer-events:none;opacity:.38}
.fsel{
  background:var(--s1);border:1px solid var(--b2);border-radius:9px;
  padding:.54rem .8rem;min-height:38px;color:var(--tx1);font-size:14px;
  cursor:pointer;outline:none;transition:border-color .2s;
}
.fsel:focus{border-color:var(--acc)}
.fsel option{background:var(--s2);color:var(--tx1)}

/* EMPTY STATE */
.empty-state{text-align:center;padding:3rem 1rem;background:var(--s2);border:1px solid var(--b1);border-radius:var(--r)}
.empty-ico{font-size:2.6rem;opacity:.25;margin-bottom:.6rem}
.empty-title{font-size:1.05rem;font-weight:600;color:var(--tx2);margin-bottom:.3rem}
.empty-txt{font-size:.84rem;color:var(--tx3);line-height:1.6}
.empty-cta{margin-top:1rem;display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.2rem;border:none;border-radius:var(--r);background:var(--acc);color:var(--acc-tx);font-size:.82rem;font-weight:600;cursor:pointer;transition:opacity .15s}
.empty-cta:hover{opacity:.85}

/* SKELETON LOADING */
.skel{background:var(--s2);border-radius:var(--r);position:relative;overflow:hidden}
.skel::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,var(--s3) 50%,transparent 100%);animation:shimmer 1.5s ease-in-out infinite}
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.skel-text{height:.85rem;margin-bottom:.5rem;border-radius:4px}
.skel-text.w60{width:60%}.skel-text.w40{width:40%}.skel-text.w80{width:80%}.skel-text.w50{width:50%}
.skel-card{height:140px;border-radius:var(--r)}
.skel-row{height:3.2rem;margin-bottom:.5rem;border-radius:var(--r)}
.skel-circle{border-radius:50%}
.skel-container{animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* KEYBOARD SHORTCUTS OVERLAY */
.shortcuts-grid{display:grid;grid-template-columns:auto 1fr;gap:.5rem .85rem;align-items:center;text-align:left;padding:.5rem 0}
.shortcut-key{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 7px;background:var(--s2);border:1px solid var(--b2);border-radius:5px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.72rem;font-weight:600;color:var(--tx1);line-height:1.6;white-space:nowrap}
.shortcut-desc{font-size:.82rem;color:var(--tx2)}
.shortcut-section{grid-column:1/-1;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3);margin-top:.6rem;padding-bottom:.3rem;border-bottom:1px solid var(--b1)}

/* NOTIFICATION CENTER */
.notif-btn-wrap{position:relative}
.notif-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red);color:#fff;font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;pointer-events:none;line-height:1}
.notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-height:420px;background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);box-shadow:0 8px 32px rgba(0,0,0,.35);z-index:250;display:flex;flex-direction:column;animation:fadeIn .15s ease}
.notif-hdr{display:flex;align-items:center;justify-content:space-between;padding:.65rem .85rem;border-bottom:1px solid var(--b1);font-weight:700;font-size:.88rem;color:var(--tx1)}
.notif-hdr button{background:none;border:none;color:var(--tx3);font-size:1.1rem;cursor:pointer;padding:0;line-height:1}
.notif-list{flex:1;overflow-y:auto;padding:.35rem 0}
.notif-item{display:flex;align-items:flex-start;gap:.6rem;padding:.55rem .85rem;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--b1)}
.notif-item:last-child{border-bottom:none}
.notif-item:hover{background:var(--s2)}
.notif-item-ico{font-size:1.15rem;flex-shrink:0;margin-top:.1rem}
.notif-item-body{flex:1;min-width:0}
.notif-item-title{font-size:.78rem;font-weight:600;color:var(--tx1);margin-bottom:.15rem}
.notif-item-sub{font-size:.7rem;color:var(--tx3)}
.notif-item-type{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:4px;flex-shrink:0;margin-top:.15rem}
.notif-type-stock{background:var(--org-g);color:var(--org)}
.notif-type-bill{background:var(--red-g);color:var(--red)}
.notif-type-os{background:var(--blu-g);color:var(--blu)}
.notif-type-installment{background:var(--org-g);color:var(--org)}
.notif-type-trial{background:var(--acc-g);color:var(--acc)}
.notif-empty{text-align:center;padding:2rem 1rem;color:var(--tx3);font-size:.82rem}
@media(max-width:480px){.notif-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-height:70vh;border-radius:16px 16px 0 0}}

/* PRODUCT CARDS */
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem}
@media(min-width:480px){.prod-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}
.prod-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);overflow:hidden;position:relative;animation:rowIn .28s ease both;transition:border-color .2s}
.prod-card:hover{border-color:var(--b3)}
.prod-img{width:100%;height:100px;background:var(--s2);display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid var(--b1)}
.prod-img img{width:100%;height:100%;object-fit:cover}
.prod-img .pnoimg{font-size:1.8rem;opacity:.15}
.prod-body{padding:.8rem}
.prod-name{font-weight:700;font-size:.86rem;margin-bottom:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod-prices{display:flex;justify-content:space-between;margin-bottom:.45rem}
.pprice-item{display:flex;flex-direction:column;gap:1px}
.pprice-item .pl{font-size:.54rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--tx3)}
.pprice-item .pv{font-family:'DM Mono',monospace;font-size:.78rem;color:var(--tx2)}
.prod-profit{font-family:'DM Mono',monospace;font-size:.85rem;font-weight:600}
.prod-profit.pos{color:var(--acc)} .prod-profit.neg{color:var(--red)}
.prod-del{
  position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;
  background:rgba(10,10,13,.72);border:1px solid var(--b2);cursor:pointer;
  color:var(--tx3);font-size:.7rem;display:flex;align-items:center;justify-content:center;
  touch-action:manipulation;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  transition:background .15s,color .15s;
}
.prod-del:active{background:var(--red-g);color:var(--red)}

/* SALE CARDS */
.slist{display:flex;flex-direction:column;gap:.75rem}
.scard{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);overflow:hidden;animation:rowIn .28s ease both}
.sstripe{height:3px}
.sstripe.paid   {background:linear-gradient(90deg,var(--acc),var(--grn))}
.sstripe.partial{background:linear-gradient(90deg,var(--org),var(--blu))}
.sstripe.pending{background:linear-gradient(90deg,var(--red),var(--org))}
.scmain{display:flex}
.scimg{width:72px;min-width:72px;background:var(--s2);display:flex;align-items:center;justify-content:center;overflow:hidden;border-right:1px solid var(--b1)}
.scimg img{width:100%;height:100%;object-fit:cover}
.scimg .snoimg{font-size:1.4rem;opacity:.15}
.scbody{flex:1;padding:.82rem .88rem;min-width:0}
.scr1{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem;margin-bottom:.38rem}
.scname{font-weight:700;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scprofit{font-family:'DM Mono',monospace;font-size:.84rem;font-weight:600;flex-shrink:0}
.pos{color:var(--acc)} .neg{color:var(--red)}
.pills{display:flex;flex-wrap:wrap;gap:.28rem .48rem;margin-bottom:.44rem}
.pill{font-size:.58rem;font-weight:600;background:var(--s2);border:1px solid var(--b1);border-radius:999px;padding:.13rem .5rem;color:var(--tx2);white-space:nowrap;display:inline-flex;align-items:center;gap:.22rem}
.pill.pix  {border-color:rgba(124,255,196,.3);color:var(--grn)}
.pill.din  {border-color:rgba(37,99,235,.3);color:var(--acc)}
.pill.card {border-color:rgba(126,179,255,.3);color:var(--blu)}
.pill.boca {border-color:rgba(255,179,71,.3);color:var(--org)}
.pill.ok   {border-color:rgba(37,99,235,.25);color:var(--acc)}
.pill.pend {border-color:rgba(255,92,92,.25);color:var(--red)}
.scmoney{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.42rem}
.scmi{display:flex;flex-direction:column;gap:1px}
.scmi .ml{font-size:.52rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--tx3)}
.scmi .mv{font-family:'DM Mono',monospace;font-size:.74rem;font-weight:500;color:var(--tx2)}
.scmi .mv.ok{color:var(--acc)} .scmi .mv.warn{color:var(--org)} .scmi .mv.bad{color:var(--red)}
.pbarwrap{margin-bottom:.1rem}
.pbarlbl{display:flex;justify-content:space-between;font-size:.56rem;color:var(--tx3);margin-bottom:.22rem}
.pbar{height:3px;background:var(--s3);border-radius:2px;overflow:hidden}
.pbarfill{height:100%;border-radius:2px;background:var(--acc);transition:width .4s}
.pbarfill.part{background:var(--org)}
.scactions{padding:.56rem .88rem;border-top:1px solid var(--b1);display:flex;align-items:center;justify-content:space-between;gap:.4rem}

/* MODAL */
.moverlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(10,10,13,.9);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:flex;align-items:flex-end;justify-content:center;
  animation:fadein .2s ease both;
}
#pmod-ov{z-index:210}
@media(min-width:620px){.moverlay{align-items:center;padding:1rem}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.modal{
  background:var(--s1);border:1px solid var(--b2);
  border-radius:22px 22px 0 0;width:100%;max-width:620px;
  max-height:88vh;overflow-y:auto;  padding-bottom:max(1.5rem,var(--sb));
  animation:slideup .28s ease both;
}
/* footer sticky já tem safe-area próprio — remove gap duplo abaixo do botão salvar */
.modal:has(.mfooter){padding-bottom:0}
@media(min-width:620px){.modal{border-radius:22px;max-height:90vh}}
@keyframes slideup{from{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}
.modal::before{content:'';display:block;position:sticky;top:0;height:2px;background:linear-gradient(90deg,var(--acc),var(--grn),transparent);z-index:2}
.mhandle{width:36px;height:4px;border-radius:2px;background:var(--b2);margin:.8rem auto .35rem}
.mhdr{display:flex;align-items:center;justify-content:space-between;padding:.35rem 1.3rem .82rem;border-bottom:1px solid var(--b1);position:sticky;top:6px;background:var(--s1);z-index:1}
.mtitle{font-size:.95rem;font-weight:800;letter-spacing:-.02em}
.mclose{width:32px;height:32px;border-radius:50%;background:var(--s2);border:1px solid var(--b2);cursor:pointer;color:var(--tx2);font-size:.88rem;display:flex;align-items:center;justify-content:center;touch-action:manipulation;transition:background .15s}
.mclose:active{background:var(--red-g);color:var(--red)}
.mbody{padding:.95rem 1.3rem}
.mfooter{position:sticky;bottom:0;background:var(--s1);border-top:1px solid var(--b1);padding:.75rem 1.3rem max(1rem,var(--sb));display:flex;gap:.5rem;z-index:1}
.mfooter .subbtn{margin-top:0;flex:1}
.mfooter .btn-ghost{flex:1}

/* FORM ELEMENTS */
.fsect{margin-bottom:1.1rem}
.fsecttitle{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--tx3);margin-bottom:.68rem;display:flex;align-items:center;gap:.45rem}
.fsecttitle::after{content:'';flex:1;height:1px;background:var(--b1)}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.fg3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.65rem}
@media(max-width:380px){.fg2{grid-template-columns:1fr}.fg3{grid-template-columns:1fr 1fr}}
.fld{display:flex;flex-direction:column;gap:.34rem}
.fld label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tx2)}
.fld input,.fld select{background:var(--s2);border:1px solid var(--b2);border-radius:10px;padding:.75rem .88rem;min-height:50px;color:var(--tx1);font-family:'DM Mono',monospace;font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s;width:100%}
.fld input:focus,.fld select:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-g)}
.fld input::placeholder{color:var(--tx3)}
.fld select option{background:var(--s2);color:var(--tx1)}
.fld input[type=number]::-webkit-inner-spin-button,
.fld input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}
.fld input[type=number]{-moz-appearance:textfield}
.fld input[type=date]{color-scheme:dark}
.prod-select-wrap{position:relative}
.prod-select-wrap select{padding-left:.88rem}

/* IMG ZONE */
.imgzone{border:1.5px dashed var(--b2);border-radius:11px;min-height:54px;display:flex;align-items:center;gap:.7rem;padding:.7rem;cursor:pointer;background:var(--s2);position:relative;overflow:hidden;touch-action:manipulation;transition:border-color .2s}
.imgzone:active{border-color:var(--acc)}
.imgzone.has{border-color:var(--grn);border-style:solid}
.imgzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;font-size:16px}
.imgthumb{width:38px;height:38px;border-radius:7px;object-fit:cover;display:none;flex-shrink:0}
.imgzone.has .imgthumb{display:block}
.imgico{font-size:1.15rem;flex-shrink:0}
.imgzone.has .imgico{display:none}
.imgtxt{font-size:.66rem;font-weight:600;color:var(--tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.imgzone.has .imgtxt{color:var(--grn)}
.pf-photo-picker{display:flex;gap:.5rem;margin-top:.35rem}

/* SERIAL FIELD REVEAL (category-driven) */
.pf-serial-wrap{max-height:90px;overflow:hidden;transition:max-height .28s cubic-bezier(.4,0,.2,1),opacity .22s}
.pf-serial-wrap.hidden-field{max-height:0;opacity:0;pointer-events:none}

/* PROFIT BOXES */
.prow{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.65rem}
.pbox{background:var(--s2);border:1px solid var(--b2);border-radius:10px;padding:.7rem .88rem;min-height:50px;display:flex;flex-direction:column;gap:2px;justify-content:center}
.pblabel{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3)}
.pbval{font-family:'DM Mono',monospace;font-size:.88rem;font-weight:500;color:var(--acc);transition:color .2s}
.pbval.neg{color:var(--red)}

/* PAYMENT METHOD BUTTONS */
.pm-btns{display:flex;gap:.5rem;flex-wrap:wrap}
.pm-btn{flex:1;min-width:80px;padding:.65rem .5rem;border:1.5px solid var(--b2);border-radius:10px;cursor:pointer;background:var(--s2);color:var(--tx2);font-family:'Syne',sans-serif;font-size:.74rem;font-weight:700;text-align:center;touch-action:manipulation;transition:border-color .2s,background .2s,color .2s;display:flex;flex-direction:column;align-items:center;gap:.22rem}
.pm-btn .pmica{font-size:1.2rem}
.pm-btn:active,.pm-btn.sel{border-color:var(--acc);background:var(--acc-g);color:var(--acc)}
.ct-btns{display:flex;gap:.5rem;margin-bottom:.75rem}
.ct-btn{flex:1;padding:.42rem .5rem;border:1.5px solid var(--b2);border-radius:8px;cursor:pointer;background:var(--s2);color:var(--tx2);font-family:'Syne',sans-serif;font-size:.74rem;font-weight:700;text-align:center;transition:border-color .2s,background .2s,color .2s}
.ct-btn:active,.ct-btn.sel{border-color:var(--acc);background:var(--acc-g);color:var(--acc)}

/* BOCA BLOCK */
.boca-block{margin-top:.65rem;background:rgba(255,179,71,.04);border:1px solid rgba(255,179,71,.22);border-radius:12px;padding:.85rem}
.boca-hdr{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--org);margin-bottom:.65rem;display:flex;align-items:center;gap:.38rem}
.boca-summ{margin-top:.6rem;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:.62rem .78rem;font-size:.72rem;color:var(--tx2);line-height:1.9;font-family:'DM Mono',monospace}
.boca-summ b{color:var(--tx1)} .boca-summ .ok{color:var(--acc)} .boca-summ .warn{color:var(--org)}
.misto-block{margin-top:.65rem;background:rgba(100,160,255,.04);border:1px solid rgba(100,160,255,.2);border-radius:12px;padding:.75rem}
.misto-hdr{font-size:.69rem;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.6rem}
.misto-line{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:.4rem}
.misto-card-type{display:flex;gap:.4rem;width:100%;padding-bottom:.15rem}
.misto-line-sel{flex:1;min-width:0;font-size:.78rem;padding:.34rem .4rem;border:1.5px solid var(--b2);border-radius:.42rem;background:var(--s1);color:var(--tx1);outline:none}
.misto-line-sel:focus{border-color:var(--acc)}
.misto-line-val{width:95px;flex-shrink:0;font-size:.8rem;padding:.34rem .42rem;border:1.5px solid var(--b2);border-radius:.42rem;background:var(--s1);color:var(--tx1);outline:none;text-align:right}
.misto-line-val:focus{border-color:var(--acc)}
.misto-line-del{flex-shrink:0;width:28px;height:28px;border:none;background:transparent;color:var(--red);font-size:.82rem;cursor:pointer;border-radius:.35rem;opacity:.6;display:flex;align-items:center;justify-content:center}
.misto-line-del:hover{opacity:1;background:rgba(255,80,80,.1)}
.misto-add-btn{background:none;border:1.5px dashed var(--b2);color:var(--tx3);font-size:.74rem;font-weight:700;width:100%;padding:.38rem;border-radius:.42rem;cursor:pointer;margin-top:.05rem;transition:border-color .15s,color .15s}
.misto-add-btn:hover{border-color:var(--acc);color:var(--acc)}
.misto-summ{margin-top:.5rem;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:.5rem .7rem;font-size:.72rem;font-family:'DM Mono',monospace}
.misto-summ.hidden{display:none}
.misto-summ .ok{color:var(--acc)} .misto-summ .warn{color:var(--org)}

/* CARD PREVIEW */
.inst-preview{margin-top:.6rem;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:.62rem .78rem;font-size:.72rem;color:var(--tx2);line-height:1.9;font-family:'DM Mono',monospace}

/* SUBMIT BUTTON */
.subbtn{
  width:100%;background:var(--acc);color:var(--acc-tx);border:none;border-radius:12px;
  padding:.95rem;min-height:54px;font-family:'Syne',sans-serif;font-size:16px;
  font-weight:800;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;
  touch-action:manipulation;margin-top:1rem;
  display:flex;align-items:center;justify-content:center;gap:.4rem;transition:background .15s;
}
.subbtn:active{background:#3b82f6}

/* DETAIL MODAL */
.dhero{display:flex;gap:.85rem;align-items:flex-start;padding:.95rem 1.3rem;border-bottom:1px solid var(--b1)}
.dheroimg{width:66px;height:66px;border-radius:11px;object-fit:cover;flex-shrink:0;background:var(--s2);display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--b2)}
.dheroimg .noimg{font-size:1.6rem;opacity:.15}
.dheroinf{flex:1;min-width:0}
.dpname{font-size:.98rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.26rem}
.dclient{font-size:.74rem;color:var(--tx2);margin-bottom:.42rem}
.dbadges{display:flex;flex-wrap:wrap;gap:.28rem}
.damts{display:grid;grid-template-columns:repeat(3,1fr);gap:.48rem;padding:.8rem 1.3rem;border-bottom:1px solid var(--b1)}
@media(min-width:480px){.damts{grid-template-columns:repeat(5,1fr)}}
.dabox{background:var(--s2);border-radius:9px;padding:.58rem .7rem;text-align:center;border:1px solid var(--b1)}
.dalbl{font-size:.52rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3);margin-bottom:.18rem}
.daval{font-family:'DM Mono',monospace;font-size:.78rem;font-weight:500;color:var(--tx1)}
.daval.pos{color:var(--acc)} .daval.neg{color:var(--red)} .daval.warn{color:var(--org)} .daval.grn{color:var(--grn)}
.dinsts{padding:.82rem 1.3rem}
.dinsttitle{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--tx3);margin-bottom:.65rem;display:flex;align-items:center;gap:.45rem}
.dinsttitle::after{content:'';flex:1;height:1px;background:var(--b1)}
.irow{display:flex;align-items:center;justify-content:space-between;padding:.6rem .8rem;background:var(--s2);border:1px solid var(--b1);border-radius:9px;margin-bottom:.4rem;gap:.55rem;transition:border-color .2s}
.irow.paid   {border-color:rgba(37,99,235,.18);background:rgba(37,99,235,.03)}
.irow.entrada{border-color:rgba(124,255,196,.18);background:rgba(124,255,196,.03)}
.irow.overdue{border-color:rgba(255,92,92,.18);background:rgba(255,92,92,.03)}
.ileft{flex:1;min-width:0}
.inum{font-size:.56rem;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.09rem}
.idate{font-size:.72rem;font-family:'DM Mono',monospace;color:var(--tx2)}
.istatus{font-size:.6rem;margin-top:.08rem}
.iright{display:flex;align-items:center;gap:.52rem;flex-shrink:0}
.ival{font-family:'DM Mono',monospace;font-size:.84rem;font-weight:500}
.ival.paid{color:var(--acc)} .ival.ent{color:var(--grn)}
.paybtn{background:var(--s3);border:1px solid var(--b2);border-radius:7px;padding:.34rem .68rem;min-height:30px;font-family:'Syne',sans-serif;font-size:.6rem;font-weight:700;color:var(--tx2);cursor:pointer;white-space:nowrap;touch-action:manipulation;text-transform:uppercase;letter-spacing:.04em;transition:background .15s,border-color .15s,color .15s}
.paybtn:active{background:var(--acc-g);border-color:var(--acc);color:var(--acc)}
.paidbdg{font-size:.6rem;font-weight:700;color:var(--acc);font-family:'Syne',sans-serif;text-transform:uppercase;letter-spacing:.04em}
.entbdg {font-size:.6rem;font-weight:700;color:var(--grn);font-family:'Syne',sans-serif;text-transform:uppercase;letter-spacing:.04em}
.unpaidbtn{background:rgba(255,92,92,.08);border:1px solid rgba(255,92,92,.22);border-radius:7px;padding:.34rem .68rem;min-height:30px;font-family:'Syne',sans-serif;font-size:.6rem;font-weight:700;color:rgba(255,92,92,.75);cursor:pointer;white-space:nowrap;touch-action:manipulation;text-transform:uppercase;letter-spacing:.04em;transition:background .15s,border-color .15s,color .15s}
.unpaidbtn:active{background:rgba(255,92,92,.18);border-color:rgba(255,92,92,.5);color:rgb(255,92,92)}
.edit-btn{background:var(--s2);border:1px solid var(--b2);border-radius:7px;padding:.34rem .68rem;min-height:30px;font-family:'Syne',sans-serif;font-size:.6rem;font-weight:700;color:var(--tx2);cursor:pointer;white-space:nowrap;touch-action:manipulation;text-transform:uppercase;letter-spacing:.04em;transition:background .15s,border-color .15s,color .15s}
.edit-btn:active{background:var(--blu-g);border-color:var(--blu);color:var(--blu)}

/* CLIENT LIST */
.client-list{display:flex;flex-direction:column;gap:.55rem}
.client-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);padding:.85rem 1rem;display:flex;align-items:center;gap:.8rem;animation:rowIn .28s ease both}
.client-avatar{width:40px;height:40px;border-radius:50%;background:var(--s3);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;border:1px solid var(--b2);font-weight:700;color:var(--acc);font-family:'Syne',sans-serif}
.client-info{flex:1;min-width:0}
.client-name{font-weight:700;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.client-meta{font-size:.7rem;color:var(--tx2);margin-top:.12rem;font-family:'DM Mono',monospace}
.client-stats{display:flex;gap:.5rem;margin-top:.38rem;flex-wrap:wrap}
.cstat{font-size:.6rem;color:var(--tx3);background:var(--s2);border-radius:999px;padding:.1rem .5rem;border:1px solid var(--b1)}

/* PAGINATION */
.pag-bar{display:flex;align-items:center;gap:.5rem;padding:.6rem 0;justify-content:center;flex-wrap:wrap;margin-top:.2rem}
.pag-info{font-size:.7rem;color:var(--tx3);white-space:nowrap;padding:0 .2rem}

/* STOCK BADGE */
.prod-stock{font-size:.6rem;font-weight:700;padding:.1rem .38rem;border-radius:4px;margin-top:.22rem;display:inline-block}
.prod-stock.stk-ok{background:rgba(37,99,235,.12);color:var(--acc)}
.prod-stock.stk-low{background:rgba(255,179,71,.15);color:var(--org)}
.prod-stock.stk-out{background:rgba(255,92,92,.15);color:var(--red)}
.prod-serial{font-size:.58rem;color:var(--tx3);font-family:'DM Mono',monospace;margin-top:.14rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* TOAST */
#toast{
  position:fixed;z-index:500;
  bottom:max(1.5rem,calc(var(--sb)+1rem));
  left:50%;transform:translateX(-50%) translateY(60px);
  background:var(--acc);color:var(--acc-tx);
  font-family:'Syne',sans-serif;font-size:.8rem;font-weight:700;
  padding:.62rem 1.4rem;border-radius:999px;
  opacity:0;pointer-events:none;white-space:nowrap;
  transition:opacity .22s,transform .22s;
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.err{background:var(--red);color:#fff}
#toast.ok {background:var(--grn);color:#0a0a0d}

/* BARRA DE REFRESH */
.refresh-bar{
  position:fixed;top:0;left:0;width:100%;height:3px;z-index:9999;
  background:linear-gradient(90deg,var(--ac),#6ab4ff,var(--ac));
  background-size:200% 100%;
  animation:refresh-slide 1.2s linear infinite;
}
.refresh-bar.hidden{display:none}
@keyframes refresh-slide{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes rowIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}60%{transform:translateX(7px)}80%{transform:translateX(-3px)}}

/* PROFILE MODAL */
.profile-modal-body{padding:1rem 1.3rem 1.5rem}
.pf-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:.6rem;margin-bottom:1.2rem}
.pf-avatar-ring{width:80px;height:80px;border-radius:50%;border:2px solid var(--b2);background:var(--s2);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;position:relative;flex-shrink:0;transition:border-color .2s}
.pf-avatar-ring:hover{border-color:var(--ac)}
.pf-avatar-ring img{width:100%;height:100%;object-fit:cover}
.pf-avatar-ring .pf-avatar-ico{font-size:2rem;opacity:.35}
.pf-avatar-cam{position:absolute;bottom:4px;right:4px;font-size:.75rem;background:var(--ac);border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .2s}
.pf-avatar-ring:hover .pf-avatar-cam{opacity:1}
.pf-avatar-hint{font-size:.64rem;color:var(--tx3);text-align:center}
.tlogo-img{width:28px;height:28px;border-radius:6px;object-fit:cover;border:1px solid var(--b2);flex-shrink:0}
.dash-range-bar{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.9rem;align-items:center}
.range-btn,.mode-btn{font-size:.68rem;padding:.3rem .75rem;border-radius:999px;border:1px solid var(--bdr);background:transparent;color:var(--tx3);cursor:pointer;transition:all .15s}
.range-btn:hover,.mode-btn:hover{border-color:var(--acc);color:var(--acc)}
.range-btn.active{background:var(--acc);color:var(--acc-tx);border-color:var(--acc);font-weight:600}
.mode-btn.active{background:var(--s2);color:var(--tx1);border-color:var(--b2);font-weight:600}
.dash-filter-sep{width:1px;height:18px;background:var(--bdr);margin:0 .2rem}
.dash-chart-pair{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.5rem}
@media(max-width:480px){.dash-chart-pair{grid-template-columns:1fr}}
.os-dash-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r-sm);padding:.65rem .8rem;margin-bottom:.45rem;border-left:3px solid var(--bdr);transition:background .15s}
.os-dash-card:hover{background:var(--s2)}
.dash-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:1.1rem}
.profile-btn{
  background:transparent;border:1px solid var(--b2);border-radius:999px;
  padding:.36rem .85rem;min-height:34px;font-family:'Syne',sans-serif;
  font-size:.68rem;font-weight:700;color:var(--tx2);cursor:pointer;
  text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;
  touch-action:manipulation;transition:border-color .2s,color .2s;
  display:flex;align-items:center;gap:.4rem;
}
.profile-btn:active{border-color:var(--acc);color:var(--acc)}
.profile-btn .pb-logo{width:20px;height:20px;border-radius:4px;object-fit:cover;border:1px solid var(--b2);flex-shrink:0;display:none}
.profile-btn .pb-logo.show{display:block}

/* ── STATUS CHIP (topbar) ── */
.store-chip{background:transparent;border:1px solid var(--b2);border-radius:999px;padding:.36rem .7rem;min-height:34px;font-family:'Syne',sans-serif;font-size:.72rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:.3rem;white-space:nowrap;touch-action:manipulation;transition:border-color .2s,color .2s}
.store-chip.is-open{border-color:rgba(76,175,80,.55);color:#4caf50}
.store-chip.is-closed{border-color:rgba(239,83,80,.45);color:#ef5350}
.store-chip .sc-dot{font-size:.6rem;line-height:1}
/* ── SCHEDULE EDITOR (modal de perfil) ── */
.store-ovr{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.6rem}
.store-ovr-lbl{font-size:.7rem;color:var(--tx3);font-weight:600;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}
.store-ovr-btns{display:flex;gap:.3rem;flex-wrap:wrap}
.sor-btn{background:transparent;border:1px solid var(--b2);border-radius:8px;padding:.3rem .6rem;font-size:.7rem;font-weight:700;font-family:'Syne',sans-serif;cursor:pointer;color:var(--tx2);transition:all .15s;touch-action:manipulation}
.sor-btn.active-sched{border-color:var(--acc);color:var(--acc);background:rgba(37,99,235,.08)}
.sor-btn.active-open{border-color:#4caf50;color:#4caf50;background:rgba(76,175,80,.08)}
.sor-btn.active-closed{border-color:#ef5350;color:#ef5350;background:rgba(239,83,80,.08)}
.sched-grid{display:flex;flex-direction:column;gap:.3rem;margin-top:.1rem}
.sched-row{display:grid;grid-template-columns:2.4rem 1fr auto;align-items:center;gap:.45rem}
.sched-day{font-size:.72rem;font-weight:700;color:var(--tx1)}
.sched-closed-lbl{font-size:.68rem;color:var(--tx3);display:flex;align-items:center;gap:.3rem;cursor:pointer;white-space:nowrap;user-select:none}
.sched-times{display:flex;align-items:center;gap:.3rem}
.sched-times input[type=time]{background:var(--s2);border:1px solid var(--b2);border-radius:6px;padding:.28rem .4rem;font-size:.7rem;color:var(--tx1);outline:none;width:5.5rem;font-family:'DM Mono',monospace;min-width:0}
.sched-sep{font-size:.65rem;color:var(--tx3)}

/* TEMA BUTTON */
.theme-toggle-btn{background:transparent;border:1px solid var(--b2);border-radius:999px;padding:.36rem .85rem;min-height:34px;font-family:'Syne',sans-serif;font-size:.68rem;font-weight:700;color:var(--tx2);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;touch-action:manipulation;transition:border-color .2s,color .2s}
.theme-toggle-btn:active{border-color:var(--acc);color:var(--acc)}

/* ─── SW UPDATE BAR ─────────────────────────────────────── */
.sw-update-bar{
  position:fixed;top:calc(env(safe-area-inset-top,0px) + .6rem);
  left:50%;transform:translateX(-50%);
  width:calc(100% - 2rem);max-width:440px;
  background:#1a2a1a;border:1px solid var(--acc-g);border-radius:16px;
  padding:.85rem 1rem;display:flex;align-items:center;gap:.75rem;
  box-shadow:0 6px 24px rgba(0,0,0,.65),0 0 0 1px rgba(37,99,235,.15);
  z-index:902;animation:slidedown .4s cubic-bezier(.22,.68,0,1.2) both
}
.sw-update-bar.hidden{display:none}
.sw-update-bar-icon{
  width:30px;height:30px;background:var(--acc-g);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.95rem;font-weight:800;color:#000;flex-shrink:0;line-height:1
}
@keyframes slidedown{from{opacity:0;transform:translateX(-50%) translateY(-16px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* ─── PWA INSTALL BANNER ────────────────────────────────── */
.install-banner{
  position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 1rem);
  left:50%;transform:translateX(-50%);
  width:calc(100% - 2rem);max-width:440px;
  background:var(--s1);border:1px solid var(--b2);border-radius:16px;
  padding:.85rem 1rem;display:flex;align-items:center;gap:.75rem;
  box-shadow:0 12px 40px rgba(0,0,0,.65),0 0 0 1px var(--acc-g);
  z-index:900;animation:slideup .4s cubic-bezier(.22,.68,0,1.2) both
}
.install-banner.hidden{display:none}
.install-banner-icon{font-size:1.7rem;flex-shrink:0;line-height:1}
.install-banner-text{flex:1;min-width:0}
.install-banner-text strong{display:block;font-size:.8rem;font-weight:700;color:var(--tx1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.install-banner-text span{font-size:.7rem;color:var(--tx3)}
.install-banner-btn{
  background:var(--acc);color:var(--bg);border:none;border-radius:8px;
  padding:.45rem 1rem;font-size:.75rem;font-weight:700;cursor:pointer;
  font-family:'Syne',sans-serif;flex-shrink:0;white-space:nowrap;
  transition:opacity .15s
}
.install-banner-btn:active{opacity:.8}
.install-banner-x{
  background:none;border:none;color:var(--tx3);cursor:pointer;
  font-size:1rem;padding:.3rem;flex-shrink:0;line-height:1;
  transition:color .15s
}
.install-banner-x:hover{color:var(--tx1)}

/* ─── TEMAS ──────────────────────────────────────────────── */
:root,body.theme-dark{
  --bg:#0a0a0d; --s1:#141418; --s2:#1a1a21; --s3:#20202a;
  --b1:#252530; --b2:#2e2e3c; --b3:#3a3a50;
  --acc:#2563eb; --acc-g:rgba(37,99,235,.14); --acc-tx:#fff;
  --grn:#7cffc4; --grn-g:rgba(124,255,196,.12);
  --blu:#7eb3ff; --blu-g:rgba(126,179,255,.12);
  --org:#ffb347; --org-g:rgba(255,179,71,.12);
  --red:#ff5c5c; --red-g:rgba(255,92,92,.12);
  --tx1:#eeeef5; --tx2:#a0a0b8; --tx3:#5a5a72;
}
body.theme-light{
  --bg:#dce0e9; --s1:#f3f4f7; --s2:#e8eaf0; --s3:#dde1e9;
  --b1:#c8cdd6; --b2:#b5bbc6; --b3:#9ea5b3;
  --acc:#1e40af; --acc-g:rgba(30,64,175,.10); --acc-tx:#fff;
  --grn:#166534; --grn-g:rgba(22,101,52,.10);
  --blu:#1d4ed8; --blu-g:rgba(29,78,216,.10);
  --org:#c2410c; --org-g:rgba(194,65,12,.10);
  --red:#b91c1c; --red-g:rgba(185,28,28,.10);
  --tx1:#111827; --tx2:#374151; --tx3:#5a6272;
}
body.theme-green{
  --bg:#0a0a0d; --s1:#141418; --s2:#1a1a21; --s3:#20202a;
  --b1:#252530; --b2:#2e2e3c; --b3:#3a3a50;
  --acc:#22c55e; --acc-g:rgba(34,197,94,.14); --acc-tx:#0a0a0d;
  --grn:#10b981; --grn-g:rgba(16,185,129,.12);
  --blu:#3b82f6; --blu-g:rgba(59,130,246,.12);
  --org:#f59e0b; --org-g:rgba(245,158,11,.12);
  --red:#ef4444; --red-g:rgba(239,68,68,.12);
  --tx1:#eeeef5; --tx2:#a0a0b8; --tx3:#5a5a72;
}
body.theme-lime{
  --bg:#0a0a0d; --s1:#141418; --s2:#1a1a21; --s3:#20202a;
  --b1:#252530; --b2:#2e2e3c; --b3:#3a3a50;
  --acc:#c8f542; --acc-g:rgba(200,245,66,.14); --acc-tx:#0a0a0d;
  --grn:#7cffc4; --grn-g:rgba(124,255,196,.12);
  --blu:#7eb3ff; --blu-g:rgba(126,179,255,.12);
  --org:#ffb347; --org-g:rgba(255,179,71,.12);
  --red:#ff5c5c; --red-g:rgba(255,92,92,.12);
  --tx1:#eeeef5; --tx2:#a0a0b8; --tx3:#5a5a72;
}
body.theme-purple{
  --bg:#0a0a0d; --s1:#141418; --s2:#1a1a21; --s3:#20202a;
  --b1:#252530; --b2:#2e2e3c; --b3:#3a3a50;
  --acc:#a855f7; --acc-g:rgba(168,85,247,.14); --acc-tx:#fff;
  --grn:#d946ef; --grn-g:rgba(217,70,239,.12);
  --blu:#7c3aed; --blu-g:rgba(124,58,237,.12);
  --org:#f59e0b; --org-g:rgba(245,158,11,.12);
  --red:#ef4444; --red-g:rgba(239,68,68,.12);
  --tx1:#eeeef5; --tx2:#a0a0b8; --tx3:#5a5a72;
}
body.theme-midnight{
  --bg:#06091a; --s1:#0d1228; --s2:#131c38; --s3:#1a2548;
  --b1:#1f2e55; --b2:#283a6a; --b3:#334882;
  --acc:#22d3ee; --acc-g:rgba(34,211,238,.14); --acc-tx:#0a0a0d;
  --grn:#4ade80; --grn-g:rgba(74,222,128,.12);
  --blu:#818cf8; --blu-g:rgba(129,140,248,.12);
  --org:#fb923c; --org-g:rgba(251,146,60,.12);
  --red:#f87171; --red-g:rgba(248,113,113,.12);
  --tx1:#e2e8f0; --tx2:#8ba0c0; --tx3:#475569;
}
body.theme-amber{
  --bg:#0c0904; --s1:#170f06; --s2:#1f160a; --s3:#281d12;
  --b1:#342515; --b2:#422e1c; --b3:#523b26;
  --acc:#f59e0b; --acc-g:rgba(245,158,11,.16); --acc-tx:#0a0a0d;
  --grn:#86efac; --grn-g:rgba(134,239,172,.12);
  --blu:#7dd3fc; --blu-g:rgba(125,211,252,.12);
  --org:#fcd34d; --org-g:rgba(252,211,77,.12);
  --red:#fca5a5; --red-g:rgba(252,165,165,.12);
  --tx1:#fef6e8; --tx2:#c49a5a; --tx3:#8b6d3f;
}
body.theme-nord{
  --bg:#161c24; --s1:#1e2633; --s2:#273040; --s3:#313d52;
  --b1:#3b4a60; --b2:#485878; --b3:#566890;
  --acc:#88c0d0; --acc-g:rgba(136,192,208,.16); --acc-tx:#0a0a0d;
  --grn:#a3be8c; --grn-g:rgba(163,190,140,.14);
  --blu:#81a1c1; --blu-g:rgba(129,161,193,.14);
  --org:#ebcb8b; --org-g:rgba(235,203,139,.14);
  --red:#bf616a; --red-g:rgba(191,97,106,.14);
  --tx1:#eceff4; --tx2:#9caabb; --tx3:#5a6e80;
}
body.theme-neon{
  --bg:#07050f; --s1:#0f0a1f; --s2:#16102e; --s3:#1e1640;
  --b1:#291e58; --b2:#35276e; --b3:#433285;
  --acc:#e040fb; --acc-g:rgba(224,64,251,.16); --acc-tx:#0a0a0d;
  --grn:#39ff14; --grn-g:rgba(57,255,20,.13);
  --blu:#00d4ff; --blu-g:rgba(0,212,255,.13);
  --org:#ff9a00; --org-g:rgba(255,154,0,.13);
  --red:#ff2854; --red-g:rgba(255,40,84,.13);
  --tx1:#f0e8ff; --tx2:#a880d0; --tx3:#7a58b8;
}

/* TRANSIÇÕES SUAVES */
body{transition:background-color .3s ease,color .3s ease}
.auth-card,.modal,.nav-tabs,.dc,.scard,.prod-card,.client-card,.auth-screen{
  transition:background-color .3s ease,border-color .3s ease,color .3s ease;
}

.pf-avatar-ring img.hidden,
.pf-avatar-ring .pf-avatar-ico.hidden{display:none}

/* ═══════════════════════════════════════════════════════════
   NOTIFICATION SYSTEM
═══════════════════════════════════════════════════════════ */

/* ─── Overdues badge no nav tab ─────────────────────────── */
.overdues-badge{
  background:var(--red)!important;color:#fff!important;
  margin-left:3px;animation:pulse-badge 1.8s ease-in-out infinite;
}
@keyframes pulse-badge{
  0%,100%{box-shadow:0 0 0 0 rgba(255,92,92,.5)}
  50%{box-shadow:0 0 0 5px rgba(255,92,92,0)}
}

/* ─── Card de notificações no dashboard ─────────────────── */
.notif-card{
  background:var(--s1);border:1px solid var(--b2);border-radius:var(--r);
  margin-bottom:1rem;overflow:hidden;animation:fadeUp .3s ease both;
}
.notif-card::before{
  content:'';display:block;height:2px;
  background:linear-gradient(90deg,var(--red),var(--org),transparent);
}
.notif-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:.7rem 1rem .5rem;gap:.5rem;
}
.notif-title{font-size:.78rem;font-weight:700;color:var(--tx1)}
.notif-count{
  font-size:.65rem;font-weight:700;border-radius:20px;
  padding:.15rem .55rem;min-width:22px;text-align:center;
}
.notif-count.red{background:var(--red-g);color:var(--red);border:1px solid var(--red)}
.notif-count.yellow{background:var(--org-g);color:var(--org);border:1px solid var(--org)}

/* ─── Estatísticas no topo do card ─────────────────────── */
.notif-stats{
  display:flex;gap:.5rem;padding:0 1rem .65rem;flex-wrap:wrap;
}
.notif-stat{
  flex:1 1 80px;min-width:72px;border-radius:var(--r-sm);
  padding:.5rem .7rem;text-align:center;
}
.notif-stat.red{background:var(--red-g);border:1px solid rgba(255,92,92,.25)}
.notif-stat.yellow{background:var(--org-g);border:1px solid rgba(255,179,71,.25)}
.notif-stat.blue{background:var(--blu-g);border:1px solid rgba(126,179,255,.25)}
.ns-num{display:block;font-size:1.25rem;font-weight:800;line-height:1}
.notif-stat.red .ns-num{color:var(--red)}
.notif-stat.yellow .ns-num{color:var(--org)}
.notif-stat.blue .ns-num{color:var(--blu)}
.ns-lbl{display:block;font-size:.58rem;color:var(--tx3);margin-top:.2rem;text-transform:uppercase;letter-spacing:.06em}

/* ─── Lista de itens ────────────────────────────────────── */
.notif-list{border-top:1px solid var(--b1);padding:.3rem 0}
.notif-item{
  display:flex;align-items:center;justify-content:space-between;
  padding:.5rem 1rem;gap:.5rem;border-left:3px solid transparent;
  transition:background .15s;
}
.notif-item:hover{background:var(--s2)}
.notif-item.overdue{border-left-color:var(--red);background:rgba(255,92,92,.04)}
.notif-item.today{border-left-color:var(--org);background:rgba(255,179,71,.04)}
.ni-left{flex:1;min-width:0}
.ni-client{font-size:.74rem;font-weight:700;color:var(--tx1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ni-product{font-size:.63rem;color:var(--tx3);margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ni-right{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;flex-shrink:0}
.ni-value{font-size:.74rem;font-weight:700;color:var(--tx1);font-family:'DM Mono',monospace}
.ni-date{font-size:.62rem;color:var(--tx3)}

/* ═══════════════════════════════════════════════════════════
   DASHBOARD VISUAL — refinamento premium
   Zero cores hardcoded. Funciona em dark e light mode.
   Referência: Linear / Stripe / Supabase — clean, discreto.
═══════════════════════════════════════════════════════════ */

/* ── Cards KPI — padding e transição ampliada ────────────── */
.dc {
  padding: .95rem 1rem;
  transition:
    background-color .3s ease, border-color .25s ease, color .3s ease,
    transform .2s ease, box-shadow .2s ease;
}

/* Hover: apenas borda + elevação mínima. Sem glow, sem cor. */
.dc:hover {
  border-color: var(--b3);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

/* Stripe: 1px extra de altura para mais presença */
.dc::after { height: 3px; }

/* ── Labels dos KPIs — tipografia mais arejada ───────────── */
.dlbl {
  font-size: .57rem;
  letter-spacing: .12em;
  margin-bottom: .34rem;
}

/* ── Valores dos KPIs — mais presença ────────────────────── */
.dval {
  font-size: 1.05rem;
  font-weight: 600;
}

/* ── Grid — respiro entre cards ──────────────────────────── */
.dash { gap: .65rem; }

/* ── Nav tab ativo — sombra mínima ───────────────────────── */
.nav-tab.active { box-shadow: 0 1px 3px rgba(0,0,0,.14); }

/* ── Container de gráficos — card frame discreto ─────────── */
#dash-charts-wrap {
  background: var(--s1);
  border: 1px solid var(--b1);
  border-radius: var(--r);
  padding: 1rem 1rem .6rem;
  margin-bottom: 1.1rem;
}

/* ── Light mode — compensação de texto sobre --acc azul ─
   Em dark: acc é azul (#2563eb) → texto branco ✓
   Em light: acc é azul escuro (#1d4ed8) → texto deve ser branco ✓ */
body.theme-light .btn-primary,
body.theme-light .auth-btn,
body.theme-light .subbtn,
body.theme-light .btn-accent,
body.theme-light .range-btn.active,
body.theme-light .os-card-actions .os-next-btn { color: #ffffff; }
body.theme-light .btn-primary:active,
body.theme-light .auth-btn:active,
body.theme-light .subbtn:active,
body.theme-light .btn-accent:active,
body.theme-light .range-btn.active:active       { background: #1e3a8a; }
body.theme-light #toast                { color: #ffffff; }
body.theme-light #toast.ok             { color: #ffffff; }
body.theme-light .nav-tab.active .nbadge { color: #ffffff; }

/* ══ Light mode — presença visual corporativa ════════════════
   Referência: GitHub · Trello · ClickUp · Monday
   Scoped em body.theme-light → dark mode completamente intacto.
══════════════════════════════════════════════════════════════ */

/* Grid de fundo — neutro em vez de lima (imperceptível em dark, correto em light) */
body.theme-light::before {
  background-image:
    linear-gradient(rgba(9,30,66,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(9,30,66,.04) 1px,transparent 1px);
}

/* Elevação base dos cards — essencial para separação visual em light mode.
   Cards "flutuam" sobre o bg sem precisar de bordas mais grossas. */
body.theme-light .dc,
body.theme-light .scard,
body.theme-light .prod-card,
body.theme-light .client-card,
body.theme-light .notif-card {
  box-shadow: 0 1px 3px rgba(9,30,66,.12), 0 0 0 1px rgba(9,30,66,.05);
}

/* Hover dos cards KPI — elevação reforçada */
body.theme-light .dc:hover {
  box-shadow: 0 4px 10px rgba(9,30,66,.16), 0 0 0 1px rgba(9,30,66,.07);
  transform: translateY(-1px);
  border-color: var(--b3);
}

/* Nav tabs — strip com sombra discreta */
body.theme-light .nav-tabs {
  box-shadow: 0 1px 3px rgba(9,30,66,.08);
}

/* KPI values — peso máximo para números */
body.theme-light .dval { font-weight: 700; }

/* Logo — azul mais profundo para legibilidade em fundo claro */
body.theme-light .tlogo h1 .vi,
body.theme-light .auth-logo h2 .vi,
body.theme-light .bw-logo .vi { color: #1e40af; }
body.theme-light .tlogo h1 .thax,
body.theme-light .auth-logo h2 .thax,
body.theme-light .bw-logo .thax { color: #64748b; }

/* Date inputs — calendario nativo claro */
body.theme-light .fld input[type=date],
body.theme-light .audit-date-input { color-scheme: light; }

/* Pills — bordas mais visíveis em fundo claro */
body.theme-light .pill.pix  { border-color: rgba(22,101,52,.35); }
body.theme-light .pill.card { border-color: rgba(29,78,216,.3); }
body.theme-light .pill.boca { border-color: rgba(194,65,12,.3); }
body.theme-light .pill.din,
body.theme-light .pill.ok   { border-color: rgba(30,64,175,.3); }
body.theme-light .pill.pend { border-color: rgba(185,28,28,.3); }

/* Badge OS — consistente com accent */
body.theme-light .os-badge-recebido { color: #1e40af; }

/* Auth card gradient — mais sutil em light */
body.theme-light .auth-card::before {
  background: linear-gradient(90deg, var(--acc), rgba(30,64,175,.3), transparent);
}

/* Inputs/selects — fundo claro definido */
body.theme-light .fld input,
body.theme-light .fld select,
body.theme-light .af input,
body.theme-light .af select {
  background: var(--s1);
  border-color: var(--b2);
}

/* Sync dot glows — ajustados para fundo claro */
body.theme-light .sync-dot.sync-idle   { box-shadow: 0 0 0 2px rgba(22,101,52,.2); }
body.theme-light .sync-dot.cache-green  { box-shadow: 0 0 0 2px rgba(22,101,52,.2); }

/* Trial banner — bordas e bg mais escuros no claro */
body.theme-light .trial-banner.info {
  background: rgba(29,78,216,.08);
  border-bottom-color: rgba(29,78,216,.2);
}

/* Notif stat badge e warranty badge — bordas escuras no claro */
body.theme-light .notif-stat.blue { border-color: rgba(29,78,216,.25); }
body.theme-light .war-return-badge { border-color: rgba(29,78,216,.3); }

/* Trial/offline banners — cores adaptadas para fundo claro */
body.theme-light .trial-banner.warning { background: rgba(194,65,12,.08); border-bottom-color: rgba(194,65,12,.2); }
body.theme-light .trial-banner.critical,
body.theme-light .trial-banner.expired  { background: rgba(185,28,28,.08); border-bottom-color: rgba(185,28,28,.2); }
body.theme-light .offline-bar           { background: rgba(185,28,28,.06); border-bottom-color: rgba(185,28,28,.15); }

/* irow entrada — borda adaptada */
body.theme-light .irow.entrada { border-color: rgba(22,101,52,.2); background: rgba(22,101,52,.04); }
body.theme-light .irow.paid    { border-color: rgba(30,64,175,.2); background: rgba(30,64,175,.04); }
.ni-wabtn{
  background:rgba(37,211,102,.12);border:1px solid rgba(37,211,102,.3);
  color:rgb(37,211,102);border-radius:7px;padding:.2rem .45rem;
  font-size:.6rem;font-weight:700;cursor:pointer;margin-top:.1rem;
  display:flex;align-items:center;gap:3px;white-space:nowrap;
  transition:background .15s;
}
.ni-wabtn:hover{background:rgba(37,211,102,.22)}
.notif-more{
  padding:.55rem 1rem;font-size:.68rem;color:var(--acc);cursor:pointer;
  font-weight:700;text-align:right;border-top:1px solid var(--b1);
}
.notif-more:hover{color:var(--tx1)}
.notif-next{
  padding:.55rem 1rem .75rem;font-size:.69rem;color:var(--tx3);
  border-top:1px solid var(--b1);
}
.notif-next b{color:var(--tx2)}

/* ─── Toggle 2º telefone na OS ─────────────────────────── */
.phone2-toggle{
  background:none;border:none;color:var(--acc);
  cursor:pointer;font-size:.8rem;font-weight:700;
  padding:0 0 0 .25rem;vertical-align:middle;line-height:1;
  opacity:.6;transition:opacity .15s;
}
.phone2-toggle:hover{opacity:1}

/* ─── Botão WhatsApp no card de venda ───────────────────── */
.btn-whatsapp{
  background:rgba(37,211,102,.12);border:1px solid rgba(37,211,102,.3);
  color:rgb(37,211,102);border-radius:var(--r-sm);
  padding:.45rem .75rem;font-size:.72rem;font-weight:700;cursor:pointer;
  display:flex;align-items:center;gap:4px;white-space:nowrap;
  transition:background .15s,transform .1s;touch-action:manipulation;
}
.btn-whatsapp:hover{background:rgba(37,211,102,.22)}
.btn-whatsapp:active{transform:scale(.97)}

/* ─── Botão WhatsApp nas parcelas (detail modal) ────────── */
.wabtn{
  background:rgba(37,211,102,.12)!important;
  border:1px solid rgba(37,211,102,.3)!important;
  color:rgb(37,211,102)!important;
  display:flex;align-items:center;gap:3px;margin-top:.3rem;
}
.wabtn:hover{background:rgba(37,211,102,.22)!important}

/* ─── Badge "cobrado" ────────────────────────────────────── */
.charged-badge{
  display:inline-flex;align-items:center;font-size:.58rem;font-weight:700;
  color:rgb(37,211,102);background:rgba(37,211,102,.1);
  border:1px solid rgba(37,211,102,.25);border-radius:6px;
  padding:.15rem .45rem;margin-top:.25rem;white-space:nowrap;
}

/* ─── Botão "Gerenciar categorias" no modal de perfil ──────── */
.cat-manage-link{
  width:100%;margin-top:.75rem;font-size:.76rem;font-weight:600;
  color:var(--acc);background:var(--acc-g);
  border:1px solid rgba(37,99,235,.3);border-radius:10px;
  padding:.6rem;text-align:center;letter-spacing:.01em;
}
.cat-manage-link:hover{background:rgba(37,99,235,.22);border-color:rgba(37,99,235,.5);}
details[open] .details-arrow{transform:rotate(90deg)}

/* ─── Staff row (Equipe / multi-perfis) ─────────────────────── */
.staff-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem .4rem;border-bottom:1px solid var(--b1);gap:.5rem;}
.staff-row:last-child{border-bottom:none;}
.staff-row-info{flex:1;min-width:0;}
.staff-row-name{font-size:.78rem;font-weight:600;color:var(--tx1);}
.staff-row-role{font-size:.68rem;color:var(--tx3);margin-top:.1rem;}
.staff-row-last-login{font-size:.62rem;color:var(--tx3);opacity:.75;margin-top:.1rem;}
.staff-row-acts{display:flex;gap:.3rem;flex-shrink:0;}
/* Matriz de permissões */
.staff-matrix-wrap{overflow-x:auto;margin-top:.75rem;border-radius:8px;border:1px solid var(--b1);}
.staff-matrix{width:100%;border-collapse:collapse;font-size:.68rem;white-space:nowrap;}
.staff-matrix th{background:var(--bg2);padding:.3rem .4rem;text-align:center;font-weight:700;color:var(--tx2);border-bottom:1px solid var(--b1);}
.staff-matrix th:first-child,.staff-matrix th:nth-child(2){text-align:left;}
.staff-matrix td{padding:.3rem .4rem;border-bottom:1px solid var(--b1);text-align:center;}
.staff-matrix tr:last-child td{border-bottom:none;}
.staff-matrix .sm-name{text-align:left;font-weight:600;color:var(--tx1);}
.staff-matrix .sm-role{text-align:left;color:var(--tx3);}
.staff-matrix .sm-cell{font-size:.75rem;}
.staff-matrix .sm-ok{color:#16a34a;}
.staff-matrix .sm-no{color:var(--err);opacity:.55;}

/* ─── Business mode toggles ─────────────────────────────────── */
.biz-toggle-list{display:flex;flex-direction:column;gap:.5rem}
.biz-toggle{
  display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;
  background:var(--bg2);border:1px solid var(--bdr);border-radius:.55rem;
  cursor:pointer;user-select:none;transition:border-color .18s
}
.biz-toggle:hover{border-color:var(--acc-g)}
.biz-toggle input[type=checkbox]{display:none}
.biz-toggle-icon{font-size:1.25rem;flex-shrink:0}
.biz-toggle-text{flex:1;min-width:0}
.biz-toggle-label{display:block;font-size:.8rem;font-weight:600;color:var(--tx1)}
.biz-toggle-desc{display:block;font-size:.68rem;color:var(--tx3);margin-top:.1rem;line-height:1.35}
.biz-toggle-sw{
  flex-shrink:0;width:2.2rem;height:1.2rem;border-radius:999px;
  background:var(--bdr);position:relative;transition:background .2s
}
.biz-toggle-sw::after{
  content:'';position:absolute;top:.15rem;left:.15rem;width:.9rem;height:.9rem;
  border-radius:50%;background:#fff;transition:left .2s
}
.biz-toggle input:checked ~ .biz-toggle-sw{background:var(--acc)}
.biz-toggle input:checked ~ .biz-toggle-sw::after{left:1.15rem}
.biz-toggle input:checked ~ .biz-toggle-text .biz-toggle-label{color:var(--acc)}

/* ─── Perfis de negócio (cards) ────────────────────────────── */
.biz-profiles{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1rem}
.biz-profile-card{
  display:flex;flex-direction:column;align-items:center;gap:.3rem;
  padding:.6rem .4rem;border-radius:.7rem;border:1px solid var(--bdr);
  background:var(--bg2);cursor:pointer;transition:border-color .18s,background .18s;font-family:inherit
}
.biz-profile-card:hover{border-color:var(--acc-g);background:var(--s2)}
.biz-profile-card.active{border-color:var(--acc);background:var(--acc-g)}
.biz-profile-icon{font-size:1.4rem;line-height:1}
.biz-profile-name{font-size:.68rem;font-weight:600;color:var(--tx2)}
.biz-profile-card.active .biz-profile-name{color:var(--acc)}

/* ─── Cabeçalho de seção nos módulos ───────────────────────── */
.mod-section-hdr{
  font-size:.65rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--tx3);padding:.55rem 0 .3rem;margin-top:.25rem;
  border-top:1px solid var(--bdr)
}
.mod-section-hdr:first-child{border-top:none;margin-top:0}

/* ─── Submenu colapsável dentro de módulos ─────────────────── */
.mod-sub{
  display:flex;flex-direction:column;gap:.35rem;
  margin:0 0 .25rem .9rem;padding-left:.65rem;
  border-left:2px solid var(--bdr);
  overflow:hidden;max-height:0;opacity:0;
  transition:max-height .3s ease,opacity .25s ease,margin .25s ease
}
.mod-sub.open{max-height:60rem;opacity:1;margin:.35rem 0 .5rem .9rem}
.mod-sub .biz-toggle{
  padding:.4rem .6rem;border-radius:.45rem;
  font-size:.92em
}

/* ─── Reorder list (ordenar abas) ─────────────────────────── */
.mod-reorder-list{display:flex;flex-direction:column;gap:.3rem}
.mod-reorder-item{
  display:flex;align-items:center;gap:.55rem;padding:.5rem .7rem;
  background:var(--bg2);border:1px solid var(--bdr);border-radius:.55rem;
  cursor:grab;user-select:none;touch-action:none;
  transition:border-color .15s,background .15s,box-shadow .15s,opacity .15s,transform .15s
}
.mod-reorder-item:active{cursor:grabbing}
.mod-reorder-item.dragging{
  opacity:.9;border-color:var(--acc);background:var(--s2);
  box-shadow:0 6px 20px rgba(0,0,0,.35);transform:scale(1.02);z-index:999
}
.mod-reorder-handle{
  font-size:.9rem;color:var(--tx3);flex-shrink:0;line-height:1;
  display:flex;align-items:center
}
.mod-reorder-icon{font-size:1rem;flex-shrink:0}
.mod-reorder-name{font-size:.78rem;font-weight:600;color:var(--tx1);flex:1}
.mod-reorder-item.fixed{opacity:.45;cursor:default}
.mod-reorder-item.fixed .mod-reorder-name{color:var(--tx3)}
.mod-sub .biz-toggle-icon{font-size:1.05rem}
.mod-sub .biz-toggle-label{font-size:.74rem}
.mod-sub .biz-toggle-desc{font-size:.64rem}
.mod-sub .biz-toggle-sw{width:1.9rem;height:1.05rem}
.mod-sub .biz-toggle-sw::after{width:.75rem;height:.75rem}
.mod-sub .biz-toggle input:checked ~ .biz-toggle-sw::after{left:1rem}

/* ─── Categories Modal ─────────────────────────────────────── */
.cat-modal-body{padding:.8rem 1rem 1.2rem;}
.cat-toolbar{display:flex;align-items:flex-start;gap:.8rem;margin-bottom:.9rem;flex-wrap:wrap;}
.cat-hint{font-size:.72rem;color:var(--tx3);line-height:1.5;flex:1;min-width:0;}
.btn-accent{
  background:var(--acc);color:var(--acc-tx);border:none;border-radius:10px;
  padding:.5rem .9rem;font-size:.76rem;font-weight:600;cursor:pointer;white-space:nowrap;
}
.btn-accent:hover{opacity:.88;}
.cat-empty{font-size:.76rem;color:var(--tx3);text-align:center;padding:1.2rem 0;}

.cat-row{
  display:flex;align-items:center;gap:.5rem;
  padding:.55rem .3rem;border-bottom:1px solid var(--brd);
}
.cat-row:last-child{border-bottom:none;}
.cat-inactive{opacity:.45;}
.cat-row-icon{font-size:1.1rem;flex-shrink:0;width:1.5rem;text-align:center;}
.cat-row-name{font-size:.78rem;font-weight:600;color:var(--tx1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cat-row-tags{display:flex;gap:.3rem;flex-shrink:0;}
.cat-tag{
  font-size:.58rem;font-weight:700;padding:.1rem .35rem;border-radius:5px;
  background:var(--acc-g);color:var(--acc);
}
.cat-tag-svc{background:rgba(107,114,128,.12);color:var(--tx3);}
.cat-row-btn{
  background:none;border:none;cursor:pointer;padding:.2rem .3rem;
  font-size:.9rem;border-radius:6px;flex-shrink:0;
}
.cat-row-btn:hover{background:var(--bg3);}
.cat-toggle-btn{
  font-size:.65rem;font-weight:700;padding:.2rem .55rem;border-radius:7px;
  border:1px solid var(--brd);color:var(--tx3);white-space:nowrap;
}
.cat-toggle-btn.is-active{
  color:rgba(255,92,92,.9);border-color:rgba(255,92,92,.3);
  background:rgba(255,92,92,.08);
}
.cat-toggle-btn:not(.is-active){
  color:var(--acc);border-color:rgba(37,99,235,.3);
  background:var(--acc-g);
}
.cat-badge-inactive{
  display:inline-block;font-size:.55rem;font-weight:700;
  color:var(--tx3);background:var(--bg3);border:1px solid var(--brd);
  border-radius:4px;padding:.05rem .3rem;margin-left:.35rem;vertical-align:middle;
  letter-spacing:.02em;text-transform:uppercase;
}

.cat-form-wrap{
  margin-top:1rem;padding:1rem;border:1px solid var(--brd);
  border-radius:12px;background:var(--bg2);
}
.cat-form-title{font-size:.8rem;font-weight:700;color:var(--tx1);margin-bottom:.7rem;}
.cat-checks{display:flex;flex-direction:column;gap:.4rem;margin:.6rem 0;}
.cat-check-row{display:flex;align-items:center;gap:.5rem;font-size:.76rem;color:var(--tx2);cursor:pointer;}
.cat-check-row input[type=checkbox]{accent-color:var(--acc);width:15px;height:15px;}
.cat-form-btns{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.7rem;}
.cat-form-save-btn{padding:.5rem 1.1rem;font-size:.78rem;}

/* ── Emoji picker de categorias ── */
.cat-emoji-picker{
  margin-top:.5rem;padding:.6rem .65rem;
  background:var(--s1);border:1px solid var(--b1);border-radius:10px;
}
.cat-ep-group-lbl{
  display:block;font-size:.6rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--tx3);margin:.5rem 0 .2rem;
}
.cat-ep-group-lbl:first-child{margin-top:0}
.cat-ep-row{display:flex;flex-wrap:wrap;gap:.2rem}
.cat-ep-btn{
  background:none;border:1px solid transparent;border-radius:7px;
  font-size:1.15rem;line-height:1;padding:.22rem .28rem;cursor:pointer;
  transition:background .12s,border-color .12s;
}
.cat-ep-btn:hover{background:var(--s2);border-color:var(--b2)}
.cat-ep-btn.selected{background:var(--s3);border-color:var(--acc)}

/* ── CART (Opção A) ── */
#sf-cart{border:1.5px solid var(--b2);border-radius:.7rem;overflow:hidden;margin-bottom:.5rem;}
.sf-cr{padding:.55rem .7rem;border-bottom:1px solid var(--b1);}
.sf-cr:last-of-type{border-bottom:none;}
.sf-cr-main{display:flex;gap:.35rem;align-items:center;margin-bottom:.35rem;}
.sf-cr-prod{flex:1;font-size:.82rem;padding:.38rem .5rem;border:1.5px solid var(--b2);border-radius:.42rem;background:var(--s1);color:var(--tx1);outline:none;min-width:0;}
.sf-cr-prod:focus{border-color:var(--acc);}
.sf-cr-del{flex-shrink:0;width:28px;height:28px;border:none;background:transparent;color:var(--red);font-size:.85rem;cursor:pointer;border-radius:.35rem;display:flex;align-items:center;justify-content:center;opacity:.65;}
.sf-cr-del:hover{opacity:1;background:rgba(255,80,80,.1);}
.sf-cr-nums{display:flex;gap:.4rem;align-items:flex-end;}
.sf-cr-field{display:flex;flex-direction:column;gap:.12rem;}
.sf-cr-field:nth-child(1){flex-shrink:0;}
.sf-cr-field:nth-child(2){flex:1;}
.sf-cr-field:nth-child(3){flex:1;}
.sf-cr-lbl{font-size:.58rem;color:var(--tx3);text-transform:uppercase;letter-spacing:.04em;font-weight:600;}
.sf-cr-nums input{width:100%;font-size:.82rem;padding:.36rem .45rem;border:1.5px solid var(--b2);border-radius:.42rem;background:var(--s1);color:var(--tx1);outline:none;}
.sf-cr-nums input:focus{border-color:var(--acc);}
.sf-cr-sub{font-size:.82rem;font-weight:700;color:var(--tx2);padding:.36rem .1rem;display:block;}
.sf-cr-extra{display:flex;gap:.4rem;margin-top:.35rem;}
.sf-cr-extra.hidden{display:none;}
.sf-cr-extra .sf-cr-field{flex:1;}
.sf-cr-extra input{width:100%;font-size:.78rem;padding:.32rem .42rem;border:1.5px solid var(--b2);border-radius:.42rem;background:var(--s1);color:var(--tx1);outline:none;}
.sf-cr-extra input:focus{border-color:var(--acc);}
.sf-cr-toggle{background:none;border:none;color:var(--tx3);font-size:.65rem;cursor:pointer;padding:.18rem 0 0;display:block;}
.sf-cr-hint{font-size:.71rem;color:var(--tx3);padding:.25rem .1rem .05rem;display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;}
.sf-cr-hint.hidden{display:none;}
.sf-cr-hint-name{color:var(--tx2);font-weight:600;}
.sf-cr-hint-btn{background:none;border:1.5px solid var(--acc);color:var(--acc);font-size:.69rem;font-weight:700;padding:.18rem .5rem;border-radius:.35rem;cursor:pointer;white-space:nowrap;}
.sf-cr-hint-btn:hover{background:rgba(37,99,235,.1);}

/* Qty ± wrap */
.sf-cr-qty-wrap{display:flex;align-items:center;}
.sf-cr-qty-wrap .sf-cr-qty{width:2.4rem;text-align:center;border-radius:0;padding:.36rem .2rem;}
.sf-cr-qty-btn{width:28px;height:32px;border:1.5px solid var(--b2);background:var(--b1);color:var(--tx1);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;flex-shrink:0;padding:0;}
.sf-cr-qty-btn:first-child{border-radius:.42rem 0 0 .42rem;border-right:none;}
.sf-cr-qty-btn:last-child{border-radius:0 .42rem .42rem 0;border-left:none;}
.sf-cr-qty-btn:hover,.sf-cr-qty-btn:active{background:var(--acc);color:var(--acc-tx);border-color:var(--acc);}

/* Top-produtos quick-pick */
.sf-top-prods{display:flex;flex-wrap:wrap;gap:.3rem;padding:.1rem 0 .6rem;}
.sf-top-prods.hidden{display:none;}
.sf-top-chip{background:var(--b1);border:1.5px solid var(--b2);border-radius:20px;padding:.28rem .72rem;font-size:.72rem;color:var(--tx2);cursor:pointer;transition:background .1s,border-color .1s,color .1s;touch-action:manipulation;white-space:nowrap;line-height:1.4;}
.sf-top-chip:hover,.sf-top-chip:active{background:var(--acc);color:var(--acc-tx);border-color:var(--acc);}

/* ── Product combobox ───────────────────────────────── */
.sf-prod-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:.3rem;}
.sf-prod-wrap .sf-cr-prod{flex:1;min-width:0;box-sizing:border-box;}
/* ── Botão scanner de código de barras ─────────────── */
.bc-scan-btn{flex-shrink:0;background:var(--bg2);border:1px solid var(--b1);border-radius:8px;cursor:pointer;font-size:1rem;padding:.28rem .45rem;line-height:1;transition:background .15s;}
.bc-scan-btn:hover,.bc-scan-btn:active{background:var(--b1);}
/* ── Scanner overlay ────────────────────────────────── */
.bc-ov{position:fixed;inset:0;z-index:1200;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;}
.bc-ov.hidden{display:none;}
.bc-box{width:min(380px,95vw);background:var(--bg1);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 16px 40px rgba(0,0,0,.7);}
.bc-header{display:flex;justify-content:space-between;align-items:center;padding:.65rem 1rem;border-bottom:1px solid var(--b1);}
.bc-title{font-size:.88rem;font-weight:700;color:var(--tx1);}
.bc-close-btn{background:transparent;border:1px solid var(--b1);border-radius:8px;color:var(--tx2);font-size:.72rem;padding:.28rem .65rem;cursor:pointer;}
.bc-viewfinder{position:relative;background:#000;aspect-ratio:4/3;overflow:hidden;}
.bc-video{width:100%;height:100%;object-fit:cover;display:block;}
.bc-reticle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64%;height:38%;border:2.5px solid var(--acc);border-radius:10px;box-shadow:0 0 0 999px rgba(0,0,0,.42);}
.bc-status{font-size:.75rem;color:var(--tx2);padding:.6rem 1rem;text-align:center;min-height:2.4rem;line-height:1.4;}
.sf-prod-drop{
  position:fixed;
  background:var(--s2);border:1px solid var(--b2);border-radius:10px;
  z-index:9999;max-height:260px;overflow-y:auto;
  box-shadow:0 8px 28px rgba(0,0,0,.55);
}
.sf-prod-drop.hidden{display:none;}
.sf-prod-sep{font-size:.6rem;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.09em;padding:.45rem .75rem .15rem;}
.sf-prod-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;transition:background .1s;}
.sf-prod-item:hover,.sf-prod-item.sf-pi-active{background:var(--b1);}
.sf-prod-item:first-child{border-radius:9px 9px 0 0;}
.sf-prod-item:last-child{border-radius:0 0 9px 9px;}
.sf-pi-badge{font-size:.85rem;flex-shrink:0;width:26px;text-align:center;}
.sf-pi-thumb{width:26px;height:26px;border-radius:5px;object-fit:cover;flex-shrink:0;}
.sf-pi-name{flex:1;font-size:.84rem;color:var(--tx1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sf-pi-stock{font-size:.68rem;color:var(--tx3);white-space:nowrap;flex-shrink:0;}
.sf-pi-price{font-size:.8rem;font-weight:700;color:var(--acc);white-space:nowrap;flex-shrink:0;}

/* ── Combobox genérico (cliente, modelo, técnico) ────── */
.sc-wrap{position:relative}
.sc-wrap input{width:100%}
.sc-drop{
  position:fixed;
  background:var(--s2);border:1px solid var(--b2);border-radius:10px;
  z-index:9999;max-height:220px;overflow-y:auto;
  box-shadow:0 8px 28px rgba(0,0,0,.55);
}
.sc-drop.hidden{display:none}
.sc-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;cursor:pointer;transition:background .1s}
.sc-item:hover,.sc-item-active{background:var(--b1)}
.sc-item:first-child{border-radius:9px 9px 0 0}
.sc-item:last-child{border-radius:0 0 9px 9px}
.sc-item-lbl{font-size:.84rem;color:var(--tx1);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-item-sub{font-size:.7rem;color:var(--tx3);white-space:nowrap;flex-shrink:0}

.sf-add-row-btn{width:100%;padding:.55rem;background:transparent;border:none;border-top:1px solid var(--b1);color:var(--acc);font-size:.82rem;font-weight:700;cursor:pointer;letter-spacing:.02em;}
.sf-add-row-btn:active{background:rgba(37,99,235,.1);}

/* ── Divisão de conta ──────────────────────────────── */
.sf-split-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;font-size:.74rem;color:var(--tx3)}
.sf-split-ctrl{display:flex;align-items:center;gap:.35rem}
.sf-split-ctrl input{width:56px;font-size:.82rem;padding:.28rem .4rem;border:1.5px solid var(--b2);border-radius:.42rem;background:var(--s1);color:var(--tx1);outline:none;text-align:center}
.sf-split-ctrl input:focus{border-color:var(--acc)}
.sf-split-result{font-size:.82rem;font-weight:700;color:var(--acc);white-space:nowrap}
.sf-split-result.hidden{display:none}

/* ── Entrada de estoque ────────────────────────────── */
.se-line{position:relative;border:1px solid var(--b2);border-radius:10px;padding:.7rem .7rem .6rem;margin-bottom:.6rem}
.se-line-prod{margin-bottom:.45rem}
.se-line-prod .fld-inp{width:100%;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:.55rem .7rem;color:var(--tx1);font-size:.84rem;outline:none}
.se-line-prod .fld-inp:focus{border-color:var(--acc)}
.se-line-nums{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.se-line-nums .fld label{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--tx3);margin-bottom:.18rem;display:block}
.se-line-nums .fld input{width:100%;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:.48rem .6rem;color:var(--tx1);font-size:.82rem;outline:none}
.se-line-nums .fld input:focus{border-color:var(--acc)}
.se-line-del{position:absolute;top:.5rem;right:.5rem;background:transparent;border:none;color:var(--tx3);font-size:.78rem;cursor:pointer;padding:.2rem .3rem;border-radius:5px}
.se-line-del:hover{color:var(--red);background:rgba(255,92,92,.1)}

/* ── Alerta de estoque baixo (Dashboard) ───────────── */
.low-stk-row{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;background:var(--s1);border:1px solid rgba(255,179,71,.2);border-radius:9px;margin-bottom:.4rem}
.low-stk-name{flex:1;font-size:.8rem;font-weight:600;color:var(--tx1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.low-stk-stk{font-size:.72rem;color:var(--org);white-space:nowrap;font-family:'DM Mono',monospace}
.low-stk-btn{font-size:.65rem!important;padding:.22rem .55rem!important;min-height:28px!important;flex-shrink:0}
.sf-cart-footer{border-top:1.5px solid var(--b2);padding:.5rem .85rem;}
.sf-cart-subtot{display:flex;justify-content:space-between;font-size:.76rem;font-weight:600;color:var(--tx3);margin-bottom:.15rem;}
.sf-cart-subtot.hidden{display:none;}
.sf-cart-disc{display:flex;align-items:center;justify-content:space-between;font-size:.76rem;color:var(--tx3);margin-bottom:.25rem;gap:.5rem;}
.sf-cart-disc label{white-space:nowrap;cursor:default;}
.sf-cart-disc input{width:90px;font-size:.78rem;padding:.28rem .42rem;border:1.5px solid var(--b2);border-radius:.42rem;background:var(--s1);color:var(--tx1);outline:none;text-align:right;}
.sf-cart-disc input:focus{border-color:var(--acc);}
.sf-cart-tot{display:flex;justify-content:space-between;font-size:.82rem;font-weight:700;color:var(--tx1);}
.sf-cart-prof{display:flex;justify-content:space-between;font-size:.74rem;margin-top:.2rem;color:var(--tx3);}
.sf-cart-prof.hidden{display:none;}
.sf-cart-prof .ok{color:var(--grn);}
.sf-cart-prof .neg{color:var(--red);}

/* ─── Expandir dados completos do cliente (modal venda) ────── */
.sf-expand-btn{
  width:100%;background:none;border:1px dashed var(--brd);
  color:var(--tx3);border-radius:9px;padding:.38rem;
  font-size:.72rem;cursor:pointer;margin-top:.5rem;
  transition:color .2s,border-color .2s;
}
.sf-expand-btn:hover,.sf-expand-btn.open{color:var(--acc);border-color:var(--acc);}
.sf-expand-btn.open{border-style:solid;}
.sf-extra-wrap{
  max-height:0;overflow:hidden;
  transition:max-height .35s ease;
}
.sf-extra-wrap.open{max-height:800px;margin-top:.6rem;}

/* ─── Edição inline de cliente (modal detalhe) ─────────────── */
.clidetail-edit-btn{
  width:100%;font-size:.74rem;margin-top:.5rem;
  border-radius:9px;padding:.45rem;
}
.clidetail-edit-form{
  margin-top:.7rem;padding:.9rem;
  border:1px solid var(--brd);border-radius:12px;background:var(--bg2);
}

/* ─── OS List ───────────────────────────────────────────────── */
.os-list{display:flex;flex-direction:column;gap:.7rem;padding:.2rem 0 1rem}
.os-card{
  background:var(--bg2);border:1px solid var(--bdr);border-radius:14px;
  padding:.85rem 1rem;display:flex;flex-direction:column;gap:.35rem
}
.os-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}
.os-device-name{font-size:.85rem;font-weight:700;color:var(--tx1);flex:1}
.os-imei-row{font-size:.68rem;color:var(--tx3);font-family:monospace}
.os-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.7rem;color:var(--tx3);gap:.4rem;flex-wrap:wrap}
.os-date{margin-left:auto;white-space:nowrap}
.os-defect-preview{font-size:.73rem;color:var(--tx2);border-left:2px solid var(--bdr);padding-left:.5rem;margin-top:.1rem;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.os-value-row{font-size:.72rem;color:var(--ok);font-weight:600;margin-top:.15rem}
.os-value-edit{cursor:pointer}
.os-value-hint{color:var(--tx3);font-weight:400}
.os-value-inp{width:100px;font-size:.72rem;padding:.15rem .3rem;border:1px solid var(--acc);border-radius:4px;background:var(--sfc);color:var(--tx1);outline:none}
.os-cost-row{font-size:.7rem;color:var(--tx3);margin-top:.1rem}
.os-result{font-weight:600}
.os-result-pos{color:var(--ok)}
.os-result-neg{color:var(--err)}
.os-tech-row{font-size:.7rem;color:var(--tx3);margin-top:.1rem}
.os-pm-row{font-size:.7rem;color:var(--tx2);margin-top:.1rem;font-weight:500}
.os-card-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.4rem;padding-top:.4rem;border-top:1px solid var(--bdr)}
.os-card-actions .btn-ghost{font-size:.68rem;padding:.28rem .6rem;min-height:0;border-radius:8px}
.os-card-actions .os-next-btn{background:var(--acc);color:var(--acc-tx);border-color:var(--acc);font-weight:600}
.os-card-actions .os-wa-btn{color:#25D366;border-color:rgba(37,211,102,.35);display:inline-flex;align-items:center}

/* ─── OS Status badges ──────────────────────────────────────── */
.os-badge-wrap{display:flex;align-items:center;gap:.35rem;flex-shrink:0}
.os-step{font-size:.6rem;color:var(--tx3);white-space:nowrap;font-variant-numeric:tabular-nums}
.os-badge{
  display:inline-block;font-size:.68rem;font-weight:700;
  padding:.25rem .7rem;border-radius:999px;white-space:nowrap;flex-shrink:0;letter-spacing:.01em
}
.os-badge-orcamento            {background:rgba(150,150,160,.25);color:var(--tx2)}
.os-badge-recebido             {background:rgba(56,139,253,.22); color:#2563eb}
.os-badge-manutencao           {background:rgba(251,146,60,.24); color:#ea580c}
.os-badge-aguardando           {background:rgba(250,204,21,.28); color:#b45309}
.os-badge-aguardando_aprovacao {background:rgba(168,85,247,.22); color:#9333ea}
.os-badge-pronto               {background:rgba(34,197,94,.24);  color:#15803d}
.os-badge-entregue             {background:rgba(20,184,166,.24); color:#0f766e}
.os-badge-cancelado            {background:rgba(239,68,68,.2);   color:var(--err)}

/* ─── OS WA History (modal) ──────────────────────────────────── */
.os-wahist-toggle{background:none;border:none;width:100%;text-align:left;font-size:.78rem;font-weight:700;color:var(--tx2);cursor:pointer;padding:.3rem 0;display:flex;align-items:center;gap:.35rem}
.os-wahist-toggle #os-wahist-count{font-weight:400;color:var(--tx3)}
.os-wahist-list{max-height:220px;overflow-y:auto;margin-bottom:.5rem}
.os-wahist-entry{padding:.4rem 0;border-bottom:1px solid var(--b1)}
.os-wahist-entry:last-child{border-bottom:none}
.os-wahist-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.18rem}
.os-wahist-badge{font-size:.6rem;padding:.1rem .38rem;border-radius:.3rem;font-weight:700;flex-shrink:0}
.os-wahist-badge.auto{background:rgba(37,211,102,.14);color:#1aab52}
.os-wahist-badge.manual{background:rgba(37,99,235,.1);color:var(--acc)}
.os-wahist-ts{font-size:.63rem;color:var(--tx3)}
.os-wahist-txt{font-size:.73rem;color:var(--tx2);line-height:1.4}
.os-wahist-input{display:flex;flex-direction:column;gap:.4rem;padding-top:.45rem;border-top:1px solid var(--b1)}
.os-wahist-input textarea{font-size:.78rem;padding:.4rem .5rem;border:1.5px solid var(--b2);border-radius:.42rem;background:var(--s1);color:var(--tx1);outline:none;resize:none;width:100%;box-sizing:border-box}
.os-wahist-input textarea:focus{border-color:var(--acc)}
.os-wahist-input .btn-ghost{align-self:flex-end;font-size:.74rem;padding:.3rem .8rem;min-height:32px}

/* ─── OS Timeline (modal) ───────────────────────────────────── */
.os-tl-list{display:flex;flex-direction:column;gap:0;padding:.2rem 0}
.os-tl-item{display:flex;gap:.7rem;align-items:flex-start;padding:.4rem 0;position:relative}
.os-tl-item:not(:last-child)::before{content:'';position:absolute;left:7px;top:20px;bottom:-4px;width:2px;background:var(--bdr)}
.os-tl-dot{width:16px;height:16px;border-radius:50%;background:var(--acc);border:2px solid var(--bg2);flex-shrink:0;margin-top:.1rem}
.os-tl-dot-orcamento            {background:#94949e}
.os-tl-dot-recebido             {background:#3b82f6}
.os-tl-dot-manutencao           {background:#f97316}
.os-tl-dot-aguardando           {background:#ca8a04}
.os-tl-dot-aguardando_aprovacao {background:#a855f7}
.os-tl-dot-pronto               {background:#16a34a}
.os-tl-dot-entregue             {background:#0d9488}
.os-tl-dot-cancelado            {background:#ef4444}
.os-tl-body{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0}
.os-tl-lbl{font-size:.75rem;font-weight:600;color:var(--tx1)}
.os-tl-note{font-size:.68rem;color:var(--tx2)}
.os-tl-ts{font-size:.63rem;color:var(--tx3)}

/* ─── OS Client history (modal) ─────────────────────────────── */
.os-chist-list{display:flex;flex-direction:column;gap:.35rem;padding:.1rem 0}
.os-chist-item{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.72rem}
.os-chist-device{flex:1;min-width:0;color:var(--tx1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.os-chist-date{color:var(--tx3);white-space:nowrap;font-size:.65rem}

/* ═══════════════════════════════════════════════════════════
   BILLING WALL — Tela de assinatura / trial expirado
═══════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════
   BILLING WALL
══════════════════════════════════════════ */
.bw{
  position:fixed;inset:0;z-index:9999;
  background:linear-gradient(160deg,#060d18 0%,#091628 55%,#060c16 100%);
  display:flex;align-items:flex-start;justify-content:center;
  overflow-y:auto;  padding:1.75rem 1rem 3rem;
}
.bw.hidden{display:none!important}
.bw-box{width:100%;max-width:580px;margin:0 auto}

/* ── cabeçalho ── */
.bw-header{text-align:center;padding:.5rem 0 1.4rem}
.bw-logo{display:flex;align-items:center;justify-content:center;gap:.45rem;margin-bottom:1.1rem;opacity:.8}
.bw-logo img{width:24px;height:24px}
.bw-logo span{font-size:.9rem;font-weight:700;color:#dde6f0;letter-spacing:-.01em}
.bw-logo .vi{color:#2563EB}.bw-logo .thax{color:#8b95a5}
.bw-tag{
  display:inline-flex;align-items:center;gap:.3rem;
  background:rgba(239,68,68,.11);color:#fca5a5;
  border:1px solid rgba(239,68,68,.22);border-radius:999px;
  font-size:.7rem;font-weight:700;padding:.28rem .85rem;margin-bottom:.95rem;letter-spacing:.03em
}
.bw-title{font-size:1.55rem;font-weight:800;color:#f0f6ff;line-height:1.2;margin:0 0 .6rem;letter-spacing:-.025em}
.bw-sub{font-size:.82rem;color:#7a96b8;line-height:1.65;margin:0 auto;max-width:340px}

/* ── CTA principal ── */
.bw-cta{text-align:center;padding:1.1rem 0 .5rem}
.bw-btn-wa{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  background:linear-gradient(135deg,#16a34a 0%,#15803d 100%);color:#fff;
  border:none;border-radius:14px;
  padding:.9rem 1.5rem;font-size:.92rem;font-weight:700;font-family:inherit;
  cursor:pointer;width:100%;max-width:360px;text-decoration:none;
  box-shadow:0 4px 22px rgba(22,163,74,.32);
  transition:opacity .15s,transform .1s;
}
.bw-btn-wa:hover{opacity:.88}
.bw-btn-wa:active{transform:scale(.97)}
.bw-note{font-size:.68rem;color:#3d5470;margin:.55rem 0 0;line-height:1.5}

/* ── planos ── */
.bw-plans-label{
  font-size:.65rem;font-weight:700;color:#3d5470;
  text-transform:uppercase;letter-spacing:.09em;
  text-align:center;margin:.8rem 0 .65rem;
}
/* desktop: 3 colunas iguais */
.bw-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1.1rem}
/* mobile: carrossel horizontal com snap */
@media(max-width:560px){
  .bw-plans{
    display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    gap:.65rem;padding:0 1rem .75rem;margin:0 -1rem 1rem;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .bw-plans::-webkit-scrollbar{display:none}
  .bw-plan{min-width:210px;flex-shrink:0;scroll-snap-align:start}
}
.bw-plan{
  background:rgba(255,255,255,.038);border:1px solid rgba(255,255,255,.08);
  border-radius:16px;padding:1.1rem 1rem;display:flex;flex-direction:column;gap:.5rem;
}
.bw-plan-pro{
  background:rgba(59,130,246,.07);border-color:rgba(59,130,246,.32);
  box-shadow:0 0 0 1px rgba(59,130,246,.13),0 6px 24px rgba(0,0,0,.28);
}
.bw-badge{
  align-self:flex-start;
  background:rgba(59,130,246,.14);color:#93c5fd;
  border:1px solid rgba(59,130,246,.26);border-radius:999px;
  font-size:.6rem;font-weight:700;padding:.18rem .6rem;letter-spacing:.025em;
}
.bw-plan-name{font-size:.88rem;font-weight:700;color:#c8d8ea}
.bw-plan-price{font-size:1.85rem;font-weight:800;color:#f0f6ff;line-height:1;letter-spacing:-.03em;margin:.1rem 0 .05rem}
.bw-cents{font-size:.85rem;font-weight:600;vertical-align:super;letter-spacing:0}
.bw-period{font-size:.62rem;font-weight:400;color:#4a6480;margin-left:.06rem}
.bw-features{list-style:none;margin:.1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}
.bw-features li{font-size:.71rem;color:#6b8aaa;padding-left:1rem;position:relative;line-height:1.35}
.bw-features li::before{content:'✓';position:absolute;left:0;color:#34d399;font-weight:700;font-size:.72rem}

/* ── rodapé ── */
.bw-footer{text-align:center;padding:.3rem 0 0}
.bw-logout{
  background:none;border:none;color:#3a5068;
  font-size:.72rem;font-family:inherit;cursor:pointer;
  text-decoration:underline;padding:.4rem .6rem;
  transition:color .15s;
}
.bw-logout:hover{color:#64748b}

/* billing-wall: toggle mensal/anual + planos clicáveis + botão Asaas */
.bw-billing-toggle{display:inline-flex;border:1px solid #c8daea;border-radius:999px;overflow:hidden;margin-bottom:1rem}
.bw-btog{padding:.32rem .9rem;font-size:.8rem;font-weight:600;border:none;background:transparent;color:#3d5470;cursor:pointer;transition:background .2s,color .2s;font-family:inherit}
.bw-btog.active{background:#1a5276;color:#fff}
.bw-save-badge{font-size:.65rem;background:#d5f5e3;color:#1e8449;border-radius:999px;padding:.05rem .3rem;margin-left:.2rem}
.bw-plan{cursor:pointer;transition:border-color .2s,box-shadow .2s}
.bw-plan.bw-selected{border-color:#1a5276;box-shadow:0 0 0 2px rgba(26,82,118,.18)}
.bw-btn-assinar{width:100%;padding:.85rem 1rem;background:#1a5276;color:#fff;border:none;border-radius:10px;font-size:.97rem;font-weight:700;cursor:pointer;margin-top:.75rem;transition:opacity .2s;font-family:inherit}
.bw-btn-assinar:disabled{opacity:.5;cursor:not-allowed}
.bw-link{background:none;border:none;color:#3d5470;font-size:.8rem;cursor:pointer;text-decoration:underline;padding:.3rem;font-family:inherit;display:block;margin:0 auto .4rem}

/* ══════════════════════════════════════════
   GV FOOTER — rodapé global fixo
══════════════════════════════════════════ */
.gv-footer{
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:.35rem .6rem;
  padding:.55rem 1rem;
  border-top:1px solid var(--bdr);
  font-size:.72rem;color:var(--tx3);
  margin-top:auto;
}
.gv-footer-brand{font-weight:700;color:var(--tx2);letter-spacing:.01em}
.gv-footer-sep{color:var(--tx3);opacity:.5}
.gv-footer-link{
  color:var(--tx3);text-decoration:none;
  transition:color .15s;
}
.gv-footer-link:hover{color:var(--acc)}
.gv-footer-sub{color:var(--tx3)}
.gv-footer-version{color:var(--tx3);font-size:.6rem;opacity:.6;font-weight:500}

/* ── Changelog ─────────────────────────── */
.changelog-entry{padding:.2rem 0 .5rem}
.changelog-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}
.changelog-tag{font-size:.85rem;font-weight:800;color:var(--acc);letter-spacing:.02em}
.changelog-date{font-size:.68rem;color:var(--tx3)}
.changelog-badge{font-size:.6rem;font-weight:700;background:rgba(37,99,235,.15);color:var(--acc);border:1px solid rgba(37,99,235,.35);border-radius:999px;padding:.1rem .55rem}
.changelog-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem}
.changelog-list li{font-size:.75rem;color:var(--tx2);padding-left:1rem;position:relative;line-height:1.45}
.changelog-list li::before{content:'✓';position:absolute;left:0;color:var(--acc);font-weight:700;font-size:.7rem}

/* ══════════════════════════════════════════
   GV SUPPORT FAB — botão flutuante de suporte
══════════════════════════════════════════ */
.gv-support-fab{
  position:fixed;bottom:1.2rem;right:1.2rem;z-index:9000;
  display:flex;align-items:center;gap:.45rem;
  background:var(--bg2,#1e1e2a);color:var(--tx2);
  border:1px solid var(--bdr);border-radius:999px;
  padding:.52rem .95rem .52rem .65rem;
  font-size:.78rem;font-weight:600;cursor:pointer;
  box-shadow:0 4px 18px rgba(0,0,0,.35);
  transition:background .15s,transform .1s,box-shadow .15s;
  white-space:nowrap;
}
.gv-support-fab:hover{
  background:var(--bg3,#2a2a3a);
  box-shadow:0 6px 24px rgba(0,0,0,.45);
  transform:translateY(-1px);
}
.gv-support-fab:active{transform:scale(.97)}
.gv-support-ico{
  width:22px;height:22px;border-radius:50%;
  background:var(--acc);color:#111;
  display:flex;align-items:center;justify-content:center;
  font-size:.78rem;font-weight:900;flex-shrink:0;
  line-height:1;
}
.gv-support-lbl{color:var(--tx2)}

/* light-mode overrides */
body.theme-light .gv-support-fab{
  background:var(--s1);border-color:var(--b2);
  box-shadow:0 4px 18px rgba(0,0,0,.12);
}
body.theme-light .gv-support-fab:hover{background:var(--s2)}
body.theme-light .gv-support-ico{color:#000}

/* mobile: recolhe o label, mantém só o ícone */
@media(max-width:480px){
  .gv-support-fab{padding:.6rem;border-radius:50%}
  .gv-support-lbl{display:none}
  .gv-support-ico{width:24px;height:24px;font-size:.82rem}
}

/* ── mini-menu de suporte ─────────────────── */
.gv-support-menu{
  position:fixed;bottom:4.8rem;right:1.2rem;z-index:9001;
  display:flex;flex-direction:column;gap:.25rem;
  min-width:162px;
  background:var(--bg2,#1e1e2a);
  border:1px solid var(--bdr);border-radius:14px;
  padding:.45rem;
  box-shadow:0 8px 32px rgba(0,0,0,.5);
  opacity:0;pointer-events:none;
  transform:translateY(10px) scale(.96);
  transform-origin:bottom right;
  transition:opacity .18s ease,transform .18s ease;
}
.gv-support-menu.open{
  opacity:1;pointer-events:auto;
  transform:translateY(0) scale(1);
}
.gv-support-opt{
  display:flex;align-items:center;gap:.6rem;
  padding:.52rem .72rem;border-radius:9px;
  font-size:.8rem;font-weight:600;color:var(--tx1);
  text-decoration:none;
  transition:background .12s;
}
.gv-support-opt:hover{background:var(--bg3,#2a2a3a)}
.gv-support-opt-ico{
  font-size:1rem;flex-shrink:0;
  width:28px;height:28px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(37,99,235,.1);
}
body.theme-light .gv-support-opt:hover{background:var(--s2)}
body.theme-light .gv-support-menu{
  background:var(--s1);border-color:var(--b2);
  box-shadow:0 8px 32px rgba(0,0,0,.12);
}
@media(max-width:480px){
  .gv-support-menu{right:.75rem;bottom:4.2rem}
}

/* ── benefit strip (form de cadastro) ────── */
.r-benefit-strip{
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:.25rem .55rem;
  padding:.45rem .75rem;margin-bottom:.75rem;
  background:rgba(37,99,235,.08);
  border:1px solid rgba(37,99,235,.18);
  border-radius:8px;
  font-size:.72rem;font-weight:600;
  color:var(--acc);letter-spacing:.01em;
  text-align:center;
}
/* ── campo opcional (label helper) ───────── */
.af-opt{font-size:.65rem;font-weight:400;color:var(--tx3);margin-left:.3rem}

/* ══════════════════════════════════════════
   IMEI TRACKER — badges de status
══════════════════════════════════════════ */
.imei-badge{
  display:inline-flex;align-items:center;
  font-size:.63rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  border-radius:6px;padding:.12rem .48rem;margin-top:.22rem;
  line-height:1.4;
}
.imei-badge.hidden{display:none!important}
.imei-badge-ok       {background:rgba(22,163,74,.18); color:#16a34a}
.imei-badge-alerta   {background:rgba(249,115,22,.2); color:#f97316}
.imei-badge-suspeito {background:rgba(239,68,68,.2);  color:#ef4444}
.imei-badge-novo     {background:rgba(148,148,158,.15);color:var(--tx3)}
.imei-badge-checking {background:rgba(148,148,158,.1); color:var(--tx3);font-style:italic}
body.theme-light .imei-badge-ok       {background:rgba(22,163,74,.13); color:#15803d}
body.theme-light .imei-badge-alerta   {background:rgba(249,115,22,.13);color:#c2410c}
body.theme-light .imei-badge-suspeito {background:rgba(239,68,68,.13); color:#dc2626}

/* ══════════════════════════════════════════
   AUDIT LOG MODAL
══════════════════════════════════════════ */
.modal-wide{max-width:680px}
@media(min-width:720px){.modal-wide{max-width:680px}}

.audit-toolbar{
  display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;
  padding:.75rem 1.1rem .5rem;border-bottom:1px solid var(--bdr);
}

.audit-table-wrap{
  overflow-x:auto;overflow-y:auto;max-height:55vh;
  padding:0 1.1rem;
}

.audit-table{
  width:100%;border-collapse:collapse;font-size:.75rem;
  table-layout:fixed;
}
.audit-table thead th{
  position:sticky;top:0;background:var(--s1);z-index:1;
  text-align:left;padding:.5rem .4rem;
  font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--tx3);border-bottom:1px solid var(--bdr);
  white-space:nowrap;
}
.audit-table th:nth-child(1){width:130px}
.audit-table th:nth-child(2){width:150px}
.audit-table th:nth-child(3){width:auto}

.audit-table tbody tr{
  border-bottom:1px solid var(--b1);
  transition:background .1s;
}
.audit-table tbody tr:hover{background:var(--s2)}
.audit-td-ts{
  font-family:'DM Mono',monospace;font-size:.7rem;
  color:var(--tx3);padding:.45rem .4rem;white-space:nowrap;
}
.audit-td-type{
  font-size:.73rem;font-weight:600;color:var(--tx2);
  padding:.45rem .4rem;white-space:nowrap;
}
.audit-td-detail{
  font-size:.72rem;color:var(--tx3);padding:.45rem .4rem;
  word-break:break-word;
}

/* row color codes */
.audit-row-ok   td{color:inherit}
.audit-row-ok   .audit-td-type{color:var(--grn)}
.audit-row-del  .audit-td-type{color:var(--err)}
.audit-row-warn .audit-td-type{color:#f97316}

body.theme-light .audit-table tbody tr:hover{background:var(--s3)}
body.theme-light .audit-td-ts{color:#6b7280}
body.theme-light .audit-td-detail{color:#4b5563}

/* ── OS multi-photo grid ───────────────────────────────── */
.os-imgs-grid{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem}
.os-img-item{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden;border:1px solid var(--b2)}
.os-img-item img{width:100%;height:100%;object-fit:cover;display:block}
.os-img-remove{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.6);color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:.6rem;line-height:18px;text-align:center;cursor:pointer;padding:0}
.os-add-photo-btn{background:var(--s2);border:1px dashed var(--b2);border-radius:8px;color:var(--tx3);font-size:.72rem;padding:.3rem .7rem;cursor:pointer;margin-top:.15rem}
.os-add-photo-btn:hover{background:var(--s3);color:var(--tx2)}

/* ══════════════════════════════════════════
   OS MODAL — campos avançados colapsáveis
══════════════════════════════════════════ */
.os-adv-toggle{
  width:100%;text-align:left;background:transparent;
  border:1px solid var(--bdr);border-radius:7px;
  padding:.32rem .7rem;font-size:.74rem;color:var(--tx3);
  cursor:pointer;margin:.35rem 0 .1rem;transition:background .15s, color .15s;
}
.os-adv-toggle:hover{background:var(--s2);color:var(--tx2)}
.os-adv-panel{display:none}
.os-adv-panel.os-adv-open{display:block}

/* ─── IMEI History ───────────────────────────────────── */
.imei-badge{cursor:pointer;border:1px solid rgba(37,99,235,.3);border-radius:5px;padding:.2rem .55rem;margin-top:.3rem}
.imei-badge-hist{background:var(--acc-g);color:var(--acc)}
.os-imei-hist{background:var(--s2);border:1px solid var(--b2);border-radius:10px;padding:.65rem .8rem;margin:.35rem 0 .6rem}
.imei-hist-hdr{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--acc);margin-bottom:.55rem}
.imei-hist-card{background:var(--s1);border:1px solid var(--b1);border-radius:8px;padding:.55rem .7rem;margin-bottom:.4rem}
.imei-hist-card:last-child{margin-bottom:0}
.imei-hist-row{display:flex;gap:.35rem;align-items:baseline;margin-bottom:.15rem;flex-wrap:wrap}
.imei-hist-lbl{color:var(--tx3);font-size:.63rem;font-weight:600;min-width:68px;flex-shrink:0}
.imei-hist-val{color:var(--tx1);font-size:.72rem;word-break:break-word}
.imei-hist-warranty{display:inline-flex;align-items:center;gap:.2rem;font-size:.63rem;font-weight:700;padding:.15rem .4rem;border-radius:5px;margin-top:.2rem}
.imei-hist-warranty.active{background:rgba(74,222,128,.15);color:#4ade80}
.imei-hist-warranty.expired{background:var(--red-g);color:var(--red)}
.os-warranty-display{font-size:.72rem;font-weight:600;align-self:flex-end;padding-bottom:.35rem;min-height:1.2em}
body.theme-light .imei-hist-warranty.active{background:rgba(21,128,61,.12);color:#15803d}
/* ─── Sprint 4: KPI delta badges ─────────────────────── */
.kpi-delta{font-size:.55rem;font-weight:700;margin-left:.3rem;opacity:.9;font-family:inherit;vertical-align:.05em}
.kpi-delta.up{color:var(--grn)}
.kpi-delta.dn{color:var(--red)}
/* ─── Sprint 4: OS link button ───────────────────────── */
.os-link-btn{color:var(--blu);border-color:rgba(100,180,255,.3)}

/* ═══════════════════════════════════════════════════════════
   DESIGN SYSTEM RESPONSIVO
   Touch targets ≥ 44px (WCAG 2.5.5 / Apple HIG).
   Breakpoints: 320 · 360 · 414 · 768 (tablet) · 1366+ (desktop)
═══════════════════════════════════════════════════════════ */

/* ── Touch targets: todos os botões interativos ─────────── */
@media(max-width:768px){
  /* Botões principais */
  .btn-primary,
  .btn-ghost,
  .btn-danger,
  .btn-detail,
  .outbtn,
  .profile-btn,
  .theme-toggle-btn{
    min-height:44px;
  }
  /* Botões de pagamento / ação inline */
  .paybtn,
  .unpaidbtn,
  .edit-btn{
    min-height:44px;
    padding:.5rem .85rem;
  }
  /* OS card: ações inline — elevam sem perder compacidade */
  .os-card-actions .btn-ghost{
    min-height:40px;
    padding:.5rem .72rem;
  }
  /* Botão fechar modal — touch target confortável */
  .mclose{
    width:38px;
    height:38px;
  }
  /* Pills de filtro do dashboard */
  .range-btn,.mode-btn{
    min-height:38px;
    padding:.42rem .9rem;
  }
  /* Nav tabs — altura mínima de toque */
  .nav-tab{
    min-height:44px;
    display:flex;
    align-items:center;
  }
}

/* ── Barra de ferramentas de produto (busca + filtro de categoria) ── */
.p-tools-row{
  display:flex;align-items:center;gap:.5rem;margin:.5rem 0 .35rem;flex-wrap:wrap;
}
.p-cat-sel{
  flex-shrink:0;font-size:.78rem;padding:.35rem .5rem;min-height:36px;
  border-radius:8px;border:1px solid var(--b2);background:var(--s1);
  color:var(--tx2);cursor:pointer;max-width:160px;
}

/* ── Botões secundários de produto (Catálogo/QR/Sync/Exportar) ── */
.p-sec-btns{
  display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;
  margin-bottom:.35rem;
}

/* ── Inputs de data no log de auditoria ── */
.audit-date-input{
  background:var(--s1);border:1px solid var(--b2);border-radius:8px;
  color:var(--tx1);font-size:.72rem;padding:.28rem .5rem;cursor:pointer;
  min-height:32px;font-family:inherit;
}
.audit-date-input::-webkit-calendar-picker-indicator{filter:invert(.6);cursor:pointer}

/* ── Mobile: ≤ 480px — ajustes principais ───────────────── */
@media(max-width:480px){
  /* Topbar: esconde textos secundários para não lotar */
  .user-badge{display:none}
  .pb-lbl{display:none}
  .ttl{display:none}
  .profile-btn{padding:.36rem .55rem;min-height:38px}
  .theme-toggle-btn{padding:.36rem .55rem;min-height:38px;font-size:.85rem}
  /* Nav tabs: emoji + texto curto, barra faz scroll horizontal */
  .ntl{font-size:.58rem;letter-spacing:-.01em}
  .nav-tab{padding:.45rem .6rem;font-size:.9rem;min-height:44px;gap:.2rem;flex-direction:column;align-items:center}
  .nav-tab .nbadge{font-size:.52rem;padding:.06rem .35rem}
  /* Cart: campo extra (desc/custo/série) quebra em 2 colunas */
  .sf-cr-extra{flex-wrap:wrap}
  .sf-cr-extra .sf-cr-field{min-width:calc(50% - .2rem);flex:1 1 calc(50% - .2rem)}
  /* Inputs ≥ 16px no mobile — evita auto-zoom do iOS */
  .sf-cr-prod,.sf-cr-nums input,.sf-cr-extra input,.sf-cr-qty{font-size:1rem !important}
  input[type="text"],input[type="number"],input[type="email"],input[type="tel"],input[type="search"],select,textarea{font-size:1rem !important}
  /* Campos de formulário: label um pouco maior */
  .sf-cr-lbl{font-size:.62rem}
  /* Seção header: botões não ficam na mesma linha que título */
  .secthdr{gap:.55rem}
  /* Botões secundários de produto: faixa horizontal com scroll */
  .p-sec-btns{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.1rem}
  /* Barra de busca+filtro: empilha verticalmente */
  .p-tools-row{flex-direction:column;align-items:stretch}
  .p-cat-sel{max-width:100%}
  /* Modal body lateral menor para ganhar conteúdo */
  .mbody{padding:.85rem 1rem}
  .mhdr{padding:.35rem 1rem .75rem}
  .mfooter{padding:.65rem 1rem max(env(safe-area-inset-bottom,.6rem),.6rem)}
}

/* ── Telas muito pequenas: ≤ 360px (Android entry / iPhone SE) */
@media(max-width:360px){
  #app{padding-left:.75rem;padding-right:.75rem}
  .tlogo h1{font-size:1.05rem}
  .nav-tab{padding:.52rem .6rem}
  .mbody{padding:.75rem .85rem}
  .mhdr{padding:.3rem .85rem .65rem}
  .mfooter{padding:.6rem .85rem max(env(safe-area-inset-bottom,.5rem),.5rem)}
  .fsect{margin-bottom:.75rem}
  .fsecttitle{margin-bottom:.5rem}
  .fld{gap:.25rem}
  .dhero{padding:.85rem .9rem}
  .damts{padding:.7rem .9rem;gap:.35rem}
  .dinsts{padding:.7rem .9rem}
  .fg3{grid-template-columns:1fr 1fr}
}

/* ── Ultra-pequeno: ≤ 320px (Android mínimo) ───────────── */
@media(max-width:320px){
  .tlogo h1{font-size:.95rem}
  .topbar{gap:.35rem}
  .nav-tab{font-size:.95rem;padding:.48rem .5rem}
  .fg2,.fg3{grid-template-columns:1fr}
  .secthdr{flex-direction:column;align-items:flex-start}
  .toolbar{gap:.35rem}
  .sf-cr-extra .sf-cr-field{min-width:100%;flex:1 1 100%}
}

/* ── Tablet: 768px–1024px ───────────────────────────────── */
@media(min-width:768px) and (max-width:1024px){
  .wrap{padding:0 1.5rem}
  /* Modal centralizado e mais largo */
  .modal{max-width:680px}
  /* Produto: mais colunas */
  .prod-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
  /* Dashboard: garante 3 cols no tablet antes dos 900px */
  .dash{grid-template-columns:repeat(3,1fr)}
  /* Botões não precisam de 44px em dispositivos com cursor */
}

/* ── Desktop: 1366px+ ───────────────────────────────────── */
@media(min-width:1366px){
  .wrap{max-width:1240px}
  #app{padding-left:2rem;padding-right:2rem}
  .prod-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
  /* Dashboard: 5 colunas já garantido pelo @media(min-width:900px) */
  /* Modal mais largo em telas grandes */
  .modal{max-width:680px}
  .modal-wide{max-width:760px}
  /* Aumenta ligeiramente os KPI cards */
  .dc{padding:1.1rem 1.15rem}
}

/* ── Ultra-wide: 1920px+ ────────────────────────────────── */
@media(min-width:1920px){
  .wrap{max-width:1480px}
  #app{padding-left:3rem;padding-right:3rem}
}

/* ─── Diagnóstico Inteligente — painel no modal OS ──────────── */
.os-diag-panel{background:var(--s2);border:1px solid rgba(37,99,235,.22);border-radius:10px;padding:.6rem .75rem;margin:.35rem 0 .5rem}
.diag-hdr{display:flex;align-items:center;gap:.4rem;margin-bottom:.45rem}
.diag-icon{font-size:.8rem;flex-shrink:0}
.diag-title{font-size:.67rem;font-weight:700;color:var(--acc);flex:1;text-transform:uppercase;letter-spacing:.07em}
.diag-close{background:none;border:none;color:var(--tx3);cursor:pointer;font-size:1rem;padding:0;line-height:1;flex-shrink:0}
.diag-close:hover{color:var(--tx1)}
.diag-lbl{font-size:.62rem;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.3rem}
.diag-cause-row{display:flex;align-items:center;gap:.45rem;padding:.18rem 0;border-bottom:1px solid var(--b1)}
.diag-cause-row:last-child{border-bottom:none}
.diag-cause-name{flex:1;font-size:.72rem;color:var(--tx1)}
.diag-bar-wrap{width:52px;flex-shrink:0}
.diag-conf-bar{width:100%;height:5px;background:var(--b2);border-radius:3px;overflow:hidden}
.diag-conf-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--acc-g),rgba(37,99,235,.5))}
.diag-conf-pct{font-size:.62rem;font-weight:700;color:var(--acc);min-width:26px;text-align:right;flex-shrink:0}
.diag-use-btn{font-size:.58rem;padding:.1rem .3rem;background:var(--acc-g);color:var(--acc);border:1px solid rgba(37,99,235,.3);border-radius:4px;cursor:pointer;white-space:nowrap;flex-shrink:0}
.diag-use-btn:hover{background:rgba(37,99,235,.25)}
.diag-chips-wrap{display:flex;flex-wrap:wrap;gap:.3rem;padding:.35rem .45rem;border-bottom:1px solid var(--b1);margin-bottom:.25rem}
.diag-chip{display:flex;align-items:center;gap:.25rem;background:var(--grn-g);border:1px solid rgba(124,255,196,.3);border-radius:20px;padding:.18rem .5rem;font-size:.67rem;color:var(--grn);max-width:100%}
.diag-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}
.diag-chip-x{background:none;border:none;color:var(--grn);cursor:pointer;font-size:.6rem;padding:0;line-height:1;opacity:.65;flex-shrink:0}
.diag-chip-x:hover{opacity:1}
.diag-tests{background:var(--s1);border-radius:7px;padding:.4rem .55rem;margin-top:.4rem}
.diag-tests-lbl{font-size:.62rem;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.25rem}
.diag-test-item{font-size:.68rem;color:var(--tx2);padding:.08rem 0;display:flex;gap:.3rem;line-height:1.3}
.diag-test-item::before{content:'→';color:var(--acc);flex-shrink:0}
.diag-footer{font-size:.61rem;color:var(--tx3);margin-top:.35rem}
body.theme-light .os-diag-panel{border-color:rgba(100,120,0,.18)}
body.theme-light .diag-conf-fill{background:linear-gradient(90deg,rgba(100,120,0,.2),rgba(100,120,0,.1))}

/* ─── Inteligência — modal ───────────────────────────────────── */
.intel-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.intel-card{background:var(--s2);border:1px solid var(--b2);border-radius:10px;padding:.7rem .85rem}
.intel-card-full{grid-column:1/-1}
.intel-card-title{font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--acc);margin-bottom:.55rem}
.intel-stat-row{display:flex;align-items:center;gap:.5rem;padding:.22rem 0;border-bottom:1px solid var(--b1)}
.intel-stat-row:last-child{border-bottom:none}
.intel-stat-name{flex:1;font-size:.72rem;color:var(--tx1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.intel-bar-wrap{width:70px;flex-shrink:0}
.intel-bar{height:5px;background:var(--b2);border-radius:3px;overflow:hidden}
.intel-bar-fill{height:100%;border-radius:3px;background:var(--acc-g)}
.intel-stat-count{font-size:.66rem;font-weight:700;color:var(--tx2);min-width:28px;text-align:right;flex-shrink:0}
.intel-kpi-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.55rem}
.intel-kpi{background:var(--s1);border:1px solid var(--b1);border-radius:8px;padding:.45rem .65rem;flex:1;min-width:90px;text-align:center}
.intel-kpi-val{font-size:1.4rem;font-weight:800;color:var(--acc);line-height:1}
.intel-kpi-lbl{font-size:.6rem;color:var(--tx3);margin-top:.2rem}
.intel-profit-row{display:flex;align-items:baseline;gap:.4rem;padding:.22rem 0;border-bottom:1px solid var(--b1)}
.intel-profit-row:last-child{border-bottom:none}
.intel-profit-name{flex:1;font-size:.72rem;color:var(--tx1)}
.intel-profit-avg{font-size:.72rem;font-weight:700;color:var(--grn)}
.intel-profit-cnt{font-size:.62rem;color:var(--tx3)}
.intel-empty{text-align:center;padding:2rem;color:var(--tx3);font-size:.8rem}
.intel-hint{font-size:.63rem;color:var(--tx3);margin-top:.6rem;line-height:1.4;border-top:1px solid var(--b2);padding-top:.5rem}
@media(max-width:480px){.intel-grid{grid-template-columns:1fr}.intel-card-full{grid-column:1}}

/* ─── Modal detalhe cliente: form edição inline ─────────────── */
.clidet-editwrap{border-bottom:1px solid var(--b1)}
.clidet-editwrap .finput{background:var(--s1);border:1px solid var(--b2);border-radius:7px;padding:.35rem .55rem;font-size:.78rem;color:var(--tx1);outline:none;width:100%;box-sizing:border-box}
.clidet-editwrap .finput:focus{border-color:var(--acc)}
/* ─── Toggle foto do aparelho ───────────────────────────────── */
.os-photo-toggle{background:none;border:1px dashed var(--b2);border-radius:7px;color:var(--tx3);font-size:.72rem;padding:.35rem .75rem;cursor:pointer;width:100%;text-align:left;margin-bottom:0;line-height:1.4}
.os-photo-toggle:hover{border-color:var(--acc);color:var(--acc)}
.os-photo-toggle.has-photo{border-color:rgba(37,99,235,.35);color:var(--acc);border-style:solid}
/* ─── Card OS: sem área de imagem vazia ─────────────────────── */
.scimg-photo{width:72px;min-width:72px;overflow:hidden;border-right:1px solid var(--b1);display:flex;align-items:center;justify-content:center}
.scimg-photo img{width:100%;height:100%;object-fit:cover}
/* ─── Botão inteligência OS ──────────────────────────────────── */
.btn-intel{font-size:.65rem;padding:.3rem .7rem;min-height:30px;border-color:rgba(37,99,235,.3);color:var(--acc)}
.btn-intel:hover{background:var(--acc-g);border-color:var(--acc)}

/* ═══════════════════════════════════════════════════════════
   WARRANTY MODULE — styles
═══════════════════════════════════════════════════════════ */

/* ── Warranty section in OS modal ─────────────────────── */
.war-sect-title{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--grn);margin:.55rem 0 .35rem}
.war-presets{display:flex;gap:.35rem;margin-bottom:.5rem;flex-wrap:wrap}
.war-preset-btn{background:var(--s2);border:1px solid var(--b2);border-radius:6px;color:var(--tx2);font-size:.72rem;padding:.25rem .55rem;cursor:pointer;font-weight:600;transition:background .15s,border-color .15s,color .15s}
.war-preset-btn:hover,.war-preset-btn.active{background:rgba(124,255,196,.15);border-color:rgba(124,255,196,.4);color:var(--grn)}

/* ── Warranty Certificate Modal ───────────────────────── */
.war-modal{max-width:480px}
.war-cert{background:#fff;color:#111;border-radius:10px;padding:1.25rem 1.4rem;margin-bottom:.85rem;font-family:'Syne',sans-serif}
.war-cert-hdr{text-align:center;border-bottom:2px solid #111;padding-bottom:.85rem;margin-bottom:.85rem}
.war-logo{max-height:54px;max-width:140px;margin:0 auto .4rem;display:block}
.war-cert-company{font-size:1rem;font-weight:800;letter-spacing:.04em;color:#111}
.war-cert-title-txt{font-size:.72rem;font-weight:700;letter-spacing:.18em;color:#444;margin-top:.2rem;text-transform:uppercase}
.war-cert-body{margin-bottom:.85rem}
.war-row{display:flex;gap:.5rem;padding:.22rem 0;border-bottom:1px solid #eee;font-size:.8rem;color:#222;align-items:flex-start}
.war-row:last-child{border-bottom:none}
.war-lbl{font-weight:700;min-width:110px;flex-shrink:0;color:#555;font-size:.75rem}
.war-val{flex:1;word-break:break-word}
.war-row-hl{background:rgba(0,128,0,.06);border-radius:5px;padding:.3rem .4rem;border-bottom:none;margin-top:.3rem}
.war-val-hl{font-weight:800;color:green;font-size:.88rem}
.war-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:.3rem;margin:.65rem 0}
.war-qr-hint{font-size:.62rem;color:#888;text-align:center}
.war-cert-footer{font-size:.68rem;color:#666;text-align:center;border-top:1px solid #ddd;padding-top:.6rem;margin-top:.3rem;font-style:italic}

/* ── Modal action row ──────────────────────────────────── */
.war-modal-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.war-modal-actions .btn-ghost{flex:1;min-width:100px;font-size:.72rem;padding:.4rem .5rem}

/* ── OS card return badge ──────────────────────────────── */
.war-return-badge{font-size:.62rem;font-weight:700;color:var(--blu);background:var(--blu-g);border:1px solid rgba(126,179,255,.3);border-radius:6px;padding:.18rem .5rem;margin:.3rem .65rem .4rem;display:inline-block}

/* ── Warranty Consultation Panel ─────────────────────── */
.wcon-panel{margin:1rem 0;border:1px solid var(--b2);border-radius:12px;overflow:hidden}
.wcon-toggle{width:100%;background:var(--s2);border:none;color:var(--tx1);font-family:inherit;font-size:.8rem;font-weight:700;padding:.75rem 1rem;cursor:pointer;text-align:left;display:flex;justify-content:space-between;align-items:center}
.wcon-toggle:hover{background:var(--s3)}
.wcon-arrow{color:var(--acc);font-size:.9rem}
.wcon-body{background:var(--s1);padding:.85rem 1rem}
.wcon-inputs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem}
@media(max-width:600px){.wcon-inputs{grid-template-columns:1fr}}
.wcon-result-card{background:var(--s2);border:1px solid var(--b2);border-radius:9px;padding:.65rem .8rem;margin-bottom:.5rem}
.wcon-result-card:last-child{margin-bottom:0}
.wcon-rc-title{font-size:.8rem;font-weight:700;color:var(--tx1);margin-bottom:.35rem}
.wcon-rc-row{display:flex;gap:.4rem;font-size:.72rem;color:var(--tx2);padding:.1rem 0}
.wcon-rc-lbl{font-weight:700;color:var(--tx3);min-width:72px;flex-shrink:0}
.wcon-rc-status{font-size:.72rem;font-weight:700;margin-top:.4rem;padding:.2rem .5rem;border-radius:5px;display:inline-block}
.wcon-status-ok{background:rgba(124,255,196,.12);color:var(--grn)}
.wcon-status-soon{background:rgba(255,179,71,.12);color:var(--org)}
.wcon-status-exp{background:var(--red-g);color:var(--red)}

/* ── Print: hide everything except certificate ───────── */
@media print {
  body > *:not(#warmod-ov):not(#comanda-ov) { display: none !important; }
  #warmod-ov { position: static !important; background: white !important; display: block !important; }
  .war-modal-actions, .mclose, .mhdr, .mhandle { display: none !important; }
  #war-print-area { display: block !important; }
  .war-cert { box-shadow: none !important; border-radius: 0 !important; }
  .mbody { padding: 0 !important; }
}

/* ── Dispositivos com cursor (hover): botões permanecem compactos */
@media(hover:hover) and (pointer:fine){
  .btn-primary,.btn-ghost,.btn-danger,.btn-detail,
  .paybtn,.unpaidbtn,.edit-btn,.outbtn,
  .profile-btn,.theme-toggle-btn{
    /* mantém altura definida no componente — sem sobrescrita */
  }
  /* Hover effects para mouse */
  .btn-primary:hover{background:#3b82f6}
  .btn-ghost:hover{border-color:var(--acc);color:var(--acc)}
  .btn-danger:hover{border-color:var(--red);color:var(--red)}
  .btn-detail:hover{border-color:var(--blu);color:var(--blu)}
  .paybtn:hover{background:var(--acc-g);border-color:var(--acc);color:var(--acc)}
  .unpaidbtn:hover{background:rgba(255,92,92,.18);border-color:rgba(255,92,92,.5);color:rgb(255,92,92)}
  .edit-btn:hover{background:var(--blu-g);border-color:var(--blu);color:var(--blu)}
  .profile-btn:hover,.theme-toggle-btn:hover{border-color:var(--acc);color:var(--acc)}
}

/* ══════════════════════════════════════════
   HELP MODAL — central de ajuda contextual
══════════════════════════════════════════ */
.help-modal-overlay{
  position:fixed;inset:0;z-index:10000;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(6px);
  padding:1rem;
}
.help-modal-overlay.hidden{display:none}
.help-modal-box{
  background:var(--s1);
  border:1px solid var(--b2);
  border-radius:20px;
  width:100%;max-width:460px;
  max-height:88vh;
  display:flex;flex-direction:column;
  box-shadow:0 32px 80px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.04);
  overflow:hidden;
}
.help-modal-head{
  display:flex;align-items:center;gap:.75rem;
  padding:1rem 1.1rem .85rem;
  background:var(--s2);
  border-bottom:1px solid var(--b1);
  flex-shrink:0;
}
.help-modal-head-icon{
  font-size:1.3rem;line-height:1;
  width:38px;height:38px;border-radius:10px;
  background:rgba(37,99,235,.12);
  border:1px solid rgba(37,99,235,.18);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.help-modal-head-title{
  font-size:.95rem;font-weight:800;color:var(--tx1);flex:1;letter-spacing:.01em;
}
.help-modal-close{
  background:none;border:none;
  color:var(--tx3);font-size:1rem;
  cursor:pointer;padding:.3rem .4rem;border-radius:7px;
  line-height:1;transition:color .15s,background .15s;
}
.help-modal-close:hover{color:var(--tx1);background:var(--s3)}
.help-modal-body{
  overflow-y:auto;padding:1rem 1.1rem 1.4rem;
  display:flex;flex-direction:column;gap:.9rem;
}
.help-modal-desc{
  font-size:.8rem;color:var(--tx2);line-height:1.7;
  padding:.75rem .9rem;
  background:var(--s2);border-radius:10px;
  border-left:3px solid var(--acc);
  margin-top:.1rem;
}
.help-section-block{
  background:var(--s2);
  border:1px solid var(--b1);
  border-radius:12px;
  padding:.75rem .9rem .85rem;
  display:flex;flex-direction:column;gap:.55rem;
}
.help-section-title{
  font-size:.6rem;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--acc);
  padding-bottom:.4rem;
  border-bottom:1px solid var(--b1);
}
.help-steps{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:.55rem;
  counter-reset:help-step;
}
.help-steps li{
  display:flex;gap:.65rem;align-items:flex-start;
  font-size:.79rem;color:var(--tx1);line-height:1.6;
  counter-increment:help-step;
}
.help-steps li::before{
  content:counter(help-step);
  flex-shrink:0;
  width:20px;height:20px;border-radius:50%;
  background:var(--acc);color:#111;
  font-size:.62rem;font-weight:900;
  display:flex;align-items:center;justify-content:center;
  margin-top:.18rem;
}
.help-tips{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:.5rem;
}
.help-tips li{
  display:flex;gap:.6rem;align-items:flex-start;
  font-size:.78rem;color:var(--tx2);line-height:1.55;
}
.help-tips li::before{
  content:'💡';font-size:.75rem;flex-shrink:0;margin-top:.05rem;
}

/* botão ? nos módulos */
.btn-help{
  background:var(--s2);border:1.5px solid var(--b2);
  border-radius:50%;
  width:28px;height:28px;
  color:var(--tx2);font-size:.72rem;font-weight:700;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;
  transition:border-color .15s,color .15s,background .15s;
  line-height:1;
}
.btn-help:hover{border-color:var(--acc);color:var(--acc);background:rgba(37,99,235,.12)}
body.theme-light .btn-help{background:var(--s2);border-color:var(--b2);color:var(--tx2)}

/* ── Tamanhos de produto (Broto / Normal) ───────────── */
.pf-size-row{
  display:grid;
  grid-template-columns:1fr 1fr 1fr auto;
  gap:.4rem;
  align-items:center;
  margin-bottom:.4rem;
}
.pf-size-row input{
  width:100%;
  padding:.4rem .5rem;
  font-size:.8rem;
}
.pf-size-del{
  background:transparent;
  border:1px solid var(--b2);
  border-radius:6px;
  color:var(--tx3);
  font-size:.7rem;
  width:26px;height:26px;
  cursor:pointer;
  flex-shrink:0;
}
.pf-size-del:hover{color:#f66;border-color:#f66}

/* Seletor de tamanho na linha do carrinho */
.sf-cr-sizes{
  display:flex;
  align-items:center;
  gap:.5rem;
  padding:.35rem .4rem;
  background:rgba(37,99,235,.06);
  border:1px solid rgba(37,99,235,.18);
  border-radius:8px;
  margin-bottom:.3rem;
}
.sf-cr-sizes .sf-cr-lbl{
  font-size:.65rem;
  font-weight:700;
  color:var(--acc);
  white-space:nowrap;
}
.sf-cr-size-sel{
  flex:1;
  font-size:.75rem;
  padding:.3rem .5rem;
  background:var(--s2);
  border:1px solid var(--b1);
  border-radius:6px;
  color:var(--tx1);
}
.sf-cr-sizes.hidden{display:none}

/* ─── Meia a meia (sabores) ───────────────────────── */
.sf-cr-flavors-wrap{margin-bottom:.3rem}
.sf-cr-flavors-wrap.hidden{display:none}
.sf-cr-flavors-btn{
  background:transparent;
  border:1px solid rgba(37,99,235,.35);
  border-radius:8px;
  color:var(--acc);
  font-size:.7rem;
  padding:.3rem .7rem;
  cursor:pointer;
  width:100%;
  text-align:left;
  transition:background .15s;
}
.sf-cr-flavors-btn:hover{background:rgba(37,99,235,.08)}
.sf-cr-flavors-btn.active{background:rgba(37,99,235,.12);font-weight:700}
.sf-cr-flavors{padding:.4rem 0 0}
.sf-cr-flavors.hidden{display:none}
.sf-cr-flavors-list{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.3rem}
.sf-cr-flavor-row{display:flex;align-items:center;gap:.4rem}
.sf-cr-flavor-sel{
  flex:1;
  font-size:.75rem;
  padding:.3rem .5rem;
  background:var(--s2);
  border:1px solid var(--b1);
  border-radius:6px;
  color:var(--tx1);
}
.sf-cr-flavor-del{
  background:transparent;
  border:1px solid var(--b2);
  border-radius:6px;
  color:var(--tx3);
  font-size:.7rem;
  width:24px;height:24px;
  cursor:pointer;
  flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.sf-cr-flavor-del:hover{color:#f66;border-color:#f66}
.sf-cr-add-flavor{
  background:transparent;
  border:1px dashed var(--b2);
  border-radius:6px;
  color:var(--tx3);
  font-size:.68rem;
  padding:.2rem .6rem;
  cursor:pointer;
  width:100%;
  text-align:center;
  transition:border-color .15s,color .15s;
}
.sf-cr-add-flavor:hover{color:var(--acc);border-color:var(--acc)}

/* ─── Cardápio Digital banner (faixa compacta) ────── */
.ped-cardapio-banner{display:flex;align-items:center;gap:.5rem;background:rgba(255,122,47,.07);border:1px solid rgba(255,122,47,.2);border-radius:10px;padding:.45rem .7rem;margin:.5rem .5rem 0;flex-wrap:wrap}
.ped-cardapio-qr{display:none}
.ped-cardapio-info{display:contents}
.ped-cardapio-title{font-size:.75rem;font-weight:700;white-space:nowrap}
.ped-cardapio-sub{display:none}
.ped-cardapio-url{font-size:.6rem;color:var(--tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;max-width:200px}
/* ─── Pedidos tab list ────────────────────────────── */
.ped-list{display:flex;flex-direction:column;gap:.6rem;padding:.5rem}
.ped-card{
  background:var(--s2);
  border:1px solid var(--b1);
  border-radius:12px;
  padding:.75rem .9rem;
  cursor:pointer;
  transition:border-color .15s,box-shadow .15s;
}
.ped-card:hover{border-color:var(--b2);box-shadow:0 2px 10px rgba(0,0,0,.3)}
.ped-card-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;flex-wrap:wrap}
.ped-num{font-size:.8rem;font-weight:800;color:var(--tx1)}
.ped-tipo-tag{font-size:.7rem;background:var(--s3);border-radius:6px;padding:.15rem .45rem;color:var(--tx2)}
.ped-online-badge{font-size:.68rem;background:#1a3a5c;border:1px solid #2a6fba;border-radius:6px;padding:.15rem .45rem;color:#6ab4ff;font-weight:700}
.ped-view-tabs{display:flex;gap:0;border-bottom:1px solid var(--b1);padding:0 1rem;background:var(--s1)}
.ped-view-tab{display:flex;align-items:center;gap:.35rem;padding:.55rem 1rem;font-size:.75rem;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}
.ped-view-tab:hover{color:var(--tx1)}
.ped-view-tab.active{color:var(--ac);border-bottom-color:var(--ac)}
.ped-receber-badge{background:#e53e3e;color:#fff;font-size:.6rem;font-weight:700;border-radius:999px;padding:.05rem .38rem;min-width:16px;text-align:center;line-height:1.4}
.ped-hist-filters{display:flex;gap:.5rem;padding:.45rem 1rem;background:var(--s2);border-bottom:1px solid var(--b1);align-items:center;flex-wrap:wrap}
.ped-qr-toggle{font-size:.68rem;padding:.2rem .55rem;margin-left:auto;border-radius:8px}
.ped-marcar-pago{font-size:.72rem !important;padding:.3rem .75rem !important;min-height:30px !important;border-radius:8px !important}
.pag-row{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem 1rem}
.pag-btn{padding:.3rem .85rem;font-size:.85rem;min-height:32px}
.pag-info{font-size:.72rem;color:var(--tx2);min-width:80px;text-align:center}
.ped-time{font-size:.7rem;color:var(--tx3);margin-left:auto}
.ped-status-badge{
  font-size:.68rem;
  font-weight:700;
  border:1px solid;
  border-radius:100px;
  padding:.12rem .5rem;
  white-space:nowrap;
}
.ped-card-body{margin-bottom:.45rem}
.ped-client{font-size:.82rem;font-weight:600;color:var(--tx1)}
.ped-items-preview{font-size:.72rem;color:var(--tx3);margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ped-card-foot{display:flex;align-items:center;gap:.5rem}
.ped-total{font-size:.85rem;font-weight:700;color:var(--acc);margin-right:auto}
.ped-actions{display:flex;gap:.4rem;flex-wrap:wrap}

/* Tipo tabs no modal de pedido */
.ped-tipo-tabs{display:flex;gap:.5rem;margin-bottom:.9rem}
.ped-tipo-btn{
  flex:1;
  padding:.5rem .3rem;
  background:var(--s3);
  border:1px solid var(--b1);
  border-radius:9px;
  color:var(--tx2);
  font-size:.78rem;
  cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
  white-space:nowrap;
}
.ped-tipo-btn.active{
  background:rgba(37,99,235,.14);
  border-color:var(--acc);
  color:var(--acc);
  font-weight:700;
}

/* Linhas de item no modal de pedido */
.ped-item-wrap{margin-bottom:.4rem}
.ped-item-row{
  display:grid;
  grid-template-columns:1fr 55px 75px auto;
  gap:.4rem;
  align-items:center;
}
.ped-item-name,.ped-item-qty,.ped-item-price{
  width:100%;
  padding:.38rem .5rem;
  font-size:.78rem;
  background:var(--s2);
  border:1px solid var(--b1);
  border-radius:7px;
  color:var(--tx1);
}
.ped-item-qty{text-align:center}
.ped-item-btns{display:flex;gap:.3rem;align-items:center}
.ped-item-meia-btn{
  background:transparent;
  border:1px solid var(--b2);
  border-radius:6px;
  color:var(--tx3);
  font-size:.75rem;
  font-weight:700;
  width:26px;height:26px;
  cursor:pointer;
  flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:background .12s,border-color .12s,color .12s;
}
.ped-item-meia-btn:hover{color:var(--acc);border-color:var(--acc)}
.ped-item-meia-btn.active{background:rgba(37,99,235,.15);border-color:var(--acc);color:var(--acc)}
/* Borda + Obs (details section) */
.ped-item-details{padding:.35rem 0 0;display:flex;flex-direction:column;gap:.3rem}
.ped-item-details.hidden{display:none}
.ped-detail-borda-row{display:flex;align-items:center;gap:.4rem}
.ped-detail-borda-row span{font-size:.65rem;color:var(--tx3);white-space:nowrap}
.ped-borda-sel{font-size:.7rem;flex:1;min-width:0;padding:.3rem .4rem;border-radius:6px}
.ped-detail-obs-row{display:flex}
.ped-item-obs{
  width:100%;
  padding:.3rem .45rem;
  font-size:.72rem;
  background:var(--s2);
  border:1px solid var(--b1);
  border-radius:6px;
  color:var(--tx1);
}
/* Botão detalhes (⊞) */
.ped-item-det-btn{
  background:transparent;
  border:1px solid var(--b2);
  border-radius:6px;
  color:var(--tx3);
  font-size:.72rem;
  width:26px;height:26px;
  cursor:pointer;
  flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:background .12s,border-color .12s,color .12s;
}
.ped-item-det-btn:hover{color:#f90;border-color:#f90}
.ped-item-det-btn.active{background:rgba(255,153,0,.12);border-color:#f90;color:#f90}
/* Sabores + extras */
.ped-item-flavors{
  display:flex;
  flex-direction:column;
  gap:.3rem;
  padding:.3rem 0 0;
}
.ped-item-flavors.hidden{display:none}
.ped-flavor-row{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}
.ped-flavor-inp,.ped-extra-inp{
  width:100%;
  padding:.32rem .45rem;
  font-size:.73rem;
  background:var(--s2);
  border-radius:6px;
  color:var(--tx1);
}
.ped-flavor-inp{border:1px solid rgba(37,99,235,.3)}
.ped-extra-inp{border:1px solid rgba(255,153,0,.3)}
.ped-flavor-inp:focus,.ped-extra-inp:focus{border-color:var(--acc);outline:none}

/* Tamanho + Adicional (pizza inteira) */
.ped-size-row,.ped-adics-row{display:flex;align-items:center;gap:.4rem;padding:.3rem 0 0}
.ped-size-row.hidden,.ped-adics-row.hidden{display:none}
.ped-detail-lbl{font-size:.65rem;color:var(--tx3);white-space:nowrap}
.ped-size-sel{font-size:.7rem;flex:1;min-width:0;padding:.3rem .4rem;border-radius:6px}
.ped-adics-inp{
  flex:1;
  padding:.32rem .45rem;
  font-size:.73rem;
  background:var(--s2);
  border:1px solid rgba(255,153,0,.3);
  border-radius:6px;
  color:var(--tx1);
}

/* Motoboy widget na aba Pedidos */
.ped-mb-widget{
  display:flex;
  align-items:center;
  gap:.5rem;
  padding:.5rem .75rem;
  background:var(--s2);
  border-bottom:1px solid var(--b1);
  flex-wrap:wrap;
}
.ped-mb-label{font-size:.68rem;color:var(--tx3);font-weight:700;white-space:nowrap}
.ped-mb-chip{
  display:flex;align-items:center;gap:.3rem;
  background:var(--s3);
  border:1px solid var(--b1);
  border-radius:100px;
  padding:.2rem .55rem;
  font-size:.72rem;
  color:var(--tx2);
  cursor:default;
  transition:border-color .15s;
}
.ped-mb-chip--busy{border-color:rgba(250,160,0,.4);background:rgba(250,160,0,.08);color:#fa0}
.ped-mb-dot{
  width:7px;height:7px;
  border-radius:50%;
  background:#4c4;
  flex-shrink:0;
}
.ped-mb-chip--busy .ped-mb-dot{background:#fa0}
.ped-mb-name{font-weight:600}
.ped-mb-cnt{
  background:rgba(250,160,0,.25);
  border-radius:100px;
  padding:0 .35rem;
  font-size:.65rem;
  font-weight:700;
}

/* ─── Zones configurator ────────── */
.zone-row{
  display:grid;
  grid-template-columns:1fr 85px 26px;
  gap:.35rem;
  margin-bottom:.35rem;
  align-items:center;
}
.zone-inp{
  padding:.3rem .5rem;
  border:1px solid var(--bdr);
  border-radius:6px;
  font-size:.72rem;
  background:var(--surface);
  color:var(--tx1);
  width:100%;
}
.zone-del{
  background:none;
  border:none;
  color:#f44;
  font-size:.9rem;
  cursor:pointer;
  padding:0;
  line-height:1;
  min-width:26px;
  text-align:center;
}

/* ─── Motoboy Fechamento ────────── */
.mb-fech-row{
  display:grid;
  grid-template-columns:2.5rem 1fr 1fr 3rem 4rem;
  gap:.3rem;
  font-size:.72rem;
  padding:.2rem 0;
  border-bottom:1px solid var(--bdr);
  color:var(--tx2);
}
.mb-fech-hdr{ font-weight:600;color:var(--tx1);font-size:.68rem;border-bottom:2px solid var(--bdr); }
.mb-fech-foot{ font-weight:600;color:var(--tx1);border-top:2px solid var(--bdr);border-bottom:none;margin-top:.15rem;padding-top:.25rem; }
.mb-fech-num{ font-weight:600;color:var(--tx1); }
.mb-fech-time{ text-align:right; }
.mb-fech-val{ text-align:right;font-weight:600;color:var(--tx1); }
.mb-fech-calc-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:.78rem;
  padding:.3rem 0;
  border-bottom:1px solid var(--bdr);
  color:var(--tx2);
  gap:.5rem;
}
.mb-fech-inp{
  width:90px;
  padding:.25rem .4rem;
  border:1px solid var(--bdr);
  border-radius:6px;
  font-size:.72rem;
  background:var(--surface);
  color:var(--tx1);
  text-align:right;
}
.mb-fech-total{
  border-top:2px solid var(--tx1) !important;
  border-bottom:none !important;
  font-size:.88rem;
  font-weight:700;
  color:var(--tx1);
  padding-top:.5rem !important;
  margin-top:.25rem;
}
.mb-fech-total-val{ color:var(--green,#22c55e); font-size:1rem; }

/* ─── Relatório de Pedidos ────────── */
.preport-kpis{ display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:.5rem; }
@media(max-width:480px){ .preport-kpis{ grid-template-columns:repeat(2,1fr); } }
.preport-kpi{
  background:var(--surface2);
  border-radius:8px;
  padding:.5rem .6rem;
  display:flex;
  flex-direction:column;
  gap:.1rem;
}
.preport-kval{ font-size:1rem;font-weight:700;color:var(--tx1); }
.preport-klbl{ font-size:.65rem;color:var(--tx3); }
.preport-tbl{
  width:100%;
  border-collapse:collapse;
  font-size:.72rem;
}
.preport-tbl th{
  text-align:left;
  padding:.3rem .4rem;
  border-bottom:2px solid var(--bdr);
  color:var(--tx2);
  font-weight:600;
  white-space:nowrap;
}
.preport-tbl td{
  padding:.3rem .4rem;
  border-bottom:1px solid var(--bdr);
  color:var(--tx1);
  vertical-align:middle;
}
.preport-tbl tr:last-child td{ border-bottom:none; }

/* ─── Caixa Tab ────────────────────── */
.cx-closed-card{
  text-align:center;
  padding:2rem 1rem;
  border:1.5px dashed var(--bdr);
  border-radius:12px;
  margin:.5rem 0;
  color:var(--tx2);
}
.cx-open-card{
  background:var(--surface2);
  border-radius:12px;
  padding:1rem;
  border:1.5px solid rgba(68,204,68,.3);
}
.cx-open-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:.4rem;
}
.cx-open-dot{
  display:inline-block;
  width:8px;height:8px;
  border-radius:50%;
  background:#4c4;
  margin-right:.35rem;
  animation:cx-blink 1.4s infinite;
}
@keyframes cx-blink{ 0%,100%{opacity:1}50%{opacity:.3} }
.cx-open-label{ font-size:.72rem;font-weight:700;color:#4c4; }
.cx-open-time{ font-size:.7rem;color:var(--tx3); }
.cx-open-operator{ font-size:.75rem;color:var(--tx2);margin-bottom:.6rem; }
.cx-kpis{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.4rem;
  margin-bottom:.75rem;
}
@media(max-width:480px){ .cx-kpis{ grid-template-columns:repeat(2,1fr); } }
.cx-kpi{
  background:var(--surface);
  border-radius:8px;
  padding:.4rem .5rem;
  display:flex;
  flex-direction:column;
  gap:.1rem;
}
.cx-kpi span{ font-size:.88rem;font-weight:700;color:var(--tx1); }
.cx-kpi small{ font-size:.62rem;color:var(--tx3); }
.cx-actions{ display:flex;gap:.4rem;flex-wrap:wrap; }
.cx-act-btn{ font-size:.72rem;padding:.3rem .7rem; }
.cx-mov-row{
  display:grid;
  grid-template-columns:3rem 6rem 1fr 5rem;
  gap:.3rem;
  font-size:.72rem;
  padding:.3rem 0;
  border-bottom:1px solid var(--bdr);
  color:var(--tx2);
  align-items:center;
}
.cx-mov-time{ color:var(--tx3); }
.cx-mov-val{ text-align:right;font-weight:600; }

/* ─── Caixa Histórico ───────────────── */
.cx-hist-card{
  background:var(--surface2);
  border-radius:8px;
  padding:.6rem .75rem;
  margin-bottom:.5rem;
  border:1px solid var(--bdr);
}
.cx-hist-head{ display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:600;margin-bottom:.25rem; }
.cx-hist-dates{ font-size:.7rem;color:var(--tx3);margin-bottom:.2rem; }
.cx-hist-totals{ font-size:.72rem;color:var(--tx2); }

/* ─── Contas a Pagar ─────────────────── */
.bill-kpis{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.6rem;
  margin-bottom:.9rem;
}
.bill-kpi{
  background:var(--surface2);
  border-radius:10px;
  padding:.65rem .75rem;
  border:1px solid var(--bdr);
  text-align:center;
}
.bill-kpi-red{ border-color:rgba(239,68,68,.35); }
.bill-kpi-green{ border-color:rgba(34,197,94,.35); }
.bill-kpi-val{ display:block;font-size:.95rem;font-weight:700;color:var(--tx1); }
.bill-kpi-red .bill-kpi-val{ color:#ef4444; }
.bill-kpi-green .bill-kpi-val{ color:#22c55e; }
.bill-kpi-lbl{ display:block;font-size:.65rem;color:var(--tx3);margin-top:.15rem;text-transform:uppercase;letter-spacing:.04em; }

.bill-filters{
  display:flex;
  gap:.4rem;
  flex-wrap:wrap;
  margin-bottom:.75rem;
}
.bill-filter-btn{
  padding:.35rem .75rem;
  border-radius:20px;
  border:1px solid var(--bdr);
  background:var(--surface2);
  color:var(--tx2);
  font-size:.73rem;
  cursor:pointer;
  transition:background .15s,color .15s,border-color .15s;
}
.bill-filter-btn.active{
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
}

.bill-card{
  background:var(--surface2);
  border-radius:10px;
  padding:.75rem .85rem;
  margin-bottom:.6rem;
  border:1px solid var(--bdr);
  border-left:4px solid var(--bdr);
  transition:box-shadow .15s;
}
.bill-card:hover{ box-shadow:0 2px 8px rgba(0,0,0,.15); }
.bill-pendente{ border-left-color:#f59e0b; }
.bill-vencido{ border-left-color:#ef4444; }
.bill-pago{ border-left-color:#22c55e;opacity:.75; }

.bill-card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.5rem;
}
.bill-card-info{ flex:1;min-width:0; }
.bill-card-name{
  font-size:.85rem;
  font-weight:600;
  color:var(--tx1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  margin-bottom:.25rem;
}
.bill-card-meta{ display:flex;flex-wrap:wrap;gap:.3rem;align-items:center; }
.bill-tag{
  font-size:.62rem;
  background:var(--surface3,var(--s2));
  color:var(--tx2);
  border-radius:4px;
  padding:.15rem .45rem;
  border:1px solid var(--bdr);
}
.bill-tag-rec{ color:var(--accent); border-color:var(--accent); }
.bill-card-notes{ font-size:.65rem;color:var(--tx3); }

.bill-card-right{
  text-align:right;
  flex-shrink:0;
}
.bill-card-amt{
  font-size:.92rem;
  font-weight:700;
  color:var(--tx1);
}
.bill-card-date{ font-size:.68rem;color:var(--tx3);margin:.1rem 0; }

.bill-status-badge{
  display:inline-block;
  font-size:.62rem;
  padding:.15rem .5rem;
  border-radius:20px;
  font-weight:600;
}
.bill-pendente .bill-status-badge{ background:rgba(245,158,11,.15);color:#f59e0b; }
.bill-vencido  .bill-status-badge{ background:rgba(239,68,68,.15);color:#ef4444; }

/* ─── COMANDA OVERLAY ──────────────────────────── */
#comanda-ov{
  position:fixed;top:0;left:0;right:0;bottom:0;
  z-index:10000;
  background:#fff;color:#111;
  overflow-y:auto;
  display:flex;flex-direction:column;
}
#comanda-ov.hidden{display:none}
.comanda-bar{
  display:flex;gap:.75rem;
  padding:.65rem 1rem;
  background:#1a1a24;
  position:sticky;top:0;z-index:1;
  border-bottom:1px solid #2d2d3a;
}
.comanda-close-btn{background:#c33;color:#fff;border:none;border-radius:8px;padding:.4rem .9rem;font-size:.85rem;cursor:pointer;font-weight:600}
.comanda-close-btn:hover{background:#e44}
.comanda-print-btn{background:#2a7c45;color:#fff;border:none;border-radius:8px;padding:.4rem .9rem;font-size:.85rem;cursor:pointer;font-weight:600}
.comanda-print-btn:hover{background:#3a9c58}
#comanda-content{
  padding:1.5rem 1rem;
  max-width:340px;width:100%;
  margin:0 auto;
  font-family:'Courier New',Courier,monospace;
  font-size:11pt;line-height:1.6;
  color:#111;background:#fff;
}
#comanda-content .ch{font-size:13pt;font-weight:800;text-align:center;margin-bottom:2mm}
#comanda-content .cs{font-size:9pt;text-align:center;color:#555}
#comanda-content .hr{border:none;border-top:1px dashed #888;margin:.5rem 0}
#comanda-content .cln{font-size:12pt;font-weight:700;margin:.3rem 0}
#comanda-content .csec{font-size:10pt;margin:.25rem 0}
#comanda-content .cit{display:flex;gap:.35rem;margin:.2rem 0}
#comanda-content .cit-q{font-weight:700;min-width:1.5rem}
#comanda-content .cit-n{flex:1}
#comanda-content .cit-p{font-weight:600;white-space:nowrap}
#comanda-content .ctot{display:flex;justify-content:space-between;font-size:10pt;margin:.15rem 0}
#comanda-content .obs{font-size:9pt;color:#555;margin:.2rem 0}
#comanda-content h2{font-size:13pt;margin-bottom:4px}
#comanda-content .row{display:flex;justify-content:space-between;font-size:10.5pt;margin-bottom:4px}
@media print{
  body>*:not(#comanda-ov):not(#warmod-ov){display:none!important}
  .comanda-bar{display:none!important}
  #comanda-content{max-width:100%;padding:0;margin:0}
  #comanda-ov{position:static!important;overflow:visible!important}
}

/* ─── SPARKLINE 7 DIAS ─────────────────────────── */
.ds-sparkline-wrap{
  padding:.45rem 1rem .2rem;
  background:var(--s2);
  border-bottom:1px solid var(--b1);
  overflow:hidden;
}
.bill-pago     .bill-status-badge{ background:rgba(34,197,94,.15);color:#22c55e; }

.bill-card-btns{
  display:flex;
  gap:.35rem;
  margin-top:.55rem;
  padding-top:.45rem;
  border-top:1px solid var(--bdr);
}
.bill-btn-pay{
  font-size:.72rem;
  padding:.3rem .65rem;
  border-radius:6px;
  background:rgba(34,197,94,.1);
  color:#22c55e;
  border:1px solid rgba(34,197,94,.3);
  flex:1;
}
.bill-btn-edit,.bill-btn-del{
  font-size:.75rem;
  padding:.3rem .55rem;
  border-radius:6px;
  border:1px solid var(--bdr);
}
.bill-btn-del{ color:#ef4444; }

/* ─── DRE ───────────────────────────── */
.dre-period-bar{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin-bottom:.6rem;
}
.dre-period-btn{
  padding:.35rem .75rem;
  border-radius:20px;
  border:1px solid var(--bdr);
  background:var(--surface2);
  color:var(--tx2);
  font-size:.73rem;
  cursor:pointer;
  transition:background .15s,color .15s,border-color .15s;
}
.dre-period-btn.active{
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
}
.dre-custom-range{
  display:flex;
  align-items:center;
  gap:.5rem;
  margin-bottom:.6rem;
  flex-wrap:wrap;
}
.dre-custom-range.hidden{ display:none; }
.dre-custom-range input[type="date"]{
  font-size:.75rem;
  padding:.3rem .5rem;
  border-radius:6px;
  border:1px solid var(--bdr);
  background:var(--surface2);
  color:var(--tx1);
}
.dre-period-label{
  font-size:.68rem;
  color:var(--tx3);
  margin:.0 0 .7rem;
  text-align:center;
}
.dre-section{
  background:var(--surface2);
  border-radius:10px;
  padding:.75rem .85rem;
  margin-bottom:.65rem;
  border:1px solid var(--bdr);
}
.dre-section-hdr{
  display:flex;
  align-items:center;
  gap:.4rem;
  margin-bottom:.5rem;
  padding-bottom:.4rem;
  border-bottom:1px solid var(--bdr);
}
.dre-section-icon{ font-size:1rem; }
.dre-section-title{ font-size:.8rem;font-weight:700;color:var(--tx1); }
.dre-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.3rem 0;
  font-size:.77rem;
  border-bottom:1px solid rgba(255,255,255,.04);
}
.dre-row:last-child{ border-bottom:none; }
.dre-row-lbl{ color:var(--tx2); }
.dre-row-val{ font-weight:600;color:var(--tx1); }
.dre-rec-val{ color:#22c55e; }
.dre-desp-val{ color:#f59e0b; }
.dre-row-empty{ font-size:.72rem;color:var(--tx3);padding:.4rem 0;text-align:center; }
.dre-section-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:.55rem;
  padding-top:.4rem;
  border-top:1px solid var(--bdr);
  font-size:.8rem;
  font-weight:700;
  color:var(--tx1);
}
.dre-total-val{ font-size:.85rem; }
.dre-resultado{
  border-radius:10px;
  padding:.85rem 1rem;
  margin-bottom:.65rem;
  border:2px solid var(--bdr);
}
.dre-resultado-pos{ border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.06); }
.dre-resultado-neg{ border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.06); }
.dre-res-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.3rem 0;
}
.dre-res-lbl{ font-size:.78rem;font-weight:600;color:var(--tx1); }
.dre-res-num{ font-size:.9rem;font-weight:700; }
.dre-pos{ color:#22c55e; }
.dre-neg{ color:#ef4444; }
.dre-disclaimer{ font-size:.63rem;color:var(--tx3);text-align:center;margin-top:.35rem;line-height:1.4; }
.dre-lucro-bruto-block{padding:.6rem .9rem;margin-bottom:.6rem}
.dre-mb-card{background:var(--s3);border-radius:9px;padding:.65rem .8rem;margin-bottom:.5rem}
.dre-mb-name{font-size:.78rem;font-weight:700;color:var(--tx1);margin-bottom:.2rem}
.dre-mb-detail{font-size:.72rem;color:var(--tx3);margin-bottom:.1rem}
.dre-mb-total{font-size:.78rem;font-weight:700;color:#f59e0b;margin-top:.3rem}
.dre-mb-launch-btn{font-size:.68rem;padding:.25rem .65rem;min-height:26px;margin-top:.45rem}

/* ─── Módulo Compras ─────────────────── */
.comp-card{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.75rem;
  background:var(--s2);
  border:1px solid var(--b1);
  border-radius:10px;
  padding:.65rem .85rem;
  margin-bottom:.55rem;
  transition:box-shadow .15s;
}
.comp-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.14)}
.comp-card-left{flex:1;min-width:0}
.comp-card-date{font-size:.68rem;color:var(--tx3);margin-bottom:.15rem}
.comp-card-supplier{font-size:.82rem;font-weight:700;color:var(--tx1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.15rem}
.comp-card-items{font-size:.72rem;color:var(--tx2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.35rem}
.comp-card-actions{display:flex;gap:.35rem}
.comp-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;white-space:nowrap}
.comp-card-total{font-size:.9rem;font-weight:800;color:var(--tx1)}
.comp-card-pay{font-size:.68rem;color:var(--tx3)}

/* Itens dentro do modal de compra */
.comp-item-row{
  display:grid;
  grid-template-columns:1fr 3.5rem 5rem 2rem;
  gap:.4rem;
  align-items:center;
  margin-bottom:.4rem;
}
.comp-item-del{
  background:transparent;border:none;cursor:pointer;
  color:#f44;font-size:.95rem;padding:.2rem;line-height:1;
}

/* ─── QR de Mesa ─────────────────────── */
.ped-mesa-badge{
  display:inline-block;
  font-size:.65rem;
  font-weight:700;
  background:rgba(255,122,47,.12);
  color:#ff7a2f;
  border:1px solid rgba(255,122,47,.3);
  border-radius:5px;
  padding:.1rem .4rem;
  margin-right:.3rem;
  vertical-align:middle;
}

/* ═══════════════════════════════════════════════════════════
   ANÁLISE — Gráficos, Exportação e Previsão de Demanda
═══════════════════════════════════════════════════════════ */
.analytics-card{background:var(--bg2,#f9fafb);border:1px solid var(--b1,#e5e7eb);border-radius:10px;padding:.85rem 1rem;margin-bottom:.25rem;}
.analytics-card-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3,#9ca3af);margin-bottom:.6rem;}
.ac-empty{font-size:.8rem;color:var(--tx3);text-align:center;padding:1rem;}

/* KPI bar — resumo no topo da aba Análise */
.analytics-kpi-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin-bottom:.85rem;}
.akpi{background:var(--bg2,#f9fafb);border:1px solid var(--b1,#e5e7eb);border-radius:10px;padding:.7rem .85rem;display:flex;align-items:center;gap:.65rem;}
.akpi-icon{font-size:1.4rem;line-height:1;flex-shrink:0;}
.akpi-body{flex:1;min-width:0;}
.akpi-label{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3,#9ca3af);}
.akpi-val{font-size:.95rem;font-weight:800;color:var(--tx1,#111);line-height:1.25;}
.akpi-sub{font-size:.62rem;color:var(--tx3,#9ca3af);margin-top:.1rem;}

/* summary cards */
.fc-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;margin-bottom:.1rem;}
.fc-card{background:var(--bg2,#f9fafb);border:1px solid var(--b1,#e5e7eb);border-radius:10px;padding:.7rem .85rem;display:flex;flex-direction:column;gap:.18rem;}
.fc-card-icon{font-size:1.15rem;line-height:1;}
.fc-card-label{font-size:.66rem;color:var(--tx3,#9ca3af);font-weight:600;text-transform:uppercase;letter-spacing:.05em;}
.fc-card-val{font-size:.82rem;font-weight:700;color:var(--tx1,#111);line-height:1.2;}

/* table */
.fc-table{width:100%;border-collapse:collapse;font-size:.74rem;}
.fc-table th{background:var(--bg2,#f9fafb);padding:.35rem .5rem;text-align:left;font-weight:700;color:var(--tx2,#6b7280);border-bottom:1px solid var(--b1,#e5e7eb);white-space:nowrap;}
.fc-table td{padding:.32rem .5rem;border-bottom:1px solid var(--b1,#e5e7eb);color:var(--tx1,#111);white-space:nowrap;}
.fc-table tr:last-child td{border-bottom:none;}
.fc-best-row td{background:rgba(234,179,8,.08);font-weight:600;}
.fc-weekend td{color:var(--tx2,#6b7280);}
.fc-week-header td{background:var(--bg2,#f9fafb);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--tx3,#9ca3af);padding:.25rem .5rem;border-bottom:1px solid var(--b1,#e5e7eb);}

/* ═══════════════════════════════════════════════════════════
   PROFILE MODAL — Hero + Admin actions grid
═══════════════════════════════════════════════════════════ */
/* Hero row */
.pf-hero{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--b1);}
.pf-hero .pf-avatar-ring{width:62px;height:62px;flex-shrink:0;border-radius:50%;overflow:hidden;border:2px solid var(--b2);display:flex;align-items:center;justify-content:center;background:var(--bg2);cursor:pointer;position:relative;}
.pf-hero .pf-avatar-ico{font-size:1.7rem;line-height:1;}
.pf-hero .pf-avatar-cam{position:absolute;bottom:0;right:0;font-size:.65rem;background:rgba(0,0,0,.5);border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;}
.pf-hero-info{flex:1;min-width:0;}
.pf-hero-name{font-size:.98rem;font-weight:700;color:var(--tx1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pf-hero-company{font-size:.78rem;color:var(--tx2);margin-bottom:.3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pf-hero-meta{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;}
.pf-role-chip{display:inline-block;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;background:var(--acc-g);color:var(--acc);border:1px solid rgba(37,99,235,.25);border-radius:4px;padding:.1rem .4rem;}
.pf-email-txt{font-size:.68rem;color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Admin actions grid */
.pf-admin-actions{margin-top:.85rem;border-top:1px solid var(--b1);padding-top:.75rem;}
.pf-actions-label{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--tx3);margin-bottom:.55rem;}
.pf-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;}
.pf-action-btn{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:var(--bg2);border:1px solid var(--b1);border-radius:10px;padding:.6rem .3rem;cursor:pointer;transition:background .15s,border-color .15s;text-align:center;-webkit-tap-highlight-color:transparent;}
.pf-action-btn:hover{background:var(--bg3,var(--s2));border-color:var(--b2);}
.pf-action-ico{font-size:1.25rem;line-height:1;}
.pf-action-txt{font-size:.66rem;font-weight:600;color:var(--tx2);line-height:1.2;}

/* Staff stats bar */
.staff-stats-bar{font-size:.74rem;background:var(--bg2);border:1px solid var(--b1);border-radius:8px;padding:.45rem .75rem;margin-bottom:.65rem;display:flex;align-items:center;gap:.5rem;}

/* Staff edit form section */
.staff-form-section{background:var(--bg2);border:1px solid var(--b1);border-radius:10px;padding:.75rem;margin-top:.75rem;}

/* U2 — WA receipt toast */
.wa-receipt-toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--card);border:1px solid var(--border,var(--b1));border-radius:12px;padding:1rem 1.2rem;box-shadow:0 4px 20px rgba(0,0,0,.2);z-index:9000;display:flex;flex-direction:column;gap:.6rem;min-width:280px;max-width:340px;animation:slideUp .25s ease}
.wa-receipt-toast .wa-toast-title{font-weight:600;font-size:.9rem}
.wa-receipt-toast .wa-toast-meta{font-size:.82rem;color:var(--tx2,var(--tx3));line-height:1.4}
.wa-receipt-toast .wa-toast-btns{display:flex;gap:.5rem;margin-top:.2rem}
.wa-receipt-toast .wa-toast-send{flex:1;background:#25d366;color:#fff;border:none;border-radius:8px;padding:.45rem .7rem;font-size:.82rem;cursor:pointer;text-decoration:none;text-align:center}
.wa-receipt-toast .wa-toast-close{background:var(--bg2,var(--b1));border:1px solid var(--b1);color:var(--text);border-radius:8px;padding:.45rem .7rem;font-size:.82rem;cursor:pointer}
@keyframes slideUp{from{transform:translateX(-50%) translateY(20px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}

/* U3 — Period filter for sales */
.sale-period-filter{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem;align-items:center}
.sale-period-filter select,.sale-period-filter input[type=date]{font-size:.85rem;padding:.25rem .5rem;border:1px solid var(--b1);border-radius:6px;background:var(--bg);color:var(--text)}
.sale-period-date-range{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;flex-basis:100%}
.sale-period-date-range span{font-size:.8rem;color:var(--tx3)}
.sale-period-date-range input[type=date]{flex:1;min-width:130px}

/* U5 — OS status dot */
.os-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px;flex-shrink:0;vertical-align:middle}

/* U10 — Guarantee link preview modal */
.war-preview-modal{background:var(--card);border-radius:14px;padding:1.2rem 1.4rem;max-width:420px;width:100%;box-shadow:0 8px 32px rgba(0,0,0,.25)}
.war-preview-modal h3{margin:0 0 .6rem;font-size:1rem}
.war-preview-link-box{background:var(--bg2,var(--bg));border:1px solid var(--b1);border-radius:8px;padding:.55rem .75rem;font-size:.75rem;word-break:break-all;color:var(--tx2,var(--tx3));margin-bottom:.9rem;font-family:monospace}
.war-preview-btns{display:flex;gap:.6rem;flex-wrap:wrap}
.war-preview-btns .btn-wa-send{flex:1;background:#25d366;color:#fff;border:none;border-radius:8px;padding:.5rem .7rem;font-size:.85rem;cursor:pointer;min-width:120px;text-align:center}
.war-preview-btns .btn-copy-link{background:var(--bg2);border:1px solid var(--b1);color:var(--text);border-radius:8px;padding:.5rem .7rem;font-size:.85rem;cursor:pointer}
.war-preview-btns .btn-close-prev{background:transparent;border:1px solid var(--b1);color:var(--tx3);border-radius:8px;padding:.5rem .7rem;font-size:.85rem;cursor:pointer}

/* F4 — Bills due alert */
.dash-alert-bills{display:flex;align-items:center;gap:.75rem;background:#fef3c7;border:1px solid #fcd34d;border-radius:10px;padding:.75rem 1rem;margin-bottom:.75rem}
[data-theme=dark] .dash-alert-bills{background:#2d2500;border-color:#fcd34d44}
.dash-alert-bills strong{font-size:.9rem;color:#78350f;display:block}
[data-theme=dark] .dash-alert-bills strong{color:#fcd34d}
.dash-bills-alert-btn{margin-left:auto;background:#f59e0b;color:#fff;border:none;border-radius:6px;padding:.35rem .8rem;cursor:pointer;white-space:nowrap;font-size:.82rem;font-weight:700}

/* F1 — DRE profitability table */
#dre-rent-table tbody tr:nth-child(even){background:var(--bg2)}
#dre-rent-table tbody td{padding:.4rem .5rem;border-bottom:1px solid var(--b1)}
.dre-rent-margin-ok{color:#10b981;font-weight:700}
.dre-rent-margin-warn{color:#f59e0b;font-weight:700}
.dre-rent-margin-bad{color:#ef4444;font-weight:700}

/* F3 — OS tech report cards */
.os-tech-kpi{background:var(--bg);border:1px solid var(--b1);border-radius:8px;padding:.6rem .7rem;text-align:center}
.os-tech-kpi-val{font-size:1.1rem;font-weight:800;color:var(--tx1);display:block}
.os-tech-kpi-lbl{font-size:.67rem;color:var(--tx3);display:block;margin-top:.15rem}

/* F5 — Label card print */
.label-card{font-family:Arial,sans-serif;border:1px solid #333;border-radius:4px;padding:.5rem .75rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;background:#fff;color:#111}
.label-card.lbl-sm{width:5cm;min-height:3cm}
.label-card.lbl-md{width:7cm;min-height:4cm}
.label-card.lbl-lg{width:10cm;min-height:6cm}
.label-card .lbl-store{font-size:.65rem;color:#666;text-transform:uppercase;letter-spacing:.05em}
.label-card .lbl-name{font-size:.9rem;font-weight:700;line-height:1.2;word-break:break-word;max-width:100%}
.label-card .lbl-price{font-size:1.1rem;font-weight:900;color:#111;margin-top:.15rem}
.label-card .lbl-code{font-size:.6rem;color:#555;margin-top:.1rem;font-family:monospace}
.label-card .lbl-qr{margin-top:.2rem}

/* F7 — Sale receipt print */
#receipt-print-area{display:none}

/* U1 — Global search */
.gs-group-header{font-size:.72rem;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em;padding:.5rem 1rem .25rem}
.gs-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;cursor:pointer;transition:background .15s}
.gs-item:hover,.gs-item:active{background:var(--s2)}
.gs-name{font-weight:500;font-size:.92rem;color:var(--tx1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-meta{font-size:.78rem;color:var(--tx3);margin-left:.6rem;white-space:nowrap;flex-shrink:0}

/* Print media — F5 label + F7 receipt */
@media print {
  /* F5 — Label print */
  body.printing-label > *:not(#label-print-area){display:none!important}
  #label-print-area{display:flex!important;flex-wrap:wrap;gap:.3cm;padding:0}
  /* F7 — Receipt print */
  body.printing-receipt > *:not(#receipt-print-area){display:none!important}
  #receipt-print-area{display:block!important;font-family:'Courier New',monospace;font-size:11px;max-width:80mm;margin:0 auto;padding:0;color:#000}
  #receipt-print-area h3{text-align:center;font-size:13px;margin:0 0 3px}
  #receipt-print-area .rcp-sub{text-align:center;font-size:9px;color:#444;margin-bottom:6px}
  #receipt-print-area .rcp-hr{border-top:1px dashed #000;margin:4px 0}
  #receipt-print-area .rcp-row{display:flex;justify-content:space-between}
  #receipt-print-area .rcp-item-name{flex:1;overflow:hidden}
  #receipt-print-area .rcp-total{font-weight:700;font-size:13px}
  #receipt-print-area .rcp-center{text-align:center}
  #receipt-print-area .rcp-logo{max-width:60px;max-height:40px;display:block;margin:0 auto 4px}
}

/* ── Previsão de Demanda ─────────────────────────────── */
.prev-section{margin-bottom:1.25rem}
.prev-section-title{font-size:.78rem;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.6rem;padding-bottom:.3rem;border-bottom:1px solid var(--b1)}
.prev-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;margin-bottom:.75rem}
.prev-kpi{background:var(--card);border:1px solid var(--b1);border-radius:10px;padding:.7rem .85rem}
.prev-kpi-label{font-size:.7rem;color:var(--tx3);font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem}
.prev-kpi-val{font-size:1.25rem;font-weight:800;color:var(--tx1);line-height:1.1}
.prev-kpi-sub{font-size:.72rem;color:var(--tx3);margin-top:.15rem}
.prev-kpi-up{color:#10b981}.prev-kpi-down{color:#ef4444}.prev-kpi-neu{color:#f59e0b}
.prev-chart-wrap{background:var(--card);border:1px solid var(--b1);border-radius:10px;padding:.75rem;margin-bottom:.6rem}
.prev-chart-title{font-size:.78rem;font-weight:700;color:var(--tx2);margin-bottom:.6rem}
.prev-bars{display:flex;align-items:flex-end;gap:.25rem;height:72px}
.prev-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:.2rem;height:100%;justify-content:flex-end}
.prev-bar-fill{width:100%;border-radius:3px 3px 0 0;background:var(--primary,#6366f1);min-height:2px;transition:height .3s}
.prev-bar-fill.best{background:#10b981}
.prev-bar-lbl{font-size:.58rem;color:var(--tx3)}
.prev-list-wrap{background:var(--card);border:1px solid var(--b1);border-radius:10px;padding:.75rem;margin-bottom:.6rem}
.prev-list-title{font-size:.78rem;font-weight:700;color:var(--tx2);margin-bottom:.5rem}
.prev-list-row{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0;border-bottom:1px solid var(--b1);font-size:.82rem;gap:.5rem}
.prev-list-row:last-child{border-bottom:none}
.prev-list-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prev-badge{font-size:.7rem;font-weight:700;border-radius:999px;padding:.1rem .45rem;white-space:nowrap}
.prev-badge-red{background:#fee2e2;color:#dc2626}
.prev-badge-yellow{background:#fef3c7;color:#d97706}
.prev-badge-green{background:#dcfce7;color:#16a34a}
