:root{
  --navy:#111a24;
  --navy-2:#16212c;
  --sidebar-bg:#ffffff;
  --surface:#ffffff;
  --surface-2:#f6f8f9;
  --nav-hover:#f1f3f5;
  --nav-active-bg:#eaf6ec;
  --border:#e4e7eb;
  --text:#2b3648;
  --text-strong:#161f2c;
  --text-muted:#6b7686;
  --green:#3fa64a;
  --green-dark:#358f3f;
  --blue:#2f96d6;
  --orange:#f0a532;
  --red:#e5533f;
  --bg:#f4f6f8;
  --card-bg:#ffffff;
  --radius:6px;
  --on-accent:#fff;
  color-scheme:light;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;height:100%;}
body{
  font-family:"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:13px;
}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* ---------- Topbar ---------- */
.topbar{
  height:52px;
  background:var(--navy);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 16px;
  position:sticky;
  top:0;
  z-index:50;
}
.topbar-left{display:flex;align-items:center;gap:14px;}
.logo{color:#fff;font-size:20px;font-weight:400;letter-spacing:.3px;}
.logo span{color:var(--green);font-weight:700;}
.topbar-right{display:flex;align-items:center;gap:6px;}
.icon-btn{
  background:transparent;border:none;color:#c7ced8;cursor:pointer;
  width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  position:relative;
}
.icon-btn:hover{background:rgba(255,255,255,.08);color:#fff;}
.icon-btn .dot{position:absolute;top:6px;right:7px;width:7px;height:7px;border-radius:50%;background:#f2b332;}
.avatar{
  width:32px;height:32px;border-radius:50%;background:var(--green);color:var(--on-accent);
  display:flex;align-items:center;justify-content:center;font-weight:700;margin-left:6px;cursor:pointer;
}

/* ---------- Shell / layout ---------- */
.shell{display:flex;min-height:calc(100vh - 52px);}
.sidebar{
  width:230px;flex:none;background:var(--sidebar-bg);border-right:1px solid var(--border);
  padding:14px 10px 40px;overflow-y:auto;
  height:calc(100vh - 52px);position:sticky;top:52px;
  transition:margin-left .2s ease;
}
.overlay{display:none;}
.content{flex:1;min-width:0;padding:22px 26px 60px;}

.company-box{
  background:var(--navy-2);color:#fff;border-radius:var(--radius);
  padding:10px 12px;display:flex;align-items:center;gap:10px;justify-content:space-between;
  margin-bottom:14px;cursor:pointer;
}
.company-info{flex:1;min-width:0;}
.company-logo{width:34px;height:34px;border-radius:7px;overflow:hidden;flex:none;background:#0c141c;}
.company-logo img{width:100%;height:100%;object-fit:contain;display:block;}
.company-name{font-weight:700;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.company-doc{font-size:11px;color:#9aa6b5;margin-top:2px;}
.company-box .chev{width:16px;height:16px;color:#9aa6b5;flex:none;}

.nav{display:flex;flex-direction:column;gap:1px;}
.nav-group{margin-bottom:2px;}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:5px;
  color:var(--text);text-decoration:none;cursor:pointer;font-size:13px;user-select:none;
}
.nav-item svg{width:16px;height:16px;flex:none;color:#7a8494;}
.nav-item:hover{background:var(--nav-hover);}
.nav-item.active{background:var(--nav-active-bg);color:var(--green-dark);font-weight:600;}
.nav-item.active svg{color:var(--green-dark);}
.nav-item .chev{margin-left:auto;width:14px;height:14px;transition:transform .15s;}
.nav-item.open .chev{transform:rotate(180deg);}
.nav-sub{display:none;flex-direction:column;padding-left:14px;border-left:1px solid var(--border);margin:2px 0 6px 22px;}
.nav-sub.open{display:flex;}
.nav-sub .nav-item{padding:7px 8px;font-size:12.5px;}
.nav-sub .nav-item svg{width:14px;height:14px;}

/* ---------- Page header ---------- */
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
.page-title{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:600;color:var(--text-strong);}
.page-title svg{width:20px;height:20px;color:var(--green-dark);}
.breadcrumb{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:6px;}
.breadcrumb svg{width:13px;height:13px;}

/* ---------- Buttons ---------- */
.btn{
  border:1px solid transparent;border-radius:5px;padding:8px 14px;font-size:13px;font-weight:600;
  cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
}
.btn svg{width:15px;height:15px;}
.btn-green{background:var(--green);color:var(--on-accent);}
.btn-green:hover{background:var(--green-dark);}
.btn-dark{background:var(--navy-2);color:#fff;}
.btn-dark:hover{filter:brightness(.85);}
.btn-outline{background:var(--surface);color:var(--text);border-color:var(--border);}
.btn-outline:hover{background:var(--surface-2);}
.btn-red{background:var(--red);color:#fff;}
.btn-sm{padding:5px 10px;font-size:12px;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;justify-content:space-between;}
.toolbar-left{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.toolbar-right{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}

.search-box{display:flex;align-items:center;}
.search-box input{
  border:1px solid var(--border);border-right:none;border-radius:5px 0 0 5px;padding:8px 10px;font-size:13px;width:230px;
  background:var(--surface);color:var(--text);
}
.search-box button{border-radius:0 5px 5px 0;border:1px solid var(--navy-2);background:var(--navy-2);color:#fff;padding:8px 11px;cursor:pointer;}

/* ---------- Cards / panels ---------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;}
.grid{display:grid;gap:16px;}
.grid-2{grid-template-columns:1fr 1fr;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-6{grid-template-columns:repeat(6,1fr);}
@media(max-width:1100px){.grid-2,.grid-3,.grid-4,.grid-6{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.grid-2,.grid-3,.grid-4,.grid-6{grid-template-columns:1fr;}}

.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;}
.stat-card .lbl{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:6px;}
.stat-card .val{font-size:20px;font-weight:700;margin:6px 0 8px;color:var(--text-strong);}
.stat-card .icon-badge{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;}
.icon-badge.up{background:#e5f6e8;color:var(--green-dark);}
.icon-badge.down{background:#fbe8e6;color:var(--red);}
.icon-badge.plus{background:#e5f6e8;color:var(--green-dark);}
.icon-badge.minus{background:#fbe8e6;color:var(--red);}

.section-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;margin-bottom:4px;color:var(--text-strong);}
.section-title svg{width:16px;height:16px;color:var(--green-dark);}
.section-sub{font-size:12px;color:var(--text-muted);margin-bottom:14px;}

.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 20px;text-align:center;color:var(--text-muted);}
.empty-state svg{width:44px;height:44px;color:var(--text-muted);opacity:.5;margin-bottom:10px;}
.empty-state h4{margin:4px 0 4px;color:var(--text-strong);font-size:15px;}
.empty-state p{margin:0 0 14px;font-size:12.5px;max-width:380px;}

/* ---------- Table ---------- */
.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:auto;}
table.datatable{width:100%;border-collapse:collapse;font-size:13px;}
table.datatable th{
  text-align:left;padding:11px 14px;background:var(--surface);border-bottom:2px solid var(--border);color:var(--text);font-weight:700;font-size:12.5px;white-space:nowrap;
}
table.datatable td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle;}
table.datatable tbody tr:hover{background:var(--surface-2);}
table.datatable .muted{color:var(--text-muted);font-size:12px;font-style:italic;}
table.datatable .link{color:var(--blue);font-weight:600;text-decoration:none;cursor:pointer;}
table.datatable .link:hover{text-decoration:underline;}
.table-footer{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;color:var(--text-muted);border-top:1px solid var(--border);}

.badge{display:inline-block;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:700;color:#fff;background:#6b7686;white-space:nowrap;}
.badge.gray{background:#6b7686;}
.badge.green{background:var(--green);}
.badge.orange{background:var(--orange);}
.badge.red{background:var(--red);}
.badge.blue{background:var(--blue);}
.badge.dark{background:var(--navy-2);}
.badge.green,.badge.orange,.badge.red,.badge.blue{color:var(--on-accent);}

.actions{display:flex;gap:5px;}
.act-btn{
  width:29px;height:29px;border-radius:4px;border:none;display:inline-flex;align-items:center;justify-content:center;
  color:var(--on-accent);cursor:pointer;
}
.act-btn svg{width:14px;height:14px;}
.act-btn.view{background:var(--blue);}
.act-btn.edit{background:var(--orange);}
.act-btn.del{background:var(--red);}
.act-btn.more{background:#8892a0;}
.act-btn:hover{filter:brightness(1.08);}

.dropdown-menu{
  position:fixed;background:var(--surface);border:1px solid var(--border);border-radius:7px;
  box-shadow:0 12px 30px rgba(20,30,45,.25);min-width:190px;z-index:300;overflow:hidden;padding:5px;
}
.dropdown-menu button{
  display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 10px;background:none;border:none;
  border-radius:5px;font-size:12.5px;color:var(--text);cursor:pointer;
}
.dropdown-menu button svg{width:14px;height:14px;flex:none;color:#7a8494;}
.dropdown-menu button:hover{background:var(--nav-hover);}
.dropdown-menu button.danger{color:var(--red);}
.dropdown-menu button.danger svg{color:var(--red);}
.dropdown-sep{height:1px;background:var(--border);margin:5px 4px;}

/* ---------- Forms ---------- */
.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;}
.form-section .fs-head{padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius) var(--radius) 0 0;}
.form-section .fs-body{padding:18px;}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;}
.field label{font-size:12.5px;color:var(--text);font-weight:600;}
.field label .req{color:var(--red);}
.field small{color:var(--text-muted);font-size:11px;}
.field input,.field select,.field textarea{
  border:1px solid var(--border);border-radius:5px;padding:9px 11px;font-size:13px;font-family:inherit;color:var(--text);background:var(--surface);width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(63,166,74,.18);}
.field textarea{resize:vertical;min-height:80px;}
.form-actions{display:flex;gap:10px;margin-top:6px;}

.items-table{width:100%;border-collapse:collapse;margin-bottom:10px;}
.items-table th{text-align:left;font-size:11.5px;color:var(--text);padding:6px 8px;border-bottom:1px solid var(--border);}
.items-table td{padding:6px 8px;vertical-align:top;}
.items-table input,.items-table select{padding:7px 8px;font-size:12.5px;}
.items-table .rm{background:var(--red);color:#fff;border:none;border-radius:4px;width:28px;height:28px;cursor:pointer;}

/* ---------- Modal ---------- */
.modal-backdrop{
  display:none;position:fixed;inset:0;background:rgba(15,20,28,.5);z-index:200;align-items:flex-start;justify-content:center;overflow:auto;padding:40px 16px;
}
.modal-backdrop.show{display:flex;}
.modal{background:var(--surface);border-radius:8px;max-width:520px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.35);}
.modal.modal-lg{max-width:900px;}
.modal-head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.modal-head h3{margin:0;font-size:16px;color:var(--text-strong);}
.modal-head button{background:none;border:none;cursor:pointer;color:var(--text-muted);}
.modal-body{padding:20px;max-height:74vh;overflow:auto;}
.modal-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;}

/* ---------- Toast ---------- */
.toast{
  position:fixed;bottom:22px;right:22px;background:var(--navy-2);color:#fff;padding:12px 18px;border-radius:6px;
  font-size:13px;box-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none;z-index:400;
}
.toast.show{opacity:1;transform:translateY(0);}
.toast.green{border-left:4px solid var(--green);}
.toast.red{border-left:4px solid var(--red);}

/* ---------- Report tiles ---------- */
.report-tile{
  border-radius:6px;color:#fff;padding:18px;min-height:110px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;
}
.report-tile h4{margin:0 0 6px;font-size:16px;}
.report-tile p{margin:0;font-size:12px;opacity:.9;max-width:80%;}

/* ---------- Misc ---------- */
.pill-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;}
.pill-tab{padding:7px 14px;border-radius:20px;background:var(--surface-2);color:var(--text);font-size:12.5px;cursor:pointer;font-weight:600;}
.pill-tab.active{background:var(--navy-2);color:#fff;}
.mt-2{margin-top:16px;}
.text-right{text-align:right;}
.w-100{width:100%;}
.flex{display:flex;}
.gap-8{gap:8px;}
.between{justify-content:space-between;}
.chart-placeholder{height:200px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px;}

/* ---------- Seletor de tema ---------- */
.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
@media(max-width:640px){.theme-grid{grid-template-columns:repeat(2,1fr);}}
.theme-card{border:2px solid var(--border);border-radius:8px;padding:10px;cursor:pointer;background:var(--surface);}
.theme-card.active{border-color:var(--green);box-shadow:0 0 0 3px rgba(63,166,74,.15);}
.theme-card .swatches{display:flex;gap:4px;margin-bottom:8px;}
.theme-card .sw{width:18px;height:18px;border-radius:4px;flex:none;}
.theme-card .name{font-size:12.5px;font-weight:700;color:var(--text);}

.picker-row{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;}
.picker-row select{
  border:1px solid var(--border);border-radius:5px;padding:9px 11px;font-size:13px;font-family:inherit;
  color:var(--text);background:var(--surface);width:100%;
}
.picker-row select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(63,166,74,.18);}

.theme-preview-frame{
  width:190px;height:120px;border-radius:8px;overflow:hidden;border:1px solid var(--border);
  background:var(--bg);flex:none;
}
.tpv-top{height:16px;background:var(--navy);}
.tpv-body{display:flex;height:calc(100% - 16px);}
.tpv-side{width:34px;background:var(--sidebar-bg);border-right:1px solid var(--border);}
.tpv-main{flex:1;padding:8px;display:flex;flex-direction:column;gap:6px;}
.tpv-card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:4px;}
.tpv-card.small{flex:none;height:22px;display:flex;align-items:center;padding:0 8px;}
.tpv-dot{width:9px;height:9px;border-radius:50%;background:var(--green);}

.tpl-preview-frame{
  width:230px;height:190px;overflow:hidden;border:1px solid var(--border);border-radius:8px;
  background:#fff;flex:none;position:relative;
}
.tpl-preview-scale{width:800px;transform:scale(.29);transform-origin:top left;}
@media(max-width:640px){.picker-row{justify-content:center;}}

/* ---------- Gráfico de conversão (Relatórios) ---------- */
.conv-chart{display:flex;gap:14px;align-items:flex-end;padding-top:10px;}
.conv-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;}
.conv-bar-track{width:100%;max-width:50px;height:150px;background:var(--surface-2);border-radius:6px 6px 0 0;display:flex;align-items:flex-end;overflow:hidden;}
.conv-bar-fill{width:100%;background:linear-gradient(180deg,var(--green),var(--green-dark));border-radius:4px 4px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:4px;min-height:4px;}
.conv-bar-pct{font-size:10.5px;font-weight:700;color:var(--on-accent);}
.conv-bar-label{font-size:11.5px;font-weight:600;color:var(--text);margin-top:2px;}
.conv-bar-sub{font-size:10px;color:var(--text-muted);}
@media(max-width:640px){.conv-chart{gap:6px;}.conv-bar-track{height:110px;}}

/* Sidebar collapse for mobile */
@media(max-width:900px){
  .sidebar{position:fixed;left:0;top:52px;z-index:120;margin-left:-240px;box-shadow:4px 0 20px rgba(0,0,0,.15);}
  .sidebar.open{margin-left:0;}
  .overlay.show{display:block;position:fixed;inset:52px 0 0 0;background:rgba(0,0,0,.35);z-index:110;}
  .content{padding:16px;}
}

.print-only{display:none;}
@media print{
  .topbar,.sidebar,.overlay,.toolbar,.page-header .btn,.no-print{display:none !important;}
  .content{padding:0;}
  .print-only{display:block;}
  .doc-sheet{box-shadow:none !important;border:none !important;}
}

/* =====================================================================================
   Documento (Orçamento / Venda) — layout de impressão.
   Fica sempre com aparência de "papel" clara, mesmo em temas escuros: é um documento
   comercial impresso/exportado, não faz sentido escurecer (como um PDF de nota fiscal).
   ===================================================================================== */
.doc-sheet{
  background:#fff;border:1px solid #ececec;border-radius:4px;box-shadow:0 1px 2px rgba(20,30,45,.05),0 8px 24px -10px rgba(20,30,45,.14);
  padding:26px 44px 30px;max-width:800px;margin:0 auto;color:#2a2b28;
  font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif;font-size:11.5px;line-height:1.25;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact;
}
.doc-sheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact;}
@media(max-width:640px){.doc-sheet{padding:28px 22px;}}
/* Na tela, a folha tem a proporção de uma página A4 (como sai na impressora); o conteúdo longo continua crescendo. */
@media screen{.doc-sheet:not(.tpl-cupom){max-width:794px;aspect-ratio:210/297;}}

.doc-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:12px;}
.doc-head-left{display:flex;gap:12px;align-items:flex-start;}
.doc-logo{
  width:38px;height:38px;border-radius:6px;border:1px solid #ececec;color:#9a9d92;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;letter-spacing:.02em;flex:none;overflow:hidden;
}
.doc-logo img{width:100%;height:100%;object-fit:contain;display:block;}
.doc-company-name{font-size:13px;font-weight:700;letter-spacing:.01em;color:#23261f;margin:0 0 1px;}
.doc-company-meta{font-size:10.5px;color:#8a8d84;line-height:1.3;}
.doc-head-right{text-align:right;font-size:10.5px;color:#8a8d84;line-height:1.3;font-variant-numeric:tabular-nums;}
.doc-head-right .seller{color:#3d5c42;font-weight:700;}

.doc-kicker{font-size:16px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#23261f;text-align:center;margin:6px 0 2px;font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Consolas,"SFMono-Regular",Menlo,monospace;}
.doc-titlebar{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;margin-bottom:12px;}
.doc-titlebar h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em;font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Consolas,"SFMono-Regular",Menlo,monospace;font-variant-numeric:tabular-nums;}
.doc-titlebar h2 span{color:#3d5c42;}
.doc-titlebar .doc-date{font-size:10.5px;color:#8a8d84;text-align:left;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;}
.doc-titlebar .doc-date .badge{padding:2px 8px;font-size:9.5px;}

.doc-pills{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:10px;font-size:10.5px;}
.doc-pill{color:#8a8d84;}
.doc-pill b{display:block;font-size:11.5px;font-weight:600;color:#23261f;margin-top:0;}
.doc-pill.warn b{color:#96601f;}

.doc-box{margin-bottom:12px;}
.doc-sheet:not([class*="tpl-"]) .doc-box{margin-top:18px;}
.doc-box-title{
  font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#111;
  border-bottom:1px solid #ececec;padding-bottom:4px;margin:0 0 6px;font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Consolas,"SFMono-Regular",Menlo,monospace;
}
.doc-box-body{padding:0;}
.doc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:4px 30px;}
.doc-grid3{display:grid;grid-template-columns:1.2fr 1.1fr 1.7fr;gap:4px 22px;}
.doc-grid3 .span2{grid-column:span 2;}
.doc-grid3 .span3{grid-column:1 / -1;}
.doc-grid2 .li label,.doc-grid3 .li label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#9a9d92;margin-bottom:0;}
.doc-grid2 .li div,.doc-grid3 .li div{font-size:11px;color:#23261f;font-weight:500;}
@media(max-width:640px){.doc-grid2,.doc-grid3{grid-template-columns:1fr;}.doc-grid3 .span2,.doc-grid3 .span3{grid-column:auto;}}

table.doc-items{width:100%;border-collapse:collapse;margin-bottom:4px;}
table.doc-items thead th{
  text-align:left;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#111;font-weight:700;
  padding:0 0 4px;border-bottom:1px solid #ececec;
}
table.doc-items th.num{text-align:right;}
table.doc-items td{padding:3.5px 0;font-size:11px;border-bottom:1px solid #f3f3f1;color:#2a2b28;}
table.doc-items td.num{text-align:right;font-variant-numeric:tabular-nums;}
table.doc-items .item-tag{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#b0b3a8;margin-left:6px;}

.doc-total-wrap{display:flex;justify-content:flex-end;margin:6px 0 12px;}
.doc-total-box{min-width:200px;}
.doc-total-box .line{font-size:10.5px;color:#8a8d84;display:flex;justify-content:space-between;padding:1px 0;}
.doc-total-box .total{
  font-size:15px;font-weight:700;color:#23261f;margin-top:4px;padding-top:4px;
  border-top:1px solid #2a2b28;display:flex;justify-content:space-between;font-variant-numeric:tabular-nums;
}

table.doc-pay{width:100%;border-collapse:collapse;}
table.doc-pay th{text-align:left;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#111;font-weight:700;padding:0 12px 4px 0;border-bottom:1px solid #ececec;}
table.doc-pay td{padding:4px 12px 4px 0;font-size:11px;border-bottom:1px solid #f3f3f1;color:#2a2b28;}

.doc-obs ul{margin:0;padding-left:16px;font-size:10.5px;color:#5c6155;line-height:1.35;}
.doc-obs p{margin:0 0 3px;font-size:10.5px;color:#5c6155;line-height:1.35;white-space:pre-line;}

.doc-foot-note{text-align:center;font-size:9.5px;color:#b0b3a8;margin-top:14px;letter-spacing:.02em;}
.doc-sig{margin-top:28px;text-align:center;}
.doc-sig .line{width:280px;border-top:1px solid #d6d9cf;margin:0 auto 6px;}
.doc-sig .lbl{font-size:10.5px;color:#8a8d84;}

/* =====================================================================================
   MODELO 2 — MODERNO (faixa escura + logo em degradê verde + total em destaque)
   ===================================================================================== */
.doc-sheet.tpl-moderno{
  padding:30px 32px 36px;border-radius:10px;color:#2b3648;
  font-family:"Segoe UI",Roboto,Arial,sans-serif;font-size:13px;
}
.dmo-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-bottom:18px;border-bottom:2px solid #eef1f4;margin-bottom:18px;}
.dmo-head-l{display:flex;gap:14px;}
.dmo-logo{width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,#3fa64a,#2f7a3a);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;flex:none;overflow:hidden;}
.dmo-logo img{width:100%;height:100%;object-fit:contain;}
.dmo-cname{font-size:16px;font-weight:800;color:#16212c;margin:0 0 3px;}
.dmo-cmeta{font-size:11.5px;color:#6b7686;line-height:1.55;}
.dmo-head-r{text-align:right;font-size:11.5px;color:#6b7686;line-height:1.7;}
.dmo-seller{color:#358f3f;font-weight:700;}
.dmo-titlebar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:linear-gradient(90deg,#16212c,#233647);color:#fff;border-radius:8px;padding:12px 18px;margin-bottom:14px;}
.dmo-titlebar h2{margin:0;font-size:15px;}
.dmo-titlebar h2 span{color:#3fa64a;font-weight:800;}
.dmo-date{font-size:12px;}
.dmo-pills{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.dmo-pill{flex:1;min-width:180px;background:#f3f9f4;border:1px solid #cfe9d2;border-radius:7px;padding:8px 13px;font-size:11.5px;color:#2c5a33;}
.dmo-pill b{display:block;font-size:12.5px;color:#1c2733;}
.dmo-pill.warn{background:#fdf6ea;border-color:#f0e0bd;color:#7a5b1f;}
.dmo-box{border:1px solid #e4e7eb;border-radius:8px;margin-bottom:14px;overflow:hidden;}
.dmo-box-t{background:#f6f8f9;padding:8px 14px;font-size:11px;font-weight:800;letter-spacing:.4px;color:#3a4453;border-bottom:1px solid #e4e7eb;text-transform:uppercase;}
.dmo-box-b{padding:12px 14px;}
.dmo-g2{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;}
.dmo-g2 label{display:block;font-size:10px;text-transform:uppercase;color:#6b7686;margin-bottom:1px;}
.dmo-g2 div div{font-size:12.5px;color:#1c2733;font-weight:600;}
table.dmo-items{width:100%;border-collapse:collapse;}
table.dmo-items thead th{background:#eef6ef;color:#2c5a33;text-align:left;font-size:10.5px;text-transform:uppercase;padding:8px 14px;border-bottom:1px solid #d9ecdc;}
table.dmo-items td{padding:8px 14px;font-size:12.5px;border-bottom:1px solid #f0f2f4;}
.dmo-total-wrap{display:flex;justify-content:flex-end;margin:6px 0 16px;}
.dmo-total-box{background:linear-gradient(135deg,#3fa64a,#2f7a3a);color:#fff;border-radius:8px;padding:12px 20px;min-width:230px;text-align:right;}
.dmo-total-box .line{font-size:11px;opacity:.9;display:flex;justify-content:space-between;}
.dmo-total-box .tot{font-size:19px;font-weight:800;margin-top:3px;display:flex;justify-content:space-between;}
table.dmo-pay{width:100%;border-collapse:collapse;}
table.dmo-pay th{background:#f6f8f9;text-align:left;font-size:11px;text-transform:uppercase;color:#3a4453;padding:8px 14px;border-bottom:1px solid #e4e7eb;}
table.dmo-pay td{padding:8px 14px;font-size:12.5px;border-bottom:1px solid #f0f2f4;}
.dmo-sig{margin-top:36px;text-align:center;}
.dmo-sig .line{width:300px;border-top:1px solid #b7bfc9;margin:0 auto 6px;}
.dmo-sig .lbl{font-size:11px;color:#6b7686;}
.dmo-foot{text-align:center;font-size:10px;color:#a4acb6;margin-top:20px;}
@media(max-width:640px){.dmo-g2{grid-template-columns:1fr;}}

/* =====================================================================================
   MODELO 3 — CLÁSSICO FORMAL (tabelas com borda cheia, serifa, tom notarial)
   ===================================================================================== */
.doc-sheet.tpl-classico{
  background:#fdfcf9;border-color:#cfc6ae;padding:34px 38px 30px;color:#241f14;
  font-family:Georgia,"Times New Roman",serif;font-size:12px;
}
.dcl-head{text-align:center;border-bottom:3px double #2c2411;padding-bottom:14px;margin-bottom:6px;}
.dcl-cname{font-size:19px;font-weight:700;letter-spacing:.02em;margin:0 0 4px;}
.dcl-cmeta{font-size:10.5px;color:#5a5138;font-family:"Segoe UI",Arial,sans-serif;}
.dcl-doctitle{text-align:center;font-size:15px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin:14px 0 4px;}
.dcl-docsub{text-align:center;font-size:11px;color:#5a5138;margin-bottom:18px;font-family:"Segoe UI",Arial,sans-serif;}
table.dcl-info{width:100%;border-collapse:collapse;margin-bottom:16px;border:1px solid #2c2411;font-family:"Segoe UI",Arial,sans-serif;}
table.dcl-info td{border:1px solid #2c2411;padding:6px 10px;font-size:11px;}
table.dcl-info td.lbl{background:#f1ecdd;font-weight:700;width:110px;}
.dcl-section-t{font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #2c2411;padding-bottom:4px;margin:18px 0 8px;}
table.dcl-items{width:100%;border-collapse:collapse;border:1px solid #2c2411;}
table.dcl-items th{background:#2c2411;color:#f1ecdd;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;padding:7px 9px;text-align:left;border:1px solid #2c2411;}
table.dcl-items td{border:1px solid #cfc6ae;padding:7px 9px;font-size:11.5px;font-family:"Segoe UI",Arial,sans-serif;}
table.dcl-items td.num{text-align:right;}
.dcl-total-line{display:flex;justify-content:flex-end;margin-top:10px;}
.dcl-total-line table{border-collapse:collapse;min-width:230px;font-family:"Segoe UI",Arial,sans-serif;}
.dcl-total-line td{padding:4px 10px;font-size:11.5px;}
.dcl-total-line .grand td{border-top:2px solid #2c2411;font-family:Georgia,serif;font-size:16px;font-weight:700;padding-top:8px;}
.dcl-sig{margin-top:40px;display:flex;justify-content:space-around;text-align:center;font-size:10.5px;font-family:"Segoe UI",Arial,sans-serif;}
.dcl-sig div{width:220px;border-top:1px solid #2c2411;padding-top:6px;}
.dcl-foot{text-align:center;font-size:10px;color:#8a8168;margin-top:26px;font-family:"Segoe UI",Arial,sans-serif;}

/* =====================================================================================
   MODELO 4 — PASTEL SUAVE (blocos claros, cantos arredondados)
   ===================================================================================== */
.doc-sheet.tpl-pastel{
  border:none;border-radius:22px;padding:34px 36px;color:#3a3552;
  font-family:"Segoe UI",Roboto,Arial,sans-serif;font-size:12.5px;
}
.dpa-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:18px;}
.dpa-head-l{display:flex;gap:12px;align-items:center;}
.dpa-logo{width:46px;height:46px;border-radius:14px;background:#cdeadd;color:#2f7a5c;display:flex;align-items:center;justify-content:center;font-weight:700;flex:none;overflow:hidden;}
.dpa-logo img{width:100%;height:100%;object-fit:contain;}
.dpa-cname{font-size:14.5px;font-weight:700;margin:0 0 2px;}
.dpa-cmeta{font-size:10.5px;color:#8580a0;}
.dpa-badge-num{background:#e4defb;color:#5b4b9e;font-weight:700;font-size:12px;padding:7px 14px;border-radius:30px;white-space:nowrap;}
.dpa-pills{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.dpa-pill{flex:1;min-width:170px;border-radius:14px;padding:10px 14px;font-size:10.5px;}
.dpa-pill.a{background:#fdeedb;color:#8a5a1f;}
.dpa-pill.b{background:#dbeefd;color:#295a80;}
.dpa-pill b{display:block;font-size:12px;margin-top:1px;}
.dpa-card{background:#f6f5fb;border-radius:16px;padding:14px 16px;margin-bottom:14px;}
.dpa-card-t{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#5b4b9e;margin-bottom:8px;}
.dpa-g2{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;}
.dpa-g2 label{display:block;font-size:9.5px;color:#8580a0;text-transform:uppercase;}
.dpa-g2 .v{font-weight:700;font-size:12px;}
.dpa-card table{width:100%;border-collapse:separate;border-spacing:0 6px;}
.dpa-card thead th{text-align:left;font-size:9.5px;text-transform:uppercase;color:#8580a0;padding:0 12px;font-weight:700;}
.dpa-card tbody tr{background:#fff;}
.dpa-card tbody td{padding:9px 12px;font-size:11.5px;}
.dpa-card tbody tr td:first-child{border-radius:10px 0 0 10px;}
.dpa-card tbody tr td:last-child{border-radius:0 10px 10px 0;}
.dpa-total-wrap{display:flex;justify-content:flex-end;margin:8px 0 16px;}
.dpa-total-box{background:linear-gradient(135deg,#c9f0d8,#bfe6f6);border-radius:16px;padding:12px 20px;min-width:220px;text-align:right;}
.dpa-total-box .line{font-size:10.5px;color:#4a4568;display:flex;justify-content:space-between;}
.dpa-total-box .tot{font-size:18px;font-weight:700;color:#2c2650;margin-top:3px;display:flex;justify-content:space-between;}
.dpa-sig{margin-top:36px;text-align:center;}
.dpa-sig .line{width:300px;border-top:1px solid #d8d5e8;margin:0 auto 6px;}
.dpa-sig .lbl{font-size:11px;color:#8580a0;}
.dpa-foot{text-align:center;font-size:10px;color:#a8a4c0;margin-top:18px;}
@media(max-width:640px){.dpa-g2{grid-template-columns:1fr;}}

/* =====================================================================================
   MODELO 5 — EXECUTIVO MONO (preto e branco, um acento discreto)
   ===================================================================================== */
.doc-sheet.tpl-executivo{
  padding:50px 54px;color:#161513;
  font-family:"Segoe UI",Roboto,Arial,sans-serif;font-size:12px;
}
.dex-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;}
.dex-cname{font-family:Georgia,"Times New Roman",serif;font-size:22px;font-weight:600;letter-spacing:-.01em;margin:0;}
.dex-cmeta{font-size:10.5px;color:#87847c;margin-top:6px;}
.dex-head-r{text-align:right;font-size:10.5px;color:#87847c;line-height:1.9;}
.dex-rule{height:1px;background:#161513;margin:22px 0 26px;}
.dex-doctitle{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:30px;flex-wrap:wrap;gap:10px;}
.dex-doctitle .lbl{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#87847c;}
.dex-doctitle .n{font-family:Georgia,serif;font-size:30px;font-weight:500;}
.dex-doctitle .accent{color:#9c6b30;}
.dex-meta-row{display:flex;gap:40px;margin-bottom:30px;flex-wrap:wrap;}
.dex-meta-row label{display:block;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#87847c;margin-bottom:4px;}
.dex-meta-row .v{font-size:12.5px;font-weight:500;}
.dex-section-lbl{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#87847c;margin-bottom:12px;}
.dex-client-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 30px;margin-bottom:34px;padding-bottom:28px;border-bottom:1px solid #e2e2e0;}
.dex-client-grid label{display:block;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#87847c;margin-bottom:2px;}
.dex-client-grid .v{font-size:12.5px;}
table.dex-items{width:100%;border-collapse:collapse;margin-bottom:4px;}
table.dex-items thead th{text-align:left;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#87847c;padding-bottom:10px;border-bottom:1px solid #161513;font-weight:500;}
table.dex-items thead th.num{text-align:right;}
table.dex-items td{padding:12px 0;font-size:12px;border-bottom:1px solid #ececea;}
table.dex-items td.num{text-align:right;font-variant-numeric:tabular-nums;}
.dex-totals{display:flex;justify-content:flex-end;margin-top:16px;}
.dex-totals table{width:auto;min-width:230px;}
.dex-totals td{border:none;padding:4px 0;font-size:11.5px;color:#87847c;}
.dex-totals .grand td{border-top:1px solid #161513;padding-top:12px;font-family:Georgia,serif;font-size:19px;font-weight:600;color:#161513;}
.dex-sig{margin-top:40px;text-align:center;}
.dex-sig .line{width:300px;border-top:1px solid #e2e2e0;margin:0 auto 6px;}
.dex-sig .lbl{font-size:10.5px;color:#87847c;}
.dex-foot{text-align:center;font-size:9.5px;color:#c2c0ba;margin-top:26px;}
@media(max-width:640px){.dex-client-grid{grid-template-columns:1fr;}.dex-meta-row{gap:22px;}}

/* =====================================================================================
   MODELO 6 — CUPOM (recibo estreito, fonte monoespaçada, estilo impressora térmica)
   ===================================================================================== */
.doc-sheet.tpl-cupom{
  max-width:300px;padding:20px 16px;border-radius:2px;color:#111;
  font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Consolas,"SFMono-Regular",Menlo,monospace;
  font-size:10px;line-height:1.45;
}
.dcp-center{text-align:center;}
.dcp-cname{font-size:12.5px;font-weight:700;margin:0 0 3px;letter-spacing:.01em;}
.dcp-cmeta{font-size:9px;color:#333;line-height:1.6;}
.dcp-rule{border-top:1px dashed #999;margin:7px 0;}
.dcp-title{text-align:center;font-weight:700;font-size:11px;margin:0;letter-spacing:.02em;}
.dcp-section{text-align:center;font-weight:700;font-size:9px;letter-spacing:.08em;margin:0;text-transform:uppercase;}
.dcp-row{display:flex;justify-content:space-between;gap:10px;font-size:9.5px;padding:1.5px 0;}
.dcp-row span:first-child{color:#555;}
.dcp-item{margin:6px 0;}
.dcp-item-nome{font-size:10px;font-weight:600;}
.dcp-item-tag{font-size:8px;font-weight:400;text-transform:uppercase;color:#888;margin-left:5px;}
.dcp-item-calc{font-size:9px;color:#333;text-align:right;}
.dcp-total{display:flex;justify-content:space-between;font-weight:700;font-size:12.5px;padding:4px 0;}
.dcp-obs{font-size:9px;color:#333;white-space:pre-line;line-height:1.55;margin:0;}
.dcp-foot p{margin:2px 0;font-size:9px;}
.dcp-footnote{font-size:8px;color:#999;margin-top:6px !important;}
@media print{.doc-sheet.tpl-cupom{max-width:80mm;}}

.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:20px;padding:5px 6px 5px 12px;font-size:12.5px;}
.chip button{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:15px;line-height:1;width:20px;height:20px;border-radius:50%;padding:0;}
.chip button:hover{background:var(--red);color:#fff;}

.com-filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px;}
.com-filtros select{width:auto;min-width:130px;max-width:220px;}
.com-resumo{display:flex;flex-wrap:wrap;gap:8px 22px;margin-bottom:12px;padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;}
.com-resumo span{display:flex;flex-direction:column;gap:1px;}
.com-resumo small{font-size:11px;color:var(--text-muted);}
.com-resumo b{font-size:14px;color:var(--text-strong);}
.items-table input[type=text]{text-align:right;}

/* ---------- Removedor de fundo (modal) ---------- */
.bgr-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start;}
.bgr-stage{
  border:1px solid var(--border);border-radius:8px;padding:10px;display:flex;align-items:center;justify-content:center;min-height:200px;
  background-color:#fff;
  background-image:linear-gradient(45deg,#e3e6ea 25%,transparent 25%,transparent 75%,#e3e6ea 75%),linear-gradient(45deg,#e3e6ea 25%,transparent 25%,transparent 75%,#e3e6ea 75%);
  background-size:16px 16px;background-position:0 0,8px 8px;
}
.bgr-stage canvas{max-width:100%;max-height:340px;cursor:crosshair;display:block;}
.bgr-ctrl{display:flex;flex-direction:column;gap:9px;font-size:12.5px;}
.bgr-hint{margin:0;color:var(--text-muted);line-height:1.4;}
.bgr-swatch-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.bgr-swatch{width:26px;height:26px;border-radius:5px;border:1px solid var(--border);display:inline-block;}
.bgr-tol{display:flex;align-items:center;gap:10px;}
.bgr-tol input{flex:1;}
.bgr-opt{display:flex;gap:7px;align-items:flex-start;line-height:1.35;cursor:pointer;}
.bgr-opt input{margin-top:2px;}
.bgr-opt small{color:var(--text-muted);}
@media(max-width:760px){.bgr-wrap{grid-template-columns:1fr;}}

/* =====================================================================================
   TEMAS
   ===================================================================================== */

/* ---- Escuro (dark mode neutro, mesma identidade verde do OrçaMaster) ---- */
:root[data-theme="dark"]{
  --on-accent:#0b1017;
  --navy:#0d141c; --navy-2:#141c26; --sidebar-bg:#111820;
  --surface:#161f29; --surface-2:#1c2733; --nav-hover:#1f2b38; --nav-active-bg:#1c3324;
  --border:#28323e; --text:#dbe2ea; --text-strong:#f3f6fa; --text-muted:#8a96a6;
  --green:#3fbd52; --green-dark:#33a344; --blue:#4aa8e0; --orange:#f0ad4e; --red:#f0685a;
  --bg:#0b1017; --card-bg:#161f29; color-scheme:dark;
}

/* ---- Nord (azul ártico) ---- */
:root[data-theme="nord"]{
  --on-accent:#10151c;
  --navy:#2E3440; --navy-2:#3B4252; --sidebar-bg:#2E3440;
  --surface:#3B4252; --surface-2:#434C5E; --nav-hover:#434C5E; --nav-active-bg:#3b4a52;
  --border:#4C566A; --text:#E5E9F0; --text-strong:#ECEFF4; --text-muted:#a9b6c9;
  --green:#A3BE8C; --green-dark:#8fae77; --blue:#88C0D0; --orange:#D08770; --red:#BF616A;
  --bg:#242933; --card-bg:#3B4252; color-scheme:dark;
}

/* ---- Dracula (roxo escuro) ---- */
:root[data-theme="dracula"]{
  --on-accent:#10151c;
  --navy:#282A36; --navy-2:#343746; --sidebar-bg:#282A36;
  --surface:#343746; --surface-2:#3d4052; --nav-hover:#3d4052; --nav-active-bg:#3a3350;
  --border:#44475A; --text:#F8F8F2; --text-strong:#ffffff; --text-muted:#b6b9d6;
  --green:#50FA7B; --green-dark:#3ddb64; --blue:#8BE9FD; --orange:#FFB86C; --red:#FF5555;
  --bg:#21222c; --card-bg:#343746; color-scheme:dark;
}

/* ---- Catppuccin Mocha (pastel escuro) ---- */
:root[data-theme="catppuccin"]{
  --on-accent:#10151c;
  --navy:#1E1E2E; --navy-2:#313244; --sidebar-bg:#1E1E2E;
  --surface:#313244; --surface-2:#383a52; --nav-hover:#383a52; --nav-active-bg:#33394f;
  --border:#45475A; --text:#CDD6F4; --text-strong:#ffffff; --text-muted:#A6ADC8;
  --green:#A6E3A1; --green-dark:#8fd189; --blue:#89B4FA; --orange:#FAB387; --red:#F38BA8;
  --bg:#181825; --card-bg:#313244; color-scheme:dark;
}

/* ---- Solarized (claro, quente/parchment) ---- */
:root[data-theme="solarized"]{
  --navy:#073642; --navy-2:#00323c; --sidebar-bg:#FDF6E3;
  --surface:#FDF6E3; --surface-2:#EEE8D5; --nav-hover:#EEE8D5; --nav-active-bg:#e5f0d8;
  --border:#dcd6bd; --text:#586E75; --text-strong:#073642; --text-muted:#839496;
  --green:#859900; --green-dark:#6f8000; --blue:#268BD2; --orange:#CB4B16; --red:#DC322F;
  --bg:#EEE8D5; --card-bg:#FDF6E3; color-scheme:light;
}

/* ---------- Relatórios em PDF ---------- */
#printArea{display:none;}
@media print{
  body.imprimindo-area > *:not(#printArea){display:none !important;}
  body.imprimindo-area #printArea{display:block;}
}
.rel-sheet{max-width:794px;}
.rel-head{display:flex;justify-content:space-between;gap:16px;border-bottom:2px solid #23261f;padding-bottom:8px;margin-bottom:12px;font-size:12px;color:#23261f;}
.rel-muted{color:#8a8d84;font-size:10.5px;}
table.rel-table{width:100%;border-collapse:collapse;font-size:11px;color:#23261f;}
table.rel-table th{text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #23261f;padding:4px 6px;}
table.rel-table td{padding:4px 6px;border-bottom:1px solid #ececec;}
table.rel-table .num{text-align:right;font-variant-numeric:tabular-nums;}
table.rel-table tfoot td{border-top:1.5px solid #23261f;border-bottom:none;padding-top:6px;}

/* ---------- Contratos ---------- */
.ct-paleta{display:flex;flex-wrap:wrap;gap:10px 18px;margin-bottom:12px;}
.ct-paleta > div{display:flex;flex-wrap:wrap;gap:5px;align-items:center;}
.ct-paleta small{font-weight:700;color:var(--text-muted);margin-right:2px;}
.ct-sheet{color:#23261f;font-size:12px;line-height:1.6;}
.ct-quebra{margin-top:18px;}
.ct-titulo{text-align:center;font-size:16px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 18px;}
.ct-texto{white-space:pre-wrap;text-align:justify;}
.ct-falta{color:#d0342c;font-weight:700;}
.ct-assinaturas{display:flex;justify-content:space-around;gap:30px;margin-top:60px;text-align:center;font-size:11px;}
.ct-assinaturas > div{flex:1;max-width:260px;}
.ct-linha{border-top:1px solid #23261f;margin-bottom:6px;}
@media print{.ct-quebra{page-break-before:always;break-before:page;margin-top:0;}}

/* ---------- Toque e telas pequenas (celular/tablet e app Android) ---------- */
@media (pointer:coarse){
  .btn{min-height:44px;padding:10px 16px;}
  .btn-sm{min-height:40px;padding:8px 12px;}
  .act-btn{width:42px;height:42px;}
  .icon-btn{width:44px;height:44px;}
  .nav-item{padding:13px 12px;}
  .nav-sub .nav-item{padding:11px 10px;}
  .field input,.field select,.field textarea,.search-box input,.picker-row select{min-height:44px;font-size:16px;}
  .dropdown-menu button{min-height:44px;}
  .pill-tab{padding:10px 16px;}
  input[type=checkbox],input[type=radio]{width:22px;height:22px;}
}
@media (max-width:640px){
  .topbar{height:56px;padding:0 8px;padding-top:env(safe-area-inset-top);}
  .content{padding:12px 12px 80px;}
  .page-title{font-size:17px;}
  .toolbar,.toolbar-left,.toolbar-right{width:100%;}
  .search-box{flex:1;}
  .search-box input{width:100%;min-width:0;}
  .toolbar .btn{flex:1;justify-content:center;}
  .modal{width:100% !important;max-width:100% !important;margin:0;border-radius:14px 14px 0 0;max-height:92vh;overflow:auto;}
  .modal-backdrop.show{align-items:flex-end;}
  .modal-foot{flex-wrap:wrap;}
  .modal-foot .btn{flex:1;justify-content:center;}
  .form-actions{display:flex;flex-direction:column;gap:8px;}
  .form-actions .btn{width:100%;justify-content:center;}
  .stat-card .val{font-size:18px;}
  .table-wrap{-webkit-overflow-scrolling:touch;}
  table.datatable{font-size:12.5px;}
  table.datatable th,table.datatable td{white-space:nowrap;}
  .items-table{display:block;overflow-x:auto;}
  .com-filtros select{max-width:none;flex:1;}
  .doc-sheet{padding:18px 14px;}
  .ct-paleta .btn{flex:1 1 auto;}
}
html.app-nativo body{-webkit-tap-highlight-color:transparent;overscroll-behavior:none;}

/* ---------- Impressão sem cabeçalho/rodapé do navegador (data, título, endereço do arquivo) ----------
   Margem da página zero = o navegador não tem onde desenhar esses textos; a margem passa para dentro
   da folha e se repete em cada página (box-decoration-break). */
@page{size:A4;margin:0;}
@media print{
  html,body{margin:0 !important;padding:0 !important;background:#fff !important;}
  .doc-sheet{max-width:none !important;margin:0 !important;padding:14mm 16mm !important;border-radius:0 !important;
    -webkit-box-decoration-break:clone;box-decoration-break:clone;}
  .doc-sheet.tpl-cupom{max-width:80mm !important;padding:4mm !important;}
}

/* ---------- Sem rolagem lateral da página no celular: só as tabelas rolam, dentro da própria caixa ---------- */
html,body{max-width:100%;overflow-x:hidden;}
.content,.shell{min-width:0;}
.card{min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.grid > *{min-width:0;}

/* Coluna "Ações" sempre visível: fica presa à direita enquanto o resto da tabela rola */
table.datatable:has(.actions) tr > :last-child{position:sticky;right:0;z-index:1;background:var(--surface);
  box-shadow:-8px 0 8px -8px rgba(0,0,0,.25);}
table.datatable:has(.actions) tbody tr:hover > :last-child{background:var(--surface-2);}

/* Painel: a receber / a pagar numa linha só */
.stat-linha{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;cursor:pointer;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:9px 12px;color:var(--text);font:inherit;}
.stat-linha .lbl{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);}
.stat-linha .lbl svg{width:14px;height:14px;}
.stat-linha b{font-size:15px;color:var(--text-strong);white-space:nowrap;}
.stat-linha:active{background:var(--surface-2);}

/* Atalhos práticos */
.atalhos-bar{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 0 6px;margin:12px 0 4px;scrollbar-width:none;}
.atalhos-bar::-webkit-scrollbar{display:none;}
.atalhos-bar.topo{margin-top:0;margin-bottom:12px;}
.atalho{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:74px;min-height:62px;
  padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text-strong);
  font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;}
.atalho svg{width:20px;height:20px;stroke:var(--green);fill:none;stroke-width:2;}
.atalho:active{background:var(--surface-2);transform:scale(.97);}
.atalho.voltar svg{stroke:var(--text-strong);}
.atalho.config{min-width:48px;}
.atalho.config svg{stroke:var(--text-muted);}
svg.giro{transform:rotate(180deg);}
.atalhos-opcoes{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-top:10px;}
.atalhos-opcoes label{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--border);border-radius:8px;cursor:pointer;}
.atalhos-opcoes svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;}

/* Menu de PDF no Android */
.pdf-opcoes{display:flex;flex-direction:column;gap:10px;}
.pdf-opcoes .btn{justify-content:center;min-height:48px;font-size:15px;}
.pdf-render{position:fixed;left:-10000px;top:0;}
.pdf-caixa{width:794px;background:#fff;}
.pdf-caixa .pdf-folha{max-width:none !important;width:794px;aspect-ratio:auto !important;margin:0 !important;padding:40px 48px !important;border:none !important;
  border-radius:0 !important;box-shadow:none !important;}
.pdf-caixa .pdf-folha.tpl-cupom{width:auto;max-width:302px !important;padding:12px !important;}
.pdf-caixa .print-only{display:block;}
.pdf-caixa .no-print{display:none !important;}
@media print{.atalhos-bar,.modal-backdrop,.toast,.pdf-render{display:none !important;}}

@media(max-width:640px){
  .grid.grid-keep2{grid-template-columns:1fr 1fr;gap:8px;}
  .grid-keep2 .stat-card{padding:10px 12px;}
  .grid-keep2 .stat-card .val{font-size:16px;margin:4px 0 6px;}
  .grid-keep2 .stat-card .btn{width:100%;font-size:12px;padding:6px 8px;}
  .stat-linha{flex-direction:column;align-items:flex-start;gap:2px;}
}

/* ---------- Itens do orçamento/venda no celular: um cartão por item, Qtd/Valor/Desconto numa linha só ---------- */
.items-table td.it-num input{max-width:130px;}
@media(max-width:640px){
  .items-table{display:block;overflow:visible;}
  .items-table thead{display:none;}
  .items-table tbody{display:block;}
  .items-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 8px;padding:10px 0;border-bottom:1px solid var(--border);}
  .items-table td{display:block;padding:0;min-width:0;}
  .items-table td:first-child{grid-column:1 / -1;}
  .items-table td:first-child select{width:100%;}
  .items-table td.it-num input{width:100%;max-width:none;min-width:0;padding:8px 6px;}
  .items-table td[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:2px;}
  .items-table td.it-sub{grid-column:1 / 3;padding-top:6px !important;align-self:center;}
  .items-table td.it-sub::before{content:'Subtotal: ';font-weight:400;color:var(--text-muted);}
  .items-table td.it-rm{justify-self:end;align-self:center;}
}

/* ---------- Licenças e usuários ---------- */
.ac-vagas{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 12px;}
.stat-mini{flex:1 1 140px;border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;background:var(--surface);}
.stat-mini small{color:var(--text-muted);font-size:11.5px;}
.stat-mini b{font-size:20px;color:var(--text-strong);}
.stat-mini span{font-size:11.5px;color:var(--text-muted);}
.ac-comprar{margin-top:14px;}
.ac-comprar .picker-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px;}
.ac-tag{font-size:10.5px;font-weight:600;background:#fff3cd;color:#8a6d00;border-radius:4px;padding:1px 6px;margin-left:4px;}
