/* VidraSystem — sistema visual compartilhado por todas as telas.
   Carregado DEPOIS do <style> de cada página: só altera apresentação.
   Ícones: Lucide (licença ISC), embutidos como SVG. Gerado a partir de app.src.css. */

/* ================= TOKENS ================= */
:root {
  --bg:#F7F8FA; --surface:#FFFFFF; --surface-2:#F2F4F6;
  --text:#20252B; --text-2:#5B6470; --text-3:#8A929C;
  --border:#E4E7EB; --border-2:#D5DAE0; --linha:#EEF0F3;
  --accent:#0E7C74; --accent-hover:#0B6660; --accent-soft:#E7F3F1;
  --ok:#067647; --ok-soft:#ECFDF3; --warn:#B54708; --warn-soft:#FFF6E5;
  --info:#175CD3; --info-soft:#EFF6FF; --danger:#B42318; --danger-soft:#FEF3F2;
  --r-sm:6px; --r-md:8px; --r-lg:10px;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s7:32px;
  --ctrl:36px;
  --sombra-modal:0 20px 40px rgba(16,24,40,.16), 0 2px 6px rgba(16,24,40,.06);
  --fonte:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  --i-dashboard:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20width%3D%227%22%20height%3D%229%22%20x%3D%223%22%20y%3D%223%22%20rx%3D%221%22%2F%3E%3Crect%20width%3D%227%22%20height%3D%225%22%20x%3D%2214%22%20y%3D%223%22%20rx%3D%221%22%2F%3E%3Crect%20width%3D%227%22%20height%3D%229%22%20x%3D%2214%22%20y%3D%2212%22%20rx%3D%221%22%2F%3E%3Crect%20width%3D%227%22%20height%3D%225%22%20x%3D%223%22%20y%3D%2216%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E"); --i-users:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22%2F%3E%3Cpath%20d%3D%22M16%203.13a4%204%200%200%201%200%207.75%22%2F%3E%3C%2Fsvg%3E"); --i-clipboard:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20width%3D%228%22%20height%3D%224%22%20x%3D%228%22%20y%3D%222%22%20rx%3D%221%22%20ry%3D%221%22%2F%3E%3Cpath%20d%3D%22M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%22%2F%3E%3Cpath%20d%3D%22M12%2011h4%22%2F%3E%3Cpath%20d%3D%22M12%2016h4%22%2F%3E%3Cpath%20d%3D%22M8%2011h.01%22%2F%3E%3Cpath%20d%3D%22M8%2016h.01%22%2F%3E%3C%2Fsvg%3E"); --i-panels:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20width%3D%2218%22%20height%3D%2218%22%20x%3D%223%22%20y%3D%223%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%209h18%22%2F%3E%3Cpath%20d%3D%22M9%2021V9%22%2F%3E%3C%2Fsvg%3E");
  --i-calendar:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%202v4%22%2F%3E%3Cpath%20d%3D%22M16%202v4%22%2F%3E%3Crect%20width%3D%2218%22%20height%3D%2218%22%20x%3D%223%22%20y%3D%224%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%2010h18%22%2F%3E%3Cpath%20d%3D%22M8%2014h.01%22%2F%3E%3Cpath%20d%3D%22M12%2014h.01%22%2F%3E%3Cpath%20d%3D%22M16%2014h.01%22%2F%3E%3Cpath%20d%3D%22M8%2018h.01%22%2F%3E%3Cpath%20d%3D%22M12%2018h.01%22%2F%3E%3Cpath%20d%3D%22M16%2018h.01%22%2F%3E%3C%2Fsvg%3E"); --i-shield:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2013c0%205-3.5%207.5-7.66%208.95a1%201%200%200%201-.67-.01C7.5%2020.5%204%2018%204%2013V6a1%201%200%200%201%201-1c2%200%204.5-1.2%206.24-2.72a1.17%201.17%200%200%201%201.52%200C14.51%203.81%2017%205%2019%205a1%201%200%200%201%201%201z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E"); --i-logout:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4%22%2F%3E%3Cpolyline%20points%3D%2216%2017%2021%2012%2016%207%22%2F%3E%3Cline%20x1%3D%2221%22%20x2%3D%229%22%20y1%3D%2212%22%20y2%3D%2212%22%2F%3E%3C%2Fsvg%3E"); --i-scissors:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M8.12%208.12%2012%2012%22%2F%3E%3Cpath%20d%3D%22M20%204%208.12%2015.88%22%2F%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2218%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M14.8%2014.8%2020%2020%22%2F%3E%3C%2Fsvg%3E");
  --i-pencil:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21.174%206.812a1%201%200%200%200-3.986-3.987L3.842%2016.174a2%202%200%200%200-.5.83l-1.321%204.352a.5.5%200%200%200%20.623.622l4.353-1.32a2%202%200%200%200%20.83-.497z%22%2F%3E%3Cpath%20d%3D%22m15%205%204%204%22%2F%3E%3C%2Fsvg%3E"); --i-trash:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h18%22%2F%3E%3Cpath%20d%3D%22M19%206v14c0%201-1%202-2%202H7c-1%200-2-1-2-2V6%22%2F%3E%3Cpath%20d%3D%22M8%206V4c0-1%201-2%202-2h4c1%200%202%201%202%202v2%22%2F%3E%3Cline%20x1%3D%2210%22%20x2%3D%2210%22%20y1%3D%2211%22%20y2%3D%2217%22%2F%3E%3Cline%20x1%3D%2214%22%20x2%3D%2214%22%20y1%3D%2211%22%20y2%3D%2217%22%2F%3E%3C%2Fsvg%3E"); --i-file:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V7Z%22%2F%3E%3Cpath%20d%3D%22M14%202v4a2%202%200%200%200%202%202h4%22%2F%3E%3Cpath%20d%3D%22M10%209H8%22%2F%3E%3Cpath%20d%3D%22M16%2013H8%22%2F%3E%3Cpath%20d%3D%22M16%2017H8%22%2F%3E%3C%2Fsvg%3E"); --i-left:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m15%2018-6-6%206-6%22%2F%3E%3C%2Fsvg%3E"); --i-right:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m9%2018%206-6-6-6%22%2F%3E%3C%2Fsvg%3E");
  --i-x:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%206%206%2018%22%2F%3E%3Cpath%20d%3D%22m6%206%2012%2012%22%2F%3E%3C%2Fsvg%3E"); --i-menu:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%224%22%20x2%3D%2220%22%20y1%3D%2212%22%20y2%3D%2212%22%2F%3E%3Cline%20x1%3D%224%22%20x2%3D%2220%22%20y1%3D%226%22%20y2%3D%226%22%2F%3E%3Cline%20x1%3D%224%22%20x2%3D%2220%22%20y1%3D%2218%22%20y2%3D%2218%22%2F%3E%3C%2Fsvg%3E");
}

* { font-family:var(--fonte) !important; }
body { background:var(--bg) !important; color:var(--text); -webkit-font-smoothing:antialiased; font-size:14px; }

/* Ícone genérico: um ::before com máscara SVG, herda a cor do texto */
.sidebar a::before, .btn-e::before, .btn-d::before, .btn-p::before, .btn-rm::before,
.ico-editar::before, .ico-excluir::before, .cal-ant::before, .cal-prox::before, .menu-btn::before {
  content:""; flex:none; width:16px; height:16px; background:currentColor;
  -webkit-mask:var(--ico) center / contain no-repeat; mask:var(--ico) center / contain no-repeat;
}

/* ================= NAVEGAÇÃO LATERAL ================= */
.sidebar { background:var(--surface) !important; border-right:1px solid var(--border); padding:var(--s4) var(--s3) !important;
  display:flex; flex-direction:column; height:100vh; overflow-y:auto; }
.logo { color:var(--text) !important; font-size:14px !important; font-weight:600 !important; line-height:1.35;
  padding:var(--s1) 10px var(--s4); margin:0 0 var(--s3) !important; border-bottom:1px solid var(--linha); }
.sidebar a { display:flex !important; align-items:center; gap:10px; padding:8px 10px !important; margin-bottom:2px !important;
  color:var(--text-2) !important; font-size:14px; font-weight:500; border-radius:var(--r-sm) !important; text-decoration:none;
  transition:background .12s, color .12s; }
.sidebar a::before { width:18px; height:18px; }
.sidebar a:hover { background:var(--surface-2) !important; color:var(--text) !important; }
.sidebar a.ativo { background:var(--accent-soft) !important; color:var(--accent) !important; }
.sidebar a[href="dashboard.html"] { --ico:var(--i-dashboard); }
.sidebar a[href="index.html"]     { --ico:var(--i-users); }
.sidebar a[href="os.html"]        { --ico:var(--i-clipboard); }
.sidebar a[href="esquadria.html"] { --ico:var(--i-panels); }
.sidebar a[href="agenda.html"]    { --ico:var(--i-calendar); }
.sidebar a[href="corte.html"]     { --ico:var(--i-scissors); }
.sidebar a[href="usuarios.html"]  { --ico:var(--i-shield); }
/* Conta: separada da navegação, no rodapé do menu */
#menu-usuario { margin-top:auto !important; padding:var(--s3) 10px 0 !important; border-top:1px solid var(--linha) !important;
  color:var(--text-3) !important; font-size:12px !important; }
#menu-usuario a { --ico:var(--i-logout); margin:var(--s2) -10px 0 !important; }

/* ================= ÁREA PRINCIPAL ================= */
.main { width:auto !important; flex:1; min-width:0; padding:28px 32px 40px !important; }
.main > * { max-width:1240px; }
.main h1, .topo h1 { color:var(--text) !important; font-size:22px !important; font-weight:600; letter-spacing:-.01em; line-height:1.25; }
.topo { margin-bottom:var(--s5) !important; gap:var(--s3); }
.topo p { color:var(--text-2) !important; font-size:13px !important; margin-top:var(--s1); }
.main > h1 { margin-bottom:var(--s5); }

/* ================= BOTÕES ================= */
.btn-novo, .btn-salvar, .btn-cancelar, .btn-calc, .btn-pdf, .btn-vermelho, .btn-azul, .btn-add, .btn-hoje, .cal-nav button,
.btn-foto, .modal-foto-box button {
  display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:var(--ctrl);
  padding:0 14px !important; font-size:14px !important; font-weight:500 !important; border-radius:var(--r-sm) !important;
  cursor:pointer; box-shadow:none !important; transition:background .12s, border-color .12s, color .12s; }
/* Primário */
.btn-novo, .btn-salvar, .btn-calc, .btn-vermelho {
  background:var(--accent) !important; color:#fff !important; border:1px solid var(--accent) !important; }
.btn-novo:hover, .btn-salvar:hover, .btn-calc:hover, .btn-vermelho:hover { background:var(--accent-hover) !important; border-color:var(--accent-hover) !important; }
/* Secundário */
.btn-cancelar, .btn-pdf, .btn-azul, .btn-add, .btn-hoje, .cal-nav button, .btn-foto, .modal-foto-box button {
  background:var(--surface) !important; color:var(--text) !important; border:1px solid var(--border-2) !important; }
.btn-cancelar:hover, .btn-pdf:hover, .btn-azul:hover, .btn-add:hover, .btn-hoje:hover, .cal-nav button:hover, .btn-foto:hover,
.modal-foto-box button:hover { background:var(--surface-2) !important; }
.btn { margin-top:var(--s3) !important; }
.btn-foto { min-height:26px; padding:0 8px !important; font-size:12px !important; margin-left:var(--s2); }
/* Terciário: links de navegação */
.btn-ver { background:none !important; border:none !important; padding:0 !important; color:var(--accent) !important;
  font-size:13px !important; font-weight:500; text-decoration:none; }
.btn-ver:hover { text-decoration:underline; }
/* Ações de linha (tabelas) */
.btn-e, .btn-d, .btn-p, .btn-rm, .ico-editar, .ico-excluir {
  display:inline-flex !important; align-items:center; justify-content:center; gap:6px; height:30px;
  padding:0 10px !important; margin:0 0 0 4px !important; font-size:13px !important; font-weight:500;
  background:var(--surface) !important; color:var(--text-2) !important; border:1px solid var(--border) !important;
  border-radius:var(--r-sm) !important; cursor:pointer; }
.btn-e:hover, .btn-p:hover, .ico-editar:hover { background:var(--surface-2) !important; color:var(--text) !important; }
.btn-d:hover, .btn-rm:hover, .ico-excluir:hover { background:var(--danger-soft) !important; color:var(--danger) !important; border-color:#FECDCA !important; }
.btn-e:empty, .btn-d:empty, .btn-rm:empty, .ico-editar:empty, .ico-excluir:empty { width:30px; padding:0 !important; }
.btn-e { --ico:var(--i-pencil); } .ico-editar { --ico:var(--i-pencil); }
.btn-d { --ico:var(--i-trash); }  .ico-excluir { --ico:var(--i-trash); }
.btn-p { --ico:var(--i-file); }
.btn-rm { --ico:var(--i-x); flex:none; }
.cal-ant { --ico:var(--i-left); } .cal-prox { --ico:var(--i-right); }
.cal-ant, .cal-prox { width:var(--ctrl); padding:0 !important; }
button:disabled { opacity:.55; cursor:default; }

/* ================= CAMPOS ================= */
input, select, textarea { border:1px solid var(--border-2) !important; border-radius:var(--r-sm) !important; background:#fff;
  color:var(--text); font-size:14px; padding:8px 10px !important; transition:border-color .12s, box-shadow .12s; }
input:not([type=checkbox]):not([type=radio]), select { min-height:var(--ctrl); }
input::placeholder, textarea::placeholder { color:var(--text-3); }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--accent) !important; box-shadow:0 0 0 3px rgba(14,124,116,.15); }
input[type=checkbox] { accent-color:var(--accent); width:16px; height:16px; }
label, .caixa label { color:var(--text-2) !important; font-size:13px !important; font-weight:500; }
#busca { padding-left:34px !important; background:#fff url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238A929C%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%228%22%2F%3E%3Cpath%20d%3D%22m21%2021-4.3-4.3%22%2F%3E%3C%2Fsvg%3E") no-repeat 11px center / 16px; margin-bottom:var(--s4) !important; }

/* ================= TABELAS ================= */
table { background:var(--surface) !important; border:1px solid var(--border); border-radius:var(--r-md) !important;
  box-shadow:none !important; font-variant-numeric:tabular-nums; }
th { background:#F9FAFB !important; color:var(--text-2) !important; font-size:12px !important; font-weight:600 !important;
  text-transform:uppercase; letter-spacing:.04em; padding:10px 16px !important; border-bottom:1px solid var(--border); }
td { padding:11px 16px !important; border-bottom:1px solid var(--linha) !important; color:var(--text); font-size:14px; vertical-align:middle; }
tbody tr:last-child td { border-bottom:none !important; }
tbody tr:hover td { background:#FAFBFC; }

/* ================= STATUS ================= */
.status, .tag, .tag-sup, .tag-gold, .tag-ang { display:inline-flex; align-items:center; gap:6px; padding:2px 8px !important;
  border-radius:999px !important; font-size:12px !important; font-weight:500 !important; line-height:18px; white-space:nowrap; }
.status::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.s-aberto    { background:var(--warn-soft) !important; color:var(--warn) !important; }
.s-andamento { background:var(--info-soft) !important; color:var(--info) !important; }
.s-concluido { background:var(--ok-soft) !important;   color:var(--ok) !important; }
.s-pago      { background:var(--accent-soft) !important; color:var(--accent) !important; }
.tag { background:var(--accent-soft) !important; color:var(--accent) !important; }
.tag-sup, .tag-gold, .tag-ang { background:var(--surface-2) !important; color:var(--text-2) !important; border:none !important; }
.t-visita     { background:var(--warn-soft) !important; color:var(--warn) !important; }
.t-instalacao { background:var(--ok-soft) !important;   color:var(--ok) !important; }
.t-medicao    { background:var(--info-soft) !important; color:var(--info) !important; }
.t-entrega    { background:var(--accent-soft) !important; color:var(--accent) !important; }
.vazio { color:var(--text-3) !important; font-size:13px !important; padding:var(--s6) 0 !important; text-align:center; }

/* ================= DASHBOARD ================= */
.cards { gap:0 !important; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md);
  overflow:hidden; margin-bottom:var(--s6) !important; }
.cards .card { border:none !important; border-right:1px solid var(--linha) !important; border-radius:0 !important;
  box-shadow:none !important; padding:18px 20px !important; }
.cards .card:last-child { border-right:none !important; }
.cards .card h3 { color:var(--text-2) !important; font-size:13px !important; font-weight:500 !important; margin-bottom:6px !important;
  border:none !important; padding:0 !important; }
.card .valor { color:var(--text) !important; font-size:26px !important; font-weight:600 !important; letter-spacing:-.02em;
  font-variant-numeric:tabular-nums; line-height:1.2; }
.card .sub { color:var(--text-3) !important; font-size:12px !important; margin-top:2px !important; }
.grid2 { gap:var(--s5) !important; margin-bottom:var(--s5) !important; }
.card-lista { background:var(--surface) !important; border:1px solid var(--border); border-radius:var(--r-md) !important;
  box-shadow:none !important; padding:0 !important; display:flex; flex-direction:column; }
.card-lista h3 { color:var(--text) !important; font-size:14px !important; font-weight:600 !important; margin:0 !important;
  padding:14px 18px !important; border-bottom:1px solid var(--linha) !important; }
.card-lista > :not(h3) { padding-left:18px; padding-right:18px; }
.card-lista > div:last-child { padding-bottom:14px; margin-top:auto !important; }
.item-lista { padding:11px 0 !important; border-bottom:1px solid var(--linha) !important; gap:var(--s3); font-variant-numeric:tabular-nums; }
.item-lista:last-child { border-bottom:none !important; }
.item-lista .nome { color:var(--text) !important; font-weight:500 !important; font-size:14px; }
.item-lista .info { color:var(--text-2) !important; font-size:12.5px !important; }

/* ================= PAINÉIS GENÉRICOS (Esquadrias, Corte, Usuários) ================= */
.card { background:var(--surface) !important; border:1px solid var(--border); border-radius:var(--r-md) !important; box-shadow:none !important; }
.card h3 { color:var(--text) !important; font-size:15px !important; font-weight:600 !important;
  border-bottom:1px solid var(--linha) !important; padding-bottom:10px !important; }
.card .ajuda { color:var(--text-2) !important; }
.secao { background:var(--surface-2) !important; border:1px solid var(--border) !important; border-radius:var(--r-md) !important; }
.secao h3 { color:var(--text) !important; font-size:14px !important; font-weight:600; }
.resultado-calc, .res-header { background:var(--surface-2) !important; color:var(--text) !important; border:1px solid var(--border);
  border-radius:var(--r-md) !important; font-variant-numeric:tabular-nums; }
.res-header h4, .specs-box h4, .total-compra h4 { color:var(--text) !important; }
.specs-box { background:var(--surface) !important; border:1px solid var(--border) !important; border-radius:var(--r-md) !important; }
.total-box { background:none !important; border-top:1px solid var(--border); border-radius:0 !important; color:var(--text) !important;
  font-size:18px !important; font-weight:600 !important; font-variant-numeric:tabular-nums; }
.total-compra { background:var(--accent-soft) !important; color:var(--text) !important; border:1px solid #CFE7E3 !important; border-radius:var(--r-md) !important; }
.perfil-card { border:1px solid var(--border) !important; border-radius:var(--r-md) !important; box-shadow:none !important; overflow:hidden; }
.perfil-card-header { background:var(--surface-2) !important; color:var(--text) !important; border-bottom:1px solid var(--border); }
.perfil-info strong { color:var(--text-2) !important; }
.barra-vis, .barra-visual { background:var(--surface-2) !important; border-radius:var(--r-sm) !important; }
.barra-usada { background:var(--accent) !important; }
.barra-sobra { background:#E3E7EB !important; color:var(--text-2) !important; }
canvas { border:1px solid var(--border) !important; border-radius:var(--r-sm) !important; }

/* ================= AGENDA ================= */
.cal-nav h2 { color:var(--text) !important; font-size:17px !important; font-weight:600; }
.calendario { border:1px solid var(--border); border-radius:var(--r-md) !important; box-shadow:none !important; }
.cal-header div { background:#F9FAFB !important; color:var(--text-2) !important; font-size:12px !important; font-weight:600 !important;
  border-bottom:1px solid var(--border); }
.cal-dia { border:none !important; border-right:1px solid var(--linha) !important; border-bottom:1px solid var(--linha) !important; }
.cal-dia:hover { background:#FAFBFC !important; }
.cal-dia.outro-mes { background:#FBFBFC !important; }
.cal-dia.hoje { background:var(--accent-soft) !important; }
.cal-dia.selecionado { box-shadow:inset 0 0 0 2px var(--accent); }
.num-dia { color:var(--text) !important; font-weight:500 !important; }
.cal-dia.hoje .num-dia, .cal-dia.hoje .num-dia span { background:var(--accent) !important; color:#fff !important; }
.mais-eventos { color:var(--accent) !important; }
.eventos-dia { border:1px solid var(--border); border-radius:var(--r-md) !important; box-shadow:none !important; }
.eventos-dia h3 { color:var(--text) !important; font-size:14px !important; font-weight:600; border-bottom:1px solid var(--linha) !important; }
.evento-item { border:1px solid var(--border) !important; border-radius:var(--r-sm) !important; }
.evento-item:hover { background:#FAFBFC !important; }
.evento-cor { width:4px !important; height:auto !important; align-self:stretch; }
.evento-info h4 { color:var(--text) !important; font-weight:600; }
.evento-info p { color:var(--text-2) !important; }
.evento-acoes button { font-size:0 !important; }

/* ================= MODAIS ================= */
.fundo, .modal-foto { background:rgba(16,24,40,.45) !important; }
.caixa, .modal-foto-box { border-radius:var(--r-lg) !important; box-shadow:var(--sombra-modal); padding:var(--s6) !important; }
.caixa h2, .modal-foto-box h3 { color:var(--text) !important; font-size:18px !important; font-weight:600; }
.rodape { border-top:1px solid var(--linha); padding-top:var(--s4); }
.msg.erro { color:var(--danger) !important; } .msg.ok { color:var(--ok) !important; }

/* ================= CORES ANTIGAS ESCRITAS NO JAVASCRIPT ================= */
[style*="background:#e94560"] { background:var(--accent) !important; }
[style*="color:#e94560"] { color:var(--accent) !important; }
[style*="background:#1a1a2e"] { background:var(--text) !important; }
[style*="color:#1a1a2e"] { color:var(--text) !important; }

/* ================= ACESSIBILIDADE ================= */
a:focus-visible, button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { * { transition:none !important; animation:none !important; scroll-behavior:auto !important; } }

/* Nome da empresa no menu: só aparece depois de carregado do banco (evita mostrar nome errado) */
.sidebar .logo:not(.pronto) { visibility:hidden; }

/* Botão do menu (só no celular) */
.menu-btn { display:none; --ico:var(--i-menu); }
.menu-btn::before { width:20px; height:20px; }
.menu-fundo { display:none; }

/* ================= TABLET ================= */
@media (max-width: 1024px) {
  .cards { grid-template-columns:repeat(2, 1fr) !important; }
  .cards .card:nth-child(2) { border-right:none !important; }
  .cards .card:nth-child(-n+2) { border-bottom:1px solid var(--linha) !important; }
  .main { padding:24px !important; }
}

/* ================= CELULAR ================= */
@media (max-width: 768px) {
  body { display:block; }
  .sidebar { top:0; left:0; height:100vh; height:100dvh; z-index:1001; transform:translateX(-100%); transition:transform .2s ease; }
  .sidebar.aberta { transform:none; box-shadow:var(--sombra-modal); }
  .menu-fundo.aberto { display:block; position:fixed; inset:0; background:rgba(16,24,40,.45); z-index:1000; }
  .menu-btn { display:flex; align-items:center; justify-content:center; position:fixed;
    top:calc(10px + env(safe-area-inset-top, 0px)); left:12px; z-index:998; width:40px; height:40px;
    background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:var(--r-md); cursor:pointer; }

  .main { margin-left:0 !important; padding:64px 16px 24px !important; }
  .topo { flex-wrap:wrap; }
  .duo, .trio, .grid, .grid2 { grid-template-columns:1fr !important; }
  .card .valor { font-size:22px !important; }
  .cards .card { padding:14px 16px !important; }

  table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap; }
  th, td { padding:10px 12px !important; }

  .fundo { align-items:stretch; }
  .caixa { width:100% !important; max-width:100% !important; max-height:none !important; height:100%;
    border-radius:0 !important; padding:20px 16px 28px !important; }
  .rodape button { flex:1; }

  input, select, textarea { font-size:16px !important; }

  .cal-nav { flex-wrap:wrap; justify-content:center; }
  .cal-nav h2 { min-width:0 !important; font-size:16px !important; }
  .cal-header div { padding:8px 0 !important; font-size:11px !important; }
  .cal-dia { min-height:54px !important; padding:4px !important; overflow:hidden; }
  .evento-tag { font-size:9px !important; }

  .linha-item, .linha-peca { flex-wrap:wrap; }
}

/* ================= LOGIN ================= */
.pagina-login { background:var(--bg) !important; }
.pagina-login .caixa { border:1px solid var(--border); box-shadow:0 1px 2px rgba(16,24,40,.05) !important; padding:32px 28px !important;
  border-radius:var(--r-lg) !important; }
.pagina-login .logo { color:var(--text) !important; font-size:20px !important; font-weight:700 !important; border:none;
  padding:0 0 var(--s1); margin-bottom:var(--s4) !important; text-align:center; }
.pagina-login .logo::after { content:'Acesse sua conta'; display:block; margin-top:4px; font-size:13px; font-weight:400; color:var(--text-2); }
.pagina-login #btn { background:var(--accent) !important; height:40px; padding:0 !important; font-weight:600; border-radius:var(--r-sm) !important; }
.pagina-login #btn:hover { background:var(--accent-hover) !important; }
.pagina-login .alternar { color:var(--accent) !important; }
